summaryrefslogtreecommitdiff
path: root/system/binutils/musl-versioned-syms.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/binutils/musl-versioned-syms.patch')
-rw-r--r--system/binutils/musl-versioned-syms.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/system/binutils/musl-versioned-syms.patch b/system/binutils/musl-versioned-syms.patch
new file mode 100644
index 000000000..3812947c3
--- /dev/null
+++ b/system/binutils/musl-versioned-syms.patch
@@ -0,0 +1,19 @@
+This test will not work on musl which does not support symbol versioning.
+
+--- binutils-2.41/ld/testsuite/ld-elfvers/vers.exp.old 2023-07-02 18:00:00.000000000 -0500
++++ binutils-2.41/ld/testsuite/ld-elfvers/vers.exp 2023-09-22 22:20:51.407688782 -0500
+@@ -888,8 +888,12 @@
+ # Test that when we override a versioned symbol from the library this
+ # symbol appears in the dynamic symbol table of the executable.
+ #
+-build_vers_lib_pic "vers16a" vers16a.c vers16a "" vers16.map vers16a.ver vers16a.dsym ""
+-build_exec "vers16" vers16.c vers16 "-Wl,--no-as-needed" vers16a.so "" vers16.dsym ""
++if { [istarget *-*-musl*] } then {
++ xfail "vers16"
++} else {
++ build_vers_lib_pic "vers16a" vers16a.c vers16a "" vers16.map vers16a.ver vers16a.dsym ""
++ build_exec "vers16" vers16.c vers16 "-Wl,--no-as-needed" vers16a.so "" vers16.dsym ""
++}
+
+ # Test a weak versioned symbol.
+ build_vers_lib_pic "vers17" vers17.c vers17 "" vers17.map vers17.ver vers17.dsym ""