config_host.mk.in                                       |    1 +
 configure.ac                                            |    3 +++
 external/cppunit/ExternalProject_cppunit.mk             |    6 +-----
 external/gpgmepp/ExternalProject_gpgmepp.mk             |    2 +-
 external/hunspell/ExternalProject_hunspell.mk           |    6 +-----
 external/libnumbertext/ExternalProject_libnumbertext.mk |    6 +-----
 external/liborcus/ExternalProject_liborcus.mk           |    6 +-----
 external/libwps/ExternalProject_libwps.mk               |    6 +-----
 solenv/gbuild/platform/com_GCC_defs.mk                  |    8 ++++++++
 solenv/gbuild/platform/solaris.mk                       |    7 -------
 solenv/gbuild/platform/unxgcc.mk                        |    7 -------
 11 files changed, 18 insertions(+), 40 deletions(-)

New commits:
commit 7158acde7756a264c09e24e1cfe4c81db700b920
Author:     Stephan Bergmann <[email protected]>
AuthorDate: Thu Nov 4 11:03:11 2021 +0100
Commit:     Stephan Bergmann <[email protected]>
CommitDate: Thu Nov 4 12:49:44 2021 +0100

    Consolidate -D_GLIBCXX_DEBUG for --enable-dbgutil builds against libstdc++
    
    (this was meant as a prerequisite for enabling its -D_LIBCPP_DEBUG=1 
counterpart
    when building against libc++ on macOS, but which got stalled for now after
    running into the issue described at
    <https://lists.llvm.org/pipermail/libcxx-dev/2021-October/001222.html>
    "[libcxx-dev] Building a program with -D_LIBCPP_DEBUG=1 against a libc++ 
that is
    not itself built with that define")
    
    Change-Id: If466dce595a9311b2afbae41d5ddcaecc6f3c57b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124678
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <[email protected]>

diff --git a/config_host.mk.in b/config_host.mk.in
index ff8944af0cce..43f65dfce39a 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -280,6 +280,7 @@ export 
HAVE_GCC_STACK_CLASH_PROTECTION=@HAVE_GCC_STACK_CLASH_PROTECTION@
 export HAVE_GNUMAKE_FILE_FUNC=@HAVE_GNUMAKE_FILE_FUNC@
 export HAVE_LD_BSYMBOLIC_FUNCTIONS=@HAVE_LD_BSYMBOLIC_FUNCTIONS@
 export HAVE_LD_HASH_STYLE=@HAVE_LD_HASH_STYLE@
+export HAVE_LIBSTDCPP=@HAVE_LIBSTDCPP@
 export HAVE_POSIX_FALLOCATE=@HAVE_POSIX_FALLOCATE@
 export HAVE_WDEPRECATED_COPY_DTOR=@HAVE_WDEPRECATED_COPY_DTOR@
 export HELP_ONLINE=@HELP_ONLINE@
diff --git a/configure.ac b/configure.ac
index a2a831da535a..112b82b14384 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7126,6 +7126,7 @@ dnl Identify the C++ library
 dnl ===================================================================
 
 AC_MSG_CHECKING([what the C++ library is])
+HAVE_LIBSTDCPP=
 AC_LANG_PUSH([C++])
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <utility>
@@ -7135,6 +7136,7 @@ foo bar
 ]])],
     [CPP_LIBRARY=GLIBCXX
      cpp_library_name="GNU libstdc++"
+     HAVE_LIBSTDCPP=TRUE
     ],
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <utility>
@@ -7158,6 +7160,7 @@ foo bar
     AC_MSG_ERROR([Could not figure out what C++ library this is]))))
 AC_MSG_RESULT([$cpp_library_name])
 AC_LANG_POP([C++])
+AC_SUBST([HAVE_LIBSTDCPP])
 
 dnl ===================================================================
 dnl Check for gperf
diff --git a/external/cppunit/ExternalProject_cppunit.mk 
b/external/cppunit/ExternalProject_cppunit.mk
index e32bdb30f0b9..fee215adde59 100644
--- a/external/cppunit/ExternalProject_cppunit.mk
+++ b/external/cppunit/ExternalProject_cppunit.mk
@@ -30,11 +30,7 @@ else
 
 cppunit_CXXFLAGS=$(CXXFLAGS)
 
