Fri, 23 Mar 2012 11:50:33 -0700
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
Summary: Add support for ENABLE_FULL_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES build flags. Add support for .diz files.
Reviewed-by: dholmes, ohair, sspitsyn
1.1 --- a/make/Makefile Mon Feb 20 22:32:30 2012 -0800 1.2 +++ b/make/Makefile Fri Mar 23 11:50:33 2012 -0700 1.3 @@ -298,6 +298,8 @@ 1.4 $(install-file) 1.5 1.6 # Other libraries (like SA) 1.7 +$(EXPORT_JRE_BIN_DIR)/%.diz: $(MISC_DIR)/%.diz 1.8 + $(install-file) 1.9 $(EXPORT_JRE_BIN_DIR)/%.dll: $(MISC_DIR)/%.dll 1.10 $(install-file) 1.11 $(EXPORT_JRE_BIN_DIR)/%.pdb: $(MISC_DIR)/%.pdb 1.12 @@ -306,6 +308,8 @@ 1.13 $(install-file) 1.14 1.15 # Client files always come from C1 area 1.16 +$(EXPORT_CLIENT_DIR)/%.diz: $(C1_DIR)/%.diz 1.17 + $(install-file) 1.18 $(EXPORT_CLIENT_DIR)/%.dll: $(C1_DIR)/%.dll 1.19 $(install-file) 1.20 $(EXPORT_CLIENT_DIR)/%.pdb: $(C1_DIR)/%.pdb 1.21 @@ -314,6 +318,8 @@ 1.22 $(install-file) 1.23 1.24 # Server files always come from C2 area 1.25 +$(EXPORT_SERVER_DIR)/%.diz: $(C2_DIR)/%.diz 1.26 + $(install-file) 1.27 $(EXPORT_SERVER_DIR)/%.dll: $(C2_DIR)/%.dll 1.28 $(install-file) 1.29 $(EXPORT_SERVER_DIR)/%.pdb: $(C2_DIR)/%.pdb 1.30 @@ -322,6 +328,8 @@ 1.31 $(install-file) 1.32 1.33 # Kernel files always come from kernel area 1.34 +$(EXPORT_KERNEL_DIR)/%.diz: $(KERNEL_DIR)/%.diz 1.35 + $(install-file) 1.36 $(EXPORT_KERNEL_DIR)/%.dll: $(KERNEL_DIR)/%.dll 1.37 $(install-file) 1.38 $(EXPORT_KERNEL_DIR)/%.pdb: $(KERNEL_DIR)/%.pdb 1.39 @@ -371,6 +379,20 @@ 1.40 $(install-file) 1.41 $(EXPORT_SERVER_DIR)/64/%.debuginfo: $(C2_DIR)/%.debuginfo 1.42 $(install-file) 1.43 + 1.44 +# ZIP'ed debug info for shared library 1.45 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: $(C1_DIR)/%.diz 1.46 + $(install-file) 1.47 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: $(C2_DIR)/%.diz 1.48 + $(install-file) 1.49 +$(EXPORT_CLIENT_DIR)/%.diz: $(C1_DIR)/%.diz 1.50 + $(install-file) 1.51 +$(EXPORT_CLIENT_DIR)/64/%.diz: $(C1_DIR)/%.diz 1.52 + $(install-file) 1.53 +$(EXPORT_SERVER_DIR)/%.diz: $(C2_DIR)/%.diz 1.54 + $(install-file) 1.55 +$(EXPORT_SERVER_DIR)/64/%.diz: $(C2_DIR)/%.diz 1.56 + $(install-file) 1.57 endif 1.58 endif 1.59
2.1 --- a/make/linux/Makefile Mon Feb 20 22:32:30 2012 -0800 2.2 +++ b/make/linux/Makefile Fri Mar 23 11:50:33 2012 -0700 2.3 @@ -1,5 +1,5 @@ 2.4 # 2.5 -# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 2.6 +# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. 2.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 2.8 # 2.9 # This code is free software; you can redistribute it and/or modify it 2.10 @@ -210,7 +210,7 @@ 2.11 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make 2.12 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) 2.13 BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 2.14 -BUILDTREE_VARS += OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY) 2.15 +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.16 2.17 BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS) 2.18
3.1 --- a/make/linux/makefiles/buildtree.make Mon Feb 20 22:32:30 2012 -0800 3.2 +++ b/make/linux/makefiles/buildtree.make Fri Mar 23 11:50:33 2012 -0700 3.3 @@ -1,5 +1,5 @@ 3.4 # 3.5 -# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. 3.6 +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 3.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3.8 # 3.9 # This code is free software; you can redistribute it and/or modify it 3.10 @@ -235,10 +235,16 @@ 3.11 echo "$(call gamma-path,commonsrc,os/posix/vm)"; \ 3.12 [ -n "$(CFLAGS_BROWSE)" ] && \ 3.13 echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \ 3.14 + [ -n "$(ENABLE_FULL_DEBUG_SYMBOLS)" ] && \ 3.15 + echo && echo "ENABLE_FULL_DEBUG_SYMBOLS = $(ENABLE_FULL_DEBUG_SYMBOLS)"; \ 3.16 [ -n "$(OBJCOPY)" ] && \ 3.17 echo && echo "OBJCOPY = $(OBJCOPY)"; \ 3.18 [ -n "$(STRIP_POLICY)" ] && \ 3.19 echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \ 3.20 + [ -n "$(ZIP_DEBUGINFO_FILES)" ] && \ 3.21 + echo && echo "ZIP_DEBUGINFO_FILES = $(ZIP_DEBUGINFO_FILES)"; \ 3.22 + [ -n "$(ZIPEXE)" ] && \ 3.23 + echo && echo "ZIPEXE = $(ZIPEXE)"; \ 3.24 [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \ 3.25 echo && \ 3.26 echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
4.1 --- a/make/linux/makefiles/defs.make Mon Feb 20 22:32:30 2012 -0800 4.2 +++ b/make/linux/makefiles/defs.make Fri Mar 23 11:50:33 2012 -0700 4.3 @@ -1,5 +1,5 @@ 4.4 # 4.5 -# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. 4.6 +# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. 4.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4.8 # 4.9 # This code is free software; you can redistribute it and/or modify it 4.10 @@ -129,32 +129,40 @@ 4.11 endif 4.12 4.13 ifeq ($(JDK6_OR_EARLIER),0) 4.14 - # Full Debug Symbols is supported on JDK7 or newer 4.15 + # Full Debug Symbols is supported on JDK7 or newer. 4.16 + # Default is enabled with .debuginfo files ZIP'ed to save space. 4.17 4.18 - # Default OBJCOPY comes from GNU Binutils on Linux: 4.19 - DEF_OBJCOPY=/usr/bin/objcopy 4.20 - ifdef CROSS_COMPILE_ARCH 4.21 - # don't try to generate .debuginfo files when cross compiling 4.22 - _JUNK_ := $(shell \ 4.23 - echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \ 4.24 - "skipping .debuginfo generation.") 4.25 + ENABLE_FULL_DEBUG_SYMBOLS ?= 1 4.26 + # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later 4.27 + 4.28 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.29 + # Default OBJCOPY comes from GNU Binutils on Linux: 4.30 + DEF_OBJCOPY=/usr/bin/objcopy 4.31 + ifdef CROSS_COMPILE_ARCH 4.32 + # don't try to generate .debuginfo files when cross compiling 4.33 + _JUNK_ := $(shell \ 4.34 + echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \ 4.35 + "skipping .debuginfo generation.") 4.36 + OBJCOPY= 4.37 + else 4.38 + OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) 4.39 + ifneq ($(ALT_OBJCOPY),) 4.40 + _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") 4.41 + OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) 4.42 + endif 4.43 + endif 4.44 + else 4.45 OBJCOPY= 4.46 - else 4.47 - OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) 4.48 - ifneq ($(ALT_OBJCOPY),) 4.49 - _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") 4.50 - # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path 4.51 - OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) 4.52 - endif 4.53 endif 4.54 - 4.55 + 4.56 ifeq ($(OBJCOPY),) 4.57 _JUNK_ := $(shell \ 4.58 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") 4.59 + ENABLE_FULL_DEBUG_SYMBOLS=0 4.60 else 4.61 _JUNK_ := $(shell \ 4.62 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") 4.63 - 4.64 + 4.65 # Library stripping policies for .debuginfo configs: 4.66 # all_strip - strips everything from the library 4.67 # min_strip - strips most stuff from the library; leaves minimum symbols 4.68 @@ -163,15 +171,17 @@ 4.69 # Oracle security policy requires "all_strip". A waiver was granted on 4.70 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. 4.71 # 4.72 - DEF_STRIP_POLICY="min_strip" 4.73 - ifeq ($(ALT_STRIP_POLICY),) 4.74 - STRIP_POLICY=$(DEF_STRIP_POLICY) 4.75 - else 4.76 - STRIP_POLICY=$(ALT_STRIP_POLICY) 4.77 - endif 4.78 - 4.79 + # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. 4.80 + # 4.81 + STRIP_POLICY ?= min_strip 4.82 + 4.83 _JUNK_ := $(shell \ 4.84 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") 4.85 + 4.86 + ZIP_DEBUGINFO_FILES ?= 1 4.87 + 4.88 + _JUNK_ := $(shell \ 4.89 + echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") 4.90 endif 4.91 endif 4.92 4.93 @@ -187,8 +197,12 @@ 4.94 4.95 # client and server subdirectories have symbolic links to ../libjsig.so 4.96 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX) 4.97 -ifneq ($(OBJCOPY),) 4.98 - EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo 4.99 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.100 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.101 + EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz 4.102 + else 4.103 + EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo 4.104 + endif 4.105 endif 4.106 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server 4.107 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client 4.108 @@ -196,8 +210,12 @@ 4.109 ifndef BUILD_CLIENT_ONLY 4.110 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt 4.111 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX) 4.112 - ifneq ($(OBJCOPY),) 4.113 - EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo 4.114 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.115 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.116 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz 4.117 + else 4.118 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo 4.119 + endif 4.120 endif 4.121 endif 4.122 4.123 @@ -205,8 +223,12 @@ 4.124 ifeq ($(ARCH_DATA_MODEL), 32) 4.125 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt 4.126 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) 4.127 - ifneq ($(OBJCOPY),) 4.128 - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo 4.129 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.130 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.131 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz 4.132 + else 4.133 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo 4.134 + endif 4.135 endif 4.136 endif 4.137 endif 4.138 @@ -217,9 +239,14 @@ 4.139 $(EXPORT_LIB_DIR)/sa-jdi.jar 4.140 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ 4.141 $(EXPORT_LIB_DIR)/sa-jdi.jar 4.142 -ifneq ($(OBJCOPY),) 4.143 - ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo 4.144 - ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo 4.145 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 4.146 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 4.147 + ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz 4.148 + ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz 4.149 + else 4.150 + ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo 4.151 + ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo 4.152 + endif 4.153 endif 4.154 ADD_SA_BINARIES/ppc = 4.155 ADD_SA_BINARIES/ia64 =
5.1 --- a/make/linux/makefiles/gcc.make Mon Feb 20 22:32:30 2012 -0800 5.2 +++ b/make/linux/makefiles/gcc.make Fri Mar 23 11:50:33 2012 -0700 5.3 @@ -1,5 +1,5 @@ 5.4 # 5.5 -# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 5.6 +# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. 5.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5.8 # 5.9 # This code is free software; you can redistribute it and/or modify it 5.10 @@ -224,7 +224,7 @@ 5.11 DEBUG_CFLAGS += -gstabs 5.12 endif 5.13 5.14 -ifneq ($(OBJCOPY),) 5.15 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 5.16 FASTDEBUG_CFLAGS/ia64 = -g 5.17 FASTDEBUG_CFLAGS/amd64 = -g 5.18 FASTDEBUG_CFLAGS/arm = -g
6.1 --- a/make/linux/makefiles/jsig.make Mon Feb 20 22:32:30 2012 -0800 6.2 +++ b/make/linux/makefiles/jsig.make Fri Mar 23 11:50:33 2012 -0700 6.3 @@ -1,5 +1,5 @@ 6.4 # 6.5 -# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. 6.6 +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 6.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 6.8 # 6.9 # This code is free software; you can redistribute it and/or modify it 6.10 @@ -32,12 +32,15 @@ 6.11 LIBJSIG_G = lib$(JSIG_G).so 6.12 6.13 LIBJSIG_DEBUGINFO = lib$(JSIG).debuginfo 6.14 +LIBJSIG_DIZ = lib$(JSIG).diz 6.15 LIBJSIG_G_DEBUGINFO = lib$(JSIG_G).debuginfo 6.16 +LIBJSIG_G_DIZ = lib$(JSIG_G).diz 6.17 6.18 JSIGSRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/vm 6.19 6.20 DEST_JSIG = $(JDK_LIBDIR)/$(LIBJSIG) 6.21 DEST_JSIG_DEBUGINFO = $(JDK_LIBDIR)/$(LIBJSIG_DEBUGINFO) 6.22 +DEST_JSIG_DIZ = $(JDK_LIBDIR)/$(LIBJSIG_DIZ) 6.23 6.24 LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig 6.25 6.26 @@ -58,7 +61,7 @@ 6.27 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \ 6.28 $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $< -ldl 6.29 $(QUIETLY) [ -f $(LIBJSIG_G) ] || { ln -s $@ $(LIBJSIG_G); } 6.30 -ifneq ($(OBJCOPY),) 6.31 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 6.32 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO) 6.33 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ 6.34 ifeq ($(STRIP_POLICY),all_strip) 6.35 @@ -70,12 +73,19 @@ 6.36 endif 6.37 endif 6.38 [ -f $(LIBJSIG_G_DEBUGINFO) ] || { ln -s $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO); } 6.39 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 6.40 + $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO) 6.41 + $(RM) $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO) 6.42 + [ -f $(LIBJSIG_G_DIZ) ] || { ln -s $(LIBJSIG_DIZ) $(LIBJSIG_G_DIZ); } 6.43 + endif 6.44 endif 6.45 6.46 install_jsig: $(LIBJSIG) 6.47 @echo "Copying $(LIBJSIG) to $(DEST_JSIG)" 6.48 $(QUIETLY) test -f $(LIBJSIG_DEBUGINFO) && \ 6.49 cp -f $(LIBJSIG_DEBUGINFO) $(DEST_JSIG_DEBUGINFO) 6.50 + $(QUIETLY) test -f $(LIBJSIG_DIZ) && \ 6.51 + cp -f $(LIBJSIG_DIZ) $(DEST_JSIG_DIZ) 6.52 $(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done" 6.53 6.54 .PHONY: install_jsig
7.1 --- a/make/linux/makefiles/saproc.make Mon Feb 20 22:32:30 2012 -0800 7.2 +++ b/make/linux/makefiles/saproc.make Fri Mar 23 11:50:33 2012 -0700 7.3 @@ -33,7 +33,9 @@ 7.4 LIBSAPROC_G = lib$(SAPROC_G).so 7.5 7.6 LIBSAPROC_DEBUGINFO = lib$(SAPROC).debuginfo 7.7 +LIBSAPROC_DIZ = lib$(SAPROC).diz 7.8 LIBSAPROC_G_DEBUGINFO = lib$(SAPROC_G).debuginfo 7.9 +LIBSAPROC_G_DIZ = lib$(SAPROC_G).diz 7.10 7.11 AGENT_DIR = $(GAMMADIR)/agent 7.12 7.13 @@ -50,6 +52,7 @@ 7.14 7.15 DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC) 7.16 DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO) 7.17 +DEST_SAPROC_DIZ = $(JDK_LIBDIR)/$(LIBSAPROC_DIZ) 7.18 7.19 # DEBUG_BINARIES overrides everything, use full -g debug information 7.20 ifeq ($(DEBUG_BINARIES), true) 7.21 @@ -87,7 +90,7 @@ 7.22 -o $@ \ 7.23 -lthread_db 7.24 $(QUIETLY) [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); } 7.25 -ifneq ($(OBJCOPY),) 7.26 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 7.27 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO) 7.28 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@ 7.29 ifeq ($(STRIP_POLICY),all_strip) 7.30 @@ -99,6 +102,11 @@ 7.31 endif 7.32 endif 7.33 [ -f $(LIBSAPROC_G_DEBUGINFO) ] || { ln -s $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO); } 7.34 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 7.35 + $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO) 7.36 + $(RM) $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO) 7.37 + [ -f $(LIBSAPROC_G_DIZ) ] || { ln -s $(LIBSAPROC_DIZ) $(LIBSAPROC_G_DIZ); } 7.38 + endif 7.39 endif 7.40 7.41 install_saproc: $(BUILDLIBSAPROC) 7.42 @@ -106,6 +114,8 @@ 7.43 echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \ 7.44 test -f $(LIBSAPROC_DEBUGINFO) && \ 7.45 cp -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \ 7.46 + test -f $(LIBSAPROC_DIZ) && \ 7.47 + cp -f $(LIBSAPROC_DIZ) $(DEST_SAPROC_DIZ); \ 7.48 cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \ 7.49 fi 7.50
8.1 --- a/make/linux/makefiles/vm.make Mon Feb 20 22:32:30 2012 -0800 8.2 +++ b/make/linux/makefiles/vm.make Fri Mar 23 11:50:33 2012 -0700 8.3 @@ -1,5 +1,5 @@ 8.4 # 8.5 -# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. 8.6 +# Copyright (c) 1999, 2012, 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 @@ -61,7 +61,7 @@ 8.11 INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%) 8.12 8.13 # SYMFLAG is used by {jsig,saproc}.make 8.14 -ifneq ($(OBJCOPY),) 8.15 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 8.16 # always build with debug info when we can create .debuginfo files 8.17 SYMFLAG = -g 8.18 else 8.19 @@ -139,7 +139,9 @@ 8.20 LIBJVM_G = lib$(JVM)$(G_SUFFIX).so 8.21 8.22 LIBJVM_DEBUGINFO = lib$(JVM).debuginfo 8.23 +LIBJVM_DIZ = lib$(JVM).diz 8.24 LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo 8.25 +LIBJVM_G_DIZ = lib$(JVM)$(G_SUFFIX).diz 8.26 8.27 SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt 8.28 8.29 @@ -331,7 +333,7 @@ 8.30 fi \ 8.31 } 8.32 ifeq ($(CROSS_COMPILE_ARCH),) 8.33 - ifneq ($(OBJCOPY),) 8.34 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 8.35 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) 8.36 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ 8.37 ifeq ($(STRIP_POLICY),all_strip) 8.38 @@ -343,17 +345,25 @@ 8.39 endif 8.40 endif 8.41 $(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 8.42 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 8.43 + $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 8.44 + $(RM) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 8.45 + [ -f $(LIBJVM_G_DIZ) ] || { ln -s $(LIBJVM_DIZ) $(LIBJVM_G_DIZ); } 8.46 + endif 8.47 endif 8.48 endif 8.49 8.50 DEST_SUBDIR = $(JDK_LIBDIR)/$(VM_SUBDIR) 8.51 DEST_JVM = $(DEST_SUBDIR)/$(LIBJVM) 8.52 DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO) 8.53 +DEST_JVM_DIZ = $(DEST_SUBDIR)/$(LIBJVM_DIZ) 8.54 8.55 install_jvm: $(LIBJVM) 8.56 @echo "Copying $(LIBJVM) to $(DEST_JVM)" 8.57 $(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \ 8.58 cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO) 8.59 + $(QUIETLY) test -f $(LIBJVM_DIZ) && \ 8.60 + cp -f $(LIBJVM_DIZ) $(DEST_JVM_DIZ) 8.61 $(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done" 8.62 8.63 #----------------------------------------------------------------------
9.1 --- a/make/solaris/Makefile Mon Feb 20 22:32:30 2012 -0800 9.2 +++ b/make/solaris/Makefile Fri Mar 23 11:50:33 2012 -0700 9.3 @@ -1,5 +1,5 @@ 9.4 # 9.5 -# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. 9.6 +# Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. 9.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 9.8 # 9.9 # This code is free software; you can redistribute it and/or modify it 9.10 @@ -168,7 +168,7 @@ 9.11 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make 9.12 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) 9.13 BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 9.14 -BUILDTREE_VARS += OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY) 9.15 +BUILDTREE_VARS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY) ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) ZIPEXE=$(ZIPEXE) 9.16 9.17 BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS) 9.18
10.1 --- a/make/solaris/makefiles/buildtree.make Mon Feb 20 22:32:30 2012 -0800 10.2 +++ b/make/solaris/makefiles/buildtree.make Fri Mar 23 11:50:33 2012 -0700 10.3 @@ -1,5 +1,5 @@ 10.4 # 10.5 -# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. 10.6 +# Copyright (c) 2000, 2012, 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 @@ -228,10 +228,16 @@ 10.11 echo "$(call gamma-path,commonsrc,os/posix/vm)"; \ 10.12 [ -n "$(CFLAGS_BROWSE)" ] && \ 10.13 echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \ 10.14 + [ -n "$(ENABLE_FULL_DEBUG_SYMBOLS)" ] && \ 10.15 + echo && echo "ENABLE_FULL_DEBUG_SYMBOLS = $(ENABLE_FULL_DEBUG_SYMBOLS)"; \ 10.16 [ -n "$(OBJCOPY)" ] && \ 10.17 echo && echo "OBJCOPY = $(OBJCOPY)"; \ 10.18 [ -n "$(STRIP_POLICY)" ] && \ 10.19 echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \ 10.20 + [ -n "$(ZIP_DEBUGINFO_FILES)" ] && \ 10.21 + echo && echo "ZIP_DEBUGINFO_FILES = $(ZIP_DEBUGINFO_FILES)"; \ 10.22 + [ -n "$(ZIPEXE)" ] && \ 10.23 + echo && echo "ZIPEXE = $(ZIPEXE)"; \ 10.24 [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \ 10.25 echo && \ 10.26 echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
11.1 --- a/make/solaris/makefiles/defs.make Mon Feb 20 22:32:30 2012 -0800 11.2 +++ b/make/solaris/makefiles/defs.make Fri Mar 23 11:50:33 2012 -0700 11.3 @@ -1,5 +1,5 @@ 11.4 # 11.5 -# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. 11.6 +# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. 11.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 11.8 # 11.9 # This code is free software; you can redistribute it and/or modify it 11.10 @@ -74,45 +74,47 @@ 11.11 endif 11.12 11.13 ifeq ($(JDK6_OR_EARLIER),0) 11.14 - # Full Debug Symbols is supported on JDK7 or newer 11.15 + # Full Debug Symbols is supported on JDK7 or newer. 11.16 + # Default is enabled with .debuginfo files ZIP'ed to save space. 11.17 11.18 -ifdef ENABLE_FULL_DEBUG_SYMBOLS 11.19 - # Only check for Full Debug Symbols support on Solaris if it is 11.20 - # specifically enabled. Hopefully, it can be enabled by default 11.21 - # once the .debuginfo size issues are worked out. 11.22 - 11.23 - # Default OBJCOPY comes from the SUNWbinutils package: 11.24 - DEF_OBJCOPY=/usr/sfw/bin/gobjcopy 11.25 - ifeq ($(VM_PLATFORM),solaris_amd64) 11.26 - # On Solaris AMD64/X64, gobjcopy is not happy and fails: 11.27 - # 11.28 - # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so 11.29 - # BFD: stKPaiop: Not enough room for program headers, try linking with -N 11.30 - # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value 11.31 - # BFD: stKPaiop: Not enough room for program headers, try linking with -N 11.32 - # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value 11.33 - # BFD: stKPaiop: Not enough room for program headers, try linking with -N 11.34 - # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value 11.35 - _JUNK_ := $(shell \ 11.36 - echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64") 11.37 + ENABLE_FULL_DEBUG_SYMBOLS ?= 1 11.38 + # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later 11.39 + 11.40 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 11.41 + # Default OBJCOPY comes from the SUNWbinutils package: 11.42 + DEF_OBJCOPY=/usr/sfw/bin/gobjcopy 11.43 + ifeq ($(VM_PLATFORM),solaris_amd64) 11.44 + # On Solaris AMD64/X64, gobjcopy is not happy and fails: 11.45 + # 11.46 + # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so 11.47 + # BFD: stKPaiop: Not enough room for program headers, try linking with -N 11.48 + # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value 11.49 + # BFD: stKPaiop: Not enough room for program headers, try linking with -N 11.50 + # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value 11.51 + # BFD: stKPaiop: Not enough room for program headers, try linking with -N 11.52 + # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value 11.53 + _JUNK_ := $(shell \ 11.54 + echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64") 11.55 + OBJCOPY= 11.56 + else 11.57 + OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) 11.58 + ifneq ($(ALT_OBJCOPY),) 11.59 + _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") 11.60 + OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) 11.61 + endif 11.62 + endif 11.63 + else 11.64 OBJCOPY= 11.65 - else 11.66 - OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY)) 11.67 - ifneq ($(ALT_OBJCOPY),) 11.68 - _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)") 11.69 - # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path 11.70 - OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY)) 11.71 - endif 11.72 endif 11.73 -endif 11.74 - 11.75 + 11.76 ifeq ($(OBJCOPY),) 11.77 _JUNK_ := $(shell \ 11.78 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") 11.79 + ENABLE_FULL_DEBUG_SYMBOLS=0 11.80 else 11.81 _JUNK_ := $(shell \ 11.82 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") 11.83 - 11.84 + 11.85 # Library stripping policies for .debuginfo configs: 11.86 # all_strip - strips everything from the library 11.87 # min_strip - strips most stuff from the library; leaves minimum symbols 11.88 @@ -121,14 +123,17 @@ 11.89 # Oracle security policy requires "all_strip". A waiver was granted on 11.90 # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE. 11.91 # 11.92 - DEF_STRIP_POLICY="min_strip" 11.93 - ifeq ($(ALT_STRIP_POLICY),) 11.94 - STRIP_POLICY=$(DEF_STRIP_POLICY) 11.95 - else 11.96 - STRIP_POLICY=$(ALT_STRIP_POLICY) 11.97 - endif 11.98 + # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled. 11.99 + # 11.100 + STRIP_POLICY ?= min_strip 11.101 + 11.102 _JUNK_ := $(shell \ 11.103 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)") 11.104 + 11.105 + ZIP_DEBUGINFO_FILES ?= 1 11.106 + 11.107 + _JUNK_ := $(shell \ 11.108 + echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)") 11.109 endif 11.110 endif 11.111 11.112 @@ -144,8 +149,12 @@ 11.113 11.114 # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX) 11.115 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX) 11.116 -ifneq ($(OBJCOPY),) 11.117 - EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo 11.118 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 11.119 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 11.120 + EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz 11.121 + else 11.122 + EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo 11.123 + endif 11.124 endif 11.125 11.126 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server 11.127 @@ -156,10 +165,16 @@ 11.128 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX) 11.129 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.$(LIBRARY_SUFFIX) 11.130 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) 11.131 - ifneq ($(OBJCOPY),) 11.132 - EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo 11.133 - EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo 11.134 - EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo 11.135 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 11.136 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 11.137 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz 11.138 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.diz 11.139 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.diz 11.140 + else 11.141 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo 11.142 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo 11.143 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo 11.144 + endif 11.145 endif 11.146 endif 11.147 ifeq ($(ARCH_DATA_MODEL), 32) 11.148 @@ -169,25 +184,42 @@ 11.149 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) 11.150 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX) 11.151 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX) 11.152 - ifneq ($(OBJCOPY),) 11.153 - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo 11.154 - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo 11.155 - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo 11.156 - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo 11.157 - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo 11.158 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 11.159 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 11.160 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz 11.161 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.diz 11.162 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.diz 11.163 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.diz 11.164 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.diz 11.165 + else 11.166 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo 11.167 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo 11.168 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo 11.169 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo 11.170 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo 11.171 + endif 11.172 endif 11.173 ifneq ($(BUILD_CLIENT_ONLY), true) 11.174 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX) 11.175 EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX) 11.176 - ifneq ($(OBJCOPY),) 11.177 - EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo 11.178 - EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo 11.179 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 11.180 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 11.181 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.diz 11.182 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.diz 11.183 + else 11.184 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.debuginfo 11.185 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.debuginfo 11.186 + endif 11.187 endif 11.188 endif 11.189 endif 11.190 11.191 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) 11.192 -ifneq ($(OBJCOPY),) 11.193 - EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo 11.194 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 11.195 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 11.196 + EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz 11.197 + else 11.198 + EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo 11.199 + endif 11.200 endif 11.201 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
12.1 --- a/make/solaris/makefiles/dtrace.make Mon Feb 20 22:32:30 2012 -0800 12.2 +++ b/make/solaris/makefiles/dtrace.make Fri Mar 23 11:50:33 2012 -0700 12.3 @@ -1,5 +1,5 @@ 12.4 # 12.5 -# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. 12.6 +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 12.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 12.8 # 12.9 # This code is free software; you can redistribute it and/or modify it 12.10 @@ -41,15 +41,19 @@ 12.11 LIBJVM_DB = libjvm_db.so 12.12 LIBJVM_DB_G = libjvm$(G_SUFFIX)_db.so 12.13 12.14 -LIBJVM_DB_DEBUGINFO = libjvm_db.debuginfo 12.15 +LIBJVM_DB_DEBUGINFO = libjvm_db.debuginfo 12.16 +LIBJVM_DB_DIZ = libjvm_db.diz 12.17 LIBJVM_DB_G_DEBUGINFO = libjvm$(G_SUFFIX)_db.debuginfo 12.18 +LIBJVM_DB_G_DIZ = libjvm$(G_SUFFIX)_db.diz 12.19 12.20 JVM_DTRACE = jvm_dtrace 12.21 LIBJVM_DTRACE = libjvm_dtrace.so 12.22 LIBJVM_DTRACE_G = libjvm$(G_SUFFIX)_dtrace.so 12.23 12.24 -LIBJVM_DTRACE_DEBUGINFO = libjvm_dtrace.debuginfo 12.25 +LIBJVM_DTRACE_DEBUGINFO = libjvm_dtrace.debuginfo 12.26 +LIBJVM_DTRACE_DIZ = libjvm_dtrace.diz 12.27 LIBJVM_DTRACE_G_DEBUGINFO = libjvm$(G_SUFFIX)_dtrace.debuginfo 12.28 +LIBJVM_DTRACE_G_DIZ = libjvm$(G_SUFFIX)_dtrace.diz 12.29 12.30 JVMOFFS = JvmOffsets 12.31 JVMOFFS.o = $(JVMOFFS).o 12.32 @@ -95,10 +99,14 @@ 12.33 XLIBJVM_DTRACE = 64/$(LIBJVM_DTRACE) 12.34 XLIBJVM_DTRACE_G = 64/$(LIBJVM_DTRACE_G) 12.35 12.36 -XLIBJVM_DB_DEBUGINFO = 64/$(LIBJVM_DB_DEBUGINFO) 12.37 -XLIBJVM_DB_G_DEBUGINFO = 64/$(LIBJVM_DB_G_DEBUGINFO) 12.38 -XLIBJVM_DTRACE_DEBUGINFO = 64/$(LIBJVM_DTRACE_DEBUGINFO) 12.39 +XLIBJVM_DB_DEBUGINFO = 64/$(LIBJVM_DB_DEBUGINFO) 12.40 +XLIBJVM_DB_DIZ = 64/$(LIBJVM_DB_DIZ) 12.41 +XLIBJVM_DB_G_DEBUGINFO = 64/$(LIBJVM_DB_G_DEBUGINFO) 12.42 +XLIBJVM_DB_G_DIZ = 64/$(LIBJVM_DB_G_DIZ) 12.43 +XLIBJVM_DTRACE_DEBUGINFO = 64/$(LIBJVM_DTRACE_DEBUGINFO) 12.44 +XLIBJVM_DTRACE_DIZ = 64/$(LIBJVM_DTRACE_DIZ) 12.45 XLIBJVM_DTRACE_G_DEBUGINFO = 64/$(LIBJVM_DTRACE_G_DEBUGINFO) 12.46 +XLIBJVM_DTRACE_G_DIZ = 64/$(LIBJVM_DTRACE_G_DIZ) 12.47 12.48 $(XLIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE) 12.49 @echo Making $@ 12.50 @@ -106,7 +114,7 @@ 12.51 $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. -I$(GENERATED) \ 12.52 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc 12.53 [ -f $(XLIBJVM_DB_G) ] || { ln -s $(LIBJVM_DB) $(XLIBJVM_DB_G); } 12.54 -ifneq ($(OBJCOPY),) 12.55 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 12.56 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DB_DEBUGINFO) 12.57 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(XLIBJVM_DB_DEBUGINFO) $@ 12.58 ifeq ($(STRIP_POLICY),all_strip) 12.59 @@ -117,7 +125,12 @@ 12.60 # implied else here is no stripping at all 12.61 endif 12.62 endif 12.63 - [ -f $(XLIBJVM_DB_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DB_DEBUGINFO) $(XLIBJVM_DB_G_DEBUGINFO); } 12.64 + [ -f $(XLIBJVM_DB_G_DEBUGINFO) ] || { ln -s $(XLIBJVM_DB_DEBUGINFO) $(XLIBJVM_DB_G_DEBUGINFO); } 12.65 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 12.66 + $(ZIPEXE) -q -y $(XLIBJVM_DB_DIZ) $(XLIBJVM_DB_DEBUGINFO) $(XLIBJVM_DB_G_DEBUGINFO) 12.67 + $(RM) $(XLIBJVM_DB_DEBUGINFO) $(XLIBJVM_DB_G_DEBUGINFO) 12.68 + [ -f $(XLIBJVM_DB_G_DIZ) ] || { ln -s $(XLIBJVM_DB_DIZ) $(XLIBJVM_DB_G_DIZ); } 12.69 + endif 12.70 endif 12.71 12.72 $(XLIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE) 12.73 @@ -126,7 +139,7 @@ 12.74 $(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. \ 12.75 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor 12.76 [ -f $(XLIBJVM_DTRACE_G) ] || { ln -s $(LIBJVM_DTRACE) $(XLIBJVM_DTRACE_G); } 12.77 -ifneq ($(OBJCOPY),) 12.78 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 12.79 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(XLIBJVM_DTRACE_DEBUGINFO) 12.80 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(XLIBJVM_DTRACE_DEBUGINFO) $@ 12.81 ifeq ($(STRIP_POLICY),all_strip) 12.82 @@ -137,7 +150,12 @@ 12.83 # implied else here is no stripping at all 12.84 endif 12.85 endif 12.86 - [ -f $(XLIBJVM_DTRACE_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DTRACE_DEBUGINFO) $(XLIBJVM_DTRACE_G_DEBUGINFO); } 12.87 + [ -f $(XLIBJVM_DTRACE_G_DEBUGINFO) ] || { ln -s $(XLIBJVM_DTRACE_DEBUGINFO) $(XLIBJVM_DTRACE_G_DEBUGINFO); } 12.88 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 12.89 + $(ZIPEXE) -q -y $(XLIBJVM_DTRACE_DIZ) $(XLIBJVM_DTRACE_DEBUGINFO) $(XLIBJVM_DTRACE_G_DEBUGINFO) 12.90 + $(RM) $(XLIBJVM_DTRACE_DEBUGINFO) $(XLIBJVM_DTRACE_G_DEBUGINFO) 12.91 + [ -f $(XLIBJVM_DTRACE_G_DIZ) ] || { ln -s $(XLIBJVM_DTRACE_DIZ) $(XLIBJVM_DTRACE_G_DIZ); } 12.92 + endif 12.93 endif 12.94 12.95 endif # ifneq ("${ISA}","${BUILDARCH}") 12.96 @@ -185,7 +203,7 @@ 12.97 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. -I$(GENERATED) \ 12.98 $(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc 12.99 [ -f $(LIBJVM_DB_G) ] || { ln -s $@ $(LIBJVM_DB_G); } 12.100 -ifneq ($(OBJCOPY),) 12.101 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 12.102 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DB_DEBUGINFO) 12.103 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DB_DEBUGINFO) $@ 12.104 ifeq ($(STRIP_POLICY),all_strip) 12.105 @@ -197,6 +215,11 @@ 12.106 endif 12.107 endif 12.108 [ -f $(LIBJVM_DB_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB_G_DEBUGINFO); } 12.109 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 12.110 + $(ZIPEXE) -q -y $(LIBJVM_DB_DIZ) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB_G_DEBUGINFO) 12.111 + $(RM) $(LIBJVM_DB_DEBUGINFO) $(LIBJVM_DB_G_DEBUGINFO) 12.112 + [ -f $(LIBJVM_DB_G_DIZ) ] || { ln -s $(LIBJVM_DB_DIZ) $(LIBJVM_DB_G_DIZ); } 12.113 + endif 12.114 endif 12.115 12.116 $(LIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(XLIBJVM_DTRACE) $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE) 12.117 @@ -204,7 +227,7 @@ 12.118 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) -D$(TYPE) -I. \ 12.119 $(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor 12.120 [ -f $(LIBJVM_DTRACE_G) ] || { ln -s $@ $(LIBJVM_DTRACE_G); } 12.121 -ifneq ($(OBJCOPY),) 12.122 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 12.123 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DTRACE_DEBUGINFO) 12.124 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DTRACE_DEBUGINFO) $@ 12.125 ifeq ($(STRIP_POLICY),all_strip) 12.126 @@ -216,6 +239,11 @@ 12.127 endif 12.128 endif 12.129 [ -f $(LIBJVM_DTRACE_G_DEBUGINFO) ] || { ln -s $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE_G_DEBUGINFO); } 12.130 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 12.131 + $(ZIPEXE) -q -y $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE_G_DEBUGINFO) 12.132 + $(RM) $(LIBJVM_DTRACE_DEBUGINFO) $(LIBJVM_DTRACE_G_DEBUGINFO) 12.133 + [ -f $(LIBJVM_DTRACE_G_DIZ) ] || { ln -s $(LIBJVM_DTRACE_DIZ) $(LIBJVM_DTRACE_G_DIZ); } 12.134 + endif 12.135 endif 12.136 12.137 $(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \
13.1 --- a/make/solaris/makefiles/jsig.make Mon Feb 20 22:32:30 2012 -0800 13.2 +++ b/make/solaris/makefiles/jsig.make Fri Mar 23 11:50:33 2012 -0700 13.3 @@ -1,5 +1,5 @@ 13.4 # 13.5 -# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. 13.6 +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 13.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 13.8 # 13.9 # This code is free software; you can redistribute it and/or modify it 13.10 @@ -32,12 +32,15 @@ 13.11 LIBJSIG_G = lib$(JSIG_G).so 13.12 13.13 LIBJSIG_DEBUGINFO = lib$(JSIG).debuginfo 13.14 +LIBJSIG_DIZ = lib$(JSIG).diz 13.15 LIBJSIG_G_DEBUGINFO = lib$(JSIG_G).debuginfo 13.16 +LIBJSIG_G_DIZ = lib$(JSIG_G).diz 13.17 13.18 JSIGSRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/vm 13.19 13.20 DEST_JSIG = $(JDK_LIBDIR)/$(LIBJSIG) 13.21 DEST_JSIG_DEBUGINFO = $(JDK_LIBDIR)/$(LIBJSIG_DEBUGINFO) 13.22 +DEST_JSIG_DIZ = $(JDK_LIBDIR)/$(LIBJSIG_DIZ) 13.23 13.24 LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig 13.25 13.26 @@ -54,7 +57,7 @@ 13.27 $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \ 13.28 $(LFLAGS_JSIG) -o $@ $< -ldl 13.29 [ -f $(LIBJSIG_G) ] || { ln -s $@ $(LIBJSIG_G); } 13.30 -ifneq ($(OBJCOPY),) 13.31 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 13.32 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO) 13.33 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ 13.34 ifeq ($(STRIP_POLICY),all_strip) 13.35 @@ -66,12 +69,19 @@ 13.36 endif 13.37 endif 13.38 [ -f $(LIBJSIG_G_DEBUGINFO) ] || { ln -s $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO); } 13.39 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 13.40 + $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO) 13.41 + $(RM) $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO) 13.42 + [ -f $(LIBJSIG_G_DIZ) ] || { ln -s $(LIBJSIG_DIZ) $(LIBJSIG_G_DIZ); } 13.43 + endif 13.44 endif 13.45 13.46 install_jsig: $(LIBJSIG) 13.47 @echo "Copying $(LIBJSIG) to $(DEST_JSIG)" 13.48 $(QUIETLY) test -f $(LIBJSIG_DEBUGINFO) && \ 13.49 cp -f $(LIBJSIG_DEBUGINFO) $(DEST_JSIG_DEBUGINFO) 13.50 + $(QUIETLY) test -f $(LIBJSIG_DIZ) && \ 13.51 + cp -f $(LIBJSIG_DIZ) $(DEST_JSIG_DIZ) 13.52 $(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done" 13.53 13.54 .PHONY: install_jsig
14.1 --- a/make/solaris/makefiles/saproc.make Mon Feb 20 22:32:30 2012 -0800 14.2 +++ b/make/solaris/makefiles/saproc.make Fri Mar 23 11:50:33 2012 -0700 14.3 @@ -1,5 +1,5 @@ 14.4 # 14.5 -# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. 14.6 +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 14.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 14.8 # 14.9 # This code is free software; you can redistribute it and/or modify it 14.10 @@ -33,7 +33,9 @@ 14.11 LIBSAPROC_G = lib$(SAPROC_G).so 14.12 14.13 LIBSAPROC_DEBUGINFO = lib$(SAPROC).debuginfo 14.14 +LIBSAPROC_DIZ = lib$(SAPROC).diz 14.15 LIBSAPROC_G_DEBUGINFO = lib$(SAPROC_G).debuginfo 14.16 +LIBSAPROC_G_DIZ = lib$(SAPROC_G).diz 14.17 14.18 AGENT_DIR = $(GAMMADIR)/agent 14.19 14.20 @@ -45,6 +47,7 @@ 14.21 14.22 DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC) 14.23 DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO) 14.24 +DEST_SAPROC_DIZ = $(JDK_LIBDIR)/$(LIBSAPROC_DIZ) 14.25 14.26 # if $(AGENT_DIR) does not exist, we don't build SA 14.27 14.28 @@ -105,7 +108,7 @@ 14.29 -o $@ \ 14.30 -ldl -ldemangle -lthread -lc 14.31 [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); } 14.32 -ifneq ($(OBJCOPY),) 14.33 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 14.34 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO) 14.35 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@ 14.36 ifeq ($(STRIP_POLICY),all_strip) 14.37 @@ -117,6 +120,11 @@ 14.38 endif 14.39 endif 14.40 [ -f $(LIBSAPROC_G_DEBUGINFO) ] || { ln -s $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO); } 14.41 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 14.42 + $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO) 14.43 + $(RM) $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO) 14.44 + [ -f $(LIBSAPROC_G_DIZ) ] || { ln -s $(LIBSAPROC_DIZ) $(LIBSAPROC_G_DIZ); } 14.45 + endif 14.46 endif 14.47 14.48 install_saproc: $(BULDLIBSAPROC) 14.49 @@ -124,6 +132,8 @@ 14.50 echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \ 14.51 test -f $(LIBSAPROC_DEBUGINFO) && \ 14.52 cp -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \ 14.53 + test -f $(LIBSAPROC_DIZ) && \ 14.54 + cp -f $(LIBSAPROC_DIZ) $(DEST_SAPROC_DIZ); \ 14.55 cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \ 14.56 fi 14.57
15.1 --- a/make/solaris/makefiles/sparcWorks.make Mon Feb 20 22:32:30 2012 -0800 15.2 +++ b/make/solaris/makefiles/sparcWorks.make Fri Mar 23 11:50:33 2012 -0700 15.3 @@ -1,5 +1,5 @@ 15.4 # 15.5 -# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. 15.6 +# Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. 15.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 15.8 # 15.9 # This code is free software; you can redistribute it and/or modify it 15.10 @@ -484,12 +484,12 @@ 15.11 # The -g0 setting allows the C++ frontend to inline, which is a big win. 15.12 # The -xs setting disables 'lazy debug info' which puts everything in 15.13 # the .so instead of requiring the '.o' files. 15.14 -ifneq ($(OBJCOPY),) 15.15 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 15.16 OPT_CFLAGS += -g0 -xs 15.17 endif 15.18 DEBUG_CFLAGS = -g 15.19 FASTDEBUG_CFLAGS = -g0 15.20 -ifneq ($(OBJCOPY),) 15.21 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 15.22 DEBUG_CFLAGS += -xs 15.23 FASTDEBUG_CFLAGS += -xs 15.24 endif
16.1 --- a/make/solaris/makefiles/vm.make Mon Feb 20 22:32:30 2012 -0800 16.2 +++ b/make/solaris/makefiles/vm.make Fri Mar 23 11:50:33 2012 -0700 16.3 @@ -1,5 +1,5 @@ 16.4 # 16.5 -# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. 16.6 +# Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. 16.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 16.8 # 16.9 # This code is free software; you can redistribute it and/or modify it 16.10 @@ -56,7 +56,7 @@ 16.11 INCLUDES += $(Src_Dirs_I:%=-I%) 16.12 16.13 # SYMFLAG is used by {dtrace,jsig,saproc}.make. 16.14 -ifneq ($(OBJCOPY),) 16.15 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 16.16 # always build with debug info when we can create .debuginfo files 16.17 # and disable 'lazy debug info' so the .so has everything. 16.18 SYMFLAG = -g -xs 16.19 @@ -152,7 +152,9 @@ 16.20 LIBJVM_G = lib$(JVM)$(G_SUFFIX).so 16.21 16.22 LIBJVM_DEBUGINFO = lib$(JVM).debuginfo 16.23 +LIBJVM_DIZ = lib$(JVM).diz 16.24 LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo 16.25 +LIBJVM_G_DIZ = lib$(JVM)$(G_SUFFIX).diz 16.26 16.27 SPECIAL_PATHS:=adlc c1 dist gc_implementation opto shark libadt 16.28 16.29 @@ -283,7 +285,7 @@ 16.30 $(QUIETLY) rm -f $@.1 && ln -s $@ $@.1 16.31 $(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G) 16.32 $(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1 16.33 -ifneq ($(OBJCOPY),) 16.34 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 16.35 $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) 16.36 $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ 16.37 ifeq ($(STRIP_POLICY),all_strip) 16.38 @@ -295,6 +297,11 @@ 16.39 endif 16.40 endif 16.41 $(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 16.42 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 16.43 + $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 16.44 + $(RM) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO) 16.45 + [ -f $(LIBJVM_G_DIZ) ] || { ln -s $(LIBJVM_DIZ) $(LIBJVM_G_DIZ); } 16.46 + endif 16.47 endif 16.48 endif # filter -sbfast -xsbfast 16.49 16.50 @@ -302,11 +309,14 @@ 16.51 DEST_SUBDIR = $(JDK_LIBDIR)/$(VM_SUBDIR) 16.52 DEST_JVM = $(DEST_SUBDIR)/$(LIBJVM) 16.53 DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO) 16.54 +DEST_JVM_DIZ = $(DEST_SUBDIR)/$(LIBJVM_DIZ) 16.55 16.56 install_jvm: $(LIBJVM) 16.57 @echo "Copying $(LIBJVM) to $(DEST_JVM)" 16.58 $(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \ 16.59 cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO) 16.60 + $(QUIETLY) test -f $(LIBJVM_DIZ) && \ 16.61 + cp -f $(LIBJVM_DIZ) $(DEST_JVM_DIZ) 16.62 $(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done" 16.63 16.64 #----------------------------------------------------------------------
17.1 --- a/make/windows/build.make Mon Feb 20 22:32:30 2012 -0800 17.2 +++ b/make/windows/build.make Fri Mar 23 11:50:33 2012 -0700 17.3 @@ -1,5 +1,5 @@ 17.4 # 17.5 -# Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. 17.6 +# Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. 17.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 17.8 # 17.9 # This code is free software; you can redistribute it and/or modify it 17.10 @@ -298,6 +298,10 @@ 17.11 @ echo Platform_arch=$(Platform_arch) >> $@ 17.12 @ echo Platform_arch_model=$(Platform_arch_model) >> $@ 17.13 @ sh $(WorkSpace)/make/windows/get_msc_ver.sh >> $@ 17.14 + @ if "$(ENABLE_FULL_DEBUG_SYMBOLS)" NEQ "" echo ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) >> $@ 17.15 + @ if "$(ZIP_DEBUGINFO_FILES)" NEQ "" echo ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) >> $@ 17.16 + @ if "$(RM)" NEQ "" echo RM=$(RM) >> $@ 17.17 + @ if "$(ZIPEXE)" NEQ "" echo ZIPEXE=$(ZIPEXE) >> $@ 17.18 17.19 checks: checkVariant checkWorkSpace checkSA 17.20
18.1 --- a/make/windows/makefiles/compile.make Mon Feb 20 22:32:30 2012 -0800 18.2 +++ b/make/windows/makefiles/compile.make Fri Mar 23 11:50:33 2012 -0700 18.3 @@ -1,5 +1,5 @@ 18.4 # 18.5 -# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 18.6 +# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 18.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 18.8 # 18.9 # This code is free software; you can redistribute it and/or modify it 18.10 @@ -52,8 +52,10 @@ 18.11 # These are always used in all compiles 18.12 CXX_FLAGS=/nologo /W3 /WX 18.13 18.14 -# Let's add debug information always too. 18.15 +# Let's add debug information when Full Debug Symbols is enabled 18.16 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" 18.17 CXX_FLAGS=$(CXX_FLAGS) /Zi 18.18 +!endif 18.19 18.20 # Based on BUILDARCH we add some flags and select the default compiler name 18.21 !if "$(BUILDARCH)" == "ia64" 18.22 @@ -229,7 +231,10 @@ 18.23 LD_FLAGS= $(LD_FLAGS) kernel32.lib user32.lib gdi32.lib winspool.lib \ 18.24 comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \ 18.25 uuid.lib Wsock32.lib winmm.lib /nologo /machine:$(MACHINE) /opt:REF \ 18.26 - /opt:ICF,8 /map /debug 18.27 + /opt:ICF,8 18.28 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" 18.29 +LD_FLAGS= $(LD_FLAGS) /map /debug 18.30 +!endif 18.31 18.32 18.33 !if $(MSC_VER) >= 1600
19.1 --- a/make/windows/makefiles/debug.make Mon Feb 20 22:32:30 2012 -0800 19.2 +++ b/make/windows/makefiles/debug.make Fri Mar 23 11:50:33 2012 -0700 19.3 @@ -1,5 +1,5 @@ 19.4 # 19.5 -# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 19.6 +# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 19.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 19.8 # 19.9 # This code is free software; you can redistribute it and/or modify it 19.10 @@ -61,6 +61,12 @@ 19.11 # separately. Use ";#2" for .dll and ";#1" for .exe: 19.12 $(MT) /manifest $@.manifest /outputresource:$@;#2 19.13 !endif 19.14 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" 19.15 +!if "$(ZIP_DEBUGINFO_FILES)" == "1" 19.16 + $(ZIPEXE) -q $*.diz $*.map $*.pdb 19.17 + $(RM) $*.map $*.pdb 19.18 +!endif 19.19 +!endif 19.20 19.21 !include $(WorkSpace)/make/windows/makefiles/shared.make 19.22 !include $(WorkSpace)/make/windows/makefiles/sa.make
20.1 --- a/make/windows/makefiles/defs.make Mon Feb 20 22:32:30 2012 -0800 20.2 +++ b/make/windows/makefiles/defs.make Fri Mar 23 11:50:33 2012 -0700 20.3 @@ -1,5 +1,5 @@ 20.4 # 20.5 -# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. 20.6 +# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. 20.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 20.8 # 20.9 # This code is free software; you can redistribute it and/or modify it 20.10 @@ -107,6 +107,22 @@ 20.11 endif 20.12 endif 20.13 20.14 +# Full Debug Symbols has been enabled on Windows since JDK1.4.1 so 20.15 +# there is no need for an "earlier than JDK7 check". 20.16 +# Default is enabled with debug info files ZIP'ed to save space. 20.17 + 20.18 +ENABLE_FULL_DEBUG_SYMBOLS ?= 1 20.19 +MAKE_ARGS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) 20.20 + 20.21 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 20.22 + ZIP_DEBUGINFO_FILES ?= 1 20.23 +else 20.24 + ZIP_DEBUGINFO_FILES=0 20.25 +endif 20.26 +MAKE_ARGS += ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) 20.27 +MAKE_ARGS += RM="$(RM)" 20.28 +MAKE_ARGS += ZIPEXE=$(ZIPEXE) 20.29 + 20.30 JDK_INCLUDE_SUBDIR=win32 20.31 20.32 # Library suffix 20.33 @@ -179,25 +195,49 @@ 20.34 20.35 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt 20.36 EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.$(LIBRARY_SUFFIX) 20.37 -EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.pdb 20.38 -EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map 20.39 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 20.40 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 20.41 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.diz 20.42 + else 20.43 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.pdb 20.44 + EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map 20.45 + endif 20.46 +endif 20.47 EXPORT_LIST += $(EXPORT_LIB_DIR)/jvm.lib 20.48 ifeq ($(ARCH_DATA_MODEL), 32) 20.49 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt 20.50 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.$(LIBRARY_SUFFIX) 20.51 - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.pdb 20.52 - EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map 20.53 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 20.54 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 20.55 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.diz 20.56 + else 20.57 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.pdb 20.58 + EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map 20.59 + endif 20.60 + endif 20.61 # kernel vm 20.62 EXPORT_LIST += $(EXPORT_KERNEL_DIR)/Xusage.txt 20.63 EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.$(LIBRARY_SUFFIX) 20.64 - EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.pdb 20.65 - EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.map 20.66 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 20.67 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 20.68 + EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.diz 20.69 + else 20.70 + EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.pdb 20.71 + EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.map 20.72 + endif 20.73 + endif 20.74 endif 20.75 20.76 ifeq ($(BUILD_WIN_SA), 1) 20.77 EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.$(LIBRARY_SUFFIX) 20.78 - EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb 20.79 - EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.map 20.80 + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 20.81 + ifeq ($(ZIP_DEBUGINFO_FILES),1) 20.82 + EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.diz 20.83 + else 20.84 + EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb 20.85 + EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.map 20.86 + endif 20.87 + endif 20.88 EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar 20.89 # Must pass this down to nmake. 20.90 MAKE_ARGS += BUILD_WIN_SA=1
21.1 --- a/make/windows/makefiles/fastdebug.make Mon Feb 20 22:32:30 2012 -0800 21.2 +++ b/make/windows/makefiles/fastdebug.make Fri Mar 23 11:50:33 2012 -0700 21.3 @@ -1,5 +1,5 @@ 21.4 # 21.5 -# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 21.6 +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 21.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 21.8 # 21.9 # This code is free software; you can redistribute it and/or modify it 21.10 @@ -61,6 +61,12 @@ 21.11 # separately. Use ";#2" for .dll and ";#1" for .exe: 21.12 $(MT) /manifest $@.manifest /outputresource:$@;#2 21.13 !endif 21.14 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" 21.15 +!if "$(ZIP_DEBUGINFO_FILES)" == "1" 21.16 + $(ZIPEXE) -q $*.diz $*.map $*.pdb 21.17 + $(RM) $*.map $*.pdb 21.18 +!endif 21.19 +!endif 21.20 21.21 !include $(WorkSpace)/make/windows/makefiles/shared.make 21.22 !include $(WorkSpace)/make/windows/makefiles/sa.make
22.1 --- a/make/windows/makefiles/product.make Mon Feb 20 22:32:30 2012 -0800 22.2 +++ b/make/windows/makefiles/product.make Fri Mar 23 11:50:33 2012 -0700 22.3 @@ -1,5 +1,5 @@ 22.4 # 22.5 -# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 22.6 +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 22.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 22.8 # 22.9 # This code is free software; you can redistribute it and/or modify it 22.10 @@ -72,6 +72,12 @@ 22.11 # separately. Use ";#2" for .dll and ";#1" for .exe: 22.12 $(MT) /manifest $@.manifest /outputresource:$@;#2 22.13 !endif 22.14 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" 22.15 +!if "$(ZIP_DEBUGINFO_FILES)" == "1" 22.16 + $(ZIPEXE) -q $*.diz $*.map $*.pdb 22.17 + $(RM) $*.map $*.pdb 22.18 +!endif 22.19 +!endif 22.20 22.21 !include $(WorkSpace)/make/windows/makefiles/shared.make 22.22 !include $(WorkSpace)/make/windows/makefiles/sa.make
23.1 --- a/make/windows/makefiles/sa.make Mon Feb 20 22:32:30 2012 -0800 23.2 +++ b/make/windows/makefiles/sa.make Fri Mar 23 11:50:33 2012 -0700 23.3 @@ -1,5 +1,5 @@ 23.4 # 23.5 -# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. 23.6 +# Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. 23.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 23.8 # 23.9 # This code is free software; you can redistribute it and/or modify it 23.10 @@ -94,13 +94,19 @@ 23.11 SA_LD_FLAGS = bufferoverflowU.lib 23.12 !endif 23.13 !else 23.14 -SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 /Gm $(GX_OPTION) /ZI /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c 23.15 +SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 /Gm $(GX_OPTION) /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c 23.16 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" 23.17 +SA_CFLAGS = $(SA_CFLAGS) /ZI 23.18 +!endif 23.19 !endif 23.20 !if "$(MT)" != "" 23.21 SA_LD_FLAGS = /manifest $(SA_LD_FLAGS) 23.22 !endif 23.23 SASRCFILE = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp 23.24 -SA_LFLAGS = $(SA_LD_FLAGS) /nologo /subsystem:console /map /debug /machine:$(MACHINE) 23.25 +SA_LFLAGS = $(SA_LD_FLAGS) /nologo /subsystem:console /machine:$(MACHINE) 23.26 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" 23.27 +SA_LFLAGS = $(SA_LFLAGS) /map /debug 23.28 +!endif 23.29 23.30 # Note that we do not keep sawindbj.obj around as it would then 23.31 # get included in the dumpbin command in build_vm_def.sh 23.32 @@ -114,14 +120,20 @@ 23.33 /I"$(BootStrapDir)/include" /I"$(BootStrapDir)/include/win32" 23.34 /I"$(GENERATED)" $(SA_CFLAGS) 23.35 $(SASRCFILE) 23.36 - /out:sawindbg.obj 23.37 + /out:$*.obj 23.38 << 23.39 set LIB=$(SA_LIB)$(LIB) 23.40 - $(LD) /out:$@ /DLL sawindbg.obj dbgeng.lib $(SA_LFLAGS) 23.41 + $(LD) /out:$@ /DLL $*.obj dbgeng.lib $(SA_LFLAGS) 23.42 !if "$(MT)" != "" 23.43 $(MT) /manifest $(@F).manifest /outputresource:$(@F);#2 23.44 !endif 23.45 - -@rm -f sawindbg.obj 23.46 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" 23.47 +!if "$(ZIP_DEBUGINFO_FILES)" == "1" 23.48 + $(ZIPEXE) -q $*.diz $*.map $*.pdb 23.49 + $(RM) $*.map $*.pdb 23.50 +!endif 23.51 +!endif 23.52 + -@rm -f $*.obj 23.53 23.54 cleanall : 23.55 rm -rf $(GENERATED:\=/)/saclasses