diff make/solaris/makefiles/sparcWorks.make @ 1547:fb1a39993f69

6951319: enable solaris builds using Sun Studio 12 update 1 Reviewed-by: kamg, ysr, dholmes, johnc
author jcoomes
date Tue, 18 May 2010 11:02:18 -0700
parents 167c2986d91b
children c18cbe5936b8
line wrap: on
line diff
--- a/make/solaris/makefiles/sparcWorks.make	Mon May 17 00:47:28 2010 -0700
+++ b/make/solaris/makefiles/sparcWorks.make	Tue May 18 11:02:18 2010 -0700
@@ -48,27 +48,33 @@
 # Pick which compiler is validated
 ifeq ($(JRE_RELEASE_VER),1.6.0)
   # Validated compiler for JDK6 is SS11 (5.8)
-  VALIDATED_COMPILER_REV   := 5.8
-  VALIDATED_C_COMPILER_REV := 5.8
+  VALIDATED_COMPILER_REVS   := 5.8
+  VALIDATED_C_COMPILER_REVS := 5.8
 else
-  # Validated compiler for JDK7 is SS12 (5.9)
-  VALIDATED_COMPILER_REV   := 5.9
-  VALIDATED_C_COMPILER_REV := 5.9
+  # Validated compilers for JDK7 are SS12 (5.9) or SS12 update 1 (5.10)
+  VALIDATED_COMPILER_REVS   := 5.9 5.10
+  VALIDATED_C_COMPILER_REVS := 5.9 5.10
 endif
 
-# Warning messages about not using the above validated version
-ENFORCE_COMPILER_REV${ENFORCE_COMPILER_REV} := ${VALIDATED_COMPILER_REV}
-ifneq (${COMPILER_REV},${ENFORCE_COMPILER_REV})
-dummy_target_to_enforce_compiler_rev:=\
-$(shell echo >&2 WARNING: You are using CC version ${COMPILER_REV} \
-and should be using version ${ENFORCE_COMPILER_REV}. Set ENFORCE_COMPILER_REV=${COMPILER_REV} to avoid this warning.)
+# Warning messages about not using the above validated versions
+ENFORCE_COMPILER_REV${ENFORCE_COMPILER_REV} := $(strip ${VALIDATED_COMPILER_REVS})
+ifeq ($(filter ${ENFORCE_COMPILER_REV},${COMPILER_REV}),)
+PRINTABLE_CC_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_COMPILER_REV})
+dummy_var_to_enforce_compiler_rev := $(shell \
+	echo >&2 WARNING: You are using CC version ${COMPILER_REV} and \
+	should be using version ${PRINTABLE_CC_REVS}.; \
+	echo >&2 Set ENFORCE_COMPILER_REV=${COMPILER_REV} to avoid this \
+	warning.)
 endif
 
-ENFORCE_C_COMPILER_REV${ENFORCE_C_COMPILER_REV} := ${VALIDATED_C_COMPILER_REV}
-ifneq (${C_COMPILER_REV},${ENFORCE_C_COMPILER_REV})
-dummy_target_to_enforce_c_compiler_rev:=\
-$(shell echo >&2 WARNING: You are using cc version ${C_COMPILER_REV} \
-and should be using version ${ENFORCE_C_COMPILER_REV}. Set ENFORCE_C_COMPILER_REV=${C_COMPILER_REV} to avoid this warning.)
+ENFORCE_C_COMPILER_REV${ENFORCE_C_COMPILER_REV} := $(strip ${VALIDATED_C_COMPILER_REVS})
+ifeq ($(filter ${ENFORCE_C_COMPILER_REV},${C_COMPILER_REV}),)
+PRINTABLE_C_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_C_COMPILER_REV})
+dummy_var_to_enforce_c_compiler_rev := $(shell \
+	echo >&2 WARNING: You are using cc version ${C_COMPILER_REV} and \
+	should be using version ${PRINTABLE_C_REVS}.; \
+	echo >&2 Set ENFORCE_C_COMPILER_REV=${C_COMPILER_REV} to avoid this \
+	warning.)
 endif
 
 COMPILER_REV_NUMERIC := $(shell echo $(COMPILER_REV) | awk -F. '{ print $$1 * 100 + $$2 }')
@@ -139,6 +145,13 @@
 OPT_CFLAGS/O2=-xO2
 OPT_CFLAGS/NOOPT=-xO1
 
+ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
+ifeq ($(Platform_arch), x86)
+OPT_CFLAGS/NO_TAIL_CALL_OPT  = -Wu,-O~yz
+OPT_CCFLAGS/NO_TAIL_CALL_OPT = -Qoption ube -O~yz
+endif # Platform_arch == x86
+endif # COMPILER_REV_NUMERIC >= 509
+
 #################################################
 # Begin current (>=5.6) Forte compiler options #
 #################################################
@@ -181,10 +194,7 @@
 
 ifeq ("${Platform_arch_model}", "x86_32")
 
-OPT_CFLAGS=-xtarget=pentium $(EXTRA_OPT_CFLAGS)
-
-# UBE (CC 5.5) has bug 4923569 with -xO4
-OPT_CFLAGS+=-xO3
+OPT_CFLAGS=-xtarget=pentium -xO4 $(EXTRA_OPT_CFLAGS)
 
 endif # 32bit x86
 
@@ -461,7 +471,7 @@
 # The -g0 setting allows the C++ frontend to inline, which is a big win.
 
 # Special global options for SS12
-ifeq ($(COMPILER_REV_NUMERIC),509)
+ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
   # There appears to be multiple issues with the new Dwarf2 debug format, so
   #   we tell the compiler to use the older 'stabs' debug format all the time.
   #   Note that this needs to be used in optimized compiles too to be 100%.