RFR: JDK-8042707: Source changes needed to build JDK 9 with Visual Studio 2013 (VS2013)
Erik Joelsson
erik.joelsson at oracle.com
Thu Jan 8 14:55:41 UTC 2015
Hello,
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