---

** [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.


Reply via email to