comparison make/solaris/makefiles/defs.make @ 6020:d652a62d6e03

7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris Summary: Add support for ENABLE_FULL_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES build flags. Add support for .diz files. Reviewed-by: dholmes, ohair, sspitsyn
author dcubed
date Fri, 23 Mar 2012 11:50:33 -0700
parents 5d871c1ff17c
children 744728c16316
comparison
equal deleted inserted replaced
4958:3b24e7e01d20 6020:d652a62d6e03
1 # 1 #
2 # Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. 2 # Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 # 4 #
5 # This code is free software; you can redistribute it and/or modify it 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 6 # under the terms of the GNU General Public License version 2 only, as
7 # published by the Free Software Foundation. 7 # published by the Free Software Foundation.
72 JDK6_OR_EARLIER=1 72 JDK6_OR_EARLIER=1
73 endif 73 endif
74 endif 74 endif
75 75
76 ifeq ($(JDK6_OR_EARLIER),0) 76 ifeq ($(JDK6_OR_EARLIER),0)
77 # Full Debug Symbols is supported on JDK7 or newer 77 # Full Debug Symbols is supported on JDK7 or newer.
78 78 # Default is enabled with .debuginfo files ZIP'ed to save space.
79 ifdef ENABLE_FULL_DEBUG_SYMBOLS 79
80 # Only check for Full Debug Symbols support on Solaris if it is 80 ENABLE_FULL_DEBUG_SYMBOLS ?= 1
81 # specifically enabled. Hopefully, it can be enabled by default 81 # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
82 # once the .debuginfo size issues are worked out. 82
83 83 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
84 # Default OBJCOPY comes from the SUNWbinutils package: 84 # Default OBJCOPY comes from the SUNWbinutils package:
85 DEF_OBJCOPY=/usr/sfw/bin/gobjcopy 85 DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
86 ifeq ($(VM_PLATFORM),solaris_amd64) 86 ifeq ($(VM_PLATFORM),solaris_amd64)
87 # On Solaris AMD64/X64, gobjcopy is not happy and fails: 87 # On Solaris AMD64/X64, gobjcopy is not happy and fails:
88 # 88 #
89 # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so 89 # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
90 # BFD: stKPaiop: Not enough room for program headers, try linking with -N 90 # BFD: stKPaiop: Not enough room for program headers, try linking with -N
91 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value 91 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
92 # BFD: stKPaiop: Not enough room for program headers, try linking with -N 92 # BFD: stKPaiop: Not enough room for program headers, try linking with -N
93 # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value 93 # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
94 # BFD: stKPaiop: Not enough room for program headers, try linking with -N 94 # BFD: stKPaiop: Not enough room for program headers, try linking with -N
95 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value 95 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
96 _JUNK_ := $(shell \ 96 _JUNK_ := $(shell \
97 echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64") 97 echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
98 OBJCOPY=
99 else
100 OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
101 ifneq ($(ALT_OBJCOPY),)
102 _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
103 OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
104 endif
105 endif
106 else
98 OBJCOPY= 107 OBJCOPY=
99 else 108 endif
100 OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) 109
101 ifneq ($(ALT_OBJCOPY),)
102 _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
103 # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
104 OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
105 endif
106 endif
107 endif
108
109 ifeq ($(OBJCOPY),) 110 ifeq ($(OBJCOPY),)
110 _JUNK_ := $(shell \ 111 _JUNK_ := $(shell \
111 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") 112 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
113 ENABLE_FULL_DEBUG_SYMBOLS=0
112 else 114 else
113 _JUNK_ := $(shell \ 115 _JUNK_ := $(shell \
114 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") 116 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
115 117
116 # Library stripping policies for .debuginfo configs: 118 # Library stripping policies for .debuginfo configs:
117 # all_strip - strips everything from the library 119 # all_strip - strips everything from the library
118 # min_strip - strips most stuff from the library; leaves minimum symbols 120 # min_strip - strips most stuff from the library; leaves minimum symbols
119 # no_strip - does not strip the library at all 121 # no_strip - does not strip the library at all
120 # 122 #
121 # Oracle security policy requires "all_strip". A waiver was granted on 123 # Oracle security policy requires "all_strip". A waiver was granted on
122 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. 124 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
123 # 125 #
124 DEF_STRIP_POLICY="min_strip" 126 # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
125 ifeq ($(ALT_STRIP_POLICY),) 127 #
126 STRIP_POLICY=$(DEF_STRIP_POLICY) 128 STRIP_POLICY ?= min_strip
127 else 129
128 STRIP_POLICY=$(ALT_STRIP_POLICY)
129 endif
130 _JUNK_ := $(shell \ 130 _JUNK_ := $(shell \
131 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") 131 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
132
133 ZIP_DEBUGINFO_FILES ?= 1
134
135 _JUNK_ := $(shell \
136 echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
132 endif 137 endif
133 endif 138 endif
134 139
135 JDK_INCLUDE_SUBDIR=solaris 140 JDK_INCLUDE_SUBDIR=solaris
136 141
142 147
143 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html 148 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
144 149
145 # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX) 150 # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
146 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX) 151 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
147 ifneq ($(OBJCOPY),) 152 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
148 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo 153 ifeq ($(ZIP_DEBUGINFO_FILES),1)
154 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
155 else
156 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
157 endif
149 endif 158 endif
150 159
151 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server 160 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
152 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client 161 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
153 162
154 ifneq ($(BUILD_CLIENT_ONLY),true) 163 ifneq ($(BUILD_CLIENT_ONLY),true)
155 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt 164 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
156 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX) 165 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
157 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.$(LIBRARY_SUFFIX) 166 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
158 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) 167 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
159 ifneq ($(OBJCOPY),) 168 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
160 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo 169 ifeq ($(ZIP_DEBUGINFO_FILES),1)
161 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo 170 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
162 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo 171 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.diz
172 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.diz
173 else
174 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
175 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
176 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
177 endif
163 endif 178 endif
164 endif 179 endif
165 ifeq ($(ARCH_DATA_MODEL), 32) 180 ifeq ($(ARCH_DATA_MODEL), 32)
166 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt 181 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
167 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) 182 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
168 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX) 183 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
169 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) 184 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
170 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX) 185 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
171 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX) 186 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
172 ifneq ($(OBJCOPY),) 187 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
173 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo 188 ifeq ($(ZIP_DEBUGINFO_FILES),1)
174 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo 189 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
175 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo 190 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.diz
176 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo 191 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.diz
177 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo 192 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.diz
193 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.diz
194 else
195 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
196 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
197 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
198 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
199 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
200 endif
178 endif 201 endif
179 ifneq ($(BUILD_CLIENT_ONLY), true) 202 ifneq ($(BUILD_CLIENT_ONLY), true)
180 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX) 203 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
181 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX) 204 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
182 ifneq ($(OBJCOPY),) 205 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
183 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo 206 ifeq ($(ZIP_DEBUGINFO_FILES),1)
184 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo 207 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.diz
208 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.diz
209 else
210 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo
211 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo
212 endif
185 endif 213 endif
186 endif 214 endif
187 endif 215 endif
188 216
189 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) 217 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
190 ifneq ($(OBJCOPY),) 218 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
191 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo 219 ifeq ($(ZIP_DEBUGINFO_FILES),1)
220 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
221 else
222 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
223 endif
192 endif 224 endif
193 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar 225 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar