comparison make/bsd/makefiles/vm.make @ 12859:f509b8f4699b

7165611: implement Full Debug Symbols on MacOS X hotspot Summary: Add MacOS X FDS support to hotspot; add minimal MacOS X FDS import support to jdk; add MacOS X FDS support to install; add MacOS X FDS support to root. Reviewed-by: erikj, sla, dholmes, rdurbin, tbell, ihse
author dcubed
date Tue, 15 Oct 2013 08:25:43 -0700
parents f2110083203d
children 096c224171c4 67d6392ed21e f933a15469d4
comparison
equal deleted inserted replaced
12858:2f8728d92483 12859:f509b8f4699b
58 # set INCLUDES for C preprocessor. 58 # set INCLUDES for C preprocessor.
59 Src_Dirs_I += $(GENERATED) 59 Src_Dirs_I += $(GENERATED)
60 # The order is important for the precompiled headers to work. 60 # The order is important for the precompiled headers to work.
61 INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%) 61 INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
62 62
63 ifeq (${VERSION}, debug) 63 # SYMFLAG is used by {jsig,saproc}.make
64 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
65 # always build with debug info when we can create .dSYM/.debuginfo files
64 SYMFLAG = -g 66 SYMFLAG = -g
65 else 67 else
66 SYMFLAG = 68 ifeq (${VERSION}, debug)
69 SYMFLAG = -g
70 else
71 SYMFLAG =
72 endif
67 endif 73 endif
68 74
69 # HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined 75 # HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined
70 # in $(GAMMADIR)/make/defs.make 76 # in $(GAMMADIR)/make/defs.make
71 ifeq ($(HOTSPOT_BUILD_VERSION),) 77 ifeq ($(HOTSPOT_BUILD_VERSION),)
145 LIBJVM = lib$(JVM).dylib 151 LIBJVM = lib$(JVM).dylib
146 CFLAGS += -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE 152 CFLAGS += -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE
147 ifeq (${VERSION}, $(filter ${VERSION}, debug fastdebug)) 153 ifeq (${VERSION}, $(filter ${VERSION}, debug fastdebug))
148 CFLAGS += -DALLOW_OPERATOR_NEW_USAGE 154 CFLAGS += -DALLOW_OPERATOR_NEW_USAGE
149 endif 155 endif
156
157 LIBJVM_DEBUGINFO = lib$(JVM).dylib.dSYM
158 LIBJVM_DIZ = lib$(JVM).diz
150 else 159 else
151 LIBJVM = lib$(JVM).so 160 LIBJVM = lib$(JVM).so
161
162 LIBJVM_DEBUGINFO = lib$(JVM).debuginfo
163 LIBJVM_DIZ = lib$(JVM).diz
152 endif 164 endif
153 165
154 SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt 166 SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt
155 167
156 SOURCE_PATHS=\ 168 SOURCE_PATHS=\
320 $(LFLAGS_VM) -o $@ $(sort $(LIBJVM.o)) $(LIBS_VM); \ 332 $(LFLAGS_VM) -o $@ $(sort $(LIBJVM.o)) $(LIBS_VM); \
321 $(LINK_LIB.CXX/POST_HOOK) \ 333 $(LINK_LIB.CXX/POST_HOOK) \
322 rm -f $@.1; ln -s $@ $@.1; \ 334 rm -f $@.1; ln -s $@ $@.1; \
323 } 335 }
324 336
325 DEST_JVM = $(JDK_LIBDIR)/$(VM_SUBDIR)/$(LIBJVM) 337 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
338 ifeq ($(OS_VENDOR), Darwin)
339 $(DSYMUTIL) $@
340 ifeq ($(ZIP_DEBUGINFO_FILES),1)
341 $(ZIPEXE) -q -r -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO)
342 $(RM) -r $(LIBJVM_DEBUGINFO)
343 endif
344 else
345 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
346 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
347 ifeq ($(STRIP_POLICY),all_strip)
348 $(QUIETLY) $(STRIP) $@
349 else
350 ifeq ($(STRIP_POLICY),min_strip)
351 $(QUIETLY) $(STRIP) -g $@
352 # implied else here is no stripping at all
353 endif
354 endif
355 ifeq ($(ZIP_DEBUGINFO_FILES),1)
356 $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO)
357 $(RM) $(LIBJVM_DEBUGINFO)
358 endif
359 endif
360 endif
361
362 DEST_SUBDIR = $(JDK_LIBDIR)/$(VM_SUBDIR)
363 DEST_JVM = $(DEST_SUBDIR)/$(LIBJVM)
364 DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO)
365 DEST_JVM_DIZ = $(DEST_SUBDIR)/$(LIBJVM_DIZ)
326 366
327 install_jvm: $(LIBJVM) 367 install_jvm: $(LIBJVM)
328 @echo "Copying $(LIBJVM) to $(DEST_JVM)" 368 @echo "Copying $(LIBJVM) to $(DEST_JVM)"
369 ifeq ($(OS_VENDOR), Darwin)
370 $(QUIETLY) test -d $(LIBJVM_DEBUGINFO) && \
371 cp -f -r $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO)
372 else
373 $(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \
374 cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO)
375 endif
376 $(QUIETLY) test -f $(LIBJVM_DIZ) && \
377 cp -f $(LIBJVM_DIZ) $(DEST_JVM_DIZ)
329 $(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done" 378 $(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done"
330 379
331 #---------------------------------------------------------------------- 380 #----------------------------------------------------------------------
332 # Other files 381 # Other files
333 382
338 include $(MAKEFILES_DIR)/saproc.make 387 include $(MAKEFILES_DIR)/saproc.make
339 388
340 #---------------------------------------------------------------------- 389 #----------------------------------------------------------------------
341 390
342 ifeq ($(OS_VENDOR), Darwin) 391 ifeq ($(OS_VENDOR), Darwin)
343 $(LIBJVM).dSYM: $(LIBJVM)
344 dsymutil $(LIBJVM)
345
346 # no libjvm_db for macosx 392 # no libjvm_db for macosx
347 build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck $(LIBJVM).dSYM 393 build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck
348 echo "Doing vm.make build:" 394 echo "Doing vm.make build:"
349 else 395 else
350 build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) 396 build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
351 endif 397 endif
352 398