84 JDK6_OR_EARLIER=1 |
84 JDK6_OR_EARLIER=1 |
85 endif |
85 endif |
86 endif |
86 endif |
87 |
87 |
88 ifeq ($(JDK6_OR_EARLIER),0) |
88 ifeq ($(JDK6_OR_EARLIER),0) |
89 # Full Debug Symbols is supported on JDK7 or newer |
89 # Full Debug Symbols is supported on JDK7 or newer. |
90 |
90 # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product |
91 ifdef ENABLE_FULL_DEBUG_SYMBOLS |
91 # builds is enabled with debug info files ZIP'ed to save space. For |
92 # Only check for Full Debug Symbols support on Solaris if it is |
92 # BUILD_FLAVOR != product builds, FDS is always enabled, after all a |
93 # specifically enabled. Hopefully, it can be enabled by default |
93 # debug build without debug info isn't very useful. |
94 # once the .debuginfo size issues are worked out. |
94 # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled. |
95 |
95 # |
96 # Default OBJCOPY comes from the SUNWbinutils package: |
96 # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be |
97 DEF_OBJCOPY=/usr/sfw/bin/gobjcopy |
97 # disabled for a BUILD_FLAVOR == product build. |
98 ifeq ($(VM_PLATFORM),solaris_amd64) |
98 # |
99 # On Solaris AMD64/X64, gobjcopy is not happy and fails: |
99 # Note: Use of a different variable name for the FDS override option |
100 # |
100 # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS |
101 # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so |
101 # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass |
102 # BFD: stKPaiop: Not enough room for program headers, try linking with -N |
102 # in options via environment variables, use of distinct variables |
103 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value |
103 # prevents strange behaviours. For example, in a BUILD_FLAVOR != |
104 # BFD: stKPaiop: Not enough room for program headers, try linking with -N |
104 # product build, the FULL_DEBUG_SYMBOLS environment variable will be |
105 # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value |
105 # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If |
106 # BFD: stKPaiop: Not enough room for program headers, try linking with -N |
106 # the same variable name is used, then different values can be picked |
107 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value |
107 # up by different parts of the build. Just to be clear, we only need |
108 _JUNK_ := $(shell \ |
108 # two variable names because the incoming option value can be |
109 echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64") |
109 # overridden in some situations, e.g., a BUILD_FLAVOR != product |
|
110 # build. |
|
111 |
|
112 ifeq ($(BUILD_FLAVOR), product) |
|
113 FULL_DEBUG_SYMBOLS ?= 1 |
|
114 ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) |
|
115 else |
|
116 # debug variants always get Full Debug Symbols (if available) |
|
117 ENABLE_FULL_DEBUG_SYMBOLS = 1 |
|
118 endif |
|
119 _JUNK_ := $(shell \ |
|
120 echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") |
|
121 # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later |
|
122 |
|
123 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
|
124 # Default OBJCOPY comes from the SUNWbinutils package: |
|
125 DEF_OBJCOPY=/usr/sfw/bin/gobjcopy |
|
126 ifeq ($(VM_PLATFORM),solaris_amd64) |
|
127 # On Solaris AMD64/X64, gobjcopy is not happy and fails: |
|
128 # |
|
129 # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so |
|
130 # BFD: stKPaiop: Not enough room for program headers, try linking with -N |
|
131 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value |
|
132 # BFD: stKPaiop: Not enough room for program headers, try linking with -N |
|
133 # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value |
|
134 # BFD: stKPaiop: Not enough room for program headers, try linking with -N |
|
135 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value |
|
136 _JUNK_ := $(shell \ |
|
137 echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64") |
|
138 OBJCOPY= |
|
139 else |
|
140 OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) |
|
141 ifneq ($(ALT_OBJCOPY),) |
|
142 _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") |
|
143 OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) |
|
144 endif |
|
145 endif |
|
146 else |
110 OBJCOPY= |
147 OBJCOPY= |
111 else |
148 endif |
112 OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) |
149 |
113 ifneq ($(ALT_OBJCOPY),) |
|
114 _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") |
|
115 # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path |
|
116 OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) |
|
117 endif |
|
118 endif |
|
119 endif |
|
120 |
|
121 ifeq ($(OBJCOPY),) |
150 ifeq ($(OBJCOPY),) |
122 _JUNK_ := $(shell \ |
151 _JUNK_ := $(shell \ |
123 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") |
152 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") |
|
153 ENABLE_FULL_DEBUG_SYMBOLS=0 |
|
154 _JUNK_ := $(shell \ |
|
155 echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") |
124 else |
156 else |
125 _JUNK_ := $(shell \ |
157 _JUNK_ := $(shell \ |
126 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") |
158 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") |
127 |
159 |
128 # Library stripping policies for .debuginfo configs: |
160 # Library stripping policies for .debuginfo configs: |
129 # all_strip - strips everything from the library |
161 # all_strip - strips everything from the library |
130 # min_strip - strips most stuff from the library; leaves minimum symbols |
162 # min_strip - strips most stuff from the library; leaves minimum symbols |
131 # no_strip - does not strip the library at all |
163 # no_strip - does not strip the library at all |
132 # |
164 # |
133 # Oracle security policy requires "all_strip". A waiver was granted on |
165 # Oracle security policy requires "all_strip". A waiver was granted on |
134 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. |
166 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. |
135 # |
167 # |
136 DEF_STRIP_POLICY="min_strip" |
168 # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. |
137 ifeq ($(ALT_STRIP_POLICY),) |
169 # |
138 STRIP_POLICY=$(DEF_STRIP_POLICY) |
170 STRIP_POLICY ?= min_strip |
139 else |
171 |
140 STRIP_POLICY=$(ALT_STRIP_POLICY) |
|
141 endif |
|
142 _JUNK_ := $(shell \ |
172 _JUNK_ := $(shell \ |
143 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") |
173 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") |
|
174 |
|
175 ZIP_DEBUGINFO_FILES ?= 1 |
|
176 |
|
177 _JUNK_ := $(shell \ |
|
178 echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") |
144 endif |
179 endif |
145 endif |
180 endif |
146 |
181 |
147 JDK_INCLUDE_SUBDIR=solaris |
182 JDK_INCLUDE_SUBDIR=solaris |
148 |
183 |
172 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) |
211 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) |
173 ifeq ($(ARCH_DATA_MODEL),32) |
212 ifeq ($(ARCH_DATA_MODEL),32) |
174 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX) |
213 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX) |
175 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX) |
214 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX) |
176 endif |
215 endif |
177 ifneq ($(OBJCOPY),) |
216 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
178 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo |
217 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
179 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo |
218 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz |
180 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo |
219 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.diz |
|
220 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.diz |
|
221 else |
|
222 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo |
|
223 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo |
|
224 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo |
|
225 endif |
181 endif |
226 endif |
182 endif |
227 endif |
183 ifeq ($(JVM_VARIANT_CLIENT),true) |
228 ifeq ($(JVM_VARIANT_CLIENT),true) |
184 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt |
229 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt |
185 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) |
230 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) |
187 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) |
232 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) |
188 ifeq ($(ARCH_DATA_MODEL),32) |
233 ifeq ($(ARCH_DATA_MODEL),32) |
189 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX) |
234 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX) |
190 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX) |
235 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX) |
191 endif |
236 endif |
192 ifneq ($(OBJCOPY),) |
237 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
193 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo |
238 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
194 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo |
239 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz |
195 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo |
240 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.diz |
196 ifeq ($(ARCH_DATA_MODEL),32) |
241 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.diz |
197 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo |
242 ifeq ($(ARCH_DATA_MODEL),32) |
198 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo |
243 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.diz |
|
244 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.diz |
|
245 endif |
|
246 else |
|
247 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo |
|
248 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo |
|
249 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo |
|
250 ifeq ($(ARCH_DATA_MODEL),32) |
|
251 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo |
|
252 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo |
|
253 endif |
199 endif |
254 endif |
200 endif |
255 endif |
201 endif |
256 endif |
202 |
257 |
203 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) |
258 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) |
204 ifneq ($(OBJCOPY),) |
259 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
205 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo |
260 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
|
261 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz |
|
262 else |
|
263 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo |
|
264 endif |
206 endif |
265 endif |
207 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar |
266 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar |