From 3f2e9699234ca31d083bc93ea6e03903f10baeaf Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 22 Aug 2020 08:31:53 -0700 Subject: elf: Keep only one '@' for undefined versioned symbols The symbol string table in the .symtab section is optional and cosmetic. Keep only one '@' for undefined versioned symbols, which are defined in shared objects, in the symbol string table. Update "nm -D" to display only one '@' for undefined versioned symbols. bfd/ PR ld/26382 * elflink.c (elf_link_output_symstrtab): Keep only one '@' for versioned symbols, which are defined in shared objects, in symbol string table. binutils/ PR ld/26382 * nm.c (print_symname): Display only one '@' for undefined versioned symbols. * doc/binutils.texi: Update nm version information. ld/ PR ld/26382 * testsuite/ld-elf/pr26302.nd: Updated. * testsuite/ld-elf/pr26302.rd: New file. * testsuite/ld-elf/shared.exp: Add a test for readelf -sW. --- ld/testsuite/ld-elf/pr26302.nd | 2 +- ld/testsuite/ld-elf/pr26302.rd | 12 ++++++++++++ ld/testsuite/ld-elf/shared.exp | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 ld/testsuite/ld-elf/pr26302.rd (limited to 'ld/testsuite/ld-elf') diff --git a/ld/testsuite/ld-elf/pr26302.nd b/ld/testsuite/ld-elf/pr26302.nd index 1f2fbdf..bc9a675 100644 --- a/ld/testsuite/ld-elf/pr26302.nd +++ b/ld/testsuite/ld-elf/pr26302.nd @@ -1,3 +1,3 @@ #... - +U foo@@FOO + +U foo@FOO #pass diff --git a/ld/testsuite/ld-elf/pr26302.rd b/ld/testsuite/ld-elf/pr26302.rd new file mode 100644 index 0000000..8f7b8a9 --- /dev/null +++ b/ld/testsuite/ld-elf/pr26302.rd @@ -0,0 +1,12 @@ +#... +Symbol table '\.dynsym' contains [0-9]+ entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name +#... + +[0-9]+: +[a-f0-9]+ +0 +FUNC +GLOBAL +DEFAULT +UND +foo@FOO \([0-9]+\) +#... + +Symbol table '\.symtab' contains [0-9]+ entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name +#... + +[0-9]+: +[a-f0-9]+ +0 +FUNC +GLOBAL +DEFAULT +UND +foo@FOO +#pass diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp index 0149371..4de5b34 100644 --- a/ld/testsuite/ld-elf/shared.exp +++ b/ld/testsuite/ld-elf/shared.exp @@ -856,7 +856,8 @@ run_cc_link_tests [list \ "-shared -Wl,--no-as-needed tmpdir/pr26302a.so" \ "-fPIC" \ {pr26302b.c} \ - {{nm {-u} pr26302.nd} \ + {{readelf {-sW} pr26302.rd} \ + {nm {-u} pr26302.nd} \ {nm {-u -D} pr26302.nd} \ {nm {-u -D --with-symbol-versions} pr26302.nd}} \ "pr26302b.so" \ -- cgit v1.1