Как отключить-Werror=date-time/macro “__, ДАТА __” могла бы предотвратить восстанавливаемые сборки

Я пытаюсь скомпилировать драйвер для адаптера 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
13
задан 8 September 2017 в 08:35

3 ответа

Дата и время, предупреждающая, является новой в gcc 4.9, я думаю - это возможно включено неявно -Wall (и превращено ошибка неявно -Werror).

Вы могли попытаться выключить его явно использование эти -Wno- форма т.е. путем добавления

-Wno-error=date-time 

к CFLAGS.

14
ответ дан 23 November 2019 в 03:19

Я попробовал, довольно много раз добавив "Wno-error=date-time" строка к CFLAGS, но это, казалось, не работало.

самое легкое решение безусловно для меня состояло в том, чтобы найти файл, который производил "__ ДАТА __" строка путем выполнения

grep -r "__DATE__"

, который (для исходного кода, с которым я работаю) дал мне файл

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

, я просто изменил это на строку без переменной путем удаления кавычек, т.е.

"Compiled on __DATE__ for kernel %s"

, компиляция затем смогла продолжиться

РЕДАКТИРОВАНИЕ: , Как упомянуто прежде, используйте make clean, прежде чем выполнение настроит и сделает, или еще лучше, извлечет новую версию из файла

zip/tar
3
ответ дан 23 November 2019 в 03:19

Могло бы быть лучше удалить незаконный макрос путем удаления строки 66 из rtw_debug.c файла.

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
1
ответ дан 23 November 2019 в 03:19

Другие вопросы по тегам:

Похожие вопросы: