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 $@ |