changeset 27839:9660f3c8d35a

Merge
author duke
date Wed, 05 Jul 2017 20:09:54 +0200
parents f65d79186283 413d643357c0
children 094b68c3fc1b
files hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/EdenSpace.java hotspot/make/solaris/makefiles/add_gnu_debuglink.make hotspot/make/solaris/makefiles/fix_empty_sec_hdr_flags.make hotspot/src/os/solaris/add_gnu_debuglink/add_gnu_debuglink.c hotspot/src/os/solaris/fix_empty_sec_hdr_flags/fix_empty_sec_hdr_flags.c hotspot/test/compiler/5057225/Test5057225.java hotspot/test/compiler/5091921/Test5091921.java hotspot/test/compiler/5091921/Test6186134.java hotspot/test/compiler/5091921/Test6196102.java hotspot/test/compiler/5091921/Test6357214.java hotspot/test/compiler/5091921/Test6559156.java hotspot/test/compiler/5091921/Test6753639.java hotspot/test/compiler/5091921/Test6850611.java hotspot/test/compiler/5091921/Test6890943.java hotspot/test/compiler/5091921/Test6897150.java hotspot/test/compiler/5091921/Test6905845.java hotspot/test/compiler/5091921/Test6931567.java hotspot/test/compiler/5091921/Test6935022.java hotspot/test/compiler/5091921/Test6959129.java hotspot/test/compiler/5091921/Test6985295.java hotspot/test/compiler/5091921/Test6992759.java hotspot/test/compiler/5091921/Test7005594.java hotspot/test/compiler/5091921/Test7005594.sh hotspot/test/compiler/5091921/Test7020614.java hotspot/test/compiler/5091921/input6890943.txt hotspot/test/compiler/5091921/output6890943.txt hotspot/test/compiler/6340864/TestByteVect.java hotspot/test/compiler/6340864/TestDoubleVect.java hotspot/test/compiler/6340864/TestFloatVect.java hotspot/test/compiler/6340864/TestIntVect.java hotspot/test/compiler/6340864/TestLongVect.java hotspot/test/compiler/6340864/TestShortVect.java hotspot/test/compiler/6378821/Test6378821.java hotspot/test/compiler/6431242/Test.java hotspot/test/compiler/6443505/Test6443505.java hotspot/test/compiler/6478991/NullCheckTest.java hotspot/test/compiler/6539464/Test.java hotspot/test/compiler/6579789/Test6579789.java hotspot/test/compiler/6589834/InlinedArrayCloneTestCase.java hotspot/test/compiler/6589834/Test_ia32.java hotspot/test/compiler/6603011/Test.java hotspot/test/compiler/6636138/Test1.java hotspot/test/compiler/6636138/Test2.java hotspot/test/compiler/6646019/Test.java hotspot/test/compiler/6646020/Tester.java hotspot/test/compiler/6659207/Test.java hotspot/test/compiler/6661247/Test.java hotspot/test/compiler/6663621/IVTest.java hotspot/test/compiler/6663848/Tester.java hotspot/test/compiler/6663854/Test6663854.java hotspot/test/compiler/6689060/Test.java hotspot/test/compiler/6695810/Test.java hotspot/test/compiler/6700047/Test6700047.java hotspot/test/compiler/6711100/Test.java hotspot/test/compiler/6711117/Test.java hotspot/test/compiler/6712835/Test6712835.java hotspot/test/compiler/6714694/Tester.java hotspot/test/compiler/6716441/Tester.java hotspot/test/compiler/6724218/Test.java hotspot/test/compiler/6726999/Test.java hotspot/test/compiler/6732154/Test6732154.java hotspot/test/compiler/6741738/Tester.java hotspot/test/compiler/6756768/Test6756768.java hotspot/test/compiler/6756768/Test6756768_2.java hotspot/test/compiler/6757316/Test6757316.java hotspot/test/compiler/6758234/Test6758234.java hotspot/test/compiler/6769124/TestArrayCopy6769124.java hotspot/test/compiler/6769124/TestDeoptInt6769124.java hotspot/test/compiler/6769124/TestUnalignedLoad6769124.java hotspot/test/compiler/6772683/InterruptedTest.java hotspot/test/compiler/6775880/Test.java hotspot/test/compiler/6778657/Test.java hotspot/test/compiler/6792161/Test6792161.java hotspot/test/compiler/6795161/Test.java hotspot/test/compiler/6795362/Test6795362.java hotspot/test/compiler/6795465/Test6795465.java hotspot/test/compiler/6796786/Test6796786.java hotspot/test/compiler/6797305/Test6797305.java hotspot/test/compiler/6799693/Test.java hotspot/test/compiler/6800154/Test6800154.java hotspot/test/compiler/6805724/Test6805724.java hotspot/test/compiler/6814842/Test6814842.java hotspot/test/compiler/6823354/Test6823354.java hotspot/test/compiler/6823453/Test.java hotspot/test/compiler/6826736/Test.java hotspot/test/compiler/6832293/Test.java hotspot/test/compiler/6833129/Test.java hotspot/test/compiler/6837011/Test6837011.java hotspot/test/compiler/6837094/Test.java hotspot/test/compiler/6843752/Test.java hotspot/test/compiler/6849574/Test.java hotspot/test/compiler/6851282/Test.java hotspot/test/compiler/6852078/Test6852078.java hotspot/test/compiler/6855164/Test.java hotspot/test/compiler/6855215/Test6855215.java hotspot/test/compiler/6857159/Test6857159.java hotspot/test/compiler/6857159/Test6857159.sh hotspot/test/compiler/6859338/Test6859338.java hotspot/test/compiler/6860469/Test.java hotspot/test/compiler/6863155/Test6863155.java hotspot/test/compiler/6863420/Test.java hotspot/test/compiler/6865031/Test.java hotspot/test/compiler/6865265/StackOverflowBug.java hotspot/test/compiler/6866651/Test.java hotspot/test/compiler/6875866/Test.java hotspot/test/compiler/6877254/Test.java hotspot/test/compiler/6879902/Test6879902.java hotspot/test/compiler/6880034/Test6880034.java hotspot/test/compiler/6885584/Test6885584.java hotspot/test/compiler/6891750/Test6891750.java hotspot/test/compiler/6892265/Test.java hotspot/test/compiler/6894807/IsInstanceTest.java hotspot/test/compiler/6894807/Test6894807.sh hotspot/test/compiler/6895383/Test.java hotspot/test/compiler/6896617/Test6896617.java hotspot/test/compiler/6896727/Test.java hotspot/test/compiler/6901572/Test.java hotspot/test/compiler/6909839/Test6909839.java hotspot/test/compiler/6910484/Test.java hotspot/test/compiler/6910605/Test.java hotspot/test/compiler/6910618/Test.java hotspot/test/compiler/6912517/Test.java hotspot/test/compiler/6916644/Test6916644.java hotspot/test/compiler/6921969/TestMultiplyLongHiZero.java hotspot/test/compiler/6930043/Test6930043.java hotspot/test/compiler/6932496/Test6932496.java hotspot/test/compiler/6934604/TestByteBoxing.java hotspot/test/compiler/6934604/TestDoubleBoxing.java hotspot/test/compiler/6934604/TestFloatBoxing.java hotspot/test/compiler/6934604/TestIntBoxing.java hotspot/test/compiler/6934604/TestLongBoxing.java hotspot/test/compiler/6934604/TestShortBoxing.java hotspot/test/compiler/6935535/Test.java hotspot/test/compiler/6942326/Test.java hotspot/test/compiler/6946040/TestCharShortByteSwap.java hotspot/test/compiler/6956668/Test6956668.java hotspot/test/compiler/6958485/Test.java hotspot/test/compiler/6968348/Test6968348.java hotspot/test/compiler/6973329/Test.java hotspot/test/compiler/6982370/Test6982370.java hotspot/test/compiler/6990212/Test6990212.java hotspot/test/compiler/7002666/Test7002666.java hotspot/test/compiler/7009231/Test7009231.java hotspot/test/compiler/7009359/Test7009359.java hotspot/test/compiler/7017746/Test.java hotspot/test/compiler/7024475/Test7024475.java hotspot/test/compiler/7029152/Test.java hotspot/test/compiler/7041100/Test7041100.java hotspot/test/compiler/7042153/Test7042153.java hotspot/test/compiler/7044738/Test7044738.java hotspot/test/compiler/7046096/Test7046096.java hotspot/test/compiler/7047069/Test7047069.java hotspot/test/compiler/7048332/Test7048332.java hotspot/test/compiler/7052494/Test7052494.java hotspot/test/compiler/7068051/Test7068051.java hotspot/test/compiler/7068051/Test7068051.sh hotspot/test/compiler/7070134/Stemmer.java hotspot/test/compiler/7070134/Test7070134.sh hotspot/test/compiler/7070134/words hotspot/test/compiler/7082949/Test7082949.java hotspot/test/compiler/7088020/Test7088020.java hotspot/test/compiler/7088419/CRCTest.java hotspot/test/compiler/7090976/Test7090976.java hotspot/test/compiler/7100757/Test7100757.java hotspot/test/compiler/7103261/Test7103261.java hotspot/test/compiler/7110586/Test7110586.java hotspot/test/compiler/7116216/LargeFrame.java hotspot/test/compiler/7116216/StackOverflow.java hotspot/test/compiler/7119644/TestBooleanVect.java hotspot/test/compiler/7119644/TestByteDoubleVect.java hotspot/test/compiler/7119644/TestByteFloatVect.java hotspot/test/compiler/7119644/TestByteIntVect.java hotspot/test/compiler/7119644/TestByteLongVect.java hotspot/test/compiler/7119644/TestByteShortVect.java hotspot/test/compiler/7119644/TestByteVect.java hotspot/test/compiler/7119644/TestCharShortVect.java hotspot/test/compiler/7119644/TestCharVect.java hotspot/test/compiler/7119644/TestDoubleVect.java hotspot/test/compiler/7119644/TestFloatDoubleVect.java hotspot/test/compiler/7119644/TestFloatVect.java hotspot/test/compiler/7119644/TestIntDoubleVect.java hotspot/test/compiler/7119644/TestIntFloatVect.java hotspot/test/compiler/7119644/TestIntLongVect.java hotspot/test/compiler/7119644/TestIntVect.java hotspot/test/compiler/7119644/TestLongDoubleVect.java hotspot/test/compiler/7119644/TestLongFloatVect.java hotspot/test/compiler/7119644/TestLongVect.java hotspot/test/compiler/7119644/TestShortDoubleVect.java hotspot/test/compiler/7119644/TestShortFloatVect.java hotspot/test/compiler/7119644/TestShortIntVect.java hotspot/test/compiler/7119644/TestShortLongVect.java hotspot/test/compiler/7119644/TestShortVect.java hotspot/test/compiler/7123108/Test7123108.java hotspot/test/compiler/7125879/Test7125879.java hotspot/test/compiler/7141637/SpreadNullArg.java hotspot/test/compiler/7160610/Test7160610.java hotspot/test/compiler/7169782/Test7169782.java hotspot/test/compiler/7174363/Test7174363.java hotspot/test/compiler/7177917/Test7177917.java hotspot/test/compiler/7179138/Test7179138_1.java hotspot/test/compiler/7179138/Test7179138_2.java hotspot/test/compiler/7184394/TestAESBase.java hotspot/test/compiler/7184394/TestAESDecode.java hotspot/test/compiler/7184394/TestAESEncode.java hotspot/test/compiler/7184394/TestAESMain.java hotspot/test/compiler/7190310/Test7190310.java hotspot/test/compiler/7190310/Test7190310_unsafe.java hotspot/test/compiler/7192963/TestByteVect.java hotspot/test/compiler/7192963/TestDoubleVect.java hotspot/test/compiler/7192963/TestFloatVect.java hotspot/test/compiler/7192963/TestIntVect.java hotspot/test/compiler/7192963/TestLongVect.java hotspot/test/compiler/7192963/TestShortVect.java hotspot/test/compiler/7196199/Test7196199.java hotspot/test/compiler/7199742/Test7199742.java hotspot/test/compiler/7200264/Test7200264.sh hotspot/test/compiler/7200264/TestIntVect.java hotspot/test/compiler/8000805/Test8000805.java hotspot/test/compiler/8001183/TestCharVect.java hotspot/test/compiler/8002069/Test8002069.java hotspot/test/compiler/8004051/Test8004051.java hotspot/test/compiler/8004741/Test8004741.java hotspot/test/compiler/8004867/TestIntAtomicCAS.java hotspot/test/compiler/8004867/TestIntAtomicOrdered.java hotspot/test/compiler/8004867/TestIntAtomicVolatile.java hotspot/test/compiler/8004867/TestIntUnsafeCAS.java hotspot/test/compiler/8004867/TestIntUnsafeOrdered.java hotspot/test/compiler/8004867/TestIntUnsafeVolatile.java hotspot/test/compiler/8005033/Test8005033.java hotspot/test/compiler/8005419/Test8005419.java hotspot/test/compiler/8005956/PolynomialRoot.java hotspot/test/compiler/8007294/Test8007294.java hotspot/test/compiler/8007722/Test8007722.java hotspot/test/compiler/8009761/Test8009761.java hotspot/test/compiler/8010927/Test8010927.java hotspot/test/compiler/8011706/Test8011706.java hotspot/test/compiler/8011771/Test8011771.java hotspot/test/compiler/8011901/Test8011901.java hotspot/test/compiler/8015436/Test8015436.java hotspot/test/compiler/EliminateAutoBox/UnsignedLoads.java hotspot/test/compiler/EscapeAnalysis/Test8020215.java hotspot/test/compiler/EscapeAnalysis/TestAllocatedEscapesPtrComparison.java hotspot/test/compiler/EscapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java hotspot/test/compiler/IntegerArithmetic/TestIntegerComparison.java hotspot/test/gc/concurrentMarkSweep/CheckAllocateAndSystemGC.java hotspot/test/gc/concurrentMarkSweep/SystemGCOnForegroundCollector.java hotspot/test/gc/startup_warnings/TestCMSForegroundFlags.java hotspot/test/gc/startup_warnings/TestCMSIncrementalMode.java hotspot/test/gc/startup_warnings/TestCMSNoIncrementalMode.java hotspot/test/gc/startup_warnings/TestIncGC.java jdk/src/java.base/share/classes/java/util/zip/package.html jdk/src/java.desktop/share/classes/sun/awt/datatransfer/META-INF/services/sun.datatransfer.DesktopDatatransferService jdk/test/sun/tools/jinfo/Basic.sh nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BoundDynamicMethod.java nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BoundDynamicMethodLinker.java
diffstat 1908 files changed, 244507 insertions(+), 171169 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags-top-repo	Thu Dec 04 15:22:30 2014 -0800
+++ b/.hgtags-top-repo	Wed Jul 05 20:09:54 2017 +0200
@@ -283,3 +283,4 @@
 d42c0a90afc3c66ca87543076ec9aafd4b4680de jdk9-b38
 512dbbeb1730edcebfec873fc3f1455660b32000 jdk9-b39
 cf136458ee747e151a27aa9ea0c1492ea55ef3e7 jdk9-b40
