Mercurial > hg > graal-compiler
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 $@ |