You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Symbol table entries for different object file types have slightly different interpretations for the st_value member.
218
-
219
213
In relocatable files, st_value holds alignment constraints for a symbol whose section index is SHN_COMMON.
220
-
221
214
In relocatable files, st_value holds a section offset for a defined symbol. st_value is an offset from the beginning of the section that st_shndx identifies.
222
-
223
215
In executable and shared object files, st_value holds a virtual address. To make these files' symbols more useful for the runtime linker, the section offset (file interpretation) gives way to a virtual address (memory interpretation) for which the section number is irrelevant.
224
-
225
216
Although the symbol table values have similar meanings for different object files, the data allow efficient access by the appropriate programs.
@@ -252,7 +241,6 @@ public int compare(Symbol p1, Symbol p2) {
252
241
unsigned char st_other;
253
242
Elf32_Half st_shndx;
254
243
} Elf32_Sym; size 16
255
-
256
244
typedef struct {
257
245
Elf64_Word st_name;
258
246
unsigned char st_info;
@@ -262,23 +250,19 @@ public int compare(Symbol p1, Symbol p2) {
262
250
Elf64_Xword st_size;
263
251
} Elf64_Sym; size 24
264
252
The elements of this structure are:
265
-
266
253
st_name
267
254
An index into the object file's symbol string table, which holds the character representations of the symbol names.
268
255
If the value is nonzero, it represents a string table index that gives the symbol name.
269
256
Otherwise, the symbol table entry has no name.
270
-
271
257
st_value
272
258
The value of the associated symbol. Depending on the context, this can be an absolute value, an address, and so forth. See "Symbol Values".
273
-
274
259
st_size
275
260
Many symbols have associated sizes. For example, a data object's size is the number of bytes contained in the object. This member holds 0 if the symbol has no size or an unknown size.
17 (S ≠ 0) R_ARM_TLS_DTPMOD32 Resolves to the module number of the module defining the specified TLS symbol, S. (S = 0) Resolves to the module number of the current module (ie. the module containing this relocation).
23 R_ARM_RELATIVE (S ≠ 0) B(S) resolves to the difference between the address at which the segment defining the symbol S was loaded and the address at which it was linked. l
378
358
(S = 0) B(S) resolves to the difference between the address at which the segment being relocated was loaded and the address at which it was linked
0 commit comments