summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins2 <jenkins2@gerrit.asterisk.org>2018-03-19 10:02:14 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2018-03-19 10:02:14 -0500
commita12976e20ac5424ab2ad2a2cf7a47970542ee43c (patch)
tree7c1f1cc232a39e01e215739683d2a7bc093eb069
parentc29b5389c546d08d9f8426f0c176b45a19a0b6d8 (diff)
parent36c8885c66fe4e40692ae1534651a03aac6a2ae8 (diff)
Merge "BuildSystem: Enable dladdr on non-Linux platforms like FreeBSD."
-rwxr-xr-xconfigure35
-rw-r--r--configure.ac17
2 files changed, 52 insertions, 0 deletions
diff --git a/configure b/configure
index afe61aafd..634666f13 100755
--- a/configure
+++ b/configure
@@ -19463,6 +19463,41 @@ rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=${old_LIBS}
+# re-check without -ldl
+# Non-Linux platforms like FreeBSD and NetBSD do not need a library libdl.so.
+if test "${PBX_DLADDR}" = "0"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dladdr in dlfcn.h without -ldl" >&5
+$as_echo_n "checking for dladdr in dlfcn.h without -ldl... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _GNU_SOURCE 1
+#include <dlfcn.h>
+int
+main ()
+{
+dladdr((void *)0, (void *)0)
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ PBX_DLADDR=1
+
+
+$as_echo "#define HAVE_DLADDR 1" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
# PKGCONFIG is used in later tests
diff --git a/configure.ac b/configure.ac
index 4b9b83038..6ed4fc848 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1460,6 +1460,23 @@ AC_LINK_IFELSE(
)
LIBS=${old_LIBS}
+# re-check without -ldl
+# Non-Linux platforms like FreeBSD and NetBSD do not need a library libdl.so.
+if test "${PBX_DLADDR}" = "0"; then
+ AC_MSG_CHECKING(for dladdr in dlfcn.h without -ldl)
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([#define _GNU_SOURCE 1
+#include <dlfcn.h>],
+ [dladdr((void *)0, (void *)0)]
+ )],
+ AC_MSG_RESULT(yes)
+ PBX_DLADDR=1
+ AC_SUBST([PBX_DLADDR])
+ AC_DEFINE([HAVE_DLADDR], 1, [Define to 1 if your system has the dladdr() GNU extension]),
+ AC_MSG_RESULT(no)
+ )
+fi
+
# PKGCONFIG is used in later tests
PKG_PROG_PKG_CONFIG()