bash configure - LINK : fatal error LNK1104: cannot open file ...fixpath.exe (original) (raw)

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