Mercurial > hg > graal-jvmci-8
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 |