-Werror = date-time / macro“ __DATE__”を無効にする方法は、再現可能なビルドを妨げる可能性があります


13

Netis WF2190アダプター用のドライバーをコンパイルしようとしています。はい、私はちょうどそれらから最新のものをダウンロードしました。

-Werror=date-timeビルドでを無効にするにはどうすればよいですか?ビルドスクリプトのどこにも見つからないので、グローバルなデフォルト設定である必要があります。明らかに、コードはビルドの日付/時刻を出力に埋め込もうとしているだけなので、この警告を無効にしても問題はないはずです。

エラーとして扱われている警告の一部を次に示します。

/home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c:66:1: error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]
/home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c:66:1: error: macro "__TIME__" might prevent reproducible builds [-Werror=date-time]
cc1: some warnings being treated as errors

2
このdate-time警告はgcc 4.9で新しく追加されました-おそらく暗黙的に-Wall オンになっています(そして、暗黙的にエラーになっています-Werror)。あなたが追加されたフォームを使用して明示的にオフにすることを試みることができますが、私は推測しているとそれをテストすることはできません。-Wno--Wno-error=date-timeCFLAGS
スチールドライバー

@steeldriverはい、うまくいきました、ありがとう!回答として提出してください。受け入れます。問題の他の部分は、インストールスクリプトが毎回ソースを再抽出し、メイクファイルに加えた変更を上書きすることに気づかなかったことです。
アンディ

回答:


14

日時警告はgcc 4.9で新しく追加されました-おそらく暗黙的に-Wallオンになっています(そして、暗黙的にエラーになっています-Werror)。

-Wno-フォームを使用して明示的にオフにすることもできます。

-Wno-error=date-time 

CFLAGS


具体的には、これを行うために端末に入力する必要があるものは何ですか?
ハックR

1
こんにちは@steeldriverこれは正しい構文ですか:CFLAGS + = "-Wno-error = date-time"
ナヤブバシャサイード

3

CFLAGSに「Wno-error = date-time」行を追加しようと何度も試みましたが、うまくいかないようでした。

私にとって最も簡単な解決策は、実行して「__DATE__」行を生成していたファイルを見つけることでした

grep -r "__DATE__"

(私が作業しているソースコードの)ファイルを私に与えた

acore/info.patch:+          "Compiled on " __DATE__ " for kernel %s"

引用符を削除して、変数を持たない文字列に変更しました。つまり、

"Compiled on __DATE__ for kernel %s"

その後、コンパイルを進めることができました

編集:前述のように、make cleanconfigureおよびmakeを実行する前に使用するか、zip / tarファイルから最新バージョンを抽出します


1

rtw_debug.cファイルから行66を削除することにより、問題のマクロを削除することをお勧めします。

sed -i -e '66d' /home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/driver/rtl8812AU_linux_v4.3.8_12175.20140902/core/rtw_debug.c

これで、ビルドを続行できます。

cd /home/andy/RTL8812AU_linux_v4.3.8_12175.20140902/
sudo make clean
make
sudo make install

sudo make cleanが重要です
mchid
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.