[PATCH] ld: testsuite: Fix a few backslash-related issues on MinGW.

Jan Dubiec jdx@o2.pl
Fri Jul 17 10:14:10 GMT 2026


Several relatively new test cases fail on MinGW:
[...]
Running /d/Works/binutils/ld/testsuite/ld-archive/archive.exp ...
FAIL: Script fake archive link
FAIL: Script fake whole archive link
FAIL: Script fake group archive link accept
[...]

This is because on Windows ld uses "\" instead of "/" to create full file
names as shown in the log below:

[...]
/d/Works/xcomp/build-binutils-h8300-mingw/ld/../gas/as-new   -I/d/Works/binutils/ld/testsuite/ld-archive   -o tmpdir/abc.o  /d/Works/binutils/ld/testsuite/ld-archive/abc.s
Executing on host: sh -c {/d/Works/xcomp/build-binutils-h8300-mingw/ld/../gas/as-new   -I/d/Works/binutils/ld/testsuite/ld-archive   -o tmpdir/abc.o  /d/Works/binutils/ld/testsuite/ld-archive/abc.s 2>&1}  /dev/null ld.tmp (timeout = 300)
spawn [open ...]
/d/Works/xcomp/build-binutils-h8300-mingw/ld/ld-new    -o tmpdir/absc  -L/d/Works/binutils/ld/testsuite/ld-archive -e ff tmpdir/abc.o /d/Works/binutils/ld/testsuite/ld-archive/ab.t --verbose --print-map
Executing on host: sh -c {/d/Works/xcomp/build-binutils-h8300-mingw/ld/ld-new    -o tmpdir/absc  -L/d/Works/binutils/ld/testsuite/ld-archive -e ff tmpdir/abc.o /d/Works/binutils/ld/testsuite/ld-archive/ab.t --verbose --print-map 2>&1}  /dev/null ld.tmp (timeout = 300)
spawn [open ...]
GNU ld (GNU Toolchain for Renesas H8 Family [Built by jdx] (rev. 150e616528b)) 2.47.50.20260713
  Supported emulations:
   h8300helf
   h8300self
   h8300hnelf
   h8300snelf
   h8300sxelf
   h8300sxnelf
   h8300elf
using internal linker script:

[... IRRELEVANT LINKER SCRIPT REMOVED ..]

==================================================
D:\Works\xcomp\build-binutils-h8300-mingw\ld\ld-new.exe: mode h8300helf
attempt to open tmpdir/abc.o succeeded
tmpdir/abc.o
attempt to open D:/Works/binutils/ld/testsuite/ld-archive/ab.t succeeded
D:/Works/binutils/ld/testsuite/ld-archive/ab.t
opened script file D:/Works/binutils/ld/testsuite/ld-archive/ab.t
attempt to open D:/Works/binutils/ld/testsuite/ld-archive\tmpdir/a.o failed
attempt to open tmpdir/a.o succeeded
attempt to open D:/Works/binutils/ld/testsuite/ld-archive\tmpdir/b.o failed
attempt to open tmpdir/b.o succeeded
attempt to open D:/Works/binutils/ld/testsuite/ld-archive\tmpdir/x.o failed
attempt to open tmpdir/x.o succeeded
<no file> (D:\Works\xcomp\build-binutils-h8300-mingw\ld\ld-new.exe generated)
Archive member included to satisfy reference by file (symbol)

tmpdir/a.o                    tmpdir/abc.o (aa)
tmpdir/a.o
tmpdir/b.o                    tmpdir/abc.o (bb)
tmpdir/b.o

There are no discarded input sections

[... IRRELEVANT MAP FILE REMOVED ..]

regexp_diff match failure
regexp "^attempt to open .*/ld/testsuite/ld-archive/tmpdir/a\.o failed$"
line   "attempt to open D:/Works/binutils/ld/testsuite/ld-archive\tmpdir/a.o failed"
regexp_diff match failure
regexp "^attempt to open .*/ld/testsuite/ld-archive/tmpdir/b\.o failed$"
line   "attempt to open D:/Works/binutils/ld/testsuite/ld-archive\tmpdir/b.o failed"
regexp_diff match failure
regexp "^attempt to open .*/ld/testsuite/ld-archive/tmpdir/x\.o failed$"
line   "attempt to open D:/Works/binutils/ld/testsuite/ld-archive\tmpdir/x.o failed"
FAIL: Script fake archive link
[...]

