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


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

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.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=                        \


More information about the core-libs-dev mailing list