diff options
-rw-r--r-- | man5/elf.5 | 60 |
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 |