comparison make/solaris/makefiles/defs.make @ 3954:da0999c4b733

7071904: 4/4 HotSpot: Full Debug Symbols Summary: Add support for .debuginfo files for HSX libraries. Reviewed-by: poonam, dholmes, never
author dcubed
date Fri, 16 Sep 2011 16:21:20 -0700
parents 4aa5974a06dd
children 5d871c1ff17c
comparison
equal deleted inserted replaced
3950:5a3c2bc614ca 3954:da0999c4b733
1 # 1 #
2 # Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. 2 # Copyright (c) 2006, 2011, 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.
57 VM_PLATFORM=solaris_i486 57 VM_PLATFORM=solaris_i486
58 HS_ARCH=x86 58 HS_ARCH=x86
59 endif 59 endif
60 endif 60 endif
61 61
62 # determine if HotSpot is being built in JDK6 or earlier version
63 JDK6_OR_EARLIER=0
64 ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
65 # if the longer variable names (newer build style) are set, then check those
66 ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1"
67 JDK6_OR_EARLIER=1
68 endif
69 else
70 # the longer variables aren't set so check the shorter variable names
71 ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1"
72 JDK6_OR_EARLIER=1
73 endif
74 endif
75
76 ifeq ($(JDK6_OR_EARLIER),0)
77 # Full Debug Symbols is supported on JDK7 or newer
78
79 ifdef ENABLE_FULL_DEBUG_SYMBOLS
80 # Only check for Full Debug Symbols support on Solaris if it is
81 # specifically enabled. Hopefully, it can be enabled by default
82 # once the .debuginfo size issues are worked out.
83
84 # Default OBJCOPY comes from the SUNWbinutils package:
85 DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
86 ifeq ($(VM_PLATFORM),solaris_amd64)
87 # On Solaris AMD64/X64, gobjcopy is not happy and fails:
88 #
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
91 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
92 # BFD: stKPaiop: Not enough room for program headers, try linking with -N
93 # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
94 # BFD: stKPaiop: Not enough room for program headers, try linking with -N
95 # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
96 _JUNK_ := $(shell \
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 # 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 _JUNK_ := $(shell \
111 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
112 else
113 _JUNK_ := $(shell \
114 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
115
116 # Library stripping policies for .debuginfo configs:
117 # all_strip - strips everything from the library
118 # min_strip - strips most stuff from the library; leaves minimum symbols
119 # no_strip - does not strip the library at all
120 #
121 # 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.
123 #
124 DEF_STRIP_POLICY="min_strip"
125 ifeq ($(ALT_STRIP_POLICY),)
126 STRIP_POLICY=$(DEF_STRIP_POLICY)
127 else
128 STRIP_POLICY=$(ALT_STRIP_POLICY)
129 endif
130 _JUNK_ := $(shell \
131 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
132 endif
133 endif
134
62 JDK_INCLUDE_SUBDIR=solaris 135 JDK_INCLUDE_SUBDIR=solaris
63 136
64 # FIXUP: The subdirectory for a debug build is NOT the same on all platforms 137 # FIXUP: The subdirectory for a debug build is NOT the same on all platforms
65 VM_DEBUG=jvmg 138 VM_DEBUG=jvmg
66 139
67 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html 140 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
68 141
69 # client and server subdirectories have symbolic links to ../libjsig.so 142 # client and server subdirectories have symbolic links to ../libjsig.so
70 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.so 143 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.so
144 ifneq ($(OBJCOPY),)
145 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
146 endif
71 147
72 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server 148 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
73 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client 149 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
74 150
75 ifneq ($(BUILD_CLIENT_ONLY),true) 151 ifneq ($(BUILD_CLIENT_ONLY),true)
76 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt 152 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
77 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.so 153 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.so
78 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.so 154 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.so
79 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.so 155 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.so
156 ifneq ($(OBJCOPY),)
157 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
158 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
159 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
160 endif
80 endif 161 endif
81 ifeq ($(ARCH_DATA_MODEL), 32) 162 ifeq ($(ARCH_DATA_MODEL), 32)
82 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt 163 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
83 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.so 164 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.so
84 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.so 165 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.so
85 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.so 166 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.so
86 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.so 167 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.so
87 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.so 168 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.so
169 ifneq ($(OBJCOPY),)
170 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
171 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
172 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
173 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
174 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
175 endif
88 ifneq ($(BUILD_CLIENT_ONLY), true) 176 ifneq ($(BUILD_CLIENT_ONLY), true)
89 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.so 177 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.so
90 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.so 178 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.so
179 ifneq ($(OBJCOPY),)
180 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo
181 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo
182 endif
91 endif 183 endif
92 endif 184 endif
93 185
94 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so 186 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so
187 ifneq ($(OBJCOPY),)
188 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
189 endif
95 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar 190 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar