mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
c955de363b
The current code subtracts the size of the output section containing relplt from RELASZ. In some cases this will be the same output section as the dynamic relocs causing a value of zero to be output. Calculating the size from input sections seems to make more sense. bfd/ChangeLog: 2014-03-25 Will Newton <will.newton@linaro.org> * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_sections): Set value of DT_PLTRELSZ and DT_RELASZ based on the size of input sections rather than output sections. ld/testsuite/ChangeLog: 2014-03-25 Will Newton <will.newton@linaro.org> * ld-aarch64/aarch64-elf.exp: Add relasz dump test. * ld-aarch64/relasz.d: New file. * ld-aarch64/relasz.s: Likewise.
19 lines
825 B
Makefile
19 lines
825 B
Makefile
#source: relasz.s
|
|
#ld: -shared -Taarch64.ld
|
|
#readelf: -d
|
|
# Check that the RELASZ section has the correct size even if we are
|
|
# using a non-default linker script that merges .rela.dyn and .rela.plt
|
|
# in the output.
|
|
|
|
Dynamic section at offset 0x[0-9a-f]+ contains 9 entries:
|
|
Tag Type Name/Value
|
|
0x0000000000000004 \(HASH\) 0x[0-9a-f]+
|
|
0x0000000000000005 \(STRTAB\) 0x[0-9a-f]+
|
|
0x0000000000000006 \(SYMTAB\) 0x[0-9a-f]+
|
|
0x000000000000000a \(STRSZ\) [0-9]+ \(bytes\)
|
|
0x000000000000000b \(SYMENT\) [0-9]+ \(bytes\)
|
|
0x0000000000000007 \(RELA\) 0x[0-9a-f]+
|
|
0x0000000000000008 \(RELASZ\) 24 \(bytes\)
|
|
0x0000000000000009 \(RELAENT\) 24 \(bytes\)
|
|
0x0000000000000000 \(NULL\) 0x0
|