+67395f7ca2db3b52e3a62a84888487de5cb9210a jdk9-b41
--- a/Makefile	Thu Dec 04 15:22:30 2014 -0800
+++ b/Makefile	Wed Jul 05 20:09:54 2017 +0200
@@ -33,7 +33,7 @@
 
 # The shell code below will be executed on /usr/ccs/bin/make on Solaris, but not in GNU make.
 # /usr/ccs/bin/make lacks basically every other flow control mechanism.
-TEST_FOR_NON_GNUMAKE:sh=echo You are not using GNU make/gmake, this is a requirement. Check your path. 1>&2 && exit 1
+.TEST_FOR_NON_GNUMAKE:sh=echo You are not using GNU make/gmake, this is a requirement. Check your path. 1>&2 && exit 1
 
 # Assume we have GNU make, but check version.
 ifeq ($(strip $(foreach v, 3.81% 3.82% 4.%, $(filter $v, $(MAKE_VERSION)))), )
@@ -46,7 +46,17 @@
 else
   makefile_path:=$(lastword $(MAKEFILE_LIST))
 endif
-root_dir:=$(dir $(makefile_path))
+root_dir:=$(patsubst %/,%,$(dir $(makefile_path)))
+
+ifneq ($(findstring qp,$(MAKEFLAGS)),)
+  # When called with -qp, assume an external part (e.g. bash completion) is trying
+  # to understand our targets.
+  # Duplication of global targets, needed before ParseConfAndSpec in case we have
+  # no configurations.
+  help:
+  # If CONF is not set, look for all available configurations
+  CONF?=
+endif
 
 # ... and then we can include our helper functions
 include $(root_dir)/make/MakeHelpers.gmk
@@ -89,6 +99,7 @@
     # The wrapper target was called so we now have a single configuration. Load the spec file
     # and call the real Main.gmk.
     include $(SPEC)
+    include $(SRC_ROOT)/make/common/MakeBase.gmk
 
     ### Clean up from previous run
     # Remove any build.log from a previous run, if they exist
--- a/common/autoconf/basics.m4	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/basics.m4	Wed Jul 05 20:09:54 2017 +0200
@@ -69,7 +69,7 @@
 
 # This will make sure the given variable points to a full and proper
 # path. This means:
-# 1) There will be no spaces in the path. On posix platforms,
+# 1) There will be no spaces in the path. On unix platforms,
 #    spaces in the path will result in an error. On Windows,
 #    the path will be rewritten using short-style to be space-free.
 # 2) The path will be absolute, and it will be in unix-style (on
@@ -82,7 +82,7 @@
   elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
     BASIC_FIXUP_PATH_MSYS($1)
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="[$]$1"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -102,7 +102,7 @@
 
 # This will make sure the given variable points to a executable
 # with a full and proper path. This means:
-# 1) There will be no spaces in the path. On posix platforms,
+# 1) There will be no spaces in the path. On unix platforms,
 #    spaces in the path will result in an error. On Windows,
 #    the path will be rewritten using short-style to be space-free.
 # 2) The path will be absolute, and it will be in unix-style (on
@@ -118,7 +118,7 @@
   elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
     BASIC_FIXUP_EXECUTABLE_MSYS($1)
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="[$]$1"
@@ -268,7 +268,7 @@
   fi
 ])
 
-# Setup a tool for the given variable. If correctly specified by the user, 
+# Setup a tool for the given variable. If correctly specified by the user,
 # use that value, otherwise search for the tool using the supplied code snippet.
 # $1: variable to set
 # $2: code snippet to call to look for the tool
@@ -546,7 +546,7 @@
       XCODEBUILD=
       AC_SUBST(XCODEBUILD)
     fi
-  
+
     AC_MSG_CHECKING([for sdk name])
     AC_ARG_WITH([sdk-name], [AS_HELP_STRING([--with-sdk-name],
         [use the platform SDK of the given name. @<:@macosx@:>@])],
--- a/common/autoconf/boot-jdk.m4	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/boot-jdk.m4	Wed Jul 05 20:09:54 2017 +0200
@@ -24,31 +24,31 @@
 #
 
 ########################################################################
-# This file handles detection of the Boot JDK. The Boot JDK detection 
-# process has been developed as a response to solve a complex real-world 
-# problem. Initially, it was simple, but it has grown as platform after 
+# This file handles detection of the Boot JDK. The Boot JDK detection
+# process has been developed as a response to solve a complex real-world
+# problem. Initially, it was simple, but it has grown as platform after
 # platform, idiosyncracy after idiosyncracy has been supported.
 #
 # The basic idea is this:
 # 1) You need an acceptable *) JDK to use as a Boot JDK
-# 2) There are several ways to locate a JDK, that are mostly platform 
+# 2) There are several ways to locate a JDK, that are mostly platform
 #    dependent **)
 # 3) You can have multiple JDKs installed
-# 4) If possible, configure should try to dig out an acceptable JDK 
+# 4) If possible, configure should try to dig out an acceptable JDK
 #    automatically, without having to resort to command-line options
 #
-# *)  acceptable means e.g. JDK7 for building JDK8, a complete JDK (with 
-#     javac) and not a JRE, etc. 
+# *)  acceptable means e.g. JDK7 for building JDK8, a complete JDK (with
+#     javac) and not a JRE, etc.
 #
-# **) On Windows we typically use a well-known path. 
+# **) On Windows we typically use a well-known path.
 #     On MacOSX we typically use the tool java_home.
-#     On Linux we typically find javac in the $PATH, and then follow a 
-#     chain of symlinks that often ends up in a real JDK. 
+#     On Linux we typically find javac in the $PATH, and then follow a
+#     chain of symlinks that often ends up in a real JDK.
 #
-# This leads to the code where we check in different ways to locate a 
-# JDK, and if one is found, check if it is acceptable. If not, we print 
-# our reasons for rejecting it (useful when debugging non-working 
-# configure situations) and continue checking the next one. 
+# This leads to the code where we check in different ways to locate a
+# JDK, and if one is found, check if it is acceptable. If not, we print
+# our reasons for rejecting it (useful when debugging non-working
+# configure situations) and continue checking the next one.
 ########################################################################
 
 # Execute the check given as argument, and verify the result
@@ -244,7 +244,7 @@
 AC_DEFUN([BOOTJDK_CHECK_TOOL_IN_BOOTJDK],
 [
   # Use user overridden value if available, otherwise locate tool in the Boot JDK.
-  BASIC_SETUP_TOOL($1, 
+  BASIC_SETUP_TOOL($1,
     [
       AC_MSG_CHECKING([for $2 in Boot JDK])
       $1=$BOOT_JDK/bin/$2
--- a/common/autoconf/bootcycle-spec.gmk.in	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/bootcycle-spec.gmk.in	Wed Jul 05 20:09:54 2017 +0200
@@ -56,4 +56,3 @@
 NATIVE2ASCII_CMD:=$(BOOT_JDK)/bin/native2ascii
 JARSIGNER_CMD:=$(BOOT_JDK)/bin/jarsigner
 SJAVAC_SERVER_JAVA_CMD:=$(JAVA_CMD)
-
--- a/common/autoconf/build-aux/config.guess	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/build-aux/config.guess	Wed Jul 05 20:09:54 2017 +0200
@@ -77,7 +77,7 @@
 fi
 
 # Test and fix little endian PowerPC64.
-# TODO: should be handled by autoconf-config.guess. 
+# TODO: should be handled by autoconf-config.guess.
 if [ "x$OUT" = x ]; then
   if [ `uname -m` = ppc64le ]; then
     if [ `uname -s` = Linux ]; then
--- a/common/autoconf/build-aux/install.sh	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/build-aux/install.sh	Wed Jul 05 20:09:54 2017 +0200
@@ -1,5 +1,5 @@
-#!/bin/sh 
-echo >&2 "No suitable 'install' command found.'" 
-echo >&2 "If automake is installed, running 'automake -fa'" 
-echo >&2 "(and ignoring the errors) might produce one." 
-exit 1 
+#!/bin/sh
+echo >&2 "No suitable 'install' command found.'"
+echo >&2 "If automake is installed, running 'automake -fa'"
+echo >&2 "(and ignoring the errors) might produce one."
+exit 1
--- a/common/autoconf/compare.sh.in	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/compare.sh.in	Wed Jul 05 20:09:54 2017 +0200
@@ -48,6 +48,7 @@
 JAVAP="@FIXPATH@ @BOOT_JDK@/bin/javap @JAVA_TOOL_FLAGS_SMALL@"
 JIMAGE="@FIXPATH@ @BUILD_OUTPUT@/jdk/bin/jimage"
 LDD="@LDD@"
+LN="@LN@"
 MKDIR="@MKDIR@"
 NAWK="@NAWK@"
 NM="@GNM@"
--- a/common/autoconf/configure.ac	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/configure.ac	Wed Jul 05 20:09:54 2017 +0200
@@ -275,3 +275,4 @@
 # Finally output some useful information to the user
 HELP_PRINT_SUMMARY_AND_WARNINGS
 CUSTOM_SUMMARY_AND_WARNINGS_HOOK
+HELP_REPEAT_WARNINGS
--- a/common/autoconf/flags.m4	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/flags.m4	Wed Jul 05 20:09:54 2017 +0200
@@ -94,9 +94,9 @@
 
   # On Windows, we need to set RC flags.
   if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
-    RC_FLAGS="-nologo -l 0x409 -r"
+    RC_FLAGS="-nologo -l0x409"
     if test "x$VARIANT" = xOPT; then
-      RC_FLAGS="$RC_FLAGS -d NDEBUG"
+      RC_FLAGS="$RC_FLAGS -DNDEBUG"
     fi
 
     # The version variables used to create RC_FLAGS may be overridden
@@ -105,13 +105,13 @@
     # The \$ are escaped to the shell, and the $(...) variables
     # are evaluated by make.
     RC_FLAGS="$RC_FLAGS \
-        -d \"JDK_BUILD_ID=\$(FULL_VERSION)\" \
-        -d \"JDK_COMPANY=\$(COMPANY_NAME)\" \
-        -d \"JDK_COMPONENT=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) binary\" \
-        -d \"JDK_VER=\$(JDK_MINOR_VERSION).\$(JDK_MICRO_VERSION).\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0).\$(COOKED_BUILD_NUMBER)\" \
-        -d \"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
-        -d \"JDK_NAME=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) \$(JDK_MINOR_VERSION) \$(JDK_UPDATE_META_TAG)\" \
-        -d \"JDK_FVER=\$(JDK_MINOR_VERSION),\$(JDK_MICRO_VERSION),\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0),\$(COOKED_BUILD_NUMBER)\""
+        -D\"JDK_BUILD_ID=\$(FULL_VERSION)\" \
+        -D\"JDK_COMPANY=\$(COMPANY_NAME)\" \
+        -D\"JDK_COMPONENT=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) binary\" \
+        -D\"JDK_VER=\$(JDK_MINOR_VERSION).\$(JDK_MICRO_VERSION).\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0).\$(COOKED_BUILD_NUMBER)\" \
+        -D\"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
+        -D\"JDK_NAME=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) \$(JDK_MINOR_VERSION) \$(JDK_UPDATE_META_TAG)\" \
+        -D\"JDK_FVER=\$(JDK_MINOR_VERSION),\$(JDK_MICRO_VERSION),\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0),\$(COOKED_BUILD_NUMBER)\""
   fi
   AC_SUBST(RC_FLAGS)
 
@@ -348,10 +348,6 @@
       # Add runtime stack smashing and undefined behavior checks
       CFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1"
       CXXFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1"
-      if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then
-        CFLAGS_DEBUG_OPTIONS="$CFLAGS_DEBUG_OPTIONS  $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
-        CXXFLAGS_DEBUG_OPTIONS="$CXXFLAGS_DEBUG_OPTIONS $CFLAG_DETECT_UNDEFINED_BEHAVIsOR_FLAG"
-      fi
       ;;
     esac
   fi
@@ -668,7 +664,7 @@
   COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \
       -I${JDK_TOPDIR}/src/java.base/share/native/include \
       -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS/native/include \
-      -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_API_DIR/native/include"
+      -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/include"
 
   # The shared libraries are compiled using the picflag.
   CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
@@ -746,25 +742,6 @@
     LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib"
   fi
 
-  if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
-    # If undefined behaviour detection is enabled then we need to tell linker.
-    case $DEBUG_LEVEL in
-      release | fastdebug )
-        ;;
-      slowdebug )
-        AC_MSG_WARN([$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR])
-        if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then
-          # enable undefined behaviour checking
-          LDFLAGS_JDK="$LDFLAGS_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/[ ]*\([^ ]\+\)/ -Xlinker \1/g"`"
-          LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/[ ]*\([^ ]\+\)/ -Xlinker \1/g"`"
-        fi
-        ;;
-      * )
-        AC_MSG_ERROR([Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL])
-        ;;
-    esac
-  fi
-
   # Customize LDFLAGS for executables
 
   LDFLAGS_JDKEXE="${LDFLAGS_JDK}"
--- a/common/autoconf/generated-configure.sh	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/generated-configure.sh	Wed Jul 05 20:09:54 2017 +0200
@@ -906,7 +906,6 @@
 DEFINE_CROSS_COMPILE_ARCH
 LP64
 OPENJDK_TARGET_OS_EXPORT_DIR
-OPENJDK_TARGET_OS_API_DIR
 OPENJDK_TARGET_CPU_JLI_CFLAGS
 OPENJDK_TARGET_CPU_OSARCH
 OPENJDK_TARGET_CPU_ISADIR
@@ -921,14 +920,14 @@
 OPENJDK_TARGET_CPU_ARCH
 OPENJDK_TARGET_CPU
 OPENJDK_TARGET_OS_ENV
-OPENJDK_TARGET_OS_API
+OPENJDK_TARGET_OS_TYPE
 OPENJDK_TARGET_OS
 OPENJDK_BUILD_CPU_ENDIAN
 OPENJDK_BUILD_CPU_BITS
 OPENJDK_BUILD_CPU_ARCH
 OPENJDK_BUILD_CPU
 OPENJDK_BUILD_OS_ENV
-OPENJDK_BUILD_OS_API
+OPENJDK_BUILD_OS_TYPE
 OPENJDK_BUILD_OS
 OPENJDK_BUILD_AUTOCONF_NAME
 OPENJDK_TARGET_AUTOCONF_NAME
@@ -1063,6 +1062,7 @@
 with_update_version
 with_user_release_suffix
 with_build_number
+with_copyright_year
 with_boot_jdk
 with_add_source_root
 with_override_source_root
@@ -1904,6 +1904,7 @@
                           Add a custom string to the version string if build
                           number is not set.[username_builddateb00]
   --with-build-number     Set build number value for build [b00]
+  --with-copyright-year   Set copyright year value for build [current year]
   --with-boot-jdk         path to Boot JDK (used to bootstrap build) [probed]
   --with-add-source-root  for each and every source directory, look in this
                           additional source root for the same directory; if it
@@ -3410,7 +3411,7 @@
 
 # This will make sure the given variable points to a full and proper
 # path. This means:
-# 1) There will be no spaces in the path. On posix platforms,
+# 1) There will be no spaces in the path. On unix platforms,
 #    spaces in the path will result in an error. On Windows,
 #    the path will be rewritten using short-style to be space-free.
 # 2) The path will be absolute, and it will be in unix-style (on
@@ -3420,7 +3421,7 @@
 
 # This will make sure the given variable points to a executable
 # with a full and proper path. This means:
-# 1) There will be no spaces in the path. On posix platforms,
+# 1) There will be no spaces in the path. On unix platforms,
 #    spaces in the path will result in an error. On Windows,
 #    the path will be rewritten using short-style to be space-free.
 # 2) The path will be absolute, and it will be in unix-style (on
@@ -3968,6 +3969,8 @@
 
 
 
+
+
 #
 # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -4097,7 +4100,7 @@
 
 # Support macro for PLATFORM_EXTRACT_TARGET_AND_BUILD.
 # Converts autoconf style OS name to OpenJDK style, into
-# VAR_OS and VAR_OS_API.
+# VAR_OS, VAR_OS_TYPE and VAR_OS_ENV.
 
 
 # Expects $host_os $host_cpu $build_os and $build_cpu
@@ -4326,7 +4329,7 @@
 #CUSTOM_AUTOCONF_INCLUDE
 
 # Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1416999037
+DATE_WHEN_GENERATED=1417630847
 
 ###############################################################################
 #
@@ -13523,38 +13526,31 @@
   case "$build_os" in
     *linux*)
       VAR_OS=linux
-      VAR_OS_API=posix
-      VAR_OS_ENV=linux
+      VAR_OS_TYPE=unix
       ;;
     *solaris*)
       VAR_OS=solaris
-      VAR_OS_API=posix
-      VAR_OS_ENV=solaris
+      VAR_OS_TYPE=unix
       ;;
     *darwin*)
       VAR_OS=macosx
