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 <bpeeluk@yahoo.co.uk> Tested-by: Jenkins
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 :=
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user