Tue, 15 Oct 2013 08:25:43 -0700
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
1.1 --- a/make/Makefile Mon Oct 14 21:52:42 2013 -0400 1.2 +++ b/make/Makefile Tue Oct 15 08:25:43 2013 -0700 1.3 @@ -334,6 +334,11 @@ 1.4 $(install-file) 1.5 $(EXPORT_SERVER_DIR)/64/%.diz: $(C2_BUILD_DIR)/%.diz 1.6 $(install-file) 1.7 +# MacOS X 1.8 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.dSYM: $(C2_BUILD_DIR)/%.dSYM 1.9 + $(install-dir) 1.10 +$(EXPORT_SERVER_DIR)/%.dSYM: $(C2_BUILD_DIR)/%.dSYM 1.11 + $(install-dir) 1.12 endif 1.13 1.14 # Client (C1) 1.15 @@ -379,6 +384,11 @@ 1.16 $(install-file) 1.17 $(EXPORT_CLIENT_DIR)/64/%.diz: $(C1_BUILD_DIR)/%.diz 1.18 $(install-file) 1.19 +# MacOS X 1.20 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.dSYM: $(C1_BUILD_DIR)/%.dSYM 1.21 + $(install-dir) 1.22 +$(EXPORT_CLIENT_DIR)/%.dSYM: $(C1_BUILD_DIR)/%.dSYM 1.23 + $(install-dir) 1.24 endif 1.25 1.26 # Minimal1 1.27 @@ -424,6 +434,7 @@ 1.28 $(install-file) 1.29 $(EXPORT_MINIMAL_DIR)/64/%.diz: $(MINIMAL1_BUILD_DIR)/%.diz 1.30 $(install-file) 1.31 +# MacOS X does not support Minimal1 config 1.32 endif 1.33 1.34 # Zero 1.35 @@ -446,6 +457,11 @@ 1.36 $(install-file) 1.37 $(EXPORT_SERVER_DIR)/%.diz: $(ZERO_BUILD_DIR)/%.diz 1.38 $(install-file) 1.39 +# MacOS X 1.40 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.dSYM: $(ZERO_BUILD_DIR)/%.dSYM 1.41 + $(install-dir) 1.42 +$(EXPORT_SERVER_DIR)/%.dSYM: $(ZERO_BUILD_DIR)/%.dSYM 1.43 + $(install-dir) 1.44 endif 1.45 1.46 # Shark 1.47 @@ -468,6 +484,11 @@ 1.48 $(install-file) 1.49 $(EXPORT_SERVER_DIR)/%.diz: $(SHARK_BUILD_DIR)/%.diz 1.50 $(install-file) 1.51 +# MacOS X 1.52 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.dSYM: $(SHARK_BUILD_DIR)/%.dSYM 1.53 + $(install-dir) 1.54 +$(EXPORT_SERVER_DIR)/%.dSYM: $(SHARK_BUILD_DIR)/%.dSYM 1.55 + $(install-dir) 1.56 endif 1.57 1.58 $(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/code/%
2.1 --- a/make/bsd/Makefile Mon Oct 14 21:52:42 2013 -0400 2.2 +++ b/make/bsd/Makefile Tue Oct 15 08:25:43 2013 -0700 2.3 @@ -204,6 +204,7 @@ 2.4 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make 2.5 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) LIBRARY_SUFFIX=$(LIBRARY_SUFFIX) 2.6 BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 2.7 +BUILDTREE_VARS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY) ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) ZIPEXE=$(ZIPEXE) 2.8 2.9 BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS) 2.10 2.11 @@ -337,9 +338,11 @@ 2.12 2.13 # Doc target. This is the same for all build options. 2.14 # Hence create a docs directory beside ...$(ARCH)_[...] 2.15 +# We specify 'BUILD_FLAVOR=product' so that the proper 2.16 +# ENABLE_FULL_DEBUG_SYMBOLS value is used. 2.17 docs: checks 2.18 $(QUIETLY) mkdir -p $(SUBDIR_DOCS) 2.19 - $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) jvmtidocs 2.20 + $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs 2.21 2.22 # Synonyms for win32-like targets. 2.23 compiler2: debug product
3.1 --- a/make/bsd/makefiles/buildtree.make Mon Oct 14 21:52:42 2013 -0400 3.2 +++ b/make/bsd/makefiles/buildtree.make Tue Oct 15 08:25:43 2013 -0700 3.3 @@ -261,6 +261,16 @@ 3.4 echo "$(call gamma-path,commonsrc,os/posix/vm)"; \ 3.5 [ -n "$(CFLAGS_BROWSE)" ] && \ 3.6 echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \ 3.7 + [ -n "$(ENABLE_FULL_DEBUG_SYMBOLS)" ] && \ 3.8 + echo && echo "ENABLE_FULL_DEBUG_SYMBOLS = $(ENABLE_FULL_DEBUG_SYMBOLS)"; \ 3.9 + [ -n "$(OBJCOPY)" ] && \ 3.10 + echo && echo "OBJCOPY = $(OBJCOPY)"; \ 3.11 + [ -n "$(STRIP_POLICY)" ] && \ 3.12 + echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \ 3.13 + [ -n "$(ZIP_DEBUGINFO_FILES)" ] && \ 3.14 + echo && echo "ZIP_DEBUGINFO_FILES = $(ZIP_DEBUGINFO_FILES)"; \ 3.15 + [ -n "$(ZIPEXE)" ] && \ 3.16 + echo && echo "ZIPEXE = $(ZIPEXE)"; \ 3.17 [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \ 3.18 echo && \ 3.19 echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
4.1 --- a/make/bsd/makefiles/defs.make Mon Oct 14 21:52:42 2013 -0400 4.2 +++ b/make/bsd/makefiles/defs.make Tue Oct 15 08:25:43 2013 -0700 4.3 @@ -136,10 +136,127 @@ 4.4 endif 4.5 endif 4.6 4.7 +OS_VENDOR:=$(shell uname -s) 4.8 + 4.9 +# determine if HotSpot is being built in JDK6 or earlier version 4.10 +JDK6_OR_EARLIER=0 4.11 +ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1" 4.12 + # if the longer variable names (newer build style) are set, then check those 4.13 + ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1" 4.14 + JDK6_OR_EARLIER=1 4.15 + endif 4.16 +else 4.17 + # the longer variables aren't set so check the shorter variable names 4.18 + ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1" 4.19 + JDK6_OR_EARLIER=1 4.20 + endif 4.21 +endif 4.22 + 4.23 +ifeq ($(JDK6_OR_EARLIER),0) 4.24 + # Full Debug Symbols is supported on JDK7 or newer. 4.25 + # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product 4.26 + # builds is enabled with debug info files ZIP'ed to save space. For 4.27 + # BUILD_FLAVOR != product builds, FDS is always enabled, after all a 4.28 + # debug build without debug info isn't very useful. 4.29 + # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled. 4.30 + # 4.31 + # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be 4.32 + # disabled for a BUILD_FLAVOR == product build. 4.33 + # 4.34 + # Note: Use of a different variable name for the FDS override option 4.35 + # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS 4.36 + # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass 4.37 + # in options via environment variables, use of distinct variables 4.38 + # prevents strange behaviours. For example, in a BUILD_FLAVOR != 4.39 + # product build, the FULL_DEBUG_SYMBOLS environment variable will be 4.40 + # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If 4.41 + # the same variable name is used, then different values can be picked 4.42 + # up by different parts of the build. Just to be clear, we only need 4.43 + # two variable names because the incoming option value can be 4.44 + # overridden in some situations, e.g., a BUILD_FLAVOR != product 4.45 + # build. 4.46 + 4.47 + # Due to the multiple sub-make processes that occur this logic gets 4.48 + # executed multiple times. We reduce the noise by at least checking that 4.49 + # BUILD_FLAVOR has been set. 4.50 + ifneq ($(BUILD_FLAVOR),) 4.51 + ifeq ($(BUILD_FLAVOR), product) 4.52 + FULL_DEBUG_SYMBOLS ?= 1 4.53 + ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS) 4.54 + else 4.55 + # debug variants always get Full Debug Symbols (if available) 4.56 + ENABLE_FULL_DEBUG_SYMBOLS = 1 4.57 + endif 4.58 + _JUNK_ := $(shell \ 4.59 + echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") 4.60 + # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later 4.61 + 4.62 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.63 + ifeq ($(OS_VENDOR), Darwin) 4.64 + # MacOS X doesn't use OBJCOPY or STRIP_POLICY 4.65 + OBJCOPY= 4.66 + STRIP_POLICY= 4.67 + ZIP_DEBUGINFO_FILES ?= 1 4.68 + else 4.69 + # Default OBJCOPY comes from GNU Binutils on BSD 4.70 + ifeq ($(CROSS_COMPILE_ARCH),) 4.71 + DEF_OBJCOPY=/usr/bin/objcopy 4.72 + else 4.73 + # Assume objcopy is part of the cross-compilation toolset 4.74 + ifneq ($(ALT_COMPILER_PATH),) 4.75 + DEF_OBJCOPY=$(ALT_COMPILER_PATH)/objcopy 4.76 + endif 4.77 + endif 4.78 + OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) 4.79 + ifneq ($(ALT_OBJCOPY),) 4.80 + _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") 4.81 + OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) 4.82 + endif 4.83 + 4.84 + ifeq ($(OBJCOPY),) 4.85 + _JUNK_ := $(shell \ 4.86 + echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo" \ 4.87 + "files. You may need to set ALT_OBJCOPY.") 4.88 + ENABLE_FULL_DEBUG_SYMBOLS=0 4.89 + _JUNK_ := $(shell \ 4.90 + echo >&2 "INFO:" \ 4.91 + "ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)") 4.92 + else 4.93 + _JUNK_ := $(shell \ 4.94 + echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo" \ 4.95 + "files.") 4.96 + 4.97 + # Library stripping policies for .debuginfo configs: 4.98 + # all_strip - strips everything from the library 4.99 + # min_strip - strips most stuff from the library; leaves 4.100 + # minimum symbols 4.101 + # no_strip - does not strip the library at all 4.102 + # 4.103 + # Oracle security policy requires "all_strip". A waiver was 4.104 + # granted on 2011.09.01 that permits using "min_strip" in the 4.105 + # Java JDK and Java JRE. 4.106 + # 4.107 + # Currently, STRIP_POLICY is only used when Full Debug Symbols 4.108 + # is enabled. 4.109 + # 4.110 + STRIP_POLICY ?= min_strip 4.111 + 4.112 + _JUNK_ := $(shell \ 4.113 + echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") 4.114 + 4.115 + ZIP_DEBUGINFO_FILES ?= 1 4.116 + endif 4.117 + 4.118 + _JUNK_ := $(shell \ 4.119 + echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") 4.120 + endif 4.121 + endif # ENABLE_FULL_DEBUG_SYMBOLS=1 4.122 + endif # BUILD_FLAVOR 4.123 +endif # JDK_6_OR_EARLIER 4.124 + 4.125 JDK_INCLUDE_SUBDIR=bsd 4.126 4.127 # Library suffix 4.128 -OS_VENDOR:=$(shell uname -s) 4.129 ifeq ($(OS_VENDOR),Darwin) 4.130 LIBRARY_SUFFIX=dylib 4.131 else 4.132 @@ -150,6 +267,19 @@ 4.133 4.134 # client and server subdirectories have symbolic links to ../libjsig.so 4.135 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX) 4.136 + 4.137 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.138 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.139 + EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz 4.140 + else 4.141 + ifeq ($(OS_VENDOR), Darwin) 4.142 + EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX).dSYM 4.143 + else 4.144 + EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo 4.145 + endif 4.146 + endif 4.147 +endif 4.148 + 4.149 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server 4.150 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client 4.151 EXPORT_MINIMAL_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/minimal 4.152 @@ -157,34 +287,76 @@ 4.153 ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true) 4.154 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt 4.155 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX) 4.156 + 4.157 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.158 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.159 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz 4.160 + else 4.161 + ifeq ($(OS_VENDOR), Darwin) 4.162 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX).dSYM 4.163 + else 4.164 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo 4.165 + endif 4.166 + endif 4.167 + endif 4.168 endif 4.169 4.170 ifeq ($(JVM_VARIANT_CLIENT),true) 4.171 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt 4.172 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) 4.173 + 4.174 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.175 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.176 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz 4.177 + else 4.178 + ifeq ($(OS_VENDOR), Darwin) 4.179 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX).dSYM 4.180 + else 4.181 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo 4.182 + endif 4.183 + endif 4.184 + endif 4.185 endif 4.186 4.187 ifeq ($(JVM_VARIANT_MINIMAL1),true) 4.188 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/Xusage.txt 4.189 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.$(LIBRARY_SUFFIX) 4.190 - 4.191 - ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.192 - ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.193 - EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.diz 4.194 - else 4.195 - EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.debuginfo 4.196 - endif 4.197 - endif 4.198 endif 4.199 4.200 # Serviceability Binaries 4.201 # No SA Support for PPC, IA64, ARM or zero 4.202 ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ 4.203 $(EXPORT_LIB_DIR)/sa-jdi.jar 4.204 + 4.205 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.206 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.207 + ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz 4.208 + else 4.209 + ifeq ($(OS_VENDOR), Darwin) 4.210 + ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM 4.211 + else 4.212 + ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo 4.213 + endif 4.214 + endif 4.215 +endif 4.216 + 4.217 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ 4.218 $(EXPORT_LIB_DIR)/sa-jdi.jar 4.219 ADD_SA_BINARIES/universal = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ 4.220 $(EXPORT_LIB_DIR)/sa-jdi.jar 4.221 + 4.222 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.223 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.224 + ADD_SA_BINARIES/universal += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz 4.225 + else 4.226 + ifeq ($(OS_VENDOR), Darwin) 4.227 + ADD_SA_BINARIES/universal += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM 4.228 + else 4.229 + ADD_SA_BINARIES/universal += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo 4.230 + endif 4.231 + endif 4.232 +endif 4.233 + 4.234 ADD_SA_BINARIES/ppc = 4.235 ADD_SA_BINARIES/ia64 = 4.236 ADD_SA_BINARIES/arm = 4.237 @@ -225,6 +397,19 @@ 4.238 # Files to simply copy in place 4.239 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/Xusage.txt 4.240 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/Xusage.txt 4.241 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.242 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.243 + UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/libjvm.diz 4.244 + UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.diz 4.245 + UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/libjsig.diz 4.246 + UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/libsaproc.diz 4.247 + else 4.248 + UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX).dSYM 4.249 + UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX).dSYM 4.250 + UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX).dSYM 4.251 + UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM 4.252 + endif 4.253 + endif 4.254 4.255 endif 4.256 endif
5.1 --- a/make/bsd/makefiles/dtrace.make Mon Oct 14 21:52:42 2013 -0400 5.2 +++ b/make/bsd/makefiles/dtrace.make Tue Oct 15 08:25:43 2013 -0700 5.3 @@ -39,9 +39,15 @@ 5.4 JVM_DB = libjvm_db 5.5 LIBJVM_DB = libjvm_db.dylib 5.6 5.7 +LIBJVM_DB_DEBUGINFO = libjvm_db.dylib.dSYM 5.8 +LIBJVM_DB_DIZ = libjvm_db.diz 5.9 + 5.10 JVM_DTRACE = jvm_dtrace 5.11 LIBJVM_DTRACE = libjvm_dtrace.dylib 5.12 5.13 +LIBJVM_DTRACE_DEBUGINFO = libjvm_dtrace.dylib.dSYM 5.14 +LIBJVM_DTRACE_DIZ = libjvm_dtrace.diz 5.15 + 5.16 JVMOFFS = JvmOffsets 5.17 JVMOFFS.o = $(JVMOFFS).o 5.18 GENOFFS = generate$(JVMOFFS) 5.19 @@ -76,21 +82,87 @@ 5.20 # Making 64/libjvm_db.so: 64-bit version of libjvm_db.so which handles 32-bit libjvm.so 5.21 ifneq ("${ISA}","${BUILDARCH}") 5.22 5.23 -XLIBJVM_DB = 64/$(LIBJVM_DB) 5.24 -XLIBJVM_DTRACE = 64/$(LIBJVM_DTRACE) 5.25 +XLIBJVM_DIR = 64 5.26 +XLIBJVM_DB = $(XLIBJVM_DIR)/$(LIBJVM_DB) 5.27 +XLIBJVM_DTRACE = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE) 5.28 XARCH = $(subst sparcv9,v9,$(shell echo $(ISA))) 5.29 5.30 +XLIBJVM_DB_DEBUGINFO = $(XLIBJVM_DIR)/$(LIBJVM_DB_DEBUGINFO) 5.31 +XLIBJVM_DB_DIZ = $(XLIBJVM_DIR)/$(LIBJVM_DB_DIZ) 5.32 +XLIBJVM_DTRACE_DEBUGINFO = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DEBUGINFO) 5.33 +XLIBJVM_DTRACE_DIZ = $(XLIBJVM_DIR)/$(LIBJVM_DTRACE_DIZ) 5.34 + 5.35 $(XLIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE) 5.36 @echo Making $@ 5.37 - $(QUIETLY) mkdir -p 64/ ; \ 5.38 + $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \ 5.39 $(CC) $(SYMFLAG) -xarch=$(XARCH) -D$(TYPE) -I. -I$(GENERATED) \ 5.40 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c #-lc 5.41 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 5.42 + ifeq ($(OS_VENDOR), Darwin) 5.43 + $(DSYMUTIL) $@ 5.44 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 5.45 + # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) 5.46 + # is not in the archived name: 5.47 + ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -r -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) ) 5.48 + $(RM) -r $(XLIBJVM_DB_DEBUGINFO) 5.49 + endif 5.50 + else 5.51 + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DB_DEBUGINFO) 5.52 + # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) 5.53 + # is not in the link name: 5.54 + $(QUIETLY) ( cd $(XLIBJVM_DIR) && $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB) ) 5.55 + ifeq ($(STRIP_POLICY),all_strip) 5.56 + $(QUIETLY) $(STRIP) $@ 5.57 + else 5.58 + ifeq ($(STRIP_POLICY),min_strip) 5.59 + $(QUIETLY) $(STRIP) -x $@ 5.60 + # implied else here is no stripping at all 5.61 + endif 5.62 + endif 5.63 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 5.64 + # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) 5.65 + # is not in the archived name: 5.66 + ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) ) 5.67 + $(RM) $(XLIBJVM_DB_DEBUGINFO) 5.68 + endif 5.69 + endif 5.70 +endif 5.71 5.72 $(XLIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE) 5.73 @echo Making $@ 5.74 - $(QUIETLY) mkdir -p 64/ ; \ 5.75 + $(QUIETLY) mkdir -p $(XLIBJVM_DIR) ; \ 5.76 $(CC) $(SYMFLAG) -xarch=$(XARCH) -D$(TYPE) -I. \ 5.77 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c #-lc -lthread -ldoor 5.78 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 5.79 + ifeq ($(OS_VENDOR), Darwin) 5.80 + $(DSYMUTIL) $@ 5.81 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 5.82 + # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) 5.83 + # is not in the archived name: 5.84 + ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -r -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO) ) 5.85 + $(RM) -r $(XLIBJVM_DTRACE_DEBUGINFO) 5.86 + endif 5.87 + else 5.88 + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DTRACE_DEBUGINFO) 5.89 + # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) 5.90 + # is not in the link name: 5.91 + ( cd $(XLIBJVM_DIR) && $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE) ) 5.92 + ifeq ($(STRIP_POLICY),all_strip) 5.93 + $(QUIETLY) $(STRIP) $@ 5.94 + else 5.95 + ifeq ($(STRIP_POLICY),min_strip) 5.96 + $(QUIETLY) $(STRIP) -x $@ 5.97 + # implied else here is no stripping at all 5.98 + endif 5.99 + endif 5.100 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 5.101 + # Do this part in the $(XLIBJVM_DIR) subdir so $(XLIBJVM_DIR) 5.102 + # is not in the archived name: 5.103 + ( cd $(XLIBJVM_DIR) && $(ZIPEXE) -q -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO) ) 5.104 + $(RM) $(XLIBJVM_DTRACE_DEBUGINFO) 5.105 + endif 5.106 + endif 5.107 +endif 5.108 5.109 endif # ifneq ("${ISA}","${BUILDARCH}") 5.110 5.111 @@ -134,11 +206,59 @@ 5.112 @echo Making $@ 5.113 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. -I$(GENERATED) \ 5.114 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -Wall # -lc 5.115 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 5.116 + ifeq ($(OS_VENDOR), Darwin) 5.117 + $(DSYMUTIL) $@ 5.118 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 5.119 + $(ZIPEXE) -q -r -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) 5.120 + $(RM) -r $(LIBJVM_DB_DEBUGINFO) 5.121 + endif 5.122 + else 5.123 + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DB_DEBUGINFO) 5.124 + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@ 5.125 + ifeq ($(STRIP_POLICY),all_strip) 5.126 + $(QUIETLY) $(STRIP) $@ 5.127 + else 5.128 + ifeq ($(STRIP_POLICY),min_strip) 5.129 + $(QUIETLY) $(STRIP) -x $@ 5.130 + # implied else here is no stripping at all 5.131 + endif 5.132 + endif 5.133 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 5.134 + $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) 5.135 + $(RM) $(LIBJVM_DB_DEBUGINFO) 5.136 + endif 5.137 + endif 5.138 +endif 5.139 5.140 $(LIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE) 5.141 @echo Making $@ 5.142 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. \ 5.143 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c #-lc -lthread -ldoor 5.144 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 5.145 + ifeq ($(OS_VENDOR), Darwin) 5.146 + $(DSYMUTIL) $@ 5.147 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 5.148 + $(ZIPEXE) -q -r -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO) 5.149 + $(RM) -r $(LIBJVM_DTRACE_DEBUGINFO) 5.150 + endif 5.151 + else 5.152 + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DTRACE_DEBUGINFO) 5.153 + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@ 5.154 + ifeq ($(STRIP_POLICY),all_strip) 5.155 + $(QUIETLY) $(STRIP) $@ 5.156 + else 5.157 + ifeq ($(STRIP_POLICY),min_strip) 5.158 + $(QUIETLY) $(STRIP) -x $@ 5.159 + # implied else here is no stripping at all 5.160 + endif 5.161 + endif 5.162 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 5.163 + $(ZIPEXE) -q -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO) 5.164 + $(RM) $(LIBJVM_DTRACE_DEBUGINFO) 5.165 + endif 5.166 + endif 5.167 +endif 5.168 5.169 #$(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \ 5.170 # $(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d
6.1 --- a/make/bsd/makefiles/gcc.make Mon Oct 14 21:52:42 2013 -0400 6.2 +++ b/make/bsd/makefiles/gcc.make Tue Oct 15 08:25:43 2013 -0700 6.3 @@ -83,6 +83,11 @@ 6.4 AS = $(CC) -c 6.5 endif 6.6 6.7 +ifeq ($(OS_VENDOR), Darwin) 6.8 + ifeq ($(DSYMUTIL),) 6.9 + DSYMUTIL=dsymutil 6.10 + endif 6.11 +endif 6.12 6.13 ifeq ($(USE_CLANG), true) 6.14 CC_VER_MAJOR := $(shell $(CC) -v 2>&1 | grep version | sed "s/.*version \([0-9]*\.[0-9]*\).*/\1/" | cut -d'.' -f1) 6.15 @@ -434,6 +439,36 @@ 6.16 ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),) 6.17 DEBUG_CFLAGS += -gstabs 6.18 endif 6.19 + 6.20 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 6.21 + FASTDEBUG_CFLAGS/ia64 = -g 6.22 + FASTDEBUG_CFLAGS/amd64 = -g 6.23 + FASTDEBUG_CFLAGS/arm = -g 6.24 + FASTDEBUG_CFLAGS/ppc = -g 6.25 + FASTDEBUG_CFLAGS += $(FASTDEBUG_CFLAGS/$(BUILDARCH)) 6.26 + ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) 6.27 + ifeq ($(USE_CLANG), true) 6.28 + # Clang doesn't understand -gstabs 6.29 + FASTDEBUG_CFLAGS += -g 6.30 + else 6.31 + FASTDEBUG_CFLAGS += -gstabs 6.32 + endif 6.33 + endif 6.34 + 6.35 + OPT_CFLAGS/ia64 = -g 6.36 + OPT_CFLAGS/amd64 = -g 6.37 + OPT_CFLAGS/arm = -g 6.38 + OPT_CFLAGS/ppc = -g 6.39 + OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) 6.40 + ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) 6.41 + ifeq ($(USE_CLANG), true) 6.42 + # Clang doesn't understand -gstabs 6.43 + OPT_CFLAGS += -g 6.44 + else 6.45 + OPT_CFLAGS += -gstabs 6.46 + endif 6.47 + endif 6.48 + endif 6.49 endif 6.50 6.51 # If we are building HEADLESS, pass on to VM
7.1 --- a/make/bsd/makefiles/jsig.make Mon Oct 14 21:52:42 2013 -0400 7.2 +++ b/make/bsd/makefiles/jsig.make Tue Oct 15 08:25:43 2013 -0700 7.3 @@ -1,5 +1,5 @@ 7.4 # 7.5 -# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 7.6 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 7.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 7.8 # 7.9 # This code is free software; you can redistribute it and/or modify it 7.10 @@ -29,13 +29,21 @@ 7.11 7.12 ifeq ($(OS_VENDOR), Darwin) 7.13 LIBJSIG = lib$(JSIG).dylib 7.14 + 7.15 + LIBJSIG_DEBUGINFO = lib$(JSIG).dylib.dSYM 7.16 + LIBJSIG_DIZ = lib$(JSIG).diz 7.17 else 7.18 LIBJSIG = lib$(JSIG).so 7.19 + 7.20 + LIBJSIG_DEBUGINFO = lib$(JSIG).debuginfo 7.21 + LIBJSIG_DIZ = lib$(JSIG).diz 7.22 endif 7.23 7.24 JSIGSRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/vm 7.25 7.26 -DEST_JSIG = $(JDK_LIBDIR)/$(LIBJSIG) 7.27 +DEST_JSIG = $(JDK_LIBDIR)/$(LIBJSIG) 7.28 +DEST_JSIG_DEBUGINFO = $(JDK_LIBDIR)/$(LIBJSIG_DEBUGINFO) 7.29 +DEST_JSIG_DIZ = $(JDK_LIBDIR)/$(LIBJSIG_DIZ) 7.30 7.31 LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig 7.32 7.33 @@ -55,9 +63,42 @@ 7.34 @echo Making signal interposition lib... 7.35 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \ 7.36 $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $< 7.37 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 7.38 + ifeq ($(OS_VENDOR), Darwin) 7.39 + $(DSYMUTIL) $@ 7.40 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 7.41 + $(ZIPEXE) -q -r -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO) 7.42 + $(RM) -r $(LIBJSIG_DEBUGINFO) 7.43 + endif 7.44 + else 7.45 + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO) 7.46 + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ 7.47 + ifeq ($(STRIP_POLICY),all_strip) 7.48 + $(QUIETLY) $(STRIP) $@ 7.49 + else 7.50 + ifeq ($(STRIP_POLICY),min_strip) 7.51 + $(QUIETLY) $(STRIP) -g $@ 7.52 + # implied else here is no stripping at all 7.53 + endif 7.54 + endif 7.55 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 7.56 + $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO) 7.57 + $(RM) $(LIBJSIG_DEBUGINFO) 7.58 + endif 7.59 + endif 7.60 +endif 7.61 7.62 install_jsig: $(LIBJSIG) 7.63 @echo "Copying $(LIBJSIG) to $(DEST_JSIG)" 7.64 +ifeq ($(OS_VENDOR), Darwin) 7.65 + $(QUIETLY) test -d $(LIBJSIG_DEBUGINFO) && \ 7.66 + cp -f -r $(LIBJSIG_DEBUGINFO) $(DEST_JSIG_DEBUGINFO) 7.67 +else 7.68 + $(QUIETLY) test -f $(LIBJSIG_DEBUGINFO) && \ 7.69 + cp -f $(LIBJSIG_DEBUGINFO) $(DEST_JSIG_DEBUGINFO) 7.70 +endif 7.71 + $(QUIETLY) test -f $(LIBJSIG_DIZ) && \ 7.72 + cp -f $(LIBJSIG_DIZ) $(DEST_JSIG_DIZ) 7.73 $(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done" 7.74 7.75 .PHONY: install_jsig
8.1 --- a/make/bsd/makefiles/product.make Mon Oct 14 21:52:42 2013 -0400 8.2 +++ b/make/bsd/makefiles/product.make Tue Oct 15 08:25:43 2013 -0700 8.3 @@ -1,5 +1,5 @@ 8.4 # 8.5 -# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. 8.6 +# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 8.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 8.8 # 8.9 # This code is free software; you can redistribute it and/or modify it 8.10 @@ -43,15 +43,17 @@ 8.11 SYSDEFS += -DPRODUCT 8.12 VERSION = optimized 8.13 8.14 -# use -g to strip library as -x will discard its symbol table; -x is fine for 8.15 -# executables. 8.16 -ifdef CROSS_COMPILE_ARCH 8.17 - STRIP = $(ALT_COMPILER_PATH)/strip 8.18 -else 8.19 - STRIP = strip 8.20 +ifneq ($(OS_VENDOR), Darwin) 8.21 + # use -g to strip library as -x will discard its symbol table; -x is fine for 8.22 + # executables. 8.23 + ifdef CROSS_COMPILE_ARCH 8.24 + STRIP = $(ALT_COMPILER_PATH)/strip 8.25 + else 8.26 + STRIP = strip 8.27 + endif 8.28 + STRIP_LIBJVM = $(STRIP) -g $@ || exit 1; 8.29 + STRIP_AOUT = $(STRIP) -x $@ || exit 1; 8.30 + 8.31 + # Don't strip in VM build; JDK build will strip libraries later 8.32 + # LINK_LIB.CXX/POST_HOOK += $(STRIP_$(LINK_INTO)) 8.33 endif 8.34 -STRIP_LIBJVM = $(STRIP) -g $@ || exit 1; 8.35 -STRIP_AOUT = $(STRIP) -x $@ || exit 1; 8.36 - 8.37 -# Don't strip in VM build; JDK build will strip libraries later 8.38 -# LINK_LIB.CXX/POST_HOOK += $(STRIP_$(LINK_INTO))
9.1 --- a/make/bsd/makefiles/saproc.make Mon Oct 14 21:52:42 2013 -0400 9.2 +++ b/make/bsd/makefiles/saproc.make Tue Oct 15 08:25:43 2013 -0700 9.3 @@ -28,9 +28,15 @@ 9.4 SAPROC = saproc 9.5 9.6 ifeq ($(OS_VENDOR), Darwin) 9.7 - LIBSAPROC = lib$(SAPROC).dylib 9.8 + LIBSAPROC = lib$(SAPROC).dylib 9.9 + 9.10 + LIBSAPROC_DEBUGINFO = lib$(SAPROC).dylib.dSYM 9.11 + LIBSAPROC_DIZ = lib$(SAPROC).diz 9.12 else 9.13 - LIBSAPROC = lib$(SAPROC).so 9.14 + LIBSAPROC = lib$(SAPROC).so 9.15 + 9.16 + LIBSAPROC_DEBUGINFO = lib$(SAPROC).debuginfo 9.17 + LIBSAPROC_DIZ = lib$(SAPROC).diz 9.18 endif 9.19 9.20 AGENT_DIR = $(GAMMADIR)/agent 9.21 @@ -70,7 +76,9 @@ 9.22 9.23 SAMAPFILE = $(SASRCDIR)/mapfile 9.24 9.25 -DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC) 9.26 +DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC) 9.27 +DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO) 9.28 +DEST_SAPROC_DIZ = $(JDK_LIBDIR)/$(LIBSAPROC_DIZ) 9.29 9.30 # DEBUG_BINARIES overrides everything, use full -g debug information 9.31 ifeq ($(DEBUG_BINARIES), true) 9.32 @@ -117,11 +125,42 @@ 9.33 $(SA_DEBUG_CFLAGS) \ 9.34 -o $@ \ 9.35 $(SALIBS) 9.36 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 9.37 + ifeq ($(OS_VENDOR), Darwin) 9.38 + $(DSYMUTIL) $@ 9.39 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 9.40 + $(ZIPEXE) -q -r -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO) 9.41 + $(RM) -r $(LIBSAPROC_DEBUGINFO) 9.42 + endif 9.43 + else 9.44 + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO) 9.45 + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@ 9.46 + ifeq ($(STRIP_POLICY),all_strip) 9.47 + $(QUIETLY) $(STRIP) $@ 9.48 + else 9.49 + ifeq ($(STRIP_POLICY),min_strip) 9.50 + $(QUIETLY) $(STRIP) -g $@ 9.51 + # implied else here is no stripping at all 9.52 + endif 9.53 + endif 9.54 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 9.55 + $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO) 9.56 + $(RM) $(LIBSAPROC_DEBUGINFO) 9.57 + endif 9.58 + endif 9.59 +endif 9.60 9.61 install_saproc: $(BUILDLIBSAPROC) 9.62 - $(QUIETLY) if [ -e $(LIBSAPROC) ] ; then \ 9.63 - echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \ 9.64 - cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \ 9.65 - fi 9.66 + @echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)" 9.67 +ifeq ($(OS_VENDOR), Darwin) 9.68 + $(QUIETLY) test -d $(LIBSAPROC_DEBUGINFO) && \ 9.69 + cp -f -r $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO) 9.70 +else 9.71 + $(QUIETLY) test -f $(LIBSAPROC_DEBUGINFO) && \ 9.72 + cp -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO) 9.73 +endif 9.74 + $(QUIETLY) test -f $(LIBSAPROC_DIZ) && \ 9.75 + cp -f $(LIBSAPROC_DIZ) $(DEST_SAPROC_DIZ) 9.76 + $(QUIETLY) cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done" 9.77 9.78 .PHONY: install_saproc
10.1 --- a/make/bsd/makefiles/universal.gmk Mon Oct 14 21:52:42 2013 -0400 10.2 +++ b/make/bsd/makefiles/universal.gmk Tue Oct 15 08:25:43 2013 -0700 10.3 @@ -1,5 +1,5 @@ 10.4 # 10.5 -# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. 10.6 +# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. 10.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 10.8 # 10.9 # This code is free software; you can redistribute it and/or modify it 10.10 @@ -19,7 +19,7 @@ 10.11 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 10.12 # or visit www.oracle.com if you need additional information or have any 10.13 # questions. 10.14 -# 10.15 +# 10.16 # 10.17 10.18 # macosx universal builds 10.19 @@ -35,15 +35,15 @@ 10.20 all_product_universal: 10.21 # $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_PRODUCT_TARGETS) 10.22 $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_PRODUCT_TARGETS) 10.23 - $(QUIETLY) $(MAKE) EXPORT_SUBDIR= universalize 10.24 + $(QUIETLY) $(MAKE) BUILD_FLAVOR=product EXPORT_SUBDIR= universalize 10.25 all_fastdebug_universal: 10.26 # $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_FASTDEBUG_TARGETS) 10.27 $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_FASTDEBUG_TARGETS) 10.28 - $(QUIETLY) $(MAKE) EXPORT_SUBDIR=/fastdebug universalize 10.29 + $(QUIETLY) $(MAKE) BUILD_FLAVOR=fastdebug EXPORT_SUBDIR=/fastdebug universalize 10.30 all_debug_universal: 10.31 # $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_DEBUG_TARGETS) 10.32 $(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_DEBUG_TARGETS) 10.33 - $(QUIETLY) $(MAKE) EXPORT_SUBDIR=/debug universalize 10.34 + $(QUIETLY) $(MAKE) BUILD_FLAVOR=debug EXPORT_SUBDIR=/debug universalize 10.35 10.36 10.37 # Consolidate architecture builds into a single Universal binary 10.38 @@ -57,18 +57,18 @@ 10.39 if [ -n "$${BUILT_LIPO_FILES}" ]; then \ 10.40 $(MKDIR) -p $(shell dirname $@); \ 10.41 lipo -create -output $@ $${BUILT_LIPO_FILES}; \ 10.42 - fi 10.43 + fi 10.44 10.45 10.46 # Copy built non-universal binaries in place 10.47 +# - copies directories; including empty dirs 10.48 +# - copies files, symlinks, other non-directory files 10.49 $(UNIVERSAL_COPY_LIST): 10.50 - BUILT_COPY_FILES="`find $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@) 2>/dev/null`"; \ 10.51 + BUILT_COPY_FILES="`find $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@) -prune 2>/dev/null`"; \ 10.52 if [ -n "$${BUILT_COPY_FILES}" ]; then \ 10.53 for i in $${BUILT_COPY_FILES}; do \ 10.54 - if [ -f $${i} ]; then \ 10.55 - $(MKDIR) -p $(shell dirname $@); \ 10.56 - $(CP) $${i} $@; \ 10.57 - fi; \ 10.58 + $(MKDIR) -p $(shell dirname $@); \ 10.59 + $(CP) -R $${i} $@; \ 10.60 done; \ 10.61 fi 10.62
11.1 --- a/make/bsd/makefiles/vm.make Mon Oct 14 21:52:42 2013 -0400 11.2 +++ b/make/bsd/makefiles/vm.make Tue Oct 15 08:25:43 2013 -0700 11.3 @@ -60,10 +60,16 @@ 11.4 # The order is important for the precompiled headers to work. 11.5 INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%) 11.6 11.7 -ifeq (${VERSION}, debug) 11.8 +# SYMFLAG is used by {jsig,saproc}.make 11.9 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 11.10 + # always build with debug info when we can create .dSYM/.debuginfo files 11.11 SYMFLAG = -g 11.12 else 11.13 - SYMFLAG = 11.14 + ifeq (${VERSION}, debug) 11.15 + SYMFLAG = -g 11.16 + else 11.17 + SYMFLAG = 11.18 + endif 11.19 endif 11.20 11.21 # HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined 11.22 @@ -147,8 +153,14 @@ 11.23 ifeq (${VERSION}, $(filter ${VERSION}, debug fastdebug)) 11.24 CFLAGS += -DALLOW_OPERATOR_NEW_USAGE 11.25 endif 11.26 + 11.27 + LIBJVM_DEBUGINFO = lib$(JVM).dylib.dSYM 11.28 + LIBJVM_DIZ = lib$(JVM).diz 11.29 else 11.30 LIBJVM = lib$(JVM).so 11.31 + 11.32 + LIBJVM_DEBUGINFO = lib$(JVM).debuginfo 11.33 + LIBJVM_DIZ = lib$(JVM).diz 11.34 endif 11.35 11.36 SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt 11.37 @@ -322,10 +334,47 @@ 11.38 rm -f $@.1; ln -s $@ $@.1; \ 11.39 } 11.40 11.41 -DEST_JVM = $(JDK_LIBDIR)/$(VM_SUBDIR)/$(LIBJVM) 11.42 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 11.43 + ifeq ($(OS_VENDOR), Darwin) 11.44 + $(DSYMUTIL) $@ 11.45 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 11.46 + $(ZIPEXE) -q -r -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) 11.47 + $(RM) -r $(LIBJVM_DEBUGINFO) 11.48 + endif 11.49 + else 11.50 + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) 11.51 + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ 11.52 + ifeq ($(STRIP_POLICY),all_strip) 11.53 + $(QUIETLY) $(STRIP) $@ 11.54 + else 11.55 + ifeq ($(STRIP_POLICY),min_strip) 11.56 + $(QUIETLY) $(STRIP) -g $@ 11.57 + # implied else here is no stripping at all 11.58 + endif 11.59 + endif 11.60 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 11.61 + $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) 11.62 + $(RM) $(LIBJVM_DEBUGINFO) 11.63 + endif 11.64 + endif 11.65 +endif 11.66 + 11.67 +DEST_SUBDIR = $(JDK_LIBDIR)/$(VM_SUBDIR) 11.68 +DEST_JVM = $(DEST_SUBDIR)/$(LIBJVM) 11.69 +DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO) 11.70 +DEST_JVM_DIZ = $(DEST_SUBDIR)/$(LIBJVM_DIZ) 11.71 11.72 install_jvm: $(LIBJVM) 11.73 @echo "Copying $(LIBJVM) to $(DEST_JVM)" 11.74 +ifeq ($(OS_VENDOR), Darwin) 11.75 + $(QUIETLY) test -d $(LIBJVM_DEBUGINFO) && \ 11.76 + cp -f -r $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO) 11.77 +else 11.78 + $(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \ 11.79 + cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO) 11.80 +endif 11.81 + $(QUIETLY) test -f $(LIBJVM_DIZ) && \ 11.82 + cp -f $(LIBJVM_DIZ) $(DEST_JVM_DIZ) 11.83 $(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done" 11.84 11.85 #---------------------------------------------------------------------- 11.86 @@ -340,11 +389,8 @@ 11.87 #---------------------------------------------------------------------- 11.88 11.89 ifeq ($(OS_VENDOR), Darwin) 11.90 -$(LIBJVM).dSYM: $(LIBJVM) 11.91 - dsymutil $(LIBJVM) 11.92 - 11.93 # no libjvm_db for macosx 11.94 -build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck $(LIBJVM).dSYM 11.95 +build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck 11.96 echo "Doing vm.make build:" 11.97 else 11.98 build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
12.1 --- a/make/defs.make Mon Oct 14 21:52:42 2013 -0400 12.2 +++ b/make/defs.make Tue Oct 15 08:25:43 2013 -0700 12.3 @@ -77,6 +77,16 @@ 12.4 @$(RM) $@ 12.5 $(CP) $< $@ 12.6 endef 12.7 + 12.8 +# MacOS X strongly discourages 'cp -r' and provides 'cp -R' instead. 12.9 +# May need to have a MacOS X specific definition of install-dir 12.10 +# sometime in the future. 12.11 +define install-dir 12.12 +@$(MKDIR) -p $(@D) 12.13 +@$(RM) -r $@ 12.14 +$(CP) -r $< $@ 12.15 +endef 12.16 + 12.17 define prep-target 12.18 @$(MKDIR) -p $(@D) 12.19 @$(RM) $@