Signed-off-by: Jan Dubiec <jdx@o2.pl>
---
 ld/testsuite/ld-archive/absc.vd   | 6 +++---
 ld/testsuite/ld-archive/abscfg.vd | 6 +++---
 ld/testsuite/ld-archive/abwsc.vd  | 6 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/ld/testsuite/ld-archive/absc.vd b/ld/testsuite/ld-archive/absc.vd
index c48f8f3652c..ac543fc9215 100644
--- a/ld/testsuite/ld-archive/absc.vd
+++ b/ld/testsuite/ld-archive/absc.vd
@@ -9,11 +9,11 @@ tmpdir/abc\.o
 attempt to open .*/ld/testsuite/ld-archive/ab\.t succeeded
 .*/ld/testsuite/ld-archive/ab\.t
 opened script file .*/ld/testsuite/ld-archive/ab\.t
-attempt to open .*/ld/testsuite/ld-archive/tmpdir/a\.o failed
+attempt to open .*/ld/testsuite/ld-archive[/\\]tmpdir/a\.o failed
 attempt to open tmpdir/a\.o succeeded
-attempt to open .*/ld/testsuite/ld-archive/tmpdir/b\.o failed
+attempt to open .*/ld/testsuite/ld-archive[/\\]tmpdir/b\.o failed
 attempt to open tmpdir/b\.o succeeded
-attempt to open .*/ld/testsuite/ld-archive/tmpdir/x\.o failed
+attempt to open .*/ld/testsuite/ld-archive[/\\]tmpdir/x\.o failed
 attempt to open tmpdir/x\.o succeeded
 <no file> \(.* generated\)
 Archive member included to satisfy reference by file \(symbol\)
diff --git a/ld/testsuite/ld-archive/abscfg.vd b/ld/testsuite/ld-archive/abscfg.vd
index 8751f390216..9ee345b7375 100644
--- a/ld/testsuite/ld-archive/abscfg.vd
+++ b/ld/testsuite/ld-archive/abscfg.vd
@@ -7,11 +7,11 @@ using ..ternal linker script:.*
 attempt to open .*/ld/testsuite/ld-archive/ab\.t succeeded
 .*/ld/testsuite/ld-archive/ab\.t
 opened script file .*/ld/testsuite/ld-archive/ab\.t
-attempt to open .*/ld/testsuite/ld-archive/tmpdir/a\.o failed
+attempt to open .*/ld/testsuite/ld-archive[/\\]tmpdir/a\.o failed
 attempt to open tmpdir/a\.o succeeded
-attempt to open .*/ld/testsuite/ld-archive/tmpdir/b\.o failed
+attempt to open .*/ld/testsuite/ld-archive[/\\]tmpdir/b\.o failed
 attempt to open tmpdir/b\.o succeeded
-attempt to open .*/ld/testsuite/ld-archive/tmpdir/x\.o failed
+attempt to open .*/ld/testsuite/ld-archive[/\\]tmpdir/x\.o failed
 attempt to open tmpdir/x\.o succeeded
 <no file> \(.* generated\)
 attempt to open tmpdir/abc\.o succeeded
diff --git a/ld/testsuite/ld-archive/abwsc.vd b/ld/testsuite/ld-archive/abwsc.vd
index 8c36e694cfa..5e8585b7cca 100644
--- a/ld/testsuite/ld-archive/abwsc.vd
+++ b/ld/testsuite/ld-archive/abwsc.vd
@@ -9,11 +9,11 @@ tmpdir/abc\.o
 attempt to open .*/ld/testsuite/ld-archive/ab\.t succeeded
 .*/ld/testsuite/ld-archive/ab\.t
 opened script file .*/ld/testsuite/ld-archive/ab\.t
-attempt to open .*/ld/testsuite/ld-archive/tmpdir/a\.o failed
+attempt to open .*/ld/testsuite/ld-archive[/\\]tmpdir/a\.o failed
 attempt to open tmpdir/a\.o succeeded
-attempt to open .*/ld/testsuite/ld-archive/tmpdir/b\.o failed
+attempt to open .*/ld/testsuite/ld-archive[/\\]tmpdir/b\.o failed
 attempt to open tmpdir/b\.o succeeded
-attempt to open .*/ld/testsuite/ld-archive/tmpdir/x\.o failed
+attempt to open .*/ld/testsuite/ld-archive[/\\]tmpdir/x\.o failed
 attempt to open tmpdir/x\.o succeeded
 <no file> \(.* generated\)
 Archive member included to satisfy reference by file \(symbol\)
-- 
2.54.0


More information about the Binutils mailing list