Как игнорировать флаги компилятора, автоматически добавленные с 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.

На ум приходят два других варианта:

  1. Перед запуском rpmbuild экспортируйте свои собственные C_FLAGS. Это может помочь вам, но это зависит от настроек вашего rpmbuild.

  2. Используйте --define с rpmbuild, чтобы объявить свои собственные optflags, используемые с buildf. Например, rpmbuild -v -bb --clean --define 'optflags -foo -bar -foobar' ansvif.spec

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