Mercurial > hg > truffle
comparison make/solaris/makefiles/vm.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 | 1d1603768966 |
children | 94ec88ca68e2 |
comparison
equal
deleted
inserted
replaced
3950:5a3c2bc614ca | 3954:da0999c4b733 |
---|---|
53 | 53 |
54 # set INCLUDES for C preprocessor | 54 # set INCLUDES for C preprocessor |
55 Src_Dirs_I += $(GENERATED) | 55 Src_Dirs_I += $(GENERATED) |
56 INCLUDES += $(Src_Dirs_I:%=-I%) | 56 INCLUDES += $(Src_Dirs_I:%=-I%) |
57 | 57 |
58 ifeq (${VERSION}, debug) | 58 # SYMFLAG is used by {dtrace,jsig,saproc}.make. |
59 SYMFLAG = -g | 59 ifneq ($(OBJCOPY),) |
60 else | 60 # always build with debug info when we can create .debuginfo files |
61 SYMFLAG = | 61 # and disable 'lazy debug info' so the .so has everything. |
62 SYMFLAG = -g -xs | |
63 else | |
64 ifeq (${VERSION}, debug) | |
65 SYMFLAG = -g | |
66 else | |
67 SYMFLAG = | |
68 endif | |
62 endif | 69 endif |
63 | 70 |
64 # The following variables are defined in the generated flags.make file. | 71 # The following variables are defined in the generated flags.make file. |
65 BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HS_BUILD_VER)\"" | 72 BUILD_VERSION = -DHOTSPOT_RELEASE_VERSION="\"$(HS_BUILD_VER)\"" |
66 JRE_VERSION = -DJRE_RELEASE_VERSION="\"$(JRE_RELEASE_VER)\"" | 73 JRE_VERSION = -DJRE_RELEASE_VERSION="\"$(JRE_RELEASE_VER)\"" |
138 | 145 |
139 JVM = jvm | 146 JVM = jvm |
140 LIBJVM = lib$(JVM).so | 147 LIBJVM = lib$(JVM).so |
141 LIBJVM_G = lib$(JVM)$(G_SUFFIX).so | 148 LIBJVM_G = lib$(JVM)$(G_SUFFIX).so |
142 | 149 |
150 LIBJVM_DEBUGINFO = lib$(JVM).debuginfo | |
151 LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo | |
152 | |
143 SPECIAL_PATHS:=adlc c1 dist gc_implementation opto shark libadt | 153 SPECIAL_PATHS:=adlc c1 dist gc_implementation opto shark libadt |
144 | 154 |
145 SOURCE_PATHS=\ | 155 SOURCE_PATHS=\ |
146 $(shell find $(HS_COMMON_SRC)/share/vm/* -type d \! \ | 156 $(shell find $(HS_COMMON_SRC)/share/vm/* -type d \! \ |
147 \( -name DUMMY $(foreach dir,$(SPECIAL_PATHS),-o -name $(dir)) \)) | 157 \( -name DUMMY $(foreach dir,$(SPECIAL_PATHS),-o -name $(dir)) \)) |
210 | 220 |
211 JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS) | 221 JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS) |
212 | 222 |
213 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) | 223 vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) |
214 | 224 |
215 mapfile : $(MAPFILE) $(MAPFILE_DTRACE_OPT) | 225 mapfile : $(MAPFILE) $(MAPFILE_DTRACE_OPT) vm.def |
216 rm -f $@ | 226 rm -f $@ |
217 cat $^ > $@ | 227 cat $(MAPFILE) $(MAPFILE_DTRACE_OPT) \ |
228 | $(NAWK) '{ \ | |
229 if ($$0 ~ "INSERT VTABLE SYMBOLS HERE") { \ | |
230 system ("cat vm.def"); \ | |
231 } else { \ | |
232 print $$0; \ | |
233 } \ | |
234 }' > $@ | |
218 | 235 |
219 mapfile_reorder : mapfile $(MAPFILE_DTRACE_OPT) $(REORDERFILE) | 236 mapfile_reorder : mapfile $(MAPFILE_DTRACE_OPT) $(REORDERFILE) |
220 rm -f $@ | 237 rm -f $@ |
221 cat $^ > $@ | 238 cat $^ > $@ |
239 | |
240 vm.def: $(Obj_Files) | |
241 sh $(GAMMADIR)/make/solaris/makefiles/build_vm_def.sh *.o > $@ | |
222 | 242 |
223 ifeq ($(LINK_INTO),AOUT) | 243 ifeq ($(LINK_INTO),AOUT) |
224 LIBJVM.o = | 244 LIBJVM.o = |
225 LIBJVM_MAPFILE = | 245 LIBJVM_MAPFILE = |
226 LIBS_VM = $(LIBS) | 246 LIBS_VM = $(LIBS) |
253 $(QUIETLY) $(LINK_VM) $(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM) | 273 $(QUIETLY) $(LINK_VM) $(LFLAGS_VM) -o $@ $(LIBJVM.o) $(LIBS_VM) |
254 $(QUIETLY) $(LINK_LIB.CC/POST_HOOK) | 274 $(QUIETLY) $(LINK_LIB.CC/POST_HOOK) |
255 $(QUIETLY) rm -f $@.1 && ln -s $@ $@.1 | 275 $(QUIETLY) rm -f $@.1 && ln -s $@ $@.1 |
256 $(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G) | 276 $(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G) |
257 $(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1 | 277 $(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1 |
278 ifneq ($(OBJCOPY),) | |
279 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) | |
280 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ | |
281 ifeq ($(STRIP_POLICY),all_strip) | |
282 $(QUIETLY) $(STRIP) $@ | |
283 else | |
284 ifeq ($(STRIP_POLICY),min_strip) | |
285 $(QUIETLY) $(STRIP) -x $@ | |
286 # implied else here is no stripping at all | |
287 endif | |
288 endif | |
289 $(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) | |
290 endif | |
258 endif # filter -sbfast -xsbfast | 291 endif # filter -sbfast -xsbfast |
259 | 292 |
260 | 293 |
261 DEST_JVM = $(JDK_LIBDIR)/$(VM_SUBDIR)/$(LIBJVM) | 294 DEST_SUBDIR = $(JDK_LIBDIR)/$(VM_SUBDIR) |
295 DEST_JVM = $(DEST_SUBDIR)/$(LIBJVM) | |
296 DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO) | |
262 | 297 |
263 install_jvm: $(LIBJVM) | 298 install_jvm: $(LIBJVM) |
264 @echo "Copying $(LIBJVM) to $(DEST_JVM)" | 299 @echo "Copying $(LIBJVM) to $(DEST_JVM)" |
300 $(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \ | |
301 cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO) | |
265 $(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done" | 302 $(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done" |
266 | 303 |
267 #---------------------------------------------------------------------- | 304 #---------------------------------------------------------------------- |
268 # Other files | 305 # Other files |
269 | 306 |