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