$NetBSD: patch-aa,v 1.59 2016/02/23 11:27:55 wiz Exp $ - solaris sun studio check and fix - use pkgsrc libtool - broken dlopen(NULL,0) detection and workaround http://bugzilla.gnome.org/show_bug.cgi?id=140329 - remove unnecessary executions of libtool from configure https://bugzilla.gnome.org/show_bug.cgi?id=736710 --- configure.orig 2015-05-13 02:50:37.000000000 +0000 +++ configure @@ -734,6 +734,7 @@ GIO GSPAWN GLIB_DEBUG_FLAGS G_MODULE_NEED_USCORE +G_MODULE_BROKEN_DLOPEN_NULL G_MODULE_BROKEN_RTLD_GLOBAL G_MODULE_HAVE_DLERROR G_MODULE_LDFLAGS @@ -21012,6 +21013,8 @@ else # ifdef _MSC_VER # include # define alloca _alloca +# elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) +# include # else # ifdef HAVE_ALLOCA_H # include @@ -21979,8 +21982,8 @@ else fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether using Sun Studio C compiler" >&5 -$as_echo_n "checking whether using Sun Studio C compiler... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether using Sun Studio C compiler visibility" >&5 +$as_echo_n "checking whether using Sun Studio C compiler visibility... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined(__SUNPRO_C) || (__SUNPRO_C >= 0x550) @@ -23747,16 +23750,48 @@ fi case $host in *-*-solaris* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether using Sun Studio C compiler with C99" >&5 +$as_echo_n "checking whether using Sun Studio C compiler with C99... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined(__STDC_VERSION__) || (__STDC_VERSION__ - 0 >= 199901L) +#else +# include "error: this is STD C99." +#endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + g_have_sunstudio_c99=yes +else + g_have_sunstudio_c99=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $g_have_sunstudio_c99" >&5 +$as_echo "$g_have_sunstudio_c99" >&6; } + if test $g_have_sunstudio_c99 = yes; then + +$as_echo "#define _XOPEN_SOURCE 600" >>confdefs.h + + else $as_echo "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h $as_echo "#define _XOPEN_SOURCE 2" >>confdefs.h + fi + $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h - ;; + ;; esac if test "$ac_cv_func_statfs" = yes; then : @@ -24824,10 +24859,11 @@ if test x"$glib_native_win32" = xyes; th G_MODULE_LDFLAGS= else export SED - G_MODULE_LDFLAGS=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` + eval G_MODULE_LDFLAGS=$export_dynamic_flag_spec fi G_MODULE_NEED_USCORE=0 G_MODULE_BROKEN_RTLD_GLOBAL=0 +G_MODULE_BROKEN_DLOPEN_NULL=0 G_MODULE_HAVE_DLERROR=0 if test -z "$G_MODULE_IMPL"; then case "$host" in @@ -24953,13 +24989,12 @@ if test "$G_MODULE_IMPL" = "G_MODULE_IM LIBS="$G_MODULE_LIBS $LIBS" LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS" echo "void glib_plugin_test(void) { }" > plugin.c - ${SHELL} ./libtool --mode=compile --tag=CC ${CC} ${CFLAGS} \ + ${SHELL} libtool --mode=compile --tag=CC ${CC} ${CFLAGS} \ ${CPPFLAGS} -c -o plugin.lo plugin.c >/dev/null 2>&1 - ${SHELL} ./libtool --mode=link --tag=CC ${CC} ${CFLAGS} \ + ${SHELL} libtool --mode=link --tag=CC ${CC} ${CFLAGS} \ ${LDFLAGS} -module -o plugin.la -export-dynamic \ -shrext ".o" -avoid-version plugin.lo \ -rpath /dont/care >/dev/null 2>&1 - eval `./libtool --config | grep ^objdir` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RTLD_GLOBAL brokenness" >&5 $as_echo_n "checking for RTLD_GLOBAL brokenness... " >&6; } if ${glib_cv_rtldglobal_broken+:} false; then : @@ -25069,6 +25104,56 @@ fi LIBS="$LIBS_orig" fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen(NULL, 0) brokenness" >&5 +$as_echo_n "checking for dlopen(NULL, 0) brokenness... " >&6; } +if ${glib_cv_dlopennull_broken+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + glib_cv_dlopennull_broken=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#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; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + glib_cv_dlopennull_broken=no +else + glib_cv_dlopennull_broken=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glib_cv_dlopennull_broken" >&5 +$as_echo "$glib_cv_dlopennull_broken" >&6; } + if test "x$glib_cv_dlopennull_broken" = "xyes"; then + G_MODULE_BROKEN_DLOPEN_NULL=1 + else + G_MODULE_BROKEN_DLOPEN_NULL=0 + fi if test -z "$G_MODULE_IMPL"; then G_MODULE_IMPL=0 G_MODULE_SUPPORTED=false @@ -25079,8 +25164,6 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the suffix of module shared libraries" >&5 $as_echo_n "checking for the suffix of module shared libraries... " >&6; } export SED -shrext_cmds=`./libtool --config | grep '^shrext_cmds='` -eval $shrext_cmds module=yes eval std_shrext=$shrext_cmds # chop the initial dot glib_gmodule_suffix=`echo $std_shrext | sed 's/^\.//'` @@ -25103,6 +25186,7 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gspawn implementation" >&5 $as_echo_n "checking for gspawn implementation... " >&6; } case "$host" in @@ -26077,62 +26161,8 @@ if test x"$have_threads" = xposix; then G_THREAD_LIBS="-lpthread -lthread" ;; *) - for flag in pthread pthreads mt; do - glib_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -$flag" - if test "$cross_compiling" = yes; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -int check_me = 0; -void* func(void* data) {check_me = 42; return &check_me;} -int main() - { pthread_t t; - void *ret; - pthread_create (&t, 0, func, 0); - pthread_join (t, &ret); - return (check_me != 42 || ret != &check_me); -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - glib_flag_works=yes -else - glib_flag_works=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -int check_me = 0; -void* func(void* data) {check_me = 42; return &check_me;} -int main() - { pthread_t t; - void *ret; - pthread_create (&t, 0, func, 0); - pthread_join (t, &ret); - return (check_me != 42 || ret != &check_me); -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - glib_flag_works=yes -else - glib_flag_works=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - 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