diff options
-rw-r--r-- | binutils/ChangeLog | 11 | ||||
-rw-r--r-- | binutils/doc/binutils.texi | 10 | ||||
-rw-r--r-- | binutils/nm.c | 26 | ||||
-rw-r--r-- | ld/ChangeLog | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/pr26302.nd | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/pr26302.ver | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/pr26302a.c | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/pr26302b.c | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/shared.exp | 18 |
9 files changed, 65 insertions, 28 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 0aab6a2..a536d32 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,14 @@ +2020-08-10 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/26302 + * nm.c (with_symbol_versions): Removed. + (long_option_values): Add OPTION_WITH_SYMBOL_VERSIONS. + (long_options): Update --with-symbol-versions entry. + (print_symbol): Remove the with_symbol_versions check. + (main): Add OPTION_WITH_SYMBOL_VERSIONS for backward + compatibility. + * doc/binutils.texi: Remove --with-symbol-versions. + 2020-08-05 Alan Modra <amodra@gmail.com> PR 26337 diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index 4a11bf1..0822b5c 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -796,7 +796,7 @@ nm [@option{-A}|@option{-o}|@option{--print-file-name}] [@option{-a}|@option{--d [@option{--plugin} @var{name}] [@option{--no-recurse-limit}|@option{--recurse-limit}]] [@option{--size-sort}] [@option{--special-syms}] - [@option{--synthetic}] [@option{--with-symbol-versions}] [@option{--target=}@var{bfdname}] + [@option{--synthetic}] [@option{--target=}@var{bfdname}] [@var{objfile}@dots{}] @c man end @end smallexample @@ -1130,14 +1130,6 @@ Include synthetic symbols in the output. These are special symbols created by the linker for various purposes. They are not shown by default since they are not part of the binary's original source code. -@item --with-symbol-versions -Enables the display of symbol version information if any exists. The -version string is displayed as a suffix to the symbol name, preceded by -an @@ character. For example @samp{foo@@VER_1}. If the version is -the default version to be used when resolving unversioned references -to the symbol then it is displayed as a suffix preceded by two @@ -characters. For example @samp{foo@@@@VER_2}. - @item --target=@var{bfdname} @cindex object code format Specify an object code format other than your system's default format. diff --git a/binutils/nm.c b/binutils/nm.c index 1b5122d..69e697a 100644 --- a/binutils/nm.c +++ b/binutils/nm.c @@ -161,7 +161,6 @@ static int show_version = 0; /* Show the version number. */ static int show_synthetic = 0; /* Display synthesized symbols too. */ static int line_numbers = 0; /* Print line numbers for symbols. */ static int allow_special_symbols = 0; /* Allow special symbols. */ -static int with_symbol_versions = 0; /* Include symbol version information in the output. */ static int demangle_flags = DMGL_ANSI | DMGL_PARAMS; @@ -192,7 +191,8 @@ enum long_option_values OPTION_PLUGIN, OPTION_SIZE_SORT, OPTION_RECURSE_LIMIT, - OPTION_NO_RECURSE_LIMIT + OPTION_NO_RECURSE_LIMIT, + OPTION_WITH_SYMBOL_VERSIONS }; static struct option long_options[] = @@ -226,7 +226,8 @@ static struct option long_options[] = {"defined-only", no_argument, &defined_only, 1}, {"undefined-only", no_argument, &undefined_only, 1}, {"version", no_argument, &show_version, 1}, - {"with-symbol-versions", no_argument, &with_symbol_versions, 1}, + {"with-symbol-versions", no_argument, NULL, + OPTION_WITH_SYMBOL_VERSIONS}, {0, no_argument, 0, 0} }; @@ -901,22 +902,6 @@ print_symbol (bfd * abfd, format->print_symbol_info (&info, abfd); - if (with_symbol_versions) - { - const char * version_string = NULL; - bfd_boolean hidden = FALSE; - - if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0) - version_string = bfd_get_symbol_version_string (abfd, sym, - TRUE, &hidden); - - if (bfd_is_und_section (bfd_asymbol_section (sym))) - hidden = TRUE; - - if (version_string && *version_string != '\0') - printf (hidden ? "@%s" : "@@%s", version_string); - } - if (line_numbers) { static asymbol **syms; @@ -1761,6 +1746,9 @@ main (int argc, char **argv) case OPTION_NO_RECURSE_LIMIT: demangle_flags |= DMGL_NO_RECURSE_LIMIT; break; + case OPTION_WITH_SYMBOL_VERSIONS: + /* Ignored for backward compatibility. */ + break; case 'D': dynamic = 1; break; diff --git a/ld/ChangeLog b/ld/ChangeLog index db019e2..2539fad 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,12 @@ +2020-08-10 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/26302 + * testsuite/ld-elf/pr26302.nd: New file. + * testsuite/ld-elf/pr26302.ver: Likewise. + * testsuite/ld-elf/pr26302a.c: Likewise. + * testsuite/ld-elf/pr26302b.c: Likewise. + * testsuite/ld-elf/shared.exp: Run binutils/26302 tests. + 2020-08-07 David Faust <david.faust@oracle.com> * testsuite/ld-bpf/call-3.s: New file. diff --git a/ld/testsuite/ld-elf/pr26302.nd b/ld/testsuite/ld-elf/pr26302.nd new file mode 100644 index 0000000..1f2fbdf --- /dev/null +++ b/ld/testsuite/ld-elf/pr26302.nd @@ -0,0 +1,3 @@ +#... + +U foo@@FOO +#pass diff --git a/ld/testsuite/ld-elf/pr26302.ver b/ld/testsuite/ld-elf/pr26302.ver new file mode 100644 index 0000000..f2c03ac --- /dev/null +++ b/ld/testsuite/ld-elf/pr26302.ver @@ -0,0 +1,5 @@ +FOO +{ +global: + foo; +}; diff --git a/ld/testsuite/ld-elf/pr26302a.c b/ld/testsuite/ld-elf/pr26302a.c new file mode 100644 index 0000000..cd0130c --- /dev/null +++ b/ld/testsuite/ld-elf/pr26302a.c @@ -0,0 +1,4 @@ +void +foo (void) +{ +} diff --git a/ld/testsuite/ld-elf/pr26302b.c b/ld/testsuite/ld-elf/pr26302b.c new file mode 100644 index 0000000..eae278d --- /dev/null +++ b/ld/testsuite/ld-elf/pr26302b.c @@ -0,0 +1,7 @@ +extern void foo (void); + +void +bar (void) +{ + foo (); +} diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp index e9e9012..0149371 100644 --- a/ld/testsuite/ld-elf/shared.exp +++ b/ld/testsuite/ld-elf/shared.exp @@ -843,6 +843,24 @@ run_cc_link_tests [list \ {{readelf {--dyn-syms --wide} pr26094-1b.rd}} \ "pr26094-1" \ ] \ + [list \ + "Build pr26302a.so" \ + "-shared -Wl,--version-script=pr26302.ver" \ + "-fPIC" \ + {pr26302a.c} \ + {} \ + "pr26302a.so" + ] \ + [list \ + "Build pr26302b.so" \ + "-shared -Wl,--no-as-needed tmpdir/pr26302a.so" \ + "-fPIC" \ + {pr26302b.c} \ + {{nm {-u} pr26302.nd} \ + {nm {-u -D} pr26302.nd} \ + {nm {-u -D --with-symbol-versions} pr26302.nd}} \ + "pr26302b.so" \ + ] \ ] run_ld_link_tests [list \ |