To clarify, you need the added
FIXPATH_ARGS="-e $PATHTOOL -p $WINENV_PREFIX_ARG -r
${WINENV_ROOT//\\/\\\\} -t $WINENV_TEMP_DIR -c $CMD -q"
to be sure to get the correct behavior.
/Magnus
On 2022-10-20 17:03, Magnus Ihse Bursie wrote:
The fixpath.sh script has two "modes", one in which it tries to
autodetect it's environment itself, and one in which the environment
info is fed into it from the caller.
The latter method is used in all real use cases when it is used in the
make files.
You are exercising the first case. That is only intended as a
development tool, and might not work correctly.
I think that is the answer to the oddities you are seeing.
Look in `spec.gmk` to find how fixpath.sh is really called during a
makefile execution.
/Magnus
On 2022-10-20 10:58, Julian Waters wrote:
Hi all,
On Windows MakeBase contains a utility to extract Windows paths from
Unix style paths:
# FixPath
#
# On Windows, converts a path from cygwin/unix style (e.g. /bin/foo)
into
# "mixed mode" (e.g. c:/cygwin/bin/foo). On other platforms, return
the path
# unchanged.
# This also converts a colon-separated list of paths to a
semicolon-separated
# list.
# This is normally not needed since we use the FIXPATH prefix for
command lines,
# but might be needed in certain circumstances.
According to the documentation it should be able to handle paths like
/usr/bin or /bin/xxx, but manually invoking the implementation of
this utility from the shell seems to indicate that it can only
properly convert full paths that have environment prefixes and so on,
with the "true" Unix style paths simply expanding into empty strings:
Working usage:
user@LAPTOP-NEMLU0S6:/mnt/d/eclipse/workspace/hotspot/jdk$ fixpath
print
/mnt/c/progra~1/mib055~1/2022/commun~1/vc/tools/msvc/1432~1.313/bin/hostx64/x64/cl.exe
c:\progra~1\mib055~1\2022\commun~1\vc\tools\msvc\1432~1.313\bin\hostx64\x64\cl.exe
user@LAPTOP-NEMLU0S6:/mnt/d/eclipse/workspace/hotspot/jdk$
as compared to:
user@LAPTOP-NEMLU0S6:/mnt/d/eclipse/workspace/hotspot/jdk$
/mnt/d/eclipse/workspace/hotspot/jdk/build/windows-x86_64-server-release/fixpath
print /usr/bin/make
vertig0@LAPTOP-NEMLU0S6:/mnt/d/eclipse/workspace/hotspot/jdk$
I can't quite tell if this is a subtle bug or if it's working as
intended, and the documentation is just a tad outdated/was
misinterpreted by me, so I thought I'd raise it on the list just in
case (I first caught this while using FixPath on a local branch).
best regards,
Julian