- •ABOUT THIS DOCUMENT
- •Change control
- •Current status and anticipated changes
- •Change history
- •References
- •Terms and abbreviations
- •SCOPE
- •GENERIC 32-BIT ELF
- •Introduction
- •File Format
- •Data Representation
- •Character Representations
- •ELF Header
- •ELF Identification
- •Sections
- •Special Sections
- •String Table
- •Symbol Table
- •Symbol Values
- •Relocation
- •Program view
- •Program Header
- •Note Section
- •Program Loading
- •Dynamic Linking
- •Special Sections Names
- •Pre-existing Extensions
- •ELF header
- •Entry points
- •Section names
- •Section headers
- •Common sections
- •Section alignment
- •Link and info fields
- •Symbols
- •Symbol value
- •Symbol size
- •Weak symbols
- •Symbol names
- •Sub-class and super-class symbols
- •Function address constants and pointers to code
- •Mapping and tagging symbols
- •Mapping symbols
- •Tagging symbols
- •Symbol table order
- •Dynamic symbol table entries
- •Relocation types
- •Dynamic relocation types
- •Multiple relocation
- •Field extraction and insertion
- •Relocations that depend on the type of the target location
- •Program headers
- •Dynamic linking and relocation
- •The dynamic segment
- •The dynamic segment program header
- •The dynamic section
- •DT_SYMBOLIC
- •The hash table section
ARM ELF
4.7.3 The dynamic section
The dynamic segment begins with a dynamic section containing an array of structures of type:
typedef struct Elf32_Dyn { Elf32_Sword d_tag; Elf32_Word d_val;
} Elf32_Dyn;
Each element is self-identifying through its d_tag field.
Figure 4-18, Dynamic section tags
d_tag |
Tag name |
The value of d_val and the meaning of the array entry |
Status |
||
|
|
|
|
|
|
0 |
DT_NULL |
Ignored. This entry marks the end of the dynamic array. |
mandatory |
||
|
|
|
|
|
|
1 |
DT_NEEDED |
Index in the string table of the name of a needed library. |
multiple |
||
|
|
|
|
|
|
2 |
DT_PLTRELSZ |
These entries are unused by versions 1-2 of the ARM EABI. |
unused |
||
|
|
|
|
|
|
3 |
DT_PLTGOT |
|
|
|
|
|
|
|
|
|
|
4 |
DT_HASH |
The offset of the hash table section in the dynamic segment. |
mandatory |
||
|
|
|
|
|
|
5 |
DT_STRTAB |
The offset of the string table section in the dynamic segment. |
mandatory |
||
|
|
|
|
|
|
6 |
DT_SYMTAB |
The offset of the symbol table section in the dynamic segment. |
mandatory |
||
|
|
|
|
|
|
7 |
DT_RELA |
The offset in the dynamic segment of an SHT_RELA relocation section, |
optional |
||
|
|
|
Its byte size, and the byte size of an ARM RELA-type relocation entry. |
|
|
8 |
DT_RELASZ |
|
|||
|
|
|
|||
|
|
|
|
|
|
9 |
DT_RELAENT |
|
|
|
|
|
|
|
|
|
|
10 |
DT_STRSZ |
The byte size of the string table section. |
mandatory |
||
|
|
|
|
|
|
11 |
DT_SYMENT |
The byte size of an ARM symbol table entry—16. |
mandatory |
||
|
|
|
|
|
|
12 |
DT_INIT |
These entries are unused by versions 1-2 of the ARM EABI. |
unused |
||
|
|
|
|
|
|
13 |
DT_FINI |
|
|
|
|
|
|
|
|
|
|
14 |
DT_SONAME |
The Index in the string table of the name of this shared object. |
mandatory |
||
|
|
|
|
|
|
15 |
DT_RPATH |
Unused by the ARM EABI. |
unused |
||
|
|
|
|
|
|
16 |
DT_SYMBOLIC |
|
|
|
|
|
|
|
|
|
|
17 |
DT_REL |
The offset in the dynamic segment of an SHT_REL relocation section, |
optional |
||
|
|
|
Its byte size, and the byte size of an ARM REL-type relocation entry |
|
|
18 |
DT_RELSZ |
|
|||
|
|
|
|||
|
|
|
|
|
|
19 |
DT_RELENT |
|
|
|
|
|
|
|
|
|
|
20 |
DT_PLTREL |
These entries are unused by versions 1-2 of the ARM EABI. |
unused |
||
|
|
|
|
|
|
21 |
DT_DEBUG |
|
|
|
|
|
|
|
|
|
|
22 |
DT_TEXTREL |
|
|
|
|
|
|
|
|
|
|
23 |
DT_JMPREL |
|
|
|
|
|
|
|
|
|
|
24 |
DT_BIND_NOW |
|
|
|
|
|
|
|
|
|
|
0x70000000 |
DT_LOPROC |
Values in this range are reserved to the ARM EABI. |
unused |
||
|
|
|
|
||
0x7fffffff |
DT_HIPROC |
|
|
||
|
|
|
|
|
|
Note The last entry in the dynamic array must have tag DT_NULL.
Note The relative order of DT_NEEDED entries may be important to a dynamic linker. Otherwise the order of entries in the dynamic array has no significance.
SWS ESPC 0003 B-02 |
Page 41 of 42 |