summaryrefslogtreecommitdiff
path: root/system/binutils/vers-tests-eabi.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/binutils/vers-tests-eabi.patch')
-rw-r--r--system/binutils/vers-tests-eabi.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/system/binutils/vers-tests-eabi.patch b/system/binutils/vers-tests-eabi.patch
new file mode 100644
index 000000000..2ce59cee2
--- /dev/null
+++ b/system/binutils/vers-tests-eabi.patch
@@ -0,0 +1,33 @@
+By default, the vers4 tests use `sed` to look for `Version` lines.
+
+The problem is, on 32-bit ARM targets we have Version5 EABI. This causes
+the tests to fail, like so:
+
+ objdump --private-headers tmpdir/vers4b | sed -n /Version/,\$p > tmpdir/objdump.out
+ private flags = 0x5000400: [Version5 EABI] [hard-float ABI]
+
+ objdump_emptyverstuff: did not expect any output from objdump
+ FAIL: vers4b
+
+Take 'private flags' lines out of the output to fix this.
+
+Upstream-URL: https://sourceware.org/bugzilla/show_bug.cgi?id=30924
+
+--- binutils-2.41/ld/testsuite/ld-elfvers/vers.exp.old 2023-09-30 21:51:47.304868575 -0500
++++ binutils-2.41/ld/testsuite/ld-elfvers/vers.exp 2023-09-30 21:52:49.738253244 -0500
+@@ -215,11 +215,14 @@
+ # this probably means that there is version information in libc, so we
+ # can't really perform this test.
+ return 1
++ } else { if { [string match "*Version? EABI*" $exec_output] } then {
++# there is EABI Version information in the private flags of the binary.
++ return 1
+ } else {
+ verbose -log "$exec_output"
+ verbose -log "objdump_emptyverstuff: did not expect any output from objdump"
+ return 0
+- } }
++ } } }
+
+ }
+