0036a25a53
changes: -update the bundled PCRE from 7.2 to 7.4 -minor bugfixes -translation updates pkgsrc changes: -don't use the bundled PCRE anymore, use pkgsrc's -try to work around some ld.so lossage on NetBSD (which leads to some applications - most notably evolution and glade3 - not resolving symbols in dynamically loaded plugins) another way: use the RTLD_DEFAULT pseudo-handle when the main module is referred to. This could replace the previous mechanism, but it needs more investigation and tests, so I'm leaving both in parallel for now.
96 lines
2.8 KiB
Text
96 lines
2.8 KiB
Text
$NetBSD: patch-ak,v 1.2 2007/11/08 19:52:21 drochner Exp $
|
|
|
|
--- configure.in.orig 2007-11-07 06:12:00.000000000 +0100
|
|
+++ configure.in
|
|
@@ -1202,6 +1202,7 @@ fi
|
|
dnl G_MODULE_IMPL= don't reset, so cmd-line can override
|
|
G_MODULE_NEED_USCORE=0
|
|
G_MODULE_BROKEN_RTLD_GLOBAL=0
|
|
+G_MODULE_BROKEN_DLOPEN_NULL=0
|
|
G_MODULE_HAVE_DLERROR=0
|
|
dnl *** force native WIN32 shared lib loader
|
|
if test -z "$G_MODULE_IMPL"; then
|
|
@@ -1326,6 +1327,38 @@ dnl *** check for having dlerror()
|
|
[G_MODULE_HAVE_DLERROR=0])
|
|
LIBS="$LIBS_orig"
|
|
fi
|
|
+dnl *** check for dlopen(NULL, 0) brokenness
|
|
+ AC_CACHE_CHECK([for dlopen(NULL, 0) brokenness],
|
|
+ glib_cv_dlopennull_broken,[
|
|
+ AC_TRY_RUN([
|
|
+#include <stdio.h>
|
|
+#include <dlfcn.h>
|
|
+#ifndef RTLD_GLOBAL
|
|
+# define RTLD_GLOBAL 0
|
|
+#endif
|
|
+#ifndef RTLD_LAZY
|
|
+# define RTLD_LAZY 0
|
|
+#endif
|
|
+int gettext;
|
|
+int main () {
|
|
+ void *handle;
|
|
+ handle = dlopen ("libm.so", RTLD_GLOBAL | RTLD_LAZY);
|
|
+ if (!handle) return 0;
|
|
+ handle = dlopen (NULL, 0);
|
|
+ if (!handle) return 0;
|
|
+ handle = dlsym (handle, "sin");
|
|
+ return handle == NULL;
|
|
+}
|
|
+ ],
|
|
+ [glib_cv_dlopennull_broken=no],
|
|
+ [glib_cv_dlopennull_broken=yes],
|
|
+ [glib_cv_dlopennull_broken=no])
|
|
+ ])
|
|
+ if test "x$glib_cv_dlopennull_broken" = "xyes"; then
|
|
+ G_MODULE_BROKEN_DLOPEN_NULL=1
|
|
+ else
|
|
+ G_MODULE_BROKEN_DLOPEN_NULL=0
|
|
+ fi
|
|
dnl *** done, have we got an implementation?
|
|
if test -z "$G_MODULE_IMPL"; then
|
|
G_MODULE_IMPL=0
|
|
@@ -1355,6 +1388,8 @@ AC_SUBST(G_MODULE_PLUGIN_LIBS)
|
|
AC_SUBST(G_MODULE_LDFLAGS)
|
|
AC_SUBST(G_MODULE_HAVE_DLERROR)
|
|
AC_SUBST(G_MODULE_BROKEN_RTLD_GLOBAL)
|
|
+AC_SUBST(G_MODULE_BROKEN_DLOPEN_NULL)
|
|
+
|
|
AC_SUBST(G_MODULE_NEED_USCORE)
|
|
AC_SUBST(GLIB_DEBUG_FLAGS)
|
|
|
|
@@ -1598,22 +1633,8 @@ if test x"$have_threads" != xno; then
|
|
G_THREAD_LIBS="-lpthread -lthread"
|
|
;;
|
|
*)
|
|
- for flag in pthread pthreads mt; do
|
|
- glib_save_CFLAGS="$CFLAGS"
|
|
- CFLAGS="$CFLAGS -$flag"
|
|
- AC_TRY_RUN(glib_thread_test(0),
|
|
- glib_flag_works=yes,
|
|
- glib_flag_works=no,
|
|
- [AC_LINK_IFELSE(glib_thread_test(0),
|
|
- glib_flag_works=yes,
|
|
- glib_flag_works=no)])
|
|
- CFLAGS="$glib_save_CFLAGS"
|
|
- if test $glib_flag_works = yes ; then
|
|
- G_THREAD_CFLAGS=-$flag
|
|
- G_THREAD_LIBS=-$flag
|
|
- break;
|
|
- fi
|
|
- done
|
|
+ G_THREAD_LIBS="${PTHREAD_LDFLAGS} ${PTHREAD_LIBS}"
|
|
+ G_THREAD_CFLAGS="${PTHREAD_CFLAGS}"
|
|
;;
|
|
esac
|
|
fi
|
|
@@ -1970,6 +1991,10 @@ case $host in
|
|
*)
|
|
G_THREAD_LIBS_FOR_GTHREAD="$G_THREAD_LIBS"
|
|
;;
|
|
+ *-*-netbsd*)
|
|
+ # On NetBSD, pkgsrc's libtool does the right thing.
|
|
+ G_THREAD_LIBS_FOR_GTHREAD="$G_THREAD_LIBS"
|
|
+ ;;
|
|
esac
|
|
|
|
AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c",
|