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. Index: binutils-2.45/binutils/nm.c =================================================================== --- binutils-2.45.orig/binutils/nm.c 2025-10-14 15:49:38.923457582 +0200 +++ binutils-2.45/binutils/nm.c 2025-10-14 15:52:19.461171123 +0200 @@ -717,7 +717,7 @@ print_symname (const char *form, struct if (unicode_display != unicode_default) name = convert_utf8 (name); - if (info != NULL && info->elfinfo && with_symbol_versions) + if (info != NULL && info->elfinfo && with_symbol_versions && 0) { const char *version_string; bool hidden; Index: binutils-2.45/ld/testsuite/ld-elf/pr25708.d =================================================================== --- binutils-2.45.orig/ld/testsuite/ld-elf/pr25708.d 2025-07-27 01:00:00.000000000 +0200 +++ binutils-2.45/ld/testsuite/ld-elf/pr25708.d 2025-10-14 15:52:19.461171123 +0200 @@ -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