Summary: | Неотключаемый _FORTIFY_SOURCE | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Michael Shigorin <mike> | ||||
Component: | gcc4.6 | Assignee: | Sergey Bolshakov <sbolshakov> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | blocker | ||||||
Priority: | P3 | CC: | glebfm, lav, led, sbolshakov | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
URL: | http://lists.altlinux.org/pipermail/devel/2012-June/194600.html | ||||||
Attachments: |
|
$ rpmquery --lastchange gcc4.6 * Fri Jun 15 2012 Sergey Bolshakov <sbolshakov@altlinux> 4.6.3-alt3 - fixed enforced FORTIFY_SOURCE with no opt-out |
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 (пример прилагается).