-      VAR_OS_API=posix
-      VAR_OS_ENV=macosx
+      VAR_OS_TYPE=unix
       ;;
     *bsd*)
       VAR_OS=bsd
-      VAR_OS_API=posix
-      VAR_OS_ENV=bsd
+      VAR_OS_TYPE=unix
       ;;
     *cygwin*)
       VAR_OS=windows
-      VAR_OS_API=winapi
       VAR_OS_ENV=windows.cygwin
       ;;
     *mingw*)
       VAR_OS=windows
-      VAR_OS_API=winapi
       VAR_OS_ENV=windows.msys
       ;;
     *aix*)
       VAR_OS=aix
-      VAR_OS_API=posix
-      VAR_OS_ENV=aix
+      VAR_OS_TYPE=unix
       ;;
     *)
       as_fn_error $? "unsupported operating system $build_os" "$LINENO" 5
@@ -13631,8 +13627,16 @@
 
   # ..and setup our own variables. (Do this explicitely to facilitate searching)
   OPENJDK_BUILD_OS="$VAR_OS"
-  OPENJDK_BUILD_OS_API="$VAR_OS_API"
-  OPENJDK_BUILD_OS_ENV="$VAR_OS_ENV"
+  if test "x$VAR_OS_TYPE" != x; then
+    OPENJDK_BUILD_OS_TYPE="$VAR_OS_TYPE"
+  else
+    OPENJDK_BUILD_OS_TYPE="$VAR_OS"
+  fi
+  if test "x$VAR_OS_ENV" != x; then
+    OPENJDK_BUILD_OS_ENV="$VAR_OS_ENV"
+  else
+    OPENJDK_BUILD_OS_ENV="$VAR_OS"
+  fi
   OPENJDK_BUILD_CPU="$VAR_CPU"
   OPENJDK_BUILD_CPU_ARCH="$VAR_CPU_ARCH"
   OPENJDK_BUILD_CPU_BITS="$VAR_CPU_BITS"
@@ -13655,38 +13659,31 @@
   case "$host_os" in
     *linux*)
       VAR_OS=linux
-      VAR_OS_API=posix
-      VAR_OS_ENV=linux
+      VAR_OS_TYPE=unix
       ;;
     *solaris*)
       VAR_OS=solaris
-      VAR_OS_API=posix
-      VAR_OS_ENV=solaris
+      VAR_OS_TYPE=unix
       ;;
     *darwin*)
       VAR_OS=macosx
-      VAR_OS_API=posix
-      VAR_OS_ENV=macosx
+      VAR_OS_TYPE=unix
       ;;
     *bsd*)
       VAR_OS=bsd
-      VAR_OS_API=posix
-      VAR_OS_ENV=bsd
+      VAR_OS_TYPE=unix
       ;;
     *cygwin*)
       VAR_OS=windows
-      VAR_OS_API=winapi
       VAR_OS_ENV=windows.cygwin
       ;;
     *mingw*)
       VAR_OS=windows
-      VAR_OS_API=winapi
       VAR_OS_ENV=windows.msys
       ;;
     *aix*)
       VAR_OS=aix
-      VAR_OS_API=posix
-      VAR_OS_ENV=aix
+      VAR_OS_TYPE=unix
       ;;
     *)
       as_fn_error $? "unsupported operating system $host_os" "$LINENO" 5
@@ -13763,8 +13760,16 @@
 
   # ... and setup our own variables. (Do this explicitely to facilitate searching)
   OPENJDK_TARGET_OS="$VAR_OS"
-  OPENJDK_TARGET_OS_API="$VAR_OS_API"
-  OPENJDK_TARGET_OS_ENV="$VAR_OS_ENV"
+  if test "x$VAR_OS_TYPE" != x; then
+    OPENJDK_TARGET_OS_TYPE="$VAR_OS_TYPE"
+  else
+    OPENJDK_TARGET_OS_TYPE="$VAR_OS"
+  fi
+  if test "x$VAR_OS_ENV" != x; then
+    OPENJDK_TARGET_OS_ENV="$VAR_OS_ENV"
+  else
+    OPENJDK_TARGET_OS_ENV="$VAR_OS"
+  fi
   OPENJDK_TARGET_CPU="$VAR_CPU"
   OPENJDK_TARGET_CPU_ARCH="$VAR_CPU_ARCH"
   OPENJDK_TARGET_CPU_BITS="$VAR_CPU_BITS"
@@ -13932,19 +13937,10 @@
   fi
 
 
-  # Setup OPENJDK_TARGET_OS_API_DIR, used in source paths.
-  if test "x$OPENJDK_TARGET_OS_API" = xposix; then
-    OPENJDK_TARGET_OS_API_DIR="unix"
-  fi
-  if test "x$OPENJDK_TARGET_OS_API" = xwinapi; then
-    OPENJDK_TARGET_OS_API_DIR="windows"
-  fi
-
-
   if test "x$OPENJDK_TARGET_OS" = xmacosx; then
       OPENJDK_TARGET_OS_EXPORT_DIR=macosx
   else
-      OPENJDK_TARGET_OS_EXPORT_DIR=${OPENJDK_TARGET_OS_API_DIR}
+      OPENJDK_TARGET_OS_EXPORT_DIR=${OPENJDK_TARGET_OS_TYPE}
   fi
 
 
@@ -14194,7 +14190,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$CURDIR"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -14316,7 +14312,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$TOPDIR"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -14836,7 +14832,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$with_devkit"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -15310,7 +15306,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$OUTPUT_ROOT"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -15677,7 +15673,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$FOUND_MAKE"
@@ -16050,7 +16046,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$FOUND_MAKE"
@@ -16420,7 +16416,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$FOUND_MAKE"
@@ -16795,7 +16791,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$FOUND_MAKE"
@@ -17164,7 +17160,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$FOUND_MAKE"
@@ -20132,7 +20128,19 @@
 
 
 
-  COPYRIGHT_YEAR=`date +'%Y'`
+
+# Check whether --with-copyright-year was given.
+if test "${with_copyright_year+set}" = set; then :
+  withval=$with_copyright_year;
+fi
+
+  if test "x$with_copyright_year" = xyes; then
+    as_fn_error $? "Copyright year must have a value" "$LINENO" 5
+  elif test "x$with_copyright_year" != x; then
+    COPYRIGHT_YEAR="$with_copyright_year"
+  else
+    COPYRIGHT_YEAR=`date +'%Y'`
+  fi
 
 
   if test "x$JDK_UPDATE_VERSION" != x; then
@@ -20319,7 +20327,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -20651,7 +20659,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -20845,7 +20853,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -21032,7 +21040,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -21218,7 +21226,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -21404,7 +21412,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -21581,7 +21589,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -21727,7 +21735,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$JAVA_HOME_PROCESSED"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -21899,7 +21907,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -22227,7 +22235,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -22442,7 +22450,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -22622,7 +22630,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -22830,7 +22838,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -23010,7 +23018,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -23218,7 +23226,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -23398,7 +23406,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -23606,7 +23614,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -23786,7 +23794,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -23981,7 +23989,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -24159,7 +24167,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -24355,7 +24363,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -24533,7 +24541,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -24728,7 +24736,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -24906,7 +24914,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -25102,7 +25110,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -25280,7 +25288,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -25457,7 +25465,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$BOOT_JDK"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -27484,7 +27492,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$VS_ENV_CMD"
@@ -28144,7 +28152,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$CC"
@@ -28601,7 +28609,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$PROPER_COMPILER_CC"
@@ -29884,7 +29892,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$CXX"
@@ -30341,7 +30349,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$PROPER_COMPILER_CXX"
@@ -31203,7 +31211,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$CPP"
@@ -31618,7 +31626,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$CXXCPP"
@@ -31962,7 +31970,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$LD"
@@ -32457,7 +32465,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$AS"
@@ -33085,7 +33093,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$AR"
@@ -33621,7 +33629,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$OBJC"
@@ -34089,7 +34097,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$LIPO"
@@ -34430,7 +34438,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$MT"
@@ -34767,7 +34775,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$RC"
@@ -35086,7 +35094,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$DUMPBIN"
@@ -35601,7 +35609,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$STRIP"
@@ -36069,7 +36077,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$NM"
@@ -36537,7 +36545,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$GNM"
@@ -37006,7 +37014,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$MCS"
@@ -37586,7 +37594,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$STRIP"
@@ -38164,7 +38172,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$NM"
@@ -38751,7 +38759,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$OBJCOPY"
@@ -39335,7 +39343,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$OBJDUMP"
@@ -39828,7 +39836,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$BUILD_CC"
@@ -40296,7 +40304,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$BUILD_CXX"
@@ -40764,7 +40772,7 @@
   fi
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     # First separate the path from the arguments. This will split at the first
     # space.
     complete="$BUILD_LD"
@@ -40993,74 +41001,6 @@
   fi
 
 
-    # "-fsanitize=undefined" supported for GCC 4.9 and later
-    CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG="-fsanitize=undefined -fsanitize-recover"
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG\"" >&5
-$as_echo_n "checking if compiler supports \"$CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG\"... " >&6; }
-  supports=yes
-
-  saved_cflags="$CFLAGS"
-  CFLAGS="$CFLAGS $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-int i;
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  supports=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-  CFLAGS="$saved_cflags"
-
-  saved_cxxflags="$CXXFLAGS"
-  CXXFLAGS="$CXXFLAG $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-int i;
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  supports=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-  CXXFLAGS="$saved_cxxflags"
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
-$as_echo "$supports" >&6; }
-  if test "x$supports" = "xyes" ; then
-    HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=true
-  else
-    HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=false
-  fi
-
-
     # "-z relro" supported in GNU binutils 2.17 and later
     LINKER_RELRO_FLAG="-Xlinker -z -Xlinker relro"
 
@@ -41316,7 +41256,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$JT_HOME"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -41617,9 +41557,9 @@
 
   # On Windows, we need to set RC flags.
   if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
-    RC_FLAGS="-nologo -l 0x409 -r"
+    RC_FLAGS="-nologo -l0x409"
     if test "x$VARIANT" = xOPT; then
-      RC_FLAGS="$RC_FLAGS -d NDEBUG"
+      RC_FLAGS="$RC_FLAGS -DNDEBUG"
     fi
 
     # The version variables used to create RC_FLAGS may be overridden
@@ -41628,13 +41568,13 @@
     # The \$ are escaped to the shell, and the $(...) variables
     # are evaluated by make.
     RC_FLAGS="$RC_FLAGS \
-        -d \"JDK_BUILD_ID=\$(FULL_VERSION)\" \
-        -d \"JDK_COMPANY=\$(COMPANY_NAME)\" \
-        -d \"JDK_COMPONENT=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) binary\" \
-        -d \"JDK_VER=\$(JDK_MINOR_VERSION).\$(JDK_MICRO_VERSION).\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0).\$(COOKED_BUILD_NUMBER)\" \
-        -d \"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
-        -d \"JDK_NAME=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) \$(JDK_MINOR_VERSION) \$(JDK_UPDATE_META_TAG)\" \
-        -d \"JDK_FVER=\$(JDK_MINOR_VERSION),\$(JDK_MICRO_VERSION),\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0),\$(COOKED_BUILD_NUMBER)\""
+        -D\"JDK_BUILD_ID=\$(FULL_VERSION)\" \
+        -D\"JDK_COMPANY=\$(COMPANY_NAME)\" \
+        -D\"JDK_COMPONENT=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) binary\" \
+        -D\"JDK_VER=\$(JDK_MINOR_VERSION).\$(JDK_MICRO_VERSION).\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0).\$(COOKED_BUILD_NUMBER)\" \
+        -D\"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
+        -D\"JDK_NAME=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) \$(JDK_MINOR_VERSION) \$(JDK_UPDATE_META_TAG)\" \
+        -D\"JDK_FVER=\$(JDK_MINOR_VERSION),\$(JDK_MICRO_VERSION),\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0),\$(COOKED_BUILD_NUMBER)\""
   fi
 
 
@@ -41844,8 +41784,8 @@
   LDFLAGS_JDK="${LDFLAGS_JDK}${ADDED_LDFLAGS}"
 
   elif test "x$COMPILE_TYPE" = xreduced; then
-    if test "x$OPENJDK_TARGET_OS" != xwindows; then
-      # Specify -m if running reduced on other Posix platforms
+    if test "x$OPENJDK_TARGET_OS_TYPE" = xunix; then
+      # Specify -m if running reduced on unix platforms
 
   # When we add flags to the "official" CFLAGS etc, we need to
   # keep track of these additions in ADDED_CFLAGS etc. These
@@ -42404,10 +42344,6 @@
       # Add runtime stack smashing and undefined behavior checks
       CFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1"
       CXXFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param ssp-buffer-size=1"
