139 JDK6_OR_EARLIER=1 |
139 JDK6_OR_EARLIER=1 |
140 endif |
140 endif |
141 endif |
141 endif |
142 |
142 |
143 ifeq ($(JDK6_OR_EARLIER),0) |
143 ifeq ($(JDK6_OR_EARLIER),0) |
144 # Full Debug Symbols is supported on JDK7 or newer |
144 # Full Debug Symbols is supported on JDK7 or newer. |
145 |
145 # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product |
146 # Default OBJCOPY comes from GNU Binutils on Linux: |
146 # builds is enabled with debug info files ZIP'ed to save space. For |
147 DEF_OBJCOPY=/usr/bin/objcopy |
147 # BUILD_FLAVOR != product builds, FDS is always enabled, after all a |
148 ifdef CROSS_COMPILE_ARCH |
148 # debug build without debug info isn't very useful. |
149 # don't try to generate .debuginfo files when cross compiling |
149 # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled. |
150 _JUNK_ := $(shell \ |
150 # |
151 echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \ |
151 # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be |
152 "skipping .debuginfo generation.") |
152 # disabled for a BUILD_FLAVOR == product build. |
|
153 # |
|
154 # Note: Use of a different variable name for the FDS override option |
|
155 # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS |
|
156 # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass |
|
157 # in options via environment variables, use of distinct variables |
|
158 # prevents strange behaviours. For example, in a BUILD_FLAVOR != |
|
159 # product build, the FULL_DEBUG_SYMBOLS environment variable will be |
|
160 # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If |
|
161 # the same variable name is used, then different values can be picked |
|
162 # up by different parts of the build. Just to be clear, we only need |
|
163 # two variable names because the incoming option value can be |
|
164 # overridden in some situations, e.g., a BUILD_FLAVOR != product |
|
165 # build. |
|
166 |
|
167 ifeq ($(BUILD_FLAVOR), product) |
|
168 FULL_DEBUG_SYMBOLS ?= 1 |
|
169 ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) |
|
170 else |
|
171 # debug variants always get Full Debug Symbols (if available) |
|
172 ENABLE_FULL_DEBUG_SYMBOLS = 1 |
|
173 endif |
|
174 _JUNK_ := $(shell \ |
|
175 echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") |
|
176 # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later |
|
177 |
|
178 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
|
179 # Default OBJCOPY comes from GNU Binutils on Linux: |
|
180 DEF_OBJCOPY=/usr/bin/objcopy |
|
181 ifdef CROSS_COMPILE_ARCH |
|
182 # don't try to generate .debuginfo files when cross compiling |
|
183 _JUNK_ := $(shell \ |
|
184 echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \ |
|
185 "skipping .debuginfo generation.") |
|
186 OBJCOPY= |
|
187 else |
|
188 OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) |
|
189 ifneq ($(ALT_OBJCOPY),) |
|
190 _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") |
|
191 OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) |
|
192 endif |
|
193 endif |
|
194 else |
153 OBJCOPY= |
195 OBJCOPY= |
154 else |
196 endif |
155 OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) |
197 |
156 ifneq ($(ALT_OBJCOPY),) |
|
157 _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") |
|
158 # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path |
|
159 OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) |
|
160 endif |
|
161 endif |
|
162 |
|
163 ifeq ($(OBJCOPY),) |
198 ifeq ($(OBJCOPY),) |
164 _JUNK_ := $(shell \ |
199 _JUNK_ := $(shell \ |
165 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") |
200 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") |
|
201 ENABLE_FULL_DEBUG_SYMBOLS=0 |
|
202 _JUNK_ := $(shell \ |
|
203 echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") |
166 else |
204 else |
167 _JUNK_ := $(shell \ |
205 _JUNK_ := $(shell \ |
168 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") |
206 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") |
169 |
207 |
170 # Library stripping policies for .debuginfo configs: |
208 # Library stripping policies for .debuginfo configs: |
171 # all_strip - strips everything from the library |
209 # all_strip - strips everything from the library |
172 # min_strip - strips most stuff from the library; leaves minimum symbols |
210 # min_strip - strips most stuff from the library; leaves minimum symbols |
173 # no_strip - does not strip the library at all |
211 # no_strip - does not strip the library at all |
174 # |
212 # |
175 # Oracle security policy requires "all_strip". A waiver was granted on |
213 # Oracle security policy requires "all_strip". A waiver was granted on |
176 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. |
214 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. |
177 # |
215 # |
178 DEF_STRIP_POLICY="min_strip" |
216 # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. |
179 ifeq ($(ALT_STRIP_POLICY),) |
217 # |
180 STRIP_POLICY=$(DEF_STRIP_POLICY) |
218 STRIP_POLICY ?= min_strip |
181 else |
219 |
182 STRIP_POLICY=$(ALT_STRIP_POLICY) |
|
183 endif |
|
184 |
|
185 _JUNK_ := $(shell \ |
220 _JUNK_ := $(shell \ |
186 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") |
221 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") |
|
222 |
|
223 ZIP_DEBUGINFO_FILES ?= 1 |
|
224 |
|
225 _JUNK_ := $(shell \ |
|
226 echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") |
187 endif |
227 endif |
188 endif |
228 endif |
189 |
229 |
190 JDK_INCLUDE_SUBDIR=linux |
230 JDK_INCLUDE_SUBDIR=linux |
191 |
231 |
197 |
237 |
198 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html |
238 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html |
199 |
239 |
200 # client and server subdirectories have symbolic links to ../libjsig.so |
240 # client and server subdirectories have symbolic links to ../libjsig.so |
201 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX) |
241 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX) |
202 ifneq ($(OBJCOPY),) |
242 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
203 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo |
243 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
|
244 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz |
|
245 else |
|
246 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo |
|
247 endif |
204 endif |
248 endif |
205 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server |
249 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server |
206 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client |
250 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client |
207 |
251 |
208 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar |
252 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar |
209 |
253 |
210 ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true) |
254 ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true) |
211 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt |
255 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt |
212 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX) |
256 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX) |
213 ifneq ($(OBJCOPY),) |
257 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
214 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo |
258 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
|
259 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz |
|
260 else |
|
261 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo |
|
262 endif |
215 endif |
263 endif |
216 endif |
264 endif |
217 |
265 |
218 ifeq ($(JVM_VARIANT_CLIENT),true) |
266 ifeq ($(JVM_VARIANT_CLIENT),true) |
219 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt |
267 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt |
220 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) |
268 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) |
221 ifneq ($(OBJCOPY),) |
269 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
222 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo |
270 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
|
271 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz |
|
272 else |
|
273 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo |
|
274 endif |
223 endif |
275 endif |
224 endif |
276 endif |
225 |
277 |
226 # Serviceability Binaries |
278 # Serviceability Binaries |
227 # No SA Support for PPC, IA64, ARM or zero |
279 # No SA Support for PPC, IA64, ARM or zero |
228 ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ |
280 ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ |
229 $(EXPORT_LIB_DIR)/sa-jdi.jar |
281 $(EXPORT_LIB_DIR)/sa-jdi.jar |
230 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ |
282 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ |
231 $(EXPORT_LIB_DIR)/sa-jdi.jar |
283 $(EXPORT_LIB_DIR)/sa-jdi.jar |
232 ifneq ($(OBJCOPY),) |
284 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
233 ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo |
285 ifeq ($(ZIP_DEBUGINFO_FILES),1) |
234 ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo |
286 ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz |
|
287 ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz |
|
288 else |
|
289 ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo |
|
290 ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo |
|
291 endif |
235 endif |
292 endif |
236 ADD_SA_BINARIES/ppc = |
293 ADD_SA_BINARIES/ppc = |
237 ADD_SA_BINARIES/ia64 = |
294 ADD_SA_BINARIES/ia64 = |
238 ADD_SA_BINARIES/arm = |
295 ADD_SA_BINARIES/arm = |
239 ADD_SA_BINARIES/zero = |
296 ADD_SA_BINARIES/zero = |