[binutils-gdb/binutils-2_35-branch] nm: Remove --with-symbol-versions

Alan Modra amodra@sourceware.org
Thu Dec 31 23:50:13 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=794e008bac4ed9948015644bcf9b3ae178ef9a50

commit 794e008bac4ed9948015644bcf9b3ae178ef9a50
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 10 05:17:28 2020 -0700

    nm: Remove --with-symbol-versions
    
    Since
    
    commit 7e6e972f74aeac0ebdbd95a7f905d871cd2581de
    Author: H.J. Lu <hjl.tools@gmail.com>
    Date:   Tue Mar 24 04:23:11 2020 -0700
    
        bfd: Display symbol version for nm -D
    
    always displays symbol version for nm, remove --with-symbol-versions and
    silently accept it for backward compatibility.
    
    binutils/
    
            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.
    
    ld/
    
            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.
    
    (cherry picked from commit 9b0ac51b22d0cf900f39e17e615bb22e32720f6e)

Diff:
---
 binutils/ChangeLog              | 13 +++++++++++++
 binutils/doc/binutils.texi      | 10 +---------
 binutils/nm.c                   | 26 +++++++-------------------
 ld/ChangeLog                    | 11 +++++++++++
 ld/testsuite/ld-elf/pr26302.nd  |  3 +++
 ld/testsuite/ld-elf/pr26302.ver |  5 +++++
 ld/testsuite/ld-elf/pr26302a.c  |  4 ++++
 ld/testsuite/ld-elf/pr26302b.c  |  7 +++++++
 ld/testsuite/ld-elf/shared.exp  | 18 ++++++++++++++++++
 9 files changed, 69 insertions(+), 28 deletions(-)

diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9dc7136863f..54c575a8d2e 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,16 @@
+2021-01-01  Alan Modra  <amodra@gmail.com>
+
+	Apply from master
+	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-11-22  Alan Modra  <amodra@gmail.com>
 
 	PR 26929
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index f19862655bd..a2afcba3dbc 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, preceeded 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 preceeded 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 1b5122d56ab..69e697ae925 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 89ec0798dbe..e2469c0cf34 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,14 @@
+2021-01-01  Alan Modra  <amodra@gmail.com>
+
+	Apply from master
+	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-12-04  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR ld/27016
diff --git a/ld/testsuite/ld-elf/pr26302.nd b/ld/testsuite/ld-elf/pr26302.nd
new file mode 100644
index 00000000000..1f2fbdf9a3f
--- /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 00000000000..f2c03ac7a13
--- /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 00000000000..cd0130cacdf
--- /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 00000000000..eae278df96d
--- /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 e9e90120586..014937175fc 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 \


More information about the Binutils-cvs mailing list