Hi Alexey, On 3/26/23 09:49, Alexey Dobriyan wrote: > Turns out rules about PT_INTERP, PT_GNU_STACK and PT_GNU_PROPERTY > program headers are slightly different. > > Signed-off-by: Alexey Dobriyan <adobriyan@xxxxxxxxx> > --- > > v2: integrate into documentation build system > > Documentation/ELF/ELF.rst | 32 ++++++++++++++++++++++++++++++++ > Documentation/ELF/index.rst | 10 ++++++++++ > Documentation/index.rst | 1 + > 3 files changed, 43 insertions(+) I'm not sure that ELF merits its own subdirectory or that each item here should be a chapter, but this fixes all of the issues that I pointed out. Thanks. Reviewed-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > new file mode 100644 > --- /dev/null > +++ b/Documentation/ELF/ELF.rst > @@ -0,0 +1,32 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +================================= > +Linux-specific ELF idiosyncrasies > +================================= > + > +Definitions > +=========== > + > +"First" program header is the one with the smallest offset in the file: > +e_phoff. "Last" program header is the one with the biggest offset: > +e_phoff + (e_phnum - 1) * sizeof(Elf_Phdr). > + > +PT_INTERP > +========= > + > +First PT_INTERP program header is used to locate the filename of ELF > +interpreter. Other PT_INTERP headers are ignored (since Linux 2.4.11). > + > +PT_GNU_STACK > +============ > + > +Last PT_GNU_STACK program header defines userspace stack executability > +(since Linux 2.6.6). Other PT_GNU_STACK headers are ignored. > + > +PT_GNU_PROPERTY > +=============== > + > +ELF interpreter's last PT_GNU_PROPERTY program header is used (since > +Linux 5.8). If interpreter doesn't have one, then the last PT_GNU_PROPERTY > +program header of an executable is used. Other PT_GNU_PROPERTY headers > +are ignored. > new file mode 100644 > --- /dev/null > +++ b/Documentation/ELF/index.rst > @@ -0,0 +1,10 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +=== > +ELF > +=== > + > +.. toctree:: > + :maxdepth: 1 > + > + ELF > --- a/Documentation/index.rst > +++ b/Documentation/index.rst > @@ -113,6 +113,7 @@ to ReStructured Text format, or are simply too old. > :maxdepth: 1 > > staging/index > + ELF/index > > > Translations -- ~Randy