Thank you Magnus, will do.
On Thu, May 3, 2018 at 12:41 PM, Magnus Ihse Bursie <magnus.ihse.bur...@oracle.com> wrote: > I think the main issue here is that BASIC_FIXUP_PATH should be called for > the located msvcr*.dll files. I don't have time to look at it now, but see > if you can do a rewrite using BASIC_FIXUP_PATH when the potential file is > located. This should remove all spaces from the path. > > /Magnus > > > On 2018-05-02 20:46, Thomas Stüfe wrote: >> >> Hi, >> >> My 32bit builds on Windows were failing since quite a while and I >> finally had some minutes to look into that. >> >> See prior discussion here: >> http://mail.openjdk.java.net/pipermail/build-dev/2018-March/021150.html >> >> My output used to look like this: >> >> checking if fixpath.exe works... yes >> POSSIBLE_MSVC_DLL /cygdrive/c/Program >> POSSIBLE_MSVC_DLL Files >> POSSIBLE_MSVC_DLL (x86)/Microsoft >> POSSIBLE_MSVC_DLL Visual >> POSSIBLE_MSVC_DLL Studio >> POSSIBLE_MSVC_DLL 12.0/VC/redist/x64/Microsoft.VC120.CRT/msvcr120.dll >> configure: Found msvcr120.dll at >> /cygdrive/c/Windows/system32/msvcr120.dll using well-known location in >> SYSTEMROOT >> >> So basically, build does not correctly search for msvcr120.dll in >> "/cygdrive/c/Program Files (x86)/Microsoft Visual Studio >> 12.0/VC/redist/x86/Microsoft.VC120.CRT/msvcr120.dll" - instead, it >> fails and falls back to the system default >> "/cygdrive/c/Windows/system32/msvcr120.dll". That dll is a 64bit dll, >> and so configure fails. >> >> Note that 64bit build shows exactly the same behaviour! Only there it >> works by accident, since the default >> /cygdrive/c/Windows/system32/msvcr120.dll it finds happens to be a >> 64bit library too, so configure succeeds. >> >> Part of the problem is TOOLCHAIN_SETUP_MSVC_DLL in >> toolchain_windows.m4. We use a bash for loop to iterate thru a list of >> one or more files, but that for expression should be quoted. >> >> If I make this fix: >> >> --- a/make/autoconf/toolchain_windows.m4 Mon Apr 23 18:04:17 2018 >> -0700 >> +++ b/make/autoconf/toolchain_windows.m4 Wed May 02 18:38:04 2018 >> +0200 >> @@ -556,7 +556,7 @@ >> fi >> fi >> # In case any of the above finds more than one file, loop over >> them. >> - for possible_msvc_dll in $POSSIBLE_MSVC_DLL; do >> + for possible_msvc_dll in "$POSSIBLE_MSVC_DLL"; do >> $ECHO "POSSIBLE_MSVC_DLL $possible_msvc_dll" >> TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], >> [$possible_msvc_dll], >> [well-known location in VCINSTALLDIR]) >> >> >> the 32bit configure correctly sets the msvcrt dll: >> >> POSSIBLE_MSVC_DLL /cygdrive/c/Program Files (x86)/Microsoft Visual >> Studio 12.0/VC/redist/x86/Microsoft.VC120.CRT/msvcr120.dll >> configure: Found msvcr120.dll at /cygdrive/c/Program Files >> (x86)/Microsoft Visual Studio >> 12.0/VC/redist/x86/Microsoft.VC120.CRT/msvcr120.dll using well-known >> location in VCINSTALLDIR >> checking found msvcr120.dll architecture... ok >> >> and I can start the build, but I get follow up errors: >> >> ... >> Creating hotspot/variant-server/tools/adlc/adlc.exe from 13 file(s) >> Compiling 2 files for BUILD_JVMTI_TOOLS >> make[3]: *** No rule to make target '/cygdrive/c/Program', needed by >> >> '/cygdrive/c/mine/projects/openjdk/jdk-jdk/output-fastdebug-32/support/modules_libs/java.base/Program'. >> Stop. >> make[3]: *** Waiting for unfinished jobs.... >> make[2]: *** [make/Main.gmk:165: java.base-copy] Error 2 >> make[2]: *** Waiting for unfinished jobs.... >> >> I stopped looking at that point, but to me it looks like the build >> cannot survive msvcrt.dll locations with spaces in them. >> >> Kind Regards, Thomas > >