comparison make/linux/makefiles/defs.make @ 6022:74c359c4a9e5

Merge
author dcubed
date Tue, 24 Apr 2012 15:20:40 -0700
parents 3d7ea1dbe0de 744728c16316
children a9fed06c01d2
comparison
equal deleted inserted replaced
6019:f33c4d0f4c9e 6022:74c359c4a9e5
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 =