config_host.mk.in | 7 + configure.in | 116 +++++++++++++++++++++---- cppu/inc/com/sun/star/uno/Sequence.h | 2 cppu/inc/com/sun/star/uno/Type.h | 4 cppu/inc/typelib/typedescription.h | 4 cppuhelper/inc/cppuhelper/interfacecontainer.h | 6 - cppuhelper/inc/cppuhelper/propshlp.hxx | 2 cppuhelper/inc/cppuhelper/weak.hxx | 6 - sal/inc/rtl/string.hxx | 4 solenv/gbuild/CppunitTest.mk | 2 solenv/gbuild/Executable.mk | 2 solenv/gbuild/Library.mk | 2 solenv/gbuild/LinkTarget.mk | 72 ++++++++++----- solenv/gbuild/StaticLibrary.mk | 2 solenv/gbuild/gbuild.mk | 7 + solenv/gbuild/platform/WNT_INTEL_GCC.mk | 10 -- solenv/gbuild/platform/com_GCC_defs.mk | 25 +++++ solenv/gbuild/platform/unxgcc.mk | 15 --- 18 files changed, 204 insertions(+), 84 deletions(-)
New commits: commit 8d1fbba77fdec3cdc7c7b1e28f9560243cbbd3ff Author: LuboÅ¡ LuÅák <l.lu...@suse.cz> Date: Mon Apr 23 19:15:24 2012 +0200 doxygen warning fixes diff --git a/cppu/inc/com/sun/star/uno/Sequence.h b/cppu/inc/com/sun/star/uno/Sequence.h index 380bcb7..6095fdd 100644 --- a/cppu/inc/com/sun/star/uno/Sequence.h +++ b/cppu/inc/com/sun/star/uno/Sequence.h @@ -110,7 +110,7 @@ public: @param dummy SAL_NO_ACQUIRE to force obvious distinction to other constructors */ - inline Sequence( uno_Sequence * pSequence, __sal_NoAcquire ) + inline Sequence( uno_Sequence * pSequence, __sal_NoAcquire dummy ) SAL_THROW(()); /** Constructor: Creates a copy of given elements. diff --git a/cppu/inc/com/sun/star/uno/Type.h b/cppu/inc/com/sun/star/uno/Type.h index e11551e..b6afd2e 100644 --- a/cppu/inc/com/sun/star/uno/Type.h +++ b/cppu/inc/com/sun/star/uno/Type.h @@ -112,14 +112,14 @@ public: @param pType C type description reference @param dummy UNO_TYPE_NO_ACQUIRE to force obvious distinction to other constructors */ - inline Type( typelib_TypeDescriptionReference * pType, UnoType_NoAcquire ) SAL_THROW(()); + inline Type( typelib_TypeDescriptionReference * pType, UnoType_NoAcquire dummy ) SAL_THROW(()); /** Constructor: Type is (copy) constructed by given C type description reference without acquiring it. @param pType C type description reference @param dummy SAL_NO_ACQUIRE to force obvious distinction to other constructors */ - inline Type( typelib_TypeDescriptionReference * pType, __sal_NoAcquire ) SAL_THROW(()); + inline Type( typelib_TypeDescriptionReference * pType, __sal_NoAcquire dummy ) SAL_THROW(()); /** Copy constructor: Type is copy constructed by given type. diff --git a/cppu/inc/typelib/typedescription.h b/cppu/inc/typelib/typedescription.h index c4d957a..346836f 100644 --- a/cppu/inc/typelib/typedescription.h +++ b/cppu/inc/typelib/typedescription.h @@ -330,8 +330,6 @@ typedef struct _typelib_InterfaceMethodTypeDescription sal_Bool bOneWay; /** the interface description this method is a member of - - @since #i21150# */ struct _typelib_InterfaceTypeDescription * pInterface; /** the inherited direct base method (null for a method that is not @@ -367,8 +365,6 @@ typedef struct _typelib_InterfaceAttributeTypeDescription typelib_TypeDescriptionReference * pAttributeTypeRef; /** the interface description this attribute is a member of - - @since #i21150# */ struct _typelib_InterfaceTypeDescription * pInterface; /** the inherited direct base attribute (null for an attribute that is not diff --git a/cppuhelper/inc/cppuhelper/interfacecontainer.h b/cppuhelper/inc/cppuhelper/interfacecontainer.h index 8282893..77c39f6 100644 --- a/cppuhelper/inc/cppuhelper/interfacecontainer.h +++ b/cppuhelper/inc/cppuhelper/interfacecontainer.h @@ -331,7 +331,7 @@ public: The lifetime must be longer than the lifetime of this object. */ - inline OMultiTypeInterfaceContainerHelperVar( ::osl::Mutex & ) SAL_THROW(()); + inline OMultiTypeInterfaceContainerHelperVar( ::osl::Mutex & rMutex ) SAL_THROW(()); /** Deletes all containers. */ @@ -450,7 +450,7 @@ struct OBroadcastHelperVar /** Initialize the structur. bDispose and bInDispose are set to false. - @param rMutex the mutex reference. + @param rMutex_ the mutex reference. */ OBroadcastHelperVar( ::osl::Mutex & rMutex_ ) SAL_THROW(()) : rMutex( rMutex_ ) @@ -536,7 +536,7 @@ public: The lifetime must be longer than the lifetime of this object. */ - OMultiTypeInterfaceContainerHelper( ::osl::Mutex & ) SAL_THROW(()); + OMultiTypeInterfaceContainerHelper( ::osl::Mutex & rMutex ) SAL_THROW(()); /** Delete all containers. */ diff --git a/cppuhelper/inc/cppuhelper/propshlp.hxx b/cppuhelper/inc/cppuhelper/propshlp.hxx index 08dee88..2812617 100644 --- a/cppuhelper/inc/cppuhelper/propshlp.hxx +++ b/cppuhelper/inc/cppuhelper/propshlp.hxx @@ -253,7 +253,7 @@ public: The lifetime must be longer than the lifetime of this object. */ - OMultiTypeInterfaceContainerHelperInt32( ::osl::Mutex & ) SAL_THROW(()); + OMultiTypeInterfaceContainerHelperInt32( ::osl::Mutex & rMutex ) SAL_THROW(()); /** Delete all containers. */ diff --git a/cppuhelper/inc/cppuhelper/weak.hxx b/cppuhelper/inc/cppuhelper/weak.hxx index 8838797..99599ac 100644 --- a/cppuhelper/inc/cppuhelper/weak.hxx +++ b/cppuhelper/inc/cppuhelper/weak.hxx @@ -117,11 +117,13 @@ public: @param rObj dummy param */ - inline OWeakObject( const OWeakObject & ) SAL_THROW(()) + inline OWeakObject( const OWeakObject & rObj ) SAL_THROW(()) : com::sun::star::uno::XWeak() , m_refCount( 0 ) , m_pWeakConnectionPoint( 0 ) - {} + { + (void) rObj; + } /** Dummy assignment operator. Does not affect reference count. @return this OWeakObject diff --git a/sal/inc/rtl/string.hxx b/sal/inc/rtl/string.hxx index 9791a8c..1701b28 100644 --- a/sal/inc/rtl/string.hxx +++ b/sal/inc/rtl/string.hxx @@ -140,8 +140,10 @@ public: /** New string from OString data without acquiring it. Takeover of ownership. + The SAL_NO_ACQUIRE dummy parameter is only there to distinguish this + from other constructors. + @param str a OString data. - @param __sal_NoAcquire SAL_NO_ACQUIRE to distinguish from other ctors */ inline OString( rtl_String * str, __sal_NoAcquire ) SAL_THROW(()) { commit f46f1421277d2432e3aef6923df13fc220bd15b9 Author: LuboÅ¡ LuÅák <l.lu...@suse.cz> Date: Fri Apr 20 17:26:01 2012 +0200 if debug symbols are enabled indirectly, make sure they are actually built diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index 8e5141b..a37cb8b 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -105,6 +105,11 @@ endif endif ifneq ($(gb_DEBUGLEVEL),0) +# if symbols are triggered by something else than --enable-symbols, +# make sure they are actually enabled +ifneq ($(gb_SYMBOL),$(true)) +ENABLE_SYMBOLS_FOR = all +endif gb_SYMBOL := $(true) endif commit faa15bd23ef0e54cc677c2252123bddcb90b4f0d Author: LuboÅ¡ LuÅák <l.lu...@suse.cz> Date: Fri Apr 20 14:11:40 2012 +0200 configure checks for gcc options that clang does not support Maybe they'll be supported somewhen in the future, so do not hardcode them out. Also, gb_DEBUG_C(XX)FLAGS are apparently common GCC options, not platform-specific. diff --git a/config_host.mk.in b/config_host.mk.in index 64c62d8..0357ffb 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -189,6 +189,11 @@ export GUI_FOR_BUILD=@GUI_FOR_BUILD@ export GXX_INCLUDE_PATH=@GXX_INCLUDE_PATH@ export HAVE_CXX0X=@HAVE_CXX0X@ export HAVE_GCC_AVX=@HAVE_GCC_AVX@ +export HAVE_GCC_GGDB2=@HAVE_GCC_GGDB2@ +export HAVE_GCC_FINLINE_LIMIT=@HAVE_GCC_FINLINE_LIMIT@ +export HAVE_GCC_FNO_INLINE=@HAVE_GCC_FNO_INLINE@ +export HAVE_GCC_FNO_DEFAULT_INLINE=@HAVE_GCC_FNO_DEFAULT_INLINE@ +export HAVE_GCC_FNO_ENFORCE_EH_SPECS=@HAVE_GCC_FNO_ENFORCE_EH_SPECS@ export HAVE_GCC_NO_LONG_DOUBLE=@HAVE_GCC_NO_LONG_DOUBLE@ export HAVE_GCC_VISIBILITY_BROKEN=@HAVE_GCC_VISIBILITY_BROKEN@ export HAVE_GCC_VISIBILITY_FEATURE=@HAVE_GCC_VISIBILITY_FEATURE@ diff --git a/configure.in b/configure.in index 7633128..50e15a3 100644 --- a/configure.in +++ b/configure.in @@ -2540,6 +2540,10 @@ dnl =================================================================== dnl Is it actually Clang? dnl =================================================================== +COM_GCC_IS_CLANG= +HAVE_GCC_GGDB2= +HAVE_GCC_FINLINE_LIMIT= +HAVE_GCC_FNO_INLINE= if test "$GCC" = "yes"; then AC_MSG_CHECKING([whether GCC is actually Clang]) AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ @@ -2551,8 +2555,48 @@ if test "$GCC" = "yes"; then [AC_MSG_RESULT([yes]) COM_GCC_IS_CLANG=TRUE], [AC_MSG_RESULT([no])]) + + # check various GCC options that Clang does not support now but maybe + # will somewhen in the future, check them even for GCC, so that the flags + # are set + + AC_MSG_CHECKING([whether $CC supports -ggdb2]) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -ggdb2" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_GGDB2=TRUE ],[]) + CFLAGS=$save_CFLAGS + if test "$HAVE_GCC_GGDB2" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([whether $CC supports -finline-limit=0]) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -finline-limit=0" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FINLINE_LIMIT=TRUE ],[]) + CFLAGS=$save_CFLAGS + if test "$HAVE_GCC_FINLINE_LIMIT" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([whether $CC supports -fno-inline]) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -fno-inline" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FNO_INLINE=TRUE ],[]) + CFLAGS=$save_CFLAGS + if test "$HAVE_GCC_FNO_INLINE" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi fi AC_SUBST(COM_GCC_IS_CLANG) +AC_SUBST(HAVE_GCC_GGDB2) +AC_SUBST(HAVE_GCC_FINLINE_LIMIT) +AC_SUBST(HAVE_GCC_FNO_INLINE) HAVE_LD_BSYMBOLIC_FUNCTIONS= if test "$GCC" = "yes"; then @@ -4696,6 +4740,43 @@ fi AC_SUBST(HAVE_SFINAE_ANONYMOUS_BROKEN) dnl =================================================================== +dnl Clang++ tests +dnl =================================================================== + +HAVE_GCC_FNO_DEFAULT_INLINE= +HAVE_GCC_FNO_ENFORCE_EH_SPECS= +if test "$GCC" = "yes"; then + AC_MSG_CHECKING([whether $CXX supports -fno-default-inline]) + AC_LANG_PUSH([C++]) + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CFLAGS -Werror -fno-default-inline" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FNO_DEFAULT_INLINE=TRUE ],[]) + CXXFLAGS=$save_CXXFLAGS + AC_LANG_POP([C++]) + if test "$HAVE_GCC_FNO_DEFAULT_INLINE" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([whether $CXX supports -fno-enforce-eh-specs]) + AC_LANG_PUSH([C++]) + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CFLAGS -Werror -fno-enforce-eh-specs" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FNO_ENFORCE_EH_SPECS=TRUE ],[]) + CXXFLAGS=$save_CXXFLAGS + AC_LANG_POP([C++]) + if test "$HAVE_GCC_FNO_ENFORCE_EH_SPECS" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +fi +AC_SUBST(HAVE_GCC_FNO_DEFAULT_INLINE) +AC_SUBST(HAVE_GCC_FNO_ENFORCE_EH_SPECS) + + +dnl =================================================================== dnl allocator dnl =================================================================== AC_MSG_CHECKING([which memory allocator to use]) diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk index 305abf2..741d45f 100644 --- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk +++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk @@ -106,16 +106,6 @@ ifeq ($(MINGW_GCCLIB_EH),YES) gb_LinkTarget_LDFLAGS += -shared-libgcc endif -# clang does not know -ggdb2 -ifneq ($(COM_GCC_IS_CLANG),TRUE) -GGDB2=-ggdb2 -else -GGDB2=-g2 -endif - -gb_DEBUG_CFLAGS := $(GGDB2) -finline-limit=0 -fno-inline -gb_DEBUG_CXXFLAGS := -fno-default-inline - gb_STDLIBS := \ mingwthrd \ mingw32 \ diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk index cf4dcab..d84ab64 100644 --- a/solenv/gbuild/platform/com_GCC_defs.mk +++ b/solenv/gbuild/platform/com_GCC_defs.mk @@ -93,7 +93,7 @@ gb_LinkTarget_EXCEPTIONFLAGS := \ ifeq ($(gb_PRODUCT),$(true)) # Clang doesn't have this option -ifneq ($(COM_GCC_IS_CLANG),TRUE) +ifeq ($(HAVE_GCC_FNO_ENFORCE_EH_SPECS),TRUE) gb_LinkTarget_EXCEPTIONFLAGS += \ -fno-enforce-eh-specs endif @@ -112,6 +112,29 @@ gb_COMPILEROPTFLAGS := $(gb_COMPILERDEFAULTOPTFLAGS) endif gb_COMPILERNOOPTFLAGS := -O0 +# Clang does not know -ggdb2 or some other options +ifeq ($(HAVE_GCC_GGDB2),TRUE) +GGDB2=-ggdb2 +else +GGDB2=-g2 +endif + +ifeq ($(HAVE_GCC_FINLINE_LIMIT),TRUE) +FINLINE_LIMIT0=-finline-limit=0 +endif + +ifeq ($(HAVE_GCC_FNO_INLINE),TRUE) +FNO_INLINE=-fno-inline +endif + +ifeq ($(HAVE_GCC_FNO_DEFAULT_INLINE),TRUE) +FNO_DEFAULT_INLINE=-fno-default-inline +endif + +gb_DEBUG_CFLAGS := $(GGDB2) $(FINLINE_LIMIT0) $(FNO_INLINE) +gb_DEBUG_CXXFLAGS := $(FNO_DEFAULT_INLINE) + + gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index 8674cde..2681a33 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -181,16 +181,6 @@ gb_COMPILEROPTFLAGS := $(gb_COMPILERDEFAULTOPTFLAGS) gb_LINKEROPTFLAGS := -Wl,-O1 endif -# clang does not know -ggdb2 -ifneq ($(COM_GCC_IS_CLANG),TRUE) -GGDB2=-ggdb2 -else -GGDB2=-g2 -endif - -gb_DEBUG_CFLAGS := $(GGDB2) -finline-limit=0 -fno-inline -gb_DEBUG_CXXFLAGS := -fno-default-inline - gb_COMPILERNOOPTFLAGS := -O0 # LinkTarget class commit 922c879b6e8ca126cc23173765b043f849735333 Author: LuboÅ¡ LuÅák <l.lu...@suse.cz> Date: Fri Apr 20 13:26:00 2012 +0200 not much point in trying to be too precise about how much space -g build takes diff --git a/configure.in b/configure.in index 82256ec..7633128 100644 --- a/configure.in +++ b/configure.in @@ -610,7 +610,7 @@ AC_ARG_ENABLE(atl, AC_ARG_ENABLE(symbols, AS_HELP_STRING([--enable-symbols], [Include debugging symbols in output. WARNING - a complete build needs - 8 Gb of space and takes much longer (enables -g compiler flag). + 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 commit 0341d7b972e6efb5daac0c6ca38949fc35099b53 Author: LuboÅ¡ LuÅák <l.lu...@suse.cz> Date: Fri Apr 20 12:53:02 2012 +0200 more flexible --enable-symbols=<for> the argument given now can - be 'all', meaning everything - start with -, meaning not to enable symbols for that item - end with /, meaning everything in that toplevel directory - be a target of the form targettype_name, e.g. Library_swui Note that there is no ordering and removal takes precedence. diff --git a/config_host.mk.in b/config_host.mk.in index a3668d7..64c62d8 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -135,7 +135,7 @@ 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_ONLY=@ENABLE_SYMBOLS_ONLY@ +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 2bbcfdc..82256ec 100644 --- a/configure.in +++ b/configure.in @@ -612,8 +612,10 @@ AC_ARG_ENABLE(symbols, [Include debugging symbols in output. WARNING - a complete build needs 8 Gb of space and takes much longer (enables -g compiler flag). You can also use this switch as follows: - --enable-symbols="tl svx" to enable symbols only for the specified - gbuild-build libraries.]) + --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).]) [ Enabling symbols disables the stripping of the solver (--disable-strip-solver). @@ -3468,21 +3470,21 @@ dnl whether to include symbols into final build. 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="TRUE" - ENABLE_SYMBOLS_ONLY= + ENABLE_SYMBOLS_FOR=all + AC_MSG_RESULT([yes]) else - ENABLE_SYMBOLS="" - ENABLE_SYMBOLS_ONLY="$enable_symbols" + ENABLE_SYMBOLS_FOR="$enable_symbols" AC_MSG_RESULT([for $enable_symbols]) fi else ENABLE_SYMBOLS= - ENABLE_SYMBOLS_ONLY= + ENABLE_SYMBOLS_FOR= AC_MSG_RESULT([no]) fi AC_SUBST(ENABLE_SYMBOLS) -AC_SUBST(ENABLE_SYMBOLS_ONLY) +AC_SUBST(ENABLE_SYMBOLS_FOR) dnl Determine if the solver is to be stripped or not. dnl =================================================================== diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk index 258fc52..3c9cd82 100644 --- a/solenv/gbuild/CppunitTest.mk +++ b/solenv/gbuild/CppunitTest.mk @@ -308,7 +308,7 @@ $(foreach extra,$(2),$(call gb_CppunitTest__use_configuration,$(1),xcsxcu,$(extr endef define gb_CppunitTest__forward_to_Linktarget -gb_CppunitTest_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_CppunitTest__get_linktargetname,$$(1)),$$(2),$$(3)) +gb_CppunitTest_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_CppunitTest__get_linktargetname,$$(1)),$$(2),$$(3),CppunitTest_$$(1)) endef diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk index b0ba4c9..8d565b6 100644 --- a/solenv/gbuild/Executable.mk +++ b/solenv/gbuild/Executable.mk @@ -70,7 +70,7 @@ endef define gb_Executable_forward_to_Linktarget -gb_Executable_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Executable_get_linktargetname,$$(1)),$$(2),$$(3)) +gb_Executable_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Executable_get_linktargetname,$$(1)),$$(2),$$(3),Executable_$$(1)) endef diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk index 3601f8e..4ba764e 100644 --- a/solenv/gbuild/Library.mk +++ b/solenv/gbuild/Library.mk @@ -139,7 +139,7 @@ gb_Library__COMPONENTPREFIXES := \ OXT:./ \ define gb_Library__forward_to_Linktarget -gb_Library_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Library_get_linktargetname,$$(1)),$$(2),$$(3)) +gb_Library_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Library_get_linktargetname,$$(1)),$$(2),$$(3),Library_$$(1)) endef diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index 31a4125..98d7565 100644 --- a/solenv/gbuild/LinkTarget.mk +++ b/solenv/gbuild/LinkTarget.mk @@ -35,14 +35,48 @@ # OBJCXXFLAGS # LDFLAGS -# 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) + +# convert ENABLE_SYMBOLS_FOR from "all -sc/" syntax to a list of target names + +# all targets +gb_Symbols_get_all=$(foreach item,$(wildcard $(SRCDIR)/*/*.mk),$(basename $(notdir $(item)))) + +# all targets in a dir +gb_Symbols_expand_dir=$(foreach item,$(wildcard $(SRCDIR)/$(1)/*.mk),$(basename $(notdir $(item)))) + +# expand one item: all->all targets, foo/ -> all targets in foo/, otherwise the item itself +define gb_Symbols_expand_item +$(if $(filter all,$(1)),$(call gb_Symbols_get_all), + $(if $(findstring /,$(1)),$(call gb_Symbols_expand_dir,$(1)), + $(if $(findstring _,$(1)),$(1), + $(error no _ or / in --enable-debug item, prepend target type such as Library_ or append / for directory)))) +endef + +# list of items to enable debug for +define gb_Symbols_expand_debug +$(foreach item,$(1),$(if $(findstring -,$(item)),,$(call gb_Symbols_expand_item,$(item)))) +endef + +# list of items to not enable debug for +define gb_Symbols_expand_nodebug +$(foreach item,$(1),$(if $(findstring -,$(item)),$(call gb_Symbols_expand_item,$(patsubst -%,%,$(item))),)) +endef + +# add items to enable debug for, remove items to not enable debug for +# note that there is not ordering and removing takes precedence +gb_Symbols_create_debugfor=$(filter-out $(call gb_Symbols_expand_nodebug,$(1)),$(call gb_Symbols_expand_debug,$(1))) + +# convert the value +gb_ENABLE_SYMBOLS_FOR:=$(call gb_Symbols_create_debugfor,$(ENABLE_SYMBOLS_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 $(filter $(1),$(gb_ENABLE_SYMBOLS_FOR)),$(gb_DEBUG_CFLAGS)) +gb_LinkTarget__get_symbolscxxflags=$(if $(filter $(1),$(gb_ENABLE_SYMBOLS_FOR)),$(gb_DEBUG_CFLAGS) $(gb_DEBUG_CXXFLAGS)) else -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)) +gb_LinkTarget__get_symbolscflags= +gb_LinkTarget__get_symbolscxxflags= endif # generic cflags/cxxflags to use (optimization flags, symbols (i.e. debug) flags, flags from environment) @@ -700,7 +734,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_cflags,$(1)) $(3) +$(call gb_CObject_get_target,$(2)) : T_CFLAGS += $(call gb_LinkTarget__get_cflags,$(4)) $(3) $(call gb_CObject_get_target,$(2)) : \ OBJECTOWNER := $(call gb_Object__owner,$(2),$(1)) @@ -826,7 +860,7 @@ endef # gb_LinkTarget_add_grammar(<component>,<grammar file>) define gb_LinkTarget_add_grammar $(call gb_YaccTarget_YaccTarget,$(2)) -$(call gb_LinkTarget_add_generated_exception_object,$(1),YaccTarget/$(2)) +$(call gb_LinkTarget_add_generated_exception_object,$(1),YaccTarget/$(2),$(3)) $(call gb_LinkTarget_get_clean_target,$(1)) : $(call gb_YaccTarget_get_clean_target,$(2)) $(call gb_LinkTarget__add_internal_headers,$(1),$(call gb_YaccTarget_get_header_target,$(2))) $(call gb_LinkTarget__add_include,$(1),$(dir $(call gb_YaccTarget_get_header_target,$(2)))) @@ -836,15 +870,15 @@ endef # Add bison grammars to the build. # gb_LinkTarget_add_grammars(<component>,<grammar file> [<grammar file>*]) define gb_LinkTarget_add_grammars -$(foreach grammar,$(2),$(call gb_LinkTarget_add_grammar,$(1),$(grammar))) +$(foreach grammar,$(2),$(call gb_LinkTarget_add_grammar,$(1),$(grammar),$(4))) endef define gb_LinkTarget_add_noexception_object -$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(1))) +$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_NOEXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(3))) endef define gb_LinkTarget_add_exception_object -$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(1))) +$(call gb_LinkTarget_add_cxxobject,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(3))) endef define gb_LinkTarget_add_linktarget_objects @@ -885,7 +919,7 @@ $(call gb_LinkTarget__use_linktarget_objects,$(1),$(foreach exe,$(2),$(call gb_E endef define gb_LinkTarget_add_cobjects -$(foreach obj,$(2),$(call gb_LinkTarget_add_cobject,$(1),$(obj),$(3))) +$(foreach obj,$(2),$(call gb_LinkTarget_add_cobject,$(1),$(obj),$(3),$(4))) endef define gb_LinkTarget_add_cxxobjects @@ -905,16 +939,16 @@ $(foreach obj,$(2),$(call gb_LinkTarget_add_asmobject,$(1),$(obj),$(3))) endef define gb_LinkTarget_add_noexception_objects -$(foreach obj,$(2),$(call gb_LinkTarget_add_noexception_object,$(1),$(obj))) +$(foreach obj,$(2),$(call gb_LinkTarget_add_noexception_object,$(1),$(obj),$(4))) endef define gb_LinkTarget_add_exception_objects -$(foreach obj,$(2),$(call gb_LinkTarget_add_exception_object,$(1),$(obj))) +$(foreach obj,$(2),$(call gb_LinkTarget_add_exception_object,$(1),$(obj),$(4))) endef #only useful for building x64 libraries on windows define gb_LinkTarget_add_x64_generated_exception_objects -$(foreach obj,$(2),$(call gb_LinkTarget_add_generated_exception_object,$(1),$(obj))) +$(foreach obj,$(2),$(call gb_LinkTarget_add_generated_exception_object,$(1),$(obj),$(4))) $(foreach obj,$(2),$(eval $(call gb_GenCxxObject_get_target,$(obj)) : CXXOBJECT_X64 := YES)) endef @@ -927,11 +961,11 @@ $(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) $(call gb_LinkTarget__get_cxxflags,$(1))) +$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(call gb_LinkTarget__get_cxxflags,$(3))) endef define gb_LinkTarget_add_generated_exception_objects -$(foreach obj,$(2),$(call gb_LinkTarget_add_generated_exception_object,$(1),$(obj))) +$(foreach obj,$(2),$(call gb_LinkTarget_add_generated_exception_object,$(1),$(obj),$(4))) endef define gb_LinkTarget_set_targettype diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk index 3bf411b..9179958 100644 --- a/solenv/gbuild/StaticLibrary.mk +++ b/solenv/gbuild/StaticLibrary.mk @@ -75,7 +75,7 @@ $(call gb_Deliver_add_deliverable,$(call gb_StaticLibrary_get_target,$(1)),$(cal endef define gb_StaticLibrary_forward_to_Linktarget -gb_StaticLibrary_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_StaticLibrary_get_linktargetname,$$(1)),$$(2),$$(3)) +gb_StaticLibrary_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_StaticLibrary_get_linktargetname,$$(1)),$$(2),$$(3),StaticLibrary_$$(1)) endef commit db8df57acd601ed084bd0122683e1bd066a4f143 Author: LuboÅ¡ LuÅák <l.lu...@suse.cz> Date: Fri Apr 20 12:13:24 2012 +0200 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 diff --git a/config_host.mk.in b/config_host.mk.in index fe5fc87..a3668d7 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -74,7 +74,6 @@ export DBUS_LIBS=@DBUS_LIBS@ export DB_CPPLIB=@DB_CPPLIB@ export DB_LIB=@DB_LIB@ export debug=@ENABLE_DEBUG@ -export ENABLE_DEBUG_ONLY=@ENABLE_DEBUG_ONLY@ export DEFAULT_MOZILLA_TOOLKIT=@MOZILLA_TOOLKIT@ export DEFAULT_TO_ENGLISH_FOR_PACKING=yes export DIAGRAM_EXTENSION_PACK=@DIAGRAM_EXTENSION_PACK@ @@ -136,6 +135,7 @@ 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_ONLY=@ENABLE_SYMBOLS_ONLY@ 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 e6d8844..2bbcfdc 100644 --- a/configure.in +++ b/configure.in @@ -610,7 +610,10 @@ AC_ARG_ENABLE(atl, AC_ARG_ENABLE(symbols, AS_HELP_STRING([--enable-symbols], [Include debugging symbols in output. WARNING - a complete build needs - 8 Gb of space and takes much longer (enables -g compiler flag).]) + 8 Gb of space and takes much longer (enables -g compiler flag). + You can also use this switch as follows: + --enable-symbols="tl svx" to enable symbols only for the specified + gbuild-build libraries.]) [ Enabling symbols disables the stripping of the solver (--disable-strip-solver). @@ -637,9 +640,7 @@ AC_ARG_ENABLE(debug, [Include debugging symbols from --enable-symbols plus extra debugging code. 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". You can also use this switch as follows: - --enable-debug="tl svx" to enable debug only for the specified - gbuild-build libraries.])) + "build -- debug=true dbglevel=2".])) AC_ARG_ENABLE(dbgutil, AS_HELP_STRING([--enable-dbgutil], @@ -3426,25 +3427,17 @@ else fi AC_SUBST(EXTERNAL_WARNINGS_NOT_ERRORS) -dnl Set the ENABLE_DEBUG variable. (Activate --enable-symbols) +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 - if test "$enable_debug" = "y" || test "$enable_debug" = "yes"; then - ENABLE_DEBUG="TRUE" - ENABLE_DEBUG_ONLY= - else - ENABLE_DEBUG="" - ENABLE_DEBUG_ONLY="$enable_debug" - AC_MSG_RESULT([for $enable_debug]) - fi + ENABLE_DEBUG="TRUE" + AC_MSG_RESULT([yes]) else ENABLE_DEBUG="" - ENABLE_DEBUG_ONLY="" AC_MSG_RESULT([no]) fi AC_SUBST(ENABLE_DEBUG) -AC_SUBST(ENABLE_DEBUG_ONLY) dnl Determine whether to use linkoo for the smoketest installation @@ -3475,13 +3468,21 @@ dnl whether to include symbols into final build. dnl =================================================================== AC_MSG_CHECKING([whether to include symbols]) if test -n "$enable_symbols" -a "$enable_symbols" != "no"; then - ENABLE_SYMBOLS="TRUE" - AC_MSG_RESULT([yes]) + if test "$enable_symbols" = "y" || test "$enable_symbols" = "yes"; then + ENABLE_SYMBOLS="TRUE" + ENABLE_SYMBOLS_ONLY= + else + ENABLE_SYMBOLS="" + ENABLE_SYMBOLS_ONLY="$enable_symbols" + AC_MSG_RESULT([for $enable_symbols]) + fi else ENABLE_SYMBOLS= + ENABLE_SYMBOLS_ONLY= AC_MSG_RESULT([no]) fi AC_SUBST(ENABLE_SYMBOLS) +AC_SUBST(ENABLE_SYMBOLS_ONLY) dnl Determine if the solver is to be stripped or not. dnl =================================================================== diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index cde46b0..31a4125 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 b12c88f..8e5141b 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 58bc7eb..8674cde 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
_______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits