mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 13:27:26 +08:00
testsuite: use pwd -W
to convert from Unix to Windows paths
When on a MinGW host, standard_output_file uses a regular expression to convert Unix-style paths of the form "/c/foo" to "c:/foo". This is needed because the paths we pass to GDB (for example, with the "file" command) need to be in the Windows form. However, the regexp only works if your binutils-gdb repo is under a `/[a-z]/...` path (the Unix paths mapping to Windows drives). Presumably, that works if you clone the repo in Windows, then access it through `/c/...`. In my case, I've cloned the repository directly inside my MinGW shell, so in /home/smarchi. The regexp therefore doesn't work for me. The path doesn't get transformed, and the file command fails when running any test: (gdb) file /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.arch/i386-bp_permanent/i386-bp_permanent /home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.arch/i386-bp_permanent/i386-bp_permanent: No such file or directory. A safer way to do this is to execute `pwd -W` while in the directory we want the path for, this is what this patch does. I have also considered using the using the cygpath utility to do the conversion. It can be used to convert any MinGW path into its Windows equivalent. Despite originally coming from Cygwin, the cygpath utility is distributed by MinGW-w64 and can be used in that environment. However, it's not distributed with the non-MinGW-w64 MinGW. The `pwd -W` trick only works with directories that exist, which is the case here, so it's sufficient. With this, the file command in the test succeeds: (gdb) file C:/msys64/home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.arch/i386-bp_permanent/i386-bp_permanent Reading symbols from C:/msys64/home/smarchi/build/binutils-gdb/gdb/testsuite/outputs/gdb.arch/i386-bp_permanent/i386-bp_permanent... gdb/testsuite/ChangeLog: * lib/gdb.exp (standard_output_file): Use `pwd -W` to convert from Unix to Windows path.
This commit is contained in:
@ -1,3 +1,8 @@
|
||||
2020-03-11 Simon Marchi <simon.marchi@efficios.com>
|
||||
|
||||
* lib/gdb.exp (standard_output_file): Use `pwd -W` to convert
|
||||
from Unix to Windows path.
|
||||
|
||||
2020-03-11 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
* gdb.ada/minsyms.exp: Set language to ada.
|
||||
|
@ -4899,7 +4899,7 @@ proc standard_output_file {basename} {
|
||||
file mkdir $dir
|
||||
# If running on MinGW, replace /c/foo with c:/foo
|
||||
if { [ishost *-*-mingw*] } {
|
||||
set dir [regsub {^/([a-z])/} $dir {\1:/}]
|
||||
set dir [exec sh -c "cd ${dir} && pwd -W"]
|
||||
}
|
||||
return [file join $dir $basename]
|
||||
}
|
||||
|
Reference in New Issue
Block a user