]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix dynlibmod link on rhel8 for -ldl inclusion.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 2 Feb 2021 12:18:18 +0000 (13:18 +0100)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 2 Feb 2021 12:18:18 +0000 (13:18 +0100)
configure
configure.ac
doc/Changelog

index 9d10e6ee742bcc7e41b799806bada8956e55e26d..c896bbc96d928ecc88ee9ff9f4ef26d7932e7315 100755 (executable)
--- a/configure
+++ b/configure
@@ -17236,7 +17236,66 @@ $as_echo "#define WITH_DYNLIBMODULE 1" >>confdefs.h
   DYNLIBMOD_HEADER='$(srcdir)/dynlibmod/dynlibmod.h'
 
   if test $on_mingw = "no"; then
-    DYNLIBMOD_EXTRALIBS="-ldl -export-dynamic"
+    # link with -ldl if not already there, for all executables because
+    # dlopen call is in the dynlib module.  For unbound executable, also
+    # export symbols.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+$as_echo_n "checking for library containing dlopen... " >&6; }
+if ${ac_cv_search_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' dl; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_dlopen=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_dlopen+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_dlopen+:} false; then :
+
+else
+  ac_cv_search_dlopen=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+$as_echo "$ac_cv_search_dlopen" >&6; }
+ac_res=$ac_cv_search_dlopen
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+    DYNLIBMOD_EXTRALIBS="-export-dynamic"
   else
     DYNLIBMOD_EXTRALIBS="-Wl,--export-all-symbols,--out-implib,libunbound.dll.a"
   fi
index ee9ff169641e79546894ac6643f3ec475cc70888..0b37bfc30fd929bbfde47bef506bc64a1fa03fb1 100644 (file)
@@ -642,7 +642,11 @@ if test x_$withval != x_no; then
   DYNLIBMOD_HEADER='$(srcdir)/dynlibmod/dynlibmod.h'
   AC_SUBST(DYNLIBMOD_HEADER)
   if test $on_mingw = "no"; then
-    DYNLIBMOD_EXTRALIBS="-ldl -export-dynamic"
+    # link with -ldl if not already there, for all executables because
+    # dlopen call is in the dynlib module.  For unbound executable, also
+    # export symbols.
+    AC_SEARCH_LIBS([dlopen], [dl])
+    DYNLIBMOD_EXTRALIBS="-export-dynamic"
   else
     DYNLIBMOD_EXTRALIBS="-Wl,--export-all-symbols,--out-implib,libunbound.dll.a"
   fi
index 690b0b2687fd7e6444bd15221e74a8171599c04f..fcf84deb5c66eab051cc1cbfb962f6d4cb07572e 100644 (file)
@@ -1,5 +1,6 @@
 2 February 2021: Wouter
        - branch-1.13.1 is created, with release-1.13.1rc1 tag.
+       - Fix dynlibmod link on rhel8 for -ldl inclusion.
 
 1 February 2021: George
        - Attempt to fix NULL keys in the reuse_tcp tree; relates to #411.