FreeBSD's libc does not support backtrace(), but libexecinfo optionally replicates...
authorTobias Brunner <tobias@strongswan.org>
Fri, 7 Aug 2009 16:30:40 +0000 (18:30 +0200)
committerTobias Brunner <tobias@strongswan.org>
Fri, 7 Aug 2009 16:46:25 +0000 (18:46 +0200)
configure.in
src/libstrongswan/Makefile.am

index ef55b4b..666bcff 100644 (file)
@@ -845,12 +845,24 @@ dnl ===========================================
 
 AC_HEADER_STDBOOL
 
+dnl libraries needed on some platforms but not on others
+dnl ====================================================
 saved_LIBS=$LIBS
+
+dnl FreeBSD has dlopen integrated in libc, Linux needs libdl
 LIBS=""
 AC_SEARCH_LIBS(dlopen, dl, [DLLIB=$LIBS])
-LIBS=$saved_LIBS
 AC_SUBST(DLLIB)
 
+dnl glibc's backtrace() can be replicated on FreeBSD with libexecinfo
+LIBS=""
+AC_SEARCH_LIBS(backtrace, execinfo, [BTLIB=$LIBS])
+AC_CHECK_FUNCS(backtrace)
+AC_SUBST(BTLIB)
+
+LIBS=$saved_LIBS
+dnl ======================
+
 AC_MSG_CHECKING(for dladdr)
 AC_TRY_COMPILE(
        [#define _GNU_SOURCE
@@ -861,7 +873,6 @@ AC_TRY_COMPILE(
        [AC_MSG_RESULT([no])]
 )
 
-AC_CHECK_FUNCS(backtrace)
 AC_CHECK_FUNCS(prctl)
 AC_CHECK_FUNCS(gethostbyname_r)
 
index 096ef3b..294b2c7 100644 (file)
@@ -50,7 +50,7 @@ utils/mutex.c utils/mutex.h \
 utils/backtrace.c utils/backtrace.h \
 plugins/plugin_loader.c plugins/plugin_loader.h plugins/plugin.h
 
-libstrongswan_la_LIBADD = -lpthread $(DLLIB)
+libstrongswan_la_LIBADD = -lpthread $(DLLIB) $(BTLIB)
 
 INCLUDES = -I$(top_srcdir)/src/libstrongswan
 AM_CFLAGS = \