Сборка GCC 4.4.7 с ошибкой (некоторые предупреждения рассматриваются как ошибки) - PullRequest
0 голосов
/ 21 апреля 2019
configure flags: --prefix=/nix/store/l06rvwfzdvpabvgzzad4d3zy0pk8rd45-gcc-4.4.7 --disable-multilib --with-ppl=/nix/store/qkydvl67jamj9k2538a7b7467gqx073i-ppl-1.2 --with-cloog=/nix/store/zbn4xs136ccagbjvl7ka8br3f3w9w1gj-cloog-ppl-0.15.11 --with-gmp=/nix/store/7mrq5v4nnqfkv1ka7a0kdw9mzvqs5w3c-gmp-6.1.2 --with-mpfr=/nix/store/9429azblcx1y9apas3azxxd38imcmsy0-mpfr-4.0.2 --disable-libstdcxx-pch --without-included-gettext --with-system-zlib --enable-languages=c\,c++

Часть журнала:

../../gcc-4.4.7/libcpp/macro.c:1730:8: error: format not a string literal and no format arguments [-Werror=format-security]
        cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
        ^~~~~~~~~
../../gcc-4.4.7/libcpp/macro.c:1743:8: error: format not a string literal and no format arguments [-Werror=format-security]
        cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
        ^~~~~~~~~

Я пытался добавить CFLAGS=-Wno-error, но на это не влияло. Я также привязал использовать sed для замены Werror=format-security, и это также не удалось.

1 Ответ

0 голосов
/ 22 апреля 2019

Я полагаю, что вы используете более новую версию компилятора (которая не существовала на момент выпуска 4.4.7) с новыми и исправленными предупреждениями.

Язык, на котором написан GCC, в какой-то момент изменился с C на C ++. Если это было до 4.4 (не уверен; придется проверять), то причина, по которой CFLAGS не имеет никакого эффекта, ясна - попробуйте также установить CXXFLAGS.

(Для сохранения некоторой истории: ответ, который я первоначально опубликовал, предложил использовать CFLAGS_FOR_TARGET, что было неверно, поскольку libcpp не является целевой библиотекой и поэтому создается с помощью системного компилятора, а не только что созданного)

...