more random patches. who knows.
[patches.git] / elf.5.updates.patch
1 --- man5/elf.5
2 +++ man5/elf.5
3 @@ -584,6 +584,11 @@
4 Values less than or equal to
5 .Sy PT_LOPROC
6 are reserved for processor-specific semantics.
7 +.It PT_GNU_STACK
8 +GNU extension which is used by the Linux kernel to control the state of the
9 +stack via the flags set in the
10 +.Sy p_flags
11 +member.
12 .El
13 .Pp
14 .It Dv p_offset
15 @@ -606,7 +611,7 @@
16 This member holds the number of bytes in the memory image of the segment.
17 It may be zero.
18 .It Dv p_flags
19 -This member holds flags relevant to the segment:
20 +This member holds a bitmask of flags relevant to the segment:
21 .Pp
22 .Bl -tag -width "PF_X" -compact
23 .It Dv PF_X
24 @@ -998,6 +1003,25 @@
25 .Sy SHF_ALLOC
26 and
27 .Sy SHF_EXECINSTR .
28 +.It .gnu.version
29 +This section holds the version symbol table, an array of ElfN_Half elements.
30 +This section is of type
31 +.Sy SHT_GNU_versym .
32 +The attribute type used is
33 +.Sy SHF_ALLOC .
34 +.It .gnu.version_d
35 +This section holds the version symbol definitons, a table of ElfN_Verdef
36 +structures. This section is of type
37 +.Sy SHT_GNU_verdef .
38 +The attribute type used is
39 +.Sy SHF_ALLOC .
40 +.It .gnu.version_r
41 +This section holds the version symbol needed elements, a table of
42 +ElfN_Verneed structures. This section is of
43 +type
44 +.Sy SHT_GNU_versym .
45 +The attribute type used is
46 +.Sy SHF_ALLOC .
47 .It .got
48 This section holds the global offset table.
49 This section is of type
50 @@ -1049,6 +1073,14 @@
51 .Sy .note.openbsd.ident
52 section to identify themselves, for the kernel to bypass any compatibility
53 ELF binary emulation tests when loading the file.
54 +.It .note.GNU-stack
55 +This section is used in Linux object files for declaring stack attributes.
56 +This section is of type
57 +.Sy SHT_PROGBITS .
58 +The only attribute used is
59 +.Sy SHF_EXECINSTR .
60 +This indicates to the GNU linker that the object file requires an
61 +executable stack.
62 .It .plt
63 This section holds the procedure linkage table.
64 This section is of type
65 @@ -1271,7 +1301,23 @@
66 .El
67 .Pp
68 .It Dv st_other
69 -This member currently holds zero and has no defined meaning.
70 +This member defines the symbol visibility.
71 +.Bl -tag -width "STV_PROTECTED"
72 +.It Dv STV_DEFAULT
73 +Default symbol visibility rules.
74 +.It Dv STV_INTERNAL
75 +Processor specific hidden class.
76 +.It Dv STV_HIDDEN
77 +Symbol is unavailable in other modules.
78 +.It Dv STV_PROTECTED
79 +Not preemptible, not exported.
80 +.Pp
81 +There are macros for extracting the visibility type:
82 +.Pp
83 +.Fn ELF32_ST_VISIBILITY other
84 +or
85 +.Fn ELF64_ST_VISIBILITY other
86 +.El
87 .It Dv st_shndx
88 Every symbol table entry is
89 .Dq defined