-      if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then
-        CFLAGS_DEBUG_OPTIONS="$CFLAGS_DEBUG_OPTIONS  $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG"
-        CXXFLAGS_DEBUG_OPTIONS="$CXXFLAGS_DEBUG_OPTIONS $CFLAG_DETECT_UNDEFINED_BEHAVIsOR_FLAG"
-      fi
       ;;
     esac
   fi
@@ -42737,7 +42673,7 @@
   COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \
       -I${JDK_TOPDIR}/src/java.base/share/native/include \
       -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS/native/include \
-      -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_API_DIR/native/include"
+      -I${JDK_TOPDIR}/src/java.base/$OPENJDK_TARGET_OS_TYPE/native/include"
 
   # The shared libraries are compiled using the picflag.
   CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
@@ -42815,26 +42751,6 @@
     LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK -norunpath -xnolib"
   fi
 
-  if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
-    # If undefined behaviour detection is enabled then we need to tell linker.
-    case $DEBUG_LEVEL in
-      release | fastdebug )
-        ;;
-      slowdebug )
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" >&5
-$as_echo "$as_me: WARNING: $HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" >&2;}
-        if test "x$HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR" = "xtrue"; then
-          # enable undefined behaviour checking
-          LDFLAGS_JDK="$LDFLAGS_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/ *\(^ \+\)/ -Xlinker \1/g"`"
-          LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK `$ECHO -n $CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG | sed -e "s/ *\(^ \+\)/ -Xlinker \1/g"`"
-        fi
-        ;;
-      * )
-        as_fn_error $? "Unrecognized \$DEBUG_LEVEL: $DEBUG_LEVEL" "$LINENO" 5
-        ;;
-    esac
-  fi
-
   # Customize LDFLAGS for executables
 
   LDFLAGS_JDKEXE="${LDFLAGS_JDK}"
@@ -44723,7 +44639,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -44845,7 +44761,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -45076,7 +44992,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -45198,7 +45114,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -45690,7 +45606,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -45812,7 +45728,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -46018,7 +45934,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -46140,7 +46056,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -46337,7 +46253,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -46459,7 +46375,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -46656,7 +46572,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -46778,7 +46694,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -46976,7 +46892,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -47098,7 +47014,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -47297,7 +47213,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -47419,7 +47335,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -47614,7 +47530,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -47736,7 +47652,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -47931,7 +47847,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -48053,7 +47969,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$POTENTIAL_FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -48231,7 +48147,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$FREETYPE_INCLUDE_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -48361,7 +48277,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$FREETYPE_LIB_PATH"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -50260,7 +50176,7 @@
   all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
 
   else
-    # We're on a posix platform. Hooray! :)
+    # We're on a unix platform. Hooray! :)
     path="$MSVCR_DLL"
     has_space=`$ECHO "$path" | $GREP " "`
     if test "x$has_space" != x; then
@@ -52405,15 +52321,15 @@
   printf "====================================================\n"
   if test "x$no_create" != "xyes"; then
     if test "x$IS_RECONFIGURE" != "xyes"; then
-      printf "A new configuration has been successfully created in\n %s\n" "$OUTPUT_ROOT"
-    else
-      printf "The existing configuration has been successfully updated in\n %s\n" "$OUTPUT_ROOT"
+      printf "A new configuration has been successfully created in\n%s\n" "$OUTPUT_ROOT"
+    else
+      printf "The existing configuration has been successfully updated in\n%s\n" "$OUTPUT_ROOT"
     fi
   else
     if test "x$IS_RECONFIGURE" != "xyes"; then
       printf "A configuration has been successfully checked but not created\n"
     else
-      printf "The existing configuration has been successfully checked in\n %s\n" "$OUTPUT_ROOT"
+      printf "The existing configuration has been successfully checked in\n%s\n" "$OUTPUT_ROOT"
     fi
   fi
   if test "x$CONFIGURE_COMMAND_LINE" != x; then
@@ -52485,3 +52401,15 @@
   fi
 
 
+
+if test -e "$OUTPUT_ROOT/config.log"; then
+  $GREP '^configure:.*: WARNING:' "$OUTPUT_ROOT/config.log" > /dev/null 2>&1
+  if test $? -eq 0; then
+    printf "The following warnings were produced. Repeated here for convenience:\n"
+    # We must quote sed expression (using []) to stop m4 from eating the [].
+    $GREP '^configure:.*: WARNING:' "$OUTPUT_ROOT/config.log" | $SED -e  's/^configure:[0-9]*: //'
+    printf "\n"
+  fi
+fi
+
+
--- a/common/autoconf/help.m4	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/help.m4	Wed Jul 05 20:09:54 2017 +0200
@@ -178,15 +178,15 @@
   printf "====================================================\n"
   if test "x$no_create" != "xyes"; then
     if test "x$IS_RECONFIGURE" != "xyes"; then
-      printf "A new configuration has been successfully created in\n %s\n" "$OUTPUT_ROOT"
+      printf "A new configuration has been successfully created in\n%s\n" "$OUTPUT_ROOT"
     else
-      printf "The existing configuration has been successfully updated in\n %s\n" "$OUTPUT_ROOT"
+      printf "The existing configuration has been successfully updated in\n%s\n" "$OUTPUT_ROOT"
     fi
   else
     if test "x$IS_RECONFIGURE" != "xyes"; then
       printf "A configuration has been successfully checked but not created\n"
     else
-      printf "The existing configuration has been successfully checked in\n %s\n" "$OUTPUT_ROOT"
+      printf "The existing configuration has been successfully checked in\n%s\n" "$OUTPUT_ROOT"
     fi
   fi
   if test "x$CONFIGURE_COMMAND_LINE" != x; then
@@ -257,3 +257,17 @@
     printf "\n"
   fi
 ])
+
+AC_DEFUN_ONCE([HELP_REPEAT_WARNINGS],
+[
+if test -e "$OUTPUT_ROOT/config.log"; then
+  $GREP '^configure:.*: WARNING:' "$OUTPUT_ROOT/config.log" > /dev/null 2>&1
+  if test $? -eq 0; then
+    printf "The following warnings were produced. Repeated here for convenience:\n"
+    # We must quote sed expression (using []) to stop m4 from eating the [].
+    $GREP '^configure:.*: WARNING:' "$OUTPUT_ROOT/config.log" | $SED -e [ 's/^configure:[0-9]*: //' ]
+    printf "\n"
+  fi
+fi
+
+])
--- a/common/autoconf/jdk-options.m4	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/jdk-options.m4	Wed Jul 05 20:09:54 2017 +0200
@@ -549,7 +549,15 @@
   AC_SUBST(MACOSX_BUNDLE_NAME_BASE)
   AC_SUBST(MACOSX_BUNDLE_ID_BASE)
 
-  COPYRIGHT_YEAR=`date +'%Y'`
+  AC_ARG_WITH(copyright-year, [AS_HELP_STRING([--with-copyright-year],
+      [Set copyright year value for build @<:@current year@:>@])])
+  if test "x$with_copyright_year" = xyes; then
+    AC_MSG_ERROR([Copyright year must have a value])
+  elif test "x$with_copyright_year" != x; then
+    COPYRIGHT_YEAR="$with_copyright_year"
+  else
+    COPYRIGHT_YEAR=`date +'%Y'`
+  fi
   AC_SUBST(COPYRIGHT_YEAR)
 
   if test "x$JDK_UPDATE_VERSION" != x; then
--- a/common/autoconf/libraries.m4	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/libraries.m4	Wed Jul 05 20:09:54 2017 +0200
@@ -355,7 +355,7 @@
       FOUND_FREETYPE=no
     fi
   fi
-  
+
   if test "x$FOUND_FREETYPE" = xyes; then
     # Include file found, let's continue the sanity check.
     AC_MSG_NOTICE([Found freetype include files at $POTENTIAL_FREETYPE_INCLUDE_PATH using $METHOD])
--- a/common/autoconf/platform.m4	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/platform.m4	Wed Jul 05 20:09:54 2017 +0200
@@ -98,44 +98,37 @@
 
 # Support macro for PLATFORM_EXTRACT_TARGET_AND_BUILD.
 # Converts autoconf style OS name to OpenJDK style, into
-# VAR_OS and VAR_OS_API.
+# VAR_OS, VAR_OS_TYPE and VAR_OS_ENV.
 AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_OS],
 [
   case "$1" in
     *linux*)
       VAR_OS=linux
-      VAR_OS_API=posix
-      VAR_OS_ENV=linux
+      VAR_OS_TYPE=unix
       ;;
     *solaris*)
       VAR_OS=solaris
-      VAR_OS_API=posix
-      VAR_OS_ENV=solaris
+      VAR_OS_TYPE=unix
       ;;
     *darwin*)
       VAR_OS=macosx
-      VAR_OS_API=posix
-      VAR_OS_ENV=macosx
+      VAR_OS_TYPE=unix
       ;;
     *bsd*)
       VAR_OS=bsd
-      VAR_OS_API=posix
-      VAR_OS_ENV=bsd
+      VAR_OS_TYPE=unix
       ;;
     *cygwin*)
       VAR_OS=windows
-      VAR_OS_API=winapi
       VAR_OS_ENV=windows.cygwin
       ;;
     *mingw*)
       VAR_OS=windows
-      VAR_OS_API=winapi
       VAR_OS_ENV=windows.msys
       ;;
     *aix*)
       VAR_OS=aix
-      VAR_OS_API=posix
-      VAR_OS_ENV=aix
+      VAR_OS_TYPE=unix
       ;;
     *)
       AC_MSG_ERROR([unsupported operating system $1])
@@ -165,14 +158,22 @@
   PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu)
   # ..and setup our own variables. (Do this explicitely to facilitate searching)
   OPENJDK_BUILD_OS="$VAR_OS"
-  OPENJDK_BUILD_OS_API="$VAR_OS_API"
-  OPENJDK_BUILD_OS_ENV="$VAR_OS_ENV"
+  if test "x$VAR_OS_TYPE" != x; then
+    OPENJDK_BUILD_OS_TYPE="$VAR_OS_TYPE"
+  else
+    OPENJDK_BUILD_OS_TYPE="$VAR_OS"
+  fi
+  if test "x$VAR_OS_ENV" != x; then
+    OPENJDK_BUILD_OS_ENV="$VAR_OS_ENV"
+  else
+    OPENJDK_BUILD_OS_ENV="$VAR_OS"
+  fi
   OPENJDK_BUILD_CPU="$VAR_CPU"
   OPENJDK_BUILD_CPU_ARCH="$VAR_CPU_ARCH"
   OPENJDK_BUILD_CPU_BITS="$VAR_CPU_BITS"
   OPENJDK_BUILD_CPU_ENDIAN="$VAR_CPU_ENDIAN"
   AC_SUBST(OPENJDK_BUILD_OS)
-  AC_SUBST(OPENJDK_BUILD_OS_API)
+  AC_SUBST(OPENJDK_BUILD_OS_TYPE)
   AC_SUBST(OPENJDK_BUILD_OS_ENV)
   AC_SUBST(OPENJDK_BUILD_CPU)
   AC_SUBST(OPENJDK_BUILD_CPU_ARCH)
@@ -187,14 +188,22 @@
   PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu)
   # ... and setup our own variables. (Do this explicitely to facilitate searching)
   OPENJDK_TARGET_OS="$VAR_OS"
-  OPENJDK_TARGET_OS_API="$VAR_OS_API"
-  OPENJDK_TARGET_OS_ENV="$VAR_OS_ENV"
+  if test "x$VAR_OS_TYPE" != x; then
+    OPENJDK_TARGET_OS_TYPE="$VAR_OS_TYPE"
+  else
+    OPENJDK_TARGET_OS_TYPE="$VAR_OS"
+  fi
+  if test "x$VAR_OS_ENV" != x; then
+    OPENJDK_TARGET_OS_ENV="$VAR_OS_ENV"
+  else
+    OPENJDK_TARGET_OS_ENV="$VAR_OS"
+  fi
   OPENJDK_TARGET_CPU="$VAR_CPU"
   OPENJDK_TARGET_CPU_ARCH="$VAR_CPU_ARCH"
   OPENJDK_TARGET_CPU_BITS="$VAR_CPU_BITS"
   OPENJDK_TARGET_CPU_ENDIAN="$VAR_CPU_ENDIAN"
   AC_SUBST(OPENJDK_TARGET_OS)
-  AC_SUBST(OPENJDK_TARGET_OS_API)
+  AC_SUBST(OPENJDK_TARGET_OS_TYPE)
   AC_SUBST(OPENJDK_TARGET_OS_ENV)
   AC_SUBST(OPENJDK_TARGET_CPU)
   AC_SUBST(OPENJDK_TARGET_CPU_ARCH)
@@ -331,19 +340,10 @@
   fi
   AC_SUBST(OPENJDK_TARGET_CPU_JLI_CFLAGS)
 
-  # Setup OPENJDK_TARGET_OS_API_DIR, used in source paths.
-  if test "x$OPENJDK_TARGET_OS_API" = xposix; then
-    OPENJDK_TARGET_OS_API_DIR="unix"
-  fi
-  if test "x$OPENJDK_TARGET_OS_API" = xwinapi; then
-    OPENJDK_TARGET_OS_API_DIR="windows"
-  fi
-  AC_SUBST(OPENJDK_TARGET_OS_API_DIR)
-
   if test "x$OPENJDK_TARGET_OS" = xmacosx; then
       OPENJDK_TARGET_OS_EXPORT_DIR=macosx
   else
-      OPENJDK_TARGET_OS_EXPORT_DIR=${OPENJDK_TARGET_OS_API_DIR}
+      OPENJDK_TARGET_OS_EXPORT_DIR=${OPENJDK_TARGET_OS_TYPE}
   fi
   AC_SUBST(OPENJDK_TARGET_OS_EXPORT_DIR)
 
@@ -472,8 +472,8 @@
     # And -q on AIX because otherwise the compiler produces 32-bit objects by default
     PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
   elif test "x$COMPILE_TYPE" = xreduced; then
-    if test "x$OPENJDK_TARGET_OS" != xwindows; then
-      # Specify -m if running reduced on other Posix platforms
+    if test "x$OPENJDK_TARGET_OS_TYPE" = xunix; then
+      # Specify -m if running reduced on unix platforms
       PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
     fi
   fi
--- a/common/autoconf/spec.gmk.in	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/spec.gmk.in	Wed Jul 05 20:09:54 2017 +0200
@@ -36,6 +36,7 @@
 X:=
 SPACE:=$(X) $(X)
 COMMA:=,
+DOLLAR:=$$
 HASH:=\#
 LEFT_PAREN:=(
 RIGHT_PAREN:=)
@@ -82,7 +83,7 @@
 
 # The built jdk will run in this target system.
 OPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@
-OPENJDK_TARGET_OS_API:=@OPENJDK_TARGET_OS_API@
+OPENJDK_TARGET_OS_TYPE:=@OPENJDK_TARGET_OS_TYPE@
 OPENJDK_TARGET_OS_ENV:=@OPENJDK_TARGET_OS_ENV@
 
 OPENJDK_TARGET_CPU:=@OPENJDK_TARGET_CPU@
@@ -99,13 +100,12 @@
 OPENJDK_TARGET_CPU_LEGACY_LIB:=@OPENJDK_TARGET_CPU_LEGACY_LIB@
 OPENJDK_TARGET_CPU_OSARCH:=@OPENJDK_TARGET_CPU_OSARCH@
 OPENJDK_TARGET_CPU_JLI_CFLAGS:=@OPENJDK_TARGET_CPU_JLI_CFLAGS@
-OPENJDK_TARGET_OS_API_DIR:=@OPENJDK_TARGET_OS_API_DIR@
 OPENJDK_TARGET_OS_EXPORT_DIR:=@OPENJDK_TARGET_OS_EXPORT_DIR@
 
 # We are building on this build system.
 # When not cross-compiling, it is the same as the target.
 OPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@
-OPENJDK_BUILD_OS_API:=@OPENJDK_BUILD_OS_API@
+OPENJDK_BUILD_OS_TYPE:=@OPENJDK_BUILD_OS_TYPE@
 OPENJDK_BUILD_OS_ENV:=@OPENJDK_BUILD_OS_ENV@
 
 OPENJDK_BUILD_CPU:=@OPENJDK_BUILD_CPU@
@@ -343,7 +343,7 @@
 CPP:=@FIXPATH@ @CPP@
 #CPPFLAGS:=@CPPFLAGS@
 
-# The linker can be gcc or ld on posix systems, or link.exe on windows systems.
+# The linker can be gcc or ld on unix systems, or link.exe on windows systems.
 LD:=@FIXPATH@ @LD@
 
 # Xcode SDK path
@@ -384,7 +384,7 @@
 
 AS:=@FIXPATH@ @AS@
 
-# AR is used to create a static library (is ar in posix, lib.exe in windows)
+# AR is used to create a static library (is ar in unix, lib.exe in windows)
 AR:=@FIXPATH@ @AR@
 ARFLAGS:=@ARFLAGS@
 
@@ -448,7 +448,7 @@
 JAVA_TOOL_FLAGS_SMALL:=@JAVA_TOOL_FLAGS_SMALL@
 SJAVAC_SERVER_JAVA_FLAGS:=@SJAVAC_SERVER_JAVA_FLAGS@
 
-# The *_CMD variables are defined separately to be easily overridden in bootcycle-spec.gmk 
+# The *_CMD variables are defined separately to be easily overridden in bootcycle-spec.gmk
 # for bootcycle-images build. Make sure to keep them in sync. Do not use the *_CMD
 # versions of the variables directly.
 JAVA_CMD:=@JAVA@
@@ -562,10 +562,10 @@
 # Where the build output is stored for your convenience.
 BUILD_LOG:=@BUILD_LOG@
 BUILD_LOG_PREVIOUS:=@BUILD_LOG_PREVIOUS@
-# Disable the build log wrapper on sjavac+winapi until
+# Disable the build log wrapper on sjavac+windows until
 # we have solved how to prevent the log wrapper to wait
 # for the background sjavac server process.
-ifeq (@ENABLE_SJAVAC@X@OPENJDK_BUILD_OS_API@,yesXwinapi)
+ifeq (@ENABLE_SJAVAC@X@OPENJDK_BUILD_OS@,yesXwindows)
   BUILD_LOG_WRAPPER:=
 else
   BUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@
@@ -702,7 +702,7 @@
 
 # This macro is called to allow inclusion of closed source counterparts.
 # Unless overridden in closed sources, it expands to nothing.
-# Usage: This function is called in an open makefile, with the following 
+# Usage: This function is called in an open makefile, with the following
 # arguments:
 # $1 the name of the repo, or empty if the top-level repo.
 # $2 the name of the makefile
--- a/common/autoconf/toolchain.m4	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/toolchain.m4	Wed Jul 05 20:09:54 2017 +0200
@@ -712,12 +712,6 @@
       [HAS_CFLAG_OPTIMIZE_DEBUG=true],
       [HAS_CFLAG_OPTIMIZE_DEBUG=false])
 
-    # "-fsanitize=undefined" supported for GCC 4.9 and later
-    CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG="-fsanitize=undefined -fsanitize-recover"
-    FLAGS_COMPILER_CHECK_ARGUMENTS([$CFLAG_DETECT_UNDEFINED_BEHAVIOR_FLAG],
-      [HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=true],
-      [HAS_CFLAG_DETECT_UNDEFINED_BEHAVIOR=false])
-
     # "-z relro" supported in GNU binutils 2.17 and later
     LINKER_RELRO_FLAG="-Xlinker -z -Xlinker relro"
     FLAGS_LINKER_CHECK_ARGUMENTS([$LINKER_RELRO_FLAG],
--- a/common/autoconf/toolchain_windows.m4	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/autoconf/toolchain_windows.m4	Wed Jul 05 20:09:54 2017 +0200
@@ -248,7 +248,7 @@
   METHOD="$2"
   if test -e "$POSSIBLE_MSVCR_DLL"; then
     AC_MSG_NOTICE([Found msvcr100.dll at $POSSIBLE_MSVCR_DLL using $METHOD])
-    
+
     # Need to check if the found msvcr is correct architecture
     AC_MSG_CHECKING([found msvcr100.dll architecture])
     MSVCR_DLL_FILETYPE=`$FILE -b "$POSSIBLE_MSVCR_DLL"`
@@ -291,7 +291,7 @@
       AC_MSG_ERROR([Could not find a proper msvcr100.dll as specified by --with-msvcr-dll])
     fi
   fi
-  
+
   if test "x$MSVCR_DLL" = x; then
     # Probe: Using well-known location from Visual Studio 10.0
     if test "x$VCINSTALLDIR" != x; then
@@ -311,9 +311,9 @@
     POSSIBLE_MSVCR_DLL="$BOOT_JDK/bin/msvcr100.dll"
     TOOLCHAIN_CHECK_POSSIBLE_MSVCR_DLL([$POSSIBLE_MSVCR_DLL], [well-known location in Boot JDK])
   fi
-  
+
   if test "x$MSVCR_DLL" = x; then
-    # Probe: Look in the Windows system32 directory 
+    # Probe: Look in the Windows system32 directory
     CYGWIN_SYSTEMROOT="$SYSTEMROOT"
     BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(CYGWIN_SYSTEMROOT)
     POSSIBLE_MSVCR_DLL="$CYGWIN_SYSTEMROOT/system32/msvcr100.dll"
@@ -333,7 +333,7 @@
       TOOLCHAIN_CHECK_POSSIBLE_MSVCR_DLL([$POSSIBLE_MSVCR_DLL], [search of VS100COMNTOOLS])
     fi
   fi
-      
+
   if test "x$MSVCR_DLL" = x; then
     # Probe: Search wildly in the VCINSTALLDIR. We've probably lost by now.
     # (This was the original behaviour; kept since it might turn up something)
@@ -347,11 +347,11 @@
           POSSIBLE_MSVCR_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name msvcr100.dll | $HEAD --lines 1`
         fi
       fi
