Merge

Tue, 24 Apr 2012 15:20:40 -0700

author
dcubed
date
Tue, 24 Apr 2012 15:20:40 -0700
changeset 3726
74c359c4a9e5
parent 3723
f33c4d0f4c9e
parent 3725
744728c16316
child 3727
d6c393b0164b

Merge

make/Makefile file | annotate | diff | comparison | revisions
make/linux/Makefile file | annotate | diff | comparison | revisions
make/linux/makefiles/buildtree.make file | annotate | diff | comparison | revisions
make/linux/makefiles/defs.make file | annotate | diff | comparison | revisions
make/linux/makefiles/gcc.make file | annotate | diff | comparison | revisions
make/linux/makefiles/vm.make file | annotate | diff | comparison | revisions
make/solaris/makefiles/buildtree.make file | annotate | diff | comparison | revisions
make/solaris/makefiles/defs.make file | annotate | diff | comparison | revisions
make/solaris/makefiles/sparcWorks.make file | annotate | diff | comparison | revisions
make/solaris/makefiles/vm.make file | annotate | diff | comparison | revisions
make/windows/build.make file | annotate | diff | comparison | revisions
make/windows/makefiles/compile.make file | annotate | diff | comparison | revisions
make/windows/makefiles/debug.make file | annotate | diff | comparison | revisions
make/windows/makefiles/defs.make file | annotate | diff | comparison | revisions
make/windows/makefiles/fastdebug.make file | annotate | diff | comparison | revisions
make/windows/makefiles/product.make file | annotate | diff | comparison | revisions
     1.1 --- a/make/Makefile	Mon Apr 23 11:03:30 2012 -0700
     1.2 +++ b/make/Makefile	Tue Apr 24 15:20:40 2012 -0700
     1.3 @@ -136,31 +136,36 @@
     1.4  ifeq ($(OSNAME),windows)
     1.5  	@$(ECHO) "No docs ($(VM_TARGET)) for windows"
     1.6  else
     1.7 +# We specify 'BUILD_FLAVOR=product' so that the proper
     1.8 +# ENABLE_FULL_DEBUG_SYMBOLS value is used.
     1.9  	$(CD) $(OUTPUTDIR); \
    1.10  	    $(MAKE) -f $(ABS_OS_MAKEFILE) \
    1.11 -		      $(MAKE_ARGS) docs
    1.12 +		      $(MAKE_ARGS) BUILD_FLAVOR=product docs
    1.13  endif
    1.14  
    1.15  # Build variation of hotspot
    1.16  $(C1_VM_TARGETS):
    1.17  	$(CD) $(GAMMADIR)/make; \
    1.18 -	$(MAKE) VM_TARGET=$@ generic_build1 $(ALT_OUT)
    1.19 +	$(MAKE) BUILD_FLAVOR=$(@:%1=%) VM_TARGET=$@ generic_build1 $(ALT_OUT)
    1.20  
    1.21  $(C2_VM_TARGETS):
    1.22  	$(CD) $(GAMMADIR)/make; \
    1.23 -	$(MAKE) VM_TARGET=$@ generic_build2 $(ALT_OUT)
    1.24 +	$(MAKE) BUILD_FLAVOR=$@ VM_TARGET=$@ generic_build2 $(ALT_OUT)
    1.25  
    1.26  $(KERNEL_VM_TARGETS):
    1.27  	$(CD) $(GAMMADIR)/make; \
    1.28 -	$(MAKE) VM_TARGET=$@ generic_buildkernel $(ALT_OUT)
    1.29 +	$(MAKE) BUILD_FLAVOR=$(@:%kernel=%) VM_TARGET=$@ \
    1.30 +	  generic_buildkernel $(ALT_OUT)
    1.31  
    1.32  $(ZERO_VM_TARGETS):
    1.33  	$(CD) $(GAMMADIR)/make; \
    1.34 -	$(MAKE) VM_TARGET=$@ generic_buildzero $(ALT_OUT)
    1.35 +	$(MAKE) BUILD_FLAVOR=$(@:%zero=%) VM_TARGET=$@ \
    1.36 +	  generic_buildzero $(ALT_OUT)
    1.37  
    1.38  $(SHARK_VM_TARGETS):
    1.39  	$(CD) $(GAMMADIR)/make; \
    1.40 -	$(MAKE) VM_TARGET=$@ generic_buildshark $(ALT_OUT)
    1.41 +	$(MAKE) BUILD_FLAVOR=$(@:%shark=%) VM_TARGET=$@ \
    1.42 +	  generic_buildshark $(ALT_OUT)
    1.43  
    1.44  # Build compiler1 (client) rule, different for platforms
    1.45  generic_build1:
    1.46 @@ -237,25 +242,37 @@
    1.47  # Export file rule
    1.48  generic_export: $(EXPORT_LIST)
    1.49  export_product:
    1.50 -	$(MAKE) VM_SUBDIR=product                            generic_export
    1.51 +	$(MAKE) BUILD_FLAVOR=$(@:export_%=%) VM_SUBDIR=$(@:export_%=%) \
    1.52 +          generic_export
    1.53  export_fastdebug:
    1.54 -	$(MAKE) VM_SUBDIR=fastdebug EXPORT_SUBDIR=/fastdebug generic_export
    1.55 +	$(MAKE) BUILD_FLAVOR=$(@:export_%=%) VM_SUBDIR=$(@:export_%=%) \
    1.56 +	  EXPORT_SUBDIR=/$(@:export_%=%) \
    1.57 +	  generic_export
    1.58  export_debug:
    1.59 -	$(MAKE) VM_SUBDIR=${VM_DEBUG} EXPORT_SUBDIR=/debug   generic_export
    1.60 +	$(MAKE) BUILD_FLAVOR=$(@:export_%=%) VM_SUBDIR=${VM_DEBUG} \
    1.61 +	  EXPORT_SUBDIR=/$(@:export_%=%) \
    1.62 +	  generic_export
    1.63  export_optimized:
    1.64 -	$(MAKE) VM_SUBDIR=optimized EXPORT_SUBDIR=/optimized generic_export
    1.65 +	$(MAKE) BUILD_FLAVOR=$(@:export_%=%) VM_SUBDIR=$(@:export_%=%) \
    1.66 +	  EXPORT_SUBDIR=/$(@:export_%=%) \
    1.67 +	  generic_export
    1.68  export_product_jdk::
    1.69 -	$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) \
    1.70 -		VM_SUBDIR=product                            generic_export
    1.71 +	$(MAKE) BUILD_FLAVOR=$(@:export_%_jdk=%) \
    1.72 +	  VM_SUBDIR=$(@:export_%_jdk=%) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) \
    1.73 +	  generic_export
    1.74  export_optimized_jdk::
    1.75 -	$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) \
    1.76 -		VM_SUBDIR=optimized                          generic_export
    1.77 +	$(MAKE) BUILD_FLAVOR=$(@:export_%_jdk=%) \
    1.78 +	  VM_SUBDIR=$(@:export_%_jdk=%) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) \
    1.79 +	  generic_export
    1.80  export_fastdebug_jdk::
    1.81 -	$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/fastdebug \
    1.82 -		VM_SUBDIR=fastdebug                          generic_export
    1.83 +	$(MAKE) BUILD_FLAVOR=$(@:export_%_jdk=%) \
    1.84 +	  VM_SUBDIR=$(@:export_%_jdk=%)  \
    1.85 +	  ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/$(@:export_%_jdk=%) \
    1.86 +	  generic_export
    1.87  export_debug_jdk::
    1.88 -	$(MAKE) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/debug \
    1.89 -		VM_SUBDIR=${VM_DEBUG}                        generic_export
    1.90 +	$(MAKE) BUILD_FLAVOR=$(@:export_%_jdk=%) VM_SUBDIR=${VM_DEBUG} \
    1.91 +	  ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/$(@:export_%_jdk=%) \
    1.92 +	  generic_export
    1.93  
    1.94  # Export file copy rules
    1.95  XUSAGE=$(HS_SRC_DIR)/share/vm/Xusage.txt
    1.96 @@ -300,6 +317,8 @@
    1.97  	$(install-file)
    1.98  
    1.99  # Other libraries (like SA)
   1.100 +$(EXPORT_JRE_BIN_DIR)/%.diz: $(MISC_DIR)/%.diz
   1.101 +	$(install-file)
   1.102  $(EXPORT_JRE_BIN_DIR)/%.dll: $(MISC_DIR)/%.dll
   1.103  	$(install-file)
   1.104  $(EXPORT_JRE_BIN_DIR)/%.pdb: $(MISC_DIR)/%.pdb
   1.105 @@ -308,6 +327,8 @@
   1.106  	$(install-file)
   1.107  
   1.108  # Client files always come from C1 area
   1.109 +$(EXPORT_CLIENT_DIR)/%.diz:  $(C1_DIR)/%.diz
   1.110 +	$(install-file)
   1.111  $(EXPORT_CLIENT_DIR)/%.dll:  $(C1_DIR)/%.dll
   1.112  	$(install-file)
   1.113  $(EXPORT_CLIENT_DIR)/%.pdb:  $(C1_DIR)/%.pdb
   1.114 @@ -316,6 +337,8 @@
   1.115  	$(install-file)
   1.116  
   1.117  # Server files always come from C2 area
   1.118 +$(EXPORT_SERVER_DIR)/%.diz:  $(C2_DIR)/%.diz
   1.119 +	$(install-file)
   1.120  $(EXPORT_SERVER_DIR)/%.dll:  $(C2_DIR)/%.dll
   1.121  	$(install-file)
   1.122  $(EXPORT_SERVER_DIR)/%.pdb:  $(C2_DIR)/%.pdb
   1.123 @@ -324,6 +347,8 @@
   1.124  	$(install-file)
   1.125  
   1.126  # Kernel files always come from kernel area
   1.127 +$(EXPORT_KERNEL_DIR)/%.diz:  $(KERNEL_DIR)/%.diz
   1.128 +	$(install-file)
   1.129  $(EXPORT_KERNEL_DIR)/%.dll:  $(KERNEL_DIR)/%.dll
   1.130  	$(install-file)
   1.131  $(EXPORT_KERNEL_DIR)/%.pdb:  $(KERNEL_DIR)/%.pdb
   1.132 @@ -347,6 +372,12 @@
   1.133  		$(install-file)
   1.134          $(EXPORT_SERVER_DIR)/64/%.debuginfo:    		$(C2_DIR)/%.debuginfo
   1.135  		$(install-file)
   1.136 +        $(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: 			$(C2_DIR)/%.diz
   1.137 +		$(install-file)
   1.138 +        $(EXPORT_SERVER_DIR)/%.diz:       			$(C2_DIR)/%.diz
   1.139 +		$(install-file)
   1.140 +        $(EXPORT_SERVER_DIR)/64/%.diz:    			$(C2_DIR)/%.diz
   1.141 +		$(install-file)
   1.142      endif
   1.143      ifeq ($(JVM_VARIANT_CLIENT), true)
   1.144          $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C1_DIR)/%.$(LIBRARY_SUFFIX)
   1.145 @@ -361,6 +392,12 @@
   1.146  		$(install-file)
   1.147          $(EXPORT_CLIENT_DIR)/64/%.debuginfo:    		$(C1_DIR)/%.debuginfo
   1.148  		$(install-file)
   1.149 +        $(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: 			$(C1_DIR)/%.diz
   1.150 +		$(install-file)
   1.151 +        $(EXPORT_CLIENT_DIR)/%.diz:       			$(C1_DIR)/%.diz
   1.152 +		$(install-file)
   1.153 +        $(EXPORT_CLIENT_DIR)/64/%.diz:    			$(C1_DIR)/%.diz
   1.154 +		$(install-file)
   1.155      endif
   1.156      ifeq ($(JVM_VARIANT_ZEROSHARK), true)
   1.157          $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(SHARK_DIR)/%.$(LIBRARY_SUFFIX)
     2.1 --- a/make/linux/Makefile	Mon Apr 23 11:03:30 2012 -0700
     2.2 +++ b/make/linux/Makefile	Tue Apr 24 15:20:40 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  
    2.19 @@ -337,9 +337,11 @@
    2.20  
    2.21  # Doc target.  This is the same for all build options.
    2.22  #     Hence create a docs directory beside ...$(ARCH)_[...]
    2.23 +# We specify 'BUILD_FLAVOR=product' so that the proper
    2.24 +# ENABLE_FULL_DEBUG_SYMBOLS value is used.
    2.25  docs: checks
    2.26  	$(QUIETLY) mkdir -p $(SUBDIR_DOCS)
    2.27 -	$(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) jvmtidocs
    2.28 +	$(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs
    2.29  
    2.30  # Synonyms for win32-like targets.
    2.31  compiler2:  jvmg product
     3.1 --- a/make/linux/makefiles/buildtree.make	Mon Apr 23 11:03:30 2012 -0700
     3.2 +++ b/make/linux/makefiles/buildtree.make	Tue Apr 24 15:20:40 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 @@ -236,10 +236,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 Apr 23 11:03:30 2012 -0700
     4.2 +++ b/make/linux/makefiles/defs.make	Tue Apr 24 15:20:40 2012 -0700
     4.3 @@ -141,32 +141,70 @@
     4.4  endif
     4.5  
     4.6  ifeq ($(JDK6_OR_EARLIER),0)
     4.7 -  # Full Debug Symbols is supported on JDK7 or newer
     4.8 +  # Full Debug Symbols is supported on JDK7 or newer.
     4.9 +  # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
    4.10 +  # builds is enabled with debug info files ZIP'ed to save space. For
    4.11 +  # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
    4.12 +  # debug build without debug info isn't very useful.
    4.13 +  # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
    4.14 +  #
    4.15 +  # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
    4.16 +  # disabled for a BUILD_FLAVOR == product build.
    4.17 +  #
    4.18 +  # Note: Use of a different variable name for the FDS override option
    4.19 +  # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
    4.20 +  # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
    4.21 +  # in options via environment variables, use of distinct variables
    4.22 +  # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
    4.23 +  # product build, the FULL_DEBUG_SYMBOLS environment variable will be
    4.24 +  # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
    4.25 +  # the same variable name is used, then different values can be picked
    4.26 +  # up by different parts of the build. Just to be clear, we only need
    4.27 +  # two variable names because the incoming option value can be
    4.28 +  # overridden in some situations, e.g., a BUILD_FLAVOR != product
    4.29 +  # build.
    4.30  
    4.31 -  # Default OBJCOPY comes from GNU Binutils on Linux:
    4.32 -  DEF_OBJCOPY=/usr/bin/objcopy
    4.33 -  ifdef CROSS_COMPILE_ARCH
    4.34 -    # don't try to generate .debuginfo files when cross compiling
    4.35 -    _JUNK_ := $(shell \
    4.36 -      echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
    4.37 -        "skipping .debuginfo generation.")
    4.38 +  ifeq ($(BUILD_FLAVOR), product)
    4.39 +    FULL_DEBUG_SYMBOLS ?= 1
    4.40 +    ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
    4.41 +  else
    4.42 +    # debug variants always get Full Debug Symbols (if available)
    4.43 +    ENABLE_FULL_DEBUG_SYMBOLS = 1
    4.44 +  endif
    4.45 +  _JUNK_ := $(shell \
    4.46 +    echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
    4.47 +  # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
    4.48 +
    4.49 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
    4.50 +    # Default OBJCOPY comes from GNU Binutils on Linux:
    4.51 +    DEF_OBJCOPY=/usr/bin/objcopy
    4.52 +    ifdef CROSS_COMPILE_ARCH
    4.53 +      # don't try to generate .debuginfo files when cross compiling
    4.54 +      _JUNK_ := $(shell \
    4.55 +        echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
    4.56 +          "skipping .debuginfo generation.")
    4.57 +      OBJCOPY=
    4.58 +    else
    4.59 +      OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
    4.60 +      ifneq ($(ALT_OBJCOPY),)
    4.61 +        _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
    4.62 +        OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
    4.63 +      endif
    4.64 +    endif
    4.65 +  else
    4.66      OBJCOPY=
    4.67 -  else
    4.68 -    OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
    4.69 -    ifneq ($(ALT_OBJCOPY),)
    4.70 -      _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
    4.71 -      # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
    4.72 -      OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
    4.73 -    endif
    4.74    endif
    4.75 -  
    4.76 +
    4.77    ifeq ($(OBJCOPY),)
    4.78      _JUNK_ := $(shell \
    4.79        echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
    4.80 +    ENABLE_FULL_DEBUG_SYMBOLS=0
    4.81 +    _JUNK_ := $(shell \
    4.82 +      echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
    4.83    else
    4.84      _JUNK_ := $(shell \
    4.85        echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
    4.86 -  
    4.87 +
    4.88      # Library stripping policies for .debuginfo configs:
    4.89      #   all_strip - strips everything from the library
    4.90      #   min_strip - strips most stuff from the library; leaves minimum symbols
    4.91 @@ -175,15 +213,17 @@
    4.92      # Oracle security policy requires "all_strip". A waiver was granted on
    4.93      # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
    4.94      #
    4.95 -    DEF_STRIP_POLICY="min_strip"
    4.96 -    ifeq ($(ALT_STRIP_POLICY),)
    4.97 -      STRIP_POLICY=$(DEF_STRIP_POLICY)
    4.98 -    else
    4.99 -      STRIP_POLICY=$(ALT_STRIP_POLICY)
   4.100 -    endif
   4.101 -  
   4.102 +    # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
   4.103 +    #
   4.104 +    STRIP_POLICY ?= min_strip
   4.105 +
   4.106      _JUNK_ := $(shell \
   4.107        echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
   4.108 +
   4.109 +    ZIP_DEBUGINFO_FILES ?= 1
   4.110 +
   4.111 +    _JUNK_ := $(shell \
   4.112 +      echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
   4.113    endif
   4.114  endif
   4.115  
   4.116 @@ -199,8 +239,12 @@
   4.117  
   4.118  # client and server subdirectories have symbolic links to ../libjsig.so
   4.119  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
   4.120 -ifneq ($(OBJCOPY),)
   4.121 -  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
   4.122 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   4.123 +  ifeq ($(ZIP_DEBUGINFO_FILES),1)
   4.124 +    EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
   4.125 +  else
   4.126 +    EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
   4.127 +  endif
   4.128  endif
   4.129  EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
   4.130  EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
   4.131 @@ -210,16 +254,24 @@
   4.132  ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
   4.133    EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
   4.134    EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
   4.135 -  ifneq ($(OBJCOPY),)
   4.136 -    EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
   4.137 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   4.138 +    ifeq ($(ZIP_DEBUGINFO_FILES),1)
   4.139 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
   4.140 +    else
   4.141 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
   4.142 +    endif
   4.143    endif
   4.144  endif
   4.145  
   4.146  ifeq ($(JVM_VARIANT_CLIENT),true)
   4.147    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
   4.148    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
   4.149 -  ifneq ($(OBJCOPY),)
   4.150 -    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
   4.151 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   4.152 +    ifeq ($(ZIP_DEBUGINFO_FILES),1)
   4.153 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
   4.154 +    else
   4.155 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
   4.156 +    endif
   4.157    endif 
   4.158  endif
   4.159  
   4.160 @@ -229,9 +281,14 @@
   4.161                          $(EXPORT_LIB_DIR)/sa-jdi.jar 
   4.162  ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
   4.163                          $(EXPORT_LIB_DIR)/sa-jdi.jar 
   4.164 -ifneq ($(OBJCOPY),)
   4.165 -  ADD_SA_BINARIES/x86   += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
   4.166 -  ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
   4.167 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   4.168 +  ifeq ($(ZIP_DEBUGINFO_FILES),1)
   4.169 +    ADD_SA_BINARIES/x86   += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
   4.170 +    ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
   4.171 +  else
   4.172 +    ADD_SA_BINARIES/x86   += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
   4.173 +    ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
   4.174 +  endif
   4.175  endif
   4.176  ADD_SA_BINARIES/ppc   = 
   4.177  ADD_SA_BINARIES/ia64  = 
     5.1 --- a/make/linux/makefiles/gcc.make	Mon Apr 23 11:03:30 2012 -0700
     5.2 +++ b/make/linux/makefiles/gcc.make	Tue Apr 24 15:20:40 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 @@ -230,7 +230,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 Apr 23 11:03:30 2012 -0700
     6.2 +++ b/make/linux/makefiles/jsig.make	Tue Apr 24 15:20:40 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 Apr 23 11:03:30 2012 -0700
     7.2 +++ b/make/linux/makefiles/saproc.make	Tue Apr 24 15:20:40 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 Apr 23 11:03:30 2012 -0700
     8.2 +++ b/make/linux/makefiles/vm.make	Tue Apr 24 15:20:40 2012 -0700
     8.3 @@ -61,7 +61,7 @@
     8.4  INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
     8.5  
     8.6  # SYMFLAG is used by {jsig,saproc}.make
     8.7 -ifneq ($(OBJCOPY),)
     8.8 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
     8.9    # always build with debug info when we can create .debuginfo files
    8.10    SYMFLAG = -g
    8.11  else
    8.12 @@ -139,7 +139,9 @@
    8.13  LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
    8.14  
    8.15  LIBJVM_DEBUGINFO   = lib$(JVM).debuginfo
    8.16 +LIBJVM_DIZ         = lib$(JVM).diz
    8.17  LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo
    8.18 +LIBJVM_G_DIZ       = lib$(JVM)$(G_SUFFIX).diz
    8.19  
    8.20  SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt
    8.21  
    8.22 @@ -331,7 +333,7 @@
    8.23              fi 								\
    8.24  	}
    8.25  ifeq ($(CROSS_COMPILE_ARCH),)
    8.26 -  ifneq ($(OBJCOPY),)
    8.27 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
    8.28  	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
    8.29  	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
    8.30      ifeq ($(STRIP_POLICY),all_strip)
    8.31 @@ -343,17 +345,25 @@
    8.32        endif
    8.33      endif
    8.34  	$(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
    8.35 +    ifeq ($(ZIP_DEBUGINFO_FILES),1)
    8.36 +	$(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
    8.37 +	$(RM) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
    8.38 +	[ -f $(LIBJVM_G_DIZ) ] || { ln -s $(LIBJVM_DIZ) $(LIBJVM_G_DIZ); }
    8.39 +    endif
    8.40    endif
    8.41  endif
    8.42  
    8.43  DEST_SUBDIR        = $(JDK_LIBDIR)/$(VM_SUBDIR)
    8.44  DEST_JVM           = $(DEST_SUBDIR)/$(LIBJVM)
    8.45  DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO)
    8.46 +DEST_JVM_DIZ       = $(DEST_SUBDIR)/$(LIBJVM_DIZ)
    8.47  
    8.48  install_jvm: $(LIBJVM)
    8.49  	@echo "Copying $(LIBJVM) to $(DEST_JVM)"
    8.50  	$(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \
    8.51  	    cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO)
    8.52 +	$(QUIETLY) test -f $(LIBJVM_DIZ) && \
    8.53 +	    cp -f $(LIBJVM_DIZ) $(DEST_JVM_DIZ)
    8.54  	$(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done"
    8.55  
    8.56  #----------------------------------------------------------------------
     9.1 --- a/make/solaris/Makefile	Mon Apr 23 11:03:30 2012 -0700
     9.2 +++ b/make/solaris/Makefile	Tue Apr 24 15:20:40 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  
    9.19 @@ -278,9 +278,11 @@
    9.20  
    9.21  # Doc target.  This is the same for all build options.
    9.22  #     Hence create a docs directory beside ...$(ARCH)_[...]
    9.23 +# We specify 'BUILD_FLAVOR=product' so that the proper
    9.24 +# ENABLE_FULL_DEBUG_SYMBOLS value is used.
    9.25  docs: checks
    9.26  	$(QUIETLY) mkdir -p $(SUBDIR_DOCS)
    9.27 -	$(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) jvmtidocs
    9.28 +	$(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs
    9.29  
    9.30  # Synonyms for win32-like targets.
    9.31  compiler2:  jvmg product
    10.1 --- a/make/solaris/makefiles/buildtree.make	Mon Apr 23 11:03:30 2012 -0700
    10.2 +++ b/make/solaris/makefiles/buildtree.make	Tue Apr 24 15:20:40 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 @@ -229,10 +229,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 Apr 23 11:03:30 2012 -0700
    11.2 +++ b/make/solaris/makefiles/defs.make	Tue Apr 24 15:20:40 2012 -0700
    11.3 @@ -86,45 +86,77 @@
    11.4  endif
    11.5  
    11.6  ifeq ($(JDK6_OR_EARLIER),0)
    11.7 -  # Full Debug Symbols is supported on JDK7 or newer
    11.8 +  # Full Debug Symbols is supported on JDK7 or newer.
    11.9 +  # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
   11.10 +  # builds is enabled with debug info files ZIP'ed to save space. For
   11.11 +  # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
   11.12 +  # debug build without debug info isn't very useful.
   11.13 +  # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
   11.14 +  #
   11.15 +  # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
   11.16 +  # disabled for a BUILD_FLAVOR == product build.
   11.17 +  #
   11.18 +  # Note: Use of a different variable name for the FDS override option
   11.19 +  # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
   11.20 +  # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
   11.21 +  # in options via environment variables, use of distinct variables
   11.22 +  # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
   11.23 +  # product build, the FULL_DEBUG_SYMBOLS environment variable will be
   11.24 +  # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
   11.25 +  # the same variable name is used, then different values can be picked
   11.26 +  # up by different parts of the build. Just to be clear, we only need
   11.27 +  # two variable names because the incoming option value can be
   11.28 +  # overridden in some situations, e.g., a BUILD_FLAVOR != product
   11.29 +  # build.
   11.30  
   11.31 -ifdef ENABLE_FULL_DEBUG_SYMBOLS
   11.32 -  # Only check for Full Debug Symbols support on Solaris if it is
   11.33 -  # specifically enabled. Hopefully, it can be enabled by default
   11.34 -  # once the .debuginfo size issues are worked out.
   11.35 -  
   11.36 -  # Default OBJCOPY comes from the SUNWbinutils package:
   11.37 -  DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
   11.38 -  ifeq ($(VM_PLATFORM),solaris_amd64)
   11.39 -    # On Solaris AMD64/X64, gobjcopy is not happy and fails:
   11.40 -    #
   11.41 -    # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
   11.42 -    # BFD: stKPaiop: Not enough room for program headers, try linking with -N
   11.43 -    # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
   11.44 -    # BFD: stKPaiop: Not enough room for program headers, try linking with -N
   11.45 -    # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
   11.46 -    # BFD: stKPaiop: Not enough room for program headers, try linking with -N
   11.47 -    # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
   11.48 -    _JUNK_ := $(shell \
   11.49 -      echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
   11.50 +  ifeq ($(BUILD_FLAVOR), product)
   11.51 +    FULL_DEBUG_SYMBOLS ?= 1
   11.52 +    ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
   11.53 +  else
   11.54 +    # debug variants always get Full Debug Symbols (if available)
   11.55 +    ENABLE_FULL_DEBUG_SYMBOLS = 1
   11.56 +  endif
   11.57 +  _JUNK_ := $(shell \
   11.58 +    echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
   11.59 +  # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
   11.60 +
   11.61 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   11.62 +    # Default OBJCOPY comes from the SUNWbinutils package:
   11.63 +    DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
   11.64 +    ifeq ($(VM_PLATFORM),solaris_amd64)
   11.65 +      # On Solaris AMD64/X64, gobjcopy is not happy and fails:
   11.66 +      #
   11.67 +      # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
   11.68 +      # BFD: stKPaiop: Not enough room for program headers, try linking with -N
   11.69 +      # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
   11.70 +      # BFD: stKPaiop: Not enough room for program headers, try linking with -N
   11.71 +      # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
   11.72 +      # BFD: stKPaiop: Not enough room for program headers, try linking with -N
   11.73 +      # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
   11.74 +      _JUNK_ := $(shell \
   11.75 +        echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
   11.76 +      OBJCOPY=
   11.77 +    else
   11.78 +      OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
   11.79 +      ifneq ($(ALT_OBJCOPY),)
   11.80 +        _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
   11.81 +        OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
   11.82 +      endif
   11.83 +    endif
   11.84 +  else
   11.85      OBJCOPY=
   11.86 -  else
   11.87 -    OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
   11.88 -    ifneq ($(ALT_OBJCOPY),)
   11.89 -      _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
   11.90 -      # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
   11.91 -      OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
   11.92 -    endif
   11.93    endif
   11.94 -endif
   11.95 -  
   11.96 +
   11.97    ifeq ($(OBJCOPY),)
   11.98      _JUNK_ := $(shell \
   11.99        echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
  11.100 +    ENABLE_FULL_DEBUG_SYMBOLS=0
  11.101 +    _JUNK_ := $(shell \
  11.102 +      echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
  11.103    else
  11.104      _JUNK_ := $(shell \
  11.105        echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
  11.106 -  
  11.107 +
  11.108      # Library stripping policies for .debuginfo configs:
  11.109      #   all_strip - strips everything from the library
  11.110      #   min_strip - strips most stuff from the library; leaves minimum symbols
  11.111 @@ -133,14 +165,17 @@
  11.112      # Oracle security policy requires "all_strip". A waiver was granted on
  11.113      # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
  11.114      #
  11.115 -    DEF_STRIP_POLICY="min_strip"
  11.116 -    ifeq ($(ALT_STRIP_POLICY),)
  11.117 -      STRIP_POLICY=$(DEF_STRIP_POLICY)
  11.118 -    else
  11.119 -      STRIP_POLICY=$(ALT_STRIP_POLICY)
  11.120 -    endif
  11.121 +    # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
  11.122 +    #
  11.123 +    STRIP_POLICY ?= min_strip
  11.124 +
  11.125      _JUNK_ := $(shell \
  11.126        echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
  11.127 +
  11.128 +    ZIP_DEBUGINFO_FILES ?= 1
  11.129 +
  11.130 +    _JUNK_ := $(shell \
  11.131 +      echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
  11.132    endif
  11.133  endif
  11.134  
  11.135 @@ -156,8 +191,12 @@
  11.136  
  11.137  # client and server subdirectories have symbolic links to ../libjsig.$(LIBRARY_SUFFIX)
  11.138  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
  11.139 -ifneq ($(OBJCOPY),)
  11.140 -  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
  11.141 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
  11.142 +  ifeq ($(ZIP_DEBUGINFO_FILES),1)
  11.143 +    EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
  11.144 +  else
  11.145 +    EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
  11.146 +  endif
  11.147  endif
  11.148  
  11.149  EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
  11.150 @@ -174,10 +213,16 @@
  11.151      EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
  11.152      EXPORT_LIST += $(EXPORT_SERVER_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
  11.153    endif
  11.154 -  ifneq ($(OBJCOPY),)
  11.155 -    EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
  11.156 -    EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
  11.157 -    EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
  11.158 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
  11.159 +    ifeq ($(ZIP_DEBUGINFO_FILES),1)
  11.160 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
  11.161 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.diz
  11.162 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.diz
  11.163 +    else
  11.164 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
  11.165 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_db.debuginfo
  11.166 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm_dtrace.debuginfo
  11.167 +    endif
  11.168    endif
  11.169  endif
  11.170  ifeq ($(JVM_VARIANT_CLIENT),true)
  11.171 @@ -189,19 +234,33 @@
  11.172      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
  11.173      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
  11.174    endif
  11.175 -  ifneq ($(OBJCOPY),)
  11.176 -    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
  11.177 -    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
  11.178 -    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
  11.179 -    ifeq ($(ARCH_DATA_MODEL),32)
  11.180 -      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
  11.181 -      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
  11.182 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
  11.183 +    ifeq ($(ZIP_DEBUGINFO_FILES),1)
  11.184 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
  11.185 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.diz
  11.186 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.diz
  11.187 +      ifeq ($(ARCH_DATA_MODEL),32)
  11.188 +        EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.diz
  11.189 +        EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.diz
  11.190 +      endif
  11.191 +    else
  11.192 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
  11.193 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.debuginfo
  11.194 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.debuginfo
  11.195 +      ifeq ($(ARCH_DATA_MODEL),32)
  11.196 +        EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.debuginfo
  11.197 +        EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.debuginfo
  11.198 +      endif
  11.199      endif
  11.200    endif
  11.201  endif
  11.202  
  11.203  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
  11.204 -ifneq ($(OBJCOPY),)
  11.205 -  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
  11.206 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
  11.207 +  ifeq ($(ZIP_DEBUGINFO_FILES),1)
  11.208 +    EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
  11.209 +  else
  11.210 +    EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
  11.211 +  endif
  11.212  endif
  11.213  EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar 
    12.1 --- a/make/solaris/makefiles/dtrace.make	Mon Apr 23 11:03:30 2012 -0700
    12.2 +++ b/make/solaris/makefiles/dtrace.make	Tue Apr 24 15:20:40 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 Apr 23 11:03:30 2012 -0700
    13.2 +++ b/make/solaris/makefiles/jsig.make	Tue Apr 24 15:20:40 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 Apr 23 11:03:30 2012 -0700
    14.2 +++ b/make/solaris/makefiles/saproc.make	Tue Apr 24 15:20:40 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 Apr 23 11:03:30 2012 -0700
    15.2 +++ b/make/solaris/makefiles/sparcWorks.make	Tue Apr 24 15:20:40 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 @@ -488,12 +488,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 Apr 23 11:03:30 2012 -0700
    16.2 +++ b/make/solaris/makefiles/vm.make	Tue Apr 24 15:20:40 2012 -0700
    16.3 @@ -56,7 +56,7 @@
    16.4  INCLUDES += $(Src_Dirs_I:%=-I%)
    16.5  
    16.6  # SYMFLAG is used by {dtrace,jsig,saproc}.make.
    16.7 -ifneq ($(OBJCOPY),)
    16.8 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
    16.9    # always build with debug info when we can create .debuginfo files
   16.10    # and disable 'lazy debug info' so the .so has everything.
   16.11    SYMFLAG = -g -xs
   16.12 @@ -152,7 +152,9 @@
   16.13  LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
   16.14  
   16.15  LIBJVM_DEBUGINFO   = lib$(JVM).debuginfo
   16.16 +LIBJVM_DIZ         = lib$(JVM).diz
   16.17  LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo
   16.18 +LIBJVM_G_DIZ       = lib$(JVM)$(G_SUFFIX).diz
   16.19  
   16.20  SPECIAL_PATHS:=adlc c1 dist gc_implementation opto shark libadt
   16.21  
   16.22 @@ -283,7 +285,7 @@
   16.23  	$(QUIETLY) rm -f $@.1 && ln -s $@ $@.1
   16.24  	$(QUIETLY) [ -f $(LIBJVM_G) ] || ln -s $@ $(LIBJVM_G)
   16.25  	$(QUIETLY) [ -f $(LIBJVM_G).1 ] || ln -s $@.1 $(LIBJVM_G).1
   16.26 -ifneq ($(OBJCOPY),)
   16.27 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   16.28  	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
   16.29  	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
   16.30    ifeq ($(STRIP_POLICY),all_strip)
   16.31 @@ -295,6 +297,11 @@
   16.32      endif
   16.33    endif
   16.34  	$(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
   16.35 +  ifeq ($(ZIP_DEBUGINFO_FILES),1)
   16.36 +	$(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
   16.37 +	$(RM) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
   16.38 +	[ -f $(LIBJVM_G_DIZ) ] || { ln -s $(LIBJVM_DIZ) $(LIBJVM_G_DIZ); }
   16.39 +  endif
   16.40  endif
   16.41  endif # filter -sbfast -xsbfast
   16.42  
   16.43 @@ -302,11 +309,14 @@
   16.44  DEST_SUBDIR        = $(JDK_LIBDIR)/$(VM_SUBDIR)
   16.45  DEST_JVM           = $(DEST_SUBDIR)/$(LIBJVM)
   16.46  DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO)
   16.47 +DEST_JVM_DIZ       = $(DEST_SUBDIR)/$(LIBJVM_DIZ)
   16.48  
   16.49  install_jvm: $(LIBJVM)
   16.50  	@echo "Copying $(LIBJVM) to $(DEST_JVM)"
   16.51  	$(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \
   16.52  	    cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO)
   16.53 +	$(QUIETLY) test -f $(LIBJVM_DIZ) && \
   16.54 +	    cp -f $(LIBJVM_DIZ) $(DEST_JVM_DIZ)
   16.55  	$(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done"
   16.56  
   16.57  #----------------------------------------------------------------------
    17.1 --- a/make/windows/build.make	Mon Apr 23 11:03:30 2012 -0700
    17.2 +++ b/make/windows/build.make	Tue Apr 24 15:20:40 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 @@ -302,6 +302,10 @@
   17.11  	@ echo MT=$(MT)						>> $@
   17.12  	@ echo RC=$(RC)						>> $@
   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 Apr 23 11:03:30 2012 -0700
    18.2 +++ b/make/windows/makefiles/compile.make	Tue Apr 24 15:20:40 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 @@ -54,8 +54,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 @@ -239,7 +241,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 Apr 23 11:03:30 2012 -0700
    19.2 +++ b/make/windows/makefiles/debug.make	Tue Apr 24 15:20:40 2012 -0700
    19.3 @@ -61,6 +61,12 @@
    19.4  # separately.  Use ";#2" for .dll and ";#1" for .exe:
    19.5  	$(MT) /manifest $@.manifest /outputresource:$@;#2
    19.6  !endif
    19.7 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
    19.8 +!if "$(ZIP_DEBUGINFO_FILES)" == "1"
    19.9 +	$(ZIPEXE) -q $*.diz $*.map $*.pdb
   19.10 +	$(RM) $*.map $*.pdb
   19.11 +!endif
   19.12 +!endif
   19.13  
   19.14  !include $(WorkSpace)/make/windows/makefiles/shared.make
   19.15  !include $(WorkSpace)/make/windows/makefiles/sa.make
    20.1 --- a/make/windows/makefiles/defs.make	Mon Apr 23 11:03:30 2012 -0700
    20.2 +++ b/make/windows/makefiles/defs.make	Tue Apr 24 15:20:40 2012 -0700
    20.3 @@ -107,6 +107,50 @@
    20.4    endif
    20.5  endif
    20.6  
    20.7 +# Full Debug Symbols has been enabled on Windows since JDK1.4.1 so
    20.8 +# there is no need for an "earlier than JDK7 check".
    20.9 +# The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
   20.10 +# builds is enabled with debug info files ZIP'ed to save space. For
   20.11 +# BUILD_FLAVOR != product builds, FDS is always enabled, after all a
   20.12 +# debug build without debug info isn't very useful.
   20.13 +# The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
   20.14 +#
   20.15 +# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
   20.16 +# disabled for a BUILD_FLAVOR == product build.
   20.17 +#
   20.18 +# Note: Use of a different variable name for the FDS override option
   20.19 +# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
   20.20 +# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
   20.21 +# in options via environment variables, use of distinct variables
   20.22 +# prevents strange behaviours. For example, in a BUILD_FLAVOR !=
   20.23 +# product build, the FULL_DEBUG_SYMBOLS environment variable will be
   20.24 +# 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
   20.25 +# the same variable name is used, then different values can be picked
   20.26 +# up by different parts of the build. Just to be clear, we only need
   20.27 +# two variable names because the incoming option value can be
   20.28 +# overridden in some situations, e.g., a BUILD_FLAVOR != product
   20.29 +# build.
   20.30 +
   20.31 +ifeq ($(BUILD_FLAVOR), product)
   20.32 +  FULL_DEBUG_SYMBOLS ?= 1
   20.33 +  ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
   20.34 +else
   20.35 +  # debug variants always get Full Debug Symbols (if available)
   20.36 +  ENABLE_FULL_DEBUG_SYMBOLS = 1
   20.37 +endif
   20.38 +_JUNK_ := $(shell \
   20.39 +  echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
   20.40 +MAKE_ARGS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)
   20.41 +
   20.42 +ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   20.43 +  ZIP_DEBUGINFO_FILES ?= 1
   20.44 +else
   20.45 +  ZIP_DEBUGINFO_FILES=0
   20.46 +endif
   20.47 +MAKE_ARGS += ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)
   20.48 +MAKE_ARGS += RM="$(RM)"
   20.49 +MAKE_ARGS += ZIPEXE=$(ZIPEXE)
   20.50 +
   20.51  # On 32 bit windows we build server, client and kernel, on 64 bit just server.
   20.52  ifeq ($(JVM_VARIANTS),)
   20.53    ifeq ($(ARCH_DATA_MODEL), 32)
   20.54 @@ -193,29 +237,53 @@
   20.55  ifeq ($(JVM_VARIANT_SERVER),true)
   20.56    EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
   20.57    EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.$(LIBRARY_SUFFIX)
   20.58 -  EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.pdb
   20.59 -  EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map
   20.60 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   20.61 +    ifeq ($(ZIP_DEBUGINFO_FILES),1)
   20.62 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.diz
   20.63 +    else
   20.64 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.pdb
   20.65 +      EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map
   20.66 +    endif
   20.67 +  endif
   20.68    EXPORT_LIST += $(EXPORT_LIB_DIR)/jvm.lib
   20.69  endif
   20.70  ifeq ($(JVM_VARIANT_CLIENT),true)
   20.71    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
   20.72    EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.$(LIBRARY_SUFFIX)
   20.73 -  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.pdb
   20.74 -  EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map
   20.75 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   20.76 +    ifeq ($(ZIP_DEBUGINFO_FILES),1)
   20.77 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.diz
   20.78 +    else
   20.79 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.pdb
   20.80 +      EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map
   20.81 +    endif
   20.82 +  endif
   20.83  endif
   20.84  ifeq ($(JVM_VARIANT_KERNEL),true)
   20.85    EXPORT_LIST += $(EXPORT_KERNEL_DIR)/Xusage.txt
   20.86    EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.$(LIBRARY_SUFFIX)
   20.87 -  EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.pdb
   20.88 -  EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.map
   20.89 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   20.90 +    ifeq ($(ZIP_DEBUGINFO_FILES),1)
   20.91 +      EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.diz
   20.92 +    else
   20.93 +      EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.pdb
   20.94 +      EXPORT_LIST += $(EXPORT_KERNEL_DIR)/jvm.map
   20.95 +    endif
   20.96 +  endif
   20.97  endif
   20.98  
   20.99  EXPORT_LIST += $(EXPORT_JRE_LIB_DIR)/wb.jar
  20.100  
  20.101  ifeq ($(BUILD_WIN_SA), 1)
  20.102    EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.$(LIBRARY_SUFFIX)
  20.103 -  EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb
  20.104 -  EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.map
  20.105 +  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
  20.106 +    ifeq ($(ZIP_DEBUGINFO_FILES),1)
  20.107 +      EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.diz
  20.108 +    else
  20.109 +      EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb
  20.110 +      EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.map
  20.111 +    endif
  20.112 +  endif
  20.113    EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
  20.114    # Must pass this down to nmake.
  20.115    MAKE_ARGS += BUILD_WIN_SA=1
    21.1 --- a/make/windows/makefiles/fastdebug.make	Mon Apr 23 11:03:30 2012 -0700
    21.2 +++ b/make/windows/makefiles/fastdebug.make	Tue Apr 24 15:20:40 2012 -0700
    21.3 @@ -61,6 +61,12 @@
    21.4  # separately.  Use ";#2" for .dll and ";#1" for .exe:
    21.5  	$(MT) /manifest $@.manifest /outputresource:$@;#2
    21.6  !endif
    21.7 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
    21.8 +!if "$(ZIP_DEBUGINFO_FILES)" == "1"
    21.9 +	$(ZIPEXE) -q $*.diz $*.map $*.pdb
   21.10 +	$(RM) $*.map $*.pdb
   21.11 +!endif
   21.12 +!endif
   21.13  
   21.14  !include $(WorkSpace)/make/windows/makefiles/shared.make
   21.15  !include $(WorkSpace)/make/windows/makefiles/sa.make
    22.1 --- a/make/windows/makefiles/product.make	Mon Apr 23 11:03:30 2012 -0700
    22.2 +++ b/make/windows/makefiles/product.make	Tue Apr 24 15:20:40 2012 -0700
    22.3 @@ -72,6 +72,12 @@
    22.4  # separately.  Use ";#2" for .dll and ";#1" for .exe:
    22.5  	$(MT) /manifest $@.manifest /outputresource:$@;#2
    22.6  !endif
    22.7 +!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
    22.8 +!if "$(ZIP_DEBUGINFO_FILES)" == "1"
    22.9 +	$(ZIPEXE) -q $*.diz $*.map $*.pdb
   22.10 +	$(RM) $*.map $*.pdb
   22.11 +!endif
   22.12 +!endif
   22.13  
   22.14  !include $(WorkSpace)/make/windows/makefiles/shared.make
   22.15  !include $(WorkSpace)/make/windows/makefiles/sa.make
    23.1 --- a/make/windows/makefiles/sa.make	Mon Apr 23 11:03:30 2012 -0700
    23.2 +++ b/make/windows/makefiles/sa.make	Tue Apr 24 15:20:40 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

mercurial