-ifneq (,$(filter ANDROID DRAGONFLY FREEBSD iOS LINUX NETBSD OPENBSD,$(OS)))
-ifneq (,$(gb_ENABLE_DBGUTIL))
-cppunit_CXXFLAGS+=-D_GLIBCXX_DEBUG
-endif
-endif
+cppunit_CXXFLAGS+=$(gb_COMPILERDEFS_STDLIB_DEBUG)
 
 ifneq (,$(call gb_LinkTarget__symbols_enabled,cppunit))
 cppunit_CXXFLAGS+=-g
diff --git a/external/gpgmepp/ExternalProject_gpgmepp.mk 
b/external/gpgmepp/ExternalProject_gpgmepp.mk
index 92348e426c80..a3166e94175e 100644
--- a/external/gpgmepp/ExternalProject_gpgmepp.mk
+++ b/external/gpgmepp/ExternalProject_gpgmepp.mk
@@ -65,7 +65,7 @@ $(call gb_ExternalProject_get_state_target,gpgmepp,build):
                   CXXFLAGS='$(CXXFLAGS) \
                                $(if $(ENABLE_OPTIMIZED), \
                                        
$(gb_COMPILEROPTFLAGS),$(gb_COMPILERNOOPTFLAGS)) \
-                               $(if $(ENABLE_DBGUTIL),-D_GLIBCXX_DEBUG) \
+                               $(gb_COMPILERDEFS_STDLIB_DEBUG) \
                                $(if $(call 
gb_Module__symbols_enabled,gpgmepp),$(gb_DEBUGINFO_FLAGS))' \
                   $(if $(filter LINUX,$(OS)), \
                                'LDFLAGS=-Wl$(COMMA)-z$(COMMA)origin \
