comparison 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
comparison
equal deleted inserted replaced
1546:a00b51b2dda4 1547:fb1a39993f69
46 $(shell $(CC) -V 2>&1 | sed -n 's/^.*[ ,\t]C[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p') 46 $(shell $(CC) -V 2>&1 | sed -n 's/^.*[ ,\t]C[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
47 47
48 # Pick which compiler is validated 48 # Pick which compiler is validated
49 ifeq ($(JRE_RELEASE_VER),1.6.0) 49 ifeq ($(JRE_RELEASE_VER),1.6.0)
50 # Validated compiler for JDK6 is SS11 (5.8) 50 # Validated compiler for JDK6 is SS11 (5.8)
51 VALIDATED_COMPILER_REV := 5.8 51 VALIDATED_COMPILER_REVS := 5.8
52 VALIDATED_C_COMPILER_REV := 5.8 52 VALIDATED_C_COMPILER_REVS := 5.8
53 else 53 else
54 # Validated compiler for JDK7 is SS12 (5.9) 54 # Validated compilers for JDK7 are SS12 (5.9) or SS12 update 1 (5.10)
55 VALIDATED_COMPILER_REV := 5.9 55 VALIDATED_COMPILER_REVS := 5.9 5.10
56 VALIDATED_C_COMPILER_REV := 5.9 56 VALIDATED_C_COMPILER_REVS := 5.9 5.10
57 endif 57 endif
58 58
59 # Warning messages about not using the above validated version 59 # Warning messages about not using the above validated versions
60 ENFORCE_COMPILER_REV${ENFORCE_COMPILER_REV} := ${VALIDATED_COMPILER_REV} 60 ENFORCE_COMPILER_REV${ENFORCE_COMPILER_REV} := $(strip ${VALIDATED_COMPILER_REVS})
61 ifneq (${COMPILER_REV},${ENFORCE_COMPILER_REV}) 61 ifeq ($(filter ${ENFORCE_COMPILER_REV},${COMPILER_REV}),)
62 dummy_target_to_enforce_compiler_rev:=\ 62 PRINTABLE_CC_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_COMPILER_REV})
63 $(shell echo >&2 WARNING: You are using CC version ${COMPILER_REV} \ 63 dummy_var_to_enforce_compiler_rev := $(shell \
64 and should be using version ${ENFORCE_COMPILER_REV}. Set ENFORCE_COMPILER_REV=${COMPILER_REV} to avoid this warning.) 64 echo >&2 WARNING: You are using CC version ${COMPILER_REV} and \
65 endif 65 should be using version ${PRINTABLE_CC_REVS}.; \
66 66 echo >&2 Set ENFORCE_COMPILER_REV=${COMPILER_REV} to avoid this \
67 ENFORCE_C_COMPILER_REV${ENFORCE_C_COMPILER_REV} := ${VALIDATED_C_COMPILER_REV} 67 warning.)
68 ifneq (${C_COMPILER_REV},${ENFORCE_C_COMPILER_REV}) 68 endif
69 dummy_target_to_enforce_c_compiler_rev:=\ 69
70 $(shell echo >&2 WARNING: You are using cc version ${C_COMPILER_REV} \ 70 ENFORCE_C_COMPILER_REV${ENFORCE_C_COMPILER_REV} := $(strip ${VALIDATED_C_COMPILER_REVS})
71 and should be using version ${ENFORCE_C_COMPILER_REV}. Set ENFORCE_C_COMPILER_REV=${C_COMPILER_REV} to avoid this warning.) 71 ifeq ($(filter ${ENFORCE_C_COMPILER_REV},${C_COMPILER_REV}),)
72 PRINTABLE_C_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_C_COMPILER_REV})
73 dummy_var_to_enforce_c_compiler_rev := $(shell \
74 echo >&2 WARNING: You are using cc version ${C_COMPILER_REV} and \
75 should be using version ${PRINTABLE_C_REVS}.; \
76 echo >&2 Set ENFORCE_C_COMPILER_REV=${C_COMPILER_REV} to avoid this \
77 warning.)
72 endif 78 endif
73 79
74 COMPILER_REV_NUMERIC := $(shell echo $(COMPILER_REV) | awk -F. '{ print $$1 * 100 + $$2 }') 80 COMPILER_REV_NUMERIC := $(shell echo $(COMPILER_REV) | awk -F. '{ print $$1 * 100 + $$2 }')
75 81
76 # Fail the build if __fabsf is used. __fabsf exists only in Solaris 8 2/04 82 # Fail the build if __fabsf is used. __fabsf exists only in Solaris 8 2/04
137 # Use these to work around compiler bugs: 143 # Use these to work around compiler bugs:
138 OPT_CFLAGS/SLOWER=-xO3 144 OPT_CFLAGS/SLOWER=-xO3
139 OPT_CFLAGS/O2=-xO2 145 OPT_CFLAGS/O2=-xO2
140 OPT_CFLAGS/NOOPT=-xO1 146 OPT_CFLAGS/NOOPT=-xO1
141 147
148 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
149 ifeq ($(Platform_arch), x86)
150 OPT_CFLAGS/NO_TAIL_CALL_OPT = -Wu,-O~yz
151 OPT_CCFLAGS/NO_TAIL_CALL_OPT = -Qoption ube -O~yz
152 endif # Platform_arch == x86
153 endif # COMPILER_REV_NUMERIC >= 509
154
142 ################################################# 155 #################################################
143 # Begin current (>=5.6) Forte compiler options # 156 # Begin current (>=5.6) Forte compiler options #
144 ################################################# 157 #################################################
145 158
146 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 506), 1) 159 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 506), 1)
179 192
180 endif # sparc 193 endif # sparc
181 194
182 ifeq ("${Platform_arch_model}", "x86_32") 195 ifeq ("${Platform_arch_model}", "x86_32")
183 196
184 OPT_CFLAGS=-xtarget=pentium $(EXTRA_OPT_CFLAGS) 197 OPT_CFLAGS=-xtarget=pentium -xO4 $(EXTRA_OPT_CFLAGS)
185
186 # UBE (CC 5.5) has bug 4923569 with -xO4
187 OPT_CFLAGS+=-xO3
188 198
189 endif # 32bit x86 199 endif # 32bit x86
190 200
191 ifeq ("${Platform_arch_model}", "x86_64") 201 ifeq ("${Platform_arch_model}", "x86_64")
192 202
459 DEBUG_CFLAGS = -g 469 DEBUG_CFLAGS = -g
460 FASTDEBUG_CFLAGS = -g0 470 FASTDEBUG_CFLAGS = -g0
461 # The -g0 setting allows the C++ frontend to inline, which is a big win. 471 # The -g0 setting allows the C++ frontend to inline, which is a big win.
462 472
463 # Special global options for SS12 473 # Special global options for SS12
464 ifeq ($(COMPILER_REV_NUMERIC),509) 474 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
465 # There appears to be multiple issues with the new Dwarf2 debug format, so 475 # There appears to be multiple issues with the new Dwarf2 debug format, so
466 # we tell the compiler to use the older 'stabs' debug format all the time. 476 # we tell the compiler to use the older 'stabs' debug format all the time.
467 # Note that this needs to be used in optimized compiles too to be 100%. 477 # Note that this needs to be used in optimized compiles too to be 100%.
468 # This is a workaround for SS12 (5.9) bug 6694600 478 # This is a workaround for SS12 (5.9) bug 6694600
469 CFLAGS += -xdebugformat=stabs 479 CFLAGS += -xdebugformat=stabs