-      
+
       TOOLCHAIN_CHECK_POSSIBLE_MSVCR_DLL([$POSSIBLE_MSVCR_DLL], [search of VCINSTALLDIR])
     fi
   fi
-  
+
   if test "x$MSVCR_DLL" = x; then
     AC_MSG_CHECKING([for msvcr100.dll])
     AC_MSG_RESULT([no])
--- a/common/bin/compare_exceptions.sh.incl	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/bin/compare_exceptions.sh.incl	Wed Jul 05 20:09:54 2017 +0200
@@ -110,6 +110,7 @@
 ./bin/wsimport
 ./bin/xjc
 ./jre/bin/java
+./jre/bin/jjs
 ./jre/bin/keytool
 ./jre/bin/orbd
 ./jre/bin/pack200
@@ -199,6 +200,7 @@
 ./bin/wsimport
 ./bin/xjc
 ./jre/bin/java
+./jre/bin/jjs
 ./jre/bin/keytool
 ./jre/bin/orbd
 ./jre/bin/pack200
@@ -924,11 +926,6 @@
 /META-INF/INDEX.LIST
 "
 
-KNOWN_BIN_DIFF="
-./jre/lib/libJObjC.dylib
-./lib/libJObjC.dylib
-"
-
 ACCEPTED_BIN_DIFF="
 ./bin/appletviewer
 ./bin/idlj
@@ -980,34 +977,82 @@
 ./jre/bin/tnameserv
 ./jre/lib/libsaproc.dylib
 ./jre/lib/server/libjvm.dylib
+./demo/jvmti/compiledMethodLoad/lib/libcompiledMethodLoad.dylib
+./demo/jvmti/gctest/lib/libgctest.dylib
+./demo/jvmti/heapTracker/lib/libheapTracker.dylib
+./demo/jvmti/heapViewer/lib/libheapViewer.dylib
+./demo/jvmti/minst/lib/libminst.dylib
+./demo/jvmti/mtrace/lib/libmtrace.dylib
+./demo/jvmti/versionCheck/lib/libversionCheck.dylib
+./demo/jvmti/waiters/lib/libwaiters.dylib
+./Contents/Home/lib/libAppleScriptEngine.dylib
+./Contents/Home/lib/libattach.dylib
+./Contents/Home/lib/libawt_lwawt.dylib
+./Contents/Home/lib/libdeploy.dylib
+./Contents/Home/lib/libdt_socket.dylib
+./Contents/Home/lib/libhprof.dylib
+./Contents/Home/lib/libinstrument.dylib
+./Contents/Home/lib/libjava_crw_demo.dylib
+./Contents/Home/lib/libjdwp.dylib
+./Contents/Home/lib/libjsdt.dylib
+./Contents/Home/lib/libjsig.dylib
+./Contents/Home/lib/libmanagement.dylib
+./Contents/Home/lib/libnpjp2.dylib
+./Contents/Home/lib/libosx.dylib
+./Contents/Home/lib/libosxapp.dylib
+./Contents/Home/lib/libsaproc.dylib
+./Contents/Home/lib/libsplashscreen.dylib
+./Contents/Home/lib/libverify.dylib
+./Contents/Home/lib/server/libjsig.dylib
+./Contents/Home/lib/server/libjvm.dylib
+./jre/lib/libAppleScriptEngine.dylib
+./jre/lib/libattach.dylib
+./jre/lib/libawt_lwawt.dylib
+./jre/lib/libdeploy.dylib
+./jre/lib/libdt_socket.dylib
+./jre/lib/libhprof.dylib
+./jre/lib/libinstrument.dylib
+./jre/lib/libjava_crw_demo.dylib
+./jre/lib/libjdwp.dylib
+./jre/lib/libjsdt.dylib
+./jre/lib/libjsig.dylib
+./jre/lib/libmanagement.dylib
+./jre/lib/libosx.dylib
+./jre/lib/libosxapp.dylib
+./jre/lib/libsaproc.dylib
+./jre/lib/libsplashscreen.dylib
+./jre/lib/libverify.dylib
+./jre/lib/server/libjvm.dylib
+./lib/libAppleScriptEngine.dylib
+./lib/libattach.dylib
+./lib/libawt_lwawt.dylib
+./lib/libdeploy.dylib
+./lib/libdt_socket.dylib
+./lib/libhprof.dylib
+./lib/libinstrument.dylib
+./lib/libjava_crw_demo.dylib
+./lib/libjdwp.dylib
+./lib/libjsdt.dylib
+./lib/libjsig.dylib
+./lib/libmanagement.dylib
+./lib/libnpjp2.dylib
+./lib/libosx.dylib
+./lib/libosxapp.dylib
+./lib/libverify.dylib
 ./lib/libsaproc.dylib
+./lib/libsplashscreen.dylib
 ./lib/server/libjvm.dylib
 ./lib/deploy/JavaControlPanel.prefPane/Contents/MacOS/JavaControlPanel
 "
 
-KNOWN_SIZE_DIFF="
-./jre/lib/libJObjC.dylib
-./lib/libJObjC.dylib
-"
-
 SORT_SYMBOLS="
-./jre/lib/libJObjC.dylib
-./lib/libJObjC.dylib
+./Contents/Home/lib/libsaproc.dylib
+./jre/lib/libsaproc.dylib
+./lib/libsaproc.dylib
 "
 
-KNOWN_SYM_DIFF="
-./jre/lib/libJObjC.dylib
-./lib/libJObjC.dylib
+ACCEPTED_SMALL_SIZE_DIFF="
+./bin/javaws
+./Contents/Home/bin/_javaws
 "
-
-KNOWN_ELF_DIFF="
-./jre/lib/libJObjC.dylib
-./lib/libJObjC.dylib
-"
-
-KNOWN_DIS_DIFF="
-./jre/lib/libJObjC.dylib
-./lib/libJObjC.dylib
-"
-
 fi
--- a/common/bin/logger.sh	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/bin/logger.sh	Wed Jul 05 20:09:54 2017 +0200
@@ -22,10 +22,10 @@
 # questions.
 #
 
-# Usage: ./logger.sh theloggfile acommand arg1 arg2 
+# Usage: ./logger.sh theloggfile acommand arg1 arg2
 #
 # Execute acommand with args, in such a way that
-# both stdout and stderr from acommand are appended to 
+# both stdout and stderr from acommand are appended to
 # theloggfile.
 #
 # Preserve stdout and stderr, so that the stdout
--- a/common/bin/shell-tracer.sh	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/bin/shell-tracer.sh	Wed Jul 05 20:09:54 2017 +0200
@@ -26,12 +26,12 @@
 #
 # This shell script is supposed to be set as a replacement for SHELL in make,
 # causing it to be called whenever make wants to execute shell commands.
-# The <shell command line> is suitable for passing on to the old shell, 
+# The <shell command line> is suitable for passing on to the old shell,
 # typically beginning with -c.
 #
-# This script will make sure the shell command line is executed with 
+# This script will make sure the shell command line is executed with
 # OLD_SHELL -x, and it will also store a simple log of the the time it takes to
-# execute the command in the OUTPUT_FILE, using the "time" utility as pointed 
+# execute the command in the OUTPUT_FILE, using the "time" utility as pointed
 # to by TIME_CMD. If TIME_CMD is "-", no timestamp will be stored.
 
 TIME_CMD="$1"
--- a/common/bin/test_builds.sh	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/bin/test_builds.sh	Wed Jul 05 20:09:54 2017 +0200
@@ -171,7 +171,7 @@
 ) 2>&1 | tee ${t3}.build.txt
 checkErrors
 
