# HG changeset patch # User Andrew John Hughes # Date 1378249988 -3600 # Node ID 88ad9f7151930b1eb15f40d1bd4539734ed62a9f # Parent 222321136c4823e1861aeee3e843f94a9d58cfe9 Backport various Makefile changes so -Wno-clobbered is only used with GCC >= 4.3. S6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) S6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 S6799141: Build with --hash-style=both so that binaries can work on SuSE 10 S6816311: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003 S6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches) S6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build S7000225: Sanity check on sane-alsa-headers is broken S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber 2013-09-02 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add new backports. Move disable-cc-incompatible-sanity-checks and freetypeversion to the end. * patches/disable-cc-incompatible-sanity-checks.patch, * patches/freetypeversion.patch: Regenerated to work after new backports. * patches/openjdk/6563752-ss12_support.patch, * patches/openjdk/6729772-opt_cleanup.patch, * patches/openjdk/6799141-split_out_versions.patch, * patches/openjdk/6816311-compiler_name.patch, * patches/openjdk/6974017-minorver_for_solaris.patch, * patches/openjdk/6980281-majorver_for_solaris.patch, * patches/openjdk/7000225-bad_tabs.patch, * patches/openjdk/7038711-fix_no-clobber_usage.patch: Backports from OpenJDK 7 to bring in latest Makefile updates. * NEWS: Update and order backports numerically. diff -r 222321136c48 -r 88ad9f715193 ChangeLog --- a/ChangeLog Tue Sep 03 20:08:26 2013 +0100 +++ b/ChangeLog Wed Sep 04 00:13:08 2013 +0100 @@ -1,3 +1,24 @@ +2013-09-02 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add new backports. Move + disable-cc-incompatible-sanity-checks and freetypeversion + to the end. + * patches/disable-cc-incompatible-sanity-checks.patch, + * patches/freetypeversion.patch: + Regenerated to work after new backports. + * patches/openjdk/6563752-ss12_support.patch, + * patches/openjdk/6729772-opt_cleanup.patch, + * patches/openjdk/6799141-split_out_versions.patch, + * patches/openjdk/6816311-compiler_name.patch, + * patches/openjdk/6974017-minorver_for_solaris.patch, + * patches/openjdk/6980281-majorver_for_solaris.patch, + * patches/openjdk/7000225-bad_tabs.patch, + * patches/openjdk/7038711-fix_no-clobber_usage.patch: + Backports from OpenJDK 7 to bring in latest Makefile + updates. + * NEWS: Update and order backports numerically. + 2013-08-30 Andrew John Hughes * Makefile.am: diff -r 222321136c48 -r 88ad9f715193 Makefile.am --- a/Makefile.am Tue Sep 03 20:08:26 2013 +0100 +++ b/Makefile.am Wed Sep 04 00:13:08 2013 +0100 @@ -451,7 +451,6 @@ patches/lcms.patch \ patches/print_lsb_release.patch \ patches/uname.patch \ - patches/freetypeversion.patch \ patches/nomotif-6706121.patch \ patches/nomotif.patch \ patches/nomotif-mtoolkit.patch \ @@ -478,7 +477,6 @@ patches/jtreg-jrunscript.patch \ patches/network-unreachable.patch \ patches/dnd-filelists.patch \ - patches/disable-cc-incompatible-sanity-checks.patch \ patches/explicit-target-arch.patch \ patches/openjdk/7019808-stack_noexec.patch \ patches/parisc.patch \ @@ -671,7 +669,17 @@ patches/openjdk/6636331-appcontext_concurrentmodificationexception.patch \ patches/openjdk/6893617-cnctx_always_uses_default_orb.patch \ patches/imageiojpeg_sync.patch \ - patches/openjdk/8005194-scale_memory_leak.patch + patches/openjdk/8005194-scale_memory_leak.patch \ + patches/openjdk/6563752-ss12_support.patch \ + patches/openjdk/6729772-opt_cleanup.patch \ + patches/openjdk/6799141-split_out_versions.patch \ + patches/freetypeversion.patch \ + patches/openjdk/6816311-compiler_name.patch \ + patches/openjdk/6974017-minorver_for_solaris.patch \ + patches/openjdk/6980281-majorver_for_solaris.patch \ + patches/openjdk/7000225-bad_tabs.patch \ + patches/openjdk/7038711-fix_no-clobber_usage.patch \ + patches/disable-cc-incompatible-sanity-checks.patch if WITH_RHINO ICEDTEA_PATCHES += \ @@ -727,7 +735,6 @@ patches/ecj/spp.patch \ patches/ecj/jopt.patch \ patches/ecj/jaxp-dependency.patch \ - patches/ecj/bootver.patch \ patches/ecj/getannotation-cast.patch \ patches/ecj/override.patch \ patches/ecj/xsltproc.patch \ diff -r 222321136c48 -r 88ad9f715193 NEWS --- a/NEWS Tue Sep 03 20:08:26 2013 +0100 +++ b/NEWS Wed Sep 04 00:13:08 2013 +0100 @@ -14,17 +14,25 @@ New in release 1.11.13 (2013-XX-XX): * Backports - - S6840152: JVM crashes when heavyweight monitors are used - - S7022999: Can't build with FORCE_TIERED=0 - S4893408: JPEGReader throws IllegalArgException when setting the destination to BYTE_GRAY + - S6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) - S6631559: Registration of ImageIO plugins should not cause loading of jpeg.dlli and cmm.dll + - S6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 - S6791502: IIOException "Invalid icc profile" on jpeg after update from JDK5 to JDK6 - S6793818: JpegImageReader is too greedy creating color profiles + - S6799141: Build with --hash-style=both so that binaries can work on SuSE 10 + - S6816311: Changes to allow builds with latest Windows SDK 6.1 on 64bit Windows 2003 + - S6840152: JVM crashes when heavyweight monitors are used - S6888215: memory leak in jpeg plugin + - S6974017: Upgrade required Solaris Studio compilers to 5.10 (12 update 1 + patches) + - S6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build - S6989760: cmm native compiler warnings - S6989774: imageio compiler warnings in native code + - S7000225: Sanity check on sane-alsa-headers is broken - S7013519: [parfait] Integer overflows in 2D code - S7018912: [parfait] potential buffer overruns in imageio jpeg + - S7022999: Can't build with FORCE_TIERED=0 + - S7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber - S8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer 'scale' allocated with calloc() - S8020983, RH976897: OutOfMemoryError caused by non garbage collected JPEGImageWriter Instances * Bug fixes diff -r 222321136c48 -r 88ad9f715193 patches/disable-cc-incompatible-sanity-checks.patch --- a/patches/disable-cc-incompatible-sanity-checks.patch Tue Sep 03 20:08:26 2013 +0100 +++ b/patches/disable-cc-incompatible-sanity-checks.patch Wed Sep 04 00:13:08 2013 +0100 @@ -1,7 +1,7 @@ diff -Nru openjdk.orig/jdk/make/common/Sanity.gmk openjdk/jdk/make/common/Sanity.gmk ---- openjdk.orig/jdk/make/common/Sanity.gmk 2009-10-01 18:31:50.000000000 +0100 -+++ openjdk/jdk/make/common/Sanity.gmk 2009-10-02 17:51:35.000000000 +0100 -@@ -92,8 +92,11 @@ +--- openjdk.orig/jdk/make/common/Sanity.gmk 2012-10-26 19:25:40.000000000 +0100 ++++ openjdk/jdk/make/common/Sanity.gmk 2013-09-02 17:26:52.257169562 +0100 +@@ -91,8 +91,11 @@ sane-ld_options \ sane-ld_run_path \ sane-alt_bootdir \ @@ -15,7 +15,7 @@ ifdef OPENJDK sanity-all:: sane-freetype -@@ -109,17 +112,21 @@ +@@ -108,17 +111,21 @@ # (Which only happens with a full control build. The control makefiles are # the files that set BUILD_MOTIF). # We cannot sanity check something that has not been built yet. @@ -42,64 +42,36 @@ # Always check hotspot binary paths even if we are building them from scratch diff -Nru openjdk.orig/jdk/make/common/shared/Sanity.gmk openjdk/jdk/make/common/shared/Sanity.gmk ---- openjdk.orig/jdk/make/common/shared/Sanity.gmk 2009-10-02 17:36:09.000000000 +0100 -+++ openjdk/jdk/make/common/shared/Sanity.gmk 2009-10-02 17:52:37.000000000 +0100 -@@ -75,9 +75,14 @@ - fi ) - endif - ifneq ($(ARCH), ia64) -- # dummy program that outputs ALSA's version (created in target sane-alsa-versioncheck) -- ALSA_VERSION_CHECK = $(TEMPDIR)/alsaversioncheck -- ALSA_VERSION = `if [ -f "$(ALSA_VERSION_CHECK)" ] ; then $(ALSA_VERSION_CHECK) ; fi` -+ ifdef CROSS_COMPILATION -+ # assume alsa version is correct and do not check it -+ ALSA_VERSION = 1.0.0 -+ else -+ # dummy program that outputs ALSA's version (created in target sane-alsa-versioncheck) -+ ALSA_VERSION_CHECK = $(TEMPDIR)/alsaversioncheck -+ ALSA_VERSION = `if [ -f "$(ALSA_VERSION_CHECK)" ] ; then $(ALSA_VERSION_CHECK) ; fi` -+ endif - endif - endif - -@@ -120,6 +125,15 @@ +--- openjdk.orig/jdk/make/common/shared/Sanity.gmk 2013-09-02 17:03:28.039330395 +0100 ++++ openjdk/jdk/make/common/shared/Sanity.gmk 2013-09-02 17:32:35.854512833 +0100 +@@ -159,6 +159,11 @@ # Get ALL_SETTINGS defined include $(JDK_MAKE_SHARED_DIR)/Sanity-Settings.gmk +ifndef CROSS_COMPILATION +MORE_PHONY_RULES = \ -+ sane-freetype \ -+ sane-cups \ -+ sane-motif \ -+ sane-alsa-versioncheck \ -+ sane-alsa-headers ++ sane-freetype +endif + .PHONY: \ sane-copyrightyear\ sane-settings \ -@@ -149,8 +163,6 @@ +@@ -187,8 +192,7 @@ sane-outputdir \ sane-alt_bootdir \ sane-bootdir \ - sane-motif \ - sane-cups \ ++ sane-cups \ sane-devtools_path \ sane-compiler_path \ sane-unixcommand_path \ -@@ -168,13 +180,11 @@ - sane-compiler \ - sane-link \ - sane-cacerts \ -- sane-alsa-versioncheck \ -- sane-alsa-headers \ - sane-ant_version \ +@@ -211,7 +215,7 @@ sane-zip_version \ sane-unzip_version \ -- sane-msvcrt_path \ + sane-msvcrt_path \ - sane-freetype -+ sane-msvcrt_path \ -+ $(MORE_PHONY_RULES) ++ $(MORE_PHONY_RULES) ###################################################### # check for COPYRIGHT_YEAR variable diff -r 222321136c48 -r 88ad9f715193 patches/freetypeversion.patch --- a/patches/freetypeversion.patch Tue Sep 03 20:08:26 2013 +0100 +++ b/patches/freetypeversion.patch Wed Sep 04 00:13:08 2013 +0100 @@ -1,11 +1,12 @@ ---- openjdk/jdk/make/common/shared/Platform.gmk.orig -+++ openjdk/jdk/make/common/shared/Platform.gmk -@@ -94,7 +94,7 @@ - REQUIRED_BOOT_VER = 1.5 - - # If we are using freetype, this is the required version --REQUIRED_FREETYPE_VERSION=2.3.0 -+REQUIRED_FREETYPE_VERSION=2.2.1 - - # - # Prune out all known SCM (Source Code Management) directories +diff -Nru openjdk.orig/jdk/make/common/shared/Defs-versions.gmk openjdk/jdk/make/common/shared/Defs-versions.gmk +--- openjdk.orig/jdk/make/common/shared/Defs-versions.gmk 2013-09-02 15:32:33.490472903 +0100 ++++ openjdk/jdk/make/common/shared/Defs-versions.gmk 2013-09-02 15:33:00.154887749 +0100 +@@ -176,7 +176,7 @@ + # Generic + REQUIRED_ANT_VER = 1.6.3 + REQUIRED_BOOT_VER = 1.5 +-REQUIRED_FREETYPE_VERSION = 2.3.0 ++REQUIRED_FREETYPE_VERSION = 2.2.1 + REQUIRED_MAKE_VER = 3.78 + REQUIRED_UNZIP_VER = 5.12 + REQUIRED_ZIP_VER = 2.2 diff -r 222321136c48 -r 88ad9f715193 patches/openjdk/6563752-ss12_support.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6563752-ss12_support.patch Wed Sep 04 00:13:08 2013 +0100 @@ -0,0 +1,173 @@ +# HG changeset patch +# User ohair +# Date 1212597498 25200 +# Wed Jun 04 09:38:18 2008 -0700 +# Node ID f9467b4496dc3731d73dbc5a42fd84cc9b1faaab +# Parent b6601ba7f6dfe0d93e40b2891c581c30fdd92289 +6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles) +Summary: Changes to support building with SS12. +Reviewed-by: tbell + +diff --git a/make/common/Defs-solaris.gmk b/make/common/Defs-solaris.gmk +--- openjdk/jdk/make/common/Defs-solaris.gmk ++++ openjdk/jdk/make/common/Defs-solaris.gmk +@@ -197,7 +197,6 @@ + + # Lint Flags: + # -Xa ANSI C plus K&R, favor ANSI rules +-# -Xarch=XXX Same as 'cc -xarch=XXX' + # -fd report on old style func defs + # -errchk=structarg report on 64bit struct args by value + # -errchk=longptr64 report on 64bit to 32bit issues (ignores casts) +@@ -206,6 +205,7 @@ + # -x suppress unused externs + # -u suppress extern func/vars used/defined + # -errfmt=simple use one line errors with position info ++# $(LINT_XARCH_OPTION) See Compiler-sun.gwk + + LINTFLAGS_COMMON = -Xa + LINTFLAGS_COMMON += -fd +@@ -224,42 +224,12 @@ + # Tell the compilers to never generate globalized names, all the time. + CFLAGS_COMMON += -W0,-noglobal + +-# Arch specific settings (determines type of .o files and instruction set) +-ifeq ($(ARCH_FAMILY), sparc) +- ifdef VIS_NEEDED +- XARCH_VALUE/32=v8plusa +- XARCH_VALUE/64=v9a +- else +- # Someday this should change to improve optimization on UltraSPARC +- # and abandon the old v8-only machines like the SPARCstation 10. +- # Indications with Mustang is that alacrity runs do not show a +- # big improvement using v8plus over v8, but other benchmarks might. +- XARCH_VALUE/32=v8 +- XARCH_VALUE/64=v9 +- endif +-endif +-ifeq ($(ARCH_FAMILY), i586) +- XARCH_VALUE/64=amd64 +- XARCH_VALUE/32= +-endif +- +-# Arch value based on current data model being built +-XARCH_VALUE=$(XARCH_VALUE/$(ARCH_DATA_MODEL)) +-ifneq ($(XARCH_VALUE), ) +- # The actual compiler -xarch options to use +- XARCH_OPTION/32 = -xarch=$(XARCH_VALUE/32) +- XARCH_OPTION/64 = -xarch=$(XARCH_VALUE/64) +- XARCH_OPTION = $(XARCH_OPTION/$(ARCH_DATA_MODEL)) +-endif +- +-# If we have a specific -xarch value to use, add it +-ifdef XARCH_OPTION +- CFLAGS_COMMON += $(XARCH_OPTION) +- CXXFLAGS_COMMON += $(XARCH_OPTION) +- ASFLAGS_COMMON += $(XARCH_OPTION) +- EXTRA_LIBS += $(XARCH_OPTION) +- LINTFLAGS_COMMON += -Xarch=$(XARCH_VALUE) +-endif ++# If we have a specific arch value to use, add it ++CFLAGS_COMMON += $(XARCH_OPTION) ++CXXFLAGS_COMMON += $(XARCH_OPTION) ++ASFLAGS_COMMON += $(AS_XARCH_OPTION) ++EXTRA_LIBS += $(XARCH_OPTION) ++LINTFLAGS_COMMON += $(LINT_XARCH_OPTION) + + # + # uncomment the following to build with PERTURBALOT set +diff --git a/make/common/shared/Compiler-sun.gmk b/make/common/shared/Compiler-sun.gmk +--- openjdk/jdk/make/common/shared/Compiler-sun.gmk ++++ openjdk/jdk/make/common/shared/Compiler-sun.gmk +@@ -31,6 +31,9 @@ + + # Sun Studio Compiler settings specific to Solaris + ifeq ($(PLATFORM), solaris) ++ # FIXUP: Change to SS12 when validated ++ #COMPILER_VERSION=SS12 ++ #REQUIRED_CC_VER=5.9 + COMPILER_VERSION=SS11 + REQUIRED_CC_VER=5.8 + CC = $(COMPILER_PATH)cc +@@ -51,8 +54,8 @@ + # Sun Studio Compiler settings specific to Linux + ifeq ($(PLATFORM), linux) + # This has not been tested +- COMPILER_VERSION=SS11 +- REQUIRED_CC_VER=5.8 ++ COMPILER_VERSION=SS12 ++ REQUIRED_CC_VER=5.9 + CC = $(COMPILER_PATH)cc + CPP = $(COMPILER_PATH)cc -E + CXX = $(COMPILER_PATH)CC +@@ -74,3 +77,58 @@ + _CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1) + CC_VER :=$(call GetVersion,"$(_CC_VER)") + ++# Arch specific settings (determines type of .o files and instruction set) ++# Starting in SS12 (5.9), the arch options changed. ++# The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options. ++# Note: We need to have both 32 and 64 values at all times for awt Makefiles. ++# ++XARCH_OPTION_OLD/32 = ++XARCH_OPTION_OLD/64 = ++XARCH_OPTION_NEW/32 = -m32 ++XARCH_OPTION_NEW/64 = -m64 ++# Lint options are slightly different ++LINT_XARCH_OPTION_OLD/32 = ++LINT_XARCH_OPTION_OLD/64 = ++LINT_XARCH_OPTION_NEW/32 = -m32 ++LINT_XARCH_OPTION_NEW/64 = -m64 ++ifeq ($(ARCH_FAMILY), sparc) ++ ifdef VIS_NEEDED ++ XARCH_OPTION_OLD/32 += -xarch=v8plusa ++ XARCH_OPTION_OLD/64 += -xarch=v9a ++ XARCH_OPTION_NEW/32 += -xarch=sparcvis ++ XARCH_OPTION_NEW/64 += -xarch=sparcvis ++ else ++ # Someday this should change to improve optimization on UltraSPARC ++ # and abandon v8, even change to sparcvis or sparcvis2, this ++ # abandons machines like the SPARCstation 10. ++ # Indications with jdk6 is that alacrity runs do not show a ++ # big improvement using v8plus over v8, but other benchmarks might. ++ XARCH_OPTION_OLD/32 += -xarch=v8 ++ XARCH_OPTION_OLD/64 += -xarch=v9 ++ # Note that this new option (SS12+) effectively means v8plus ++ XARCH_OPTION_NEW/32 += -xarch=sparc ++ XARCH_OPTION_NEW/64 += -xarch=sparc ++ endif ++ LINT_XARCH_OPTION_OLD/64 += -Xarch=v9 ++endif ++ifeq ($(ARCH_FAMILY), i586) ++ XARCH_OPTION_OLD/64 += -xarch=amd64 ++ LINT_XARCH_OPTION_OLD/64 += -Xarch=amd64 ++endif ++# Pick the options we want based on the compiler being used. ++ifeq ($(shell expr $(CC_VER) \>= 5.9), 1) ++ XARCH_OPTION/32 = $(XARCH_OPTION_NEW/32) ++ XARCH_OPTION/64 = $(XARCH_OPTION_NEW/64) ++ LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_NEW/32) ++ LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_NEW/64) ++else ++ XARCH_OPTION/32 = $(XARCH_OPTION_OLD/32) ++ XARCH_OPTION/64 = $(XARCH_OPTION_OLD/64) ++ LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_OLD/32) ++ LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_OLD/64) ++endif ++XARCH_OPTION = $(XARCH_OPTION/$(ARCH_DATA_MODEL)) ++LINT_XARCH_OPTION = $(LINT_XARCH_OPTION/$(ARCH_DATA_MODEL)) ++# The /usr/ccs/bin/as assembler always wants the older SS11 (5.8) options. ++AS_XARCH_OPTION = $(XARCH_OPTION_OLD/$(ARCH_DATA_MODEL)) ++ +diff --git a/make/jdk_generic_profile.sh b/make/jdk_generic_profile.sh +--- openjdk/jdk/make/jdk_generic_profile.sh ++++ openjdk/jdk/make/jdk_generic_profile.sh +@@ -119,7 +119,7 @@ + # System place where JDK installed images are stored? + jdk_instances=/usr/jdk/instances + +- # Get the SS11 compilers (and latest patches for them too) ++ # Get the Sun Studio compilers (and latest patches for them too) + if [ "${ALT_COMPILER_PATH}" = "" ] ; then + ALT_COMPILER_PATH=/opt/SUNWspro/bin + export ALT_COMPILER_PATH diff -r 222321136c48 -r 88ad9f715193 patches/openjdk/6729772-opt_cleanup.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6729772-opt_cleanup.patch Wed Sep 04 00:13:08 2013 +0100 @@ -0,0 +1,847 @@ +# HG changeset patch +# User ohair +# Date 1217472057 25200 +# Wed Jul 30 19:40:57 2008 -0700 +# Node ID b374f6174534071d4305a91fbc2b913e7bc64396 +# Parent b7474b739d13bacd9972f88ac91f6350b7b0be12 +6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 +Reviewed-by: tbell + +diff --git a/make/common/Defs-linux.gmk b/make/common/Defs-linux.gmk +--- openjdk/jdk/make/common/Defs-linux.gmk ++++ openjdk/jdk/make/common/Defs-linux.gmk +@@ -86,18 +86,22 @@ + # + # Default optimization + # +-CC_HIGHEST_OPT = -O3 +-CC_HIGHER_OPT = -O3 +-CC_LOWER_OPT = -O2 +-CC_NO_OPT = + +-ifeq ($(PRODUCT), java) +- _OPT = $(CC_HIGHER_OPT) +-else +- _OPT = $(CC_LOWER_OPT) +- CPPFLAGS_DBG += -DLOGGING ++ifndef OPTIMIZATION_LEVEL ++ ifeq ($(PRODUCT), java) ++ OPTIMIZATION_LEVEL = HIGHER ++ else ++ OPTIMIZATION_LEVEL = LOWER ++ endif + endif + ++CC_OPT/NONE = ++CC_OPT/LOWER = -O2 ++CC_OPT/HIGHER = -O3 ++CC_OPT/HIGHEST = -O3 ++ ++CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL)) ++ + # For all platforms, do not omit the frame pointer register usage. + # We need this frame pointer to make it easy to walk the stacks. + # This should be the default on X86, but ia64 and amd64 may not have this +@@ -112,18 +116,6 @@ + CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) + LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) + +-# Add in platform specific optimizations for all opt levels +-CC_HIGHEST_OPT += $(_OPT_$(ARCH)) +-CC_HIGHER_OPT += $(_OPT_$(ARCH)) +-CC_LOWER_OPT += $(_OPT_$(ARCH)) +- +-# If NO_OPTIMIZATIONS is defined in the environment, turn all optimzations off +-ifdef NO_OPTIMIZATIONS +- CC_HIGHEST_OPT = $(CC_NO_OPT) +- CC_HIGHER_OPT = $(CC_NO_OPT) +- CC_LOWER_OPT = $(CC_NO_OPT) +-endif +- + # + # Selection of warning messages + # +@@ -163,19 +155,19 @@ + endif + endif + +-CFLAGS_OPT = $(POPT) ++CFLAGS_OPT = $(CC_OPT) + CFLAGS_DBG = $(DEBUG_FLAG) + CFLAGS_COMMON += $(CFLAGS_REQUIRED) + + CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS) +-CXXFLAGS_OPT = $(POPT) ++CXXFLAGS_OPT = $(CC_OPT) + CXXFLAGS_DBG = $(DEBUG_FLAG) + CXXFLAGS_COMMON += $(CFLAGS_REQUIRED) + + # FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java + ifeq ($(FASTDEBUG), true) +- CFLAGS_DBG += $(CC_LOWER_OPT) +- CXXFLAGS_DBG += $(CC_LOWER_OPT) ++ CFLAGS_DBG += $(CC_OPT/LOWER) ++ CXXFLAGS_DBG += $(CC_OPT/LOWER) + endif + + CPPFLAGS_COMMON = -D$(ARCH) -DARCH='"$(ARCH)"' -DLINUX $(VERSION_DEFINES) \ +@@ -187,6 +179,9 @@ + + CPPFLAGS_OPT = + CPPFLAGS_DBG = -DDEBUG ++ifneq ($(PRODUCT), java) ++ CPPFLAGS_DBG += -DLOGGING ++endif + + ifdef LIBRARY + # Libraries need to locate other libraries at runtime, and you can tell +diff --git a/make/common/Defs-solaris.gmk b/make/common/Defs-solaris.gmk +--- openjdk/jdk/make/common/Defs-solaris.gmk ++++ openjdk/jdk/make/common/Defs-solaris.gmk +@@ -83,15 +83,16 @@ + # + # Java default optimization (-x04/-O2) etc. Applies to the VM. + # +-ifeq ($(PRODUCT), java) +- _OPT = $(CC_HIGHER_OPT) +-else +- _OPT = $(CC_LOWER_OPT) +- CPPFLAGS_DBG += -DLOGGING -DDBINFO ++ifndef OPTIMIZATION_LEVEL ++ ifeq ($(PRODUCT), java) ++ OPTIMIZATION_LEVEL = HIGHER ++ else ++ OPTIMIZATION_LEVEL = LOWER ++ endif + endif + + # +-# If -Xa is in CFLAGS_COMMON it will end up ahead of $(POPT) for the ++# If -Xa is in CFLAGS_COMMON it will end up ahead of $(CC_OPT) for the + # optimized build, and that ordering of the flags completely freaks + # out cc. Hence, -Xa is instead in each CFLAGS variant. + # +@@ -116,8 +117,8 @@ + # + # Debug flag for C and C++ compiler + # +-CFLAGS_DEBUG_OPTION=-g +-CXXFLAGS_DEBUG_OPTION=-g ++CFLAGS_DEBUG_OPTION = -g $(CC_OPT/NONE) ++CXXFLAGS_DEBUG_OPTION = -g $(CXX_OPT/NONE) + + # Turn off -g if we are doing tcov build + ifdef TCOV_BUILD +@@ -135,15 +136,14 @@ + # Performance/size of files should be about the same, maybe smaller. + # + ifeq ($(FASTDEBUG), true) +- CC_FASTDEBUG_OPT = $(CC_LOWER_OPT) +- CFLAGS_DEBUG_OPTION = -g $(CC_FASTDEBUG_OPT) +- CXXFLAGS_DEBUG_OPTION = -g0 $(CC_FASTDEBUG_OPT) ++ CFLAGS_DEBUG_OPTION = -g $(CC_OPT/LOWER) ++ CXXFLAGS_DEBUG_OPTION = -g0 $(CXX_OPT/LOWER) + endif + + CFLAGS_COMMON = -v -mt -L$(OBJDIR) -xc99=%none + CFLAGS_COMMON += -xCC + CFLAGS_COMMON += -errshort=tags +-CFLAGS_OPT = $(POPT) ++CFLAGS_OPT = $(CC_OPT) + CFLAGS_DBG = $(CFLAGS_DEBUG_OPTION) + CFLAGS_COMMON += -Xa $(CFLAGS_REQUIRED) + +@@ -171,7 +171,7 @@ + CXXFLAGS_COMMON += -errwarn=%all + endif + +-CXXFLAGS_OPT = $(POPT) ++CXXFLAGS_OPT = $(CXX_OPT) + CXXFLAGS_DBG = $(CXXFLAGS_DEBUG_OPTION) + CXXFLAGS_COMMON += $(CFLAGS_REQUIRED) + +@@ -241,6 +241,10 @@ + CPPFLAGS_OPT = + CPPFLAGS_DBG = -DDEBUG + ++ifneq ($(PRODUCT), java) ++ CPPFLAGS_DBG += -DLOGGING -DDBINFO ++endif ++ + ifeq ($(ARCH_FAMILY), i586) + # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the + # Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN +@@ -384,63 +388,151 @@ + # Different "levels" of optimization. + # + ifeq ($(CC_VERSION),gcc) +- CC_HIGHEST_OPT = -O3 +- CC_HIGHER_OPT = -O3 +- CC_LOWER_OPT = -O2 ++ ++ CC_OPT/NONE = ++ CC_OPT/LOWER = -O2 ++ CC_OPT/HIGHER = -O3 ++ CC_OPT/HIGHEST = -O3 ++ ++ CXX_OPT/NONE = ++ CXX_OPT/LOWER = -O2 ++ CXX_OPT/HIGHER = -O3 ++ CXX_OPT/HIGHEST = -O3 ++ + CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer + CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer ++ + # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) + # (See Rules.gmk) May need to wait for gcc 5? + AUTOMATIC_PCH_OPTION = ++ + else ++ + # Highest could be -xO5, but indications are that -xO5 should be reserved + # for a per-file use, on sources with known performance impacts. +- CC_HIGHEST_OPT = -xO4 +- CC_HIGHER_OPT = -xO4 +- CC_LOWER_OPT = -xO2 ++ OPT_LEVEL/LOWER = 2 ++ OPT_LEVEL/HIGHER = 4 ++ OPT_LEVEL/HIGHEST = 4 ++ ++ CC_OPT/NONE = ++ CC_OPT/LOWER = $(OPT_LEVEL/LOWER:%=-xO%) ++ CC_OPT/HIGHER = $(OPT_LEVEL/HIGHER:%=-xO%) ++ CC_OPT/HIGHEST = $(OPT_LEVEL/HIGHEST:%=-xO%) ++ ++ CXX_OPT/NONE = ++ CXX_OPT/LOWER = $(OPT_LEVEL/LOWER:%=-xO%) ++ CXX_OPT/HIGHER = $(OPT_LEVEL/HIGHER:%=-xO%) ++ CXX_OPT/HIGHEST = $(OPT_LEVEL/HIGHEST:%=-xO%) ++ ++ # We need stack frames at all times ++ USE_XKEEPFRAME_OPTION = false ++ ifeq ($(USE_XKEEPFRAME_OPTION),true) ++ ++ # Unknown spelling on this option at this time (Maybe in SS13?) ++ CC_XKEEPFRAME_OPTIONS = -xkeepframe ++ CXX_XKEEPFRAME_OPTIONS = -xkeepframe ++ ++ else ++ ++ # On X86, make sure tail call optimization is off ++ # The z and y are the tail call optimizations. ++ ifeq ($(ARCH_FAMILY), i586) ++ ifeq ($(shell $(EXPR) $(CC_VER) \> 5.8), 1) ++ # Somehow, tail call optimization is creeping in. ++ # Make sure it is off. ++ # WARNING: These may cause compiler warnings about duplicate -O options ++ CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz ++ CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz ++ endif ++ endif ++ ++ # On i586 we need to tell the code generator to ALWAYS use a ++ # frame pointer. ++ ifeq ($(ARCH_FAMILY), i586) ++ # Note that in 5.7, this is done with -xregs=no%frameptr ++ ifeq ($(CC_VER), 5.5) ++ # It's not exactly clear when this optimization kicks in, the ++ # current assumption is -xO4 or greater and for C++ with ++ # the -features=no%except option and -xO4 and greater. ++ # Bottom line is, we ALWAYS want a frame pointer! ++ CC_XKEEPFRAME_OPTIONS += -Wu,-Z~B ++ CXX_XKEEPFRAME_OPTIONS += -Qoption ube -Z~B ++ endif ++ ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1) ++ # Do NOT use frame pointer register as a general purpose opt register ++ CC_OPT/NONE += -xregs=no%frameptr ++ CXX_OPT/NONE += -xregs=no%frameptr ++ CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr ++ CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr ++ endif ++ endif ++ ++ # Optimizer for sparc needs to be told not to do certain things ++ # related to frames or save instructions. ++ ifeq ($(ARCH_FAMILY), sparc) ++ # Do not use save instructions instead of add instructions ++ # This was an optimization starting in SC5.0 that made it hard for us to ++ # find the "save" instruction (which got turned into an "add") ++ CC_XKEEPFRAME_OPTIONS += -Wc,-Qrm-s ++ CXX_XKEEPFRAME_OPTIONS += -Qoption cg -Qrm-s ++ # Don't allow tail call code optimization. Started in SC5.0. ++ # We don't like code of this form: ++ # save ++ # ++ # call foo ++ # restore ++ # because we can't tell if the method will have a stack frame ++ # and register windows or not. ++ CC_XKEEPFRAME_OPTIONS += -Wc,-Qiselect-T0 ++ CXX_XKEEPFRAME_OPTIONS += -Qoption cg -Qiselect-T0 ++ endif ++ ++ endif ++ ++ # Extra options used with HIGHEST + # +- # WARNING: Use of _OPT=$(CC_HIGHEST_OPT) in your Makefile needs to be ++ # WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be + # done with care, there are some assumptions below that need to + # be understood about the use of pointers, and IEEE behavior. + # + # Use non-standard floating point mode (not IEEE 754) +- CC_HIGHEST_OPT += -fns ++ CC_HIGHEST_EXTRAS += -fns + # Do some simplification of floating point arithmetic (not IEEE 754) +- CC_HIGHEST_OPT += -fsimple ++ CC_HIGHEST_EXTRAS += -fsimple + # Use single precision floating point with 'float' +- CC_HIGHEST_OPT += -fsingle ++ CC_HIGHEST_EXTRAS += -fsingle + # Assume memory references via basic pointer types do not alias + # (Source with excessing pointer casting and data access with mixed + # pointer types are not recommended) +- CC_HIGHEST_OPT += -xalias_level=basic ++ CC_HIGHEST_EXTRAS += -xalias_level=basic + # Use intrinsic or inline versions for math/std functions + # (If you expect perfect errno behavior, do not use this) +- CC_HIGHEST_OPT += -xbuiltin=%all ++ CC_HIGHEST_EXTRAS += -xbuiltin=%all + # Loop data dependency optimizations (need -xO3 or higher) +- CC_HIGHEST_OPT += -xdepend ++ CC_HIGHEST_EXTRAS += -xdepend + # Pointer parameters to functions do not overlap + # (Similar to -xalias_level=basic usage, but less obvious sometimes. + # If you pass in multiple pointers to the same data, do not use this) +- CC_HIGHEST_OPT += -xrestrict ++ CC_HIGHEST_EXTRAS += -xrestrict + # Inline some library routines + # (If you expect perfect errno behavior, do not use this) +- CC_HIGHEST_OPT += -xlibmil ++ CC_HIGHEST_EXTRAS += -xlibmil + # Use optimized math routines + # (If you expect perfect errno behavior, do not use this) + # Can cause undefined external on Solaris 8 X86 on __sincos, removing for now +- # CC_HIGHEST_OPT += -xlibmopt ++ # CC_HIGHEST_EXTRAS += -xlibmopt + ifeq ($(ARCH_FAMILY), sparc) + # Assume at most 8byte alignment, raise SIGBUS on error + ### Presents an ABI issue with customer JNI libs? +- ####CC_HIGHEST_OPT += -xmemalign=8s ++ ####CC_HIGHEST_EXTRAS += -xmemalign=8s + # Automatic prefetch instructions, explicit prefetch macros +- CC_HIGHEST_OPT += -xprefetch=auto,explicit ++ CC_HIGHEST_EXTRAS += -xprefetch=auto,explicit + # Pick ultra as the chip to optimize to +- CC_HIGHEST_OPT += -xchip=ultra ++ CC_HIGHEST_EXTRAS += -xchip=ultra + endif + ifeq ($(ARCH), i586) + # Pick pentium as the chip to optimize to +- CC_HIGHEST_OPT += -xchip=pentium ++ CC_HIGHEST_EXTRAS += -xchip=pentium + endif + ifdef LIBRARY + # The Solaris CBE (Common Build Environment) requires that the use +@@ -450,9 +542,6 @@ + CFLAGS_REQUIRED_sparcv9 += -xregs=no%appl + endif + ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1) +- # Do NOT use the frame pointer register as a general purpose opt register +- CFLAGS_REQUIRED_i586 += -xregs=no%frameptr +- CFLAGS_REQUIRED_amd64 += -xregs=no%frameptr + # We MUST allow data alignment of 4 for sparc V8 (32bit) + # Presents an ABI issue with customer JNI libs? We must be able to + # to handle 4byte aligned objects? (rare occurance, but possible?) +@@ -466,77 +555,28 @@ + # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) + # (See Rules.gmk) The SS11 -xpch=auto* options appear to be broken. + AUTOMATIC_PCH_OPTION = ++ ++ # Add in keep frame options ++ CC_OPT/LOWER += $(CC_XKEEPFRAME_OPTIONS) ++ CC_OPT/HIGHER += $(CC_XKEEPFRAME_OPTIONS) ++ CC_OPT/HIGHEST += $(CC_XKEEPFRAME_OPTIONS) ++ CXX_OPT/LOWER += $(CXX_XKEEPFRAME_OPTIONS) ++ CXX_OPT/HIGHER += $(CXX_XKEEPFRAME_OPTIONS) ++ CXX_OPT/HIGHEST += $(CXX_XKEEPFRAME_OPTIONS) ++ ++ # Add in highest optimization settings ++ CC_OPT/HIGHEST += $(CC_HIGHEST_EXTRAS) ++ CXX_OPT/HIGHEST += $(CC_HIGHEST_EXTRAS) ++ + endif +-CC_NO_OPT = + +-# If NO_OPTIMIZATIONS is defined in the environment, turn all optimzations off +-ifdef NO_OPTIMIZATIONS +- CC_HIGHEST_OPT = $(CC_NO_OPT) +- CC_HIGHER_OPT = $(CC_NO_OPT) +- CC_LOWER_OPT = $(CC_NO_OPT) +-endif ++# Default optimization settings based on level. ++CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL)) ++CXX_OPT = $(CXX_OPT/$(OPTIMIZATION_LEVEL)) + + # Flags required all the time + CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) + +-# Add processor specific options for optimizations +-CC_HIGHEST_OPT += $(_OPT_$(ARCH)) +-CC_HIGHER_OPT += $(_OPT_$(ARCH)) +-CC_LOWER_OPT += $(_OPT_$(ARCH)) +- +-# Secret compiler optimization options that should be in the above macros +-# but since they differ in format from C to C++, are added into the C or +-# C++ specific macros for compiler flags. +-# +-# On i586 we need to tell the code generator to ALWAYS use a +-# frame pointer. +-ifeq ($(ARCH_FAMILY), i586) +- # Note that in 5.7, this is done with -xregs=no%frameptr +- ifeq ($(CC_VER), 5.5) +- # It's not exactly clear when this optimization kicks in, the +- # current assumption is -xO4 or greater and for C++ with +- # the -features=no%except option and -xO4 and greater. +- # Bottom line is, we ALWAYS want a frame pointer! +- CXXFLAGS_OPT += -Qoption ube -Z~B +- CFLAGS_OPT += -Wu,-Z~B +- ifeq ($(FASTDEBUG), true) +- CXXFLAGS_DBG += -Qoption ube -Z~B +- CFLAGS_DBG += -Wu,-Z~B +- endif +- endif +-endif +-# +-# Optimizer for sparc needs to be told not to do certain things +-# related to frames or save instructions. +-ifeq ($(ARCH_FAMILY), sparc) +- # NOTE: Someday the compilers will provide a high-level option for this. +- # Use save instructions instead of add instructions +- # This was an optimization starting in SC5.0 that made it hard for us to +- # find the "save" instruction (which got turned into an "add") +- CXXFLAGS_OPT += -Qoption cg -Qrm-s +- CFLAGS_OPT += -Wc,-Qrm-s +- ifeq ($(FASTDEBUG), true) +- CXXFLAGS_DBG += -Qoption cg -Qrm-s +- CFLAGS_DBG += -Wc,-Qrm-s +- endif +- # +- # NOTE: Someday the compilers will provide a high-level option for this. +- # Don't allow tail call code optimization. Started in SC5.0. +- # We don't like code of this form: +- # save +- # +- # call foo +- # restore +- # because we can't tell if the method will have a stack frame +- # and register windows or not. +- CXXFLAGS_OPT += -Qoption cg -Qiselect-T0 +- CFLAGS_OPT += -Wc,-Qiselect-T0 +- ifeq ($(FASTDEBUG), true) +- CXXFLAGS_DBG += -Qoption cg -Qiselect-T0 +- CFLAGS_DBG += -Wc,-Qiselect-T0 +- endif +-endif +- + # + # Path and option to link against the VM, if you have to. Note that + # there are libraries that link against only -ljava, but they do get +diff --git a/make/common/Defs-windows.gmk b/make/common/Defs-windows.gmk +--- openjdk/jdk/make/common/Defs-windows.gmk ++++ openjdk/jdk/make/common/Defs-windows.gmk +@@ -84,6 +84,15 @@ + # + # Default optimization + # ++ ++ifndef OPTIMIZATION_LEVEL ++ ifeq ($(PRODUCT), java) ++ OPTIMIZATION_LEVEL = HIGHER ++ else ++ OPTIMIZATION_LEVEL = LOWER ++ endif ++endif ++ + ifeq ($(CC_VERSION),msvc) + # Visual Studio .NET 2003 or VS2003 compiler option definitions: + # -O1 Favors reduced size over speed (-Og -Os -Oy -Ob2 -Gs -GF -Gy) +@@ -113,21 +122,28 @@ + # NOTE: With VC6, -Ox, -O1, and -O2 used -Ob1, not -Ob2. + # NOTE: With VC6, -O1 and -O2 used -Gf, not -GF. + # ++ ++ CC_OPT/NONE = -Od ++ CC_OPT/LOWER = -O2 ++ CC_OPT/HIGHER = -O3 ++ CC_OPT/HIGHEST = -O3 ++ + ifeq ($(COMPILER_VERSION), VC6) + # VC6 (6.2) msvc compiler (the way Tiger and early Mustang were built) + # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) + AUTOMATIC_PCH_OPTION = + GX_OPTION = -GX + ifeq ($(ARCH_DATA_MODEL), 32) +- CC_HIGHEST_OPT = -Ox -Gy -Os -GB +- CC_HIGHER_OPT = -Ox -Gy -Os -GB +- CC_LOWER_OPT = -Ox -Gy -Os -GB ++ CC_OPT/HIGHEST = -Ox -Gy -Os -GB ++ CC_OPT/HIGHER = -Ox -Gy -Os -GB ++ CC_OPT/LOWER = -Ox -Gy -Os -GB + else +- CC_HIGHEST_OPT = -Ox -Gy -Op +- CC_HIGHER_OPT = -Ox -Gy -Op +- CC_LOWER_OPT = -Ox -Gy -Op ++ CC_OPT/HIGHEST = -Ox -Gy -Op ++ CC_OPT/HIGHER = -Ox -Gy -Op ++ CC_OPT/LOWER = -Ox -Gy -Op + endif + endif ++ + ifeq ($(COMPILER_VERSION), VS2003) + # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) + AUTOMATIC_PCH_OPTION = -YX +@@ -135,53 +151,45 @@ + GX_OPTION = -GX + ifeq ($(ARCH_DATA_MODEL), 32) + # Lowered opt level to try and reduce footprint, dll size especially. +- # Was: CC_HIGHEST_OPT = -O2 -G6 +- # Was: CC_HIGHER_OPT = -O2 +- CC_HIGHEST_OPT = -O2 +- CC_HIGHER_OPT = -O1 +- CC_LOWER_OPT = -O1 ++ # Was: CC_OPT/HIGHEST = -O2 -G6 ++ # Was: CC_OPT/HIGHER = -O2 ++ CC_OPT/HIGHEST = -O2 ++ CC_OPT/HIGHER = -O1 ++ CC_OPT/LOWER = -O1 + else +- CC_HIGHEST_OPT = -O2 -Op +- CC_HIGHER_OPT = -O2 -Op +- CC_LOWER_OPT = -O1 -Op ++ CC_OPT/HIGHEST = -O2 -Op ++ CC_OPT/HIGHER = -O2 -Op ++ CC_OPT/LOWER = -O1 -Op + endif + endif ++ + ifeq ($(COMPILER_VERSION), VS2005) + # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) + AUTOMATIC_PCH_OPTION = + # VS2005 compiler, only with Platform SDK right now? + GX_OPTION = -EHsc + ifeq ($(ARCH_DATA_MODEL), 32) +- CC_HIGHEST_OPT = -O2 +- CC_HIGHER_OPT = -O1 +- CC_LOWER_OPT = -O1 ++ CC_OPT/HIGHEST = -O2 ++ CC_OPT/HIGHER = -O1 ++ CC_OPT/LOWER = -O1 + else +- CC_HIGHEST_OPT = -O2 +- CC_HIGHER_OPT = -O1 +- CC_LOWER_OPT = -O1 ++ CC_OPT/HIGHEST = -O2 ++ CC_OPT/HIGHER = -O1 ++ CC_OPT/LOWER = -O1 + endif + endif +- CC_NO_OPT = -Od ++ + else # CC_VERSION ++ + # GCC not supported, but left for historical reference... +- CC_HIGHEST_OPT = -O3 +- CC_HIGHER_OPT = -O2 +- CC_LOWER_OPT = -O2 +- CC_NO_OPT = ++ CC_OPT/NONE = ++ CC_OPT/LOWER = -O2 ++ CC_OPT/HIGHER = -O2 ++ CC_OPT/HIGHEST = -O3 ++ + endif + +-# If NO_OPTIMIZATIONS is defined in the environment, turn all optimzations off +-ifdef NO_OPTIMIZATIONS +- CC_HIGHEST_OPT = $(CC_NO_OPT) +- CC_HIGHER_OPT = $(CC_NO_OPT) +- CC_LOWER_OPT = $(CC_NO_OPT) +-endif +- +-ifeq ($(PRODUCT), java) +- _OPT = $(CC_HIGHER_OPT) +-else +- _OPT = $(CC_LOWER_OPT) +-endif ++CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL)) + + # Select the runtime support library carefully, need to be consistent + # +@@ -233,7 +241,7 @@ + # Use static link for the C++ runtime (so msvcp71.dll not needed) + # + CFLAGS_COMMON += -Zi -nologo +- CFLAGS_OPT = $(POPT) ++ CFLAGS_OPT = $(CC_OPT) + CFLAGS_DBG = -Od $(MS_RUNTIME_DEBUG_OPTION) + + # Starting from VS2005 the wchar_t is handled as a built-in C/C++ data type +diff --git a/make/common/Defs.gmk b/make/common/Defs.gmk +--- openjdk/jdk/make/common/Defs.gmk ++++ openjdk/jdk/make/common/Defs.gmk +@@ -483,11 +483,6 @@ + include $(JDK_MAKE_SHARED_DIR)/Defs-java.gmk + + # +-# Set opt level to ALT_OPT if set otherwise _OPT +-# +-POPT = $(_OPT$(ALT_OPT))$(ALT_OPT) +- +-# + # Convenient macros + # + +diff --git a/make/common/Library.gmk b/make/common/Library.gmk +--- openjdk/jdk/make/common/Library.gmk ++++ openjdk/jdk/make/common/Library.gmk +@@ -238,7 +238,7 @@ + # + $(ACTUAL_LIBRARY):: $(COMPILE_FILES_o) $(FILES_m) $(FILES_reorder) + @$(prep-target) +- @$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), _OPT=$(_OPT)" ++ @$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), OPTIMIZATION_LEVEL=$(OPTIMIZATION_LEVEL)" + @$(ECHO) "Rebuilding $@ because of $?" + ifeq ($(LIBRARY), fdlibm) + $(AR) -r $@ $(FILES_o) +diff --git a/make/common/shared/Defs.gmk b/make/common/shared/Defs.gmk +--- openjdk/jdk/make/common/shared/Defs.gmk ++++ openjdk/jdk/make/common/shared/Defs.gmk +@@ -277,9 +277,6 @@ + PROMOTED_BUILD_BASEDIR = $(PROMOTED_RE_AREA)/$(PROMOTED_BUILD_LATEST) + PROMOTED_BUILD_BINARIES = $(PROMOTED_BUILD_BASEDIR)/binaries + +-# OPT: Changes what the optimizations settings (in _OPT) +-POPT = $(_OPT$(ALT_OPT))$(ALT_OPT) +- + # PARALLEL_COMPILE_JOBS: is the number of compiles done in parallel. + # If the user sets ALT_PARALLEL_COMPILE_JOBS, then COMPILE_APPROACH is set + # to parallel. +diff --git a/make/java/fdlibm/Makefile b/make/java/fdlibm/Makefile +--- openjdk/jdk/make/java/fdlibm/Makefile ++++ openjdk/jdk/make/java/fdlibm/Makefile +@@ -33,6 +33,7 @@ + BUILDDIR = ../.. + LIBRARY = fdlibm + PRODUCT = java ++ + include $(BUILDDIR)/common/Defs.gmk + + # +@@ -40,10 +41,10 @@ + # + FDLIBM_SRC = $(SHARE_SRC)/native/java/lang/fdlibm + +-# windows compiler flags ++# Windows: compiler flags + ifeq ($(PLATFORM),windows) + # Turn all optimizations off +- _OPT = $(CC_NO_OPT) ++ OPTIMIZATION_LEVEL = NONE + OTHER_CFLAGS = + CPPFLAGS_DBG += -DLOGGING + # Files built here do not compile with warning level 3 if warnings are fatal +@@ -51,6 +52,15 @@ + endif + + # ++# Linux: Disable optimization to get correctly reproducible ++# floating-point results. ++# ++ifeq ($(PLATFORM),linux) ++ # Turn all optimizations off ++ OPTIMIZATION_LEVEL = NONE ++endif ++ ++# + # Include path. + # + OTHER_INCLUDES = -I$(FDLIBM_SRC)/include +@@ -71,15 +81,6 @@ + include $(BUILDDIR)/common/Library.gmk + + # +-# Disable optimization to get correctly reproducible +-# floating-point results. +-# +-ifeq ($(PLATFORM),linux) +- # Turn all optimizations off +- _OPT = $(CC_NO_OPT) +-endif +- +-# + # Find fdlibm source files. + # + vpath %.c +diff --git a/make/java/java_hprof_demo/Makefile b/make/java/java_hprof_demo/Makefile +--- openjdk/jdk/make/java/java_hprof_demo/Makefile ++++ openjdk/jdk/make/java/java_hprof_demo/Makefile +@@ -28,14 +28,14 @@ + PRODUCT = sun + LIBRARY_OUTPUT = hprof_jvmti + ++# Use highest optimization ++OPTIMIZATION_LEVEL = HIGHEST ++ + # Configure the CFLAGS for this library. +- + FILES_m = mapfile-vers + + include $(BUILDDIR)/common/Defs.gmk + +-_OPT=$(CC_HIGHEST_OPT) +- + SRCDIR=$(SHARE_SRC)/demo/jvmti/hprof + PSRCDIR=$(PLATFORM_SRC)/demo/jvmti/hprof + +diff --git a/make/sun/awt/Makefile b/make/sun/awt/Makefile +--- openjdk/jdk/make/sun/awt/Makefile ++++ openjdk/jdk/make/sun/awt/Makefile +@@ -28,18 +28,14 @@ + LIBRARY = awt + PRODUCT = sun + +-# + # Tell Defs.gmk that VIS is needed +-# + VIS_NEEDED=true + ++# Use highest optimization level ++OPTMIZATION_LEVEL = HIGHEST ++ + include $(BUILDDIR)/common/Defs.gmk + +-# +-# Use highest optimization level +-# +-_OPT = $(CC_HIGHEST_OPT) +- + OTHER_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES + + # +diff --git a/make/sun/font/Makefile b/make/sun/font/Makefile +--- openjdk/jdk/make/sun/font/Makefile ++++ openjdk/jdk/make/sun/font/Makefile +@@ -35,6 +35,9 @@ + # Indicate we want the C++ compiler to do the linking. + CPLUSPLUSLIBRARY=true + ++# Use higher optimization level ++OPTIMIZATION_LEVEL = HIGHER ++ + include $(BUILDDIR)/common/Defs.gmk + + # +@@ -48,11 +51,6 @@ + # Files + # + +-# +-# Use higher optimization level +-# +-_OPT = $(CC_HIGHER_OPT) +- + include FILES_c.gmk + + AUTO_FILES_JAVA_DIRS = sun/font +diff --git a/make/sun/font/t2k/Makefile b/make/sun/font/t2k/Makefile +--- openjdk/jdk/make/sun/font/t2k/Makefile ++++ openjdk/jdk/make/sun/font/t2k/Makefile +@@ -41,14 +41,12 @@ + # for a few ones with native methods) so shouldn't clobber them. + DONT_CLOBBER_CLASSES=true + ++# Use higher optimization level ++OPTIMIZATION_LEVEL = HIGHER ++ + include $(BUILDDIR)/common/Defs.gmk + + # +-# Use higher optimization level +-# +-_OPT = $(CC_HIGHER_OPT) +- +-# + # Files + # + include FILES_c.gmk +diff --git a/make/sun/image/generic/Makefile b/make/sun/image/generic/Makefile +--- openjdk/jdk/make/sun/image/generic/Makefile ++++ openjdk/jdk/make/sun/image/generic/Makefile +@@ -31,14 +31,13 @@ + PACKAGE = sun.awt.medialib + LIBRARY = mlib_image + PRODUCT = sun ++ ++# Use highest level of optimization on this library ++OPTIMIZATION_LEVEL = HIGHEST ++ + include $(BUILDDIR)/common/Defs.gmk + + # +-# Use highest level of optimization on this library +-# +-_OPT = $(CC_HIGHEST_OPT) +- +-# + # Use mapfile + # + FILES_m = mapfile-vers +diff --git a/make/sun/image/vis/Makefile b/make/sun/image/vis/Makefile +--- openjdk/jdk/make/sun/image/vis/Makefile ++++ openjdk/jdk/make/sun/image/vis/Makefile +@@ -31,19 +31,15 @@ + LIBRARY = mlib_image_v + PRODUCT = sun + +-# + # Tell Defs.gmk we need VIS instructions +-# + VIS_NEEDED=true + ++# Select highest level of optimization for this library ++OPTIMIZATION_LEVEL = HIGHEST ++ + include $(BUILDDIR)/common/Defs.gmk + + # +-# Select highest level of optimization for this library +-# +-_OPT = $(CC_HIGHEST_OPT) +- +-# + # Use generic mapfile + # + FILES_m = ../generic/mapfile-vers +diff --git a/make/sun/jpeg/Makefile b/make/sun/jpeg/Makefile +--- openjdk/jdk/make/sun/jpeg/Makefile ++++ openjdk/jdk/make/sun/jpeg/Makefile +@@ -27,14 +27,13 @@ + PACKAGE = sun.awt + LIBRARY = jpeg + PRODUCT = sun ++ ++# Use highest optimization level ++OPTIMIZATION_LEVEL = HIGHEST ++ + include $(BUILDDIR)/common/Defs.gmk + + # +-# Use highest optimization level +-# +-_OPT = $(CC_HIGHEST_OPT) +- +-# + # Files + # + include FILES_c.gmk diff -r 222321136c48 -r 88ad9f715193 patches/openjdk/6799141-split_out_versions.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6799141-split_out_versions.patch Wed Sep 04 00:13:08 2013 +0100 @@ -0,0 +1,915 @@ +diff -Nru openjdk.orig/jdk/make/common/Defs-linux.gmk openjdk/jdk/make/common/Defs-linux.gmk +--- openjdk.orig/jdk/make/common/Defs-linux.gmk 2013-09-03 20:14:17.072980562 +0100 ++++ openjdk/jdk/make/common/Defs-linux.gmk 2013-09-03 20:56:10.816086376 +0100 +@@ -135,6 +135,14 @@ + LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) + endif + ++# If this is a --hash-style=gnu system, use --hash-style=both ++# The gnu .hash section won't work on some Linux systems like SuSE 10. ++_HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | $(GREP) -- '--hash-style=gnu') ++ifneq ($(_HAS_HASH_STYLE_GNU),) ++ LDFLAGS_HASH_STYLE = -Wl,--hash-style=both ++endif ++LDFLAGS_COMMON += $(LDFLAGS_HASH_STYLE) ++ + # + # Selection of warning messages + # +diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk openjdk/jdk/make/common/shared/Compiler-gcc.gmk +--- openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk 2013-09-03 20:14:15.576957292 +0100 ++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk 2013-09-03 20:56:10.816086376 +0100 +@@ -143,18 +143,10 @@ + CC = $(COMPILER_PATH)gcc + CPP = $(COMPILER_PATH)gcc -E + CXX = $(COMPILER_PATH)g++ +- REQUIRED_CC_VER = 3.2 + + # Option used to create a shared library + SHARED_LIBRARY_FLAG = -G +- # But gcc is still needed no matter what on 32bit +- ifeq ($(ARCH_DATA_MODEL), 32) +- REQUIRED_GCC_VER = 2.95 +- GCC =$(GCC_COMPILER_PATH)gcc +- _GCC_VER :=$(shell $(GCC) -dumpversion 2>&1 ) +- GCC_VER :=$(call GetVersion,"$(_GCC_VER)") +- endif +- ++ + endif + + # Get gcc version +diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-msvc.gmk openjdk/jdk/make/common/shared/Compiler-msvc.gmk +--- openjdk.orig/jdk/make/common/shared/Compiler-msvc.gmk 2011-11-14 22:11:39.000000000 +0000 ++++ openjdk/jdk/make/common/shared/Compiler-msvc.gmk 2013-09-03 20:56:10.816086376 +0100 +@@ -41,8 +41,6 @@ + # Fill in unknown values + COMPILER_NAME=Unknown MSVC Compiler + COMPILER_VERSION= +- REQUIRED_CC_VER= +- REQUIRED_LINK_VER= + + # unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake + NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo +@@ -54,8 +52,6 @@ + CC_TYPE := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$5}') + CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) + REQUIRED_CCTYPE = Optimizing +- REQUIRED_CC_VER = 13.10.3077 +- REQUIRED_LINK_VER = 7.10.3077 + ifeq ($(CC_MAJORVER), 12) + # This should be: CC_VER=12.00.8168 LINK_VER=6.00.8447 + COMPILER_NAME=Visual C++ 6.0 Professional + VC6-SP 3 +@@ -91,14 +87,6 @@ + CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) + CC_MINORVER :=$(call MinorVersion,$(CC_VER)) + CC_MICROVER :=$(call MicroVersion,$(CC_VER)) +- ifeq ($(ARCH), ia64) +- REQUIRED_CC_VER = 13.00.9337.7 +- REQUIRED_LINK_VER = 7.00.9337.7 +- endif +- ifeq ($(ARCH), amd64) +- REQUIRED_CC_VER = 14.00.40310.41 +- REQUIRED_LINK_VER = 8.00.40310.39 +- endif + ifeq ($(CC_MAJORVER), 13) + ifeq ($(ARCH), ia64) + # This should be: CC_VER=13.00.9337.7 LINK_VER=7.00.9337.7 +diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk openjdk/jdk/make/common/shared/Compiler-sun.gmk +--- openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk 2013-09-03 20:14:17.060980376 +0100 ++++ openjdk/jdk/make/common/shared/Compiler-sun.gmk 2013-09-03 20:56:10.816086376 +0100 +@@ -33,29 +33,20 @@ + ifeq ($(PLATFORM), solaris) + # FIXUP: Change to SS12 when validated + #COMPILER_VERSION=SS12 +- #REQUIRED_CC_VER=5.9 + COMPILER_VERSION=SS11 +- REQUIRED_CC_VER=5.8 + CC = $(COMPILER_PATH)cc + CPP = $(COMPILER_PATH)cc -E + CXX = $(COMPILER_PATH)CC + LINT = $(COMPILER_PATH)lint + # Option used to create a shared library + SHARED_LIBRARY_FLAG = -G +- # But gcc is still needed no matter what on 32bit +- ifeq ($(ARCH_DATA_MODEL), 32) +- REQUIRED_GCC_VER = 2.95 +- GCC =$(GCC_COMPILER_PATH)gcc +- _GCC_VER :=$(shell $(GCC) -dumpversion 2>&1 ) +- GCC_VER :=$(call GetVersion,"$(_GCC_VER)") +- endif ++ GCC =$(GCC_COMPILER_PATH)gcc + endif + + # Sun Studio Compiler settings specific to Linux + ifeq ($(PLATFORM), linux) + # This has not been tested +- COMPILER_VERSION=SS12 +- REQUIRED_CC_VER=5.9 ++ COMPILER_VERSION=SS11 + CC = $(COMPILER_PATH)cc + CPP = $(COMPILER_PATH)cc -E + CXX = $(COMPILER_PATH)CC +diff -Nru openjdk.orig/jdk/make/common/shared/Defs.gmk openjdk/jdk/make/common/shared/Defs.gmk +--- openjdk.orig/jdk/make/common/shared/Defs.gmk 2013-09-03 20:14:17.072980562 +0100 ++++ openjdk/jdk/make/common/shared/Defs.gmk 2013-09-03 20:56:10.816086376 +0100 +@@ -113,9 +113,9 @@ + fi) + endef + +-# Given a line of text, get the major.minor version number from it ++# Given a line of text, get the version number from it + define GetVersion +-$(shell echo $1 | sed -e 's@[^1-9]*\([1-9][0-9]*\.[0-9][0-9]*\).*@\1@' ) ++$(shell echo $1 | sed -e 's@[^0-9]*\([0-9][0-9]*\.[0-9][.0-9]*\).*@\1@' ) + endef + + # Given a major.minor.micro version, return the major, minor, or micro number +@@ -130,26 +130,26 @@ + endef + + # Macro that returns missing, same, newer, or older $1=version $2=required +-# (currently does not check the micro number) + define CheckVersions + $(shell \ + if [ "$1" = "" -o "$2" = "" ]; then \ + echo missing; \ ++ elif [ "$1" = "$2" ]; then \ ++ echo same; \ ++ elif [ $(call MajorVersion,$1) -lt $(call MajorVersion,$2) ] ; then \ ++ echo older; \ ++ elif [ $(call MajorVersion,$1) -gt $(call MajorVersion,$2) ] ; then \ ++ echo newer; \ ++ elif [ $(call MinorVersion,$1) -lt $(call MinorVersion,$2) ]; then \ ++ echo older; \ ++ elif [ $(call MinorVersion,$1) -gt $(call MinorVersion,$2) ]; then \ ++ echo newer; \ ++ elif [ $(call MicroVersion,$1) -lt $(call MicroVersion,$2) ]; then \ ++ echo older; \ ++ elif [ $(call MicroVersion,$1) -gt $(call MicroVersion,$2) ]; then \ ++ echo newer; \ + else \ +- if [ "$1" = "$2" ]; then \ +- echo same; \ +- else \ +- if [ $(call MajorVersion,$1) -lt $(call MajorVersion,$2) ] ; then \ +- echo older; \ +- else \ +- if [ $(call MajorVersion,$1) -eq $(call MajorVersion,$2) -a \ +- $(call MinorVersion,$1) -lt $(call MinorVersion,$2) ]; then \ +- echo older; \ +- else \ +- echo newer; \ +- fi; \ +- fi; \ +- fi; \ ++ echo same; \ + fi) + endef + +@@ -499,3 +499,6 @@ + # Get shared compiler settings + include $(JDK_MAKE_SHARED_DIR)/Compiler.gmk + ++# Get the REQUIRED versions ++include $(JDK_MAKE_SHARED_DIR)/Defs-versions.gmk ++ +diff -Nru openjdk.orig/jdk/make/common/shared/Defs-versions.gmk openjdk/jdk/make/common/shared/Defs-versions.gmk +--- openjdk.orig/jdk/make/common/shared/Defs-versions.gmk 1970-01-01 01:00:00.000000000 +0100 ++++ openjdk/jdk/make/common/shared/Defs-versions.gmk 2013-09-03 20:56:10.816086376 +0100 +@@ -0,0 +1,183 @@ ++# ++# Copyright 2009 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 ++# under the terms of the GNU General Public License version 2 only, as ++# published by the Free Software Foundation. Sun designates this ++# particular file as subject to the "Classpath" exception as provided ++# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++# CA 95054 USA or visit www.sun.com if you need additional information or ++# have any questions. ++# ++ ++# ++# WARNING: This file is shared with other workspaces. ++# ++ ++# This file needs these set: CC_VERSION, PLATFORM, ARCH_FAMILY, and ARCH_DATA_MODEL. ++ ++########################################################################## ++# ++# List of JDK official minimum, expected, or required versions: ++# ++# REQUIRED_ALSA_VERSION ++# Linux only: The ALSA sound library version expected. ++# ++# REQUIRED_ANT_VER ++# The minimum 'ant' version. ++# ++# REQUIRED_BOOT_VER ++# The minimum boot jdk version. ++# ++# REQUIRED_CC_VER ++# The primary C compiler version expected. ++# ++# REQUIRED_CYGWIN_VER ++# Windows only: If CYGWIN is used, the minimum CYGWIN version. ++# ++# REQUIRED_DXSDK_VER ++# Windows only: The version of DirectX SDK expected. ++# ++# REQUIRED_FREE_SPACE ++# The minimum disk space needed as determined by running 'du -sk' on a fully ++# built workspace. ++# ++# REQUIRED_FREETYPE_VERSION ++# If we are using freetype, the freetype version expected. ++# ++# REQUIRED_GCC_VER ++# Solaris and Linux only. The required version of gcc/g++ for the plugin. ++# ++# REQUIRED_LINK_VER ++# Windows only: The version of link.exe expected. ++# ++# REQUIRED_MAKE_VER ++# The minimum version of GNU make. ++# ++# REQUIRED_MKS_VER ++# Windows only: If MKS used instead of CYGWIN, the minimum version of MKS. ++# ++# REQUIRED_OS_VARIANT_NAME ++# The OS variation name required. ++# Solaris: Solaris or OpenSolaris ++# Windows: Windows2000, WindowsXP, Windows2003, etc. ++# Linux: Fedora, RedHat, SuSE, Ubuntu, etc. ++# ++# REQUIRED_OS_VARIANT_VERSION ++# The version number associated with the above OS variant name. ++# Solaris: output of uname -r ++# Windows: 5.0 for Windows2000, 5.1 for WindowsXP, 5.2 for Windows2003, etc. ++# Linux: number for the variant, e.g. 9 for Fedora 9 ++# ++# REQUIRED_OS_VERSION ++# The formal OS version number. ++# Solaris & Windows: same as REQUIRED_OS_VARIANT_VERSION ++# Linux: the kernel version, or output of uname -r ++# ++# REQUIRED_UNZIP_VER ++# The minimum version of unzip. ++# ++# REQUIRED_ZIP_VER ++# The minimum version of unzip. ++# ++########### ++# ++# Differences in the build platform from these versions may trigger warnings ++# messages during the sanity checking when building the JDK. ++# ++# When building the OpenJDK most of these required or expected versions are ++# ignored or allowed to vary widely to accomodate the many build situations ++# of the OpenJDK. ++# ++########################################################################## ++ ++# Solaris specific ++ifeq ($(PLATFORM), solaris) ++ REQUIRED_OS_VERSION = 5.10 ++ REQUIRED_OS_VARIANT_NAME = Solaris ++ REQUIRED_OS_VARIANT_VERSION = $(REQUIRED_OS_VERSION) ++ ifeq ($(ARCH_FAMILY), sparc) ++ REQUIRED_FREE_SPACE = 1300000 ++ else ++ REQUIRED_FREE_SPACE = 1040000 ++ endif ++ ifeq ($(CC_VERSION),sun) ++ REQUIRED_CC_VER = 5.8 ++ endif ++ ifeq ($(CC_VERSION),gcc) ++ REQUIRED_CC_VER = 3.4.3 ++ endif ++ REQUIRED_GCC_VER = 2.95.2 ++endif ++ ++# Linux specific ++ifeq ($(PLATFORM), linux) ++ REQUIRED_OS_VERSION = 2.6 ++ REQUIRED_OS_VARIANT_NAME = Fedora ++ REQUIRED_OS_VARIANT_VERSION = 9 ++ REQUIRED_FREE_SPACE = 1460000 ++ REQUIRED_ALSA_VERSION = 0.9.1 ++ REQUIRED_GCC_VER = 2.95 ++ ifeq ($(CC_VERSION),gcc) ++ REQUIRED_CC_VER = 3.2 ++ endif ++ ifeq ($(CC_VERSION),sun) ++ REQUIRED_CC_VER = 5.8 ++ endif ++endif ++ ++# Windows specific ++ifeq ($(PLATFORM), windows) ++ ifeq ($(ARCH_DATA_MODEL),64) ++ REQUIRED_OS_VERSION = 5.2 ++ REQUIRED_OS_VARIANT_NAME = Windows2003 ++ else ++ REQUIRED_OS_VERSION = 5.1 ++ REQUIRED_OS_VARIANT_NAME = WindowsXP ++ endif ++ REQUIRED_OS_VARIANT_VERSION = $(REQUIRED_OS_VERSION) ++ REQUIRED_CYGWIN_VER = 4.0 ++ REQUIRED_MKS_VER = 6.1 ++ REQUIRED_FREE_SPACE = 500000 ++ REQUIRED_DXSDK_VER = 0x0900 ++ ifeq ($(CC_VERSION),msvc) ++ ifeq ($(ARCH_DATA_MODEL), 32) ++ REQUIRED_CC_VER = 13.10.3077 ++ REQUIRED_LINK_VER = 7.10.3077 ++ else ++ ifeq ($(ARCH), ia64) ++ REQUIRED_CC_VER = 13.00.9337.7 ++ REQUIRED_LINK_VER = 7.00.9337.7 ++ endif ++ ifeq ($(ARCH), amd64) ++ REQUIRED_CC_VER = 14.00.40310.41 ++ REQUIRED_LINK_VER = 8.00.40310.39 ++ endif ++ endif ++ endif ++ ifeq ($(CC_VERSION),gcc) ++ REQUIRED_CC_VER = 3.4.3 ++ endif ++endif ++ ++# Generic ++REQUIRED_ANT_VER = 1.6.3 ++REQUIRED_BOOT_VER = 1.5 ++REQUIRED_FREETYPE_VERSION = 2.3.0 ++REQUIRED_MAKE_VER = 3.78 ++REQUIRED_UNZIP_VER = 5.12 ++REQUIRED_ZIP_VER = 2.2 ++ +diff -Nru openjdk.orig/jdk/make/common/shared/Defs-windows.gmk openjdk/jdk/make/common/shared/Defs-windows.gmk +--- openjdk.orig/jdk/make/common/shared/Defs-windows.gmk 2011-11-14 22:11:40.000000000 +0000 ++++ openjdk/jdk/make/common/shared/Defs-windows.gmk 2013-09-03 20:56:10.816086376 +0100 +@@ -136,10 +136,7 @@ + UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH) + + # Get version of MKS or CYGWIN +-ifdef USING_CYGWIN +-_CYGWIN_VER :=$(shell $(UNAME)) +-CYGWIN_VER :=$(call GetVersion,$(_CYGWIN_VER)) +-else # MKS ++ifndef USING_CYGWIN + _MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@') + MKS_VER :=$(call GetVersion,$(_MKS_VER)) + # At this point, we can re-define FullPath to use DOSNAME_CMD +diff -Nru openjdk.orig/jdk/make/common/shared/Platform.gmk openjdk/jdk/make/common/shared/Platform.gmk +--- openjdk.orig/jdk/make/common/shared/Platform.gmk 2013-09-03 20:14:12.140903842 +0100 ++++ openjdk/jdk/make/common/shared/Platform.gmk 2013-09-03 20:57:10.433013915 +0100 +@@ -51,8 +51,6 @@ + # USER login name of user (minus blanks) + # PLATFORM windows, solaris, or linux + # VARIANT OPT or DBG, OPT is the default +-# OS_NAME solaris, linux, or nt +-# OS_VERSION specific version of os, 5.10, 2.4.9-e.3, etc. + # TEMP_DISK /tmp or C:/temp + # ARCH_DATA_MODEL 32 or 64 + # ARCH sparc, sparcv9, i586, amd64, or ia64 +@@ -71,28 +69,11 @@ + # ISA_DIR solaris only: /sparcv9 or /amd64 + # LIBARCH32 solaris only: sparc or i386 + # LIBARCH64 solaris only: sparcv9 or amd64 +-# REQUIRED_WINDOWS_VERSION windows only: specific version of windows + # USING_CYGWIN windows only: true or false +-# WINDOWS_NT_VERSION_STRING windows only: long version name +-# REQUIRED_OS_VERSION required OS version, e.g. 5.10, 2.4 + # ISHIELD_TEMP_MIN windows only: minimum disk space in temp area +-# REQUIRED_ZIP_VER required version of zip +-# REQUIRED_UNZIP_VER required version of unzip +-# REQUIRED_DXSDK_VER windows only: required version of DirectX +-# LINUX_VERSION_INFO linux only: location of linux release file +-# REQUIRED_LINUX_VER linux only: required version of linux +-# REQUIRED_LINUX_FULLVER linux only: required full version of linux +-# REQUIRED_ALSA_VERSION linux only: required version of ALSA +-# REQUIRED_FREETYPE_VERSION openjdk only: required version of freetype + + SYSTEM_UNAME := $(shell uname) + +-# Normal boot jdk is previous release, but a hard requirement is a 1.6 boot +-REQUIRED_BOOT_VER = 1.6 +- +-# 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 +@@ -111,8 +92,6 @@ + # Platform settings specific to Solaris + ifeq ($(SYSTEM_UNAME), SunOS) + PLATFORM = solaris +- OS_NAME = solaris +- OS_VERSION := $(shell uname -r) + # Solaris sparc build can be either 32-bit or 64-bit. + # Default to 32, but allow explicit setting to 32 or 64. + ifndef ARCH_DATA_MODEL +@@ -164,12 +143,6 @@ + endif + # Suffix for file bundles used in previous release + BUNDLE_FILE_SUFFIX=.tar +- # Required Solaris version +- ifeq ($(ARCH), amd64) +- REQUIRED_OS_VERSION = 5.10 +- else +- REQUIRED_OS_VERSION = 5.8 +- endif + # How much RAM does this machine have: + MB_OF_MEMORY=$(shell /etc/prtconf | fgrep 'Memory size:' | expand | cut -d' ' -f3) + endif +@@ -177,8 +150,6 @@ + # Platform settings specific to Linux + ifeq ($(SYSTEM_UNAME), Linux) + PLATFORM = linux +- OS_NAME = linux +- OS_VERSION := $(shell uname -r) + # Arch and OS name/version + ifndef CROSS_COMPILATION + mach := $(shell uname -m) +@@ -283,27 +254,6 @@ + + # Suffix for file bundles used in previous release + BUNDLE_FILE_SUFFIX=.tar.gz +- LINUX_VERSION_INFO = /etc/redhat-release +- ifeq ($(ARCH_DATA_MODEL), 32) +- REQUIRED_LINUX_VER = Advanced Server +- REQUIRED_LINUX_FULLVER = Advanced Server release 2.1AS +- REQUIRED_OS_VERSION = 2.4.9-e.3 +- else +- ifeq ($(ARCH), amd64) +- LINUX_VERSION_INFO = /etc/SuSE-release +- REQUIRED_LINUX_VER = 8.1 +- REQUIRED_LINUX_FULLVER = $(REQUIRED_LINUX_VER) SLSE AMD64 +- REQUIRED_OS_VERSION = 2.4.19-SMP +- else +- REQUIRED_LINUX_VER = Advanced Server +- REQUIRED_LINUX_FULLVER = Advanced Server release 2.1AS 64 bit +- REQUIRED_OS_VERSION = 2.4.19-SMP +- endif +- endif +- ifneq ($(ARCH), ia64) +- # ALSA 0.9.1 and above +- 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) + endif +@@ -311,23 +261,15 @@ + # Windows with and without CYGWIN will be slightly different + ifeq ($(SYSTEM_UNAME), Windows_NT) + PLATFORM = windows +- OS_VERSION := $(shell uname -r) +- WINDOWS_NT_VERSION_STRING=Windows_NT +- REQUIRED_MKS_VER=6.1 + endif + ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME))) + PLATFORM = windows +- OS_VERSION := 5 + USING_CYGWIN = true + export USING_CYGWIN +- WINDOWS_NT_VERSION_STRING=CYGWIN_NT +- REQUIRED_CYGWIN_VER=4.0 + endif + + # Platform settings specific to Windows + ifeq ($(PLATFORM), windows) +- OS_NAME = nt +- REQUIRED_OS_VERSION=5 + # Windows builds default to the appropriate for the underlaying + # architecture. + # Temporary disk area +@@ -350,7 +292,6 @@ + # If the user wants to perform a cross compile build then they must + # - set ARCH_DATA_MODEL=64 and either + # + set ARCH to ia64 or amd64, or +- REQUIRED_WINDOWS_VERSION=Server 2003 Enterprise x64 Edition + ifeq ($(word 1, $(PROCESSOR_IDENTIFIER)), AMD64) + ARCH=amd64 + else +@@ -360,8 +301,6 @@ + # Value of Java os.arch property + ARCHPROP=$(LIBARCH) + else +- REQUIRED_WINDOWS_VERSION=2000 or Unknown +- #REQUIRED_WINDOWS_VERSION=XP Professional + # LIBARCH is used to preserve the jre/lib/i386 directory name for 32-bit intel + ARCH=i586 + LIBARCH=i386 +@@ -407,7 +346,6 @@ + # ISHIELD_TEMP_MIN is the difference of an empty C:\TEMP vs. one after a + # bundles build on windows. + ISHIELD_TEMP_MIN=250000 +- REQUIRED_DXSDK_VER = 0x0900 + # How much RAM does this machine have: + MB_OF_MEMORY := $(shell \ + if [ -f "C:/cygwin/bin/free.exe" ] ; then \ +@@ -450,10 +388,6 @@ + MIN_VM_MEMORY := 128 + endif + +-REQUIRED_ZIP_VER = 2.2 +-REQUIRED_UNZIP_VER = 5.12 +-REQUIRED_MAKE_VER = 3.78 +- + # Unix type settings (same for all unix platforms) + ifneq ($(PLATFORM), windows) + # Temporary disk area +diff -Nru openjdk.orig/jdk/make/common/shared/Sanity.gmk openjdk/jdk/make/common/shared/Sanity.gmk +--- openjdk.orig/jdk/make/common/shared/Sanity.gmk 2013-09-03 20:14:11.920900419 +0100 ++++ openjdk/jdk/make/common/shared/Sanity.gmk 2013-09-03 20:56:10.816086376 +0100 +@@ -38,54 +38,100 @@ + SANITY_FILES = $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE) + + # How to say "The Release Engineering people use this" +-THE_OFFICIAL_USES=The official $(PLATFORM) builds use ++THE_OFFICIAL_USES=The official builds on $(PLATFORM) use + + # How to say "You are using:" + YOU_ARE_USING=You appear to be using + ++# Error message ++define SanityError ++$(ECHO) "ERROR: $1\n" >> $(ERROR_FILE) ++endef ++ ++# Warning message ++define SanityWarning ++$(ECHO) "WARNING: $1\n" >> $(WARNING_FILE) ++endef ++ ++# Official version error message: name version required_version ++define OfficialErrorMessage ++$(call SanityError,\ ++$(THE_OFFICIAL_USES) $1 $3. Your $1 $(if $2,undefined,$2) will not work.) ++endef ++ ++# Official version warning message: name version required_version ++define OfficialWarningMessage ++$(call SanityWarning,\ ++$(THE_OFFICIAL_USES) $1 $3. $(YOU_ARE_USING) $1 $2.) ++endef ++ ++ + # Settings and rules to validate the JDK build environment. + + ifeq ($(PLATFORM), solaris) ++ # What kind of system we are using (Variations are Solaris and OpenSolaris) ++ OS_VERSION := $(shell uname -r) ++ OS_VARIANT_NAME := $(strip $(shell head -1 /etc/release | awk '{print $$1;}') ) ++ OS_VARIANT_VERSION := $(OS_VERSION) + REQ_PATCH_LIST = $(JDK_TOPDIR)/make/PatchList.solaris + ifeq ($(ARCH_FAMILY), sparc) + PATCH_POSITION = $$4 + else + PATCH_POSITION = $$6 + endif ++ ifndef OPENJDK ++ _GCC_VER :=$(shell $(GCC) -dumpversion 2>&1 ) ++ GCC_VER :=$(call GetVersion,"$(_GCC_VER)") ++ endif + endif + + ifeq ($(PLATFORM), linux) +- ifeq ($(ARCH), amd64) +- LINUX_VERSION := $(shell \ +- if [ -r "$(LINUX_VERSION_INFO)" ] ; then \ +- $(CAT) $(LINUX_VERSION_INFO) | $(TAIL) -1 | $(NAWK) '{ print $$3; }';\ +- else \ +- $(ECHO) "Unknown linux"; \ +- fi ) +- else +- LINUX_VERSION := $(shell \ +- if [ -r "$(LINUX_VERSION_INFO)" ] ; then \ +- $(NAWK) '{ print $$4" "$$5; }' $(LINUX_VERSION_INFO) ; \ +- else \ +- $(ECHO) "Unknown linux"; \ +- fi ) +- endif +- ifneq ($(ARCH), ia64) +- # dummy program that outputs ALSA's version (created in target sane-alsa-versioncheck) +- ALSA_VERSION_CHECK = $(TEMPDIR)/alsaversioncheck +- ALSA_VERSION = `if [ -f "$(ALSA_VERSION_CHECK)" ] ; then $(ALSA_VERSION_CHECK) ; fi` +- endif ++ # What kind of system we are using (Variation is the Linux vendor) ++ OS_VERSION := $(shell uname -r) ++ OS_VARIANT_NAME := $(shell \ ++ if [ -f /etc/fedora-release ] ; then \ ++ echo "Fedora"; \ ++ elif [ -f /etc/redhat-release ] ; then \ ++ echo "RedHat"; \ ++ elif [ -f /etc/SuSE-release ] ; then \ ++ echo "SuSE"; \ ++ else \ ++ echo "Unknown"; \ ++ fi) ++ OS_VARIANT_VERSION := $(shell \ ++ if [ "$(OS_VARIANT_NAME)" = "Fedora" ] ; then \ ++ $(CAT) /etc/fedora-release | $(HEAD) -1 | $(NAWK) '{ print $$3; }' ; \ ++ fi) ++ ALSA_INCLUDE=/usr/include/alsa/version.h ++ ALSA_LIBRARY=/usr/lib/libasound.so ++ _ALSA_VERSION := $(shell $(EGREP) SND_LIB_VERSION_STR $(ALSA_INCLUDE) | \ ++ $(SED) -e 's@.*\"\(.*\)\".*@\1@' ) ++ ALSA_VERSION := $(call GetVersion,$(_ALSA_VERSION)) + endif + + ifeq ($(PLATFORM), windows) +- # Localized systeminfo has localized labels, but not localized values. +- _WINDOWS_VERSION := \ +- $(shell systeminfo 2> $(DEV_NULL) | grep 'Microsoft' | grep 'Windows' | \ +- cut -d':' -f2) +- ifeq ($(_WINDOWS_VERSION),) +- _WINDOWS_VERSION := Windows 2000 or Unknown (no systeminfo utility) ++ # Windows 2000 is 5.0, Windows XP is 5.1, Windows 2003 is 5.2 ++ # Assume 5.0 (Windows 2000) if systeminfo does not help ++ WINDOWS_MAPPING-5.0 := Windows2000 ++ WINDOWS_MAPPING-5.1 := WindowsXP ++ WINDOWS_MAPPING-5.2 := Windows2003 ++ # What kind of system we are using (Variation is the common name) ++ _OS_VERSION := \ ++ $(shell systeminfo 2> $(DEV_NULL) | \ ++ egrep '^OS Version:' | \ ++ awk '{print $$3;}' ) ++ ifeq ($(_OS_VERSION),) ++ OS_VERSION = 5.0 ++ else ++ OS_VERSION = $(_OS_VERSION) ++ endif ++ OS_VARIANT_NAME := $(WINDOWS_MAPPING-$(OS_VERSION)) ++ OS_VARIANT_VERSION := $(OS_VERSION) ++ ifdef USING_CYGWIN ++ # CYGWIN version ++ _CYGWIN_VER := $(SYSTEM_UNAME) ++ CYGWIN_VER :=$(call GetVersion,$(_CYGWIN_VER)) + endif +- WINDOWS_VERSION := $(strip $(_WINDOWS_VERSION)) + DXSDK_VER := $(shell $(EGREP) DIRECT3D_VERSION $(DXSDK_INCLUDE_PATH)/d3d9.h 2>&1 | \ + $(EGREP) "\#define" | $(NAWK) '{print $$3}') + endif +@@ -100,7 +146,6 @@ + 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)") + +@@ -161,7 +206,6 @@ + sane-compiler \ + sane-link \ + sane-cacerts \ +- sane-alsa-versioncheck \ + sane-alsa-headers \ + sane-ant_version \ + sane-zip_version \ +@@ -233,35 +277,29 @@ + # generate a fatal sanity error, and a warning about the official + # build platform just becomes clutter. + ###################################################### +-OS_CHECK :=$(call CheckVersions,$(OS_VERSION),$(REQUIRED_OS_VERSION)) ++ifndef OPENJDK ++ OS_VERSION_CHECK := \ ++ $(call CheckVersions,$(OS_VERSION),$(REQUIRED_OS_VERSION)) ++ ifeq ($(OS_VARIANT_NAME),$(REQUIRED_OS_VARIANT_NAME)) ++ OS_VARIANT_VERSION_CHECK := \ ++ $(call CheckVersions,$(OS_VARIANT_VERSION),$(REQUIRED_OS_VARIANT_VERSION)) ++ endif ++endif + sane-os_version:: sane-arch_data_model sane-memory_check sane-locale sane-os_patch_level + ifndef OPENJDK +- @if [ "$(OS_CHECK)" = "missing" ]; then \ +- $(ECHO) "ERROR: The $(PLATFORM) OS version is undefined (Try: uname -r). \n" \ +- "" >> $(ERROR_FILE) ; \ +- fi +- @if [ "$(OS_CHECK)" != "same" ]; then \ +- $(ECHO) "WARNING: $(THE_OFFICIAL_USES) OS version $(REQUIRED_OS_VERSION). \n" \ +- " $(YOU_ARE_USING) OS version $(OS_VERSION). \n" \ +- "" >> $(WARNING_FILE) ; \ +- fi +- ifeq ($(PLATFORM), windows) +- @if [ "$(findstring $(REQUIRED_WINDOWS_VERSION),$(WINDOWS_VERSION))" = "" ]; then \ +- $(ECHO) "WARNING: $(YOU_ARE_USING) an unknown version of Windows. \n" \ +- " The required version is $(REQUIRED_WINDOWS_VERSION). \n" \ +- " $(YOU_ARE_USING) $(WINDOWS_VERSION) \n" \ +- "" >> $(WARNING_FILE) ; \ +- fi +- endif # windows +- ifeq ($(PLATFORM), linux) +- @if [ `$(ECHO) "$(LINUX_VERSION)" | $(EGREP) -c '$(REQUIRED_LINUX_VER)'` -ne 1 ]; then \ +- $(ECHO) "WARNING: The build is being done on Linux $(LINUX_VERSION). \n" \ +- " $(THE_OFFICIAL_USES) Linux $(REQUIRED_LINUX_VER), \n" \ +- " specifically Linux $(REQUIRED_LINUX_FULLVER). \n" \ +- " The version found was '$(OS_VERSION)'. \n" \ +- "" >> $(WARNING_FILE) ; \ +- fi +- endif # linux ++ ifneq ($(OS_VARIANT_NAME),$(REQUIRED_OS_VARIANT_NAME)) ++ ifeq ($(OS_VERSION_CHECK),missing) ++ @$(call OfficialErrorMessage,OS version,$(OS_VERSION),$(REQUIRED_OS_VERSION)) ++ endif ++ ifneq ($(OS_VERSION_CHECK),same) ++ @$(call OfficialWarningMessage,OS version,$(OS_VERSION),$(REQUIRED_OS_VERSION)) ++ endif ++ @$(call OfficialWarningMessage,OS variant,$(OS_VARIANT_NAME),$(REQUIRED_OS_VARIANT_NAME)) ++ else ++ ifneq ($(OS_VARIANT_VERSION_CHECK),same) ++ @$(call OfficialWarningMessage,$(OS_VARIANT_NAME) version,$(OS_VARIANT_VERSION),$(REQUIRED_OS_VARIANT_VERSION)) ++ endif ++ endif + endif # OPENJDK + + ifeq ($(PLATFORM), windows) +@@ -302,16 +340,12 @@ + CYGWIN_CHECK :=$(call CheckVersions,$(CYGWIN_VER),$(REQUIRED_CYGWIN_VER)) + sane-cygwin: + ifdef USING_CYGWIN +- @if [ "$(CYGWIN_CHECK)" = "missing" ]; then \ +- $(ECHO) "ERROR: The CYGWIN version is undefined. \n" \ +- " $(THE_OFFICIAL_USES) CYGWIN $(REQUIRED_CYGWIN_VER). \n" \ +- "" >> $(ERROR_FILE) ; \ +- fi +- @if [ "$(CYGWIN_CHECK)" = "older" ]; then \ +- $(ECHO) "ERROR: The build cannot be done on CYGWIN $(CYGWIN_VER). \n" \ +- " Use CYGWIN $(REQUIRED_CYGWIN_VER) or higher. \n" \ +- "" >> $(ERROR_FILE) ; \ +- fi ++ ifeq ($(CYGWIN_CHECK),missing) ++ @$(call OfficialErrorMessage,CYGWIN version,$(CYGWIN_VER),$(REQUIRED_CYGWIN_VER)) ++ endif ++ ifeq ($(CYGWIN_CHECK),older) ++ @$(call OfficialWarningMessage,CYGWIN version,$(CYGWIN_VER),$(REQUIRED_CYGWIN_VER)) ++ endif + endif + endif + +@@ -339,16 +373,12 @@ + MKS_CHECK :=$(call CheckVersions,$(MKS_VER),$(REQUIRED_MKS_VER)) + sane-mks: + ifndef USING_CYGWIN +- @if [ "$(MKS_CHECK)" = "missing" ]; then \ +- $(ECHO) "ERROR: The MKS version is undefined. \n" \ +- " $(THE_OFFICIAL_USES) MKS $(REQUIRED_MKS_VER). \n" \ +- "" >> $(ERROR_FILE) ; \ +- fi +- @if [ "$(MKS_CHECK)" = "older" ]; then \ +- $(ECHO) "ERROR: The build cannot be done on MKS $(MKS_VER). \n" \ +- " Use MKS $(REQUIRED_MKS_VER) or higher. \n" \ +- "" >> $(ERROR_FILE) ; \ +- fi ++ ifeq ($(MKS_CHECK),missing) ++ @$(call OfficialErrorMessage,MKS version,$(MKS_VER),$(REQUIRED_MKS_VER)) ++ endif ++ ifeq ($(MKS_CHECK),older) ++ @$(call OfficialErrorMessage,MKS version,$(MKS_VER),$(REQUIRED_MKS_VER)) ++ endif + endif + endif + +@@ -1296,11 +1326,6 @@ + # Check the compiler version(s) + ###################################################### + CC_CHECK :=$(call CheckVersions,$(CC_VER),$(REQUIRED_CC_VER)) +-ifeq ($(PLATFORM), solaris) +- ifeq ($(ARCH_DATA_MODEL), 32) +- GCC_CHECK :=$(call CheckVersions,$(GCC_VER),$(REQUIRED_GCC_VER)) +- endif +-endif + sane-compiler: sane-link + @if [ "$(CC_CHECK)" = "missing" ]; then \ + $(ECHO) "ERROR: The Compiler version is undefined. \n" \ +@@ -1315,16 +1340,6 @@ + " $(COMPILER_PATH) \n" \ + "" >> $(WARNING_FILE) ; \ + fi +- ifdef GCC_CHECK +- @if [ "$(GCC_CHECK)" != "same" ]; then \ +- $(ECHO) "WARNING: The $(PLATFORM) GCC compiler must be version $(REQUIRED_GCC_VER) \n" \ +- " $(YOU_ARE_USING) compiler version: $(GCC_VER) \n" \ +- " The compiler was obtained from the following location: \n" \ +- " $(GCC_COMPILER_PATH) \n" \ +- " Please change your compiler. \n" \ +- "" >> $(WARNING_FILE) ; \ +- fi +- endif + ifeq ($(PLATFORM), windows) + ifeq ($(ARCH_DATA_MODEL), 64) + ifneq ($(COMPILER_VERSION), VS2005) +@@ -1338,38 +1353,24 @@ + ###################################################### + # Check that ALSA headers and libs are installed and + # that the header has the right version. We only +-# need /usr/include/alsa/*.h and /usr/lib/libasound.so ++# need /usr/include/alsa/version.h and /usr/lib/libasound.so + ###################################################### + +-ifdef ALSA_VERSION_CHECK +-$(ALSA_VERSION_CHECK): $(ALSA_VERSION_CHECK).c +- @$(prep-target) +- @$(CC) -o $@ $< -lasound +- +-$(ALSA_VERSION_CHECK).c: +- @$(prep-target) +- @$(ECHO) "#include \n" \ +- "int main(char** argv, int argc) {\n" \ +- " printf(\"%s\", SND_LIB_VERSION_STR);\n" \ +- " return 0;\n" \ +- "}\n" \ +- > $@ ++ifdef REQUIRED_ALSA_VERSION ++ ALSA_CHECK := $(call CheckVersions,$(ALSA_VERSION),$(REQUIRED_ALSA_VERSION)) + endif +- +-sane-alsa-versioncheck: $(ALSA_VERSION_CHECK) +-sane-alsa-headers: sane-alsa-versioncheck +-ifdef ALSA_VERSION_CHECK +- @if [ -f "$(ALSA_VERSION_CHECK)" ]; then \ +- if [ `$(ALSA_VERSION_CHECK) | $(EGREP) -c '$(REQUIRED_ALSA_VERSION)'` -ne 1 ] ; then \ +- $(ECHO) "ERROR: The ALSA version must be 0.9.1 or higher. \n" \ +- " You have the following ALSA version installed: $(ALSA_VERSION) \n" \ ++sane-alsa-headers: ++ifdef REQUIRED_ALSA_VERSION ++ if [ "$(ALSA_CHECK)" != "same" -a "$(ALSA_CHECK)" != "newer" ] ; then \ ++ $(ECHO) "ERROR: The ALSA version must be $(REQUIRED_ALSA_VERSION) or higher. \n" \ ++ " You have the following ALSA version installed: $${alsa_version) \n" \ + " Please reinstall ALSA (drivers and lib). You can download \n" \ + " the source distribution from http://www.alsa-project.org \n" \ + " or go to http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ + "" >> $(ERROR_FILE) ; \ + fi \ + else \ +- $(ECHO) "ERROR: You seem to not have installed ALSA 0.9.1 or higher. \n" \ ++ $(ECHO) "ERROR: You seem to not have installed ALSA $(REQUIRED_ALSA_VERSION) or higher. \n" \ + " Please install ALSA (drivers and lib). You can download the \n" \ + " source distribution from http://www.alsa-project.org or go to \n" \ + " http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ +@@ -1384,7 +1385,7 @@ + ###################################################### + # dump out the variable settings... + ###################################################### +-sane-settings:: sane-alsa-versioncheck ++sane-settings:: + @$(ECHO) >> $(MESSAGE_FILE) + @$(ECHO) $(ALL_SETTINGS) >> $(MESSAGE_FILE) + @$(ECHO) >> $(MESSAGE_FILE) +@@ -1396,8 +1397,8 @@ + ifeq ($(PLATFORM), solaris) + ifndef OPENJDK + @if [ -r $(GCC_COMPILER_PATH) ]; then \ +- if [ ! "$(GCC_VER)" = 2.95.2 ]; then \ +- $(ECHO) "ERROR: The Solaris GCC compiler version must be 2.95.2. \n" \ ++ if [ ! "$(GCC_VER)" = $(REQUIRED_GCC_VERSION) ]; then \ ++ $(ECHO) "ERROR: The Solaris GCC compiler version must be $(REQUIRED_GCC_VERSION). \n" \ + " You are using the following compiler version: $(GCC_VER) \n" \ + " The compiler was obtained from the following location: \n" \ + " $(GCC_COMPILER_PATH) \n" \ +diff -Nru openjdk.orig/jdk/make/common/shared/Sanity-Settings.gmk openjdk/jdk/make/common/shared/Sanity-Settings.gmk +--- openjdk.orig/jdk/make/common/shared/Sanity-Settings.gmk 2011-11-14 22:11:40.000000000 +0000 ++++ openjdk/jdk/make/common/shared/Sanity-Settings.gmk 2013-09-03 20:56:10.816086376 +0100 +@@ -170,8 +170,6 @@ + ifeq ($(PLATFORM),windows) + ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_ARCHITECTURE) + ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_IDENTIFIER) +- ALL_SETTINGS+=$(call addRequiredSetting,WINDOWS_VERSION) +- ALL_SETTINGS+=$(call addRequiredSetting,WINDOWS_NT_VERSION_STRING) + ifdef USING_CYGWIN + ALL_SETTINGS+=$(call addRequiredSetting,USING_CYGWIN) + ALL_SETTINGS+=$(call addRequiredVersionSetting,CYGWIN_VER) +@@ -182,13 +180,11 @@ + endif + endif + ifeq ($(PLATFORM),linux) +- ALL_SETTINGS+=$(call addRequiredSetting,LINUX_VERSION) +- ifneq ($(ARCH), ia64) +- ALL_SETTINGS+=$(call addRequiredSetting,ALSA_VERSION) +- endif ++ ALL_SETTINGS+=$(call addRequiredSetting,ALSA_VERSION) + endif + ALL_SETTINGS+=$(call addRequiredVersionSetting,OS_VERSION) +-ALL_SETTINGS+=$(call addRequiredSetting,OS_NAME) ++ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_NAME) ++ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_VERSION) + ALL_SETTINGS+=$(call addRequiredSetting,MB_OF_MEMORY) + + diff -r 222321136c48 -r 88ad9f715193 patches/openjdk/6816311-compiler_name.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6816311-compiler_name.patch Wed Sep 04 00:13:08 2013 +0100 @@ -0,0 +1,417 @@ +diff -Nru openjdk.orig/jdk/make/common/Defs-windows.gmk openjdk/jdk/make/common/Defs-windows.gmk +--- openjdk.orig/jdk/make/common/Defs-windows.gmk 2013-09-02 16:35:07.688884584 +0100 ++++ openjdk/jdk/make/common/Defs-windows.gmk 2013-09-02 16:40:22.565779052 +0100 +@@ -78,6 +78,13 @@ + MS_RUNTIME_LIBRARIES += unicows.dll + endif + ++ifeq ($(ARCH_DATA_MODEL), 64) ++ ifeq ($(COMPILER_VERSION), VS2008) ++ MSVCRNN_DLL = msvcr90.dll ++ MSVCPNN_DLL = msvcp90.dll ++ MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL) ++ endif ++endif + + EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH) + +@@ -302,17 +309,13 @@ + # + CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map + +-# +-# Add warnings and extra on 64bit issues +-# +-ifeq ($(ARCH_DATA_MODEL), 64) +- CFLAGS_COMMON += -Wp64 +-endif +-CFLAGS_COMMON += -W$(COMPILER_WARNING_LEVEL) + + # + # Treat compiler warnings as errors, if requested + # ++CFLAGS_COMMON += -W$(COMPILER_WARNING_LEVEL) ++# Turn off security warnings about using the standard C library function strcpy ++CFLAGS_COMMON += -D _CRT_SECURE_NO_DEPRECATE + ifeq ($(COMPILER_WARNINGS_FATAL),true) + CFLAGS_COMMON += -WX + endif +diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk openjdk/jdk/make/common/shared/Compiler-gcc.gmk +--- openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk 2013-09-02 16:35:07.712884957 +0100 ++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk 2013-09-02 16:40:22.565779052 +0100 +@@ -27,8 +27,6 @@ + # GCC Compiler settings + # + +-COMPILER_NAME=GCC +- + ifeq ($(PLATFORM), windows) + + # Settings specific to Windows, pretty stale, hasn't been used +@@ -153,3 +151,7 @@ + _CC_VER :=$(shell $(CC) -dumpversion 2>&1 ) + CC_VER :=$(call GetVersion,"$(_CC_VER)") + ++# Name of compiler ++COMPILER_NAME = GCC$(call MajorVersion,$(CC_VER)) ++COMPILER_VERSION = $(COMPILER_NAME) ++ +diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-msvc.gmk openjdk/jdk/make/common/shared/Compiler-msvc.gmk +--- openjdk.orig/jdk/make/common/shared/Compiler-msvc.gmk 2013-09-02 16:35:07.712884957 +0100 ++++ openjdk/jdk/make/common/shared/Compiler-msvc.gmk 2013-09-02 16:40:22.565779052 +0100 +@@ -110,6 +110,12 @@ + endif + endif + endif ++ ifeq ($(CC_MAJORVER), 15) ++ COMPILER_NAME=Microsoft Windows SDK with Visual Studio 9 (6001.18000.367) ++ COMPILER_VERSION=VS2008 ++ RC = $(MSSDK61)/Bin/X64/rc.exe ++ MT = $(MSSDK61)/Bin/X64/mt.exe ++ endif + # This will cause problems if ALT_COMPILER_PATH is defined to "" + # which is a directive to use the PATH. + REBASE = $(COMPILER_PATH)../REBASE +diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk openjdk/jdk/make/common/shared/Compiler-sun.gmk +--- openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk 2013-09-02 16:35:07.712884957 +0100 ++++ openjdk/jdk/make/common/shared/Compiler-sun.gmk 2013-09-02 16:41:13.914577209 +0100 +@@ -27,13 +27,8 @@ + # Sun Studio Compiler settings + # + +-COMPILER_NAME=Sun Studio +- + # Sun Studio Compiler settings specific to Solaris + ifeq ($(PLATFORM), solaris) +- # FIXUP: Change to SS12 when validated +- #COMPILER_VERSION=SS12 +- COMPILER_VERSION=SS11 + CC = $(COMPILER_PATH)cc + CPP = $(COMPILER_PATH)cc -E + CXX = $(COMPILER_PATH)CC +@@ -46,7 +41,6 @@ + # Sun Studio Compiler settings specific to Linux + ifeq ($(PLATFORM), linux) + # This has not been tested +- COMPILER_VERSION=SS11 + CC = $(COMPILER_PATH)cc + CPP = $(COMPILER_PATH)cc -E + CXX = $(COMPILER_PATH)CC +@@ -68,6 +62,18 @@ + _CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1) + CC_VER :=$(call GetVersion,"$(_CC_VER)") + ++# Name of compilers being used ++COMPILER_VERSION-5.7 = SS10 ++COMPILER_NAME-5.7 = Sun Studio 10 ++COMPILER_VERSION-5.8 = SS11 ++COMPILER_NAME-5.8 = Sun Studio 11 ++COMPILER_VERSION-5.9 = SS12 ++COMPILER_NAME-5.9 = Sun Studio 12 ++COMPILER_VERSION-5.10 = SS13 ++COMPILER_NAME-5.10 = Sun Studio 13 ++COMPILER_VERSION = $(COMPILER_VERSION-$(CC_VER)) ++COMPILER_NAME = $(COMPILER_NAME-$(CC_VER)) ++ + # Arch specific settings (determines type of .o files and instruction set) + # Starting in SS12 (5.9), the arch options changed. + # The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options. +diff -Nru openjdk.orig/jdk/make/common/shared/Defs-versions.gmk openjdk/jdk/make/common/shared/Defs-versions.gmk +--- openjdk.orig/jdk/make/common/shared/Defs-versions.gmk 2013-09-02 16:35:07.720885081 +0100 ++++ openjdk/jdk/make/common/shared/Defs-versions.gmk 2013-09-02 16:40:22.565779052 +0100 +@@ -45,6 +45,12 @@ + # REQUIRED_CC_VER + # The primary C compiler version expected. + # ++# REQUIRED_COMPILER_NAME ++# The long descriptive name of the compiler we should use ++# ++# REQUIRED_COMPILER_VERSION ++# The one word name that identifies the compilers being used. ++# + # REQUIRED_CYGWIN_VER + # Windows only: If CYGWIN is used, the minimum CYGWIN version. + # +@@ -114,6 +120,8 @@ + else + REQUIRED_FREE_SPACE = 1040000 + endif ++ REQUIRED_COMPILER_NAME = Sun Studio 11 ++ REQUIRED_COMPILER_VERSION = SS11 + ifeq ($(CC_VERSION),sun) + REQUIRED_CC_VER = 5.8 + endif +@@ -130,6 +138,8 @@ + REQUIRED_OS_VARIANT_VERSION = 9 + REQUIRED_FREE_SPACE = 1460000 + REQUIRED_ALSA_VERSION = 0.9.1 ++ REQUIRED_COMPILER_NAME = GCC3 ++ REQUIRED_COMPILER_VERSION = GCC3 + REQUIRED_GCC_VER = 2.95 + ifeq ($(CC_VERSION),gcc) + REQUIRED_CC_VER = 3.2 +@@ -155,14 +165,20 @@ + REQUIRED_DXSDK_VER = 0x0900 + ifeq ($(CC_VERSION),msvc) + ifeq ($(ARCH_DATA_MODEL), 32) ++ REQUIRED_COMPILER_NAME = Visual Studio .NET 2003 Professional C++ ++ REQUIRED_COMPILER_VERSION = VS2003 + REQUIRED_CC_VER = 13.10.3077 + REQUIRED_LINK_VER = 7.10.3077 + else + ifeq ($(ARCH), ia64) +- REQUIRED_CC_VER = 13.00.9337.7 +- REQUIRED_LINK_VER = 7.00.9337.7 ++ REQUIRED_COMPILER_NAME = Microsoft Platform SDK - November 2001 Edition ++ REQUIRED_COMPILER_VERSION = VS2003 ++ REQUIRED_CC_VER = 13.00.9337.7 ++ REQUIRED_LINK_VER = 7.00.9337.7 + endif + ifeq ($(ARCH), amd64) ++ REQUIRED_COMPILER_NAME=Microsoft Platform SDK - April 2005 Edition (3790.1830) ++ REQUIRED_COMPILER_VERSION=VS2005 + REQUIRED_CC_VER = 14.00.40310.41 + REQUIRED_LINK_VER = 8.00.40310.39 + endif +diff -Nru openjdk.orig/jdk/make/common/shared/Defs-windows.gmk openjdk/jdk/make/common/shared/Defs-windows.gmk +--- openjdk.orig/jdk/make/common/shared/Defs-windows.gmk 2013-09-02 16:35:07.712884957 +0100 ++++ openjdk/jdk/make/common/shared/Defs-windows.gmk 2013-09-02 16:40:22.565779052 +0100 +@@ -199,6 +199,7 @@ + endif + ifeq ($(ARCH_DATA_MODEL), 32) + _program_files :=$(call FullPath,$(xPROGRAMFILES)) ++ _program_files32 :=$(_program_files) + else + ifdef PROGRAMW6432 + xPROGRAMW6432 :="$(subst \,/,$(PROGRAMW6432))" +@@ -260,17 +261,30 @@ + ifneq ($(_msvc_dir),) + _compiler_bin :=$(_msvc_dir)/Bin + _redist_sdk :=$(_msvc_dir)/../SDK/v1.1/Bin +- _ms_sdk :=$(_msvc_dir)/PlatformSDK ++ # Assume PlatformSDK is in VS71 (will be empty if VS90) ++ _ms_sdk :=$(call FullPath,$(_msvc_dir)/PlatformSDK) ++ # Assume VS90, then VS80, then VS71 ++ _redist_sdk :=$(call FullPath,$(_msvc_dir)/../SDK/v3.5/Bin) ++ ifeq ($(_redist_sdk),) ++ _redist_sdk :=$(call FullPath,$(_msvc_dir)/../SDK/v2.0/Bin) ++ ifeq ($(_redist_sdk),) ++ _redist_sdk :=$(call FullPath,$(_msvc_dir)/../SDK/v1.1/Bin) ++ endif ++ endif + endif + endif + + # The Microsoft Platform SDK installed by itself + ifneq ($(_program_files),) +- xPSDK :="$(_program_files)/Microsoft Platform SDK" +- _psdk :=$(call FullPath,$(xPSDK)) ++ _PSDK :="$(_program_files)/Microsoft SDKs/Windows/v6.1/" ++ _psdk :=$(call FullPath,$(xMSSDK61)) + ifeq ($(_psdk),) +- xPSDK :="$(_program_files)/Microsoft SDK" +- _psdk :=$(call FullPath,$(xMSSDK)) ++ xPSDK :="$(_program_files)/Microsoft Platform SDK" ++ _psdk :=$(call FullPath,$(xPSDK)) ++ ifeq ($(_psdk),) ++ xPSDK :="$(_program_files)/Microsoft SDK" ++ _psdk :=$(call FullPath,$(xMSSDK)) ++ endif + endif + endif + +@@ -291,13 +305,22 @@ + + # Compilers for 64bit are from SDK + ifeq ($(ARCH_DATA_MODEL), 64) +- ifneq ($(_ms_sdk),) +- ifeq ($(ARCH), ia64) +- _compiler_bin :=$(_ms_sdk)/Bin/Win64 +- endif +- ifeq ($(ARCH), amd64) +- _compiler_bin :=$(_ms_sdk)/Bin/Win64/x86/$(ARCH) +- _redist_sdk :=$(_ms_sdk)/redist/win64/AMD64 ++ xVS2008 :="$(_program_files32)/Microsoft Visual Studio 9.0/" ++ VS2008 :=$(call FullPath,$(xVS2008)) ++ ifneq ($(VS2008),) ++ _compiler_bin :=$(VS2008)/VC/Bin/$(ARCH) ++ xMSSDK61 :="$(_program_files)/Microsoft SDKs/Windows/v6.1/" ++ MSSDK61 :=$(call FullPath,$(xMSSDK61)) ++ _redist_sdk :=$(VS2008)/VC/redist/x86/Microsoft.VC90.CRT ++ else ++ ifneq ($(_ms_sdk),) ++ ifeq ($(ARCH), ia64) ++ _compiler_bin :=$(_ms_sdk)/Bin/Win64 ++ endif ++ ifeq ($(ARCH), amd64) ++ _compiler_bin :=$(_ms_sdk)/Bin/Win64/x86/$(ARCH) ++ _redist_sdk :=$(_ms_sdk)/redist/win64/AMD64 ++ endif + endif + endif + endif +@@ -400,38 +423,30 @@ + _BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION) + endif + +-# See if SDK area has a msvcrt.dll file, directory may exist w/o msvcr* files +-_REDIST_SDK_EXISTS := $(shell \ +- if [ -f "$(_redist_sdk)/msvcrt.dll" ]; then \ +- echo "true"; \ +- else \ +- echo "false"; \ +- fi) +-_REDIST71_SDK_EXISTS := $(shell \ +- if [ -f "$(_redist_sdk)/msvcr71.dll" ]; then \ +- echo "true"; \ +- else \ +- echo "false"; \ +- fi) ++# 32 bit always needs 2 runtimes, 64 bit usually does too + +-# 32 bit needs 2 runtimes +-ifeq ($(ARCH_DATA_MODEL), 32) ++# MSVCRT_DLL_PATH: location of msvcrt.dll that will be re-distributed ++ifdef ALT_MSVCRT_DLL_PATH ++ xALT_MSVCRT_DLL_PATH :="$(subst \,/,$(ALT_MSVCRT_DLL_PATH))" ++ MSVCRT_DLL_PATH :=$(call FullPath,$(xALT_MSVCRT_DLL_PATH)) ++else ++ MSVCRT_DLL_PATH :=$(call FullPath,$(_system_root)/system32/) ++endif ++MSVCRT_DLL_PATH:=$(call AltCheckSpaces,MSVCRT_DLL_PATH) ++MSVCRT_DLL_PATH:=$(call AltCheckValue,MSVCRT_DLL_PATH) + +- # MSVCRT_DLL_PATH: location of msvcrt.dll that will be re-distributed +- ifdef ALT_MSVCRT_DLL_PATH +- xALT_MSVCRT_DLL_PATH :="$(subst \,/,$(ALT_MSVCRT_DLL_PATH))" +- MSVCRT_DLL_PATH :=$(call FullPath,$(xALT_MSVCRT_DLL_PATH)) ++# 32bit always needs the MSVCRNN runtime, 64bit does when using VS2008 ++ifeq ($(ARCH_DATA_MODEL), 32) ++ _NEEDS_MSVCRNN = true ++else ++ ifeq ($(VS2008),) ++ _NEEDS_MSVCRNN = false + else +- ifeq ($(_REDIST_SDK_EXISTS), true) +- xREDIST_DIR :=$(_redist_sdk) +- else +- xREDIST_DIR :=$(_system_root)/system32 +- endif +- MSVCRT_DLL_PATH :=$(call FullPath,$(xREDIST_DIR)) ++ _NEEDS_MSVCRNN = true + endif +- MSVCRT_DLL_PATH:=$(call AltCheckSpaces,MSVCRT_DLL_PATH) +- MSVCRT_DLL_PATH:=$(call AltCheckValue,MSVCRT_DLL_PATH) +- ++endif ++ ++ifeq ($(ARCH_DATA_MODEL), 32) + # MSVCR71_DLL_PATH: location of msvcr71.dll that will be re-distributed + ifdef ALT_MSVCR71_DLL_PATH + xALT_MSVCR71_DLL_PATH :="$(subst \,/,$(ALT_MSVCR71_DLL_PATH))" +@@ -448,22 +463,17 @@ + MSVCR71_DLL_PATH:=$(call AltCheckValue,MSVCR71_DLL_PATH) + + else +- +- # MSVCRT_DLL_PATH: location of msvcrt.dll that will be re-distributed +- ifdef ALT_MSVCRT_DLL_PATH +- xALT_MSVCRT_DLL_PATH :="$(subst \,/,$(ALT_MSVCRT_DLL_PATH))" +- MSVCRT_DLL_PATH :=$(call FullPath,$(xALT_MSVCRT_DLL_PATH)) +- else +- ifeq ($(_REDIST_SDK_EXISTS), true) +- xREDIST_DIR :=$(_redist_sdk) +- else +- xREDIST_DIR :=$(_system_root)/SysWOW64 +- endif +- MSVCRT_DLL_PATH :=$(call FullPath,$(xREDIST_DIR)) +- endif +- MSVCRT_DLL_PATH:=$(call AltCheckSpaces,MSVCRT_DLL_PATH) +- MSVCRT_DLL_PATH:=$(call AltCheckValue,MSVCRT_DLL_PATH) +- ++ifeq ($(_NEEDS_MSVCRNN), true) ++ # MSVCRNN_DLL_PATH: location of msvcrnn.dll that will be re-distributed ++ ifdef ALT_MSVCRNN_DLL_PATH ++ xALT_MSVCRNN_DLL_PATH :="$(subst \,/,$(ALT_MSVCRNN_DLL_PATH))" ++ MSVCRNN_DLL_PATH :=$(call FullPath,$(xALT_MSVCRNN_DLL_PATH)) ++ else ++ MSVCRNN_DLL_PATH :=$(_redist_sdk) ++ endif ++ MSVCRNN_DLL_PATH :=$(call AltCheckSpaces,MSVCRNN_DLL_PATH) ++ MSVCRNN_DLL_PATH:=$(call AltCheckValue,MSVCRNN_DLL_PATH) ++endif + endif + + # DXSDK_PATH: path to Microsoft DirectX SDK Include and Lib +diff -Nru openjdk.orig/jdk/make/common/shared/Sanity.gmk openjdk/jdk/make/common/shared/Sanity.gmk +--- openjdk.orig/jdk/make/common/shared/Sanity.gmk 2013-09-02 16:35:07.712884957 +0100 ++++ openjdk/jdk/make/common/shared/Sanity.gmk 2013-09-02 16:40:22.565779052 +0100 +@@ -123,7 +123,7 @@ + ifeq ($(_OS_VERSION),) + OS_VERSION = 5.0 + else +- OS_VERSION = $(_OS_VERSION) ++ OS_VERSION = $(call MajorVersion,$(_OS_VERSION)).$(call MinorVersion,$(_OS_VERSION)) + endif + OS_VARIANT_NAME := $(WINDOWS_MAPPING-$(OS_VERSION)) + OS_VARIANT_VERSION := $(OS_VERSION) +@@ -1320,8 +1320,8 @@ + fi + @if [ "$(LINK_CHECK)" != "same" ]; then \ + $(ECHO) "WARNING: To build Java 2 SDK $(JDK_VERSION) you need : \n" \ +- " $(COMPILER_VERSION) - link.exe version \"$(REQUIRED_LINK_VER)\" \n" \ +- " Specifically the $(COMPILER_NAME) link.exe. \n " \ ++ " $(REQUIRED_COMPILER_VERSION) - link.exe version \"$(REQUIRED_LINK_VER)\" \n" \ ++ " Specifically the $(REQUIRED_COMPILER_NAME) link.exe. \n " \ + " $(YOU_ARE_USING) Linker version \"$(LINK_VER)\" \n" \ + "" >> $(WARNING_FILE) ; \ + fi +@@ -1338,21 +1338,13 @@ + fi + ifndef OPENJDK + @if [ "$(CC_CHECK)" != "same" ]; then \ +- $(ECHO) "WARNING: The $(PLATFORM) compiler is not version $(COMPILER_VERSION) $(REQUIRED_CC_VER) \n" \ +- " Specifically the $(COMPILER_NAME) $(CC_TYPE) compiler. \n " \ +- " $(YOU_ARE_USING) compiler version: $(CC_VER) \n" \ ++ $(ECHO) "WARNING: The $(PLATFORM) compiler is not version $(REQUIRED_COMPILER_VERSION) $(REQUIRED_CC_VER) \n" \ ++ " Specifically the $(REQUIRED_COMPILER_NAME) compiler. \n " \ ++ " $(YOU_ARE_USING) $(COMPILER_VERSION): $(CC_VER) \n" \ + " The compiler was obtained from the following location: \n" \ + " $(COMPILER_PATH) \n" \ + "" >> $(WARNING_FILE) ; \ + fi +- ifeq ($(PLATFORM), windows) +- ifeq ($(ARCH_DATA_MODEL), 64) +- ifneq ($(COMPILER_VERSION), VS2005) +- @$(ECHO) "WARNING: Should be using VS2005 compiler on 64bit platform. \n" \ +- "" >> $(WARNING_FILE) +- endif +- endif +- endif + endif + + ###################################################### +diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt.rc openjdk/jdk/src/windows/native/sun/windows/awt.rc +--- openjdk.orig/jdk/src/windows/native/sun/windows/awt.rc 2013-09-02 16:35:02.892810032 +0100 ++++ openjdk/jdk/src/windows/native/sun/windows/awt.rc 2013-09-02 16:40:22.565779052 +0100 +@@ -23,7 +23,7 @@ + // questions. + // + +-#include "afxres.h" ++#include "windows.h" + + // Need 2 defines so macro argument to XSTR will get expanded before quoting. + #define XSTR(x) STR(x) +diff -Nru openjdk.orig/jdk/src/windows/resource/version.rc openjdk/jdk/src/windows/resource/version.rc +--- openjdk.orig/jdk/src/windows/resource/version.rc 2012-10-26 19:26:19.000000000 +0100 ++++ openjdk/jdk/src/windows/resource/version.rc 2013-09-02 16:40:22.565779052 +0100 +@@ -23,7 +23,7 @@ + // questions. + // + +-#include "afxres.h" ++#include "windows.h" + + // Need 2 defines so macro argument to XSTR will get expanded before quoting. + #define XSTR(x) STR(x) diff -r 222321136c48 -r 88ad9f715193 patches/openjdk/6974017-minorver_for_solaris.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6974017-minorver_for_solaris.patch Wed Sep 04 00:13:08 2013 +0100 @@ -0,0 +1,24 @@ +diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk openjdk/jdk/make/common/shared/Compiler-sun.gmk +--- openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk 2013-09-02 16:05:41.237401088 +0100 ++++ openjdk/jdk/make/common/shared/Compiler-sun.gmk 2013-09-02 16:07:06.026720438 +0100 +@@ -61,6 +61,7 @@ + # Get compiler version + _CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1) + CC_VER :=$(call GetVersion,"$(_CC_VER)") ++CC_MINORVER :=$(call MinorVersion,$(CC_VER)) + + # Name of compilers being used + COMPILER_VERSION-5.7 = SS10 +@@ -69,8 +70,10 @@ + COMPILER_NAME-5.8 = Sun Studio 11 + COMPILER_VERSION-5.9 = SS12 + COMPILER_NAME-5.9 = Sun Studio 12 +-COMPILER_VERSION-5.10 = SS13 +-COMPILER_NAME-5.10 = Sun Studio 13 ++COMPILER_VERSION-5.10 = SS12u1 ++COMPILER_NAME-5.10 = Sun Studio 12 Update 1 ++COMPILER_VERSION-5.11 = OSS12u2 ++COMPILER_NAME-5.11 = Oracle Solaris Studio 12 Update 2 + COMPILER_VERSION = $(COMPILER_VERSION-$(CC_VER)) + COMPILER_NAME = $(COMPILER_NAME-$(CC_VER)) + diff -r 222321136c48 -r 88ad9f715193 patches/openjdk/6980281-majorver_for_solaris.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6980281-majorver_for_solaris.patch Wed Sep 04 00:13:08 2013 +0100 @@ -0,0 +1,66 @@ +# HG changeset patch +# User bae +# Date 1291553491 -10800 +# Sun Dec 05 15:51:31 2010 +0300 +# Node ID 15e3f6f4a43327a0baa7c7ad0f41ea62c566506b +# Parent 024fe931de8c0e4b56b29d4b666fbcc69c6213e3 +6980281: SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build +Reviewed-by: prr, ohair + +diff --git a/make/common/Defs-solaris.gmk b/make/common/Defs-solaris.gmk +--- openjdk/jdk/make/common/Defs-solaris.gmk ++++ openjdk/jdk/make/common/Defs-solaris.gmk +@@ -466,12 +466,14 @@ + # On X86, make sure tail call optimization is off + # The z and y are the tail call optimizations. + ifeq ($(ARCH_FAMILY), i586) +- ifeq ($(shell $(EXPR) $(CC_VER) \> 5.8), 1) +- # Somehow, tail call optimization is creeping in. +- # Make sure it is off. +- # WARNING: These may cause compiler warnings about duplicate -O options +- CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz +- CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz ++ ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1) ++ ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 8), 1) ++ # Somehow, tail call optimization is creeping in. ++ # Make sure it is off. ++ # WARNING: These may cause compiler warnings about duplicate -O options ++ CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz ++ CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz ++ endif + endif + endif + +@@ -487,12 +489,15 @@ + CC_XKEEPFRAME_OPTIONS += -Wu,-Z~B + CXX_XKEEPFRAME_OPTIONS += -Qoption ube -Z~B + endif +- ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1) +- # Do NOT use frame pointer register as a general purpose opt register +- CC_OPT/NONE += -xregs=no%frameptr +- CXX_OPT/NONE += -xregs=no%frameptr +- CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr +- CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr ++ ++ ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1) ++ ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 6), 1) ++ # Do NOT use frame pointer register as a general purpose opt register ++ CC_OPT/NONE += -xregs=no%frameptr ++ CXX_OPT/NONE += -xregs=no%frameptr ++ CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr ++ CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr ++ endif + endif + endif + +diff --git a/make/common/shared/Compiler-sun.gmk b/make/common/shared/Compiler-sun.gmk +--- openjdk/jdk/make/common/shared/Compiler-sun.gmk ++++ openjdk/jdk/make/common/shared/Compiler-sun.gmk +@@ -61,6 +61,7 @@ + # Get compiler version + _CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1) + CC_VER :=$(call GetVersion,"$(_CC_VER)") ++CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) + CC_MINORVER :=$(call MinorVersion,$(CC_VER)) + + # Name of compilers being used diff -r 222321136c48 -r 88ad9f715193 patches/openjdk/7000225-bad_tabs.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7000225-bad_tabs.patch Wed Sep 04 00:13:08 2013 +0100 @@ -0,0 +1,48 @@ +# HG changeset patch +# User andrew +# Date 1290478643 0 +# Tue Nov 23 02:17:23 2010 +0000 +# Node ID beb9f3298ad3b32c24ceda7b7d3ed812152bafaa +# Parent 565be51eb60e3660f9261d3cee23b81d0e50e440 +7000225: Sanity check on sane-alsa-headers is broken +Summary: Fix use of tab separators, ${alsa_version} expansion and conditional +Reviewed-by: ohair + +diff --git a/make/common/shared/Sanity.gmk b/make/common/shared/Sanity.gmk +--- openjdk/jdk/make/common/shared/Sanity.gmk ++++ openjdk/jdk/make/common/shared/Sanity.gmk +@@ -1389,20 +1389,21 @@ + endif + sane-alsa-headers: + ifdef REQUIRED_ALSA_VERSION +- if [ "$(ALSA_CHECK)" != "same" -a "$(ALSA_CHECK)" != "newer" ] ; then \ +- $(ECHO) "ERROR: The ALSA version must be $(REQUIRED_ALSA_VERSION) or higher. \n" \ +- " You have the following ALSA version installed: $${alsa_version) \n" \ +- " Please reinstall ALSA (drivers and lib). You can download \n" \ +- " the source distribution from http://www.alsa-project.org \n" \ +- " or go to http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ +- "" >> $(ERROR_FILE) ; \ +- fi \ ++ @if [ "$(ALSA_CHECK)" != "missing" ] ; then \ ++ if [ "$(ALSA_CHECK)" != "same" -a "$(ALSA_CHECK)" != "newer" ] ; then \ ++ $(ECHO) "ERROR: The ALSA version must be $(REQUIRED_ALSA_VERSION) or higher. \n" \ ++ " You have the following ALSA version installed: $${alsa_version} \n" \ ++ " Please reinstall ALSA (drivers and lib). You can download \n" \ ++ " the source distribution from http://www.alsa-project.org \n" \ ++ " or go to http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ ++ "" >> $(ERROR_FILE) ; \ ++ fi ; \ + else \ +- $(ECHO) "ERROR: You seem to not have installed ALSA $(REQUIRED_ALSA_VERSION) or higher. \n" \ +- " Please install ALSA (drivers and lib). You can download the \n" \ +- " source distribution from http://www.alsa-project.org or go to \n" \ +- " http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ +- "" >> $(ERROR_FILE) ; \ ++ $(ECHO) "ERROR: You seem to not have installed ALSA $(REQUIRED_ALSA_VERSION) or higher. \n" \ ++ " Please install ALSA (drivers and lib). You can download the \n" \ ++ " source distribution from http://www.alsa-project.org or go to \n" \ ++ " http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ ++ "" >> $(ERROR_FILE) ; \ + fi + endif + diff -r 222321136c48 -r 88ad9f715193 patches/openjdk/7038711-fix_no-clobber_usage.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/7038711-fix_no-clobber_usage.patch Wed Sep 04 00:13:08 2013 +0100 @@ -0,0 +1,125 @@ +diff -Nru openjdk.orig/jdk/make/common/Defs-linux.gmk openjdk/jdk/make/common/Defs-linux.gmk +--- openjdk.orig/jdk/make/common/Defs-linux.gmk 2013-09-02 16:42:50.832083666 +0100 ++++ openjdk/jdk/make/common/Defs-linux.gmk 2013-09-02 16:43:24.332604388 +0100 +@@ -258,9 +258,8 @@ + # statically link libgcc but will print a warning with the flag. We don't + # want the warning, so check gcc version first. + # +-CC_VER_MAJOR := $(shell $(CC) -dumpversion | $(SED) 's/egcs-//' | $(CUT) -d'.' -f1) +-ifeq ("$(CC_VER_MAJOR)", "3") +-OTHER_LDFLAGS += -static-libgcc ++ifeq ($(CC_MAJORVER),3) ++ OTHER_LDFLAGS += -static-libgcc + endif + + # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) +diff -Nru openjdk.orig/jdk/make/common/Defs-solaris.gmk openjdk/jdk/make/common/Defs-solaris.gmk +--- openjdk.orig/jdk/make/common/Defs-solaris.gmk 2013-09-02 16:42:51.816098963 +0100 ++++ openjdk/jdk/make/common/Defs-solaris.gmk 2013-09-02 16:43:24.332604388 +0100 +@@ -437,14 +437,15 @@ + # On X86, make sure tail call optimization is off + # The z and y are the tail call optimizations. + ifeq ($(ARCH_FAMILY), i586) +- ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1) +- ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 8), 1) +- # Somehow, tail call optimization is creeping in. +- # Make sure it is off. +- # WARNING: These may cause compiler warnings about duplicate -O options +- CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz +- CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz +- endif ++ CC_NEWER_THAN_58 := \ ++ $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \ ++ \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 8 \) ) ++ ifeq ($(CC_NEWER_THAN_58),1) ++ # Somehow, tail call optimization is creeping in. ++ # Make sure it is off. ++ # WARNING: These may cause compiler warnings about duplicate -O options ++ CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz ++ CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz + endif + endif + +@@ -461,14 +462,15 @@ + CXX_XKEEPFRAME_OPTIONS += -Qoption ube -Z~B + endif + +- ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1) +- ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 6), 1) +- # Do NOT use frame pointer register as a general purpose opt register +- CC_OPT/NONE += -xregs=no%frameptr +- CXX_OPT/NONE += -xregs=no%frameptr +- CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr +- CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr +- endif ++ CC_NEWER_THAN_56 := \ ++ $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \ ++ \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) ) ++ ifeq ($(CC_NEWER_THAN_56),1) ++ # Do NOT use frame pointer register as a general purpose opt register ++ CC_OPT/NONE += -xregs=no%frameptr ++ CXX_OPT/NONE += -xregs=no%frameptr ++ CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr ++ CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr + endif + endif + +@@ -546,8 +548,10 @@ + CFLAGS_REQUIRED_sparc += -xregs=no%appl + CFLAGS_REQUIRED_sparcv9 += -xregs=no%appl + endif +- ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1) +- # We MUST allow data alignment of 4 for sparc V8 (32bit) ++ CC_NEWER_THAN_56 := \ ++ $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \ ++ \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) ) ++ ifeq ($(CC_NEWER_THAN_56),1) + # Presents an ABI issue with customer JNI libs? We must be able to + # to handle 4byte aligned objects? (rare occurance, but possible?) + CFLAGS_REQUIRED_sparc += -xmemalign=4s +diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk openjdk/jdk/make/common/shared/Compiler-gcc.gmk +--- openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk 2013-09-02 16:42:50.872084289 +0100 ++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk 2013-09-02 16:43:24.332604388 +0100 +@@ -150,6 +150,8 @@ + # Get gcc version + _CC_VER :=$(shell $(CC) -dumpversion 2>&1 ) + CC_VER :=$(call GetVersion,"$(_CC_VER)") ++CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) ++CC_MINORVER :=$(call MinorVersion,$(CC_VER)) + + # Name of compiler + COMPILER_NAME = GCC$(call MajorVersion,$(CC_VER)) +diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk openjdk/jdk/make/common/shared/Compiler-sun.gmk +--- openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk 2013-09-02 16:42:51.816098963 +0100 ++++ openjdk/jdk/make/common/shared/Compiler-sun.gmk 2013-09-02 16:44:23.061517244 +0100 +@@ -117,7 +117,10 @@ + LINT_XARCH_OPTION_OLD/64 += -Xarch=amd64 + endif + # Pick the options we want based on the compiler being used. +-ifeq ($(shell expr $(CC_VER) \>= 5.9), 1) ++CC_59_OR_NEWER := \ ++ $(shell expr $(CC_MAJORVER) \> 5 \| \ ++ \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \>= 9 \) ) ++ifeq ($(CC_59_OR_NEWER), 1) + XARCH_OPTION/32 = $(XARCH_OPTION_NEW/32) + XARCH_OPTION/64 = $(XARCH_OPTION_NEW/64) + LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_NEW/32) +diff -Nru openjdk.orig/jdk/make/sun/jpeg/Makefile openjdk/jdk/make/sun/jpeg/Makefile +--- openjdk.orig/jdk/make/sun/jpeg/Makefile 2013-09-02 16:42:50.804083232 +0100 ++++ openjdk/jdk/make/sun/jpeg/Makefile 2013-09-02 16:44:44.629852492 +0100 +@@ -74,7 +74,14 @@ + # volatile to prevent the optimization. However, this approach does not + # work because we have to declare all variables as volatile in result. + +- OTHER_CFLAGS += -Wno-clobbered ++ ifndef CROSS_COMPILE_ARCH ++ CC_43_OR_NEWER := \ ++ $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ ++ \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) ++ ifeq ($(CC_43_OR_NEWER),1) ++ OTHER_CFLAGS += -Wno-clobbered ++ endif ++ endif + endif + + include $(BUILDDIR)/common/Mapfile-vers.gmk