annotate make/solaris/makefiles/sparcWorks.make @ 3772:6747fd0512e0

7004681: G1: Extend marking verification to Full GCs Summary: Perform a heap verification after the first phase of G1's full GC using objects' mark words to determine liveness. The third parameter of the heap verification routines, which was used in G1 to determine which marking bitmap to use in liveness calculations, has been changed from a boolean to an enum with values defined for using the mark word, and the 'prev' and 'next' bitmaps. Reviewed-by: tonyp, ysr
author johnc
date Tue, 14 Jun 2011 11:01:10 -0700
parents 5781ed5f1865
children f94227b6117b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 #
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1834
diff changeset
2 # Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 #
a61af66fc99e Initial load
duke
parents:
diff changeset
5 # This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 # under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 # published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 #
a61af66fc99e Initial load
duke
parents:
diff changeset
9 # This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 # version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 # accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 #
a61af66fc99e Initial load
duke
parents:
diff changeset
15 # You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 # 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 #
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1547
diff changeset
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1547
diff changeset
20 # or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1547
diff changeset
21 # questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
22 #
a61af66fc99e Initial load
duke
parents:
diff changeset
23 #
a61af66fc99e Initial load
duke
parents:
diff changeset
24
a61af66fc99e Initial load
duke
parents:
diff changeset
25 # Compiler-specific flags for sparcworks.
a61af66fc99e Initial load
duke
parents:
diff changeset
26
a61af66fc99e Initial load
duke
parents:
diff changeset
27 # tell make which C and C++ compilers to use
a61af66fc99e Initial load
duke
parents:
diff changeset
28 CC = cc
a61af66fc99e Initial load
duke
parents:
diff changeset
29 CPP = CC
a61af66fc99e Initial load
duke
parents:
diff changeset
30
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
31 # Note that this 'as' is an older version of the Sun Studio 'fbe', and will
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
32 # use the older style options. The 'fbe' options will match 'cc' and 'CC'.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
33 AS = /usr/ccs/bin/as
a61af66fc99e Initial load
duke
parents:
diff changeset
34
a61af66fc99e Initial load
duke
parents:
diff changeset
35 NM = /usr/ccs/bin/nm
a61af66fc99e Initial load
duke
parents:
diff changeset
36 NAWK = /bin/nawk
a61af66fc99e Initial load
duke
parents:
diff changeset
37
a61af66fc99e Initial load
duke
parents:
diff changeset
38 REORDER_FLAG = -xF
a61af66fc99e Initial load
duke
parents:
diff changeset
39
a61af66fc99e Initial load
duke
parents:
diff changeset
40 # Check for the versions of C++ and C compilers ($CPP and $CC) used.
a61af66fc99e Initial load
duke
parents:
diff changeset
41
a61af66fc99e Initial load
duke
parents:
diff changeset
42 # Get the last thing on the line that looks like x.x+ (x is a digit).
a61af66fc99e Initial load
duke
parents:
diff changeset
43 COMPILER_REV := \
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
44 $(shell $(CPP) -V 2>&1 | sed -n 's/^.*[ ,\t]C++[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
0
a61af66fc99e Initial load
duke
parents:
diff changeset
45 C_COMPILER_REV := \
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
46 $(shell $(CC) -V 2>&1 | sed -n 's/^.*[ ,\t]C[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
0
a61af66fc99e Initial load
duke
parents:
diff changeset
47
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
48 # Pick which compiler is validated
724
2bf529ef0adb 6831323: Use v8plus as minimum required hardware for current Hotspot sources
kvn
parents: 430
diff changeset
49 ifeq ($(JRE_RELEASE_VER),1.6.0)
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
50 # Validated compiler for JDK6 is SS11 (5.8)
1547
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
51 VALIDATED_COMPILER_REVS := 5.8
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
52 VALIDATED_C_COMPILER_REVS := 5.8
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
53 else
1834
22cace5e30b5 6983296: build sanity checks for jdk7 should require SS12u1
jcoomes
parents: 1687
diff changeset
54 # Validated compiler for JDK7 is SS12 update 1 + patches (5.10)
22cace5e30b5 6983296: build sanity checks for jdk7 should require SS12u1
jcoomes
parents: 1687
diff changeset
55 VALIDATED_COMPILER_REVS := 5.10
22cace5e30b5 6983296: build sanity checks for jdk7 should require SS12u1
jcoomes
parents: 1687
diff changeset
56 VALIDATED_C_COMPILER_REVS := 5.10
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
57 endif
0
a61af66fc99e Initial load
duke
parents:
diff changeset
58
1547
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
59 # Warning messages about not using the above validated versions
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
60 ENFORCE_COMPILER_REV${ENFORCE_COMPILER_REV} := $(strip ${VALIDATED_COMPILER_REVS})
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
61 ifeq ($(filter ${ENFORCE_COMPILER_REV},${COMPILER_REV}),)
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
62 PRINTABLE_CC_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_COMPILER_REV})
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
63 dummy_var_to_enforce_compiler_rev := $(shell \
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
64 echo >&2 WARNING: You are using CC version ${COMPILER_REV} and \
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
65 should be using version ${PRINTABLE_CC_REVS}.; \
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
66 echo >&2 Set ENFORCE_COMPILER_REV=${COMPILER_REV} to avoid this \
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
67 warning.)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
68 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
69
1547
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
70 ENFORCE_C_COMPILER_REV${ENFORCE_C_COMPILER_REV} := $(strip ${VALIDATED_C_COMPILER_REVS})
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
71 ifeq ($(filter ${ENFORCE_C_COMPILER_REV},${C_COMPILER_REV}),)
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
72 PRINTABLE_C_REVS := $(subst $(shell echo ' '), or ,${ENFORCE_C_COMPILER_REV})
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
73 dummy_var_to_enforce_c_compiler_rev := $(shell \
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
74 echo >&2 WARNING: You are using cc version ${C_COMPILER_REV} and \
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
75 should be using version ${PRINTABLE_C_REVS}.; \
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
76 echo >&2 Set ENFORCE_C_COMPILER_REV=${C_COMPILER_REV} to avoid this \
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
77 warning.)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
78 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
79
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
80 COMPILER_REV_NUMERIC := $(shell echo $(COMPILER_REV) | awk -F. '{ print $$1 * 100 + $$2 }')
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
81
0
a61af66fc99e Initial load
duke
parents:
diff changeset
82 # Fail the build if __fabsf is used. __fabsf exists only in Solaris 8 2/04
a61af66fc99e Initial load
duke
parents:
diff changeset
83 # and newer; objects with a dependency on this symbol will not run on older
a61af66fc99e Initial load
duke
parents:
diff changeset
84 # Solaris 8.
a61af66fc99e Initial load
duke
parents:
diff changeset
85 JVM_FAIL_IF_UNDEFINED = __fabsf
a61af66fc99e Initial load
duke
parents:
diff changeset
86
a61af66fc99e Initial load
duke
parents:
diff changeset
87 JVM_CHECK_SYMBOLS = $(NM) -u -p $(LIBJVM.o) | \
a61af66fc99e Initial load
duke
parents:
diff changeset
88 $(NAWK) -v f="${JVM_FAIL_IF_UNDEFINED}" \
a61af66fc99e Initial load
duke
parents:
diff changeset
89 'BEGIN { c=split(f,s); rc=0; } \
a61af66fc99e Initial load
duke
parents:
diff changeset
90 /:$$/ { file = $$1; } \
a61af66fc99e Initial load
duke
parents:
diff changeset
91 /[^:]$$/ { for(n=1;n<=c;++n) { \
a61af66fc99e Initial load
duke
parents:
diff changeset
92 if($$1==s[n]) { \
a61af66fc99e Initial load
duke
parents:
diff changeset
93 printf("JVM_CHECK_SYMBOLS: %s contains illegal symbol %s\n", \
a61af66fc99e Initial load
duke
parents:
diff changeset
94 file,$$1); \
a61af66fc99e Initial load
duke
parents:
diff changeset
95 rc=1; \
a61af66fc99e Initial load
duke
parents:
diff changeset
96 } \
a61af66fc99e Initial load
duke
parents:
diff changeset
97 } \
a61af66fc99e Initial load
duke
parents:
diff changeset
98 } \
a61af66fc99e Initial load
duke
parents:
diff changeset
99 END { exit rc; }'
a61af66fc99e Initial load
duke
parents:
diff changeset
100
a61af66fc99e Initial load
duke
parents:
diff changeset
101 LINK_LIB.CC/PRE_HOOK += $(JVM_CHECK_SYMBOLS) || exit 1;
a61af66fc99e Initial load
duke
parents:
diff changeset
102
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
103 # New architecture options started in SS12 (5.9), we need both styles to build.
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
104 # The older arch options for SS11 (5.8) or older and also for /usr/ccs/bin/as.
724
2bf529ef0adb 6831323: Use v8plus as minimum required hardware for current Hotspot sources
kvn
parents: 430
diff changeset
105 # Note: default for 32bit sparc is now the same as v8plus, so the
2bf529ef0adb 6831323: Use v8plus as minimum required hardware for current Hotspot sources
kvn
parents: 430
diff changeset
106 # settings below have changed all 32bit sparc builds to be v8plus.
2bf529ef0adb 6831323: Use v8plus as minimum required hardware for current Hotspot sources
kvn
parents: 430
diff changeset
107 ARCHFLAG_OLD/sparc = -xarch=v8plus
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
108 ARCHFLAG_NEW/sparc = -m32 -xarch=sparc
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
109 ARCHFLAG_OLD/sparcv9 = -xarch=v9
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
110 ARCHFLAG_NEW/sparcv9 = -m64 -xarch=sparc
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
111 ARCHFLAG_OLD/i486 =
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
112 ARCHFLAG_NEW/i486 = -m32
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
113 ARCHFLAG_OLD/amd64 = -xarch=amd64
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
114 ARCHFLAG_NEW/amd64 = -m64
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
115
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
116 # Select the ARCHFLAGs and other SS12 (5.9) options
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
117 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
118 ARCHFLAG/sparc = $(ARCHFLAG_NEW/sparc)
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
119 ARCHFLAG/sparcv9 = $(ARCHFLAG_NEW/sparcv9)
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
120 ARCHFLAG/i486 = $(ARCHFLAG_NEW/i486)
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
121 ARCHFLAG/amd64 = $(ARCHFLAG_NEW/amd64)
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
122 else
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
123 ARCHFLAG/sparc = $(ARCHFLAG_OLD/sparc)
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
124 ARCHFLAG/sparcv9 = $(ARCHFLAG_OLD/sparcv9)
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
125 ARCHFLAG/i486 = $(ARCHFLAG_OLD/i486)
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
126 ARCHFLAG/amd64 = $(ARCHFLAG_OLD/amd64)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
127 endif
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
128
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
129 # ARCHFLAGS for the current build arch
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
130 ARCHFLAG = $(ARCHFLAG/$(BUILDARCH))
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
131 AS_ARCHFLAG = $(ARCHFLAG_OLD/$(BUILDARCH))
0
a61af66fc99e Initial load
duke
parents:
diff changeset
132
a61af66fc99e Initial load
duke
parents:
diff changeset
133 # Optional sub-directory in /usr/lib where BUILDARCH libraries are kept.
a61af66fc99e Initial load
duke
parents:
diff changeset
134 ISA_DIR=$(ISA_DIR/$(BUILDARCH))
a61af66fc99e Initial load
duke
parents:
diff changeset
135 ISA_DIR/sparcv9=/sparcv9
a61af66fc99e Initial load
duke
parents:
diff changeset
136 ISA_DIR/amd64=/amd64
a61af66fc99e Initial load
duke
parents:
diff changeset
137
a61af66fc99e Initial load
duke
parents:
diff changeset
138 # Use these to work around compiler bugs:
a61af66fc99e Initial load
duke
parents:
diff changeset
139 OPT_CFLAGS/SLOWER=-xO3
a61af66fc99e Initial load
duke
parents:
diff changeset
140 OPT_CFLAGS/O2=-xO2
a61af66fc99e Initial load
duke
parents:
diff changeset
141 OPT_CFLAGS/NOOPT=-xO1
a61af66fc99e Initial load
duke
parents:
diff changeset
142
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1834
diff changeset
143 # Flags for creating the dependency files.
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1834
diff changeset
144 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1834
diff changeset
145 DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d)
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1834
diff changeset
146 endif
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1834
diff changeset
147
1983
c760f78e0a53 7003125: precompiled.hpp is included when precompiled headers are not used
stefank
parents: 1972
diff changeset
148 # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp.
c760f78e0a53 7003125: precompiled.hpp is included when precompiled headers are not used
stefank
parents: 1972
diff changeset
149 CFLAGS += -DDONT_USE_PRECOMPILED_HEADER
c760f78e0a53 7003125: precompiled.hpp is included when precompiled headers are not used
stefank
parents: 1972
diff changeset
150
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1834
diff changeset
151 ################################################
1687
fb8abd207dbe 6975049: nsk/regression/b4287029 crashes with -Xss64 on solaris-i586
kvn
parents: 1552
diff changeset
152 # Begin current (>=5.9) Forte compiler options #
fb8abd207dbe 6975049: nsk/regression/b4287029 crashes with -Xss64 on solaris-i586
kvn
parents: 1552
diff changeset
153 #################################################
fb8abd207dbe 6975049: nsk/regression/b4287029 crashes with -Xss64 on solaris-i586
kvn
parents: 1552
diff changeset
154
1547
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
155 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
156 ifeq ($(Platform_arch), x86)
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
157 OPT_CFLAGS/NO_TAIL_CALL_OPT = -Wu,-O~yz
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
158 OPT_CCFLAGS/NO_TAIL_CALL_OPT = -Qoption ube -O~yz
1687
fb8abd207dbe 6975049: nsk/regression/b4287029 crashes with -Xss64 on solaris-i586
kvn
parents: 1552
diff changeset
159 OPT_CFLAGS/stubGenerator_x86_32.o = $(OPT_CFLAGS) -xspace
fb8abd207dbe 6975049: nsk/regression/b4287029 crashes with -Xss64 on solaris-i586
kvn
parents: 1552
diff changeset
160 OPT_CFLAGS/stubGenerator_x86_64.o = $(OPT_CFLAGS) -xspace
1547
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
161 endif # Platform_arch == x86
1687
fb8abd207dbe 6975049: nsk/regression/b4287029 crashes with -Xss64 on solaris-i586
kvn
parents: 1552
diff changeset
162 ifeq ("${Platform_arch}", "sparc")
fb8abd207dbe 6975049: nsk/regression/b4287029 crashes with -Xss64 on solaris-i586
kvn
parents: 1552
diff changeset
163 OPT_CFLAGS/stubGenerator_sparc.o = $(OPT_CFLAGS) -xspace
fb8abd207dbe 6975049: nsk/regression/b4287029 crashes with -Xss64 on solaris-i586
kvn
parents: 1552
diff changeset
164 endif
1547
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
165 endif # COMPILER_REV_NUMERIC >= 509
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
166
0
a61af66fc99e Initial load
duke
parents:
diff changeset
167 #################################################
a61af66fc99e Initial load
duke
parents:
diff changeset
168 # Begin current (>=5.6) Forte compiler options #
a61af66fc99e Initial load
duke
parents:
diff changeset
169 #################################################
a61af66fc99e Initial load
duke
parents:
diff changeset
170
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
171 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 506), 1)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
172
a61af66fc99e Initial load
duke
parents:
diff changeset
173 ifeq ("${Platform_arch}", "sparc")
a61af66fc99e Initial load
duke
parents:
diff changeset
174
a61af66fc99e Initial load
duke
parents:
diff changeset
175 # We MUST allow data alignment of 4 for sparc (sparcv9 is ok at 8s)
a61af66fc99e Initial load
duke
parents:
diff changeset
176 ifndef LP64
a61af66fc99e Initial load
duke
parents:
diff changeset
177 CFLAGS += -xmemalign=4s
a61af66fc99e Initial load
duke
parents:
diff changeset
178 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
179
a61af66fc99e Initial load
duke
parents:
diff changeset
180 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
181
a61af66fc99e Initial load
duke
parents:
diff changeset
182 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
183
a61af66fc99e Initial load
duke
parents:
diff changeset
184 #################################################
a61af66fc99e Initial load
duke
parents:
diff changeset
185 # Begin current (>=5.5) Forte compiler options #
a61af66fc99e Initial load
duke
parents:
diff changeset
186 #################################################
a61af66fc99e Initial load
duke
parents:
diff changeset
187
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
188 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 505), 1)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
189
a61af66fc99e Initial load
duke
parents:
diff changeset
190 CFLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
191 AOUT_FLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
192 LIB_FLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
193 LFLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
194
a61af66fc99e Initial load
duke
parents:
diff changeset
195 ifeq ("${Platform_arch}", "sparc")
a61af66fc99e Initial load
duke
parents:
diff changeset
196
a61af66fc99e Initial load
duke
parents:
diff changeset
197 # Flags for Optimization
a61af66fc99e Initial load
duke
parents:
diff changeset
198
a61af66fc99e Initial load
duke
parents:
diff changeset
199 # [phh] Commented out pending verification that we do indeed want
a61af66fc99e Initial load
duke
parents:
diff changeset
200 # to potentially bias against u1 and u3 targets.
a61af66fc99e Initial load
duke
parents:
diff changeset
201 #CFLAGS += -xchip=ultra2
a61af66fc99e Initial load
duke
parents:
diff changeset
202
a61af66fc99e Initial load
duke
parents:
diff changeset
203 OPT_CFLAGS=-xO4 $(EXTRA_OPT_CFLAGS)
a61af66fc99e Initial load
duke
parents:
diff changeset
204
a61af66fc99e Initial load
duke
parents:
diff changeset
205 endif # sparc
a61af66fc99e Initial load
duke
parents:
diff changeset
206
a61af66fc99e Initial load
duke
parents:
diff changeset
207 ifeq ("${Platform_arch_model}", "x86_32")
a61af66fc99e Initial load
duke
parents:
diff changeset
208
1547
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
209 OPT_CFLAGS=-xtarget=pentium -xO4 $(EXTRA_OPT_CFLAGS)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
210
a61af66fc99e Initial load
duke
parents:
diff changeset
211 endif # 32bit x86
a61af66fc99e Initial load
duke
parents:
diff changeset
212
a61af66fc99e Initial load
duke
parents:
diff changeset
213 ifeq ("${Platform_arch_model}", "x86_64")
a61af66fc99e Initial load
duke
parents:
diff changeset
214
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
215 ASFLAGS += $(AS_ARCHFLAG)
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
216 CFLAGS += $(ARCHFLAG/amd64)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
217 # this one seemed useless
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
218 LFLAGS_VM += $(ARCHFLAG/amd64)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
219 # this one worked
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
220 LFLAGS += $(ARCHFLAG/amd64)
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
221 AOUT_FLAGS += $(ARCHFLAG/amd64)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
222
a61af66fc99e Initial load
duke
parents:
diff changeset
223 # -xO3 is faster than -xO4 on specjbb with SS10 compiler
a61af66fc99e Initial load
duke
parents:
diff changeset
224 OPT_CFLAGS=-xO4 $(EXTRA_OPT_CFLAGS)
a61af66fc99e Initial load
duke
parents:
diff changeset
225
a61af66fc99e Initial load
duke
parents:
diff changeset
226 endif # 64bit x86
a61af66fc99e Initial load
duke
parents:
diff changeset
227
a61af66fc99e Initial load
duke
parents:
diff changeset
228 # Inline functions
a61af66fc99e Initial load
duke
parents:
diff changeset
229 CFLAGS += $(GAMMADIR)/src/os_cpu/solaris_${Platform_arch}/vm/solaris_${Platform_arch_model}.il
a61af66fc99e Initial load
duke
parents:
diff changeset
230
a61af66fc99e Initial load
duke
parents:
diff changeset
231 # no more exceptions
a61af66fc99e Initial load
duke
parents:
diff changeset
232 CFLAGS/NOEX=-features=no%except
a61af66fc99e Initial load
duke
parents:
diff changeset
233
113
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 91
diff changeset
234
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 91
diff changeset
235 # avoid compilation problems arising from fact that C++ compiler tries
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 91
diff changeset
236 # to search for external template definition by just compiling additional
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 91
diff changeset
237 # source files in th same context
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 91
diff changeset
238 CFLAGS += -template=no%extdef
ba764ed4b6f2 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
coleenp
parents: 91
diff changeset
239
0
a61af66fc99e Initial load
duke
parents:
diff changeset
240 # Reduce code bloat by reverting back to 5.0 behavior for static initializers
a61af66fc99e Initial load
duke
parents:
diff changeset
241 CFLAGS += -features=no%split_init
a61af66fc99e Initial load
duke
parents:
diff changeset
242
a61af66fc99e Initial load
duke
parents:
diff changeset
243 # Use -D_Crun_inline_placement so we don't get references to
a61af66fc99e Initial load
duke
parents:
diff changeset
244 # __1c2n6FIpv_0_ or void*operator new(unsigned,void*)
a61af66fc99e Initial load
duke
parents:
diff changeset
245 # This avoids the hard requirement of the newer Solaris C++ runtime patches.
a61af66fc99e Initial load
duke
parents:
diff changeset
246 # NOTE: This is an undocumented feature of the SS10 compiler. See 6306698.
a61af66fc99e Initial load
duke
parents:
diff changeset
247 CFLAGS += -D_Crun_inline_placement
a61af66fc99e Initial load
duke
parents:
diff changeset
248
a61af66fc99e Initial load
duke
parents:
diff changeset
249 # PIC is safer for SPARC, and is considerably slower
a61af66fc99e Initial load
duke
parents:
diff changeset
250 # a file foo.o which wants to compile -pic can set "PICFLAG/foo.o = -PIC"
a61af66fc99e Initial load
duke
parents:
diff changeset
251 PICFLAG = -KPIC
a61af66fc99e Initial load
duke
parents:
diff changeset
252 PICFLAG/DEFAULT = $(PICFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
253 # [RGV] Need to figure which files to remove to get link to work
a61af66fc99e Initial load
duke
parents:
diff changeset
254 #PICFLAG/BETTER = -pic
a61af66fc99e Initial load
duke
parents:
diff changeset
255 PICFLAG/BETTER = $(PICFLAG/DEFAULT)
a61af66fc99e Initial load
duke
parents:
diff changeset
256 PICFLAG/BYFILE = $(PICFLAG/$@)$(PICFLAG/DEFAULT$(PICFLAG/$@))
a61af66fc99e Initial load
duke
parents:
diff changeset
257
a61af66fc99e Initial load
duke
parents:
diff changeset
258 # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file.
a61af66fc99e Initial load
duke
parents:
diff changeset
259 MAPFLAG = -M FILENAME
a61af66fc99e Initial load
duke
parents:
diff changeset
260
a61af66fc99e Initial load
duke
parents:
diff changeset
261 # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj
a61af66fc99e Initial load
duke
parents:
diff changeset
262 SONAMEFLAG = -h SONAME
a61af66fc99e Initial load
duke
parents:
diff changeset
263
a61af66fc99e Initial load
duke
parents:
diff changeset
264 # Build shared library
a61af66fc99e Initial load
duke
parents:
diff changeset
265 SHARED_FLAG = -G
a61af66fc99e Initial load
duke
parents:
diff changeset
266
a61af66fc99e Initial load
duke
parents:
diff changeset
267 # We don't need libCstd.so and librwtools7.so, only libCrun.so
a61af66fc99e Initial load
duke
parents:
diff changeset
268 CFLAGS += -library=%none
a61af66fc99e Initial load
duke
parents:
diff changeset
269 LFLAGS += -library=%none
a61af66fc99e Initial load
duke
parents:
diff changeset
270
a61af66fc99e Initial load
duke
parents:
diff changeset
271 LFLAGS += -mt
a61af66fc99e Initial load
duke
parents:
diff changeset
272
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
273 endif # COMPILER_REV_NUMERIC >= 505
0
a61af66fc99e Initial load
duke
parents:
diff changeset
274
a61af66fc99e Initial load
duke
parents:
diff changeset
275 ######################################
a61af66fc99e Initial load
duke
parents:
diff changeset
276 # End 5.5 Forte compiler options #
a61af66fc99e Initial load
duke
parents:
diff changeset
277 ######################################
a61af66fc99e Initial load
duke
parents:
diff changeset
278
a61af66fc99e Initial load
duke
parents:
diff changeset
279 ######################################
a61af66fc99e Initial load
duke
parents:
diff changeset
280 # Begin 5.2 Forte compiler options #
a61af66fc99e Initial load
duke
parents:
diff changeset
281 ######################################
a61af66fc99e Initial load
duke
parents:
diff changeset
282
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
283 ifeq ($(COMPILER_REV_NUMERIC), 502)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
284
a61af66fc99e Initial load
duke
parents:
diff changeset
285 CFLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
286 AOUT_FLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
287 LIB_FLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
288 LFLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
289
a61af66fc99e Initial load
duke
parents:
diff changeset
290 ifeq ("${Platform_arch}", "sparc")
a61af66fc99e Initial load
duke
parents:
diff changeset
291
a61af66fc99e Initial load
duke
parents:
diff changeset
292 # Flags for Optimization
a61af66fc99e Initial load
duke
parents:
diff changeset
293
a61af66fc99e Initial load
duke
parents:
diff changeset
294 # [phh] Commented out pending verification that we do indeed want
a61af66fc99e Initial load
duke
parents:
diff changeset
295 # to potentially bias against u1 and u3 targets.
a61af66fc99e Initial load
duke
parents:
diff changeset
296 #CFLAGS += -xchip=ultra2
a61af66fc99e Initial load
duke
parents:
diff changeset
297
a61af66fc99e Initial load
duke
parents:
diff changeset
298 ifdef LP64
a61af66fc99e Initial load
duke
parents:
diff changeset
299 # SC5.0 tools on v9 are flakey at -xO4
a61af66fc99e Initial load
duke
parents:
diff changeset
300 # [phh] Is this still true for 6.1?
a61af66fc99e Initial load
duke
parents:
diff changeset
301 OPT_CFLAGS=-xO3 $(EXTRA_OPT_CFLAGS)
a61af66fc99e Initial load
duke
parents:
diff changeset
302 else
a61af66fc99e Initial load
duke
parents:
diff changeset
303 OPT_CFLAGS=-xO4 $(EXTRA_OPT_CFLAGS)
a61af66fc99e Initial load
duke
parents:
diff changeset
304 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
305
a61af66fc99e Initial load
duke
parents:
diff changeset
306 endif # sparc
a61af66fc99e Initial load
duke
parents:
diff changeset
307
a61af66fc99e Initial load
duke
parents:
diff changeset
308 ifeq ("${Platform_arch_model}", "x86_32")
a61af66fc99e Initial load
duke
parents:
diff changeset
309
a61af66fc99e Initial load
duke
parents:
diff changeset
310 OPT_CFLAGS=-xtarget=pentium $(EXTRA_OPT_CFLAGS)
a61af66fc99e Initial load
duke
parents:
diff changeset
311
a61af66fc99e Initial load
duke
parents:
diff changeset
312 # SC5.0 tools on x86 are flakey at -xO4
a61af66fc99e Initial load
duke
parents:
diff changeset
313 # [phh] Is this still true for 6.1?
a61af66fc99e Initial load
duke
parents:
diff changeset
314 OPT_CFLAGS+=-xO3
a61af66fc99e Initial load
duke
parents:
diff changeset
315
a61af66fc99e Initial load
duke
parents:
diff changeset
316 endif # 32bit x86
a61af66fc99e Initial load
duke
parents:
diff changeset
317
a61af66fc99e Initial load
duke
parents:
diff changeset
318 # no more exceptions
a61af66fc99e Initial load
duke
parents:
diff changeset
319 CFLAGS/NOEX=-noex
a61af66fc99e Initial load
duke
parents:
diff changeset
320
1123
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
321 # Inline functions
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
322 CFLAGS += $(GAMMADIR)/src/os_cpu/solaris_${Platform_arch}/vm/solaris_${Platform_arch_model}.il
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
323
0
a61af66fc99e Initial load
duke
parents:
diff changeset
324 # Reduce code bloat by reverting back to 5.0 behavior for static initializers
a61af66fc99e Initial load
duke
parents:
diff changeset
325 CFLAGS += -Qoption ccfe -one_static_init
a61af66fc99e Initial load
duke
parents:
diff changeset
326
a61af66fc99e Initial load
duke
parents:
diff changeset
327 # PIC is safer for SPARC, and is considerably slower
a61af66fc99e Initial load
duke
parents:
diff changeset
328 # a file foo.o which wants to compile -pic can set "PICFLAG/foo.o = -PIC"
a61af66fc99e Initial load
duke
parents:
diff changeset
329 PICFLAG = -KPIC
a61af66fc99e Initial load
duke
parents:
diff changeset
330 PICFLAG/DEFAULT = $(PICFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
331 # [RGV] Need to figure which files to remove to get link to work
a61af66fc99e Initial load
duke
parents:
diff changeset
332 #PICFLAG/BETTER = -pic
a61af66fc99e Initial load
duke
parents:
diff changeset
333 PICFLAG/BETTER = $(PICFLAG/DEFAULT)
a61af66fc99e Initial load
duke
parents:
diff changeset
334 PICFLAG/BYFILE = $(PICFLAG/$@)$(PICFLAG/DEFAULT$(PICFLAG/$@))
a61af66fc99e Initial load
duke
parents:
diff changeset
335
1123
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
336 # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file.
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
337 MAPFLAG = -M FILENAME
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
338
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
339 # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
340 SONAMEFLAG = -h SONAME
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
341
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
342 # Build shared library
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
343 SHARED_FLAG = -G
167c2986d91b 6843629: Make current hotspot build part of jdk5 control build
phh
parents: 844
diff changeset
344
0
a61af66fc99e Initial load
duke
parents:
diff changeset
345 # Would be better if these weren't needed, since we link with CC, but
a61af66fc99e Initial load
duke
parents:
diff changeset
346 # at present removing them causes run-time errors
a61af66fc99e Initial load
duke
parents:
diff changeset
347 LFLAGS += -library=Crun
a61af66fc99e Initial load
duke
parents:
diff changeset
348 LIBS += -library=Crun -lCrun
a61af66fc99e Initial load
duke
parents:
diff changeset
349
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
350 endif # COMPILER_REV_NUMERIC == 502
0
a61af66fc99e Initial load
duke
parents:
diff changeset
351
a61af66fc99e Initial load
duke
parents:
diff changeset
352 ##################################
a61af66fc99e Initial load
duke
parents:
diff changeset
353 # End 5.2 Forte compiler options #
a61af66fc99e Initial load
duke
parents:
diff changeset
354 ##################################
a61af66fc99e Initial load
duke
parents:
diff changeset
355
a61af66fc99e Initial load
duke
parents:
diff changeset
356 ##################################
a61af66fc99e Initial load
duke
parents:
diff changeset
357 # Begin old 5.1 compiler options #
a61af66fc99e Initial load
duke
parents:
diff changeset
358 ##################################
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
359 ifeq ($(COMPILER_REV_NUMERIC), 501)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
360
a61af66fc99e Initial load
duke
parents:
diff changeset
361 _JUNK_ := $(shell echo >&2 \
a61af66fc99e Initial load
duke
parents:
diff changeset
362 "*** ERROR: sparkWorks.make incomplete for 5.1 compiler")
a61af66fc99e Initial load
duke
parents:
diff changeset
363 @exit 1
a61af66fc99e Initial load
duke
parents:
diff changeset
364 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
365 ##################################
a61af66fc99e Initial load
duke
parents:
diff changeset
366 # End old 5.1 compiler options #
a61af66fc99e Initial load
duke
parents:
diff changeset
367 ##################################
a61af66fc99e Initial load
duke
parents:
diff changeset
368
a61af66fc99e Initial load
duke
parents:
diff changeset
369 ##################################
a61af66fc99e Initial load
duke
parents:
diff changeset
370 # Begin old 5.0 compiler options #
a61af66fc99e Initial load
duke
parents:
diff changeset
371 ##################################
a61af66fc99e Initial load
duke
parents:
diff changeset
372
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
373 ifeq (${COMPILER_REV_NUMERIC}, 500)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
374
a61af66fc99e Initial load
duke
parents:
diff changeset
375 # Had to hoist this higher apparently because of other changes. Must
a61af66fc99e Initial load
duke
parents:
diff changeset
376 # come before -xarch specification.
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
377 # NOTE: native says optimize for the machine doing the compile, bad news.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
378 CFLAGS += -xtarget=native
a61af66fc99e Initial load
duke
parents:
diff changeset
379
a61af66fc99e Initial load
duke
parents:
diff changeset
380 CFLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
381 AOUT_FLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
382 LIB_FLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
383 LFLAGS += $(ARCHFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
384
a61af66fc99e Initial load
duke
parents:
diff changeset
385 CFLAGS += -library=iostream
a61af66fc99e Initial load
duke
parents:
diff changeset
386 LFLAGS += -library=iostream -library=Crun
a61af66fc99e Initial load
duke
parents:
diff changeset
387 LIBS += -library=iostream -library=Crun -lCrun
a61af66fc99e Initial load
duke
parents:
diff changeset
388
a61af66fc99e Initial load
duke
parents:
diff changeset
389 # Flags for Optimization
a61af66fc99e Initial load
duke
parents:
diff changeset
390 ifdef LP64
a61af66fc99e Initial load
duke
parents:
diff changeset
391 # SC5.0 tools on v9 are flakey at -xO4
a61af66fc99e Initial load
duke
parents:
diff changeset
392 OPT_CFLAGS=-xO3 $(EXTRA_OPT_CFLAGS)
a61af66fc99e Initial load
duke
parents:
diff changeset
393 else
a61af66fc99e Initial load
duke
parents:
diff changeset
394 OPT_CFLAGS=-xO4 $(EXTRA_OPT_CFLAGS)
a61af66fc99e Initial load
duke
parents:
diff changeset
395 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
396
a61af66fc99e Initial load
duke
parents:
diff changeset
397 ifeq ("${Platform_arch}", "sparc")
a61af66fc99e Initial load
duke
parents:
diff changeset
398
a61af66fc99e Initial load
duke
parents:
diff changeset
399 CFLAGS += $(GAMMADIR)/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.il
a61af66fc99e Initial load
duke
parents:
diff changeset
400
a61af66fc99e Initial load
duke
parents:
diff changeset
401 endif # sparc
a61af66fc99e Initial load
duke
parents:
diff changeset
402
a61af66fc99e Initial load
duke
parents:
diff changeset
403 ifeq ("${Platform_arch_model}", "x86_32")
a61af66fc99e Initial load
duke
parents:
diff changeset
404 OPT_CFLAGS=-xtarget=pentium $(EXTRA_OPT_CFLAGS)
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
405 ifeq ("${COMPILER_REV_NUMERIC}", "500")
0
a61af66fc99e Initial load
duke
parents:
diff changeset
406 # SC5.0 tools on x86 are flakey at -xO4
a61af66fc99e Initial load
duke
parents:
diff changeset
407 OPT_CFLAGS+=-xO3
a61af66fc99e Initial load
duke
parents:
diff changeset
408 else
a61af66fc99e Initial load
duke
parents:
diff changeset
409 OPT_CFLAGS+=-xO4
a61af66fc99e Initial load
duke
parents:
diff changeset
410 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
411
a61af66fc99e Initial load
duke
parents:
diff changeset
412 CFLAGS += $(GAMMADIR)/src/os_cpu/solaris_x86/vm/solaris_x86_32.il
a61af66fc99e Initial load
duke
parents:
diff changeset
413
a61af66fc99e Initial load
duke
parents:
diff changeset
414 endif # 32bit x86
a61af66fc99e Initial load
duke
parents:
diff changeset
415
a61af66fc99e Initial load
duke
parents:
diff changeset
416 # The following options run into misaligned ldd problem (raj)
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
417 #OPT_CFLAGS = -fast -O4 $(ARCHFLAG/sparc) -xchip=ultra
0
a61af66fc99e Initial load
duke
parents:
diff changeset
418
a61af66fc99e Initial load
duke
parents:
diff changeset
419 # no more exceptions
a61af66fc99e Initial load
duke
parents:
diff changeset
420 CFLAGS/NOEX=-noex
a61af66fc99e Initial load
duke
parents:
diff changeset
421
a61af66fc99e Initial load
duke
parents:
diff changeset
422 # PIC is safer for SPARC, and is considerably slower
a61af66fc99e Initial load
duke
parents:
diff changeset
423 # a file foo.o which wants to compile -pic can set "PICFLAG/foo.o = -PIC"
a61af66fc99e Initial load
duke
parents:
diff changeset
424 PICFLAG = -PIC
a61af66fc99e Initial load
duke
parents:
diff changeset
425 PICFLAG/DEFAULT = $(PICFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
426 # [RGV] Need to figure which files to remove to get link to work
a61af66fc99e Initial load
duke
parents:
diff changeset
427 #PICFLAG/BETTER = -pic
a61af66fc99e Initial load
duke
parents:
diff changeset
428 PICFLAG/BETTER = $(PICFLAG/DEFAULT)
a61af66fc99e Initial load
duke
parents:
diff changeset
429 PICFLAG/BYFILE = $(PICFLAG/$@)$(PICFLAG/DEFAULT$(PICFLAG/$@))
a61af66fc99e Initial load
duke
parents:
diff changeset
430
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
431 endif # COMPILER_REV_NUMERIC = 500
0
a61af66fc99e Initial load
duke
parents:
diff changeset
432
a61af66fc99e Initial load
duke
parents:
diff changeset
433 ################################
a61af66fc99e Initial load
duke
parents:
diff changeset
434 # End old 5.0 compiler options #
a61af66fc99e Initial load
duke
parents:
diff changeset
435 ################################
a61af66fc99e Initial load
duke
parents:
diff changeset
436
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
437 ifeq ("${COMPILER_REV_NUMERIC}", "402")
0
a61af66fc99e Initial load
duke
parents:
diff changeset
438 # 4.2 COMPILERS SHOULD NO LONGER BE USED
a61af66fc99e Initial load
duke
parents:
diff changeset
439 _JUNK_ := $(shell echo >&2 \
a61af66fc99e Initial load
duke
parents:
diff changeset
440 "*** ERROR: SC4.2 compilers are not supported by this code base!")
a61af66fc99e Initial load
duke
parents:
diff changeset
441 @exit 1
a61af66fc99e Initial load
duke
parents:
diff changeset
442 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
443
a61af66fc99e Initial load
duke
parents:
diff changeset
444 # do not include shared lib path in a.outs
a61af66fc99e Initial load
duke
parents:
diff changeset
445 AOUT_FLAGS += -norunpath
a61af66fc99e Initial load
duke
parents:
diff changeset
446 LFLAGS_VM = -norunpath -z noversion
a61af66fc99e Initial load
duke
parents:
diff changeset
447
a61af66fc99e Initial load
duke
parents:
diff changeset
448 # need position-indep-code for shared libraries
a61af66fc99e Initial load
duke
parents:
diff changeset
449 # (ild appears to get errors on PIC code, so we'll try non-PIC for debug)
a61af66fc99e Initial load
duke
parents:
diff changeset
450 ifeq ($(PICFLAGS),DEFAULT)
a61af66fc99e Initial load
duke
parents:
diff changeset
451 VM_PICFLAG/LIBJVM = $(PICFLAG/DEFAULT)
a61af66fc99e Initial load
duke
parents:
diff changeset
452 else
a61af66fc99e Initial load
duke
parents:
diff changeset
453 VM_PICFLAG/LIBJVM = $(PICFLAG/BYFILE)
a61af66fc99e Initial load
duke
parents:
diff changeset
454 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
455 VM_PICFLAG/AOUT =
a61af66fc99e Initial load
duke
parents:
diff changeset
456
a61af66fc99e Initial load
duke
parents:
diff changeset
457 VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO))
a61af66fc99e Initial load
duke
parents:
diff changeset
458 CFLAGS += $(VM_PICFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
459
a61af66fc99e Initial load
duke
parents:
diff changeset
460 # less dynamic linking (no PLTs, please)
a61af66fc99e Initial load
duke
parents:
diff changeset
461 #LIB_FLAGS += $(LINK_MODE)
a61af66fc99e Initial load
duke
parents:
diff changeset
462 # %%%%% despite -znodefs, -Bsymbolic gets link errors -- Rose
a61af66fc99e Initial load
duke
parents:
diff changeset
463
a61af66fc99e Initial load
duke
parents:
diff changeset
464 LINK_MODE = $(LINK_MODE/$(VERSION))
a61af66fc99e Initial load
duke
parents:
diff changeset
465 LINK_MODE/debug =
a61af66fc99e Initial load
duke
parents:
diff changeset
466 LINK_MODE/optimized = -Bsymbolic -znodefs
a61af66fc99e Initial load
duke
parents:
diff changeset
467
a61af66fc99e Initial load
duke
parents:
diff changeset
468 # Have thread local errnos
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
469 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 505), 1)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
470 CFLAGS += -mt
a61af66fc99e Initial load
duke
parents:
diff changeset
471 else
a61af66fc99e Initial load
duke
parents:
diff changeset
472 CFLAGS += -D_REENTRANT
a61af66fc99e Initial load
duke
parents:
diff changeset
473 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
474
a61af66fc99e Initial load
duke
parents:
diff changeset
475 ifdef CC_INTERP
a61af66fc99e Initial load
duke
parents:
diff changeset
476 # C++ Interpreter
a61af66fc99e Initial load
duke
parents:
diff changeset
477 CFLAGS += -DCC_INTERP
a61af66fc99e Initial load
duke
parents:
diff changeset
478 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
479
a61af66fc99e Initial load
duke
parents:
diff changeset
480 # Flags for Debugging
a61af66fc99e Initial load
duke
parents:
diff changeset
481 DEBUG_CFLAGS = -g
a61af66fc99e Initial load
duke
parents:
diff changeset
482 FASTDEBUG_CFLAGS = -g0
a61af66fc99e Initial load
duke
parents:
diff changeset
483 # The -g0 setting allows the C++ frontend to inline, which is a big win.
a61af66fc99e Initial load
duke
parents:
diff changeset
484
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
485 # Special global options for SS12
1547
fb1a39993f69 6951319: enable solaris builds using Sun Studio 12 update 1
jcoomes
parents: 1123
diff changeset
486 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
158
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
487 # There appears to be multiple issues with the new Dwarf2 debug format, so
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
488 # we tell the compiler to use the older 'stabs' debug format all the time.
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
489 # Note that this needs to be used in optimized compiles too to be 100%.
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
490 # This is a workaround for SS12 (5.9) bug 6694600
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
491 CFLAGS += -xdebugformat=stabs
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
492 endif
a49545cab84a 6563752: Build and test JDK7 with Sun Studio 12 Express compilers (prep makefiles)
ohair
parents: 113
diff changeset
493
0
a61af66fc99e Initial load
duke
parents:
diff changeset
494 # Enable the following CFLAGS additions if you need to compare the
a61af66fc99e Initial load
duke
parents:
diff changeset
495 # built ELF objects.
a61af66fc99e Initial load
duke
parents:
diff changeset
496 #
a61af66fc99e Initial load
duke
parents:
diff changeset
497 # The -g option makes static data global and the "-Qoption ccfe
a61af66fc99e Initial load
duke
parents:
diff changeset
498 # -xglobalstatic" option tells the compiler to not globalize static
a61af66fc99e Initial load
duke
parents:
diff changeset
499 # data using a unique globalization prefix. Instead force the use of
a61af66fc99e Initial load
duke
parents:
diff changeset
500 # a static globalization prefix based on the source filepath so the
a61af66fc99e Initial load
duke
parents:
diff changeset
501 # objects from two identical compilations are the same.
a61af66fc99e Initial load
duke
parents:
diff changeset
502 #DEBUG_CFLAGS += -Qoption ccfe -xglobalstatic
a61af66fc99e Initial load
duke
parents:
diff changeset
503 #FASTDEBUG_CFLAGS += -Qoption ccfe -xglobalstatic
a61af66fc99e Initial load
duke
parents:
diff changeset
504
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
505 ifeq (${COMPILER_REV_NUMERIC}, 502)
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
506 COMPILER_DATE := $(shell $(CPP) -V 2>&1 | sed -n '/^.*[ ]C++[ ]\([1-9]\.[0-9][0-9]*\)/p' | awk '{ print $$NF; }')
0
a61af66fc99e Initial load
duke
parents:
diff changeset
507 ifeq (${COMPILER_DATE}, 2001/01/31)
a61af66fc99e Initial load
duke
parents:
diff changeset
508 # disable -g0 in fastdebug since SC6.1 dated 2001/01/31 seems to be buggy
a61af66fc99e Initial load
duke
parents:
diff changeset
509 # use an innocuous value because it will get -g if it's empty
a61af66fc99e Initial load
duke
parents:
diff changeset
510 FASTDEBUG_CFLAGS = -c
a61af66fc99e Initial load
duke
parents:
diff changeset
511 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
512 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
513
a61af66fc99e Initial load
duke
parents:
diff changeset
514 # Uncomment or 'gmake CFLAGS_BROWSE=-sbfast' to get source browser information.
a61af66fc99e Initial load
duke
parents:
diff changeset
515 # CFLAGS_BROWSE = -sbfast
a61af66fc99e Initial load
duke
parents:
diff changeset
516 CFLAGS += $(CFLAGS_BROWSE)
a61af66fc99e Initial load
duke
parents:
diff changeset
517
a61af66fc99e Initial load
duke
parents:
diff changeset
518 # ILD is gone as of SS11 (5.8), not supportted in SS10 (5.7)
430
4d20a3aaf1ab 6769748: Fix solaris makefiles for the case when "CC -V" produces several lines
kvn
parents: 278
diff changeset
519 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \< 507), 1)
0
a61af66fc99e Initial load
duke
parents:
diff changeset
520 # use ild when debugging (but when optimizing we want reproducible results)
a61af66fc99e Initial load
duke
parents:
diff changeset
521 ILDFLAG = $(ILDFLAG/$(VERSION))
a61af66fc99e Initial load
duke
parents:
diff changeset
522 ILDFLAG/debug = -xildon
a61af66fc99e Initial load
duke
parents:
diff changeset
523 ILDFLAG/optimized =
a61af66fc99e Initial load
duke
parents:
diff changeset
524 AOUT_FLAGS += $(ILDFLAG)
a61af66fc99e Initial load
duke
parents:
diff changeset
525 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
526
a61af66fc99e Initial load
duke
parents:
diff changeset
527 # Where to put the *.o files (a.out, or shared library)?
a61af66fc99e Initial load
duke
parents:
diff changeset
528 LINK_INTO = $(LINK_INTO/$(VERSION))
a61af66fc99e Initial load
duke
parents:
diff changeset
529 LINK_INTO/debug = LIBJVM
a61af66fc99e Initial load
duke
parents:
diff changeset
530 LINK_INTO/optimized = LIBJVM
a61af66fc99e Initial load
duke
parents:
diff changeset
531
a61af66fc99e Initial load
duke
parents:
diff changeset
532 # We link the debug version into the a.out because:
a61af66fc99e Initial load
duke
parents:
diff changeset
533 # 1. ild works on a.out but not shared libraries, and using ild
a61af66fc99e Initial load
duke
parents:
diff changeset
534 # can cut rebuild times by 25% for small changes. (ILD is gone in SS11)
a61af66fc99e Initial load
duke
parents:
diff changeset
535 # 2. dbx cannot gracefully set breakpoints in shared libraries
a61af66fc99e Initial load
duke
parents:
diff changeset
536 #
a61af66fc99e Initial load
duke
parents:
diff changeset
537
a61af66fc99e Initial load
duke
parents:
diff changeset
538 # apply this setting to link into the shared library even in the debug version:
a61af66fc99e Initial load
duke
parents:
diff changeset
539 ifdef LP64
a61af66fc99e Initial load
duke
parents:
diff changeset
540 LINK_INTO = LIBJVM
a61af66fc99e Initial load
duke
parents:
diff changeset
541 else
a61af66fc99e Initial load
duke
parents:
diff changeset
542 #LINK_INTO = LIBJVM
a61af66fc99e Initial load
duke
parents:
diff changeset
543 endif
a61af66fc99e Initial load
duke
parents:
diff changeset
544
a61af66fc99e Initial load
duke
parents:
diff changeset
545 MCS = /usr/ccs/bin/mcs
a61af66fc99e Initial load
duke
parents:
diff changeset
546 STRIP = /usr/ccs/bin/strip
a61af66fc99e Initial load
duke
parents:
diff changeset
547
a61af66fc99e Initial load
duke
parents:
diff changeset
548 # Solaris platforms collect lots of redundant file-ident lines,
a61af66fc99e Initial load
duke
parents:
diff changeset
549 # to the point of wasting a significant percentage of file space.
a61af66fc99e Initial load
duke
parents:
diff changeset
550 # (The text is stored in ELF .comment sections, contributed by
a61af66fc99e Initial load
duke
parents:
diff changeset
551 # all "#pragma ident" directives in header and source files.)
a61af66fc99e Initial load
duke
parents:
diff changeset
552 # This command "compresses" the .comment sections simply by
a61af66fc99e Initial load
duke
parents:
diff changeset
553 # removing repeated lines. The data can be extracted from
a61af66fc99e Initial load
duke
parents:
diff changeset
554 # binaries in the field by using "mcs -p libjvm.so" or the older
a61af66fc99e Initial load
duke
parents:
diff changeset
555 # command "what libjvm.so".
a61af66fc99e Initial load
duke
parents:
diff changeset
556 LINK_LIB.CC/POST_HOOK += $(MCS) -c $@ || exit 1;
a61af66fc99e Initial load
duke
parents:
diff changeset
557 # (The exit 1 is necessary to cause a build failure if the command fails and
a61af66fc99e Initial load
duke
parents:
diff changeset
558 # multiple commands are strung together, and the final semicolon is necessary
a61af66fc99e Initial load
duke
parents:
diff changeset
559 # since the hook must terminate itself as a valid command.)
a61af66fc99e Initial load
duke
parents:
diff changeset
560
a61af66fc99e Initial load
duke
parents:
diff changeset
561 # Also, strip debug and line number information (worth about 1.7Mb).
a61af66fc99e Initial load
duke
parents:
diff changeset
562 STRIP_LIB.CC/POST_HOOK = $(STRIP) -x $@ || exit 1;
a61af66fc99e Initial load
duke
parents:
diff changeset
563 # STRIP_LIB.CC/POST_HOOK is incorporated into LINK_LIB.CC/POST_HOOK
a61af66fc99e Initial load
duke
parents:
diff changeset
564 # in certain configurations, such as product.make. Other configurations,
a61af66fc99e Initial load
duke
parents:
diff changeset
565 # such as debug.make, do not include the strip operation.