summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man5/elf.560
1 files changed, 46 insertions, 14 deletions
diff --git a/man5/elf.5 b/man5/elf.5
index 70208ef14..7470b2da0 100644
--- a/man5/elf.5
+++ b/man5/elf.5
@@ -83,7 +83,16 @@ and also includes structures for dynamic sections, relocation sections and
symbol tables.
.sp
The following types are used for N-bit architectures (N=32,64,
-ElfN stands for Elf32 or Elf64, uintN_t stands for uint32_t or uint64_t):
+.I ElfN
+stands for
+.I Elf32
+or
+.IR Elf64 ,
+.I uintN_t
+stands for
+.I uint32_t
+or
+.IR uint64_t ):
.in +0.5i
.nf
@@ -102,8 +111,15 @@ ElfN_Xword uint64_t
.in
.sp
(Note: The *BSD terminology is a bit different.
-There Elf64_Half is
-twice as large as Elf32_Half, and Elf64Quarter is used for uint16_t.
+There
+.I Elf64_Half
+is
+twice as large as
+.IR Elf32_Half ,
+and
+.I Elf64Quarter
+is used for
+.IR uint16_t .
In order to avoid confusion these types are replaced by explicit ones
in the below.)
.sp
@@ -114,7 +130,10 @@ If necessary,
data structures contain explicit padding to ensure 4-byte alignment
for 4-byte objects, to force structure sizes to a multiple of 4, etc.
.sp
-The ELF header is described by the type Elf32_Ehdr or Elf64_Ehdr:
+The ELF header is described by the type
+.I Elf32_Ehdr
+or
+.IR Elf64_Ehdr :
.in +0.5i
.nf
@@ -595,7 +614,10 @@ A file specifies its own program header size with the ELF header's
and
.IR e_phnum
members.
-The ELF program header is described by the type Elf32_Phdr or Elf64_Phdr
+The ELF program header is described by the type
+.I Elf32_Phdr
+or
+.I Elf64_Phdr
depending on the architecture:
.in +0.5i
.nf
@@ -652,9 +674,9 @@ and
The bytes from the file are mapped to the beginning of the memory
segment.
If the segment's memory size
-.BR p_memsz
+.IR p_memsz
is larger than the file size
-.BR p_filesz ,
+.IR p_filesz ,
the
"extra"
bytes are defined to hold the value 0 and to follow the segment's
@@ -781,7 +803,11 @@ modulo
.sp
A file's section header table lets one locate all the file's sections.
The
-section header table is an array of Elf32_Shdr or Elf64_Shdr structures.
+section header table is an array of
+.I Elf32_Shdr
+or
+.I Elf64_Shdr
+structures.
The
ELF header's
.IR e_shoff
@@ -923,7 +949,7 @@ string table sections.
.BR SHT_RELA
This section holds relocation entries with explicit addends, such
as type
-.BR Elf32_Rela
+.IR Elf32_Rela
for the 32-bit class of object files.
An object may have multiple
relocation sections.
@@ -954,7 +980,7 @@ member contains the conceptual file offset.
.BR SHT_REL
This section holds relocation offsets without explicit addends, such
as type
-.BR Elf32_Rel
+.IR Elf32_Rel
for the 32-bit class of object files.
An object file may have multiple
relocation sections.
@@ -1192,22 +1218,28 @@ and
.BR SHF_EXECINSTR .
.TP
.IR .gnu.version
-This section holds the version symbol table, an array of ElfN_Half elements.
+This section holds the version symbol table, an array of
+.I ElfN_Half
+elements.
This section is of type
.BR SHT_GNU_versym .
The attribute type used is
.BR SHF_ALLOC .
.TP
.IR .gnu.version_d
-This section holds the version symbol definitons, a table of ElfN_Verdef
-structures. This section is of type
+This section holds the version symbol definitons, a table of
+.I ElfN_Verdef
+structures.
+This section is of type
.BR SHT_GNU_verdef .
The attribute type used is
.BR SHF_ALLOC .
.TP
.IR .gnu.version_r
This section holds the version symbol needed elements, a table of
-ElfN_Verneed structures. This section is of
+.I ElfN_Verneed
+structures.
+This section is of
type
.BR SHT_GNU_versym .
The attribute type used is