diff options
-rw-r--r-- | config_host.mk.in | 2 | ||||
-rw-r--r-- | configure.in | 48 | ||||
-rw-r--r-- | solenv/gbuild/LinkTarget.mk | 27 | ||||
-rw-r--r-- | solenv/gbuild/Module.mk | 4 | ||||
-rw-r--r-- | solenv/gbuild/gbuild.mk | 31 | ||||
-rw-r--r-- | solenv/gbuild/platform/unxgcc.mk | 5 |
6 files changed, 54 insertions, 63 deletions
diff --git a/config_host.mk.in b/config_host.mk.in index 65affa921ab7..d4a5ea6b2f31 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -99,6 +99,7 @@ export DYNAMIC_CRT=@DYNAMIC_CRT@ export ENABLE_CAIRO_CANVAS=@ENABLE_CAIRO_CANVAS@ export ENABLE_CRASHDUMP=@ENABLE_CRASHDUMP@ export ENABLE_DBUS=@ENABLE_DBUS@ +export ENABLE_DEBUG_FOR=@ENABLE_DEBUG_FOR@ export ENABLE_DIRECTX=@ENABLE_DIRECTX@ export ENABLE_EVOAB2=@ENABLE_EVOAB2@ export ENABLE_GCONF=@ENABLE_GCONF@ @@ -135,7 +136,6 @@ export ENABLE_SCRIPTING_JAVASCRIPT=@ENABLE_SCRIPTING_JAVASCRIPT@ export ENABLE_SCRIPTING_PYTHON=@ENABLE_SCRIPTING_PYTHON@ export ENABLE_SILENT_MSI=@ENABLE_SILENT_MSI@ export ENABLE_SYMBOLS=@ENABLE_SYMBOLS@ -export ENABLE_SYMBOLS_FOR=@ENABLE_SYMBOLS_FOR@ export ENABLE_SYSTRAY_GTK=@ENABLE_SYSTRAY_GTK@ export ENABLE_XMLSEC=@ENABLE_XMLSEC@ export ENABLE_ZENITY=@ENABLE_ZENITY@ diff --git a/configure.in b/configure.in index 43a6544b1eae..750899b8fd99 100644 --- a/configure.in +++ b/configure.in @@ -610,12 +610,8 @@ AC_ARG_ENABLE(atl, AC_ARG_ENABLE(symbols, AS_HELP_STRING([--enable-symbols], [Include debugging symbols in output. WARNING - a complete build needs - a lot of space (roughly 10 GiB) and takes much longer (enables -g compiler flag). - You can also use this switch as follows: - --enable-symbols="all -sw/ -Library_sc" to enable symbols only for - the specified gbuild-build targets (all means everything, - prepended - means not to enable, / appended means everything in the directory, - there is no ordering and removal disabling takes precedence).]), + a lot of space (roughly 10 GiB) and takes much longer (enables -g + compiler flag for GCC or equivalent).]), ,) AC_ARG_ENABLE(werror, @@ -626,15 +622,25 @@ AC_ARG_ENABLE(werror, AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], - [Include debugging symbols from --enable-symbols plus extra debugging - code. Extra large build! (enables -g compiler flag and dmake debug=true) + [Include debugging symbols like with --enable-symbols, disable compiler + optimization and inlining plus extra debugging code like assertions. + Extra large build! (enables -g compiler flag and dmake debug=true) If you need even more verbose output, build a module with - "build -- debug=true dbglevel=2".])) + "build -- debug=true dbglevel=2". + You can also use this switch as follows: + --enable-debug="all -sw/ -Library_sc" to enable symbols only for + the specified gbuild-build targets (all means everything, - prepended + means not to enable, / appended means everything in the directory, + there is no ordering, more specific overrides more general, and + disabling takes precedence).])) AC_ARG_ENABLE(dbgutil, AS_HELP_STRING([--enable-dbgutil], [Include additional debugging utilities, such as assertions, object - counting, etc. Larger build. Independent from --enable-debug])) + counting, etc. Larger build. Independent from --enable-debug. + Note that this option makes the build ABI incompatible: + It is not possible to mix object files or libraries from a + --enable-dgbutil and a --disalbe-dbgutil build.])) AC_ARG_ENABLE(linkoo, AS_HELP_STRING([--disable-linkoo], @@ -3529,13 +3535,23 @@ dnl Set the ENABLE_DEBUG variable. dnl =================================================================== AC_MSG_CHECKING([whether to do a debug build]) if test -n "$enable_debug" && test "$enable_debug" != "no"; then - ENABLE_DEBUG="TRUE" + if test "$enable_debug" = "y" || test "$enable_debug" = "yes"; then + ENABLE_DEBUG="TRUE" + ENABLE_DEBUG_FOR=all + AC_MSG_RESULT([yes]) + else + ENABLE_DEBUG="" + ENABLE_DEBUG_FOR="$enable_debug" + AC_MSG_RESULT([for $enable_debug]) + fi AC_MSG_RESULT([yes]) else ENABLE_DEBUG="" + ENABLE_DEBUG_FOR="" AC_MSG_RESULT([no]) fi AC_SUBST(ENABLE_DEBUG) +AC_SUBST(ENABLE_DEBUG_FOR) dnl Determine whether to use linkoo for the smoketest installation @@ -3567,20 +3583,12 @@ dnl =================================================================== AC_MSG_CHECKING([whether to include symbols]) if test -n "$enable_symbols" -a "$enable_symbols" != "no"; then ENABLE_SYMBOLS="TRUE" - if test "$enable_symbols" = "y" || test "$enable_symbols" = "yes"; then - ENABLE_SYMBOLS_FOR=all - AC_MSG_RESULT([yes]) - else - ENABLE_SYMBOLS_FOR="$enable_symbols" - AC_MSG_RESULT([for $enable_symbols]) - fi + AC_MSG_RESULT([yes]) else ENABLE_SYMBOLS= - ENABLE_SYMBOLS_FOR= AC_MSG_RESULT([no]) fi AC_SUBST(ENABLE_SYMBOLS) -AC_SUBST(ENABLE_SYMBOLS_FOR) if test "$enable_headless" = "yes"; then # be sure to do not mess with uneeded stuff diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index 5d256152a287..37949d2f601d 100644 --- a/solenv/gbuild/LinkTarget.mk +++ b/solenv/gbuild/LinkTarget.mk @@ -37,27 +37,22 @@ # LDFLAGS # enable if: no "-TARGET" defined AND [module is enabled OR "TARGET" defined] -gb_LinkTarget__symbols_enabled = \ - $(and $(if $(filter -$(1),$(ENABLE_SYMBOLS_FOR)),,$(true)),\ +gb_LinkTarget__debug_enabled = \ + $(and $(if $(filter -$(1),$(ENABLE_DEBUG_FOR)),,$(true)),\ $(or $(gb_Module_CURRENTMODULE_DEBUG_ENABLED),\ - $(filter $(1),$(ENABLE_SYMBOLS_FOR)))) + $(filter $(1),$(ENABLE_DEBUG_FOR)))) -# debug flags, if ENABLE_SYMBOLS is set and the LinkTarget is named -# in the list of libraries of ENABLE_SYMBOLS_FOR -ifeq ($(gb_SYMBOL),$(true)) -gb_LinkTarget__get_symbolscflags=$(if $(call gb_LinkTarget__symbols_enabled,$(1)),$(gb_DEBUG_CFLAGS)) -gb_LinkTarget__get_symbolscxxflags=$(if $(call gb_LinkTarget__symbols_enabled,$(1)),$(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS)) -else -gb_LinkTarget__get_symbolscflags= -gb_LinkTarget__get_symbolscxxflags= -endif +# debug flags, if ENABLE_DEBUG is set and the LinkTarget is named +# in the list of libraries of ENABLE_DEBUG_FOR +gb_LinkTarget__get_debugcflags=$(if $(call gb_LinkTarget__debug_enabled,$(1)),$(gb_DEBUG_CFLAGS)) +gb_LinkTarget__get_debugcxxflags=$(if $(call gb_LinkTarget__debug_enabled,$(1)),$(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS)) # generic cflags/cxxflags to use (optimization flags, debug flags) # user supplied CFLAGS/CXXFLAGS override default debug/optimization flags -gb_LinkTarget__get_cflags=$(if $(CFLAGS),$(CFLAGS),$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_symbolscflags,$(1))) -gb_LinkTarget__get_objcflags=$(if $(OBJCFLAGS),$(OBJCFLAGS),$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_symbolscflags,$(1))) -gb_LinkTarget__get_cxxflags=$(if $(CXXFLAGS),$(CXXFLAGS),$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_symbolscxxflags,$(1))) -gb_LinkTarget__get_objcxxflags=$(if $(OBJCXXFLAGS),$(OBJCXXFLAGS),$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_symbolscxxflags,$(1))) +gb_LinkTarget__get_cflags=$(if $(CFLAGS),$(CFLAGS),$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcflags,$(1))) +gb_LinkTarget__get_objcflags=$(if $(OBJCFLAGS),$(OBJCFLAGS),$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcflags,$(1))) +gb_LinkTarget__get_cxxflags=$(if $(CXXFLAGS),$(CXXFLAGS),$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcxxflags,$(1))) +gb_LinkTarget__get_objcxxflags=$(if $(OBJCXXFLAGS),$(OBJCXXFLAGS),$(gb_COMPILEROPTFLAGS) $(call gb_LinkTarget__get_debugcxxflags,$(1))) # Overview of dependencies and tasks of LinkTarget # diff --git a/solenv/gbuild/Module.mk b/solenv/gbuild/Module.mk index 486a2fe7d2ac..e5f87f0f5cd4 100644 --- a/solenv/gbuild/Module.mk +++ b/solenv/gbuild/Module.mk @@ -180,8 +180,8 @@ showmodules : # enable if: no "-MODULE/" defined AND ["all" defined OR "MODULE/" defined] gb_Module__debug_enabled = \ - $(and $(if $(filter -$(1)/,$(ENABLE_SYMBOLS_FOR)),,$(true)),\ - $(filter all $(1)/,$(ENABLE_SYMBOLS_FOR))) + $(and $(if $(filter -$(1)/,$(ENABLE_DEBUG_FOR)),,$(true)),\ + $(filter all $(1)/,$(ENABLE_DEBUG_FOR))) define gb_Module_Module gb_Module_ALLMODULES += $(1) diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index 9d3ed3a37205..1457f3d1df84 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -79,19 +79,10 @@ else gb_PRODUCT := $(false) endif -gb_SYMBOL := $(false) -ifneq ($(strip $(ENABLE_SYMBOLS)),) +ifneq ($(strip $(ENABLE_SYMBOLS)$(enable_symbols)),) gb_SYMBOL := $(true) -# make sure symbols are enabled if overriden using the command line -ifeq ($(origin ENABLE_SYMBOLS),command line) -ENABLE_SYMBOLS_FOR = all -endif -endif -ifneq ($(strip $(enable_symbols)),) -gb_SYMBOL := $(true) -ifeq ($(origin enable_symbols),command line) -ENABLE_SYMBOLS_FOR = all -endif +else +gb_SYMBOL := $(false) endif gb_TIMELOG := 0 @@ -103,13 +94,13 @@ gb_DEBUGLEVEL := 0 ifneq ($(strip $(DEBUG)),) gb_DEBUGLEVEL := 1 ifeq ($(origin DEBUG),command line) -ENABLE_SYMBOLS_FOR = all +ENABLE_DEBUG_FOR := all endif endif ifneq ($(strip $(debug)),) gb_DEBUGLEVEL := 1 ifeq ($(origin debug),command line) -ENABLE_SYMBOLS_FOR = all +ENABLE_DEBUG_FOR := all endif endif ifeq ($(gb_PRODUCT),$(false)) @@ -119,13 +110,13 @@ endif ifneq ($(strip $(DBGLEVEL)),) gb_DEBUGLEVEL := $(strip $(DBGLEVEL)) ifeq ($(origin DBGLEVEL),command line) -ENABLE_SYMBOLS_FOR = all +ENABLE_DEBUG_FOR := all endif endif ifneq ($(strip $(dbglevel)),) gb_DEBUGLEVEL := $(strip $(dbglevel)) ifeq ($(origin dbglevel),command line) -ENABLE_SYMBOLS_FOR = all +ENABLE_DEBUG_FOR := all endif endif @@ -133,14 +124,6 @@ ifneq ($(gb_DEBUGLEVEL),0) gb_SYMBOL := $(true) endif -# if symbols are triggered by something else than --enable-symbols, -# make sure they are actually enabled -ifeq ($(gb_SYMBOL),$(true)) -ifeq ($(ENABLE_SYMBOLS_FOR),) -ENABLE_SYMBOLS_FOR = all -endif -endif - ifneq ($(nodep),) gb_FULLDEPS := $(false) else diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index 89665d60090a..2e793fd1f5d8 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -194,6 +194,11 @@ 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 |