# # Patch managed by http://www.holgerschurig.de/patcher.html # --- glib-1.2.10/configure.in~glib-reconf-fix.patch +++ glib-1.2.10/configure.in @@ -12,12 +12,16 @@ # Save this value here, since automake will set cflags later cflags_set=${CFLAGS+set} -# we rewrite this file -rm -f glibconfig-sysdefs.h +if test $cross_compiling != yes ; then + # we rewrite this file + rm -f glibconfig-sysdefs.h +fi dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they dnl are available for $ac_help expansion (don't we all *love* autoconf?) -AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl +ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)])dnl # # The following version number definitions apply to GLib, GModule and GThread # as a whole, so if changes occoured in any of them, they are all @@ -72,7 +76,7 @@ AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE) dnl Initialize libtool -AM_PROG_LIBTOOL +AC_PROG_LIBTOOL dnl Initialize maintainer mode AM_MAINTAINER_MODE @@ -81,7 +85,9 @@ dnl figure debugging default, prior to $ac_help setup dnl -AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl +ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)])dnl if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then debug_default=yes else @@ -179,24 +185,26 @@ changequote([,])dnl dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R) -AC_MSG_CHECKING([for extra flags to get ANSI library prototypes]) -glib_save_LIBS=$LIBS -LIBS="$LIBS -lm" -AC_TRY_RUN([#include - int main (void) { return (log(1) != log(1.)); }], - AC_MSG_RESULT(none needed), - glib_save_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -std1" - AC_TRY_RUN([#include +if test $cross_compiling != yes ; then + AC_MSG_CHECKING([for extra flags to get ANSI library prototypes]) + glib_save_LIBS=$LIBS + LIBS="$LIBS -lm" + AC_TRY_RUN([#include int main (void) { return (log(1) != log(1.)); }], - AC_MSG_RESULT(-std1), - AC_MSG_RESULT() - CFLAGS=$glib_save_CFLAGS - AC_MSG_WARN( - [No ANSI prototypes found in library. (-std1 didn't work.)]) - ) -) -LIBS=$glib_save_LIBS + AC_MSG_RESULT(none needed), + glib_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -std1" + AC_TRY_RUN([#include + int main (void) { return (log(1) != log(1.)); }], + AC_MSG_RESULT(-std1), + AC_MSG_RESULT() + CFLAGS=$glib_save_CFLAGS + AC_MSG_WARN( + [No ANSI prototypes found in library. (-std1 didn't work.)]) + ) + ) + LIBS=$glib_save_LIBS +fi dnl NeXTStep cc seems to need this AC_MSG_CHECKING([for extra flags for POSIX compliance]) @@ -232,9 +240,8 @@ dnl AC_C_INLINE is useless to us since it bails out too early, we need to dnl truely know which ones of `inline', `__inline' and `__inline__' are dnl actually supported. -AC_MSG_CHECKING(for __inline) -AC_CACHE_VAL(glib_cv_has__inline,[ - AC_TRY_RUN([ +AC_CACHE_CHECK([for __inline],glib_cv_has__inline,[ + AC_COMPILE_IFELSE([ __inline int foo () { return 0; } int main () { return foo (); } ], @@ -243,13 +250,11 @@ glib_cv_has__inline=no ,) ]) -AC_MSG_RESULT($glib_cv_has__inline) case x$glib_cv_has__inline in -xyes) AC_DEFINE(G_HAVE___INLINE) +xyes) AC_DEFINE(G_HAVE___INLINE,1,[Have __inline keyword]) esac -AC_MSG_CHECKING(for __inline__) -AC_CACHE_VAL(glib_cv_has__inline__,[ - AC_TRY_RUN([ +AC_CACHE_CHECK([for __inline__],glib_cv_has__inline__,[ + AC_COMPILE_IFELSE([ __inline__ int foo () { return 0; } int main () { return foo (); } ], @@ -258,13 +263,12 @@ glib_cv_has__inline__=no ,) ]) -AC_MSG_RESULT($glib_cv_has__inline__) case x$glib_cv_has__inline__ in -xyes) AC_DEFINE(G_HAVE___INLINE__) +xyes) AC_DEFINE(G_HAVE___INLINE__,1,[Have __inline__ keyword]) esac -AC_MSG_CHECKING(for inline) -AC_CACHE_VAL(glib_cv_hasinline,[ - AC_TRY_RUN([ +AC_CACHE_CHECK([for inline], glib_cv_hasinline,[ + AC_COMPILE_IFELSE([ + #undef inline inline int foo () { return 0; } int main () { return foo (); } ], @@ -273,9 +277,8 @@ glib_cv_hasinline=no ,) ]) -AC_MSG_RESULT($glib_cv_hasinline) case x$glib_cv_hasinline in -xyes) AC_DEFINE(G_HAVE_INLINE) +xyes) AC_DEFINE(G_HAVE_INLINE,1,[Have inline keyword]) esac dnl for bytesex stuff @@ -397,20 +400,18 @@ AC_MSG_RESULT($glib_working_wctype) dnl *** check for sane realloc() *** -AC_MSG_CHECKING(whether realloc (NULL,) will work) -AC_CACHE_VAL(glib_cv_sane_realloc,[ - AC_TRY_RUN([ - #include - int main() { - return realloc (0, sizeof (int)) == 0; - }], - glib_cv_sane_realloc=yes - AC_DEFINE(REALLOC_0_WORKS) - , - glib_cv_sane_realloc=no - ,) +AC_CACHE_CHECK([whether realloc (NULL,) will work],glib_cv_sane_realloc,[ + AC_TRY_RUN([#include + int main() { + return realloc (0, sizeof (int)) == 0; + }], + [glib_cv_sane_realloc=yes], + [glib_cv_sane_realloc=no], + [glib_cv_sane_realloc=yes]) ]) -AC_MSG_RESULT($glib_cv_sane_realloc) +if test x$glib_cv_sane_realloc = xyes; then + AC_DEFINE(REALLOC_0_WORKS,1,[whether realloc (NULL,) works]) +fi dnl ********************** @@ -418,10 +419,8 @@ dnl ********************** dnl we currently check for all three va_copy possibilities, so we get dnl all results in config.log for bug reports. -AC_MSG_CHECKING(for an implementation of va_copy()) -AC_CACHE_VAL(glib_cv_va_copy,[ - AC_TRY_RUN([ - #include +AC_CACHE_CHECK([for an implementation of va_copy()],glib_cv_va_copy,[ + AC_LINK_IFELSE([#include void f (int i, ...) { va_list args1, args2; va_start (args1, i); @@ -434,16 +433,11 @@ f (0, 42); return 0; }], - glib_cv_va_copy=yes - , - glib_cv_va_copy=no - ,) + [glib_cv_va_copy=yes], + [glib_cv_va_copy=no]) ]) -AC_MSG_RESULT($glib_cv_va_copy) -AC_MSG_CHECKING(for an implementation of __va_copy()) -AC_CACHE_VAL(glib_cv___va_copy,[ - AC_TRY_RUN([ - #include +AC_CACHE_CHECK([for an implementation of __va_copy()],glib_cv___va_copy,[ + AC_LINK_IFELSE([#include void f (int i, ...) { va_list args1, args2; va_start (args1, i); @@ -456,16 +450,23 @@ f (0, 42); return 0; }], - glib_cv___va_copy=yes - , - glib_cv___va_copy=no - ,) + [glib_cv___va_copy=yes], + [glib_cv___va_copy=no]) ]) -AC_MSG_RESULT($glib_cv___va_copy) -AC_MSG_CHECKING(whether va_lists can be copied by value) -AC_CACHE_VAL(glib_cv_va_val_copy,[ - AC_TRY_RUN([ - #include + +if test "x$glib_cv_va_copy" = "xyes"; then + g_va_copy_func=va_copy +else if test "x$glib_cv___va_copy" = "xyes"; then + g_va_copy_func=__va_copy +fi +fi + +if test -n "$g_va_copy_func"; then + AC_DEFINE_UNQUOTED(G_VA_COPY,$g_va_copy_func,[A 'va_copy' style function]) +fi + +AC_CACHE_CHECK([whether va_lists can be copied by value],glib_cv_va_val_copy,[ + AC_TRY_RUN([#include void f (int i, ...) { va_list args1, args2; va_start (args1, i); @@ -478,21 +479,14 @@ f (0, 42); return 0; }], - glib_cv_va_val_copy=yes - , - glib_cv_va_val_copy=no - ,) + [glib_cv_va_val_copy=yes], + [glib_cv_va_val_copy=no], + [glib_cv_va_val_copy=yes]) ]) -if test "x$glib_cv_va_copy" = "xyes"; then - AC_DEFINE(G_VA_COPY, va_copy) -else if test "x$glib_cv___va_copy" = "xyes"; then - AC_DEFINE(G_VA_COPY, __va_copy) -fi -fi + if test "x$glib_cv_va_val_copy" = "xno"; then - AC_DEFINE(G_VA_COPY_AS_ARRAY) + AC_DEFINE(G_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values]) fi -AC_MSG_RESULT($glib_cv_va_val_copy) dnl *********************** @@ -506,20 +500,18 @@ G_MODULE_HAVE_DLERROR=0 dnl *** dlopen() and dlsym() in system libraries if test -z "$G_MODULE_IMPL"; then - AC_CHECK_FUNC(dlopen, - AC_CHECK_FUNC(dlsym, - G_MODULE_IMPL=G_MODULE_IMPL_DL - ,) - ,) + AC_CHECK_FUNC(dlopen, + [AC_CHECK_FUNC(dlsym, + [G_MODULE_IMPL=G_MODULE_IMPL_DL],[])], + []) fi dnl *** dlopen() and dlsym() in libdl if test -z "$G_MODULE_IMPL"; then AC_CHECK_LIB(dl, dlopen, - AC_CHECK_LIB(dl, dlsym, - G_MODULE_LIBS=-ldl - G_MODULE_IMPL=G_MODULE_IMPL_DL - ,) - ,) + [AC_CHECK_LIB(dl, dlsym, + [G_MODULE_LIBS=-ldl + G_MODULE_IMPL=G_MODULE_IMPL_DL],[])], + []) fi dnl *** shl_load() in libdld (HP-UX) if test -z "$G_MODULE_IMPL"; then @@ -556,40 +548,43 @@ LIBS="$LIBS $G_MODULE_LIBS" LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS" dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness - AC_CACHE_CHECK([for RTLD_GLOBAL brokenness], - glib_cv_rtldglobal_broken,[ - AC_TRY_RUN([ - #include - #ifndef RTLD_GLOBAL - #define RTLD_GLOBAL 0 - #endif - #ifndef RTLD_LAZY - #define RTLD_LAZY 0 - #endif - int pthread_create; - int main () { - void *handle, *global, *local; - global = &pthread_create; - handle = dlopen ("libpthread.so", RTLD_GLOBAL | RTLD_LAZY); - if (!handle) return 0; - local = dlsym (handle, "pthread_create"); - return global == local; - }], - [glib_cv_rtldglobal_broken=no], - [glib_cv_rtldglobal_broken=yes], - []) - rm -f plugin.c plugin.o plugin.lo - ]) - if test "x$glib_cv_rtldglobal_broken" = "xyes"; then - G_MODULE_BROKEN_RTLD_GLOBAL=1 - else - G_MODULE_BROKEN_RTLD_GLOBAL=0 - fi -dnl *** check whether we need preceeding underscores - AC_MSG_CHECKING(for preceeding underscore in symbols) - AC_CACHE_VAL(glib_cv_uscore,[ + echo "void glib_plugin_test(void) { }" > plugin.c + ${SHELL} ./libtool --mode=compile ${CC} -shared \ + -export-dynamic -o plugin.o plugin.c 2>&1 >/dev/null + AC_CACHE_CHECK([for RTLD_GLOBAL brokenness], + glib_cv_rtldglobal_broken,[ AC_TRY_RUN([ - #include +#include +#ifndef RTLD_GLOBAL +# define RTLD_GLOBAL 0 +#endif +#ifndef RTLD_LAZY +# define RTLD_LAZY 0 +#endif +int glib_plugin_test; +int main () { + void *handle, *global, *local; + global = &glib_plugin_test; + handle = dlopen ("./.libs/plugin.o", RTLD_GLOBAL | RTLD_LAZY); + if (!handle) return 0; + local = dlsym (handle, "glib_plugin_test"); + return global == local; +} ], + [glib_cv_rtldglobal_broken=no], + [glib_cv_rtldglobal_broken=yes], + [glib_cv_rtldglobal_broken=no]) + rm -f plugin.c plugin.o plugin.lo .libs/plugin.o + rmdir .libs 2>/dev/null + ]) + if test "x$glib_cv_rtldglobal_broken" = "xyes"; then + G_MODULE_BROKEN_RTLD_GLOBAL=1 + else + G_MODULE_BROKEN_RTLD_GLOBAL=0 + fi +dnl *** check whether we need preceeding underscores + AC_CACHE_CHECK([for preceeding underscore in symbols], + glib_cv_uscore,[ + AC_TRY_RUN([#include int glib_underscore_test (void) { return 42; } int main() { void *f1 = (void*)0, *f2 = (void*)0, *handle; @@ -599,12 +594,12 @@ f2 = dlsym (handle, "_glib_underscore_test"); } return (!f2 || f1); }], - glib_cv_uscore=yes, - glib_cv_uscore=no, - ) - rm -f plugin.c plugin.o plugin.lo + [glib_cv_uscore=yes], + [glib_cv_uscore=no], + []) + rm -f plugin.c plugin.$ac_objext plugin.lo ]) - AC_MSG_RESULT($glib_cv_uscore) + AC_MSG_RESULT($glib_cv_uscore) if test "x$glib_cv_uscore" = "xyes"; then G_MODULE_NEED_USCORE=1 else @@ -614,8 +609,8 @@ LDFLAGS="$LDFLAGS_orig" dnl *** check for having dlerror() AC_CHECK_FUNC(dlerror, - G_MODULE_HAVE_DLERROR=1, - G_MODULE_HAVE_DLERROR=0) + [G_MODULE_HAVE_DLERROR=1], + [G_MODULE_HAVE_DLERROR=0]) LIBS="$LIBS_orig" fi dnl *** done, have e got an implementation? @@ -822,100 +817,168 @@ dnl check for mt safe function variants dnl *********************************** -if test x"$have_threads" != xnone; then +if test x"$have_threads" != xno; then glib_save_LIBS="$LIBS" - glib_save_CFLAGS="$CFLAGS" # we are not doing the following for now, as this might require glib # to always be linked with the thread libs on some platforms. # LIBS="$LIBS $G_THREAD_LIBS" - CFLAGS="$CFLAGS $G_THREAD_CFLAGS" - AC_CHECK_FUNCS(localtime_r rand_r) + AC_CHECK_FUNCS(localtime_r) if test "$ac_cv_header_pwd_h" = "yes"; then - AC_MSG_CHECKING([for getpwuid_r]) - AC_CACHE_VAL(ac_cv_func_getpwuid_r, - [AC_TRY_RUN([#include - int main () { char buffer[10000], *pointer; - char getpwuid_r (long, void*, void*, - int, void*); - int error; - errno = 0; - error = getpwuid_r (0, &buffer, &buffer, - sizeof (buffer), &pointer); - return errno == ENOSYS || error == ENOSYS;}], - [ac_cv_func_getpwuid_r=yes], - [ac_cv_func_getpwuid_r=no])]) - if test "$ac_cv_func_getpwuid_r" = yes; then - AC_MSG_RESULT(yes) + AC_CACHE_CHECK([for posix getpwuid_r], + ac_cv_func_posix_getpwuid_r, + [AC_TRY_RUN([ +#include +#include +int main () { + char buffer[10000]; + struct passwd pwd, *pwptr = &pwd; + int error; + errno = 0; + error = getpwuid_r (0, &pwd, buffer, + sizeof (buffer), &pwptr); + return (error < 0 && errno == ENOSYS) + || error == ENOSYS; +} ], + [ac_cv_func_posix_getpwuid_r=yes], + [ac_cv_func_posix_getpwuid_r=no])]) + if test "$ac_cv_func_posix_getpwuid_r" = yes; then + AC_DEFINE(HAVE_POSIX_GETPWUID_R,1, AC_DEFINE(HAVE_GETPWUID_R) + [Have POSIX function getpwuid_r]) else - AC_MSG_RESULT(no) - fi - if test "$ac_cv_func_getpwuid_r" = "yes"; then - AC_MSG_CHECKING(whether getpwuid_r is posix like) - # The signature for the POSIX version is: - # int getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **) - AC_TRY_COMPILE([#include - #include - #include ], - [getpwuid_r((uid_t)0, NULL, NULL, (size_t)0, NULL);], - [AC_DEFINE(HAVE_GETPWUID_R_POSIX) - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no)]) + AC_CACHE_CHECK([for nonposix getpwuid_r], + ac_cv_func_nonposix_getpwuid_r, + [AC_TRY_LINK([#include ], + [char buffer[10000]; + struct passwd pwd; + getpwuid_r (0, &pwd, buffer, + sizeof (buffer));], + [AC_DEFINE(HAVE_GETPWUID_R_POSIX) + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)])]) + if test "$ac_cv_func_nonposix_getpwuid_r" = yes; then + AC_DEFINE(HAVE_NONPOSIX_GETPWUID_R,1, + [Have non-POSIX function getpwuid_r]) + fi fi fi + LIBS="$G_THREAD_LIBS $LIBS" if test x"$have_threads" = xposix; then - LIBS="$LIBS $G_THREAD_LIBS" - AC_MSG_CHECKING(whether pthread_getspecific is posix like) - # PCThreads has pthread_getspecific(pthread_key_t, void **); - AC_TRY_COMPILE([#include ], - [pthread_getspecific(0,NULL);], - [AC_MSG_RESULT(no)], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_PTHREAD_GETSPECIFIC_POSIX)]) - AC_MSG_CHECKING(whether pthread_mutex_trylock is posix like) - # DCE Threads return 1 as success, posix 0. what a mess. - AC_TRY_RUN([#include - pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - int main () { - return !pthread_mutex_trylock (&mutex); }], - [AC_MSG_RESULT(no)], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX)]) - AC_MSG_CHECKING(whether pthread_cond_timedwait is posix like) - # DCE Threads return -1 as failure, posix ETIMEDOUT. - AC_TRY_RUN([#include - int main () { - pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - pthread_cond_t cond = PTHREAD_COND_INITIALIZER; - struct timeval tval; - struct timespec tspec; - gettimeofday (&tval, NULL); - tspec.tv_sec = tval.tv_sec; - tspec.tv_nsec = 0; - return pthread_cond_timedwait (&cond,&mutex,&tspec) - != -1;}], - [AC_MSG_RESULT(no)], + glib_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES" + dnl we might grow sizeof(pthread_t) later on, so use a dummy name here + GLIB_SIZEOF([#include ], pthread_t, system_thread) + # This is not AC_CHECK_FUNC to also work with function + # name mangling in header files. + AC_MSG_CHECKING(for pthread_attr_setstacksize) + AC_TRY_LINK([#include ], + [pthread_attr_t t; pthread_attr_setstacksize(&t,0)], [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_POSIX)]) + AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE,1, + [Have function pthread_attr_setstacksize])], + [AC_MSG_RESULT(no)]) + AC_MSG_CHECKING(for minimal/maximal thread priority) + if test x"$posix_priority_min" = x; then + AC_EGREP_CPP(PX_PRIO_MIN,[#include + PX_PRIO_MIN],,[ + posix_priority_min=PX_PRIO_MIN + posix_priority_max=PX_PRIO_MAX]) + fi + if test x"$posix_priority_min" = x; then + # AIX + AC_EGREP_CPP(PTHREAD_PRIO_MIN,[#include + PTHREAD_PRIO_MIN],,[ + posix_priority_min=PTHREAD_PRIO_MIN + posix_priority_max=PTHREAD_PRIO_MAX]) + fi + if test x"$posix_priority_min" = x; then + AC_EGREP_CPP(PRI_OTHER_MIN,[#include + PRI_OTHER_MIN],,[ + posix_priority_min=PRI_OTHER_MIN + posix_priority_max=PRI_OTHER_MAX]) + fi + if test x"$posix_priority_min" = x; then + AC_MSG_RESULT(none found) + AC_MSG_WARN($POSIX_NO_PRIORITIES) + posix_priority_min=-1 + posix_priority_max=-1 + else + AC_MSG_RESULT($posix_priority_min/$posix_priority_max) + AC_MSG_CHECKING(for pthread_setschedparam) + AC_TRY_LINK([#include ], + [pthread_t t; pthread_setschedparam(t, 0, NULL)], + [AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(POSIX_MIN_PRIORITY,$posix_priority_min,[Minimum POSIX RT priority]) + AC_DEFINE_UNQUOTED(POSIX_MAX_PRIORITY,$posix_priority_max,[Maximum POSIX RT priority])], + [AC_MSG_RESULT(no) + AC_MSG_WARN($POSIX_NO_PRIORITIES)]) + fi + posix_yield_func=none + AC_MSG_CHECKING(for posix yield function) + for yield_func in sched_yield pthread_yield_np pthread_yield \ + thr_yield; do + AC_TRY_LINK([#include ], + [$yield_func()], + [posix_yield_func="$yield_func" + break]) + done + if test x"$posix_yield_func" = xnone; then + AC_MSG_RESULT(none found) + AC_MSG_WARN($POSIX_NO_YIELD) + posix_yield_func="g_usleep(1000)" + else + AC_MSG_RESULT($posix_yield_func) + posix_yield_func="$posix_yield_func()" + fi + AC_DEFINE_UNQUOTED(POSIX_YIELD_FUNC,$posix_yield_func,[The POSIX RT yield function]) + CPPFLAGS="$glib_save_CPPFLAGS" + + elif test x"$have_threads" = xwin32; then + # It's a pointer to a private struct + GLIB_SIZEOF(,struct _GThreadData *, system_thread) + elif test x"$have_threads" = xsolaris; then + GLIB_SIZEOF([#include ], thread_t, system_thread) fi + LIBS="$glib_save_LIBS" - CFLAGS="$glib_save_CFLAGS" -fi -if test "x$enable_threads" = "xyes"; then - if test "$ac_cv_func_getpwuid_r" != "yes"; then + # now spit out all the warnings. + if test "$ac_cv_func_posix_getpwuid_r" != "yes" && + test "$ac_cv_func_nonposix_getpwuid_r" != "yes"; then AC_MSG_WARN($FUNC_NO_GETPWUID_R) fi if test "$ac_cv_func_localtime_r" != "yes"; then AC_MSG_WARN($FUNC_NO_LOCALTIME_R) fi +fi + +if test x"$glib_cv_sizeof_system_thread" = x; then + # use a pointer as a fallback. + GLIB_SIZEOF(,void *, system_thread) fi -AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c") +# +# Hack to deal with: +# +# a) GCC < 3.3 for Linux doesn't include -lpthread when +# building shared libraries with linux. +# b) libtool doesn't recognize -pthread as a library dependency. +# +case $host in + *-*-linux*) + G_THREAD_LIBS_FOR_GTHREAD="`echo $G_THREAD_LIBS | sed s/-pthread/-lpthread/`" + ;; + *) + G_THREAD_LIBS_FOR_GTHREAD="`echo $G_THREAD_LIBS | sed s/-pthread/-Wc,-pthread/`" + ;; +esac + +AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c", + [Source file containing theread implementation]) AC_SUBST(G_THREAD_CFLAGS) AC_SUBST(G_THREAD_LIBS) - -CFLAGS="$CFLAGS $G_THREAD_CFLAGS" +AC_SUBST(G_THREAD_LIBS_FOR_GTHREAD) +AC_SUBST(G_THREAD_LIBS_EXTRA) dnl ********************************************** dnl *** GDefaultMutex setup and initialization *** @@ -940,13 +1003,14 @@ dnl **************************************** dnl *** GLib POLL* compatibility defines *** dnl **************************************** -GLIB_SYSDEFS( -[#include -#include ], - POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32, - glibconfig-sysdefs.h, - =) - +if test $cross_compiling != yes ; then + GLIB_SYSDEFS( + [#include + #include ], + POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32, + glibconfig-sysdefs.h, + =) +fi dnl ****************************** dnl *** output the whole stuff *** --- glib-1.2.10/gmodule/Makefile.am~glib-reconf-fix.patch +++ glib-1.2.10/gmodule/Makefile.am @@ -42,7 +42,7 @@ libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ # $(libglib) noinst_PROGRAMS = testgmodule -testgmodule_LDFLAGS += @G_MODULE_LDFLAGS@ +testgmodule_LDFLAGS = @G_MODULE_LDFLAGS@ testgmodule_LDADD = libgmodule.la $(libglib) @G_MODULE_LIBS@ .PHONY: files release