nm: Remove --with-symbol-versions

Since

commit 7e6e972f74
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.
This commit is contained in:
H.J. Lu 2020-08-10 05:17:28 -07:00
parent 40f3419a81
commit 9b0ac51b22
9 changed files with 65 additions and 28 deletions

View File

@ -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

View File

@ -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.

View File

@ -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;

View File

@ -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.

View File

@ -0,0 +1,3 @@
#...
+U foo@@FOO
#pass

View File

@ -0,0 +1,5 @@
FOO
{
global:
foo;
};

View File

@ -0,0 +1,4 @@
void
foo (void)
{
}

View File

@ -0,0 +1,7 @@
extern void foo (void);
void
bar (void)
{
foo ();
}

View File

@ -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 \