-# Compare old build to build-infra build 
+# Compare old build to build-infra build
 ( \
   sh ${t0}/common/bin/compareimage.sh \
     ${t3}/build/*/j2sdk-image \
@@ -181,4 +181,3 @@
 checkErrors
 
 exit 0
-
--- a/common/bin/unshuffle_patch.sh	Thu Dec 04 15:22:30 2014 -0800
+++ b/common/bin/unshuffle_patch.sh	Wed Jul 05 20:09:54 2017 +0200
@@ -80,7 +80,7 @@
   if [ $repo = "$r" ] ; then
     found="true"
     break;
-  fi 
+  fi
 done
 if [ $found = "false" ] ; then
   echo "ERROR: Unknown repo: $repo. Should be one of [$repos]." >&2
@@ -200,4 +200,3 @@
     printf "%s\n" "$line" >> $output
   fi
 done < "$input"
-
--- a/corba/.hgtags	Thu Dec 04 15:22:30 2014 -0800
+++ b/corba/.hgtags	Wed Jul 05 20:09:54 2017 +0200
@@ -283,3 +283,4 @@
 8acf056126e819cf536eef02aee0f61f207a6b52 jdk9-b38
 53bf36cb722db50815712258a77cb6bbe25a2f5f jdk9-b39
 e27c725d6c9d155667b35255f442d4ceb8c3c084 jdk9-b40
+1908b886ba1eda46fa725cf1160fe5d30fd1a7e5 jdk9-b41
--- a/hotspot/.hgtags	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/.hgtags	Wed Jul 05 20:09:54 2017 +0200
@@ -443,3 +443,4 @@
 c363a8b87e477ee45d6d3cb2a36cb365141bc596 jdk9-b38
 9cb75e5e394827ccbaf2e15524108a412dc4ddc5 jdk9-b39
 6b09b3193d731e3288e2a240c504a20d0a06c766 jdk9-b40
+1d29b13e8a515a7ea3b882f140576d5d675bc11f jdk9-b41
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java	Wed Jul 05 20:09:54 2017 +0200
@@ -64,8 +64,8 @@
   }
 
   // Accessing spaces
-  public EdenSpace eden() {
-    return (EdenSpace) VMObjectFactory.newObject(EdenSpace.class, edenSpaceField.getValue(addr));
+  public ContiguousSpace eden() {
+    return (ContiguousSpace) VMObjectFactory.newObject(ContiguousSpace.class, edenSpaceField.getValue(addr));
   }
 
   public ContiguousSpace from() {
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/EdenSpace.java	Thu Dec 04 15:22:30 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-package sun.jvm.hotspot.memory;
-
-import java.util.*;
-import sun.jvm.hotspot.debugger.*;
-import sun.jvm.hotspot.runtime.*;
-import sun.jvm.hotspot.types.*;
-
-/** <P> Class EdenSpace describes eden-space in new
-    generation. (Currently it does not add any significant
-    functionality beyond ContiguousSpace.) */
-
-public class EdenSpace extends ContiguousSpace {
-  public EdenSpace(Address addr) {
-    super(addr);
-  }
-}
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java	Wed Jul 05 20:09:54 2017 +0200
@@ -219,7 +219,7 @@
     if (threadNameField == null) {
       SystemDictionary sysDict = VM.getVM().getSystemDictionary();
       InstanceKlass k = sysDict.getThreadKlass();
-      threadNameField  = (OopField) k.findField("name", "[C");
+      threadNameField  = (OopField) k.findField("name", "Ljava/lang/String;");
       threadGroupField = (OopField) k.findField("group", "Ljava/lang/ThreadGroup;");
       threadEETopField = (LongField) k.findField("eetop", "J");
       threadTIDField = (LongField) k.findField("tid", "J");
@@ -258,7 +258,7 @@
 
   public static String threadOopGetName(Oop threadOop) {
     initThreadFields();
-    return charArrayToString((TypeArray) threadNameField.getValue(threadOop));
+    return stringOopToString(threadNameField.getValue(threadOop));
   }
 
   /** May return null if, e.g., thread was not started */
--- a/hotspot/make/bsd/makefiles/sa.make	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/make/bsd/makefiles/sa.make	Wed Jul 05 20:09:54 2017 +0200
@@ -40,6 +40,8 @@
 
 include $(GAMMADIR)/make/sa.files
 
+-include $(HS_ALT_MAKE)/bsd/makefiles/sa.make
+
 TOPDIR    = $(shell echo `pwd`)
 GENERATED = $(TOPDIR)/../generated
 
--- a/hotspot/make/linux/makefiles/gcc.make	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/make/linux/makefiles/gcc.make	Wed Jul 05 20:09:54 2017 +0200
@@ -214,7 +214,7 @@
   WARNINGS_ARE_ERRORS += -Wno-return-type -Wno-empty-body
 endif
 
-WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value -Wformat=2
+WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef -Wunused-function -Wunused-value -Wformat=2 -Wreturn-type
 
 ifeq ($(USE_CLANG),)
   # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit
--- a/hotspot/make/solaris/makefiles/add_gnu_debuglink.make	Thu Dec 04 15:22:30 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-#
-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#  
-#
-
-# Rules to build add_gnu_debuglink, used by vm.make on Solaris
-
-# Allow $(ADD_GNU_DEBUGLINK) to be called from any directory.
-# We don't set or use the GENERATED macro to avoid affecting
-# other HotSpot Makefiles.
-TOPDIR                    = $(shell echo `pwd`)
-ADD_GNU_DEBUGLINK         = $(TOPDIR)/../generated/add_gnu_debuglink
-
-ADD_GNU_DEBUGLINK_DIR     = $(GAMMADIR)/src/os/solaris/add_gnu_debuglink
-ADD_GNU_DEBUGLINK_SRC     = $(ADD_GNU_DEBUGLINK_DIR)/add_gnu_debuglink.c
-ADD_GNU_DEBUGLINK_FLAGS   = 
-LIBS_ADD_GNU_DEBUGLINK   += -lelf
-
-ifeq ("${Platform_compiler}", "sparcWorks")
-# Enable the following ADD_GNU_DEBUGLINK_FLAGS addition if you need to
-# compare the built ELF objects.
-#
-# The -g option makes static data global and the "-W0,-noglobal"
-# option tells the compiler to not globalize static data using a unique
-# globalization prefix. Instead force the use of a static globalization
-# prefix based on the source filepath so the objects from two identical
-# compilations are the same.
-#
-# Note: The blog says to use "-W0,-xglobalstatic", but that doesn't
-#       seem to work. I got "-W0,-noglobal" from Kelly and that works.
-#ADD_GNU_DEBUGLINK_FLAGS += -W0,-noglobal
-endif # Platform_compiler == sparcWorks
-
-$(ADD_GNU_DEBUGLINK): $(ADD_GNU_DEBUGLINK_SRC)
-	$(CC) -g -o $@ $< $(ADD_GNU_DEBUGLINK_FLAGS) $(LIBS_ADD_GNU_DEBUGLINK)
--- a/hotspot/make/solaris/makefiles/defs.make	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/make/solaris/makefiles/defs.make	Wed Jul 05 20:09:54 2017 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -138,6 +138,55 @@
         OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
       endif
 
+      ifneq ($(OBJCOPY),)
+        # OBJCOPY version check:
+        # - version number is last blank separate word on first line
+        # - version number formats that have been seen:
+        #   - <major>.<minor>
+        #   - <major>.<minor>.<micro>
+        #
+        # Full Debug Symbols on Solaris needs version 2.21.1 or newer.
+        #
+        OBJCOPY_VERS_CHK := $(shell \
+          $(OBJCOPY) --version \
+            | sed -n \
+                  -e 's/.* //' \
+                  -e '/^[01]\./b bad' \
+                  -e '/^2\./{' \
+                  -e '  s/^2\.//' \
+                  -e '  /^[0-9]$$/b bad' \
+                  -e '  /^[0-9]\./b bad' \
+                  -e '  /^1[0-9]$$/b bad' \
+                  -e '  /^1[0-9]\./b bad' \
+                  -e '  /^20\./b bad' \
+                  -e '  /^21\.0$$/b bad' \
+                  -e '  /^21\.0\./b bad' \
+                  -e '}' \
+                  -e ':good' \
+                  -e 's/.*/VALID_VERSION/p' \
+                  -e 'q' \
+                  -e ':bad' \
+                  -e 's/.*/BAD_VERSION/p' \
+                  -e 'q' \
+          )
+        ifeq ($(OBJCOPY_VERS_CHK),BAD_VERSION)
+          _JUNK_ := $(shell \
+            echo >&2 "WARNING: $(OBJCOPY) --version info:"; \
+            $(OBJCOPY) --version | sed -n -e 's/^/WARNING: /p' -e 'q' >&2; \
+            echo >&2 "WARNING: an objcopy version of 2.21.1 or newer" \
+              "is needed to create valid .debuginfo files."; \
+            echo >&2 "WARNING: ignoring above objcopy command."; \
+            echo >&2 "WARNING: patch 149063-01 or newer contains the" \
+              "correct Solaris 10 SPARC version."; \
+            echo >&2 "WARNING: patch 149064-01 or newer contains the" \
+              "correct Solaris 10 X86 version."; \
+            echo >&2 "WARNING: Solaris 11 Update 1 contains the" \
+              "correct version."; \
+            )
+          OBJCOPY=
+        endif
+      endif
+
       ifeq ($(OBJCOPY),)
         $(eval $(call print_info, "no objcopy cmd found so cannot create .debuginfo files."))
         ENABLE_FULL_DEBUG_SYMBOLS=0
--- a/hotspot/make/solaris/makefiles/dtrace.make	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/make/solaris/makefiles/dtrace.make	Wed Jul 05 20:09:54 2017 +0200
@@ -101,25 +101,16 @@
 XLIBJVM_DTRACE_DEBUGINFO   = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DEBUGINFO)
 XLIBJVM_DTRACE_DIZ         = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DIZ)
 
