summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2012-04-20 12:13:24 +0200
committerLuboš Luňák <l.lunak@suse.cz>2012-04-23 19:17:41 +0200
commitdb8df57acd601ed084bd0122683e1bd066a4f143 (patch)
treeb1125e8fc86bcb3648cab3a4e5cbef5717801826 /solenv
parent015283bb50e8d0d8127ea7c06deda202441f051e (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.mk34
-rw-r--r--solenv/gbuild/gbuild.mk2
-rw-r--r--solenv/gbuild/platform/unxgcc.mk5
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