bash configure - LINK : fatal error LNK1104: cannot open file ...fixpath.exe
jbvernee
jbvernee at xs4all.nl
Mon Jun 11 14:38:40 UTC 2018
Hello,
I've been trying to build the JDK using an msys2 toolchain, which seems
to be possible according to this thread:
http://mail.openjdk.java.net/pipermail/build-dev/2017-October/019862.html
(although I'm not trying to use gcc, I'm using VS 15). I know it's
advised to use cygwin, but I can't get that to work at all on my machine
(some error about base heap offset after a fresh install. I might try
troubleshooting that next...)
I'm running into the error mentioned in the subject line while running
`bash configure`, namely:
LINK : fatal error LNK1104: cannot open file
'J:J:/msys64/Projects/openjdk/amber/build/windows-x86_64-normal-server-release/configure-support/bin/fixpath.exe'
I have also created a gist of the full configure log:
https://gist.github.com/JornVernee/6b579e6d13d1fce306d0d370a381d1b3
Looking at this, it seems like the path is getting mangled. The correct
path is
'J:/Projects/openjdk/amber/build/windows-x86_64-normal-server-release/configure-support/bin/fixpath.exe'
But as you can see there is an extra `J:/msys64` in there, which happens
to be the root of my msys2 installation (though I'm running configure in
PowerShell, and not in the included msys2 environment. Switching between
them doesn't fix the problem either though).
I thought I had traced the value of this path to the `OUTPUTDIR`
variable in `\make\autoconf\basics.m4`, where it is created inside this
if-else block:
```
if test "x$CUSTOM_ROOT" != x; then
OUTPUTDIR="${CUSTOM_ROOT}/build/${CONF_NAME}"
else
OUTPUTDIR="${TOPDIR}/build/${CONF_NAME}"
fi
```
Where it is then used to create the `CONFIGURESUPPORT_OUTPUTDIR` path
like: `CONFIGURESUPPORT_OUTPUTDIR="$OUTPUTDIR/configure-support"`, and
finally the output path for fixpath.exe is constructed from that in
`\make\autoconf\basics_windows.m4`:
```
FIXPATH_BIN="$CONFIGURESUPPORT_OUTPUTDIR/bin/fixpath.exe"
FIXPATH_DIR="$CONFIGURESUPPORT_OUTPUTDIR/fixpath"
```
I have tried setting the `CUSTOM_ROOT` variable, but the error remained
the same. As a sanity check I rewrote the if-statement to:
`OUTPUTDIR="J:/Projects/openjdk/amber/build/${CONF_NAME}", but the error
message still remains the same.
I have also tried manually compiling fixpath.c into fixpath.exe and
placing that file into
`/build/windows-x86_64-normal-server-release/configure-support/bin/`,
but the file is just ignored by the configuration script.
At this point I don't know what else I could try. So I'm wondering if
anyone here has any suggestions?
Best regards,
Jorn Vernee
More information about the build-dev
mailing list