Bug 27461 - Неотключаемый _FORTIFY_SOURCE
Summary: Неотключаемый _FORTIFY_SOURCE
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: gcc4.6 (show other bugs)
Version: unstable
Hardware: all Linux
: P3 blocker
Assignee: Sergey Bolshakov
QA Contact: qa-sisyphus
URL: http://lists.altlinux.org/pipermail/d...
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-18 17:30 MSK by Michael Shigorin
Modified: 2012-06-18 17:33 MSK (History)
4 users (show)

See Also:


Attachments
binutils-build-as-needed.diff (535 bytes, patch)
2012-06-18 17:30 MSK, Michael Shigorin
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Shigorin 2012-06-18 17:30:49 MSK
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 (пример прилагается).
Comment 1 Dmitry V. Levin 2012-06-18 17:33:51 MSK
$ rpmquery --lastchange gcc4.6
* Fri Jun 15 2012 Sergey Bolshakov <sbolshakov@altlinux> 4.6.3-alt3
- fixed enforced FORTIFY_SOURCE with no opt-out