solenv/gbuild/CppunitTest.mk     |   19 +++++++++++++++----
 solenv/gbuild/platform/macosx.mk |    2 +-
 solenv/gbuild/platform/unxgcc.mk |    2 +-
 3 files changed, 17 insertions(+), 6 deletions(-)

New commits:
commit ffec6130f2156ce3a71865c8c9408889e2291be5
Author:     Neil Roberts <[email protected]>
AuthorDate: Mon Dec 1 19:08:45 2025 +0100
Commit:     Neil Roberts <[email protected]>
CommitDate: Sat Dec 6 08:58:42 2025 +0100

    Fix setting the snuck in env vars when using lldb
    
    When using the CPPUNITTRACE make variable, the makefiles try to sneak in
    some arguments to the debugger to set the library path and some other
    things. It also set some arguments for malloc debugging which are
    hardcoded to be in gdb format for Unix platforms and lldb format for OSX
    platforms. That means that it won’t work if you use
    CPPUNITTRACE="lldb --" on Linux. This patch tries to fix that by instead
    making the malloc variables just be a debugger-neutral list of
    variables. That is then mapped to the right command for the chosen
    debugger using the $(foreach) function.
    
    Change-Id: Iebe131365c57e987deafaa7878f2f6dfebd4b6d0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194893
    Reviewed-by: Neil Roberts <[email protected]>
    Tested-by: Jenkins

diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk
index 59d7df5f7ac4..5b4a85e27b67 100644
--- a/solenv/gbuild/CppunitTest.mk
+++ b/solenv/gbuild/CppunitTest.mk
@@ -32,17 +32,28 @@ gb_CppunitTest_coredumpctl_run := $(SYSTEMD_RUN) --scope 
--user --unit="$$LIBO_T
 endif
 
 ifneq ($(strip $(CPPUNITTRACE)),)
+# sneak (a) setting the LD_LIBRARY_PATH, and (b) setting malloc debug flags, 
into the debugger command line
+gb_CppunitTest_CommonEnvVars := \
+       $(if $(PYTHONWARNINGS),PYTHONWARNINGS=$(PYTHONWARNINGS)) \
+       $(gb_CppunitTest_malloc_check)
+gb_CppunitTest_EnvVars := $(gb_CppunitTest_CPPTESTPRECOMMAND) \
+       $(gb_CppunitTest_CommonEnvVars)
+gb_PythonTest_EnvVars := $(gb_PythonTest_PRECOMMAND) \
+       $(gb_CppunitTest_CommonEnvVars)
 ifneq ($(filter gdb,$(CPPUNITTRACE)),)
-# sneak (a) setting the LD_LIBRARY_PATH, and (b) setting malloc debug flags, 
into the "gdb --args" command line
 gb_CppunitTest_GDBTRACE := $(subst gdb,\
-       gdb -return-child-result -ex "add-auto-load-safe-path $(INSTDIR)" -ex 
"set environment $(subst =, ,$(gb_CppunitTest_CPPTESTPRECOMMAND))" $(if 
$(PYTHONWARNINGS),-ex 'set environment PYTHONWARNINGS $(PYTHONWARNINGS)') 
$(gb_CppunitTest_malloc_check) $(gb_CppunitTest_DEBUGCPPUNIT),\
+       gdb -return-child-result -ex "add-auto-load-safe-path $(INSTDIR)" \
+       $(foreach var,$(gb_CppunitTest_EnvVars),-ex "set environment $(subst =, 
,$(var))") \
+       $(gb_CppunitTest_DEBUGCPPUNIT),\
        $(CPPUNITTRACE))
 gb_PythonTest_GDBTRACE := $(subst gdb,\
-       gdb -return-child-result -ex "add-auto-load-safe-path $(INSTDIR)" -ex 
"set environment $(subst =, ,$(gb_PythonTest_PRECOMMAND))" $(if 
$(PYTHONWARNINGS),-ex 'set environment PYTHONWARNINGS $(PYTHONWARNINGS)') 
$(gb_CppunitTest_malloc_check) $(gb_CppunitTest_DEBUGCPPUNIT),\
+       gdb -return-child-result -ex "add-auto-load-safe-path $(INSTDIR)" \
+       $(foreach var,$(gb_PythonTest_EnvVars),-ex "set environment $(subst =, 
,$(var))") \
+       $(gb_CppunitTest_DEBUGCPPUNIT),\
        $(CPPUNITTRACE))
 else ifneq ($(filter lldb,$(CPPUNITTRACE)),)
 gb_CppunitTest_GDBTRACE := $(subst lldb,\
-       lldb -o "env $(gb_CppunitTest_CPPTESTPRECOMMAND)" 
$(gb_CppunitTest_malloc_check),\
+       lldb $(foreach var,$(gb_CppunitTest_EnvVars),-o "env $(var)"),\
        $(CPPUNITTRACE))
 gb_PythonTest_GDBTRACE := $(gb_CppunitTest_GDBTRACE)
 else
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 7155fd03ba13..a39a9a0ef716 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -268,7 +268,7 @@ gb_CppunitTest_CPPTESTPRECOMMAND := \
        $(call 
gb_Helper_extend_ld_path,$(gb_Library_DLLDIR):$(WORKDIR)/UnpackedTarball/cppunit/src/cppunit/.libs)
 gb_CppunitTest_get_filename = libtest_$(1).dylib
 gb_CppunitTest_get_ilibfilename = $(gb_CppunitTest_get_filename)
-gb_CppunitTest_malloc_check := -o "env MallocScribble=1" -o "env 
MallocPreScribble=1"
+gb_CppunitTest_malloc_check := MallocScribble=1 MallocPreScribble=1
 
 define gb_CppunitTest_CppunitTest_platform
 $(call gb_LinkTarget_get_target,$(2)) : RPATH :=
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index bb90b6527fce..38ea32b63883 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -343,7 +343,7 @@ gb_CppunitTest_CPPTESTPRECOMMAND := \
     $(call 
gb_Helper_extend_ld_path,$(WORKDIR)/UnpackedTarball/cppunit/src/cppunit/.libs)
 gb_CppunitTest_get_filename = libtest_$(1).so
 gb_CppunitTest_get_ilibfilename = $(gb_CppunitTest_get_filename)
-gb_CppunitTest_malloc_check := -ex 'set environment MALLOC_CHECK_=2; set 
environment MALLOC_PERTURB_=153'
+gb_CppunitTest_malloc_check := MALLOC_CHECK_=2 MALLOC_PERTURB_=153
 
 define gb_CppunitTest_CppunitTest_platform
 $(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call 
gb_Library__get_rpath,$(call gb_LinkTarget__get_rpath_for_layer,NONE))

Reply via email to