---
** [tickets:#335] OpenOCD does not recognize POSIX absolute path names on
mingw**
**Status:** new
**Milestone:** 0.11.0
**Labels:** mingw mingw64 msys2
**Created:** Mon Feb 07, 2022 07:54 AM UTC by themole
**Last Updated:** Mon Feb 07, 2022 07:54 AM UTC
**Owner:** nobody
OpenOCD seems to misinterpret absolute path names on Windows running with MSYS2
and mingw64.
I also asked for help on
[stackoverflow](https://stackoverflow.com/questions/70840794/openocd-on-msys2-mingw64),
where you could possibly find more details.
Here is the excerpt from the Q&A on Stackoverflow:
I traced down the problem to the point, where the absolute path to the
stlink.cfg is somehow misinterpreted. While all command line tools can find the
file `/c/somepath/RIOT/dist/tools/openocd/adapters/stlink.cfg`, openocd does
not. OpenOCD is the mingw64 version residing in `/mingw64/bin/openocd`.
The command in question, executed by RIOTs Makefiles is:
~~~
sh -c "openocd \
-c 'set stlink_version 2;source
/c/somepath/RIOT/dist/tools/openocd/adapters/stlink.cfg' \
-c 'transport select hla_swd' \
-f '/c/somepath/RIOT/boards/common/stm32/dist/stm32f4.cfg' \
-c 'tcl_port 0' \
-c 'telnet_port 0' \
-c 'gdb_port 0' \
-c 'init' \
-c 'targets' \
-c 'reset halt' \
-c 'flash write_image erase
\"/c/somepath/RIOT/hello_world/bin/stm32f429i-disco/helloworld.elf\" 0 ' \
-c 'verify_image
"/c/somepath/RIOT/hello_world/bin/stm32f429i-disco/helloworld.elf" 0' \
-c 'reset run' \
-c 'shutdown'"
~~~
and also when I just execute:
~~~
openocd -d -c 'set stlink_version 2;source
/c/somepath/RIOT/dist/tools/openocd/adapters/stlink.cfg'
~~~
Same error occurs:
~~~
Open On-Chip Debugger 0.11.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
User : 13 2 options.c:63 configuration_output_handler(): debug_level: 3
[...]
User : 24 3 command.c:694 command_run_line(): couldn't read file
"/c/somepath/RIOT/dist/tools/openocd/adapters/stlink.cfg": No such file or
directory
~~~
But when I execute:
~~~
openocd -d -c 'set stlink_version 2;source
c:/somepath/RIOT/dist/tools/openocd/adapters/stlink.cfg'
~~~
it seems to work.
A simple `cat /c/somepath/RIOT/dist/tools/openocd/adapters/stlink.cfg` shows
the correct content of the file, the same when I prepend `c:/` instead of `/c/`.
I tried to dig into openocd's code, but since thissomehow involves the
interpreter, there is no chance for me to dig deep enough.
---
Sent from sourceforge.net because openocd-devel@lists.sourceforge.net is
subscribed to https://sourceforge.net/p/openocd/tickets/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/openocd/admin/tickets/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list.