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

Merge
author dcubed
date Tue, 24 Apr 2012 15:20:40 -0700
parents 3d7ea1dbe0de 744728c16316
children d6c393b0164b
comparison
equal deleted inserted replaced
6019:f33c4d0f4c9e 6022:74c359c4a9e5
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
154 189
155 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html 190 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
156 191
157 # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX) 192 # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
158 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX) 193 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
159 ifneq ($(OBJCOPY),) 194 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
160 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo 195 ifeq ($(ZIP_DEBUGINFO_FILES),1)
196 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
197 else
198 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
199 endif
161 endif 200 endif
162 201
163 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar 202 EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
164 203
165 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server 204 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
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