changeset 9125:c8791c226dfe

Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk
author wmdietl
date Wed, 18 Dec 2013 19:09:16 -0500
parents 9211877b25ba 43751121b507
children 1242a39cd2a4
files
diffstat 4 files changed, 248 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Tue Dec 17 23:33:51 2013 -0800
+++ b/.hgtags	Wed Dec 18 19:09:16 2013 -0500
@@ -146,6 +146,7 @@
 dda27c73d8db4a9c7a23872b6f0c5106edcb2021 jdk8-b22
 54202e0148ec7d4570cab5bc9b00d216a7677569 jdk8-b23
 34029a0c69bba882264a29fc822f8283fd15f104 jdk8-b24
+8da468cf037b6ea0eb2212dac7491efd59754d79 308-jdk8-sync
 ec17fbe5b8fbc52da070eec43b4711d9354b2ab8 jdk8-b25
 5aca406e87cb9144a9405be312dadd728a9c6fe2 jdk8-b26
 c68342532e2e7deb3a25fc04ed3e4c142278f747 jdk8-b27
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/common/shared/Defs-java.gmk	Wed Dec 18 19:09:16 2013 -0500
@@ -0,0 +1,245 @@
+#
+# Copyright (c) 2007, 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.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# 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.
+#
+
+#
+# Common java/javac/jdk variables used by all the Java makefiles.
+# This file should not contain rules.
+#
+
+# WARNING: This file is shared with other workspaces.
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+#
+# Memory related -J flags that all uses of java tools should use.
+#
+JAVA_MEM_FLAGS   = -Xmx$(MAX_VM_MEMORY)m
+ifeq ($(ARCH), ia64)
+  # Special flags for javac on ia64 to work around a VM problem with
+  #   bad code generation during inlining (what version had this problem?):
+  #   Suspect this may not be needed anymore.
+  JAVA_MEM_FLAGS   += -Xms$(MAX_VM_MEMORY)m -XX:-Inline
+else
+  JAVA_MEM_FLAGS   += -Xms$(MIN_VM_MEMORY)m -XX:PermSize=32m -XX:MaxPermSize=160m
+endif
+
+#
+# All java tools (javac, javah, and javadoc) run faster with certain java
+#    options, this macro should be used with all these tools.
+#    In particular, the client VM makes these tools run faster when
+#    it's available.
+#
+ADD_CLIENT_VM_OPTION = false
+ifeq ($(PLATFORM), solaris)
+  ADD_CLIENT_VM_OPTION = true
+else
+  ifeq ($(ARCH_DATA_MODEL), 32)
+    ADD_CLIENT_VM_OPTION = true
+  endif
+endif
+
+# Options for hotspot to turn off printing of options with fastdebug version
+#   and creating the hotspot.log file.
+JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS = \
+   -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput
+
+# JVM options
+ifeq ($(PLATFORM), macosx)
+  JAVA_JVM_FLAGS = $(JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS) -Djava.awt.headless=true
+else
+  JAVA_JVM_FLAGS = $(JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS)
+endif
+
+ifeq ($(ADD_CLIENT_VM_OPTION), true)
+  JAVA_JVM_FLAGS += -client
+endif
+ifdef USE_HOTSPOT_INTERPRETER_MODE
+  JAVA_JVM_FLAGS += -Xint
+endif
+
+# Various VM flags
+JAVA_TOOLS_FLAGS  = $(JAVA_JVM_FLAGS) $(JAVA_MEM_FLAGS)
+
+# The VM flags for javac
+JAVAC_JVM_FLAGS =
+
+# 64-bit builds require a larger thread stack size.
+ifeq ($(ARCH_DATA_MODEL), 32)
+  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=768
+else
+  JAVAC_JVM_FLAGS    += -J-XX:ThreadStackSize=1536
+endif
+JAVAC_JVM_FLAGS    += $(JAVA_TOOLS_FLAGS:%=-J%)
+
+# The jar -J options are special, must be added at the end of the command line
+JAR_JFLAGS       = $(JAVA_TOOLS_FLAGS:%=-J%)
+
+# JAVA_TOOLS_DIR is the default location to find Java tools to run, if
+#    langtools is not available.
+#    This should be the latest promoted JDK javac.
+ifndef JAVA_TOOLS_DIR
+  JAVA_TOOLS_DIR = $(JDK_IMPORT_PATH)/bin
+endif
+
+#
+# Invoking the Java compiler.   In leaf makefiles, choose as follows:
+#  -- Use JAVAC if you want to take full control of what options get
+#     passed to javac.
+#  -- Use JAVAC_CMD if you want to take the defaults given to you.
+#
+
+ifndef DEBUG_CLASSFILES
+  ifeq ($(VARIANT), DBG)
+    DEBUG_CLASSFILES = true
+  endif
+endif
+JAVACFLAGS =
+ifeq ($(DEBUG_CLASSFILES),true)
+  JAVACFLAGS += -g
+endif
+ifeq ($(JAVAC_MAX_WARNINGS), true)
+  JAVAC_LINT_OPTIONS += -Xlint:all
+endif
+ifeq ($(JAVAC_WARNINGS_FATAL), true)
+  JAVACFLAGS  += -Werror
+endif
+
+# TODO: Workaround for CR 7063027. Remove -path eventually.
+JAVAC_LINT_OPTIONS += -Xlint:-path
+
+JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
+
+#
+# Some licensees do not get the Security Source bundles.  We will
+# fall back on the prebuilt jce.jar so that we can do a best
+# attempt at building.  If sources exist, we always want to
+# build/use the most recent source instead of an older jce.jar, whether
+# built implicitly/explicitly.
+#
+ifeq ($(wildcard $(SHARE_SRC)/classes/javax/crypto/Cipher.java),)
+  JCE_PATH = $(CLASSPATH_SEPARATOR)$(LIBDIR)/jce.jar
+endif
+
+# Add the source level
+SOURCE_LANGUAGE_VERSION = 8
+LANGUAGE_VERSION = -source $(SOURCE_LANGUAGE_VERSION)
+JAVACFLAGS  += $(LANGUAGE_VERSION)
+
+# Add the class version we want
+TARGET_CLASS_VERSION = 8
+CLASS_VERSION = -target $(TARGET_CLASS_VERSION)
+JAVACFLAGS  += $(CLASS_VERSION)
+JAVACFLAGS  += -encoding ascii
+JAVACFLAGS  += "-Xbootclasspath:$(CLASSBINDIR)$(JCE_PATH)"
+JAVACFLAGS  += $(OTHER_JAVACFLAGS)
+
+# Needed for javah
+JAVAHFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCE_PATH)"
+
+# Needed for javadoc to ensure it builds documentation
+# against the newly built classes
+JAVADOCFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCE_PATH)"
+
+# Needed for JAVADOC and BOOT_JAVACFLAGS
+NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
+
+# Langtools
+ifdef LANGTOOLS_DIST
+  JAVAC_JAR   = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar
+  JAVAH_JAR   = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar
+  JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar
+  DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar
+  JAVAC_CMD   = $(BOOT_JAVA_CMD) \
+		"-Xbootclasspath/p:$(JAVAC_JAR)" \
+		-jar $(JAVAC_JAR) $(JAVACFLAGS)
+  JAVAH_CMD   = $(BOOT_JAVA_CMD) \
+		"-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)"  \
+		-jar $(JAVAH_JAR) $(JAVAHFLAGS)
+  JAVADOC_CMD = $(BOOT_JAVA_CMD) \
+		"-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \
+		-jar $(JAVADOC_JAR) $(JAVADOCFLAGS)
+else
+  # If no explicit tools, use boot tools (add VM flags in this case)
+  JAVAC_CMD     = $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \
+		  $(JAVACFLAGS)
+  JAVAH_CMD     = $(JAVA_TOOLS_DIR)/javah \
+		  $(JAVAHFLAGS)
+  JAVADOC_CMD   = $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) \
+  		  $(JAVADOCFLAGS)
+endif
+
+# Override of what javac to use (see deploy workspace)
+ifdef JAVAC
+  JAVAC_CMD     = $(JAVAC)
+endif
+
+#
+# The bootstrap java compiler (defined as the javac in the ALT_BOOTDIR jdk).
+#   Will be used to compile java code used to build the jdk, e.g. class files
+#   created by this compiler will NOT become part of this built jdk, but just
+#   used to build this jdk, e.g. run with the java in the ALT_BOOTDIR jdk.
+#
+# The javac supplied with the LANGTOOLS_DIST should be used to build the
+#   classes that will be put into the built jdk. But note that this javac
+#   will use the ALT_BOOTDIR java runtime. Any classes created by the
+#   LANGTOOLS_DIST javac should not be run during this jdk build and indeed
+#   may not even run with the ALT_BOOTDIR jdk because they may be a newer
+#   class file version that the ALT_BOOTDIR jdk doesn't understand.
+#
+# The important observation here is that the built jdk is NOT run during
+#   the build. If the built jdk needs to be verified that it can build this
+#   same jdk, then it should be supplied to the build process as the ALT_BOOTDIR
+#   jdk, and this resulting built jdk should be compared to the first one.
+#   (They should be the same). Re-using this built jdk as the ALT_BOOTDIR
+#   jdk will be the only way and the recommeneded way to verify the built jdk
+#   can bootstrap itself.
+#
+
+# The javac options supplied to the boot javac is limited. This compiler
+#   should only be used to build the 'make/tools' sources, which are not
+#   class files that end up in the classes directory.
+BOOT_JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
+ifeq ($(JAVAC_WARNINGS_FATAL), true)
+  BOOT_JAVACFLAGS  += -Werror
+endif
+
+BOOT_JAVACFLAGS  += -encoding ascii
+BOOT_JAR_JFLAGS += $(JAR_JFLAGS)
+
+BOOT_JAVACFLAGS  += $(NO_PROPRIETARY_API_WARNINGS)
+
+BOOT_JAVA_CMD      = $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS)
+BOOT_JAVAC_CMD     = $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS)
+BOOT_JAR_CMD       = $(BOOTDIR)/bin/jar
+BOOT_JARSIGNER_CMD = $(BOOTDIR)/bin/jarsigner
+
+# Various tools we need to run (FIXUP: Are these the right ones?)
+NATIVE2ASCII    = $(BOOTDIR)/bin/native2ascii $(JAVA_TOOLS_FLAGS:%=-J%)
+RMIC		= $(BOOTDIR)/bin/rmic $(JAVA_TOOLS_FLAGS:%=-J%)
+IDLJ		= $(BOOTDIR)/bin/idlj $(JAVA_TOOLS_FLAGS:%=-J%)
+
+# Should not be used
+JAVA		= /should/not/be/used
+
--- a/src/share/classes/java/lang/reflect/Field.java	Tue Dec 17 23:33:51 2013 -0800
+++ b/src/share/classes/java/lang/reflect/Field.java	Wed Dec 18 19:09:16 2013 -0500
@@ -1163,5 +1163,5 @@
                                                        getDeclaringClass(),
                                                        getGenericType(),
                                                        TypeAnnotation.TypeAnnotationTarget.FIELD);
+    }
 }
-}
--- a/src/share/classes/java/lang/reflect/Modifier.java	Tue Dec 17 23:33:51 2013 -0800
+++ b/src/share/classes/java/lang/reflect/Modifier.java	Wed Dec 18 19:09:16 2013 -0500
@@ -357,7 +357,7 @@
     // that would allow the values to be treated as Java-level
     // constants since the values could be constant folded and updates
     // to the sets of modifiers missed. Thus, the fooModifiers()
-    // methods return an unchanging values for a given release, but a
+    // methods return an unchanging value for a given release, but a
     // value that can potentially change over time.
 
     /**