diff --git a/.hgtags-top-repo b/.hgtags-top-repo new file mode 100644 index 00000000000..ff06c88a2bf --- /dev/null +++ b/.hgtags-top-repo @@ -0,0 +1 @@ +cfeea66a3fa8ca3686a7cfa2d0ce8ab0169f168d jdk7-b24 diff --git a/.jcheck/conf b/.jcheck/conf new file mode 100644 index 00000000000..d8227cd90e3 --- /dev/null +++ b/.jcheck/conf @@ -0,0 +1 @@ +project=jdk7 diff --git a/Makefile b/Makefile index 5e06900266b..d5b3ebac73a 100644 --- a/Makefile +++ b/Makefile @@ -23,25 +23,25 @@ # have any questions. # +BUILD_PARENT_DIRECTORY=. + ifndef TOPDIR - TOPDIR:=$(shell \ - if [ -r ./j2se/make/Makefile -o -r ./jdk/make/Makefile ]; then \ - echo "."; \ - else \ - echo "../.."; \ - fi) + TOPDIR:=. endif ifndef CONTROL_TOPDIR - CONTROL_TOPDIR=$(TOPDIR)/control - CONTROL_TOPDIR:=$(shell \ - if [ -r $(TOPDIR)/control/make/Makefile ]; then \ - echo "$(TOPDIR)/control"; \ - else \ - echo "$(TOPDIR)"; \ - fi) + CONTROL_TOPDIR=$(TOPDIR) endif +# Openjdk sources (only used if SKIP_OPENJDK_BUILD!=true) +OPENJDK_SOURCETREE=$(TOPDIR)/openjdk +OPENJDK_BUILDDIR:=$(shell \ + if [ -r $(OPENJDK_SOURCETREE)/Makefile ]; then \ + echo "$(OPENJDK_SOURCETREE)"; \ + else \ + echo "."; \ + fi) + ifndef JDK_TOPDIR JDK_TOPDIR=$(TOPDIR)/jdk endif @@ -55,6 +55,7 @@ include ./make/Defs-internal.gmk all:: @$(ECHO) $(PLATFORM) $(ARCH) $(RELEASE) build started: `$(DATE) '+%y-%m-%d %H:%M'` + $(MKDIR) -p $(OUTPUTDIR) # Rules for sanity checks include ./make/sanity-rules.gmk @@ -81,11 +82,24 @@ include ./make/deploy-rules.gmk all:: setup build -setup: +setup: openjdk_check $(MKDIR) -p $(OUTPUTDIR)/j2sdk-image - $(MKDIR) -p $(ABS_OUTPUTDIR)/j2sdk-image - $(MKDIR) -p $(OUTPUTDIR)-fastdebug/j2sdk-image - $(MKDIR) -p $(ABS_OUTPUTDIR)-fastdebug/j2sdk-image + +# Check on whether we really can build the openjdk, need source etc. +openjdk_check: FRC +ifneq ($(SKIP_OPENJDK_BUILD), true) + @$(ECHO) " " + @$(ECHO) "=================================================" + @if [ ! -r $(OPENJDK_BUILDDIR)/Makefile ] ; then \ + $(ECHO) "ERROR: No openjdk source tree available at: $(OPENJDK_BUILDDIR)"; \ + exit 1; \ + else \ + $(ECHO) "OpenJDK will be built after JDK is built"; \ + $(ECHO) " OPENJDK_BUILDDIR=$(OPENJDK_BUILDDIR)"; \ + fi + @$(ECHO) "=================================================" + @$(ECHO) " " +endif build:: sanity @@ -143,7 +157,7 @@ endif COMMON_DEBUG_FLAGS= \ DEBUG_NAME=$(DEBUG_NAME) \ - ALT_OUTPUTDIR=$(_OUTPUTDIR)-$(DEBUG_NAME) \ + ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)-$(DEBUG_NAME) \ NO_DOCS=true product_build: setup @@ -190,46 +204,64 @@ ifneq ($(SKIP_COMPARE_IMAGES), true) all :: compare-image endif -ifeq ($(SKIP_OPENJDK_BUILD), false) +ifneq ($(SKIP_OPENJDK_BUILD), true) + all :: openjdk_build +endif + +# If we have bundle rules, we have a chance here to do a complete cycle +# build, of production and open build. +# FIXUP: We should create the openjdk source bundle and build that? +# But how do we reliable create or get at a formal openjdk source tree? +# The one we have needs to be trimmed of built bits and closed dirs. +# The repositories might not be available. +# The openjdk source bundle is probably not available. + +ifneq ($(SKIP_OPENJDK_BUILD), true) ifeq ($(BUILD_JDK), true) ifeq ($(BUNDLE_RULES_AVAILABLE), true) - # If we have bundle rules, we have a chance here to do a complete cycle - # build, of closed and open build. - # FIXUP: We should create the openjdk source bundle and build that? - ABS_OPENJDK_PLUGS=$(ABS_OUTPUTDIR)/$(OPENJDK_BINARY_PLUGS_INAME) - ABS_OPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/openjdk - OPENJDK_BUILD_NAME_PREFIX \ - = $(J2SDK_NAME)-$(JDK_MKTG_UNDERSCORE_VERSION)-$(MILESTONE) - OPENJDK_BUILD_NAME_SUFFIX \ - = $(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE) - OPENJDK_BUILD_NAME \ - = $(OPENJDK_BUILD_NAME_PREFIX)-openjdk-$(OPENJDK_BUILD_NAME_SUFFIX) - OPENJDK_BUILD_BINARY_ZIP \ - = $(ABS_BIN_BUNDLEDIR)/$(OPENJDK_BUILD_NAME).zip - all :: openjdk-build - openjdk-build: + +OPENJDK_PLUGS=$(ABS_OUTPUTDIR)/$(OPENJDK_BINARY_PLUGS_INAME) +OPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/open-output +OPENJDK_BUILD_NAME \ + = openjdk-$(JDK_MINOR_VERSION)-$(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE) +OPENJDK_BUILD_BINARY_ZIP=$(ABS_BIN_BUNDLEDIR)/$(OPENJDK_BUILD_NAME).zip +BUILT_IMAGE=$(ABS_OUTPUTDIR)/j2sdk-image +ifeq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64) + OPENJDK_BOOTDIR=$(BOOTDIR) + OPENJDK_IMPORTJDK=$(JDK_IMPORT_PATH) +else + OPENJDK_BOOTDIR=$(BUILT_IMAGE) + OPENJDK_IMPORTJDK=$(BUILT_IMAGE) +endif + +openjdk_build: @$(ECHO) " " @$(ECHO) "=================================================" @$(ECHO) "Starting openjdk build" + @$(ECHO) " Using: ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR)" @$(ECHO) "=================================================" @$(ECHO) " " - $(RM) -r $(ABS_OPENJDK_OUTPUTDIR) - $(MKDIR) -p $(ABS_OPENJDK_OUTPUTDIR) - $(MAKE) OPENJDK=true \ - BUILD_LANGTOOLS=$(BUILD_LANGTOOLS) \ - BUILD_CORBA=$(BUILD_CORBA) \ - BUILD_JAXP=$(BUILD_JAXP) \ - BUILD_JAXWS=$(BUILD_JAXWS) \ - BUILD_HOTSPOT=$(BUILD_HOTSPOT) \ - ALT_OUTPUTDIR=$(ABS_OPENJDK_OUTPUTDIR) \ - ALT_BINARY_PLUGS_PATH=$(ABS_OUTPUTDIR)/$(OPENJDK_BINARY_PLUGS_INAME) \ - ALT_BOOTDIR=$(ABS_OUTPUTDIR)/j2sdk-image \ - ALT_JDK_IMPORT_PATH=$(ABS_OUTPUTDIR)/j2sdk-image \ - product_build + $(RM) -r $(OPENJDK_OUTPUTDIR) + $(MKDIR) -p $(OPENJDK_OUTPUTDIR) + ($(CD) $(OPENJDK_BUILDDIR) && $(MAKE) \ + OPENJDK=true \ + ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR) \ + ALT_OUTPUTDIR=$(OPENJDK_OUTPUTDIR) \ + ALT_BINARY_PLUGS_PATH=$(OPENJDK_PLUGS) \ + ALT_BOOTDIR=$(OPENJDK_BOOTDIR) \ + ALT_JDK_IMPORT_PATH=$(OPENJDK_IMPORTJDK) \ + product_build ) $(RM) $(OPENJDK_BUILD_BINARY_ZIP) - ( $(CD) $(ABS_OPENJDK_OUTPUTDIR)/j2sdk-image && \ + ( $(CD) $(OPENJDK_OUTPUTDIR)/j2sdk-image && \ $(ZIPEXE) -q -r $(OPENJDK_BUILD_BINARY_ZIP) .) - $(RM) -r $(ABS_OPENJDK_OUTPUTDIR) + $(RM) -r $(OPENJDK_OUTPUTDIR) + @$(ECHO) " " + @$(ECHO) "=================================================" + @$(ECHO) "Finished openjdk build" + @$(ECHO) " Binary Bundle: $(OPENJDK_BUILD_BINARY_ZIP)" + @$(ECHO) "=================================================" + @$(ECHO) " " + endif endif endif @@ -432,11 +464,11 @@ endif # Cycle build. Build the jdk, use it to build the jdk again. ################################################################ -ABS_BOOTJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk +ABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk boot_cycle: - $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTJDK_OUTPUTDIR) product_build - $(MAKE) ALT_BOOTDIR=$(ABS_BOOTJDK_OUTPUTDIR)/j2sdk-image product_build + $(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTDIR_OUTPUTDIR) product_build + $(MAKE) ALT_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image product_build ################################################################ # JPRT rule to build @@ -452,7 +484,6 @@ include ./make/jprt.gmk fastdebug_build debug_build product_build setup \ dev dev-build dev-sanity dev-clobber -# FIXUP: Old j2se targets -j2se_fastdebug_only: jdk_fastdebug_only -j2se_only: jdk_only +# Force target +FRC: diff --git a/README-builds.html b/README-builds.html index 6530865db54..096d192e2b9 100644 --- a/README-builds.html +++ b/README-builds.html @@ -342,32 +342,29 @@
@@ -730,17 +727,15 @@ under an open-source license. In order to build an OpenJDK binary from source code, you must first download and install the appropriate - binary plug bundles from the OpenJDK Download area. + binary plug bundles from the OpenJDK, go to the + OpenJDK site and select + the "Bundles(7)" link. During the OpenJDK build process these "binary plugs" for the encumbered components will be copied into your resulting OpenJDK binary build image. These binary plug files are only for the purpose of building an OpenJDK binary. - Download the Binary Plugs by selecting the Downloads - link at - the OpenJDK site, - install the bundle, - and make sure you set + Make sure you set ALT_BINARY_PLUGS_PATH to the root of this installation. diff --git a/corba/.hgtags b/corba/.hgtags new file mode 100644 index 00000000000..f50e5065b96 --- /dev/null +++ b/corba/.hgtags @@ -0,0 +1 @@ +55540e827aef970ecc010b7e06b912d991c8e3ce jdk7-b24 diff --git a/corba/.jcheck/conf b/corba/.jcheck/conf new file mode 100644 index 00000000000..d8227cd90e3 --- /dev/null +++ b/corba/.jcheck/conf @@ -0,0 +1 @@ +project=jdk7 diff --git a/corba/make/common/shared/Defs.gmk b/corba/make/common/shared/Defs.gmk index 8cd237fed51..c7832863e34 100644 --- a/corba/make/common/shared/Defs.gmk +++ b/corba/make/common/shared/Defs.gmk @@ -281,6 +281,13 @@ endif # Get platform specific settings include $(BUILDDIR)/common/shared/Defs-$(PLATFORM).gmk +# Components +ifdef ALT_LANGTOOLS_DIST + LANGTOOLS_DIST :=$(call FullPath,$(ALT_LANGTOOLS_DIST)) +else + LANGTOOLS_DIST = +endif + # These are the same on all platforms but require the above platform include 1st # BOOTDIR: Bootstrap JDK, previous released JDK. diff --git a/corba/src/share/classes/com/sun/corba/se/impl/corba/orb_config_design.txt b/corba/src/share/classes/com/sun/corba/se/impl/corba/orb_config_design.txt index 6ceeec0bd5f..30cf698cbbc 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/corba/orb_config_design.txt +++ b/corba/src/share/classes/com/sun/corba/se/impl/corba/orb_config_design.txt @@ -318,7 +318,7 @@ ORB classes: 11. RequestHandler and ORB - The RH interface is currently implemented in the ORB class, but migūt better be a separate + The RH interface is currently implemented in the ORB class, but might better be a separate class. The API is currently almost the same as a ServerSubcontract. Should we regularize this? Also, the API would need to be extended to handle shutdown properly. diff --git a/corba/src/share/classes/org/omg/CORBA/ir.idl b/corba/src/share/classes/org/omg/CORBA/ir.idl index 8383443d72a..5ea8a1979dd 100644 --- a/corba/src/share/classes/org/omg/CORBA/ir.idl +++ b/corba/src/share/classes/org/omg/CORBA/ir.idl @@ -774,18 +774,18 @@ module CORBA { // orbos 98-01-18: Objects By Value -- end - enum TCKind { - tk_null, tk_void, + enum TCKind { + tk_null, tk_void, tk_short, tk_long, tk_ushort, tk_ulong, - tk_float, tk_double, tk_boolean, tk_char, - tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, - tk_struct, tk_union, tk_enum, tk_string, - tk_sequence, tk_array, tk_alias, tk_except, - tk_longlong, tk_ulonglong, tk_longdouble, - tk_wchar, tk_wstring, tk_fixed, - tk_value, tk_value_box, - tk_native, - tk_abstract_interface + tk_float, tk_double, tk_boolean, tk_char, + tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, + tk_struct, tk_union, tk_enum, tk_string, + tk_sequence, tk_array, tk_alias, tk_except, + tk_longlong, tk_ulonglong, tk_longdouble, + tk_wchar, tk_wstring, tk_fixed, + tk_value, tk_value_box, + tk_native, + tk_abstract_interface }; interface NativeDef : TypedefDef { diff --git a/corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl b/corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl index e38d7be01c9..b0149c3e256 100644 --- a/corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl +++ b/corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl @@ -1042,24 +1042,24 @@ module DynamicAny { /** * DynValueCommon provides operations supported by both the DynValue and DynValueBox interfaces. */ - interface DynValueCommon : DynAny { + interface DynValueCommon : DynAny { /** * Returns true if the DynValueCommon represents a null value type. */ - boolean is_null(); + boolean is_null(); /** * Changes the representation of a DynValueCommon to a null value type. */ - void set_to_null(); + void set_to_null(); /** * Replaces a null value type with a newly constructed value. Its components are initialized * to default values as in DynAnyFactory.create_dyn_any_from_type_code. * If the DynValueCommon represents a non-null value type, then this operation has no effect. */ - void set_to_value(); - }; + void set_to_value(); + }; /** * DynValue objects support the manipulation of IDL non-boxed value types. @@ -1164,14 +1164,14 @@ module DynamicAny { * of the boxed type. A DynValueBox representing a null value type has no components * and a current position of -1. */ - interface DynValueBox : DynValueCommon { + interface DynValueBox : DynValueCommon { /** * Returns the boxed value as an Any. * * @exception InvalidValue if this object represents a null value box type */ - any get_boxed_value() + any get_boxed_value() raises(InvalidValue); /** @@ -1189,7 +1189,7 @@ module DynamicAny { * * @exception InvalidValue if this object represents a null value box type */ - DynAny get_boxed_value_as_dyn_any() + DynAny get_boxed_value_as_dyn_any() raises(InvalidValue); /** @@ -1199,7 +1199,7 @@ module DynamicAny { * @exception TypeMismatch if this object represents a non-null value box type and the type * of the parameter is not matching the current boxed value type. */ - void set_boxed_value_as_dyn_any(in DynAny boxed) + void set_boxed_value_as_dyn_any(in DynAny boxed) raises(TypeMismatch); }; diff --git a/hotspot/.hgtags b/hotspot/.hgtags new file mode 100644 index 00000000000..c3230a6f10b --- /dev/null +++ b/hotspot/.hgtags @@ -0,0 +1 @@ +a61af66fc99eb5ec9d50c05b0c599757b1289ceb jdk7-b24 diff --git a/hotspot/.jcheck/conf b/hotspot/.jcheck/conf new file mode 100644 index 00000000000..d8227cd90e3 --- /dev/null +++ b/hotspot/.jcheck/conf @@ -0,0 +1 @@ +project=jdk7 diff --git a/jaxp/.hgtags b/jaxp/.hgtags new file mode 100644 index 00000000000..0c27eee3f67 --- /dev/null +++ b/jaxp/.hgtags @@ -0,0 +1 @@ +6ce5f4757bde08f7470cbb9f0b46da8f2f3d4f56 jdk7-b24 diff --git a/jaxp/.jcheck/conf b/jaxp/.jcheck/conf new file mode 100644 index 00000000000..d8227cd90e3 --- /dev/null +++ b/jaxp/.jcheck/conf @@ -0,0 +1 @@ +project=jdk7 diff --git a/jaxp/make/Makefile b/jaxp/make/Makefile index 9e72148a928..6de97e7e673 100644 --- a/jaxp/make/Makefile +++ b/jaxp/make/Makefile @@ -90,7 +90,6 @@ ifdef ALT_OUTPUTDIR else OUTPUTDIR = .. endif -ABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR)) ifdef ALT_LANGTOOLS_DIST ANT_OPTIONS += -Dbootstrap.dir=$(ALT_LANGTOOLS_DIST)/bootstrap @@ -127,7 +126,11 @@ $(ANT_TARGETS): $(ANT_JAVA_HOME) $(ANT) $(ANT_OPTIONS) $@ # Targets for Sun's internal JPRT build system +JPRT_ARCHIVE_BUNDLE=$(OUTPUTDIR)/jprt.zip jprt_build_product jprt_build_debug jprt_build_fastdebug: all + $(RM) $(JPRT_ARCHIVE_BUNDLE) + ( cd $(OUTPUTDIR)/dist && \ + zip -q -r $(JPRT_ARCHIVE_BUNDLE) . ) # Declare these phony (not filenames) .PHONY: $(ANT_TARGETS) all clobber \ diff --git a/jaxws/.hgtags b/jaxws/.hgtags new file mode 100644 index 00000000000..f96f9279308 --- /dev/null +++ b/jaxws/.hgtags @@ -0,0 +1 @@ +0961a4a211765fea071b8dac419003ee0c3d5973 jdk7-b24 diff --git a/jaxws/.jcheck/conf b/jaxws/.jcheck/conf new file mode 100644 index 00000000000..d8227cd90e3 --- /dev/null +++ b/jaxws/.jcheck/conf @@ -0,0 +1 @@ +project=jdk7 diff --git a/jaxws/make/Makefile b/jaxws/make/Makefile index 3dab62bec74..3dc17bfa39f 100644 --- a/jaxws/make/Makefile +++ b/jaxws/make/Makefile @@ -69,7 +69,7 @@ else endif endif -# Note: j2se/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN) +# Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN) # and the somewhat misnamed CLASS_VERSION (-target NN) ifdef TARGET_CLASS_VERSION ANT_OPTIONS += -Djavac.target=$(TARGET_CLASS_VERSION) @@ -90,7 +90,6 @@ ifdef ALT_OUTPUTDIR else OUTPUTDIR = .. endif -ABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR)) ifdef ALT_LANGTOOLS_DIST ANT_OPTIONS += -Dbootstrap.dir=$(ALT_LANGTOOLS_DIST)/bootstrap @@ -127,7 +126,11 @@ $(ANT_TARGETS): $(ANT_JAVA_HOME) $(ANT) $(ANT_OPTIONS) $@ # Targets for Sun's internal JPRT build system +JPRT_ARCHIVE_BUNDLE=$(OUTPUTDIR)/jprt.zip jprt_build_product jprt_build_debug jprt_build_fastdebug: all + $(RM) $(JPRT_ARCHIVE_BUNDLE) + ( cd $(OUTPUTDIR)/dist && \ + zip -q -r $(JPRT_ARCHIVE_BUNDLE) . ) # Declare these phony (not filenames) .PHONY: $(ANT_TARGETS) all clobber \ diff --git a/jdk/.hgtags b/jdk/.hgtags new file mode 100644 index 00000000000..898e4a75668 --- /dev/null +++ b/jdk/.hgtags @@ -0,0 +1 @@ +37a05a11f281b4d238e2f9e7ebb67c63f64d0e77 jdk7-b24 diff --git a/jdk/.jcheck/conf b/jdk/.jcheck/conf new file mode 100644 index 00000000000..d8227cd90e3 --- /dev/null +++ b/jdk/.jcheck/conf @@ -0,0 +1 @@ +project=jdk7 diff --git a/jdk/make/common/Defs-linux.gmk b/jdk/make/common/Defs-linux.gmk index 51d638f96ab..674b6f6a0e6 100644 --- a/jdk/make/common/Defs-linux.gmk +++ b/jdk/make/common/Defs-linux.gmk @@ -50,13 +50,13 @@ CC_DEPEND = -MM CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g' ifndef PLATFORM_SRC - PLATFORM_SRC = $(JDK_TOPDIR)/src/solaris + PLATFORM_SRC = $(BUILDDIR)/../src/solaris endif # PLATFORM_SRC # Platform specific closed sources ifndef OPENJDK ifndef CLOSED_PLATFORM_SRC - CLOSED_PLATFORM_SRC = $(JDK_TOPDIR)/src/closed/solaris + CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris endif endif diff --git a/jdk/make/common/Defs-solaris.gmk b/jdk/make/common/Defs-solaris.gmk index 800c0b75ddb..052c0c88fc8 100644 --- a/jdk/make/common/Defs-solaris.gmk +++ b/jdk/make/common/Defs-solaris.gmk @@ -45,13 +45,13 @@ include $(JDK_MAKE_SHARED_DIR)/Defs.gmk ifndef PLATFORM_SRC -PLATFORM_SRC = $(JDK_TOPDIR)/src/solaris +PLATFORM_SRC = $(BUILDDIR)/../src/solaris endif # PLATFORM_SRC # Platform specific closed sources ifndef OPENJDK ifndef CLOSED_PLATFORM_SRC - CLOSED_PLATFORM_SRC = $(JDK_TOPDIR)/src/closed/solaris + CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris endif endif diff --git a/jdk/make/common/Defs-windows.gmk b/jdk/make/common/Defs-windows.gmk index 6f53eb72f3b..e9bdea85278 100644 --- a/jdk/make/common/Defs-windows.gmk +++ b/jdk/make/common/Defs-windows.gmk @@ -51,13 +51,13 @@ ifndef LIB_LOCATION endif # LIB_LOCATION ifndef PLATFORM_SRC - PLATFORM_SRC = $(JDK_TOPDIR)/src/windows + PLATFORM_SRC = $(BUILDDIR)/../src/windows endif # PLATFORM_SRC # Platform specific closed sources ifndef OPENJDK ifndef CLOSED_PLATFORM_SRC - CLOSED_PLATFORM_SRC = $(JDK_TOPDIR)/src/closed/windows + CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/windows endif endif @@ -367,7 +367,7 @@ else endif # Settings for the VERSIONINFO tap on windows. -VERSIONINFO_RESOURCE = $(JDK_TOPDIR)/src/windows/resource/version.rc +VERSIONINFO_RESOURCE = $(BUILDDIR)/../src/windows/resource/version.rc ifneq ($(JDK_BUILD_NUMBER),) COOKED_BUILD_NUMBER = $(shell $(ECHO) $(JDK_BUILD_NUMBER) | $(SED) -e 's/^b//' -e 's/^0//') diff --git a/jdk/make/common/Defs.gmk b/jdk/make/common/Defs.gmk index 9dd781b2f7e..268533ba608 100644 --- a/jdk/make/common/Defs.gmk +++ b/jdk/make/common/Defs.gmk @@ -32,6 +32,13 @@ # So when it includes other files, it must use JDK_TOPDIR. # +# Check for strange explicit settings (change to empty or true) +ifdef OPENJDK + ifneq ($(OPENJDK),true) + x:=$(error "OPENJDK (if defined) can only be set to true") + endif +endif + # # On Solaris, the 'make' utility from Sun will not work with these makefiles. # This little rule is only understood by Sun's make, and is harmless @@ -41,7 +48,15 @@ SUN_MAKE_TEST:sh = echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33 ifndef JDK_TOPDIR - JDK_TOPDIR=$(BUILDDIR)/.. + ifdef BUILDDIR + JDK_TOPDIR=$(BUILDDIR)/.. + else + JDK_TOPDIR:=$(error "ERROR: Cannot define top of jdk repository") + endif +endif +ifndef BUILDDIR + # Hack, due to deploy repository using this file. + BUILDDIR=$(JDK_TOPDIR)/make endif ifndef JDK_MAKE_SHARED_DIR JDK_MAKE_SHARED_DIR=$(JDK_TOPDIR)/make/common/shared @@ -59,13 +74,13 @@ include $(JDK_TOPDIR)/make/common/CancelImplicits.gmk # there yet. # ifndef SHARE_SRC - SHARE_SRC = $(JDK_TOPDIR)/src/share + SHARE_SRC = $(BUILDDIR)/../src/share endif # Files that cannot be included in the OpenJDK distribution are # collected under a parent directory which contains just those files. ifndef CLOSED_SRC - CLOSED_SRC = $(JDK_TOPDIR)/src/closed + CLOSED_SRC = $(BUILDDIR)/../src/closed endif # If we have no closed directory, force it to an openjdk build @@ -79,19 +94,6 @@ ifeq ($(CLOSED_SRC_DIR_EXISTS), false) OPENJDK = true endif -# Check for strange explicit settings (change to empty or true) -ifdef OPENJDK - ifeq ($(OPENJDK),false) - # Silently treat as not defined - OPENJDK = - else - ifneq ($(OPENJDK),true) - dummy := $(warning "WARNING: OPENKJDK=$(OPENJDK) being treated as true") - OPENJDK = true - endif - endif -endif - # Define where closed directories are ifdef OPENJDK CLOSED_SRC = @@ -170,14 +172,6 @@ ifdef OPENJDK endif endif # OPENJDK -# Default output directory -ifdef OPENJDK -_OUTPUTDIR=$(JDK_TOPDIR)/build/$(PLATFORM)-$(ARCH)$(OPENJDK_SUFFIX) -else -_OUTPUTDIR=$(JDK_TOPDIR)/build/$(PLATFORM)-$(ARCH) -endif - - # # Get platform definitions # diff --git a/jdk/make/common/shared/Defs-control.gmk b/jdk/make/common/shared/Defs-control.gmk index ec94a2ed7ae..172166aed91 100644 --- a/jdk/make/common/shared/Defs-control.gmk +++ b/jdk/make/common/shared/Defs-control.gmk @@ -36,7 +36,7 @@ ifndef JDK_MAKE_SHARED_DIR endif ifndef CONTROL_TOPDIR - CONTROL_TOPDIR=$(TOPDIR)/control + CONTROL_TOPDIR=$(TOPDIR) endif ifndef HOTSPOT_TOPDIR HOTSPOT_TOPDIR=$(TOPDIR)/hotspot @@ -70,7 +70,8 @@ endif include $(JDK_MAKE_SHARED_DIR)/Platform.gmk # Default output directory -_OUTPUTDIR=$(CONTROL_TOPDIR)/build/$(PLATFORM)-$(ARCH) +BUILD_PARENT_DIRECTORY=$(TOPDIR) +_OUTPUTDIR=$(TOPDIR)/build/$(PLATFORM)-$(ARCH) # Get platform specific settings include $(JDK_MAKE_SHARED_DIR)/Defs.gmk diff --git a/jdk/make/common/shared/Defs-utils.gmk b/jdk/make/common/shared/Defs-utils.gmk index dc84d795b76..3886ee65ce4 100644 --- a/jdk/make/common/shared/Defs-utils.gmk +++ b/jdk/make/common/shared/Defs-utils.gmk @@ -67,16 +67,6 @@ ifeq ($(PLATFORM),windows) UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH) endif -# Utilities ant and findbugs -ifndef ANT_HOME - ANT_HOME = $(JDK_DEVTOOLS_DIR)/share/ant/latest -endif -ANT = $(ANT_HOME)/bin/ant -ifndef FINDBUGS_HOME - FINDBUGS_HOME = $(JDK_DEVTOOLS_DIR)/share/findbugs/latest -endif -FINDBUGS = $(FINDBUGS_HOME)/bin/findbugs - # Utilities ADB = $(UTILS_COMMAND_PATH)adb AR = $(UTILS_CCS_BIN_PATH)ar diff --git a/jdk/make/common/shared/Defs.gmk b/jdk/make/common/shared/Defs.gmk index c2a8278bddf..6b0adfcb533 100644 --- a/jdk/make/common/shared/Defs.gmk +++ b/jdk/make/common/shared/Defs.gmk @@ -55,7 +55,10 @@ include $(JDK_MAKE_SHARED_DIR)/Defs-utils.gmk # Simple pwd path define PwdPath -$(shell cd $1 2> $(DEV_NULL) && pwd) +$(shell $(CD) $1 2> $(DEV_NULL) && $(PWD)) +endef +define AbsPwdPathCheck +$(shell $(CD) .. 2> $(DEV_NULL) && $(CD) $1 2> $(DEV_NULL) && $(PWD)) endef # Checks an ALT value for spaces (should be one word), @@ -422,23 +425,54 @@ CACERTS_FILE:=$(call AltCheckSpaces,CACERTS_FILE) CACERTS_FILE:=$(call AltCheckValue,CACERTS_FILE) # OUTPUTDIR: Location of all output for the build -_BACKUP_OUTPUTDIR = $(TEMP_DISK)/$(USER)/jdk-outputdir ifdef ALT_OUTPUTDIR - _POSSIBLE_OUTPUTDIR =$(subst \,/,$(ALT_OUTPUTDIR)) + OUTPUTDIR:=$(subst \,/,$(ALT_OUTPUTDIR)) + # Assumes this is absolute (checks later) + ABS_OUTPUTDIR:=$(OUTPUTDIR) else ifndef _OUTPUTDIR - _OUTPUTDIR = $(_BACKUP_OUTPUTDIR) + # Default: Get "build" parent directory, which should always exist + ifndef BUILD_PARENT_DIRECTORY + BUILD_PARENT_DIRECTORY=$(BUILDDIR)/.. + endif + ABS_BUILD_PARENT_DIRECTORY:=$(call FullPath,$(BUILD_PARENT_DIRECTORY)) + ifdef OPENJDK + _OUTPUTDIRNAME=$(PLATFORM)-$(ARCH)$(OPENJDK_SUFFIX) + else + _OUTPUTDIRNAME=$(PLATFORM)-$(ARCH) + endif + _OUTPUTDIR=$(BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME) + ABS_OUTPUTDIR:=$(ABS_BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME) endif - _POSSIBLE_OUTPUTDIR =$(_OUTPUTDIR) -endif -_create_outputdir1:=$(shell mkdir -p $(_POSSIBLE_OUTPUTDIR) > $(DEV_NULL) 2>&1) -OUTPUTDIR:=$(call WriteDirExists,$(_POSSIBLE_OUTPUTDIR),$(_BACKUP_OUTPUTDIR)) -_create_outputdir2:=$(shell mkdir -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1) -ifeq "$(OUTPUTDIR)" "$(_BACKUP_OUTPUTDIR)" - _outputdir_warning:=$(warning "WARNING: OUTPUTDIR '$(_POSSIBLE_OUTPUTDIR)' not writable, will use '$(_BACKUP_OUTPUTDIR)'") + OUTPUTDIR:=$(_OUTPUTDIR) endif +# Check for spaces and null value OUTPUTDIR:=$(call AltCheckSpaces,OUTPUTDIR) OUTPUTDIR:=$(call AltCheckValue,OUTPUTDIR) +# Create the output directory and make sure it exists and is writable +_create_outputdir:=$(shell $(MKDIR) -p "$(OUTPUTDIR)" > $(DEV_NULL) 2>&1) +ifeq ($(call WriteDirExists,$(OUTPUTDIR),/dev/null),/dev/null) + _outputdir_error:=$(error "ERROR: OUTPUTDIR '$(OUTPUTDIR)' not created or not writable") +endif +# Define absolute path if needed and check for spaces and null value +ifndef ABS_OUTPUTDIR + ABS_OUTPUTDIR:=$(call FullPath,$(OUTPUTDIR)) +endif +ABS_OUTPUTDIR:=$(call AltCheckSpaces,ABS_OUTPUTDIR) +ABS_OUTPUTDIR:=$(call AltCheckValue,ABS_OUTPUTDIR) +# Make doubly sure this is a full path +ifeq ($(call AbsPwdPathCheck,$(ABS_OUTPUTDIR)), ) + ifdef ALT_OUTPUTDIR + _outputdir_error:=$(error "ERROR: Trouble with the absolute path for OUTPUTDIR '$(OUTPUTDIR)', was ALT_OUTPUTDIR '$(ALT_OUTPUTDIR)' an absolute path?") + else + _outputdir_error:=$(error "ERROR: Trouble with the absolute path for OUTPUTDIR '$(OUTPUTDIR)'") + endif +endif +_dir1:=$(call FullPath,$(ABS_OUTPUTDIR)) +_dir2:=$(call FullPath,$(OUTPUTDIR)) +ifneq ($(_dir1),$(_dir2)) + _outputdir_error:=$(error "ERROR: ABS_OUTPUTDIR '$(ABS_OUTPUTDIR)' is not the same directory as OUTPUTDIR '$(OUTPUTDIR)', '$(_dir1)'!='$(_dir2)'") +endif # Bin directory # NOTE: ISA_DIR is usually empty, on Solaris it might be /sparcv9 or /amd64 @@ -469,15 +503,30 @@ JDK_CUPS_HEADERS_PATH=$(JDK_DEVTOOLS_DIR)/share/cups/include endif endif +# Utilities ant and findbugs +ifeq ($(ANT_HOME),) + ANT_HOME := $(call DirExists,/usr/share/ant,$(JDK_DEVTOOLS_DIR)/share/ant/latest,) +endif +ifeq ($(ANT_HOME),) + ANT = ant +else + ANT = $(ANT_HOME)/bin/ant +endif +ifeq ($(FINDBUGS_HOME),) + FINDBUGS_HOME := $(call DirExists,/usr/share/findbugs,$(JDK_DEVTOOLS_DIR)/share/findbugs/latest,) +endif +ifeq ($(FINDBUGS_HOME),) + FINDBUGS = findbugs +else + FINDBUGS = $(FINDBUGS_HOME)/bin/findbugs +endif + ifdef ALT_COPYRIGHT_YEAR COPYRIGHT_YEAR = $(ALT_COPYRIGHT_YEAR) else COPYRIGHT_YEAR = $(shell $(DATE) '+%Y') endif -# Absolute path to output directory -ABS_OUTPUTDIR:=$(call FullPath,$(OUTPUTDIR)) - # Get shared compiler settings include $(JDK_MAKE_SHARED_DIR)/Compiler.gmk diff --git a/jdk/make/common/shared/Platform.gmk b/jdk/make/common/shared/Platform.gmk index f9f229a8548..32cb08e3473 100644 --- a/jdk/make/common/shared/Platform.gmk +++ b/jdk/make/common/shared/Platform.gmk @@ -93,20 +93,18 @@ SYSTEM_UNAME := $(shell uname) # Normal boot jdk is previous release, but a hard requirement is a 1.5 boot REQUIRED_BOOT_VER = 1.5 -#This is specific to OpenJDK build -ifdef OPENJDK - REQUIRED_FREETYPE_VERSION=2.3.0 -endif +# If we are using freetype, this is the required version +REQUIRED_FREETYPE_VERSION=2.3.0 # # Prune out all known SCM (Source Code Management) directories # so they will not be included when copying directory trees # or packaging up .jar files, etc. This applies to all workspaces. # -SCM_DIRs = .hg .svn CVS RCS SCCS Codemgr_wsdata deleted_files +SCM_DIRs = .hg .svn CVS RCS SCCS Codemgr_wsdata deleted_files .hgignore .hgtags # When changing SCM_DIRs also change SCM_DIRS_rexp and SCM_DIRS_prune: -SCM_DIRS_rexp = ".hg|.svn|CVS|RCS|SCCS|Codemgr_wsdata|deleted_files" -SCM_DIRS_prune = \( -name .hg -o -name .svn -o -name CVS -o -name RCS -o -name SCCS -o -name Codemgr_wsdata -o -name deleted_files \) -prune +SCM_DIRS_rexp = ".hg|.svn|CVS|RCS|SCCS|Codemgr_wsdata|deleted_files|.hgignore|.hgtags" +SCM_DIRS_prune = \( -name .hg -o -name .svn -o -name CVS -o -name RCS -o -name SCCS -o -name Codemgr_wsdata -o -name deleted_files -o -name .hgignore -o -name .hgtags \) -prune # Don't define this unless it's not defined ifndef VARIANT @@ -272,7 +270,7 @@ ifeq ($(SYSTEM_UNAME), Linux) REQUIRED_ALSA_VERSION = ^((0[.]9[.][1-9])|(1[.]0[.][0-9]))[0-9]* endif # How much RAM does this machine have: - MB_OF_MEMORY := $(shell free -m | fgrep Mem: | sed -e 's@\ \ *@ @g' | cut -d' ' -f2) + MB_OF_MEMORY := $(shell free -m | fgrep Mem: | awk '{print $$2;}' ) endif # Windows with and without CYGWIN will be slightly different @@ -376,45 +374,35 @@ ifeq ($(PLATFORM), windows) REQUIRED_DXSDK_VER = 0x0700 OS_VENDOR = Microsoft # How much RAM does this machine have: - MB_OF_MEMORY := $(shell \ - if [ -f "C:/cygwin/bin/free.exe" ] ; then \ - ( C:/cygwin/bin/bash.exe -c "C:/cygwin/bin/free.exe -m" ) | \ - grep Mem: | \ - sed -e 's@\ \ *@ @g' | cut -d' ' -f2 ; \ - else \ - echo "512"; \ - fi) -endif - -# Machines with 512Mb or less of real memory are considered low memory -# build machines and adjustments will be made to prevent excessing -# system swapping during the build. -# If we don't know, assume 512. Subtract 128 from MB for VM MAX. -# Don't set VM max over 1024-128=896. -ifneq ($(MB_OF_MEMORY),) - LOW_MEMORY_MACHINE := $(shell \ - if [ $(MB_OF_MEMORY) -le 512 ] ; then \ - echo "true"; \ - else \ - echo "false"; \ - fi) - MAX_VM_MEMORY := $(shell \ - if [ $(MB_OF_MEMORY) -le 1024 ] ; then \ - expr $(MB_OF_MEMORY) '-' 128 ; \ - else \ - echo "896"; \ - fi) - MIN_VM_MEMORY := $(shell \ - if [ $(MAX_VM_MEMORY) -le 128 ] ; then \ - expr $(MAX_VM_MEMORY) '-' 8 ; \ - else \ - echo "128"; \ - fi) -else - MB_OF_MEMORY := unknown - LOW_MEMORY_MACHINE := true - MAX_VM_MEMORY := 384 - MIN_VM_MEMORY := 128 + ifeq ($(USING_CYGWIN),true) + # CYGWIN has the 'free' utility + _MB_OF_MEMORY := \ + $(shell free -m | grep Mem: | awk '{print $$2;}' ) + else + # Windows 2000 has the mem utility, but two memory areas + # extended memory is what is beyond 1024M + _B_OF_EXT_MEMORY := \ + $(shell mem 2> $(DEV_NULL) | grep 'total contiguous extended memory' | awk '{print $$1;}') + ifeq ($(_B_OF_EXT_MEMORY),) + _B_OF_MEMORY := \ + $(shell mem 2> $(DEV_NULL) | grep 'total conventional memory' | awk '{print $$1;}') + else + _B_OF_MEMORY := \ + $(shell expr 1048576 '+' $(_B_OF_EXT_MEMORY) 2> $(DEV_NULL)) + endif + ifeq ($(_B_OF_MEMORY),) + # Windows 2003 has the systeminfo utility use it if mem doesn't work + _MB_OF_MEMORY := \ + $(shell systeminfo 2> $(DEV_NULL) | grep 'Total Physical Memory:' | awk '{print $$4;}' | sed -e 's@,@@') + else + _MB_OF_MEMORY := $(shell expr $(_B_OF_MEMORY) '/' 1024 2> $(DEV_NULL)) + endif + endif + ifeq ($(shell expr $(_MB_OF_MEMORY) '+' 0 2> $(DEV_NULL)), $(_MB_OF_MEMORY)) + MB_OF_MEMORY := $(_MB_OF_MEMORY) + else + MB_OF_MEMORY := 512 + endif endif REQUIRED_ZIP_VER = 2.2 @@ -454,6 +442,37 @@ ifneq ($(PLATFORM), windows) ARCH_VM_SUBDIR=jre/lib/$(LIBARCH) endif +# Machines with 512Mb or less of real memory are considered low memory +# build machines and adjustments will be made to prevent excessing +# system swapping during the build. +# If we don't know, assume 512. Subtract 128 from MB for VM MAX. +# Don't set VM max over 1024-128=896. +ifneq ($(MB_OF_MEMORY),) + LOW_MEMORY_MACHINE := $(shell \ + if [ $(MB_OF_MEMORY) -le 512 ] ; then \ + echo "true"; \ + else \ + echo "false"; \ + fi) + MAX_VM_MEMORY := $(shell \ + if [ $(MB_OF_MEMORY) -le 1024 ] ; then \ + expr $(MB_OF_MEMORY) '-' 128 2> $(DEV_NULL) ; \ + else \ + echo "896"; \ + fi) + MIN_VM_MEMORY := $(shell \ + if [ $(MAX_VM_MEMORY) -le 128 ] ; then \ + expr $(MAX_VM_MEMORY) '-' 8 2> $(DEV_NULL) ; \ + else \ + echo "128"; \ + fi) +else + MB_OF_MEMORY := unknown + LOW_MEMORY_MACHINE := true + MAX_VM_MEMORY := 384 + MIN_VM_MEMORY := 128 +endif + # If blanks in the username, use the first 4 words and pack them together _USER1:=$(subst ', ,$(_USER)) _USER2:=$(subst ", ,$(_USER1)) diff --git a/jdk/make/common/shared/Sanity.gmk b/jdk/make/common/shared/Sanity.gmk index a97ddddd534..9f6bd2a55ab 100644 --- a/jdk/make/common/shared/Sanity.gmk +++ b/jdk/make/common/shared/Sanity.gmk @@ -105,13 +105,21 @@ ZIP_VER :=$(call GetVersion,"$(_ZIP_VER)") UNZIP_VER :=$(call GetVersion,"$(_UNZIP_VER)") BOOT_VER :=$(call GetVersion,"$(_BOOT_VER)") -REQUIRED_ANT_VER := 1.6.3 -_ANT_VER :=$(shell $(ANT) -version 2>&1 ) -ANT_VER :=$(call GetVersion,"$(_ANT_VER)") +REQUIRED_ANT_VER := 1.6.3 +ifeq ($(ANT_HOME),) + _ANT_VER:=$(shell JAVACMD="$(BOOTDIR)/bin/java" $(ANT) -version 2>&1 ) +else + _ANT_VER:=$(shell JAVACMD="$(BOOTDIR)/bin/java" ANT_HOME="$(ANT_HOME)" $(ANT) -version 2>&1 ) +endif +ANT_VER:=$(call GetVersion,"$(_ANT_VER)") -REQUIRED_FINDBUGS_VER := 1.1 -_FINDBUGS_VER :=$(shell $(FINDBUGS) -version 2>&1 ) -FINDBUGS_VER :=$(call GetVersion,"$(_FINDBUGS_VER)") +REQUIRED_FINDBUGS_VER := 1.2 +ifeq ($(FINDBUGS_HOME),) + _FINDBUGS_VER:=$(shell $(FINDBUGS) -javahome "$(BOOTDIR)" -textui -version 2>&1 ) +else + _FINDBUGS_VER:=$(shell FINDBUGS_HOME="$(FINDBUGS_HOME)" $(FINDBUGS) -javahome "$(BOOTDIR)" -textui -version 2>&1 ) +endif +FINDBUGS_VER:=$(call GetVersion,"$(_FINDBUGS_VER)") ifdef ALT_BINDIR ALT_BINDIR_VERSION := $(shell $(ALT_BINDIR)/java$(EXE_SUFFIX) -version 2>&1 | $(NAWK) -F'"' '{ print $$2 }') @@ -1564,31 +1572,31 @@ ifeq ($(ARCH_DATA_MODEL), 32) endif -###################################################### -# SECURITY_BASELINE_142 test -###################################################### -security_baseline_142: -ifeq ($(PLATFORM), windows) - @if [ -z "$(SECURITY_BASELINE_142)" ]; then \ - $(ECHO) "WARNING: Your SECURITY_BASELINE_142 setting is empty.\n" \ - " Setting it to the default value of 1.4.2_10.\n" \ - " It is recommended to set SECURITY_BASELINE_142.\n" \ - "" >> $(WARNING_FILE) ; \ - fi -endif - -###################################################### -# SECURITY_BASELINE_150 test -###################################################### -security_baseline_150: -ifeq ($(PLATFORM), windows) - @if [ -z "$(SECURITY_BASELINE_150)" ]; then \ - $(ECHO) "WARNING: Your SECURITY_BASELINE_150 setting is empty.\n" \ - " Setting it to the default value of 1.5.0_07.\n" \ - " It is recommended to set SECURITY_BASELINE_150.\n" \ - "" >> $(WARNING_FILE) ; \ - fi -endif +###################################################### +# SECURITY_BASELINE_142 test +###################################################### +security_baseline_142: +ifeq ($(PLATFORM), windows) + @if [ -z "$(SECURITY_BASELINE_142)" ]; then \ + $(ECHO) "WARNING: Your SECURITY_BASELINE_142 setting is empty.\n" \ + " Setting it to the default value of 1.4.2_10.\n" \ + " It is recommended to set SECURITY_BASELINE_142.\n" \ + "" >> $(WARNING_FILE) ; \ + fi +endif + +###################################################### +# SECURITY_BASELINE_150 test +###################################################### +security_baseline_150: +ifeq ($(PLATFORM), windows) + @if [ -z "$(SECURITY_BASELINE_150)" ]; then \ + $(ECHO) "WARNING: Your SECURITY_BASELINE_150 setting is empty.\n" \ + " Setting it to the default value of 1.5.0_07.\n" \ + " It is recommended to set SECURITY_BASELINE_150.\n" \ + "" >> $(WARNING_FILE) ; \ + fi +endif ###################################################### diff --git a/jdk/make/docs/CORE_PKGS.gmk b/jdk/make/docs/CORE_PKGS.gmk index dce55eea756..03d95a606aa 100644 --- a/jdk/make/docs/CORE_PKGS.gmk +++ b/jdk/make/docs/CORE_PKGS.gmk @@ -49,8 +49,8 @@ EXCLUDE_PKGS = \ # ACTIVE_JSR_PKGS are packages that are part of an active JSR process-- # one that is doing its own review. These packages are not included when # creating diff pages for the platform's JCP process. -# -# (see /java/pubs/apisrc/jdk/6.0/beta/make/docs/active_jsr_pkgs) +# +# (see /java/pubs/apisrc/jdk/6.0/beta/make/docs/active_jsr_pkgs) # Note: # This is a list of regular expressions. So foo.* matches "foo" and "foo.bar". # @@ -72,13 +72,13 @@ ACTIVE_JSR_PKGS= \ # CORE_PKGS is the list of packages that form the # Java API Specification. # -### ***IMPORTANT NOTE*** -### There is also a "REGEXP" variable in the docs/makefile that -### determines which table the packages go in on the main page. -### Currently, there is only table ("Platform Packages") and -### everything goes in it, so REGEXP is "*". But if that policy -### changes, packages added will need to be reflected in that -### list of wildcard expressions, as well. +### ***IMPORTANT NOTE*** +### There is also a "REGEXP" variable in the docs/makefile that +### determines which table the packages go in on the main page. +### Currently, there is only table ("Platform Packages") and +### everything goes in it, so REGEXP is "*". But if that policy +### changes, packages added will need to be reflected in that +### list of wildcard expressions, as well. ### CORE_PKGS = \ java.applet \ diff --git a/jdk/make/java/java/mapfile-vers b/jdk/make/java/java/mapfile-vers index 4599570449e..38f9e126d82 100644 --- a/jdk/make/java/java/mapfile-vers +++ b/jdk/make/java/java/mapfile-vers @@ -85,7 +85,6 @@ SUNWprivate_1.1 { Java_java_io_FileOutputStream_close0; Java_java_io_FileOutputStream_initIDs; Java_java_io_FileOutputStream_open; - Java_java_io_FileOutputStream_openAppend; Java_java_io_FileOutputStream_write; Java_java_io_FileOutputStream_writeBytes; Java_java_io_FileSystem_getFileSystem; diff --git a/jdk/make/java/jli/Makefile b/jdk/make/java/jli/Makefile index fb8868fd37d..236654fd4a9 100644 --- a/jdk/make/java/jli/Makefile +++ b/jdk/make/java/jli/Makefile @@ -107,6 +107,7 @@ endif # PLATFORM ifeq ($(PLATFORM), windows) EXTRA_LIBS = advapi32.lib \ + comctl32.lib \ user32.lib JAVALIB = diff --git a/jdk/make/java/main/java/Makefile b/jdk/make/java/main/java/Makefile index ad924f6663e..5c876294c98 100644 --- a/jdk/make/java/main/java/Makefile +++ b/jdk/make/java/main/java/Makefile @@ -43,7 +43,7 @@ include $(BUILDDIR)/common/Defs.gmk # Override the default version info with our own resource file (see 5106536) ifeq ($(PLATFORM), windows) -LDLIBS_COMMON += user32.lib +LDLIBS_COMMON += user32.lib comctl32.lib ifdef OPENJDK RC_FLAGS += -i "$(PLATFORM_SRC)/resource/icons" else diff --git a/jdk/make/java/main/javaw/Makefile b/jdk/make/java/main/javaw/Makefile index 9afb5d0133d..1c03b23fab7 100644 --- a/jdk/make/java/main/javaw/Makefile +++ b/jdk/make/java/main/javaw/Makefile @@ -46,7 +46,7 @@ STATIC_JLI = true include $(BUILDDIR)/common/Defs.gmk OTHER_CPPFLAGS += -DJAVAW -LDLIBS_COMMON += user32.lib +LDLIBS_COMMON += user32.lib comctl32.lib # Override the default version info with our own resource file (see 5106536) ifeq ($(PLATFORM), windows) diff --git a/jdk/make/java/nio/Makefile b/jdk/make/java/nio/Makefile index 98a838831a2..0a9070f8257 100644 --- a/jdk/make/java/nio/Makefile +++ b/jdk/make/java/nio/Makefile @@ -191,7 +191,7 @@ sources: $(SPP) $(FILES_genout) GEN_BUFFER_SH = genBuffer.sh -GEN_BUFFER_CMD = SPP="$(SPP_CMD)" NAWK=$(NAWK) SED=$(SED) \ +GEN_BUFFER_CMD = SPP="$(SPP_CMD)" NAWK=$(NAWK) SED=$(SED) SH=$(SH) \ $(SH) $(GEN_BUFFER_SH) # Public abstract buffer classes @@ -582,7 +582,7 @@ $(BUF_GEN)/ByteBufferAsDoubleBuffer%L.java: $(BUF_SRC)/ByteBufferAs-X-Buffer.jav GEN_CODER_SH = genCoder.sh -GEN_CODER_CMD = SPP="$(SPP_CMD)" SED=$(SED) NAWK=$(NAWK) $(SH) $(GEN_CODER_SH) +GEN_CODER_CMD = SPP="$(SPP_CMD)" SED=$(SED) NAWK=$(NAWK) SH=$(SH) $(SH) $(GEN_CODER_SH) $(CS_GEN)/CharsetDecoder.java: $(CS_SRC)/Charset-X-Coder.java $(GEN_CODER_SH) $(prep-target) @@ -602,7 +602,7 @@ $(CS_GEN)/CharsetEncoder.java: $(CS_SRC)/Charset-X-Coder.java $(GEN_CODER_SH) GEN_EX_SH = genExceptions.sh -GEN_EX_CMD = NAWK=$(NAWK) $(SHELL) $(GEN_EX_SH) +GEN_EX_CMD = NAWK=$(NAWK) SH=$(SH) $(SH) $(GEN_EX_SH) $(CH_GEN)/%Exception.java: genExceptions.sh $(CH_SRC)/exceptions $(prep-target) @@ -635,8 +635,8 @@ $(SCS_GEN)/StandardCharsets.java: genCharsetProvider.sh \ $(HASHER_JARFILE) $(SCS_SRC)/standard-charsets $(prep-target) @$(RM) $@.temp - NAWK=$(NAWK) TEMPDIR=$(TEMPDIR) \ + NAWK=$(NAWK) TEMPDIR=$(TEMPDIR) SH=$(SH) \ HASHER="$(BOOT_JAVA_CMD) -jar $(HASHER_JARFILE)" \ - $(SHELL) -e genCharsetProvider.sh $(SCS_SRC)/standard-charsets $(SCS_GEN) + $(SH) -e genCharsetProvider.sh $(SCS_SRC)/standard-charsets $(SCS_GEN) .PHONY: sources diff --git a/jdk/make/java/nio/genCharsetProvider.sh b/jdk/make/java/nio/genCharsetProvider.sh index 1c344dacabd..574722fb4a9 100644 --- a/jdk/make/java/nio/genCharsetProvider.sh +++ b/jdk/make/java/nio/genCharsetProvider.sh @@ -48,7 +48,7 @@ echo '-->' $OUT # Header # -$SHELL addNotices.sh "$COPYRIGHT_YEARS" > $OUT +$SH ./addNotices.sh "$COPYRIGHT_YEARS" > $OUT cat <<__END__ >>$OUT diff --git a/jdk/make/java/nio/genExceptions.sh b/jdk/make/java/nio/genExceptions.sh index 0e2020c2c1f..2de5e9cd784 100644 --- a/jdk/make/java/nio/genExceptions.sh +++ b/jdk/make/java/nio/genExceptions.sh @@ -41,7 +41,7 @@ gen() { echo '-->' $DST/$ID.java out=$DST/${ID}.java - $SHELL addNotices.sh "$COPYRIGHT_YEARS" > $out + $SH ./addNotices.sh "$COPYRIGHT_YEARS" > $out cat >>$out <<__END__ diff --git a/jdk/make/sun/splashscreen/Makefile b/jdk/make/sun/splashscreen/Makefile index 1b51d3a6484..8a0dffe62c9 100644 --- a/jdk/make/sun/splashscreen/Makefile +++ b/jdk/make/sun/splashscreen/Makefile @@ -85,3 +85,13 @@ vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen CPPFLAGS += -I$(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen -I$(SHARE_SRC)/native/$(PKGDIR)/splashscreen CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/image/jpeg -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3 +ifeq ($(PLATFORM), linux) + ifeq ($(ARCH_DATA_MODEL), 64) + # 64-bit gcc has problems compiling MMX instructions. + # Google it for more details. Possibly the newer versions of + # the PNG-library and/or the new compiler will not need this + # option in the future. + CPPFLAGS += -DPNG_NO_MMX_CODE + endif +endif + diff --git a/jdk/make/sun/xawt/Makefile b/jdk/make/sun/xawt/Makefile index e0f59b738db..4c56c5ea9a4 100644 --- a/jdk/make/sun/xawt/Makefile +++ b/jdk/make/sun/xawt/Makefile @@ -1,5 +1,5 @@ # -# Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2002-2008 Sun Microsystems, Inc. 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 @@ -246,7 +246,7 @@ $(SIZES): $(SIZERS) @if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \ $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \ $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \ - fi + fi $(TEMPDIR)/.gen.wrappers: $(SIZES) $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES) $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \ @@ -256,10 +256,11 @@ touch.wrappers: $(TEMPDIR)/.gen.wrappers $(MKDIR) -p $(TEMPDIR) $(TOUCH) $(TEMPDIR)/.gen.wrappers -generated.clean: +generated.clean: $(RM) -r $(WRAPPER_GENERATOR_TEMPDIR) $(RM) -r $(WRAPPER_GENERATOR_DIR) $(RM) -r $(GEN_DIR)/*.java + $(RM) -r $(TEMPDIR)/.gen_icons ifdef OPENJDK ICONS_PATH_PREFIX=$(PLATFORM_SRC) diff --git a/jdk/make/tools/freetypecheck/Makefile b/jdk/make/tools/freetypecheck/Makefile index c2a3e644ba7..7bcfe6300c1 100644 --- a/jdk/make/tools/freetypecheck/Makefile +++ b/jdk/make/tools/freetypecheck/Makefile @@ -38,7 +38,14 @@ FT_TEST_PATH = $(TEMPDIR)/$(FT_TEST) all: $(FT_TEST_PATH) -FT_OPTIONS = -I$(FT_HEADERS) -I$(FT_HEADERS)/freetype2 +# Start with CFLAGS (which gets us the required -xarch setting on solaris) +ifeq ($(PLATFORM), windows) + FT_OPTIONS = +else + FT_OPTIONS = $(CFLAGS) +endif + +FT_OPTIONS += -I$(FT_HEADERS) -I$(FT_HEADERS)/freetype2 FT_OPTIONS += $(XARCH) #add runtime library search path diff --git a/jdk/make/tools/freetypecheck/freetypecheck.c b/jdk/make/tools/freetypecheck/freetypecheck.c index 00f460d7dc1..12b26f7e88b 100644 --- a/jdk/make/tools/freetypecheck/freetypecheck.c +++ b/jdk/make/tools/freetypecheck/freetypecheck.c @@ -26,13 +26,16 @@ /* Test program for freetype sanity check. Prints "Failed" messages to STDOUT if check fails. */ +#include- The source code for the - OpenJDK is - delivered in 3 sibling directories: + The source code for the OpenJDK is delivered in a set of + directories: hotspot, langtools, corba, jaxws, jaxp, - jdk and + jdk. The hotspot directory contains the source code and make - files for - building the - OpenJDK - Hotspot Virtual Machine. - The jdk - directory contains the source code and make files for - building the - OpenJDK - runtime libraries, tools and demos. - The top level Makefile is used to build the complete OpenJDK - release including building the hotspot - VM, staging the VM binaries, and building the - OpenJDK - runtime libraries, - tools and demos. + files for building the OpenJDK Hotspot Virtual Machine. + The langtools directory contains the source code and make + files for building the OpenJDK javac and language tools. + The corba directory contains the source code and make + files for building the OpenJDK Corba files. + The jaxws directory contains the source code and make + files for building the OpenJDK JAXWS files. + The jaxp directory contains the source code and make + files for building the OpenJDK JAXP files. + The jdk directory contains the source code and make files for + building the OpenJDK runtime libraries and misc files. + The top level Makefile + is used to build the entire OpenJDK.
List of the stack frames.
*/
- List getStack() throws IncompatibleThreadStateException {
+ List
+ * The MouseWheelEvent class includes methods for
+ * getting the number of "clicks" by which the mouse wheel is rotated.
+ * The {@link #getWheelRotation} method returns the integer number
+ * of "clicks" corresponding to the number of notches by which the wheel was
+ * rotated. In addition to this method, the MouseWheelEvent
+ * class provides the {@link #getPreciseWheelRotation} method which returns
+ * a double number of "clicks" in case a partial rotation occurred.
+ * The {@link #getPreciseWheelRotation} method is useful if a mouse supports
+ * a high-resolution wheel, such as a freely rotating wheel with no
+ * notches. Applications can benefit by using this method to process
+ * mouse wheel events more precisely, and thus, making visual perception
+ * smoother.
*
* @author Brent Christian
* @see MouseWheelListener
@@ -131,6 +144,13 @@ public class MouseWheelEvent extends MouseEvent {
*/
int wheelRotation;
+ /**
+ * Indicates how far the mouse wheel was rotated.
+ *
+ * @see #getPreciseWheelRotation
+ */
+ double preciseWheelRotation;
+
/*
* serialVersionUID
*/
@@ -165,8 +185,8 @@ public class MouseWheelEvent extends MouseEvent {
* WHEEL_BLOCK_SCROLL
* @param scrollAmount for scrollType WHEEL_UNIT_SCROLL,
* the number of units to be scrolled
- * @param wheelRotation the amount that the mouse wheel was rotated (the
- * number of "clicks")
+ * @param wheelRotation the integer number of "clicks" by which the mouse
+ * wheel was rotated
*
* @throws IllegalArgumentException if source is null
* @see MouseEvent#MouseEvent(java.awt.Component, int, long, int, int, int, int, boolean)
@@ -211,8 +231,8 @@ public class MouseWheelEvent extends MouseEvent {
* WHEEL_BLOCK_SCROLL
* @param scrollAmount for scrollType WHEEL_UNIT_SCROLL,
* the number of units to be scrolled
- * @param wheelRotation the amount that the mouse wheel was rotated (the
- * number of "clicks")
+ * @param wheelRotation the integer number of "clicks" by which the mouse
+ * wheel was rotated
*
* @throws IllegalArgumentException if source is null
* @see MouseEvent#MouseEvent(java.awt.Component, int, long, int, int, int, int, boolean)
@@ -223,12 +243,68 @@ public class MouseWheelEvent extends MouseEvent {
int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger,
int scrollType, int scrollAmount, int wheelRotation) {
+ this(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount, popupTrigger,
+ scrollType, scrollAmount, wheelRotation, wheelRotation);
+
+ }
+
+
+ /**
+ * Constructs a MouseWheelEvent object with the specified
+ * source component, type, modifiers, coordinates, absolute coordinates,
+ * scroll type, scroll amount, and wheel rotation.
+ *
Note that passing in an invalid id parameter results
+ * in unspecified behavior. This method throws an
+ * IllegalArgumentException if source equals
+ * null.
+ *
Even if inconsistent values for relative and absolute coordinates
+ * are passed to the constructor, a
* This constructor does not throw an exception if
@@ -100,8 +96,8 @@ class FileOutputStream extends OutputStream
}
/**
- * Creates an output file stream to write to the file with the specified
- *
@@ -223,7 +214,7 @@ class FileOutputStream extends OutputStream
* is thrown.
*
* This constructor does not throw an exception if MouseWheelEvent instance
+ * is still created and no exception is thrown.
+ *
+ * @param source the Component that originated the event
+ * @param id the integer value that identifies the event
+ * @param when a long value that gives the time when the event occurred
+ * @param modifiers the modifier keys down during event
+ * (shift, ctrl, alt, meta)
+ * @param x the horizontal x coordinate for the
+ * mouse location
+ * @param y the vertical y coordinate for the
+ * mouse location
+ * @param xAbs the absolute horizontal x coordinate for
+ * the mouse location
+ * @param yAbs the absolute vertical y coordinate for
+ * the mouse location
+ * @param clickCount the number of mouse clicks associated with the event
+ * @param popupTrigger a boolean value, true if this event is a trigger
+ * for a popup-menu
+ * @param scrollType the type of scrolling which should take place in
+ * response to this event; valid values are
+ * WHEEL_UNIT_SCROLL and
+ * WHEEL_BLOCK_SCROLL
+ * @param scrollAmount for scrollType WHEEL_UNIT_SCROLL,
+ * the number of units to be scrolled
+ * @param wheelRotation the integer number of "clicks" by which the mouse wheel
+ * was rotated
+ * @param preciseWheelRotation the double number of "clicks" by which the mouse wheel
+ * was rotated
+ *
+ * @throws IllegalArgumentException if source is null
+ * @see MouseEvent#MouseEvent(java.awt.Component, int, long, int, int, int, int, boolean)
+ * @see MouseEvent#MouseEvent(java.awt.Component, int, long, int, int, int, int, int, int, boolean, int)
+ * @since 1.7
+ */
+ public MouseWheelEvent (Component source, int id, long when, int modifiers,
+ int x, int y, int xAbs, int yAbs, int clickCount, boolean popupTrigger,
+ int scrollType, int scrollAmount, int wheelRotation, double preciseWheelRotation) {
+
super(source, id, when, modifiers, x, y, xAbs, yAbs, clickCount,
popupTrigger, MouseEvent.NOBUTTON);
this.scrollType = scrollType;
this.scrollAmount = scrollAmount;
this.wheelRotation = wheelRotation;
+ this.preciseWheelRotation = preciseWheelRotation;
+
}
/**
@@ -267,16 +343,34 @@ public class MouseWheelEvent extends MouseEvent {
}
/**
- * Returns the number of "clicks" the mouse wheel was rotated.
+ * Returns the number of "clicks" the mouse wheel was rotated, as an integer.
+ * A partial rotation may occur if the mouse supports a high-resolution wheel.
+ * In this case, the method returns zero until a full "click" has been accumulated.
*
* @return negative values if the mouse wheel was rotated up/away from
* the user, and positive values if the mouse wheel was rotated down/
* towards the user
+ * @see #getPreciseWheelRotation
*/
public int getWheelRotation() {
return wheelRotation;
}
+ /**
+ * Returns the number of "clicks" the mouse wheel was rotated, as a double.
+ * A partial rotation may occur if the mouse supports a high-resolution wheel.
+ * In this case, the return value will include a fractional "click".
+ *
+ * @return negative values if the mouse wheel was rotated up or away from
+ * the user, and positive values if the mouse wheel was rotated down or
+ * towards the user
+ * @see #getWheelRotation
+ * @since 1.7
+ */
+ public double getPreciseWheelRotation() {
+ return preciseWheelRotation;
+ }
+
/**
* This is a convenience method to aid in the implementation of
* the common-case MouseWheelListener - to scroll a ScrollPane or
@@ -348,6 +442,6 @@ public class MouseWheelEvent extends MouseEvent {
}
return super.paramString()+",scrollType="+scrollTypeStr+
",scrollAmount="+getScrollAmount()+",wheelRotation="+
- getWheelRotation();
+ getWheelRotation()+",preciseWheelRotation="+getPreciseWheelRotation();
}
}
diff --git a/jdk/src/share/classes/java/io/FileInputStream.java b/jdk/src/share/classes/java/io/FileInputStream.java
index 8575e6d9397..a37c69c6239 100644
--- a/jdk/src/share/classes/java/io/FileInputStream.java
+++ b/jdk/src/share/classes/java/io/FileInputStream.java
@@ -48,15 +48,15 @@ public
class FileInputStream extends InputStream
{
/* File Descriptor - handle to the open file */
- private FileDescriptor fd;
+ private final FileDescriptor fd;
private FileChannel channel = null;
- private Object closeLock = new Object();
+ private final Object closeLock = new Object();
private volatile boolean closed = false;
- private static ThreadLocalfdObj
- * is {link java.io.FileDescriptor#valid() invalid}.
+ * is {@link java.io.FileDescriptor#valid() invalid}.
* However, if the methods are invoked on the resulting stream to attempt
* I/O on the stream, an IOException is thrown.
*
@@ -389,7 +389,7 @@ class FileInputStream extends InputStream
* @see java.io.FileInputStream#close()
*/
protected void finalize() throws IOException {
- if ((fd != null) && (fd != fd.in)) {
+ if ((fd != null) && (fd != FileDescriptor.in)) {
/*
* Finalizer should not release the FileDescriptor if another
diff --git a/jdk/src/share/classes/java/io/FileOutputStream.java b/jdk/src/share/classes/java/io/FileOutputStream.java
index 695f43150fe..f252237d89f 100644
--- a/jdk/src/share/classes/java/io/FileOutputStream.java
+++ b/jdk/src/share/classes/java/io/FileOutputStream.java
@@ -52,20 +52,16 @@ public
class FileOutputStream extends OutputStream
{
/**
- * The system dependent file descriptor. The value is
- * 1 more than actual file descriptor. This means that
- * the default value 0 indicates that the file is not open.
+ * The system dependent file descriptor.
*/
- private FileDescriptor fd;
+ private final FileDescriptor fd;
private FileChannel channel= null;
- private boolean append = false;
-
- private Object closeLock = new Object();
+ private final Object closeLock = new Object();
private volatile boolean closed = false;
- private static ThreadLocalFileDescriptor object is
* created to represent this file connection.
* name. If the second argument is true, then
+ * Creates a file output stream to write to the file with the specified
+ * name. If the second argument is true, then
* bytes will be written to the end of the file rather than the beginning.
* A new FileDescriptor object is created to represent this
* file connection.
@@ -202,16 +198,11 @@ class FileOutputStream extends OutputStream
}
fd = new FileDescriptor();
fd.incrementAndGetUseCount();
- this.append = append;
- if (append) {
- openAppend(name);
- } else {
- open(name);
- }
+ open(name, append);
}
/**
- * Creates an output file stream to write to the specified file
+ * Creates a file output stream to write to the specified file
* descriptor, which represents an existing connection to an actual
* file in the file system.
* fdObj
- * is {link java.io.FileDescriptor#valid() invalid}.
+ * is {@link java.io.FileDescriptor#valid() invalid}.
* However, if the methods are invoked on the resulting stream to attempt
* I/O on the stream, an IOException is thrown.
*
@@ -252,16 +243,12 @@ class FileOutputStream extends OutputStream
}
/**
- * Opens a file, with the specified name, for writing.
+ * Opens a file, with the specified name, for overwriting or appending.
* @param name name of file to be opened
+ * @param append whether the file is to be opened in append mode
*/
- private native void open(String name) throws FileNotFoundException;
-
- /**
- * Opens a file, with the specified name, for appending.
- * @param name name of file to be opened
- */
- private native void openAppend(String name) throws FileNotFoundException;
+ private native void open(String name, boolean append)
+ throws FileNotFoundException;
/**
* Writes the specified byte to this file output stream. Implements
@@ -385,7 +372,7 @@ class FileOutputStream extends OutputStream
public FileChannel getChannel() {
synchronized (this) {
if (channel == null) {
- channel = FileChannelImpl.open(fd, false, true, this, append);
+ channel = FileChannelImpl.open(fd, false, true, this);
/*
* Increment fd's use count. Invoking the channel's close()
@@ -408,7 +395,7 @@ class FileOutputStream extends OutputStream
*/
protected void finalize() throws IOException {
if (fd != null) {
- if (fd == fd.out || fd == fd.err) {
+ if (fd == FileDescriptor.out || fd == FileDescriptor.err) {
flush();
} else {
diff --git a/jdk/src/share/classes/java/io/ObjectInputStream.java b/jdk/src/share/classes/java/io/ObjectInputStream.java
index 9acc30cf7c1..d4dd289a3b3 100644
--- a/jdk/src/share/classes/java/io/ObjectInputStream.java
+++ b/jdk/src/share/classes/java/io/ObjectInputStream.java
@@ -212,7 +212,8 @@ public class ObjectInputStream
private static final Object unsharedMarker = new Object();
/** table mapping primitive type names to corresponding class objects */
- private static final HashMap primClasses = new HashMap(8, 1.0F);
+ private static final HashMap