bb4d2ac2cc
Both readelf/objdump know how to get symbol version string for dynamic symbols. This patch extracts this functionality into a separate function and uses it to add symbol version string to versioned symbol names when dumping dynamic relocations. bfd/ PR binutils/16496 * elf-bfd.h (bfd_elf_get_symbol_version_string): New. * elf.c (bfd_elf_get_symbol_version_string): New. Extracted from bfd_elf_print_symbol. (bfd_elf_print_symbol): Use it. binutils/ PR binutils/16496 * objdump.c (objdump_print_symname): Call bfd_elf_get_symbol_version_string to get ELF symbol version string. Append version string if needed. * readelf.c (versioned_symbol_info): New enum. (get_symbol_version_string): New. Extracted from process_symbol_table. (dump_relocations): Add a new argument to indicate if dynamic symbol table is used. Use get_symbol_version_string to get symbol version string for dynamic symbol. Append version string if needed. (process_relocs): Updated dump_relocations call. (process_symbol_table): Use get_symbol_version_string. ld/testsuite/ PR binutils/16496 * ld-cris/weakref3.d: Add symbol version string to versioned symbol names in dynamic relocation. * ld-cris/weakref4.d: Likewise. * ld-elfvers/vers24.rd: Likewise. * ld-elf/pr16496a.c: New file. * ld-elf/pr16496a.map: Likewise. * ld-elf/pr16496b.c: Likewise. * ld-elf/pr16496b.od: Likewise. * ld-elf/shared.exp (build_tests): Add libpr16496a.so and libpr16496b.so tests.
36 lines
1.2 KiB
Makefile
36 lines
1.2 KiB
Makefile
#source: start1.s
|
|
#source: expdref3.s
|
|
#as: --no-underscore --em=criself
|
|
#ld: -m crislinux
|
|
#ld_after_inputfiles: tmpdir/libdso-15.so
|
|
#readelf: -a -x 10
|
|
|
|
# Like libdso-15b.d, but referencing the weak symbol and function from
|
|
# a program. At some time we broke emitting a copy reloc for the
|
|
# object, instead yielding NULL.
|
|
|
|
#...
|
|
+\[[0-9]+\] .got +PROGBITS +[0-9a-f]* [0-9a-f]* 000010 .*
|
|
#...
|
|
+\[[0-9]+\] .bss +NOBITS +[0-9a-f]* [0-9a-f]* 000010 .*
|
|
#...
|
|
Relocation section '.rela.dyn' at offset 0x... contains 1 entries:
|
|
Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
|
|
.* R_CRIS_COPY .* __expobj2@TST3 \+ 0
|
|
|
|
Relocation section '.rela.plt' at offset 0x... contains 1 entries:
|
|
Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
|
|
.* R_CRIS_JUMP_SLOT .* expfn2@TST3 \+ 0
|
|
|
|
The decoding of unwind sections for machine type Axis Communications 32-bit embedded processor is not currently supported.
|
|
|
|
Symbol table '.dynsym' contains . entries:
|
|
#...
|
|
+.: [0-9a-f]* +4 +OBJECT +GLOBAL +DEFAULT +13 __expobj2@TST3 \(2\)
|
|
#...
|
|
+.: [0-9a-f]* +0 +FUNC +GLOBAL +DEFAULT +UND expfn2@TST3 \(2\)
|
|
#...
|
|
Symbol table '.symtab' contains .. entries:
|
|
#...
|
|
Hex dump of section '\.text':
|
|
0x000801f8 41b20000 6faed022 08006fae e4010800 .*
|