From cacaa4a1616d7c0ea370ff197d816f706909bde5 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Fri, 4 May 2018 19:21:58 +0200 Subject: configure: Check separately for lib implementing dlopen and dlsym Sometimes the library probiding dlopen is not the same one providing dlsym. This is the case when compiling with AddressSanitizer enabled. In this case, AC_SEARCH_LIBS([dlopen]...) reports no lib is required, but tests using dlsym still require to link against -ldl. Change-Id: Ic619b0885688066b60c97caf1e2c7e5402c1d9f7 --- configure.ac | 6 ++++-- src/Makefile.am | 2 +- tests/Makefile.am | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 7f2aabd1..6f561767 100644 --- a/configure.ac +++ b/configure.ac @@ -58,8 +58,10 @@ AC_HEADER_STDC AC_CHECK_HEADERS(execinfo.h sys/select.h sys/socket.h syslog.h ctype.h netinet/tcp.h) # for src/conv.c AC_FUNC_ALLOCA -AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DL="$LIBS";LIBS=""]) -AC_SUBST(LIBRARY_DL) +AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DLOPEN="$LIBS";LIBS=""]) +AC_SUBST(LIBRARY_DLOPEN) +AC_SEARCH_LIBS([dlsym], [dl dld], [LIBRARY_DLSYM="$LIBS";LIBS=""]) +AC_SUBST(LIBRARY_DLSYM) # for src/backtrace.c AC_CHECK_LIB(execinfo, backtrace, BACKTRACE_LIB=-lexecinfo, BACKTRACE_LIB=) AC_SUBST(BACKTRACE_LIB) diff --git a/src/Makefile.am b/src/Makefile.am index 60b76b57..2a77d5e3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -49,7 +49,7 @@ libosmocore_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined if ENABLE_PLUGIN libosmocore_la_SOURCES += plugin.c -libosmocore_la_LIBADD += $(LIBRARY_DL) +libosmocore_la_LIBADD += $(LIBRARY_DLOPEN) endif if ENABLE_MSGFILE diff --git a/tests/Makefile.am b/tests/Makefile.am index cca128dd..70b5cb81 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -132,17 +132,17 @@ gb_bssgp_fc_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la \ $(top_builddir)/src/gsm/libosmogsm.la gb_gprs_bssgp_test_SOURCES = gb/gprs_bssgp_test.c -gb_gprs_bssgp_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DL) \ +gb_gprs_bssgp_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DLSYM) \ $(top_builddir)/src/gsm/libosmogsm.la gb_gprs_ns_test_SOURCES = gb/gprs_ns_test.c -gb_gprs_ns_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DL) \ +gb_gprs_ns_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DLSYM) \ $(top_builddir)/src/gsm/libosmogsm.la logging_logging_test_SOURCES = logging/logging_test.c fr_fr_test_SOURCES = fr/fr_test.c -fr_fr_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DL) \ +fr_fr_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DLSYM) \ $(top_builddir)/src/gsm/libosmogsm.la codec_codec_test_SOURCES = codec/codec_test.c -- cgit v1.2.3