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.
32 lines
1,002 B
Makefile
32 lines
1,002 B
Makefile
#source: start1.s
|
|
#source: expdref4.s
|
|
#as: --no-underscore --em=criself
|
|
#ld: -m crislinux
|
|
#ld_after_inputfiles: tmpdir/libdso-15.so
|
|
#readelf: -a -x 11
|
|
|
|
# Like weakref3.d, but just the expobj2 referenced from .data. We
|
|
# should avoid a copy reloc (instead emitting a R_CRIS_GLOB_DAT or
|
|
# R_CRIS_32 against the weak symbol), but for the time being, make
|
|
# sure we get a valid reloc.
|
|
|
|
#...
|
|
+\[[0-9]+\] .data +PROGBITS +[0-9a-f]* [0-9a-f]* 000004 .*
|
|
#...
|
|
+\[[0-9]+\] .bss +NOBITS +[0-9a-f]* [0-9a-f]* 00000c .*
|
|
#...
|
|
Relocation section '.rela.dyn' at offset 0x... contains 1 entries:
|
|
#...
|
|
.* R_CRIS_COPY .* __expobj2@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 +12 __expobj2@TST3 \(2\)
|
|
#...
|
|
Symbol table '.symtab' contains .. entries:
|
|
#...
|
|
Hex dump of section '.data':
|
|
0x00082250 54220800 .*
|
|
|