aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Kudrin <ikudrin@accesssoftek.com>2017-02-15 09:13:56 +0000
committerNick Clifton <nickc@redhat.com>2017-02-15 09:13:56 +0000
commitdefe6f56b7c6ff106829ad3271ab9f1d501f4708 (patch)
tree2b733305a7e8e393fe683d13ca372c4bc39dcc3e
parentf9029569740a8ef2a66b3578fa6c89c0ab62be52 (diff)
downloadgdb-defe6f56b7c6ff106829ad3271ab9f1d501f4708.zip
gdb-defe6f56b7c6ff106829ad3271ab9f1d501f4708.tar.gz
gdb-defe6f56b7c6ff106829ad3271ab9f1d501f4708.tar.bz2
Use Windows style directory separators when running sysroot tests under MinGW and Cygwin.
* testsuite/ld-scripts/sysroot-prefix.exp (get_base_dir_for_scripts): New function. (run_sysroot_prefix_test): Use get_base_dir_for_scripts.
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/testsuite/ld-scripts/sysroot-prefix.exp20
2 files changed, 25 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 4bb505d..618ae81 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2017-02-15 Igor Kudrin <ikudrin@accesssoftek.com>
+
+ * testsuite/ld-scripts/sysroot-prefix.exp
+ (get_base_dir_for_scripts): New function.
+ (run_sysroot_prefix_test): Use get_base_dir_for_scripts.
+
2017-02-13 Palmer Dabbelt <palmer@dabbelt.com>
* emulparams/elf32lriscv-defs.sh (SDATA_START_SYMBOLS): Change
diff --git a/ld/testsuite/ld-scripts/sysroot-prefix.exp b/ld/testsuite/ld-scripts/sysroot-prefix.exp
index 2bb67e4..0fc322e 100644
--- a/ld/testsuite/ld-scripts/sysroot-prefix.exp
+++ b/ld/testsuite/ld-scripts/sysroot-prefix.exp
@@ -39,6 +39,24 @@ if {$ld_sysroot == "/"} {
set with_sysroot 3
}
+# The linker on Windows expects Windows style paths.
+# MSYS2 runtime converts paths in the command line automatically.
+# However, for our test linker scripts, we have to prepare
+# the correct paths manually.
+proc get_base_dir_for_scripts {} {
+ global base_dir
+ global get_base_dir_for_scripts_saved
+
+ if { ![info exists get_base_dir_for_scripts_saved] } {
+ set get_base_dir_for_scripts_saved $base_dir
+ if { ([ishost *-*-cygwin] || [ishost *-*-mingw*] )
+ && ![catch "exec cygpath -m $base_dir" base_dir_converted] } {
+ set get_base_dir_for_scripts_saved $base_dir_converted
+ }
+ }
+ return $get_base_dir_for_scripts_saved
+}
+
# Entries in the array-tables:
# 0: Testtype; an inclusive bitmask indicating that the test should run on a
# build configured for: 1: non-sysroot, 2: sysroot != "/", 4: sysroot == "/".
@@ -160,7 +178,7 @@ proc run_sysroot_prefix_test { type name templ p ldopt errstr } {
set qlist { { "quoted" "\"" } { "unquoted" {} } }
regsub -all "@p@" $templ $p templ
- regsub -all "@cwd@" $templ "$base_dir/tmpdir" templ
+ regsub -all "@cwd@" $templ "[get_base_dir_for_scripts]/tmpdir" templ
regsub -all "@cwd@" $ldopt "$base_dir/tmpdir" ldopt
regsub -all "@cwd@" $name "<CWD>" name