summaryrefslogtreecommitdiff
path: root/system/binutils/ar-deterministic-tests.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/binutils/ar-deterministic-tests.patch')
-rw-r--r--system/binutils/ar-deterministic-tests.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/system/binutils/ar-deterministic-tests.patch b/system/binutils/ar-deterministic-tests.patch
new file mode 100644
index 000000000..f3f63b937
--- /dev/null
+++ b/system/binutils/ar-deterministic-tests.patch
@@ -0,0 +1,67 @@
+From: Stephen Kitt <steve@sk2.org>
+Date: Mon, 11 Mar 2024 07:21:47 +0000 (+0100)
+Subject: tests: force non-deterministic mode in non-deterministic tests
+X-Git-Tag: gdb-15-branchpoint~761
+X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=64e215c15bc316f673161c76db93a50bda45666a;hp=5790996072837620a8fd3756dda5138eb2f2781b
+
+tests: force non-deterministic mode in non-deterministic tests
+
+Since ar can be built defaulting to deterministic mode, tests which
+expect non-deterministic behaviour need to explicitly set the U flag.
+
+The non-deterministic member test expects SOURCE_DATE_EPOCH to not be
+set; this documents that. Unconditionally unsetting the variable
+causes issues in test infrastructure (which expects unsetenv to only
+be called on variables which are already set).
+
+Signed-off-by: Stephen Kitt <steve@sk2.org>
+---
+
+diff --git a/binutils/testsuite/binutils-all/ar.exp b/binutils/testsuite/binutils-all/ar.exp
+index d4e4f64b42e..998cbe1f0a9 100644
+--- a/binutils/testsuite/binutils-all/ar.exp
++++ b/binutils/testsuite/binutils-all/ar.exp
+@@ -538,6 +538,7 @@ proc replacing_deterministic_member { } {
+ }
+
+ # Test replacing a member of a non-deterministic archive.
++# This test expects SOURCE_DATE_EPOCH to not be set in the environment.
+
+ proc replacing_non_deterministic_member { } {
+ global AR
+@@ -581,7 +582,7 @@ proc replacing_non_deterministic_member { } {
+
+ # Build the archive with the *newer* object file.
+
+- set got [binutils_run $AR "rc $archive ${newer_objfile}"]
++ set got [binutils_run $AR "rcU $archive ${newer_objfile}"]
+ if ![string match "" $got] {
+ fail "$testname: (could not build archive)"
+ return
+@@ -589,7 +590,7 @@ proc replacing_non_deterministic_member { } {
+
+ # Now try to replace the newer file with the older one. This should not work.
+
+- set got [binutils_run $AR "ru $archive $older_objfile"]
++ set got [binutils_run $AR "ruU $archive $older_objfile"]
+ if ![string match "" $got] {
+ fail "$testname: (failed to replace file)"
+ return
+@@ -651,7 +652,7 @@ proc replacing_sde_deterministic_member { } {
+ # Build the archive with the *newer* object file.
+ setenv SOURCE_DATE_EPOCH "1000"
+
+- set got [binutils_run $AR "rc $archive ${newer_objfile}"]
++ set got [binutils_run $AR "rcU $archive ${newer_objfile}"]
+ if ![string match "" $got] {
+ fail "$testname: (could not build archive)"
+ unsetenv SOURCE_DATE_EPOCH
+@@ -662,7 +663,7 @@ proc replacing_sde_deterministic_member { } {
+ # archive this will not work, but one created to be deterministic
+ # should always replace its members.
+
+- set got [binutils_run $AR "ru $archive $older_objfile"]
++ set got [binutils_run $AR "ruU $archive $older_objfile"]
+ if ![string match "" $got] {
+ fail "$testname: (failed to replace file)"
+ unsetenv SOURCE_DATE_EPOCH