comparison make/solaris/makefiles/defs.make @ 6021:744728c16316

7158067: FDS: ENABLE_FULL_DEBUG_SYMBOLS flag should only affect product builds Summary: Build option FULL_DEBUG_SYMBOLS=0 only affects product builds. Reviewed-by: ohair, jmelvin, sspitsyn
author dcubed
date Tue, 03 Apr 2012 09:48:34 -0700
parents d652a62d6e03
children 74c359c4a9e5 9c1709c4c80c
comparison
equal deleted inserted replaced
6020:d652a62d6e03 6021:744728c16316
73 endif 73 endif
74 endif 74 endif
75 75
76 ifeq ($(JDK6_OR_EARLIER),0) 76 ifeq ($(JDK6_OR_EARLIER),0)
77 # Full Debug Symbols is supported on JDK7 or newer. 77 # Full Debug Symbols is supported on JDK7 or newer.
78 # Default is enabled with .debuginfo files ZIP'ed to save space. 78 # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
79 79 # builds is enabled with debug info files ZIP'ed to save space. For
80 ENABLE_FULL_DEBUG_SYMBOLS ?= 1 80 # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
81 # debug build without debug info isn't very useful.
82 # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
83 #
84 # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
85 # disabled for a BUILD_FLAVOR == product build.
86 #
87 # Note: Use of a different variable name for the FDS override option
88 # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
89 # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
90 # in options via environment variables, use of distinct variables
91 # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
92 # product build, the FULL_DEBUG_SYMBOLS environment variable will be
93 # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
94 # the same variable name is used, then different values can be picked
95 # up by different parts of the build. Just to be clear, we only need
96 # two variable names because the incoming option value can be
97 # overridden in some situations, e.g., a BUILD_FLAVOR != product
98 # build.
99
100 ifeq ($(BUILD_FLAVOR), product)
101 FULL_DEBUG_SYMBOLS ?= 1
102 ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
103 else
104 # debug variants always get Full Debug Symbols (if available)
105 ENABLE_FULL_DEBUG_SYMBOLS = 1
106 endif
107 _JUNK_ := $(shell \
108 echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
81 # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later 109 # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
82 110
83 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) 111 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
84 # Default OBJCOPY comes from the SUNWbinutils package: 112 # Default OBJCOPY comes from the SUNWbinutils package:
85 DEF_OBJCOPY=/usr/sfw/bin/gobjcopy 113 DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
109 137
110 ifeq ($(OBJCOPY),) 138 ifeq ($(OBJCOPY),)
111 _JUNK_ := $(shell \ 139 _JUNK_ := $(shell \
112 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.") 140 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
113 ENABLE_FULL_DEBUG_SYMBOLS=0 141 ENABLE_FULL_DEBUG_SYMBOLS=0
142 _JUNK_ := $(shell \
143 echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
114 else 144 else
115 _JUNK_ := $(shell \ 145 _JUNK_ := $(shell \
116 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.") 146 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
117 147
118 # Library stripping policies for .debuginfo configs: 148 # Library stripping policies for .debuginfo configs: