diff options
Diffstat (limited to 'libnm/Makefile.am')
| -rw-r--r-- | libnm/Makefile.am | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/libnm/Makefile.am b/libnm/Makefile.am index 184bdbdc..ee64d4eb 100644 --- a/libnm/Makefile.am +++ b/libnm/Makefile.am @@ -137,17 +137,15 @@ GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM --fhead '\#include "nm-default.h"\ libnm_la_LIBADD = \ $(top_builddir)/libnm-core/libnm-core.la \ $(top_builddir)/introspection/libnmdbus.la \ - $(LIBDL) \ + $(DL_LIBS) \ $(GLIB_LIBS) \ $(UUID_LIBS) \ $(GUDEV_LIBS) -libnm_la_LDFLAGS = \ - $(CODE_COVERAGE_LDFLAGS) - SYMBOL_VIS_FILE=$(srcdir)/libnm.ver libnm_la_LDFLAGS = -Wl,--version-script=$(SYMBOL_VIS_FILE) \ + $(CODE_COVERAGE_LDFLAGS) \ -version-info "1:0:1" ### @@ -171,6 +169,10 @@ INTROSPECTION_COMPILER_ARGS = \ --includedir=$(top_srcdir)/libnm \ --includedir=$(top_builddir)/libnm +# Pass SANITIZER_ENV where a command that uses built libraries is +# executed, to suppress possible errors +INTROSPECTION_SCANNER_ENV = $(SANITIZER_ENV) + if HAVE_INTROSPECTION introspection_sources = \ $(libnm_core_headers) \ @@ -214,9 +216,16 @@ docs_sources = $(filter-out %/nm-core-enum-types.c,$(libnm_core_sources)) nm-setting-docs-overrides.xml: generate-plugin-docs.pl $(docs_sources) $(srcdir)/generate-plugin-docs.pl dbus $(top_srcdir)/libnm-core $@ +# When the python scripts loads libnm and the address sanitizers is +# enabled, we must LD_PRELOAD libasan otherwise it will complain that +# it was not loaded as initial library. nm-property-docs.xml: generate-setting-docs.py $(docs_sources) | NM-1.0.gir NM-1.0.typelib libnm.la export GI_TYPELIB_PATH=$(abs_builddir)$${GI_TYPELIB_PATH:+:$$GI_TYPELIB_PATH}; \ export LD_LIBRARY_PATH=$(abs_builddir)/.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}; \ + if echo $(CFLAGS) | grep -e -fsanitize=address; then \ + export LD_PRELOAD="$${LD_PRELOAD} $$(ldd $(abs_builddir)/.libs/libnm.so | grep libasan\.so\.. -o | head -n 1)"; \ + fi; \ + [ -n "$(SANITIZER_ENV)" ] && export $(SANITIZER_ENV) ; \ $(srcdir)/generate-setting-docs.py \ --gir $(builddir)/NM-1.0.gir \ --output $@ @@ -224,6 +233,10 @@ nm-property-docs.xml: generate-setting-docs.py $(docs_sources) | NM-1.0.gir NM-1 nm-setting-docs.xml: generate-setting-docs.py $(docs_sources) nm-setting-docs-overrides.xml | NM-1.0.gir NM-1.0.typelib libnm.la export GI_TYPELIB_PATH=$(abs_builddir)$${GI_TYPELIB_PATH:+:$$GI_TYPELIB_PATH}; \ export LD_LIBRARY_PATH=$(abs_builddir)/.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}; \ + if echo $(CFLAGS) | grep -e -fsanitize=address; then \ + export LD_PRELOAD="$${LD_PRELOAD} $$(ldd $(abs_builddir)/.libs/libnm.so | grep libasan\.so\.. -o | head -n 1)"; \ + fi; \ + [ -n "$(SANITIZER_ENV)" ] && export $(SANITIZER_ENV) ; \ $(srcdir)/generate-setting-docs.py \ --gir $(builddir)/NM-1.0.gir \ --overrides $(builddir)/nm-setting-docs-overrides.xml \ |