GAS setting SHF_EXCLUDE on .gnu.lto_* sections considered harmful
Richard Biener
rguenther@suse.de
Mon Aug 17 12:42:00 GMT 2015
Hi,
whilst developing the tooling for GCC LTO early debug I am running into
the issue that GAS sets SHF_EXCLUDE on all sections named .gnu.lto_*
GCC already sets that flag explicitely on all sections where it should go
and GNU ld already discards all .gnu.lto_* sections from a non-incremental
link via its default linker scripts and a proper /DISCARD/ section
assigment.
Now the issue I am running into is that I desparately need access to
a .gnu.lto_* named section in the final link - namely the sections
containing LTO early debug in the object files generated during the
compile phase. They should of course still be discarded in case
of FAT binaries and a non-LTO link which they will via the GNU ld
default linker script.
GAS has no way of "unsetting" 'e' on .gnu.lto_ prefixed sections
as there is no "no flags, not even default" I can specify. Specifying
"ws" works (and GAS complains) on .gnu.lto_.debug_str but "ws" isn't
a good idea on random sections.
So - can we please imply revert 68efed4197a?
Thanks,
Richard.
More information about the Binutils
mailing list