]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
build: check if dlopen(SONAME) works in configure
authorDaiki Ueno <ueno@gnu.org>
Sat, 6 Jul 2024 02:59:08 +0000 (11:59 +0900)
committerDaiki Ueno <ueno@gnu.org>
Sun, 7 Jul 2024 07:20:13 +0000 (16:20 +0900)
Signed-off-by: Daiki Ueno <ueno@gnu.org>
configure.ac

index 3f001998b49d4c3f5485e751e65dd3e7a8d91d75..8d8c4038b6c9e64d22a629033d30cfd068c653c2 100644 (file)
@@ -946,6 +946,27 @@ AM_CONDITIONAL(P11KIT_0_23_11_API, $PKG_CONFIG --atleast-version=0.23.11 p11-kit
 
 AM_CONDITIONAL(ENABLE_PKCS11, test "$with_p11_kit" != "no")
 
+save_LIBS=$LIBS
+LIBS="$LIBS -lm"
+LIBGNUTLS_CHECK_SONAME([m], [AC_LANG_PROGRAM([
+               #include <math.h>],[
+               trunc (0);])])
+LIBS="$save_LIBS"
+CFLAGS="$save_CFLAGS"
+
+AC_RUN_IFELSE(
+  [AC_LANG_PROGRAM(
+    [[#include <dlfcn.h>
+      #include <stdlib.h>
+    ]],
+    [[void *handle = dlopen("$M_LIBRARY_SONAME", RTLD_LAZY | RTLD_GLOBAL);
+      return handle != NULL ? 0 : 1;
+    ]])],
+  [ac_cv_dlopen_soname_works=yes],
+  [ac_cv_dlopen_soname_works=no],
+  [ac_cv_dlopen_soname_works=cross-compiling])
+
+AM_CONDITIONAL([ENABLE_DLOPEN], [test "$ac_cv_dlopen_soname_works" = yes])
 need_ltlibdl=no
 
 AC_ARG_WITH(tpm2,