-$(XLIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE)
+$(XLIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE)
 	@echo $(LOG_INFO) Making $@
 	$(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \
 	$(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. -I$(GENERATED) \
 		$(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-# gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
-# Clear the SHF_ALLOC flag (if set) from empty section headers.
-# An empty section header has sh_addr == 0 and sh_size == 0.
-# This problem has only been seen on Solaris X64, but we call this tool
-# on all Solaris builds just in case.
-	$(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DB_DEBUGINFO)
-# $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-# Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-#         $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) ;
 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 # in the link name:
-	( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) )
+	( cd $(XLIBJVM_DIR) && $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) )
   ifeq ($(STRIP_POLICY),all_strip)
 	$(QUIETLY) $(STRIP) $@
   else
@@ -136,20 +127,16 @@
   endif
 endif
 
-$(XLIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
+$(XLIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
 	@echo $(LOG_INFO) Making $@
 	$(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \
 	$(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. \
 		$(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-# Clear the SHF_ALLOC flag (if set) from empty section headers.
-	$(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DTRACE_DEBUGINFO)
-# $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-#         $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) ;
 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
 # in the link name:
-	( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) )
+	( cd $(XLIBJVM_DIR) && $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) )
   ifeq ($(STRIP_POLICY),all_strip)
 	$(QUIETLY) $(STRIP) $@
   else
@@ -206,17 +193,13 @@
 $(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp 
 	$(QUIETLY) $(CXX) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp
 
-$(LIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE)
+$(LIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE)
 	@echo $(LOG_INFO) Making $@
 	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. -I$(GENERATED) \
 		$(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-# Clear the SHF_ALLOC flag (if set) from empty section headers.
-	$(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DB_DEBUGINFO)
-# $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-#	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@
-	$(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $@
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@
   ifeq ($(STRIP_POLICY),all_strip)
 	$(QUIETLY) $(STRIP) $@
   else
@@ -231,17 +214,13 @@
   endif
 endif
 
-$(LIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
+$(LIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
 	@echo $(LOG_INFO) Making $@
 	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I.  \
 		$(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-# Clear the SHF_ALLOC flag (if set) from empty section headers.
-	$(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DTRACE_DEBUGINFO)
-# $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-#	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@
-	$(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $@
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@
   ifeq ($(STRIP_POLICY),all_strip)
 	$(QUIETLY) $(STRIP) $@
   else
--- a/hotspot/make/solaris/makefiles/fix_empty_sec_hdr_flags.make	Thu Dec 04 15:22:30 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-#
-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#  
-#
-
-# Rules to build fix_empty_sec_hdr_flags, used by vm.make on Solaris
-
-# Allow $(FIX_EMPTY_SEC_HDR_FLAGS) to be called from any directory.
-# We don't set or use the GENERATED macro to avoid affecting
-# other HotSpot Makefiles.
-TOPDIR                          = $(shell echo `pwd`)
-FIX_EMPTY_SEC_HDR_FLAGS         = $(TOPDIR)/../generated/fix_empty_sec_hdr_flags
-
-FIX_EMPTY_SEC_HDR_FLAGS_DIR     = $(GAMMADIR)/src/os/solaris/fix_empty_sec_hdr_flags
-FIX_EMPTY_SEC_HDR_FLAGS_SRC     = $(FIX_EMPTY_SEC_HDR_FLAGS_DIR)/fix_empty_sec_hdr_flags.c
-FIX_EMPTY_SEC_HDR_FLAGS_FLAGS   = 
-LIBS_FIX_EMPTY_SEC_HDR_FLAGS   += -lelf
-
-ifeq ("${Platform_compiler}", "sparcWorks")
-# Enable the following FIX_EMPTY_SEC_HDR_FLAGS_FLAGS addition if you need to
-# compare the built ELF objects.
-#
-# The -g option makes static data global and the "-W0,-noglobal"
-# option tells the compiler to not globalize static data using a unique
-# globalization prefix. Instead force the use of a static globalization
-# prefix based on the source filepath so the objects from two identical
-# compilations are the same.
-#
-# Note: The blog says to use "-W0,-xglobalstatic", but that doesn't
-#       seem to work. I got "-W0,-noglobal" from Kelly and that works.
-#FIX_EMPTY_SEC_HDR_FLAGS_FLAGS += -W0,-noglobal
-endif # Platform_compiler == sparcWorks
-
-$(FIX_EMPTY_SEC_HDR_FLAGS): $(FIX_EMPTY_SEC_HDR_FLAGS_SRC)
-	$(CC) -g -o $@ $< $(FIX_EMPTY_SEC_HDR_FLAGS_FLAGS) $(LIBS_FIX_EMPTY_SEC_HDR_FLAGS)
--- a/hotspot/make/solaris/makefiles/jsig.make	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/make/solaris/makefiles/jsig.make	Wed Jul 05 20:09:54 2017 +0200
@@ -47,22 +47,13 @@
 LFLAGS_JSIG += -mt -xnolib
 endif
 
-$(LIBJSIG): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
+$(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
 	@echo $(LOG_INFO) Making signal interposition lib...
 	$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
                          $(LFLAGS_JSIG) -o $@ $(JSIGSRCDIR)/jsig.c -ldl
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-# gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
-# Clear the SHF_ALLOC flag (if set) from empty section headers.
-# An empty section header has sh_addr == 0 and sh_size == 0.
-# This problem has only been seen on Solaris X64, but we call this tool
-# on all Solaris builds just in case.
-	$(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
-# $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-# Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-#	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
-	$(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJSIG_DEBUGINFO) $@
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
   ifeq ($(STRIP_POLICY),all_strip)
 	$(QUIETLY) $(STRIP) $@
   else
--- a/hotspot/make/solaris/makefiles/saproc.make	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/make/solaris/makefiles/saproc.make	Wed Jul 05 20:09:54 2017 +0200
@@ -90,7 +90,7 @@
 #SOLARIS_11_B159_OR_LATER=-DSOLARIS_11_B159_OR_LATER
 
 
-$(LIBSAPROC): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(SASRCFILES) $(SADISOBJ) $(SAMAPFILE)
+$(LIBSAPROC): $(SASRCFILES) $(SADISOBJ) $(SAMAPFILE)
 	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
 	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
 	  exit 1; \
@@ -121,17 +121,8 @@
 	           -c -o $(SADISOBJ)
 
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-# gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
-# Clear the SHF_ALLOC flag (if set) from empty section headers.
-# An empty section header has sh_addr == 0 and sh_size == 0.
-# This problem has only been seen on Solaris X64, but we call this tool
-# on all Solaris builds just in case.
-	$(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
-# $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-# Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-#	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
-	$(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBSAPROC_DEBUGINFO) $@
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
   ifeq ($(STRIP_POLICY),all_strip)
 	$(QUIETLY) $(STRIP) $@
   else
--- a/hotspot/make/solaris/makefiles/vm.make	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/make/solaris/makefiles/vm.make	Wed Jul 05 20:09:54 2017 +0200
@@ -155,14 +155,6 @@
 include $(MAKEFILES_DIR)/dtrace.make
 
 #----------------------------------------------------------------------
-# add_gnu_debuglink tool
-include $(MAKEFILES_DIR)/add_gnu_debuglink.make
-
-#----------------------------------------------------------------------
-# fix_empty_sec_hdr_flags tool
-include $(MAKEFILES_DIR)/fix_empty_sec_hdr_flags.make
-
-#----------------------------------------------------------------------
 # JVM
 
 JVM      = jvm
@@ -302,7 +294,7 @@
 LINK_VM = $(LINK_LIB.CXX)
 endif
 # making the library:
-$(LIBJVM): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(LIBJVM.o) $(LIBJVM_MAPFILE)
+$(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE)
 ifeq ($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
 	@echo $(LOG_INFO) Linking vm...
 	$(QUIETLY) $(LINK_LIB.CXX/PRE_HOOK)
@@ -310,17 +302,8 @@
 	$(QUIETLY) $(LINK_LIB.CXX/POST_HOOK)
 	$(QUIETLY) rm -f $@.1 && ln -s $@ $@.1
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-# gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
-# Clear the SHF_ALLOC flag (if set) from empty section headers.
-# An empty section header has sh_addr == 0 and sh_size == 0.
-# This problem has only been seen on Solaris X64, but we call this tool
-# on all Solaris builds just in case.
-	$(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
 	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
-# $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
-# Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
-#	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
-	$(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DEBUGINFO) $@
+	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
   ifeq ($(STRIP_POLICY),all_strip)
 	$(QUIETLY) $(STRIP) $@
   else
--- a/hotspot/make/windows/makefiles/sa.make	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/make/windows/makefiles/sa.make	Wed Jul 05 20:09:54 2017 +0200
@@ -122,7 +122,7 @@
 SA_LFLAGS = $(SA_LFLAGS) -map -debug
 !endif
 !if "$(BUILDARCH)" == "i486"
-SA_LFLAGS = $(SAFESEH_FLAG) $(SA_LFLAGS)
+SA_LFLAGS = /SAFESEH $(SA_LFLAGS)
 !endif
 
 SA_CFLAGS = $(SA_CFLAGS) $(MP_FLAG)
--- a/hotspot/make/windows/makefiles/vm.make	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/make/windows/makefiles/vm.make	Wed Jul 05 20:09:54 2017 +0200
@@ -89,19 +89,24 @@
 
 # If you modify exports below please do the corresponding changes in
 # src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
-LD_FLAGS=$(LD_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
-  /export:JNI_GetDefaultJavaVMInitArgs       \
-  /export:JNI_CreateJavaVM                   \
-  /export:JVM_FindClassFromBootLoader        \
-  /export:JNI_GetCreatedJavaVMs              \
-  /export:jio_snprintf                       \
-  /export:jio_printf                         \
-  /export:jio_fprintf                        \
-  /export:jio_vfprintf                       \
-  /export:jio_vsnprintf                      \
-  $(AGCT_EXPORT)                             \
-  /export:JVM_GetVersionInfo                 \
-  /export:JVM_InitAgentProperties
+!if "$(BUILDARCH)" == "amd64"
+EXPORT_LIST=
+!else
+EXPORT_LIST=/export:JNI_GetDefaultJavaVMInitArgs \
+            /export:JNI_CreateJavaVM             \
+            /export:JVM_FindClassFromBootLoader  \
+            /export:JNI_GetCreatedJavaVMs        \
+            /export:jio_snprintf                 \
+            /export:jio_printf                   \
+            /export:jio_fprintf                  \
+            /export:jio_vfprintf                 \
+            /export:jio_vsnprintf                \
+            $(AGCT_EXPORT)                       \
+            /export:JVM_GetVersionInfo           \
+            /export:JVM_InitAgentProperties
+!endif
+
+LD_FLAGS=$(LD_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 $(EXPORT_LIST)
 
 CXX_INCLUDE_DIRS=/I "..\generated"
 
--- a/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/src/cpu/ppc/vm/macroAssembler_ppc.hpp	Wed Jul 05 20:09:54 2017 +0200
@@ -27,6 +27,7 @@
 #define CPU_PPC_VM_MACROASSEMBLER_PPC_HPP
 
 #include "asm/assembler.hpp"
+#include "utilities/macros.hpp"
 
 // MacroAssembler extends Assembler by a few frequently used macros.
 
--- a/hotspot/src/cpu/ppc/vm/templateTable_ppc_64.cpp	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/src/cpu/ppc/vm/templateTable_ppc_64.cpp	Wed Jul 05 20:09:54 2017 +0200
@@ -3513,7 +3513,7 @@
                  Rtags            = R3_ARG1,
                  Rindex           = R5_ARG3;
 
-  const bool allow_shared_alloc = Universe::heap()->supports_inline_contig_alloc() && !CMSIncrementalMode;
+  const bool allow_shared_alloc = Universe::heap()->supports_inline_contig_alloc();
 
   // --------------------------------------------------------------------------
   // Check if fast case is possible.
--- a/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/src/cpu/sparc/vm/macroAssembler_sparc.cpp	Wed Jul 05 20:09:54 2017 +0200
@@ -2734,12 +2734,12 @@
 // box->dhw disposition - post-conditions at DONE_LABEL.
 // -   Successful inflated lock:  box->dhw != 0.
 //     Any non-zero value suffices.
-//     Consider G2_thread, rsp, boxReg, or unused_mark()
+//     Consider G2_thread, rsp, boxReg, or markOopDesc::unused_mark()
 // -   Successful Stack-lock: box->dhw == mark.
 //     box->dhw must contain the displaced mark word value
 // -   Failure -- icc.ZFlag == 0 and box->dhw is undefined.
 //     The slow-path fast_enter() and slow_enter() operators
-//     are responsible for setting box->dhw = NonZero (typically ::unused_mark).
+//     are responsible for setting box->dhw = NonZero (typically markOopDesc::unused_mark()).
 // -   Biased: box->dhw is undefined
 //
 // SPARC refworkload performance - specifically jetstream and scimark - are
@@ -2855,7 +2855,7 @@
          // If m->owner != null goto IsLocked
          // Pessimistic form: Test-and-CAS vs CAS
          // The optimistic form avoids RTS->RTO cache line upgrades.
-         ld_ptr(Rmark, ObjectMonitor::owner_offset_in_bytes() - 2, Rscratch);
+         ld_ptr(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner), Rscratch);
          andcc(Rscratch, Rscratch, G0);
          brx(Assembler::notZero, false, Assembler::pn, done);
          delayed()->nop();
@@ -2864,7 +2864,7 @@
 
       // Try to CAS m->owner from null to Self
       // Invariant: if we acquire the lock then _recursions should be 0.
-      add(Rmark, ObjectMonitor::owner_offset_in_bytes()-2, Rmark);
+      add(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner), Rmark);
       mov(G2_thread, Rscratch);
       cas_ptr(Rmark, G0, Rscratch);
       cmp(Rscratch, G0);
@@ -2948,7 +2948,7 @@
          // Test-and-CAS vs CAS
          // Pessimistic form avoids futile (doomed) CAS attempts
          // The optimistic form avoids RTS->RTO cache line upgrades.
-         ld_ptr(Rmark, ObjectMonitor::owner_offset_in_bytes() - 2, Rscratch);
+         ld_ptr(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner), Rscratch);
          andcc(Rscratch, Rscratch, G0);
          brx(Assembler::notZero, false, Assembler::pn, done);
          delayed()->nop();
@@ -2957,13 +2957,13 @@
 
       // Try to CAS m->owner from null to Self
       // Invariant: if we acquire the lock then _recursions should be 0.
-      add(Rmark, ObjectMonitor::owner_offset_in_bytes()-2, Rmark);
+      add(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner), Rmark);
       mov(G2_thread, Rscratch);
       cas_ptr(Rmark, G0, Rscratch);
       cmp(Rscratch, G0);
       // ST box->displaced_header = NonZero.
       // Any non-zero value suffices:
-      //    unused_mark(), G2_thread, RBox, RScratch, rsp, etc.
+      //    markOopDesc::unused_mark(), G2_thread, RBox, RScratch, rsp, etc.
       st_ptr(Rbox, Rbox, BasicLock::displaced_header_offset_in_bytes());
       // Intentional fall-through into done
    }
@@ -3031,30 +3031,30 @@
    // Note that we use 1-0 locking by default for the inflated case.  We
    // close the resultant (and rare) race by having contented threads in
    // monitorenter periodically poll _owner.
-   ld_ptr(Rmark, ObjectMonitor::owner_offset_in_bytes() - 2, Rscratch);
-   ld_ptr(Rmark, ObjectMonitor::recursions_offset_in_bytes() - 2, Rbox);
+   ld_ptr(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner), Rscratch);
+   ld_ptr(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(recursions), Rbox);
    xor3(Rscratch, G2_thread, Rscratch);
    orcc(Rbox, Rscratch, Rbox);
    brx(Assembler::notZero, false, Assembler::pn, done);
    delayed()->
-   ld_ptr(Rmark, ObjectMonitor::EntryList_offset_in_bytes() - 2, Rscratch);
-   ld_ptr(Rmark, ObjectMonitor::cxq_offset_in_bytes() - 2, Rbox);
+   ld_ptr(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(EntryList), Rscratch);
+   ld_ptr(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(cxq), Rbox);
    orcc(Rbox, Rscratch, G0);
    if (EmitSync & 65536) {
       Label LSucc ;
       brx(Assembler::notZero, false, Assembler::pn, LSucc);
       delayed()->nop();
       ba(done);
-      delayed()->st_ptr(G0, Rmark, ObjectMonitor::owner_offset_in_bytes() - 2);
+      delayed()->st_ptr(G0, Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner));
 
       bind(LSucc);
-      st_ptr(G0, Rmark, ObjectMonitor::owner_offset_in_bytes() - 2);
+      st_ptr(G0, Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner));
       if (os::is_MP()) { membar (StoreLoad); }
-      ld_ptr(Rmark, ObjectMonitor::succ_offset_in_bytes() - 2, Rscratch);
+      ld_ptr(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(succ), Rscratch);
       andcc(Rscratch, Rscratch, G0);
       brx(Assembler::notZero, false, Assembler::pt, done);
       delayed()->andcc(G0, G0, G0);
-      add(Rmark, ObjectMonitor::owner_offset_in_bytes()-2, Rmark);
+      add(Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner), Rmark);
       mov(G2_thread, Rscratch);
       cas_ptr(Rmark, G0, Rscratch);
       // invert icc.zf and goto done
@@ -3066,7 +3066,7 @@
       brx(Assembler::notZero, false, Assembler::pn, done);
       delayed()->nop();
       ba(done);
-      delayed()->st_ptr(G0, Rmark, ObjectMonitor::owner_offset_in_bytes() - 2);
+      delayed()->st_ptr(G0, Rmark, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner));
    }
 
    bind   (LStacked);
@@ -3196,7 +3196,7 @@
   assert(0 <= con_size_in_bytes && Assembler::is_simm13(con_size_in_bytes), "illegal object size");
   assert((con_size_in_bytes & MinObjAlignmentInBytesMask) == 0, "object size is not multiple of alignment");
 
-  if (CMSIncrementalMode || !Universe::heap()->supports_inline_contig_alloc()) {
+  if (!Universe::heap()->supports_inline_contig_alloc()) {
     // No allocation in the shared eden.
     ba(slow_case);
     delayed()->nop();
@@ -3331,7 +3331,7 @@
   assert_different_registers(top, t1, t2, t3, G4, G5 /* preserve G4 and G5 */);
   Label do_refill, discard_tlab;
 
-  if (CMSIncrementalMode || !Universe::heap()->supports_inline_contig_alloc()) {
+  if (!Universe::heap()->supports_inline_contig_alloc()) {
     // No allocation in the shared eden.
     ba(slow_case);
     delayed()->nop();
--- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp	Wed Jul 05 20:09:54 2017 +0200
@@ -4813,6 +4813,7 @@
     StubRoutines::_atomic_add_entry          = generate_atomic_add();
     StubRoutines::_atomic_xchg_ptr_entry     = StubRoutines::_atomic_xchg_entry;
     StubRoutines::_atomic_cmpxchg_ptr_entry  = StubRoutines::_atomic_cmpxchg_entry;
+    StubRoutines::_atomic_cmpxchg_byte_entry = ShouldNotCallThisStub();
     StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long();
     StubRoutines::_atomic_add_ptr_entry      = StubRoutines::_atomic_add_entry;
 #endif  // COMPILER2 !=> _LP64
--- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp	Wed Jul 05 20:09:54 2017 +0200
@@ -3309,7 +3309,7 @@
   // (creates a new TLAB, etc.)
 
   const bool allow_shared_alloc =
-    Universe::heap()->supports_inline_contig_alloc() && !CMSIncrementalMode;
+    Universe::heap()->supports_inline_contig_alloc();
 
   if(UseTLAB) {
     Register RoldTopValue = RallocatedObject;
--- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp	Wed Jul 05 20:09:54 2017 +0200
@@ -1297,6 +1297,17 @@
   emit_operand(reg, adr);
 }
 
+// The 8-bit cmpxchg compares the value at adr with the contents of rax,
+// and stores reg into adr if so; otherwise, the value at adr is loaded into rax,.
+// The ZF is set if the compared values were equal, and cleared otherwise.
+void Assembler::cmpxchgb(Register reg, Address adr) { // cmpxchg
+  InstructionMark im(this);
+  prefix(adr, reg, true);
+  emit_int8(0x0F);
+  emit_int8((unsigned char)0xB0);
+  emit_operand(reg, adr);
+}
+
 void Assembler::comisd(XMMRegister dst, Address src) {
   // NOTE: dbx seems to decode this as comiss even though the
   // 0x66 is there. Strangly ucomisd comes out correct
--- a/hotspot/src/cpu/x86/vm/assembler_x86.hpp	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.hpp	Wed Jul 05 20:09:54 2017 +0200
@@ -1006,6 +1006,7 @@
 
   void cmpxchg8 (Address adr);
 
+  void cmpxchgb(Register reg, Address adr);
   void cmpxchgl(Register reg, Address adr);
 
   void cmpxchgq(Register reg, Address adr);
--- a/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp	Thu Dec 04 15:22:30 2014 -0800
+++ b/hotspot/src/cpu/x86/vm/macroAssembler_x86.cpp	Wed Jul 05 20:09:54 2017 +0200
@@ -1450,8 +1450,7 @@
 void MacroAssembler::rtm_retry_lock_on_busy(Register retry_count_Reg, Register box_Reg,
                                             Register tmp_Reg, Register scr_Reg, Label& retryLabel) {
   Label SpinLoop, SpinExit, doneRetry;
-  // Clean monitor_value bit to get valid pointer
-  int owner_offset = ObjectMonitor::owner_offset_in_bytes() - markOopDesc::monitor_value;
+  int owner_offset = OM_OFFSET_NO_MONITOR_VALUE_TAG(owner);
 
   testl(retry_count_Reg, retry_count_Reg);
   jccb(Assembler::zero, doneRetry);
@@ -1532,7 +1531,7 @@
 // Use RTM for inflating locks
 // inputs: objReg (object to lock)
 //         boxReg (on-stack box address (displaced header location) - KILLED)
-//         tmpReg (ObjectMonitor address + 2(monitor_value))
+//         tmpReg (ObjectMonitor address + markOopDesc::monitor_value)
 void MacroAssembler::rtm_inflated_locking(Register objReg, Register boxReg, Register tmpReg,
                                           Register scrReg, Register retry_on_busy_count_Reg,
                                           Register retry_on_abort_count_Reg,
@@ -1543,8 +1542,7 @@
   assert(tmpReg == rax, "");
   assert(scrReg == rdx, "");
   Label L_rtm_retry, L_decrement_retry, L_on_abort;
-  // Clean monitor_value bit to get valid pointer
-  int owner_offset = ObjectMonitor::owner_offset_in_bytes() - markOopDesc::monitor_value;
+  int owner_offset = OM_OFFSET_NO_MONITOR_VALUE_TAG(owner);
 
   // Without cast to int32_t a movptr will destroy r10 which is typically obj
   movptr(Address(boxReg, 0), (int32_t)intptr_t(markOopDesc::unused_mark()));
@@ -1716,7 +1714,7 @@
     atomic_incl(ExternalAddress((address)counters->total_entry_count_addr()), scrReg);
   }
   if (EmitSync & 1) {
-      // set box->dhw = unused_mark (3)
+      // set box->dhw = markOopDesc::unused_mark()
       // Force all sync thru slow-path: slow_enter() and slow_exit()
       movptr (Address(boxReg, 0), (int32_t)intptr_t(markOopDesc::unused_mark()));
       cmpptr (rsp, (int32_t)NULL_WORD);
@@ -1769,7 +1767,7 @@
     // at [FETCH], below, will never observe a biased encoding (*101b).
     // If this invariant is not held we risk exclusion (safety) failure.
     if (UseBiasedLocking && !UseOptoBiasInlining) {
-      biased_locking_enter(boxReg, objReg, tmpReg, scrReg, true, DONE_LABEL, NULL, counters);
+      biased_locking_enter(boxReg, objReg, tmpReg, scrReg, false, DONE_LABEL, NULL, counters);
     }
 
 #if INCLUDE_RTM_OPT
@@ -1811,7 +1809,7 @@
     jmp(DONE_LABEL);
 
     bind(IsInflated);
-    // The object is inflated. tmpReg contains pointer to ObjectMonitor* + 2(monitor_value)
+    // The object is inflated. tmpReg contains pointer to ObjectMonitor* + markOopDesc::monitor_value
 
 #if INCLUDE_RTM_OPT
     // Use the same RTM locking code in 32- and 64-bit VM.
@@ -1823,25 +1821,10 @@
 
 #ifndef _LP64
     // The object is inflated.
-    //
-    // TODO-FIXME: eliminate the ugly use of manifest constants:
-    //   Use markOopDesc::monitor_value instead of "2".
-    //   use markOop::unused_mark() instead of "3".
-    // The tmpReg value is an objectMonitor reference ORed with
-    // markOopDesc::monitor_value (2).   We can either convert tmpReg to an
-    // objectmonitor pointer by masking off the "2" bit or we can just
-    // use tmpReg as an objectmonitor pointer but bias the objectmonitor
-    // field offsets with "-2" to compensate for and annul the low-order tag bit.
-    //
-    // I use the latter as it avoids AGI stalls.
-    // As such, we write "mov r, [tmpReg+OFFSETOF(Owner)-2]"
-    // instead of "mov r, [tmpReg+OFFSETOF(Owner)]".
-    //
-    #define OFFSET_SKEWED(f) ((ObjectMonitor::f ## _offset_in_bytes())-2)
 
     // boxReg refers to the on-stack BasicLock in the current frame.
     // We'd like to write:
-    //   set box->_displaced_header = markOop::unused_mark().  Any non-0 value suffices.
+    //   set box->_displaced_header = markOopDesc::unused_mark().  Any non-0 value suffices.
     // This is convenient but results a ST-before-CAS penalty.  The following CAS suffers
     // additional latency as we have another ST in the store buffer that must drain.
 
@@ -1853,7 +1836,7 @@
        if (os::is_MP()) {
          lock();
        }
-       cmpxchgptr(scrReg, Address(boxReg, ObjectMonitor::owner_offset_in_bytes()-2));
+       cmpxchgptr(scrReg, Address(boxReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
     } else
     if ((EmitSync & 128) == 0) {                      // avoid ST-before-CAS
        movptr(scrReg, boxReg);
@@ -1862,7 +1845,7 @@
        // Using a prefetchw helps avoid later RTS->RTO upgrades and cache probes
        if ((EmitSync & 2048) && VM_Version::supports_3dnow_prefetch() && os::is_MP()) {
           // prefetchw [eax + Offset(_owner)-2]
-          prefetchw(Address(tmpReg, ObjectMonitor::owner_offset_in_bytes()-2));
+          prefetchw(Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
        }
 
        if ((EmitSync & 64) == 0) {
@@ -1871,7 +1854,7 @@
        } else {
          // Can suffer RTS->RTO upgrades on shared or cold $ lines
          // Test-And-CAS instead of CAS
-         movptr(tmpReg, Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2));   // rax, = m->_owner
+         movptr(tmpReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));   // rax, = m->_owner
          testptr(tmpReg, tmpReg);                   // Locked ?
          jccb  (Assembler::notZero, DONE_LABEL);
        }
@@ -1887,11 +1870,11 @@
        if (os::is_MP()) {
          lock();
        }
-       cmpxchgptr(scrReg, Address(boxReg, ObjectMonitor::owner_offset_in_bytes()-2));
+       cmpxchgptr(scrReg, Address(boxReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
        movptr(Address(scrReg, 0), 3);          // box->_displaced_header = 3
        jccb  (Assembler::notZero, DONE_LABEL);
        get_thread (scrReg);                    // beware: clobbers ICCs
-       movptr(Address(boxReg, ObjectMonitor::owner_offset_in_bytes()-2), scrReg);
+       movptr(Address(boxReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)), scrReg);
        xorptr(boxReg, boxReg);                 // set icc.ZFlag = 1 to indicate success
 
        // If the CAS fails we can either retry or pass control to the slow-path.
@@ -1908,7 +1891,7 @@
        // Using a prefetchw helps avoid later RTS->RTO upgrades and cache probes
        if ((EmitSync & 2048) && VM_Version::supports_3dnow_prefetch() && os::is_MP()) {
           // prefetchw [eax + Offset(_owner)-2]
-          prefetchw(Address(tmpReg, ObjectMonitor::owner_offset_in_bytes()-2));
+          prefetchw(Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
        }
 
        if ((EmitSync & 64) == 0) {
@@ -1916,7 +1899,7 @@
          xorptr  (tmpReg, tmpReg);
        } else {
          // Can suffer RTS->RTO upgrades on shared or cold $ lines
-         movptr(tmpReg, Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2));   // rax, = m->_owner
+         movptr(tmpReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));   // rax, = m->_owner
          testptr(tmpReg, tmpReg);                   // Locked ?
          jccb  (Assembler::notZero, DONE_LABEL);
        }
@@ -1928,7 +1911,7 @@
        if (os::is_MP()) {
          lock();
        }
-       cmpxchgptr(scrReg, Address(boxReg, ObjectMonitor::owner_offset_in_bytes()-2));
+       cmpxchgptr(scrReg, Address(boxReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
 
        // If the CAS fails we can either retry or pass control to the slow-path.
        // We use the latter tactic.
@@ -1951,7 +1934,7 @@
     movptr(Address(boxReg, 0), (int32_t)intptr_t(markOopDesc::unused_mark()));
 
     movptr (boxReg, tmpReg);
-    movptr (tmpReg, Address(boxReg, ObjectMonitor::owner_offset_in_bytes()-2));
+    movptr(tmpReg, Address(boxReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
     testptr(tmpReg, tmpReg);
     jccb   (Assembler::notZero, DONE_LABEL);
 
@@ -1959,7 +1942,7 @@
     if (os::is_MP()) {
       lock();
     }
-    cmpxchgptr(r15_thread, Address(boxReg, ObjectMonitor::owner_offset_in_bytes()-2));
+    cmpxchgptr(r15_thread, Address(boxReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
     // Intentional fall-through into DONE_LABEL ...
 #endif // _LP64
 
@@ -2065,8 +2048,7 @@
 #if INCLUDE_RTM_OPT
     if (use_rtm) {
       Label L_regular_inflated_unlock;
-      // Clean monitor_value bit to get valid pointer
-      int owner_offset = ObjectMonitor::owner_offset_in_bytes() - markOopDesc::monitor_value;
+      int owner_offset = OM_OFFSET_NO_MONITOR_VALUE_TAG(owner);
       movptr(boxReg, Address(tmpReg, owner_offset));
       testptr(boxReg, boxReg);
       jccb(Assembler::notZero, L_regular_inflated_unlock);
@@ -2102,7 +2084,7 @@
     get_thread (boxReg);
     if ((EmitSync & 4096) && VM_Version::supports_3dnow_prefetch() && os::is_MP()) {
       // prefetchw [ebx + Offset(_owner)-2]
-      prefetchw(Address(tmpReg, ObjectMonitor::owner_offset_in_bytes()-2));
+      prefetchw(Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
     }
 
     // Note that we could employ various encoding schemes to reduce
@@ -2111,21 +2093,21 @@
     // In practice the chain of fetches doesn't seem to impact performance, however.
     if ((EmitSync & 65536) == 0 && (EmitSync & 256)) {
        // Attempt to reduce branch density - AMD's branch predictor.
-       xorptr(boxReg, Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2));
-       orptr(boxReg, Address (tmpReg, ObjectMonitor::recursions_offset_in_bytes()-2));
-       orptr(boxReg, Address (tmpReg, ObjectMonitor::EntryList_offset_in_bytes()-2));
-       orptr(boxReg, Address (tmpReg, ObjectMonitor::cxq_offset_in_bytes()-2));
+       xorptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
+       orptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(recursions)));
+       orptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(EntryList)));
+       orptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(cxq)));
        jccb  (Assembler::notZero, DONE_LABEL);
-       movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), NULL_WORD);
+       movptr(Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)), NULL_WORD);
        jmpb  (DONE_LABEL);
     } else {
-       xorptr(boxReg, Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2));
-       orptr(boxReg, Address (tmpReg, ObjectMonitor::recursions_offset_in_bytes()-2));
+       xorptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
+       orptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(recursions)));
        jccb  (Assembler::notZero, DONE_LABEL);
-       movptr(boxReg, Address (tmpReg, ObjectMonitor::EntryList_offset_in_bytes()-2));
-       orptr(boxReg, Address (tmpReg, ObjectMonitor::cxq_offset_in_bytes()-2));
+       movptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(EntryList)));
+       orptr(boxReg, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(cxq)));
        jccb  (Assembler::notZero, CheckSucc);
-       movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), NULL_WORD);
+       movptr(Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)), NULL_WORD);
        jmpb  (DONE_LABEL);
     }
 
@@ -2143,7 +2125,7 @@
 
        // Optional pre-test ... it's safe to elide this
        if ((EmitSync & 16) == 0) {
-          cmpptr(Address (tmpReg, ObjectMonitor::succ_offset_in_bytes()-2), (int32_t)NULL_WORD);
+          cmpptr(Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(succ)), (int32_t)NULL_WORD);
           jccb  (Assembler::zero, LGoSlowPath);
        }
 
@@ -2173,7 +2155,7 @@
        // We currently use (3), although it's likely that switching to (2)
        // is correct for the future.
 
-       movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), NULL_WORD);
+       movptr(Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)), NULL_WORD);
        if (os::is_MP()) {
           if (VM_Version::supports_sse2() && 1 == FenceInstruction) {
             mfence();
@@ -2182,18 +2164,18 @@
           }
        }
        // Ratify _succ remains non-null
-       cmpptr(Address (tmpReg, ObjectMonitor::succ_offset_in_bytes()-2), 0);
+       cmpptr(Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(succ)), 0);
        jccb  (Assembler::notZero, LSuccess);
 
        xorptr(boxReg, boxReg);                  // box is really EAX
        if (os::is_MP()) { lock(); }
-       cmpxchgptr(rsp, Address(tmpReg, ObjectMonitor::owner_offset_in_bytes()-2));
+       cmpxchgptr(rsp, Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)));
        jccb  (Assembler::notEqual, LSuccess);
        // Since we're low on registers we installed rsp as a placeholding in _owner.
        // Now install Self over rsp.  This is safe as we're transitioning from
        // non-null to non=null
        get_thread (boxReg);
-       movptr(Address (tmpReg, ObjectMonitor::owner_offset_in_bytes()-2), boxReg);
+       movptr(Address(tmpReg, OM_OFFSET_NO_MONITOR_VALUE_TAG(owner)), boxReg);
        // Intentional fall-through into LGoSlowPath ...
 
        bind  (LGoSlowPath);
@@ -2228,36 +2210,36 @@
     }
 #else // _LP64
     // It's inflated