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))
