diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2012-04-20 12:13:24 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2012-04-23 19:17:41 +0200 |
commit | db8df57acd601ed084bd0122683e1bd066a4f143 (patch) | |
tree | b1125e8fc86bcb3648cab3a4e5cbef5717801826 /solenv | |
parent | 015283bb50e8d0d8127ea7c06deda202441f051e (diff) |
fixes for debug flags handling
- move using optimization, symbols (i.e. debug) and environment
cflags/cxxflags into one place
- --enable-dbgutils is independent from --enable-debug, and thus
also --enable-symbols, so it should not set debuglevel
- setting -g flag is controlled by --enable-symbols, not --enable-debug,
so it should be used also for selective -g enabling
- setting debug flags depending on debuglevel being 2 is certainly wrong
- do not let environment cflags/cxxflags disable optimization/symbols flags
completely, if one wants, it's possible to explicitly specify e.g. -g0,
but the current way does not make it easily possible to specify e.g.
-fcolor-diagnostics
- do not set debug flag globally now that it can be done selectively
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/LinkTarget.mk | 34 | ||||
-rw-r--r-- | solenv/gbuild/gbuild.mk | 2 | ||||
-rw-r--r-- | solenv/gbuild/platform/unxgcc.mk | 5 |
3 files changed, 15 insertions, 26 deletions
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index cde46b074997..31a4125e974c 100644 --- a/solenv/gbuild/LinkTarget.mk +++ b/solenv/gbuild/LinkTarget.mk @@ -35,24 +35,20 @@ # OBJCXXFLAGS # LDFLAGS -# this returns the cflags/cxxflags to use from either the environment or -# otherwise debug flags, if ENABLE_DEBUG is set or the LinkTarget is named -# in the list of libraries of ENABLE_DEBUG_ONLY - -ifeq ($(gb_DEBUGLEVEL),2) -define gb_LinkTarget__get_debugcflags -$(if $(CFLAGS),$(CFLAGS),$(gb_DEBUG_CFLAGS)) -endef - -define gb_LinkTarget__get_debugcxxflags -$(if $(CXXFLAGS),$(CXXFLAGS),$(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS)) -endef - +# debug flags, if ENABLE_SYMBOLS is set or the LinkTarget is named +# in the list of libraries of ENABLE_SYMBOLS_ONLY +ifeq ($(gb_ENABLE_SYMBOLS),$(true)) +gb_LinkTarget__get_symbolscflags=$(gb_DEBUG_CFLAGS) +gb_LinkTarget__get_symbolscxxflags=$(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS) else -gb_LinkTarget__get_debugcflags=$(if $(filter $(1),$(foreach lib,$(ENABLE_DEBUG_ONLY),$(call gb_Library_get_linktargetname,$(lib)))),$(gb_DEBUG_CFLAGS)) -gb_LinkTarget__get_debugcxxflags=$(if $(filter $(1),$(foreach lib,$(ENABLE_DEBUG_ONLY),$(call gb_Library_get_linktargetname,$(lib)))),$(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS)) +gb_LinkTarget__get_symbolscflags=$(if $(filter $(1),$(foreach lib,$(ENABLE_SYMBOLS_ONLY),$(call gb_Library_get_linktargetname,$(lib)))),$(gb_DEBUG_CFLAGS)) +gb_LinkTarget__get_symbolscxxflags=$(if $(filter $(1),$(foreach lib,$(ENABLE_SYMBOLS_ONLY),$(call gb_Library_get_linktargetname,$(lib)))),$(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS)) endif +# generic cflags/cxxflags to use (optimization flags, symbols (i.e. debug) flags, flags from environment) +gb_LinkTarget__get_cflags=$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_symbolscflags,$(1)) $(CFLAGS) +gb_LinkTarget__get_cxxflags=$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_symbolscxxflags,$(1)) $(CXXFLAGS) + # Overview of dependencies and tasks of LinkTarget # # target task depends on @@ -704,7 +700,7 @@ $(call gb_LinkTarget_get_clean_target,$(1)) : COBJECTS += $(2) $(call gb_LinkTarget_get_target,$(1)) : $(call gb_CObject_get_target,$(2)) $(call gb_CObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) -$(call gb_CObject_get_target,$(2)) : T_CFLAGS += $(call gb_LinkTarget__get_debugcflags,$(1)) $(3) +$(call gb_CObject_get_target,$(2)) : T_CFLAGS += $(call gb_LinkTarget__get_cflags,$(1)) $(3) $(call gb_CObject_get_target,$(2)) : \ OBJECTOWNER := $(call gb_Object__owner,$(2),$(1)) @@ -844,11 +840,11 @@ $(foreach grammar,$(2),$(call gb_LinkTarget_add_grammar,$(1),$(grammar))) endef define gb_LinkTarget_add_noexception_object -$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcxxflags,$(1))) +$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(1))) endef define gb_LinkTarget_add_exception_object -$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcxxflags,$(1))) +$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(1))) endef define gb_LinkTarget_add_linktarget_objects @@ -931,7 +927,7 @@ $(foreach obj,$(2),$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(obj),$(3 endef define gb_LinkTarget_add_generated_exception_object -$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcxxflags,$(1))) +$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(1))) endef define gb_LinkTarget_add_generated_exception_objects diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index b12c88fd9c02..8e5141b213f2 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -94,8 +94,6 @@ endif gb_DEBUGLEVEL := 0 ifneq ($(strip $(DEBUG)$(debug)),) gb_DEBUGLEVEL := 1 -else ifeq ($(gb_PRODUCT),$(false)) -gb_DEBUGLEVEL := 1 endif ifneq ($(strip $(DBGLEVEL)$(dbglevel)),) diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index 58bc7eb79ca1..8674cded4d27 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -210,11 +210,6 @@ gb_LinkTarget__RPATHS := \ gb_LinkTarget_CFLAGS := $(gb_CFLAGS) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) -ifeq ($(gb_SYMBOL),$(true)) -gb_LinkTarget_CXXFLAGS += $(GGDB2) -gb_LinkTarget_CFLAGS += $(GGDB2) -endif - # note that `cat $(extraobjectlist)` is needed to build with older gcc versions, e.g. 4.1.2 on SLED10 # we want to use @$(extraobjectlist) in the long run define gb_LinkTarget__command_dynamiclink |