RFR: JDK-8042707: Source changes needed to build JDK 9 with Visual Studio 2013 (VS2013)

Tim Bell tim.bell at oracle.com
Mon Jan 12 11:43:21 UTC 2015


Erik:

Looks good to me.  Thanks for picking this up - I struggled with the 
problem for months.

Tim

> Please review this patch, which adds support for building with 
> different versions of Visual Studio and in particular adds support for 
> VS2013. In order to control which version to use, I've introduced a 
> new configure parameter "--with-toolchain-version". On windows, this 
> parameter will have the valid values 2010, 2012 and 2013. The default 
> is still 2010. Note that 2012 was added for convenience, but has not 
> been tested to actually work. The longer term goal is to switch the 
> official compiler used for JDK 9 to VS2013. This is just the first step.
>
> The main difference that needed to be addressed was that 
> _STATIC_CPPLIB is no longer supported since VS2012, so we will now 
> have to bundle another runtime dll (MSVCP). Also, since the build 
> needs to be compatible with multiple versions of VS, we can no longer 
> hard code the name msvcr100.dll. I changed the names of the dlls into 
> macros that get added to the preprocessor command line. Note that the 
> implementation for msvcp*.dll in java_md.c could perhaps be more 
> elegant. I'm not familiar enough with the APIs, but if someone would 
> like to improve on it, please do.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8042707
> Webrevs:
> http://cr.openjdk.java.net/~erikj/8042707/webrev.root.01/
> http://cr.openjdk.java.net/~erikj/8042707/webrev.jdk.01/
>
> Here is a patch for make/jprt.properties that adds new build and test 
> platforms using the new compilers for windows and macosx. If you apply 
> this and run JPRT, windows and mac platforms will be built and tested 
> with both the old and the new compilers. I would like to commit this 
> change too, but will do it separately later.
>
> diff -r ef5c7075496d make/jprt.properties
> --- a/make/jprt.properties
> +++ b/make/jprt.properties
> @@ -115,6 +115,12 @@
>      ${my.i586.default.build.configure.args}                \
>      ${jprt.productOpen.build.configure.args}
>
> +jprt.windows_i586_6.2.build.configure.args= \
> + --with-toolchain-version=2013 \
> +    ${jprt.i586.build.configure.args}
> +jprt.windows_x64_6.2.build.configure.args= \
> +    --with-toolchain-version=2013
> +
>  ########
>  #
>  # Build targets and options (default/jdk)
> @@ -130,8 +136,11 @@
>      linux_i586_2.6-{product|fastdebug},                    \
>      linux_x64_2.6-{product|fastdebug},                    \
>      macosx_x64_10.7-{product|fastdebug},                \
> -    windows_i586_6.1-{product|fastdebug},                \
> -    windows_x64_6.1-{product|fastdebug}
> +    macosx_x64_10.9-{product|fastdebug},                \
> +    windows_i586_6.1-{product|fastdebug},                         \
> + windows_x64_6.1-{product|fastdebug}, \
> + windows_i586_6.2-{product|fastdebug}, \
> +    windows_x64_6.2-{product|fastdebug}
>
>  # Test target list (no fastdebug & limited c2 testing)
>  my.test.target.set=                            \
> @@ -140,8 +149,11 @@
>      linux_i586_2.6-product-{c1|c2}-TESTNAME,                \
>      linux_x64_2.6-product-c2-TESTNAME,                    \
>      macosx_x64_10.7-product-c2-TESTNAME,                \
> +    macosx_x64_10.9-product-c2-TESTNAME,                \
>      windows_i586_6.1-product-c1-TESTNAME,                \
> -    windows_x64_6.1-product-c2-TESTNAME
> +    windows_x64_6.1-product-c2-TESTNAME,                \
> +    windows_i586_6.2-product-c1-TESTNAME,                \
> +    windows_x64_6.2-product-c2-TESTNAME
>
>  # Default vm test targets (testset=default)
>  my.test.targets.default=                        \
>
> /Erik




More information about the build-dev mailing list