Mercurial > hg > truffle
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 |
rev | line source |
---|---|
0 | 1 # |
1972 | 2 # Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. |
0 | 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 # | |
5 # This code is free software; you can redistribute it and/or modify it | |
6 # under the terms of the GNU General Public License version 2 only, as | |
7 # published by the Free Software Foundation. | |
8 # | |
9 # This code is distributed in the hope that it will be useful, but WITHOUT | |
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 # version 2 for more details (a copy is included in the LICENSE file that | |
13 # accompanied this code). | |
14 # | |
15 # You should have received a copy of the GNU General Public License version | |
16 # 2 along with this work; if not, write to the Free Software Foundation, | |
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
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 | 22 # |
23 # | |
24 | |
25 # Compiler-specific flags for sparcworks. | |
26 | |
27 # tell make which C and C++ compilers to use | |
28 CC = cc | |
29 CPP = CC | |
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 | 33 AS = /usr/ccs/bin/as |
34 | |
35 NM = /usr/ccs/bin/nm | |
36 NAWK = /bin/nawk | |
37 | |
38 REORDER_FLAG = -xF | |
39 | |
40 # Check for the versions of C++ and C compilers ($CPP and $CC) used. | |
41 | |
42 # Get the last thing on the line that looks like x.x+ (x is a digit). | |
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 | 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 | 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 | 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 | 68 endif |
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 | 78 endif |
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 | 82 # Fail the build if __fabsf is used. __fabsf exists only in Solaris 8 2/04 |
83 # and newer; objects with a dependency on this symbol will not run on older | |
84 # Solaris 8. | |
85 JVM_FAIL_IF_UNDEFINED = __fabsf | |
86 | |
87 JVM_CHECK_SYMBOLS = $(NM) -u -p $(LIBJVM.o) | \ | |
88 $(NAWK) -v f="${JVM_FAIL_IF_UNDEFINED}" \ | |
89 'BEGIN { c=split(f,s); rc=0; } \ | |
90 /:$$/ { file = $$1; } \ | |
91 /[^:]$$/ { for(n=1;n<=c;++n) { \ | |
92 if($$1==s[n]) { \ | |
93 printf("JVM_CHECK_SYMBOLS: %s contains illegal symbol %s\n", \ | |
94 file,$$1); \ | |
95 rc=1; \ | |
96 } \ | |
97 } \ | |
98 } \ | |
99 END { exit rc; }' | |
100 | |
101 LINK_LIB.CC/PRE_HOOK += $(JVM_CHECK_SYMBOLS) || exit 1; | |
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 | 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 | 132 |
133 # Optional sub-directory in /usr/lib where BUILDARCH libraries are kept. | |
134 ISA_DIR=$(ISA_DIR/$(BUILDARCH)) | |
135 ISA_DIR/sparcv9=/sparcv9 | |
136 ISA_DIR/amd64=/amd64 | |
137 | |
138 # Use these to work around compiler bugs: | |
139 OPT_CFLAGS/SLOWER=-xO3 | |
140 OPT_CFLAGS/O2=-xO2 | |
141 OPT_CFLAGS/NOOPT=-xO1 | |
142 | |
1972 | 143 # Flags for creating the dependency files. |
144 ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1) | |
145 DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d) | |
146 endif | |
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 | 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 | 167 ################################################# |
168 # Begin current (>=5.6) Forte compiler options # | |
169 ################################################# | |
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 | 172 |
173 ifeq ("${Platform_arch}", "sparc") | |
174 | |
175 # We MUST allow data alignment of 4 for sparc (sparcv9 is ok at 8s) | |
176 ifndef LP64 | |
177 CFLAGS += -xmemalign=4s | |
178 endif | |
179 | |
180 endif | |
181 | |
182 endif | |
183 | |
184 ################################################# | |
185 # Begin current (>=5.5) Forte compiler options # | |
186 ################################################# | |
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 | 189 |
190 CFLAGS += $(ARCHFLAG) | |
191 AOUT_FLAGS += $(ARCHFLAG) | |
192 LIB_FLAGS += $(ARCHFLAG) | |
193 LFLAGS += $(ARCHFLAG) | |
194 | |
195 ifeq ("${Platform_arch}", "sparc") | |
196 | |
197 # Flags for Optimization | |
198 | |
199 # [phh] Commented out pending verification that we do indeed want | |
200 # to potentially bias against u1 and u3 targets. | |
201 #CFLAGS += -xchip=ultra2 | |
202 | |
203 OPT_CFLAGS=-xO4 $(EXTRA_OPT_CFLAGS) | |
204 | |
205 endif # sparc | |
206 | |
207 ifeq ("${Platform_arch_model}", "x86_32") | |
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 | 210 |
211 endif # 32bit x86 | |
212 | |
213 ifeq ("${Platform_arch_model}", "x86_64") | |
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 | 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 | 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 | 222 |
223 # -xO3 is faster than -xO4 on specjbb with SS10 compiler | |
224 OPT_CFLAGS=-xO4 $(EXTRA_OPT_CFLAGS) | |
225 | |
226 endif # 64bit x86 | |
227 | |
228 # Inline functions | |
229 CFLAGS += $(GAMMADIR)/src/os_cpu/solaris_${Platform_arch}/vm/solaris_${Platform_arch_model}.il | |
230 | |
231 # no more exceptions | |
232 CFLAGS/NOEX=-features=no%except | |
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 | 240 # Reduce code bloat by reverting back to 5.0 behavior for static initializers |
241 CFLAGS += -features=no%split_init | |
242 | |
243 # Use -D_Crun_inline_placement so we don't get references to | |
244 # __1c2n6FIpv_0_ or void*operator new(unsigned,void*) | |
245 # This avoids the hard requirement of the newer Solaris C++ runtime patches. | |
246 # NOTE: This is an undocumented feature of the SS10 compiler. See 6306698. | |
247 CFLAGS += -D_Crun_inline_placement | |
248 | |
249 # PIC is safer for SPARC, and is considerably slower | |
250 # a file foo.o which wants to compile -pic can set "PICFLAG/foo.o = -PIC" | |
251 PICFLAG = -KPIC | |
252 PICFLAG/DEFAULT = $(PICFLAG) | |
253 # [RGV] Need to figure which files to remove to get link to work | |
254 #PICFLAG/BETTER = -pic | |
255 PICFLAG/BETTER = $(PICFLAG/DEFAULT) | |
256 PICFLAG/BYFILE = $(PICFLAG/$@)$(PICFLAG/DEFAULT$(PICFLAG/$@)) | |
257 | |
258 # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. | |
259 MAPFLAG = -M FILENAME | |
260 | |
261 # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj | |
262 SONAMEFLAG = -h SONAME | |
263 | |
264 # Build shared library | |
265 SHARED_FLAG = -G | |
266 | |
267 # We don't need libCstd.so and librwtools7.so, only libCrun.so | |
268 CFLAGS += -library=%none | |
269 LFLAGS += -library=%none | |
270 | |
271 LFLAGS += -mt | |
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 | 274 |
275 ###################################### | |
276 # End 5.5 Forte compiler options # | |
277 ###################################### | |
278 | |
279 ###################################### | |
280 # Begin 5.2 Forte compiler options # | |
281 ###################################### | |
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 | 284 |
285 CFLAGS += $(ARCHFLAG) | |
286 AOUT_FLAGS += $(ARCHFLAG) | |
287 LIB_FLAGS += $(ARCHFLAG) | |
288 LFLAGS += $(ARCHFLAG) | |
289 | |
290 ifeq ("${Platform_arch}", "sparc") | |
291 | |
292 # Flags for Optimization | |
293 | |
294 # [phh] Commented out pending verification that we do indeed want | |
295 # to potentially bias against u1 and u3 targets. | |
296 #CFLAGS += -xchip=ultra2 | |
297 | |
298 ifdef LP64 | |
299 # SC5.0 tools on v9 are flakey at -xO4 | |
300 # [phh] Is this still true for 6.1? | |
301 OPT_CFLAGS=-xO3 $(EXTRA_OPT_CFLAGS) | |
302 else | |
303 OPT_CFLAGS=-xO4 $(EXTRA_OPT_CFLAGS) | |
304 endif | |
305 | |
306 endif # sparc | |
307 | |
308 ifeq ("${Platform_arch_model}", "x86_32") | |
309 | |
310 OPT_CFLAGS=-xtarget=pentium $(EXTRA_OPT_CFLAGS) | |
311 | |
312 # SC5.0 tools on x86 are flakey at -xO4 | |
313 # [phh] Is this still true for 6.1? | |
314 OPT_CFLAGS+=-xO3 | |
315 | |
316 endif # 32bit x86 | |
317 | |
318 # no more exceptions | |
319 CFLAGS/NOEX=-noex | |
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 | 324 # Reduce code bloat by reverting back to 5.0 behavior for static initializers |
325 CFLAGS += -Qoption ccfe -one_static_init | |
326 | |
327 # PIC is safer for SPARC, and is considerably slower | |
328 # a file foo.o which wants to compile -pic can set "PICFLAG/foo.o = -PIC" | |
329 PICFLAG = -KPIC | |
330 PICFLAG/DEFAULT = $(PICFLAG) | |
331 # [RGV] Need to figure which files to remove to get link to work | |
332 #PICFLAG/BETTER = -pic | |
333 PICFLAG/BETTER = $(PICFLAG/DEFAULT) | |
334 PICFLAG/BYFILE = $(PICFLAG/$@)$(PICFLAG/DEFAULT$(PICFLAG/$@)) | |
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 | 345 # Would be better if these weren't needed, since we link with CC, but |
346 # at present removing them causes run-time errors | |
347 LFLAGS += -library=Crun | |
348 LIBS += -library=Crun -lCrun | |
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 | 351 |
352 ################################## | |
353 # End 5.2 Forte compiler options # | |
354 ################################## | |
355 | |
356 ################################## | |
357 # Begin old 5.1 compiler options # | |
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 | 360 |
361 _JUNK_ := $(shell echo >&2 \ | |
362 "*** ERROR: sparkWorks.make incomplete for 5.1 compiler") | |
363 @exit 1 | |
364 endif | |
365 ################################## | |
366 # End old 5.1 compiler options # | |
367 ################################## | |
368 | |
369 ################################## | |
370 # Begin old 5.0 compiler options # | |
371 ################################## | |
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 | 374 |
375 # Had to hoist this higher apparently because of other changes. Must | |
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 | 378 CFLAGS += -xtarget=native |
379 | |
380 CFLAGS += $(ARCHFLAG) | |
381 AOUT_FLAGS += $(ARCHFLAG) | |
382 LIB_FLAGS += $(ARCHFLAG) | |
383 LFLAGS += $(ARCHFLAG) | |
384 | |
385 CFLAGS += -library=iostream | |
386 LFLAGS += -library=iostream -library=Crun | |
387 LIBS += -library=iostream -library=Crun -lCrun | |
388 | |
389 # Flags for Optimization | |
390 ifdef LP64 | |
391 # SC5.0 tools on v9 are flakey at -xO4 | |
392 OPT_CFLAGS=-xO3 $(EXTRA_OPT_CFLAGS) | |
393 else | |
394 OPT_CFLAGS=-xO4 $(EXTRA_OPT_CFLAGS) | |
395 endif | |
396 | |
397 ifeq ("${Platform_arch}", "sparc") | |
398 | |
399 CFLAGS += $(GAMMADIR)/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.il | |
400 | |
401 endif # sparc | |
402 | |
403 ifeq ("${Platform_arch_model}", "x86_32") | |
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 | 406 # SC5.0 tools on x86 are flakey at -xO4 |
407 OPT_CFLAGS+=-xO3 | |
408 else | |
409 OPT_CFLAGS+=-xO4 | |
410 endif | |
411 | |
412 CFLAGS += $(GAMMADIR)/src/os_cpu/solaris_x86/vm/solaris_x86_32.il | |
413 | |
414 endif # 32bit x86 | |
415 | |
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 | 418 |
419 # no more exceptions | |
420 CFLAGS/NOEX=-noex | |
421 | |
422 # PIC is safer for SPARC, and is considerably slower | |
423 # a file foo.o which wants to compile -pic can set "PICFLAG/foo.o = -PIC" | |
424 PICFLAG = -PIC | |
425 PICFLAG/DEFAULT = $(PICFLAG) | |
426 # [RGV] Need to figure which files to remove to get link to work | |
427 #PICFLAG/BETTER = -pic | |
428 PICFLAG/BETTER = $(PICFLAG/DEFAULT) | |
429 PICFLAG/BYFILE = $(PICFLAG/$@)$(PICFLAG/DEFAULT$(PICFLAG/$@)) | |
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 | 432 |
433 ################################ | |
434 # End old 5.0 compiler options # | |
435 ################################ | |
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 | 438 # 4.2 COMPILERS SHOULD NO LONGER BE USED |
439 _JUNK_ := $(shell echo >&2 \ | |
440 "*** ERROR: SC4.2 compilers are not supported by this code base!") | |
441 @exit 1 | |
442 endif | |
443 | |
444 # do not include shared lib path in a.outs | |
445 AOUT_FLAGS += -norunpath | |
446 LFLAGS_VM = -norunpath -z noversion | |
447 | |
448 # need position-indep-code for shared libraries | |
449 # (ild appears to get errors on PIC code, so we'll try non-PIC for debug) | |
450 ifeq ($(PICFLAGS),DEFAULT) | |
451 VM_PICFLAG/LIBJVM = $(PICFLAG/DEFAULT) | |
452 else | |
453 VM_PICFLAG/LIBJVM = $(PICFLAG/BYFILE) | |
454 endif | |
455 VM_PICFLAG/AOUT = | |
456 | |
457 VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO)) | |
458 CFLAGS += $(VM_PICFLAG) | |
459 | |
460 # less dynamic linking (no PLTs, please) | |
461 #LIB_FLAGS += $(LINK_MODE) | |
462 # %%%%% despite -znodefs, -Bsymbolic gets link errors -- Rose | |
463 | |
464 LINK_MODE = $(LINK_MODE/$(VERSION)) | |
465 LINK_MODE/debug = | |
466 LINK_MODE/optimized = -Bsymbolic -znodefs | |
467 | |
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 | 470 CFLAGS += -mt |
471 else | |
472 CFLAGS += -D_REENTRANT | |
473 endif | |
474 | |
475 ifdef CC_INTERP | |
476 # C++ Interpreter | |
477 CFLAGS += -DCC_INTERP | |
478 endif | |
479 | |
480 # Flags for Debugging | |
481 DEBUG_CFLAGS = -g | |
482 FASTDEBUG_CFLAGS = -g0 | |
483 # The -g0 setting allows the C++ frontend to inline, which is a big win. | |
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 | 494 # Enable the following CFLAGS additions if you need to compare the |
495 # built ELF objects. | |
496 # | |
497 # The -g option makes static data global and the "-Qoption ccfe | |
498 # -xglobalstatic" option tells the compiler to not globalize static | |
499 # data using a unique globalization prefix. Instead force the use of | |
500 # a static globalization prefix based on the source filepath so the | |
501 # objects from two identical compilations are the same. | |
502 #DEBUG_CFLAGS += -Qoption ccfe -xglobalstatic | |
503 #FASTDEBUG_CFLAGS += -Qoption ccfe -xglobalstatic | |
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 | 507 ifeq (${COMPILER_DATE}, 2001/01/31) |
508 # disable -g0 in fastdebug since SC6.1 dated 2001/01/31 seems to be buggy | |
509 # use an innocuous value because it will get -g if it's empty | |
510 FASTDEBUG_CFLAGS = -c | |
511 endif | |
512 endif | |
513 | |
514 # Uncomment or 'gmake CFLAGS_BROWSE=-sbfast' to get source browser information. | |
515 # CFLAGS_BROWSE = -sbfast | |
516 CFLAGS += $(CFLAGS_BROWSE) | |
517 | |
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 | 520 # use ild when debugging (but when optimizing we want reproducible results) |
521 ILDFLAG = $(ILDFLAG/$(VERSION)) | |
522 ILDFLAG/debug = -xildon | |
523 ILDFLAG/optimized = | |
524 AOUT_FLAGS += $(ILDFLAG) | |
525 endif | |
526 | |
527 # Where to put the *.o files (a.out, or shared library)? | |
528 LINK_INTO = $(LINK_INTO/$(VERSION)) | |
529 LINK_INTO/debug = LIBJVM | |
530 LINK_INTO/optimized = LIBJVM | |
531 | |
532 # We link the debug version into the a.out because: | |
533 # 1. ild works on a.out but not shared libraries, and using ild | |
534 # can cut rebuild times by 25% for small changes. (ILD is gone in SS11) | |
535 # 2. dbx cannot gracefully set breakpoints in shared libraries | |
536 # | |
537 | |
538 # apply this setting to link into the shared library even in the debug version: | |
539 ifdef LP64 | |
540 LINK_INTO = LIBJVM | |
541 else | |
542 #LINK_INTO = LIBJVM | |
543 endif | |
544 | |
545 MCS = /usr/ccs/bin/mcs | |
546 STRIP = /usr/ccs/bin/strip | |
547 | |
548 # Solaris platforms collect lots of redundant file-ident lines, | |
549 # to the point of wasting a significant percentage of file space. | |
550 # (The text is stored in ELF .comment sections, contributed by | |
551 # all "#pragma ident" directives in header and source files.) | |
552 # This command "compresses" the .comment sections simply by | |
553 # removing repeated lines. The data can be extracted from | |
554 # binaries in the field by using "mcs -p libjvm.so" or the older | |
555 # command "what libjvm.so". | |
556 LINK_LIB.CC/POST_HOOK += $(MCS) -c $@ || exit 1; | |
557 # (The exit 1 is necessary to cause a build failure if the command fails and | |
558 # multiple commands are strung together, and the final semicolon is necessary | |
559 # since the hook must terminate itself as a valid command.) | |
560 | |
561 # Also, strip debug and line number information (worth about 1.7Mb). | |
562 STRIP_LIB.CC/POST_HOOK = $(STRIP) -x $@ || exit 1; | |
563 # STRIP_LIB.CC/POST_HOOK is incorporated into LINK_LIB.CC/POST_HOOK | |
564 # in certain configurations, such as product.make. Other configurations, | |
565 # such as debug.make, do not include the strip operation. |