Mon Dec 18 15:28:49 CET 2006 Paolo Molaro <lupus@ximian.com>
authorPaolo Molaro <lupus@oddwiz.org>
Mon, 18 Dec 2006 14:29:29 +0000 (14:29 -0000)
committerPaolo Molaro <lupus@oddwiz.org>
Mon, 18 Dec 2006 14:29:29 +0000 (14:29 -0000)
* configure.in: detection code for dlopen ().

svn path=/trunk/mono/; revision=69661

ChangeLog
configure.in

index 851d775b190c9c79ad106fbf9412d13aee40c009..6471f9787df91c15f7797b51bc1ff8e756077a00 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,8 @@
 
+Mon Dec 18 15:28:49 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * configure.in: detection code for dlopen ().
+
 Mon Dec 11 10:23:18 CET 2006 Paolo Molaro <lupus@ximian.com>
 
        * configure.in, mono.pc.in, */Makefile.am: istall the header
index 99a6748aa318b6a6903c95aecbb019d6fa288c0c..a77de96a342f9570d777fa4201b89b742b13b3b9 100644 (file)
@@ -682,6 +682,41 @@ dnl
 
 if test x$platform_win32 = xno; then
 
+       dnl dynamic loader support
+       AC_CHECK_FUNC(dlopen, DL_LIB="",
+               AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl", dl_support=no)
+       )
+       if test x$dl_support = xno; then
+               AC_MSG_WARN([No dynamic loading support available])
+       else
+               LIBS="$LIBS $DL_LIB"
+               AC_DEFINE(HAVE_DL_LOADER,1,[dlopen-based dynamic loader available])
+               dnl from glib's configure.in
+               AC_CACHE_CHECK([for preceeding underscore in symbols],
+                       mono_cv_uscore,[
+                       AC_TRY_RUN([#include <dlfcn.h>
+                       int mono_underscore_test (void) { return 42; }
+                       int main() {
+                         void *f1 = (void*)0, *f2 = (void*)0, *handle;
+                         handle = dlopen ((void*)0, 0);
+                         if (handle) {
+                           f1 = dlsym (handle, "mono_underscore_test");
+                           f2 = dlsym (handle, "_mono_underscore_test");
+                         } return (!f2 || f1);
+                       }],
+                               [mono_cv_uscore=yes],
+                               [mono_cv_uscore=no],
+                       [])
+               ])
+               if test "x$mono_cv_uscore" = "xyes"; then
+                       MONO_DL_NEED_USCORE=1
+               else
+                       MONO_DL_NEED_USCORE=0
+               fi
+               AC_SUBST(MONO_DL_NEED_USCORE)
+               AC_CHECK_FUNC(dlerror)
+       fi
+
        dnl ******************************************************************
        dnl *** Checks for the IKVM JNI interface library                  ***
        dnl ******************************************************************