linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ELF: document some de-facto PT_* ABI quirks
@ 2023-03-14 17:02 Alexey Dobriyan
  2023-03-15  2:34 ` Randy Dunlap
  0 siblings, 1 reply; 15+ messages in thread
From: Alexey Dobriyan @ 2023-03-14 17:02 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel

Turns out rules about PT_INTERP, PT_GNU_STACK and PT_GNU_PROPERTY
segment headers are slightly different.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

 Documentation/ELF/ELF.rst |   28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

new file mode 100644
--- /dev/null
+++ b/Documentation/ELF/ELF.rst
@@ -0,0 +1,28 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+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.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2023-12-11 16:26 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-14 17:02 [PATCH] ELF: document some de-facto PT_* ABI quirks Alexey Dobriyan
2023-03-15  2:34 ` Randy Dunlap
2023-03-17  8:22   ` Bagas Sanjaya
2023-03-17 16:53     ` Alexey Dobriyan
2023-03-19 12:52       ` Bagas Sanjaya
2023-03-26 16:49   ` [PATCH v2] " Alexey Dobriyan
2023-03-26 19:51     ` Randy Dunlap
2023-03-29 16:40     ` Jonathan Corbet
2023-04-15 17:37       ` [PATCH v3] " Alexey Dobriyan
2023-04-20 16:07         ` Jonathan Corbet
2023-12-06 22:58         ` Kees Cook
2023-12-07 15:03           ` Eric W. Biederman
2023-12-10 11:45             ` Alexey Dobriyan
2023-12-10 22:58               ` Eric W. Biederman
2023-12-11 16:26                 ` Alexey Dobriyan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).