Created attachment 5497 [details] binutils-build-as-needed.diff На gcc 4.6 (например, gcc4.6-4.6.3-alt2) воспроизводится следующее: $ touch a.h $ gcc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -v -E -dM a.h 2>/dev/null | grep FORTIFY #define _FORTIFY_SOURCE 2 Хотя ожидалось бы получить 0, как на Как это было на gcc4.5-4.5.3-alt3 $ gcc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -v -E -dM a.h 2>/dev/null | grep FORTIFY #define _FORTIFY_SOURCE 0 Таким образом получается, что отключить его невозможно. "Это blocker для сборки glibc любой версии. :(" -- ldv@ Предлагается следующая комбинация: - в gcc ожидается и обрабатывается дополнительная переменная окружения, - которая штатно выставляется в rpm и может быть перекрыта в спеке. Аналогично и применительно к binutils про --as-needed (пример прилагается).
$ rpmquery --lastchange gcc4.6 * Fri Jun 15 2012 Sergey Bolshakov <sbolshakov@altlinux> 4.6.3-alt3 - fixed enforced FORTIFY_SOURCE with no opt-out