Some packages of ours rely on the output of nm to not contain symversions. E.g. perf uses 'nm -D' to construct a linker input file with symbol names. ld errors on the '@' characters. Until those packages are fixed we use this patch. We have to carry it for old code streams forever. diff --git a/binutils/nm.c b/binutils/nm.c index 2637756c647..253714ef179 100644 --- a/binutils/nm.c +++ b/binutils/nm.c @@ -458,7 +458,7 @@ print_symname (const char *form, struct extended_symbol_info *info, name = alloc; } - if (info != NULL && info->elfinfo && with_symbol_versions) + if (info != NULL && info->elfinfo && with_symbol_versions && 0) { const char *version_string; bool hidden; diff --git a/ld/testsuite/ld-elf/pr25708.d b/ld/testsuite/ld-elf/pr25708.d index 60b8e31807a..1b62e25347e 100644 --- a/ld/testsuite/ld-elf/pr25708.d +++ b/ld/testsuite/ld-elf/pr25708.d @@ -2,8 +2,9 @@ #ld: -shared -version-script pr13195.t #nm: -D --with-symbol-versions #target: *-*-linux* *-*-gnu* arm*-*-uclinuxfdpiceabi -#xfail: hppa64-*-* ![check_shared_lib_support] +#xfail: *-*-* ![check_shared_lib_support] # h8300 doesn't support -shared, and hppa64 creates .foo +# our binutils revert the printing of symversions with nm -D #.. 0+ A VERS_2.0