[LLVMdev] [PROPOSAL] ELF safe/unsafe sections

Shankar Easwaran shankare at codeaurora.org
Mon Jul 29 10:09:47 PDT 2013

On 7/29/2013 11:24 AM, Nick Kledzik wrote:
> On Jul 25, 2013, at 2:10 PM, Rui Ueyama wrote:
>> Is there any reason -ffunction-sections and -fdata-sections wouldn't work? If it'll work, it may be be better to say "if you want to get a better linker output use these options", rather than defining new ELF section.
> >From my understanding, -ffunction-sections is a good semantic match.  But it introduces a lot of bloat in the .o file which the linker must process.
> For reference, with mach-o we just added a flag to the overall .o file that says all sections are "safe".  The compiler always generates safe object files (unless there is inline code with non-local labels) and always sets the flag.   Hand written assembly files did not have the flag by default, but savvy assembly programmers can set it.
We could set this flag for ELF too in the ELF header, but it wouldnot 
not confirm to the ELF ABI.

To account safe sections, we should just create an additional section in 
the ELF (gcc creates a lot many sections to handle executable stack and 
for LTO). This would just be another section to dictate what sections 
are safe.

Isnt it better to have this flag set for every section in Darwin too, 
makes it flexible. I am not sure about the ABI concerns on Darwin though.


Shankar Easwaran

Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation

More information about the llvm-dev mailing list