Как игнорировать флаги компилятора, автоматически добавленные с buildrpm
Я пытаюсь собрать пакет с помощью buildrpm. Моя проблема в том, что у меня намеренно уязвимая программа на С, скомпилированная, когда make
обычно запускается в качестве примера для основного кода (фаззера), который будет тестироваться с make check
, Однако, когда я пытаюсь собрать rpm, хотя эти уязвимые программы не установлены (так как они просто тесты), rpmbuild -v -bb --clean SPECS/ansvif.spec
все равно заставит его скомпилировать -Werror=format-security
что делает сборку неудачной. Есть ли простой способ обойти это - кроме попытки переписать Makefile.am, чтобы он опускался с определенным флагом, передаваемым buildrpm, если это возможно? Я ищу правильное решение этой проблемы, а не что-то хакерское, если это возможно.
Исходный код находится по адресу https://github.com/oxagast/ansvif
2 ответа
Ты можешь попробовать "%global _hardened_build 0
"к вершине вашего specfile.
На ум приходят два других варианта:
Перед запуском rpmbuild экспортируйте свои собственные C_FLAGS. Это может помочь вам, но это зависит от настроек вашего rpmbuild.
Используйте --define с rpmbuild, чтобы объявить свои собственные optflags, используемые с buildf. Например, rpmbuild -v -bb --clean --define 'optflags -foo -bar -foobar' ansvif.spec