7157296: FDS: ENABLE_FULL_DEBUG_SYMBOLS flag should only affect OPT builds
Build option FULL_DEBUG_SYMBOLS=0 only affects OPT builds. Finish enabling ENABLE_FULL_DEBUG_SYMBOLS flag on Windows. Reviewed-by: ohair, jmelvin, sspitsyn
This commit is contained in:
parent
e35eef1257
commit
f2364fbf5c
@ -73,7 +73,36 @@ SCRIPT_SUFFIX =
|
|||||||
# CC compiler object code output directive flag value
|
# CC compiler object code output directive flag value
|
||||||
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
||||||
|
|
||||||
ENABLE_FULL_DEBUG_SYMBOLS ?= 1
|
# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
|
||||||
|
# enabled with debug info files ZIP'ed to save space. For VARIANT !=
|
||||||
|
# OPT builds, FDS is always enabled, after all a debug build without
|
||||||
|
# debug info isn't very useful. The ZIP_DEBUGINFO_FILES option only has
|
||||||
|
# meaning when FDS is enabled.
|
||||||
|
#
|
||||||
|
# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
|
||||||
|
# disabled for a VARIANT == OPT build.
|
||||||
|
#
|
||||||
|
# Note: Use of a different variable name for the FDS override option
|
||||||
|
# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
|
||||||
|
# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
|
||||||
|
# in options via environment variables, use of distinct variables
|
||||||
|
# prevents strange behaviours. For example, in a VARIANT != OPT build,
|
||||||
|
# the FULL_DEBUG_SYMBOLS environment variable will be 0, but the
|
||||||
|
# ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If the same
|
||||||
|
# variable name is used, then different values can be picked up by
|
||||||
|
# different parts of the build. Just to be clear, we only need two
|
||||||
|
# variable names because the incoming option value can be overridden
|
||||||
|
# in some situations, e.g., a VARIANT != OPT build.
|
||||||
|
|
||||||
|
ifeq ($(VARIANT), OPT)
|
||||||
|
FULL_DEBUG_SYMBOLS ?= 1
|
||||||
|
ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
|
||||||
|
else
|
||||||
|
# debug variants always get Full Debug Symbols (if available)
|
||||||
|
ENABLE_FULL_DEBUG_SYMBOLS = 1
|
||||||
|
endif
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
|
||||||
# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
|
# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
|
||||||
|
|
||||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
@ -122,7 +151,9 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|||||||
_JUNK_ := $(shell \
|
_JUNK_ := $(shell \
|
||||||
echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
|
echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
|
||||||
|
|
||||||
ZIP_DEBUGINFO_FILES ?= 1
|
# HACK: disable ZIP_DEBUGINFO_FILES by default until install repo
|
||||||
|
# changes are promoted
|
||||||
|
ZIP_DEBUGINFO_FILES ?= 0
|
||||||
|
|
||||||
_JUNK_ := $(shell \
|
_JUNK_ := $(shell \
|
||||||
echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
|
echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
|
||||||
|
@ -73,7 +73,36 @@ SCRIPT_SUFFIX =
|
|||||||
# CC compiler object code output directive flag value
|
# CC compiler object code output directive flag value
|
||||||
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
||||||
|
|
||||||
ENABLE_FULL_DEBUG_SYMBOLS ?= 1
|
# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
|
||||||
|
# enabled with debug info files ZIP'ed to save space. For VARIANT !=
|
||||||
|
# OPT builds, FDS is always enabled, after all a debug build without
|
||||||
|
# debug info isn't very useful. The ZIP_DEBUGINFO_FILES option only has
|
||||||
|
# meaning when FDS is enabled.
|
||||||
|
#
|
||||||
|
# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
|
||||||
|
# disabled for a VARIANT == OPT build.
|
||||||
|
#
|
||||||
|
# Note: Use of a different variable name for the FDS override option
|
||||||
|
# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
|
||||||
|
# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
|
||||||
|
# in options via environment variables, use of distinct variables
|
||||||
|
# prevents strange behaviours. For example, in a VARIANT != OPT build,
|
||||||
|
# the FULL_DEBUG_SYMBOLS environment variable will be 0, but the
|
||||||
|
# ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If the same
|
||||||
|
# variable name is used, then different values can be picked up by
|
||||||
|
# different parts of the build. Just to be clear, we only need two
|
||||||
|
# variable names because the incoming option value can be overridden
|
||||||
|
# in some situations, e.g., a VARIANT != OPT build.
|
||||||
|
|
||||||
|
ifeq ($(VARIANT), OPT)
|
||||||
|
FULL_DEBUG_SYMBOLS ?= 1
|
||||||
|
ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
|
||||||
|
else
|
||||||
|
# debug variants always get Full Debug Symbols (if available)
|
||||||
|
ENABLE_FULL_DEBUG_SYMBOLS = 1
|
||||||
|
endif
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
|
||||||
# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
|
# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
|
||||||
|
|
||||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
@ -130,7 +159,9 @@ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|||||||
_JUNK_ := $(shell \
|
_JUNK_ := $(shell \
|
||||||
echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
|
echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
|
||||||
|
|
||||||
ZIP_DEBUGINFO_FILES ?= 1
|
# HACK: disable ZIP_DEBUGINFO_FILES by default until install repo
|
||||||
|
# changes are promoted
|
||||||
|
ZIP_DEBUGINFO_FILES ?= 0
|
||||||
|
|
||||||
_JUNK_ := $(shell \
|
_JUNK_ := $(shell \
|
||||||
echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
|
echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
|
||||||
|
@ -76,15 +76,45 @@ endif
|
|||||||
EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH)
|
EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH)
|
||||||
|
|
||||||
# Full Debug Symbols has been enabled on Windows since JDK1.4.1.
|
# Full Debug Symbols has been enabled on Windows since JDK1.4.1.
|
||||||
# Default is enabled with debug info files ZIP'ed to save space.
|
# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
|
||||||
|
# enabled with debug info files ZIP'ed to save space. For VARIANT !=
|
||||||
|
# OPT builds, FDS is always enabled, after all a debug build without
|
||||||
|
# debug info isn't very useful. The ZIP_DEBUGINFO_FILES option only has
|
||||||
|
# meaning when FDS is enabled.
|
||||||
|
#
|
||||||
|
# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
|
||||||
|
# disabled for a VARIANT == OPT build.
|
||||||
|
#
|
||||||
|
# Note: Use of a different variable name for the FDS override option
|
||||||
|
# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
|
||||||
|
# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
|
||||||
|
# in options via environment variables, use of distinct variables
|
||||||
|
# prevents strange behaviours. For example, in a VARIANT != OPT build,
|
||||||
|
# the FULL_DEBUG_SYMBOLS environment variable will be 0, but the
|
||||||
|
# ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If the same
|
||||||
|
# variable name is used, then different values can be picked up by
|
||||||
|
# different parts of the build. Just to be clear, we only need two
|
||||||
|
# variable names because the incoming option value can be overridden
|
||||||
|
# in some situations, e.g., a VARIANT != OPT build.
|
||||||
|
|
||||||
ENABLE_FULL_DEBUG_SYMBOLS ?= 1
|
ifeq ($(VARIANT), OPT)
|
||||||
|
FULL_DEBUG_SYMBOLS ?= 1
|
||||||
|
ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
|
||||||
|
else
|
||||||
|
# debug variants always get Full Debug Symbols (if available)
|
||||||
|
ENABLE_FULL_DEBUG_SYMBOLS = 1
|
||||||
|
endif
|
||||||
|
_JUNK_ := $(shell \
|
||||||
|
echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
|
||||||
|
|
||||||
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
ZIP_DEBUGINFO_FILES ?= 1
|
# HACK: disable ZIP_DEBUGINFO_FILES by default until install repo
|
||||||
|
# changes are promoted
|
||||||
|
ZIP_DEBUGINFO_FILES ?= 0
|
||||||
else
|
else
|
||||||
ZIP_DEBUGINFO_FILES=0
|
ZIP_DEBUGINFO_FILES=0
|
||||||
endif
|
endif
|
||||||
|
_JUNK_ := $(shell echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
|
||||||
|
|
||||||
# C Compiler flag definitions
|
# C Compiler flag definitions
|
||||||
|
|
||||||
@ -224,7 +254,9 @@ ifeq ($(CC_VERSION),msvc)
|
|||||||
# All builds get the same runtime setting
|
# All builds get the same runtime setting
|
||||||
CFLAGS_COMMON += $(MS_RUNTIME_OPTION) $(CFLAGS_$(COMPILER_VERSION))
|
CFLAGS_COMMON += $(MS_RUNTIME_OPTION) $(CFLAGS_$(COMPILER_VERSION))
|
||||||
|
|
||||||
LDEBUG = /debug
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
|
LDEBUG = /debug
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(VTUNE_SUPPORT), true)
|
ifeq ($(VTUNE_SUPPORT), true)
|
||||||
OTHER_CFLAGS = -Z7 -Ox
|
OTHER_CFLAGS = -Z7 -Ox
|
||||||
@ -258,7 +290,9 @@ CPPFLAGS_COMMON += -DWIN32_LEAN_AND_MEAN
|
|||||||
#
|
#
|
||||||
# Output options (use specific filenames to avoid parallel compile errors)
|
# Output options (use specific filenames to avoid parallel compile errors)
|
||||||
#
|
#
|
||||||
CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
|
CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Use -wdNNNN to disable warning NNNN.
|
# Use -wdNNNN to disable warning NNNN.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
@ -167,17 +167,23 @@ else # LIBRARY
|
|||||||
# build it into $(OBJDIR) so that the other generated files get put
|
# build it into $(OBJDIR) so that the other generated files get put
|
||||||
# there, then copy just the DLL (and MAP file) to the requested directory.
|
# there, then copy just the DLL (and MAP file) to the requested directory.
|
||||||
#
|
#
|
||||||
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
|
MAP_OPTION="-map:$(OBJDIR)/$(LIBRARY).map"
|
||||||
|
endif
|
||||||
|
|
||||||
$(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lcf
|
$(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lcf
|
||||||
@$(prep-target)
|
@$(prep-target)
|
||||||
@$(MKDIR) -p $(OBJDIR)
|
@$(MKDIR) -p $(OBJDIR)
|
||||||
$(LINK) -dll -out:$(OBJDIR)/$(@F) \
|
$(LINK) -dll -out:$(OBJDIR)/$(@F) \
|
||||||
-map:$(OBJDIR)/$(LIBRARY).map \
|
$(MAP_OPTION) \
|
||||||
$(LFLAGS) @$(OBJDIR)/$(LIBRARY).lcf \
|
$(LFLAGS) @$(OBJDIR)/$(LIBRARY).lcf \
|
||||||
$(OTHER_LCF) $(LDLIBS)
|
$(OTHER_LCF) $(LDLIBS)
|
||||||
$(CP) $(OBJDIR)/$(@F) $@
|
$(CP) $(OBJDIR)/$(@F) $@
|
||||||
@$(call binary_file_verification,$@)
|
@$(call binary_file_verification,$@)
|
||||||
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
$(CP) $(OBJDIR)/$(LIBRARY).map $(@D)
|
$(CP) $(OBJDIR)/$(LIBRARY).map $(@D)
|
||||||
$(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D)
|
$(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D)
|
||||||
|
endif
|
||||||
|
|
||||||
endif # LIBRARY
|
endif # LIBRARY
|
||||||
|
|
||||||
|
@ -171,6 +171,10 @@ ifeq ($(PLATFORM), windows)
|
|||||||
@$(prep-target)
|
@$(prep-target)
|
||||||
$(SED) 's%IMVERSION%$(IMVERSION)%g;s%PROGRAM%$(PROGRAM)%g' $< > $@
|
$(SED) 's%IMVERSION%$(IMVERSION)%g;s%PROGRAM%$(PROGRAM)%g' $< > $@
|
||||||
|
|
||||||
|
ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
||||||
|
MAP_OPTION="-map:$(OBJDIR)/$(PROGRAM).map"
|
||||||
|
endif
|
||||||
|
|
||||||
# We used a hand-crafted manifest file for all executables.
|
# We used a hand-crafted manifest file for all executables.
|
||||||
# It is tweaked to embed the build number and executable name.
|
# It is tweaked to embed the build number and executable name.
|
||||||
# Use ";#2" for .dll and ";#1" for .exe in the MT command below:
|
# Use ";#2" for .dll and ";#1" for .exe in the MT command below:
|
||||||
@ -179,7 +183,7 @@ ifeq ($(PLATFORM), windows)
|
|||||||
@set -- $?; \
|
@set -- $?; \
|
||||||
$(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
|
$(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
|
||||||
$(LINK) -out:$@ /STACK:$(STACK_SIZE) \
|
$(LINK) -out:$@ /STACK:$(STACK_SIZE) \
|
||||||
-map:$(OBJDIR)/$(PROGRAM).map $(LFLAGS) $(LDFLAGS) \
|
$(MAP_OPTION) $(LFLAGS) $(LDFLAGS) \
|
||||||
@$(OBJDIR)/$(PROGRAM).lcf $(LDLIBS)
|
@$(OBJDIR)/$(PROGRAM).lcf $(LDLIBS)
|
||||||
ifdef MT
|
ifdef MT
|
||||||
$(MT) /manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1
|
$(MT) /manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user