bash configure fails on missing VS tools dir
Erik Joelsson
erik.joelsson at oracle.com
Wed Jan 3 13:24:07 UTC 2018
Hello Nir,
On 2018-01-03 13:05, Nir Lisker wrote:
> When trying to build JDK 11 on Windows 10 with VS Express 2013 Update 4 (as
> stated in the docs - the highest supported version) the build fails:
AFAIK, this should work, though I have only ever used VS 2013 Professional.
> bash configure --with-tools-dir='C:\Program Files (x86)\Microsoft Visual
> Studio 12.0\VC\bin'
If VS is properly installed in the default location, there should be no
need to specify --with-tools-dir. Configure will look in the default
location automatically.
> ...
> configure: Found Visual Studio installation at /cygdrive/c/Program Files
> (x86)/Microsoft Visual Studio 12.0/ using --with-tools-dir
> configure: Warning: vc/bin/amd64/vcvars64.bat is missing, this is probably
> Visual Studio Express. Ignoring
> configure: Found Visual Studio installation at /cygdrive/c/Program Files
> (x86)/ using --with-tools-dir
> configure: Warning: vc/bin/amd64/vcvars64.bat is missing, this is probably
> Visual Studio Express. Ignoring
> configure: The path given by --with-tools-dir does not contain a valid
> configure: Visual Studio installation. Please point to the VC/bin or
> VC/bin/amd64
> configure: directory within the Visual Studio installation
> configure: error: Cannot locate a valid Visual Studio installation
> configure exiting with result code 1
>
> /Microsoft Visual Studio 12.0/VC/bin/ does not contain an /amd64 folder,
> instead it has /x86_amd64. Also, vcvars64.bat is located directly under
> /VC/bin.
This is strange. Looking at the configure source, we assume that the VS
installation should contain "vc/bin/amd64/vcvars64.bat". If that file
isn't found, configure doesn't recognize the VS installation.
Unfortunately I don't have an Express installation to look at, but my
old professional installation has that file. In VC/bin I only have
vcvars32.bat.
I'm pretty sure this layout was how the express edition used to look as
well. Otherwise Magnus wouldn't have written the build doc claiming it
would work.
This means the file layout for Visual Studio 2013 has changed, or that
it's different on Windows 10 (our builds are on older versions of
Windows still).
If you would like to try to fix this, the logic that needs updating is
in make/autoconf/toolchain_windows.m4, in the macro
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT.
> Iv'e made another attempt using /Microsoft Visual Studio 11.0/VC/bin/ which
> resulted in the same error. This folder also has vcvars64.bat directly
> under it. It also contains an /amd64 folder with a couple of dlls inside.
>
> Since I'm specifying the path to the /VC/bin dir I don't understand why
> it's still complaining. What am I doing wrong?
Because of how different the versions of Visual Studio are, configure
will not automatically assume or try a different version than the
default without being told to. If you want to try 2012, you need to tell
configure using --with-toolchain-version=2012. No need to specify tools
dir as long as it's installed in the default location.
> On a related note, is it possible to update the build requirements to work
> with VS 2017? OpenJFX already uses this version.
This will likely happen in JDK 11 time frame. Note though that changing
compilers is usually a pretty big effort so it will take a while.
/Erik
> - Nir
More information about the build-dev
mailing list