RFR: 8289646: configure script failed on WSL [v2]
Yasumasa Suenaga
ysuenaga at openjdk.org
Tue Jul 5 03:09:21 UTC 2022
On Mon, 4 Jul 2022 22:32:20 GMT, Yasumasa Suenaga <ysuenaga at openjdk.org> wrote:
>> configure failed as following when I run it on WSL 1.
>>
>>
>> checking for version string... 20-internal-adhoc.yasuenag.jdk
>> configure: Found potential Boot JDK using configure arguments
>> configure: The command for java_to_test, which resolves as "/mnt/d/java/jdk-18/bin/java", can not be found.
>> configure: error: Cannot locate /mnt/d/java/jdk-18/bin/java
>> configure exiting with result code 1
>>
>>
>> fixpath.sh would attempt to add ".exe" (e.g. "java" -> "java.exe") if `wslpath -w" failed (returns non-zero value). However it returns zero even if the path does not exist in recent WSL (v0.61.4 at least).
>>
>> WSL v0.60.0.0
>>
>> $ wslpath -w silver-bullet
>> wslpath: silver-bullet: No such file or directory
>> $ echo $?
>> 1
>>
>>
>> WSL v0.61.4.0
>>
>> $ wslpath -w silver-bullet
>> silver-bullet
>> $ echo $?
>> 0
>>
>>
>> We should add ".exe" at the tail of path regardless of return value from wslpath.
>
> Yasumasa Suenaga has updated the pull request incrementally with one additional commit since the last revision:
>
> Update the fix to use unixpath
I think we should test on each platforms manually as possible. IMHO fixpath is a complex application, so it is better to make testcases for it, but I'm not sure it is right thing (because fixpath is not a part of OpenJDK binaries - for example, we can think it is ok to pass GHA build test (msys2)).
> What if the path is not an executable? Now you unconditionally add .exe, even if the .exe does not exist.
I think all of files on Windows filesystems (NTFS, vfat) has exec bit (+x) - I've read about it in book in the past, but I forget the title...
fixpath has relied on return code from PATHTOOL, so it expects non-zero value if the path does not exist. I added path check as following in new commit.
155 # Now turn it into a windows path
156 winpath="$($PATHTOOL -w "$unixpath" 2>/dev/null)"
157 if [[ $? -eq 0 && -e "$unixpath" ]]; then
-------------
PR: https://git.openjdk.org/jdk/pull/9357
More information about the build-dev
mailing list