diff --git a/external/hunspell/ExternalProject_hunspell.mk 
b/external/hunspell/ExternalProject_hunspell.mk
index 51b693b06e08..f45e2834f869 100644
--- a/external/hunspell/ExternalProject_hunspell.mk
+++ b/external/hunspell/ExternalProject_hunspell.mk
@@ -15,11 +15,7 @@ $(eval $(call gb_ExternalProject_register_targets,hunspell,\
 
 hunspell_CPPCLAGS=$(CPPFLAGS)
 
-ifneq (,$(filter ANDROID DRAGONFLY FREEBSD iOS LINUX NETBSD OPENBSD,$(OS)))
-ifneq (,$(gb_ENABLE_DBGUTIL))
-hunspell_CPPFLAGS+=-D_GLIBCXX_DEBUG
-endif
-endif
+hunspell_CPPFLAGS+=$(gb_COMPILERDEFS_STDLIB_DEBUG)
 
 hunspell_CXXFLAGS:=$(CXXFLAGS) $(gb_LTOFLAGS) \
        $(gb_EMSCRIPTEN_CPPFLAGS) \
diff --git a/external/libnumbertext/ExternalProject_libnumbertext.mk 
b/external/libnumbertext/ExternalProject_libnumbertext.mk
index 3094351aebf2..1473b5c136a3 100644
--- a/external/libnumbertext/ExternalProject_libnumbertext.mk
+++ b/external/libnumbertext/ExternalProject_libnumbertext.mk
@@ -18,11 +18,7 @@ $(eval $(call 
gb_ExternalProject_register_targets,libnumbertext,\
 
 libnumbertext_CXXFLAGS=$(CXXFLAGS) $(CXXFLAGS_CXX11)
 
-ifneq (,$(filter ANDROID DRAGONFLY FREEBSD iOS LINUX NETBSD OPENBSD,$(OS)))
-ifneq (,$(gb_ENABLE_DBGUTIL))
-libnumbertext_CPPFLAGS+=-D_GLIBCXX_DEBUG
-endif
-endif
+libnumbertext_CPPFLAGS+=$(gb_COMPILERDEFS_STDLIB_DEBUG)
 
 $(call gb_ExternalProject_get_state_target,libnumbertext,build):
        $(call gb_Trace_StartRange,libnumbertext,EXTERNAL)
diff --git a/external/liborcus/ExternalProject_liborcus.mk 
b/external/liborcus/ExternalProject_liborcus.mk
index 76a2a6afb1f2..3a51917c0a0c 100644
--- a/external/liborcus/ExternalProject_liborcus.mk
+++ b/external/liborcus/ExternalProject_liborcus.mk
@@ -58,11 +58,7 @@ endif
 # library (glibc), the NDK does offer the GNU C++ library as one of
 # the C++ libraries available, and we use it.
 #
-ifneq (,$(filter ANDROID DRAGONFLY FREEBSD iOS LINUX NETBSD OPENBSD,$(OS)))
-ifneq (,$(gb_ENABLE_DBGUTIL))
-liborcus_CPPFLAGS+=-D_GLIBCXX_DEBUG
-endif
-endif
+liborcus_CPPFLAGS+=$(gb_COMPILERDEFS_STDLIB_DEBUG)
 
 liborcus_CXXFLAGS=$(CXXFLAGS) $(gb_VISIBILITY_FLAGS) 
$(gb_VISIBILITY_FLAGS_CXX) $(CXXFLAGS_CXX11) -DBOOST_SYSTEM_NO_DEPRECATED
 liborcus_LDFLAGS=$(LDFLAGS) $(gb_LTOFLAGS)
diff --git a/external/libwps/ExternalProject_libwps.mk 
b/external/libwps/ExternalProject_libwps.mk
index 12e3c8719a47..954b85e6cec7 100644
--- a/external/libwps/ExternalProject_libwps.mk
+++ b/external/libwps/ExternalProject_libwps.mk
@@ -19,11 +19,7 @@ $(eval $(call gb_ExternalProject_use_externals,libwps,\
        revenge \
 ))
 
-ifneq (,$(filter ANDROID DRAGONFLY FREEBSD iOS LINUX NETBSD OPENBSD,$(OS)))
-ifneq (,$(gb_ENABLE_DBGUTIL))
-libwps_CPPFLAGS+=-D_GLIBCXX_DEBUG
-endif
-endif
+libwps_CPPFLAGS+=$(gb_COMPILERDEFS_STDLIB_DEBUG)
 
 libwps_CXXFLAGS=$(gb_CXXFLAGS) $(if 
$(ENABLE_OPTIMIZED),$(gb_COMPILEROPTFLAGS),$(gb_COMPILERNOOPTFLAGS))
 
diff --git a/solenv/gbuild/platform/com_GCC_defs.mk 
b/solenv/gbuild/platform/com_GCC_defs.mk
index de3359f5dbd2..25c8de98f2c6 100644
--- a/solenv/gbuild/platform/com_GCC_defs.mk
+++ b/solenv/gbuild/platform/com_GCC_defs.mk
@@ -49,6 +49,14 @@ gb_COMPILERDEFS := \
        -DCPPU_ENV=$(CPPU_ENV) \
        $(if $(filter EMSCRIPTEN,$(OS)),-U_FORTIFY_SOURCE) \
 
+# enable debug STL
+ifeq ($(gb_ENABLE_DBGUTIL),$(true))
+ifneq ($(HAVE_LIBSTDCPP),)
+gb_COMPILERDEFS_STDLIB_DEBUG = -D_GLIBCXX_DEBUG
+endif
+gb_COMPILERDEFS += $(gb_COMPILERDEFS_STDLIB_DEBUG)
+endif
+
 gb_CFLAGS_COMMON := \
        -Wall \
        -Wendif-labels \
diff --git a/solenv/gbuild/platform/solaris.mk 
b/solenv/gbuild/platform/solaris.mk
index e0ffc0d6df0b..3f9e0fde335e 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -53,13 +53,6 @@ gb_CXXFLAGS := \
        -Woverloaded-virtual \
        $(CXXFLAGS_CXX11) \
 
-# enable debug STL
-ifeq ($(gb_ENABLE_DBGUTIL),$(true))
-gb_COMPILERDEFS += \
-       -D_GLIBCXX_DEBUG \
-
-endif
-
 ifneq ($(strip $(SYSBASE)),)
 gb_CXXFLAGS += --sysroot=$(SYSBASE)
 gb_CFLAGS += --sysroot=$(SYSBASE)
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index 644301ac21b9..10ce62f891ba 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -58,13 +58,6 @@ gb_CXXFLAGS := \
        $(gb_CXX_LINKFLAGS) \
 
 
-# enable debug STL
-ifeq ($(gb_ENABLE_DBGUTIL),$(true))
-gb_COMPILERDEFS += \
-       -D_GLIBCXX_DEBUG \
-
-endif
-
 ifneq ($(strip $(SYSBASE)),)
 gb_CXXFLAGS += --sysroot=$(SYSBASE)
 gb_CFLAGS += --sysroot=$(SYSBASE)

Reply via email to