Re: Optimization auto-setting _FORTIFY_SOURCE ??

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



在 2023/1/30 12:23, Xi Ruoyao via Gcc-help 写道:
On Sun, 2023-01-29 at 18:05 -0500, Patrick Herbst via Gcc-help wrote:
Using GCC 9.4, I've noticed setting -O1 will set
_FORTIFY_SOURCE=2

I'm able to see this by running
gcc -c -E -dM -O1 - < /dev/null | grep FORTIFY_SOURCE

But running the same command without -O1 doesn't set it.

Is this documented?  is this expected behavior?  I could not find any
reference to how optimization leads to setting this macro.

Any tips on where I can look, or what i'm missing to see this
connection?

It's because your distro hacked GCC code to define _FORTIFY_SOURCE when
optimization is enabled.  Vanilla GCC does not have this behavior.



For the record: Debian and Ubuntu are known distros that have `_FORTIFY_SOURCE` set when optimization is enabled. The relevant patch is here

   https://sources.debian.org/src/gcc-8/8.3.0-2/debian/patches/gcc-default-fortify-source.diff/

however the hunk against 'invoke.texi' is incorrect: It says `_FORTIFY_SOURCE` is enabled if optimization level 'is set to 2 or higher', but it is actually defined for any optimization level > 0.

--
Best regards,
LIU Hao

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux