RFC: Add SHT_GNU_PHDRS

H.J. Lu hjl.tools@gmail.com
Wed Sep 26 21:54:00 GMT 2018


When -z separate-code is used to create executable, ld won't place any
data in the code-only PT_LOAD segment.  If there are no data sections
placed before the code-only PT_LOAD segment, the program headers
won't be mapped into any PT_LOAD segment.  When the executable tries
to access it (based on the program header address passed in AT_PHDR),
it will lead to segfault.

I am proposing

#define SHT_GNU_PHDRS  0x6ffffff4  /* Dummy section for program header */

This is a special read-only SHF_ALLOC zero-size data section.  It is the
first output section, which will force a data PT_LOAD segment with program
header before the code-only PT_LOAD segment,

-- 
H.J.



More information about the Binutils mailing list