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