comparison make/solaris/makefiles/dtrace.make @ 20640:8c76e844a7f9

8033602: wrong stabs data in libjvm.debuginfo on JDK 8 - SPARC 8034005: cannot debug in synchronizer.o or objectMonitor.o on Solaris X86 Summary: Solaris needs objcopy version of 2.21.1 or newer is needed to create valid .debuginfo files. Reviewed-by: dsamersoff, sspitsyn, dholmes, ihse
author dcubed
date Sat, 15 Nov 2014 11:22:07 -0800
parents c661fa2e5189
children 7848fc12602b
comparison
equal deleted inserted replaced
20639:84e11eeec136 20640:8c76e844a7f9
1 # 1 #
2 # Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 2 # Copyright (c) 2005, 2014, 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.
94 XLIBJVM_DB_DEBUGINFO = $(XLIBJVM_DIR)/$(LIBJVM_DB_DEBUGINFO) 94 XLIBJVM_DB_DEBUGINFO = $(XLIBJVM_DIR)/$(LIBJVM_DB_DEBUGINFO)
95 XLIBJVM_DB_DIZ = $(XLIBJVM_DIR)/$(LIBJVM_DB_DIZ) 95 XLIBJVM_DB_DIZ = $(XLIBJVM_DIR)/$(LIBJVM_DB_DIZ)
96 XLIBJVM_DTRACE_DEBUGINFO = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DEBUGINFO) 96 XLIBJVM_DTRACE_DEBUGINFO = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DEBUGINFO)
97 XLIBJVM_DTRACE_DIZ = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DIZ) 97 XLIBJVM_DTRACE_DIZ = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DIZ)
98 98
99 $(XLIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE) 99 $(XLIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE)
100 @echo Making $@ 100 @echo Making $@
101 $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \ 101 $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \
102 $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. -I$(GENERATED) \ 102 $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. -I$(GENERATED) \
103 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc 103 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc
104 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 104 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
105 # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.
106 # Clear the SHF_ALLOC flag (if set) from empty section headers.
107 # An empty section header has sh_addr == 0 and sh_size == 0.
108 # This problem has only been seen on Solaris X64, but we call this tool
109 # on all Solaris builds just in case.
110 $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
111 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DB_DEBUGINFO) 105 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DB_DEBUGINFO)
112 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
113 # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available.
114 # $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) ;
115 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not 106 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
116 # in the link name: 107 # in the link name:
117 ( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) ) 108 ( cd $(XLIBJVM_DIR) && $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) )
118 ifeq ($(STRIP_POLICY),all_strip) 109 ifeq ($(STRIP_POLICY),all_strip)
119 $(QUIETLY) $(STRIP) $@ 110 $(QUIETLY) $(STRIP) $@
120 else 111 else
121 ifeq ($(STRIP_POLICY),min_strip) 112 ifeq ($(STRIP_POLICY),min_strip)
122 $(QUIETLY) $(STRIP) -x $@ 113 $(QUIETLY) $(STRIP) -x $@
129 ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) ) 120 ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) )
130 $(RM) $(XLIBJVM_DB_DEBUGINFO) 121 $(RM) $(XLIBJVM_DB_DEBUGINFO)
131 endif 122 endif
132 endif 123 endif
133 124
134 $(XLIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE) 125 $(XLIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
135 @echo Making $@ 126 @echo Making $@
136 $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \ 127 $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \
137 $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. \ 128 $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. \
138 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor 129 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor
139 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 130 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
140 # Clear the SHF_ALLOC flag (if set) from empty section headers.
141 $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
142 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DTRACE_DEBUGINFO) 131 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DTRACE_DEBUGINFO)
143 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections.
144 # $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) ;
145 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not 132 # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) is not
146 # in the link name: 133 # in the link name:
147 ( cd $(XLIBJVM_DIR) && $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) ) 134 ( cd $(XLIBJVM_DIR) && $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) )
148 ifeq ($(STRIP_POLICY),all_strip) 135 ifeq ($(STRIP_POLICY),all_strip)
149 $(QUIETLY) $(STRIP) $@ 136 $(QUIETLY) $(STRIP) $@
150 else 137 else
151 ifeq ($(STRIP_POLICY),min_strip) 138 ifeq ($(STRIP_POLICY),min_strip)
152 $(QUIETLY) $(STRIP) -x $@ 139 $(QUIETLY) $(STRIP) -x $@
199 $(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET) 186 $(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
200 187
201 $(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp 188 $(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp
202 $(QUIETLY) $(CXX) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp 189 $(QUIETLY) $(CXX) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp
203 190
204 $(LIBJVM_DB): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE) 191 $(LIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS.o) $(XLIBJVM_DB) $(LIBJVM_DB_MAPFILE)
205 @echo Making $@ 192 @echo Making $@
206 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. -I$(GENERATED) \ 193 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. -I$(GENERATED) \
207 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc 194 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc
208 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 195 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
209 # Clear the SHF_ALLOC flag (if set) from empty section headers.
210 $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
211 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DB_DEBUGINFO) 196 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DB_DEBUGINFO)
212 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. 197 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@
213 # $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@
214 $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DB_DEBUGINFO) $@
215 ifeq ($(STRIP_POLICY),all_strip) 198 ifeq ($(STRIP_POLICY),all_strip)
216 $(QUIETLY) $(STRIP) $@ 199 $(QUIETLY) $(STRIP) $@
217 else 200 else
218 ifeq ($(STRIP_POLICY),min_strip) 201 ifeq ($(STRIP_POLICY),min_strip)
219 $(QUIETLY) $(STRIP) -x $@ 202 $(QUIETLY) $(STRIP) -x $@
224 $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) 207 $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO)
225 $(RM) $(LIBJVM_DB_DEBUGINFO) 208 $(RM) $(LIBJVM_DB_DEBUGINFO)
226 endif 209 endif
227 endif 210 endif
228 211
229 $(LIBJVM_DTRACE): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE) 212 $(LIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
230 @echo Making $@ 213 @echo Making $@
231 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. \ 214 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. \
232 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor 215 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor
233 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 216 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
234 # Clear the SHF_ALLOC flag (if set) from empty section headers.
235 $(QUIETLY) $(FIX_EMPTY_SEC_HDR_FLAGS) $@
236 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DTRACE_DEBUGINFO) 217 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DTRACE_DEBUGINFO)
237 # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. 218 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@
238 # $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@
239 $(QUIETLY) $(ADD_GNU_DEBUGLINK) $(LIBJVM_DTRACE_DEBUGINFO) $@
240 ifeq ($(STRIP_POLICY),all_strip) 219 ifeq ($(STRIP_POLICY),all_strip)
241 $(QUIETLY) $(STRIP) $@ 220 $(QUIETLY) $(STRIP) $@
242 else 221 else
243 ifeq ($(STRIP_POLICY),min_strip) 222 ifeq ($(STRIP_POLICY),min_strip)
244 $(QUIETLY) $(STRIP) -x $@ 223 $(QUIETLY) $(STRIP) -x $@