File binutils-revert-nm-symversion.diff of Package binutils
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.44/binutils/nm.c
===================================================================
--- binutils-2.44.orig/binutils/nm.c 2025-03-20 17:37:37.682937888 +0100
+++ binutils-2.44/binutils/nm.c 2025-03-20 17:37:39.880974290 +0100
@@ -709,7 +709,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.44/ld/testsuite/ld-elf/pr25708.d
===================================================================
--- binutils-2.44.orig/ld/testsuite/ld-elf/pr25708.d 2025-03-20 17:37:37.682937888 +0100
+++ binutils-2.44/ld/testsuite/ld-elf/pr25708.d 2025-03-20 17:37:39.880974290 +0100
@@ -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