]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/glib-1.2/glib-1.2-1.2.10/glib-reconf-fix
OE tree imported from monotone branch org.openembedded.oz354fam083 at revision 8b12e3...
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / glib-1.2 / glib-1.2-1.2.10 / glib-reconf-fix
1
2 #
3 # Patch managed by http://www.holgerschurig.de/patcher.html
4 #
5
6 --- glib-1.2.10/configure.in~glib-reconf-fix.patch
7 +++ glib-1.2.10/configure.in
8 @@ -12,12 +12,16 @@
9  # Save this value here, since automake will set cflags later
10  cflags_set=${CFLAGS+set}
11  
12 -# we rewrite this file
13 -rm -f glibconfig-sysdefs.h
14 +if test $cross_compiling != yes ; then
15 +       # we rewrite this file
16 +       rm -f glibconfig-sysdefs.h
17 +fi
18  
19  dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they
20  dnl are available for $ac_help expansion (don't we all *love* autoconf?)
21 -AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
22 +ifdef([AC_DIVERSION_NOTICE],
23 +             [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
24 +         [AC_DIVERT_PUSH(NOTICE)])dnl
25  #
26  # The following version number definitions apply to GLib, GModule and GThread
27  # as a whole, so if changes occoured in any of them, they are all
28 @@ -72,7 +76,7 @@
29  AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE)
30  
31  dnl Initialize libtool
32 -AM_PROG_LIBTOOL
33 +AC_PROG_LIBTOOL
34  
35  dnl Initialize maintainer mode
36  AM_MAINTAINER_MODE
37 @@ -81,7 +85,9 @@
38  
39  dnl figure debugging default, prior to $ac_help setup
40  dnl
41 -AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
42 +ifdef([AC_DIVERSION_NOTICE],
43 +             [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
44 +         [AC_DIVERT_PUSH(NOTICE)])dnl
45  if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then
46         debug_default=yes
47  else
48 @@ -179,24 +185,26 @@
49  changequote([,])dnl
50  
51  dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
52 -AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
53 -glib_save_LIBS=$LIBS
54 -LIBS="$LIBS -lm"
55 -AC_TRY_RUN([#include <math.h>
56 -             int main (void) { return (log(1) != log(1.)); }],
57 -     AC_MSG_RESULT(none needed),
58 -     glib_save_CFLAGS=$CFLAGS
59 -     CFLAGS="$CFLAGS -std1"
60 -     AC_TRY_RUN([#include <math.h>
61 +if test $cross_compiling != yes ; then
62 +    AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
63 +    glib_save_LIBS=$LIBS
64 +    LIBS="$LIBS -lm"
65 +    AC_TRY_RUN([#include <math.h>
66                   int main (void) { return (log(1) != log(1.)); }],
67 -         AC_MSG_RESULT(-std1),
68 -         AC_MSG_RESULT()
69 -         CFLAGS=$glib_save_CFLAGS
70 -         AC_MSG_WARN(
71 -                [No ANSI prototypes found in library. (-std1 didn't work.)])
72 -     )
73 -)
74 -LIBS=$glib_save_LIBS
75 +         AC_MSG_RESULT(none needed),
76 +         glib_save_CFLAGS=$CFLAGS
77 +         CFLAGS="$CFLAGS -std1"
78 +         AC_TRY_RUN([#include <math.h>
79 +                     int main (void) { return (log(1) != log(1.)); }],
80 +             AC_MSG_RESULT(-std1),
81 +             AC_MSG_RESULT()
82 +             CFLAGS=$glib_save_CFLAGS
83 +             AC_MSG_WARN(
84 +                    [No ANSI prototypes found in library. (-std1 didn't work.)])
85 +         )
86 +    )
87 +    LIBS=$glib_save_LIBS
88 +fi
89  
90  dnl NeXTStep cc seems to need this
91  AC_MSG_CHECKING([for extra flags for POSIX compliance])
92 @@ -232,9 +240,8 @@
93  dnl AC_C_INLINE is useless to us since it bails out too early, we need to
94  dnl truely know which ones of `inline', `__inline' and `__inline__' are
95  dnl actually supported.
96 -AC_MSG_CHECKING(for __inline)
97 -AC_CACHE_VAL(glib_cv_has__inline,[
98 -        AC_TRY_RUN([
99 +AC_CACHE_CHECK([for __inline],glib_cv_has__inline,[
100 +        AC_COMPILE_IFELSE([
101         __inline int foo () { return 0; }
102         int main () { return foo (); }
103                 ],
104 @@ -243,13 +250,11 @@
105         glib_cv_has__inline=no
106          ,)
107  ])
108 -AC_MSG_RESULT($glib_cv_has__inline)
109  case x$glib_cv_has__inline in
110 -xyes) AC_DEFINE(G_HAVE___INLINE)
111 +xyes) AC_DEFINE(G_HAVE___INLINE,1,[Have __inline keyword])
112  esac
113 -AC_MSG_CHECKING(for __inline__)
114 -AC_CACHE_VAL(glib_cv_has__inline__,[
115 -        AC_TRY_RUN([
116 +AC_CACHE_CHECK([for __inline__],glib_cv_has__inline__,[
117 +        AC_COMPILE_IFELSE([
118         __inline__ int foo () { return 0; }
119         int main () { return foo (); }
120                 ],
121 @@ -258,13 +263,12 @@
122         glib_cv_has__inline__=no
123          ,)
124  ])
125 -AC_MSG_RESULT($glib_cv_has__inline__)
126  case x$glib_cv_has__inline__ in
127 -xyes) AC_DEFINE(G_HAVE___INLINE__)
128 +xyes) AC_DEFINE(G_HAVE___INLINE__,1,[Have __inline__ keyword])
129  esac
130 -AC_MSG_CHECKING(for inline)
131 -AC_CACHE_VAL(glib_cv_hasinline,[
132 -        AC_TRY_RUN([
133 +AC_CACHE_CHECK([for inline], glib_cv_hasinline,[
134 +        AC_COMPILE_IFELSE([
135 +       #undef inline
136         inline int foo () { return 0; }
137         int main () { return foo (); }
138                 ],
139 @@ -273,9 +277,8 @@
140         glib_cv_hasinline=no
141          ,)
142  ])
143 -AC_MSG_RESULT($glib_cv_hasinline)
144  case x$glib_cv_hasinline in
145 -xyes) AC_DEFINE(G_HAVE_INLINE)
146 +xyes) AC_DEFINE(G_HAVE_INLINE,1,[Have inline keyword])
147  esac
148  
149  dnl for bytesex stuff
150 @@ -397,20 +400,18 @@
151  AC_MSG_RESULT($glib_working_wctype)
152  
153  dnl *** check for sane realloc() ***
154 -AC_MSG_CHECKING(whether realloc (NULL,) will work)
155 -AC_CACHE_VAL(glib_cv_sane_realloc,[
156 -       AC_TRY_RUN([
157 -       #include <stdlib.h>
158 -       int main() {
159 -         return realloc (0, sizeof (int)) == 0;
160 -       }],
161 -       glib_cv_sane_realloc=yes
162 -       AC_DEFINE(REALLOC_0_WORKS)
163 -       ,
164 -       glib_cv_sane_realloc=no
165 -       ,)
166 +AC_CACHE_CHECK([whether realloc (NULL,) will work],glib_cv_sane_realloc,[
167 +        AC_TRY_RUN([#include <stdlib.h>
168 +        int main() {
169 +          return realloc (0, sizeof (int)) == 0;
170 +        }],
171 +        [glib_cv_sane_realloc=yes],
172 +        [glib_cv_sane_realloc=no],
173 +       [glib_cv_sane_realloc=yes])
174  ])
175 -AC_MSG_RESULT($glib_cv_sane_realloc)
176 +if test x$glib_cv_sane_realloc = xyes; then
177 +  AC_DEFINE(REALLOC_0_WORKS,1,[whether realloc (NULL,) works])
178 +fi
179  
180  
181  dnl **********************
182 @@ -418,10 +419,8 @@
183  dnl **********************
184  dnl we currently check for all three va_copy possibilities, so we get
185  dnl all results in config.log for bug reports.
186 -AC_MSG_CHECKING(for an implementation of va_copy())
187 -AC_CACHE_VAL(glib_cv_va_copy,[
188 -       AC_TRY_RUN([
189 -       #include <stdarg.h>
190 +AC_CACHE_CHECK([for an implementation of va_copy()],glib_cv_va_copy,[
191 +       AC_LINK_IFELSE([#include <stdarg.h>
192         void f (int i, ...) {
193         va_list args1, args2;
194         va_start (args1, i);
195 @@ -434,16 +433,11 @@
196           f (0, 42);
197           return 0;
198         }],
199 -       glib_cv_va_copy=yes
200 -       ,
201 -       glib_cv_va_copy=no
202 -       ,)
203 +       [glib_cv_va_copy=yes],
204 +       [glib_cv_va_copy=no])
205  ])
206 -AC_MSG_RESULT($glib_cv_va_copy)
207 -AC_MSG_CHECKING(for an implementation of __va_copy())
208 -AC_CACHE_VAL(glib_cv___va_copy,[
209 -       AC_TRY_RUN([
210 -       #include <stdarg.h>
211 +AC_CACHE_CHECK([for an implementation of __va_copy()],glib_cv___va_copy,[
212 +       AC_LINK_IFELSE([#include <stdarg.h>
213         void f (int i, ...) {
214         va_list args1, args2;
215         va_start (args1, i);
216 @@ -456,16 +450,23 @@
217           f (0, 42);
218           return 0;
219         }],
220 -       glib_cv___va_copy=yes
221 -       ,
222 -       glib_cv___va_copy=no
223 -       ,)
224 +       [glib_cv___va_copy=yes],
225 +       [glib_cv___va_copy=no])
226  ])
227 -AC_MSG_RESULT($glib_cv___va_copy)
228 -AC_MSG_CHECKING(whether va_lists can be copied by value)
229 -AC_CACHE_VAL(glib_cv_va_val_copy,[
230 -       AC_TRY_RUN([
231 -       #include <stdarg.h>
232 +
233 +if test "x$glib_cv_va_copy" = "xyes"; then
234 +  g_va_copy_func=va_copy
235 +else if test "x$glib_cv___va_copy" = "xyes"; then
236 +  g_va_copy_func=__va_copy
237 +fi
238 +fi
239 +
240 +if test -n "$g_va_copy_func"; then
241 +  AC_DEFINE_UNQUOTED(G_VA_COPY,$g_va_copy_func,[A 'va_copy' style function])
242 +fi
243 +
244 +AC_CACHE_CHECK([whether va_lists can be copied by value],glib_cv_va_val_copy,[
245 +       AC_TRY_RUN([#include <stdarg.h>
246         void f (int i, ...) {
247         va_list args1, args2;
248         va_start (args1, i);
249 @@ -478,21 +479,14 @@
250           f (0, 42);
251           return 0;
252         }],
253 -       glib_cv_va_val_copy=yes
254 -       ,
255 -       glib_cv_va_val_copy=no
256 -       ,)
257 +       [glib_cv_va_val_copy=yes],
258 +       [glib_cv_va_val_copy=no],
259 +       [glib_cv_va_val_copy=yes])
260  ])
261 -if test "x$glib_cv_va_copy" = "xyes"; then
262 -  AC_DEFINE(G_VA_COPY, va_copy)
263 -else if test "x$glib_cv___va_copy" = "xyes"; then
264 -  AC_DEFINE(G_VA_COPY, __va_copy)
265 -fi
266 -fi
267 +
268  if test "x$glib_cv_va_val_copy" = "xno"; then
269 -  AC_DEFINE(G_VA_COPY_AS_ARRAY)
270 +  AC_DEFINE(G_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
271  fi
272 -AC_MSG_RESULT($glib_cv_va_val_copy)
273  
274  
275  dnl ***********************
276 @@ -506,20 +500,18 @@
277  G_MODULE_HAVE_DLERROR=0
278  dnl *** dlopen() and dlsym() in system libraries
279  if test -z "$G_MODULE_IMPL"; then
280 -       AC_CHECK_FUNC(dlopen,
281 -               AC_CHECK_FUNC(dlsym,
282 -                       G_MODULE_IMPL=G_MODULE_IMPL_DL
283 -               ,)
284 -       ,)
285 +        AC_CHECK_FUNC(dlopen,
286 +                      [AC_CHECK_FUNC(dlsym,
287 +                                     [G_MODULE_IMPL=G_MODULE_IMPL_DL],[])],
288 +                      [])
289  fi
290  dnl *** dlopen() and dlsym() in libdl
291  if test -z "$G_MODULE_IMPL"; then
292         AC_CHECK_LIB(dl, dlopen,
293 -               AC_CHECK_LIB(dl, dlsym,
294 -                       G_MODULE_LIBS=-ldl
295 -                       G_MODULE_IMPL=G_MODULE_IMPL_DL
296 -               ,)
297 -       ,)
298 +               [AC_CHECK_LIB(dl, dlsym,
299 +                       [G_MODULE_LIBS=-ldl
300 +                       G_MODULE_IMPL=G_MODULE_IMPL_DL],[])],
301 +               [])
302  fi
303  dnl *** shl_load() in libdld (HP-UX)
304  if test -z "$G_MODULE_IMPL"; then
305 @@ -556,40 +548,43 @@
306         LIBS="$LIBS $G_MODULE_LIBS"
307         LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
308  dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness
309 -        AC_CACHE_CHECK([for RTLD_GLOBAL brokenness],
310 -                glib_cv_rtldglobal_broken,[
311 -                AC_TRY_RUN([
312 -                #include <dlfcn.h>
313 -                #ifndef RTLD_GLOBAL
314 -                #define RTLD_GLOBAL 0
315 -                #endif
316 -                #ifndef RTLD_LAZY
317 -                #define RTLD_LAZY 0
318 -                #endif
319 -                int pthread_create;
320 -                int main () {
321 -                void *handle, *global, *local;
322 -                global = &pthread_create;
323 -                handle = dlopen ("libpthread.so", RTLD_GLOBAL | RTLD_LAZY);
324 -                if (!handle) return 0;
325 -                local = dlsym (handle, "pthread_create");
326 -                return global == local;
327 -                }],
328 -                        [glib_cv_rtldglobal_broken=no],
329 -                        [glib_cv_rtldglobal_broken=yes],
330 -                        [])
331 -                rm -f plugin.c plugin.o plugin.lo
332 -        ])
333 -        if test "x$glib_cv_rtldglobal_broken" = "xyes"; then
334 -                G_MODULE_BROKEN_RTLD_GLOBAL=1
335 -        else
336 -                G_MODULE_BROKEN_RTLD_GLOBAL=0
337 -        fi
338 -dnl *** check whether we need preceeding underscores
339 -       AC_MSG_CHECKING(for preceeding underscore in symbols)
340 -       AC_CACHE_VAL(glib_cv_uscore,[
341 +       echo "void glib_plugin_test(void) { }" > plugin.c
342 +       ${SHELL} ./libtool --mode=compile ${CC} -shared \
343 +               -export-dynamic -o plugin.o plugin.c 2>&1 >/dev/null
344 +       AC_CACHE_CHECK([for RTLD_GLOBAL brokenness],
345 +               glib_cv_rtldglobal_broken,[
346                 AC_TRY_RUN([
347 -               #include <dlfcn.h>
348 +#include <dlfcn.h>
349 +#ifndef RTLD_GLOBAL
350 +#  define RTLD_GLOBAL 0
351 +#endif
352 +#ifndef RTLD_LAZY
353 +#  define RTLD_LAZY 0
354 +#endif
355 +int glib_plugin_test;
356 +int main () {
357 +    void *handle, *global, *local;
358 +    global = &glib_plugin_test;
359 +    handle = dlopen ("./.libs/plugin.o", RTLD_GLOBAL | RTLD_LAZY);
360 +    if (!handle) return 0;
361 +    local = dlsym (handle, "glib_plugin_test");
362 +    return global == local;
363 +}                       ],
364 +                       [glib_cv_rtldglobal_broken=no],
365 +                       [glib_cv_rtldglobal_broken=yes],
366 +                       [glib_cv_rtldglobal_broken=no])
367 +               rm -f plugin.c plugin.o plugin.lo .libs/plugin.o
368 +               rmdir .libs 2>/dev/null
369 +       ])
370 +       if test "x$glib_cv_rtldglobal_broken" = "xyes"; then
371 +               G_MODULE_BROKEN_RTLD_GLOBAL=1
372 +       else
373 +               G_MODULE_BROKEN_RTLD_GLOBAL=0
374 +       fi
375 +dnl *** check whether we need preceeding underscores
376 +       AC_CACHE_CHECK([for preceeding underscore in symbols],
377 +               glib_cv_uscore,[
378 +               AC_TRY_RUN([#include <dlfcn.h>
379                  int glib_underscore_test (void) { return 42; }
380                 int main() {
381                   void *f1 = (void*)0, *f2 = (void*)0, *handle;
382 @@ -599,12 +594,12 @@
383                     f2 = dlsym (handle, "_glib_underscore_test");
384                   } return (!f2 || f1);
385                 }],
386 -                       glib_cv_uscore=yes,
387 -                       glib_cv_uscore=no,
388 -               )
389 -               rm -f plugin.c plugin.o plugin.lo
390 +                       [glib_cv_uscore=yes],
391 +                       [glib_cv_uscore=no],
392 +                       [])
393 +               rm -f plugin.c plugin.$ac_objext plugin.lo
394         ])
395 -       AC_MSG_RESULT($glib_cv_uscore)
396 +        AC_MSG_RESULT($glib_cv_uscore)
397         if test "x$glib_cv_uscore" = "xyes"; then
398                 G_MODULE_NEED_USCORE=1
399         else
400 @@ -614,8 +609,8 @@
401         LDFLAGS="$LDFLAGS_orig"
402  dnl *** check for having dlerror()
403         AC_CHECK_FUNC(dlerror,
404 -               G_MODULE_HAVE_DLERROR=1,
405 -               G_MODULE_HAVE_DLERROR=0)
406 +               [G_MODULE_HAVE_DLERROR=1],
407 +               [G_MODULE_HAVE_DLERROR=0])
408         LIBS="$LIBS_orig"
409  fi
410  dnl *** done, have e got an implementation?
411 @@ -822,100 +817,168 @@
412  dnl check for mt safe function variants
413  dnl ***********************************
414  
415 -if test x"$have_threads" != xnone; then
416 +if test x"$have_threads" != xno; then
417         glib_save_LIBS="$LIBS"
418 -       glib_save_CFLAGS="$CFLAGS"
419         # we are not doing the following for now, as this might require glib 
420         # to always be linked with the thread libs on some platforms. 
421         # LIBS="$LIBS $G_THREAD_LIBS"
422 -       CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
423 -       AC_CHECK_FUNCS(localtime_r rand_r)
424 +       AC_CHECK_FUNCS(localtime_r)
425         if test "$ac_cv_header_pwd_h" = "yes"; then
426 -               AC_MSG_CHECKING([for getpwuid_r])
427 -               AC_CACHE_VAL(ac_cv_func_getpwuid_r,
428 -                       [AC_TRY_RUN([#include <errno.h>
429 -                               int main () { char buffer[10000], *pointer; 
430 -                               char getpwuid_r (long, void*, void*,
431 -                                       int, void*);
432 -                               int error;
433 -                               errno = 0;
434 -                               error = getpwuid_r (0, &buffer, &buffer, 
435 -                                       sizeof (buffer), &pointer);
436 -                               return errno == ENOSYS || error == ENOSYS;}],
437 -                               [ac_cv_func_getpwuid_r=yes],
438 -                               [ac_cv_func_getpwuid_r=no])])
439 -               if test "$ac_cv_func_getpwuid_r" = yes; then
440 -                       AC_MSG_RESULT(yes)
441 +               AC_CACHE_CHECK([for posix getpwuid_r],
442 +                       ac_cv_func_posix_getpwuid_r,
443 +                       [AC_TRY_RUN([
444 +#include <errno.h>
445 +#include <pwd.h>
446 +int main () { 
447 +    char buffer[10000];
448 +    struct passwd pwd, *pwptr = &pwd;
449 +    int error;
450 +    errno = 0;
451 +    error = getpwuid_r (0, &pwd, buffer, 
452 +                        sizeof (buffer), &pwptr);
453 +   return (error < 0 && errno == ENOSYS) 
454 +          || error == ENOSYS; 
455 +}                               ],
456 +                               [ac_cv_func_posix_getpwuid_r=yes],
457 +                               [ac_cv_func_posix_getpwuid_r=no])])
458 +               if test "$ac_cv_func_posix_getpwuid_r" = yes; then
459 +                       AC_DEFINE(HAVE_POSIX_GETPWUID_R,1,
460                         AC_DEFINE(HAVE_GETPWUID_R)
461 +                               [Have POSIX function getpwuid_r])
462                 else
463 -                       AC_MSG_RESULT(no)
464 -               fi
465 -               if test "$ac_cv_func_getpwuid_r" = "yes"; then
466 -                       AC_MSG_CHECKING(whether getpwuid_r is posix like)
467 -                       # The signature for the POSIX version is:
468 -                       # int getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **)
469 -                       AC_TRY_COMPILE([#include <pwd.h>
470 -                                        #include <sys/types.h>
471 -                                        #include <stdlib.h>],
472 -                               [getpwuid_r((uid_t)0, NULL, NULL, (size_t)0, NULL);],
473 -                               [AC_DEFINE(HAVE_GETPWUID_R_POSIX)
474 -                               AC_MSG_RESULT(yes)],
475 -                               [AC_MSG_RESULT(no)])
476 +                       AC_CACHE_CHECK([for nonposix getpwuid_r],
477 +                               ac_cv_func_nonposix_getpwuid_r,
478 +                               [AC_TRY_LINK([#include <pwd.h>],
479 +                                       [char buffer[10000];
480 +                                       struct passwd pwd;
481 +                                       getpwuid_r (0, &pwd, buffer, 
482 +                                                       sizeof (buffer));],
483 +                                       [AC_DEFINE(HAVE_GETPWUID_R_POSIX)
484 +                                       AC_MSG_RESULT(yes)],
485 +                                       [AC_MSG_RESULT(no)])])
486 +                       if test "$ac_cv_func_nonposix_getpwuid_r" = yes; then
487 +                               AC_DEFINE(HAVE_NONPOSIX_GETPWUID_R,1,
488 +                                       [Have non-POSIX function getpwuid_r])
489 +                       fi
490                 fi
491         fi
492 +       LIBS="$G_THREAD_LIBS $LIBS"
493         if test x"$have_threads" = xposix; then
494 -               LIBS="$LIBS $G_THREAD_LIBS"
495 -               AC_MSG_CHECKING(whether pthread_getspecific is posix like)
496 -               # PCThreads has pthread_getspecific(pthread_key_t, void **);
497 -               AC_TRY_COMPILE([#include <pthread.h>],
498 -                       [pthread_getspecific(0,NULL);],
499 -                       [AC_MSG_RESULT(no)],
500 -                       [AC_MSG_RESULT(yes)
501 -                       AC_DEFINE(HAVE_PTHREAD_GETSPECIFIC_POSIX)])
502 -               AC_MSG_CHECKING(whether pthread_mutex_trylock is posix like)
503 -               # DCE Threads return 1 as success, posix 0. what a mess.
504 -               AC_TRY_RUN([#include <pthread.h>
505 -                       pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
506 -                       int main () { 
507 -                       return !pthread_mutex_trylock (&mutex); }],
508 -                       [AC_MSG_RESULT(no)],
509 -                       [AC_MSG_RESULT(yes)
510 -                       AC_DEFINE(HAVE_PTHREAD_MUTEX_TRYLOCK_POSIX)])
511 -               AC_MSG_CHECKING(whether pthread_cond_timedwait is posix like)
512 -               # DCE Threads return -1 as failure, posix ETIMEDOUT.
513 -               AC_TRY_RUN([#include <pthread.h>
514 -                       int main () { 
515 -                       pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
516 -                       pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
517 -                       struct timeval tval;
518 -                       struct timespec tspec;
519 -                       gettimeofday (&tval, NULL);
520 -                       tspec.tv_sec = tval.tv_sec;
521 -                       tspec.tv_nsec = 0;
522 -                       return pthread_cond_timedwait (&cond,&mutex,&tspec) 
523 -                               != -1;}],
524 -                       [AC_MSG_RESULT(no)],
525 +               glib_save_CPPFLAGS="$CPPFLAGS"
526 +               CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
527 +               dnl we might grow sizeof(pthread_t) later on, so use a dummy name here
528 +               GLIB_SIZEOF([#include <pthread.h>], pthread_t, system_thread)
529 +               # This is not AC_CHECK_FUNC to also work with function
530 +               # name mangling in header files.
531 +               AC_MSG_CHECKING(for pthread_attr_setstacksize)
532 +               AC_TRY_LINK([#include <pthread.h>],
533 +                       [pthread_attr_t t; pthread_attr_setstacksize(&t,0)],
534                         [AC_MSG_RESULT(yes)
535 -                       AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_POSIX)])
536 +                       AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE,1,
537 +                                 [Have function pthread_attr_setstacksize])],
538 +                       [AC_MSG_RESULT(no)])
539 +               AC_MSG_CHECKING(for minimal/maximal thread priority)
540 +               if test x"$posix_priority_min" = x; then
541 +                       AC_EGREP_CPP(PX_PRIO_MIN,[#include <pthread.h>
542 +                               PX_PRIO_MIN],,[
543 +                               posix_priority_min=PX_PRIO_MIN
544 +                               posix_priority_max=PX_PRIO_MAX])
545 +               fi
546 +               if test x"$posix_priority_min" = x; then
547 +                       # AIX
548 +                       AC_EGREP_CPP(PTHREAD_PRIO_MIN,[#include <pthread.h>
549 +                               PTHREAD_PRIO_MIN],,[
550 +                               posix_priority_min=PTHREAD_PRIO_MIN
551 +                               posix_priority_max=PTHREAD_PRIO_MAX])
552 +               fi
553 +               if test x"$posix_priority_min" = x; then
554 +                       AC_EGREP_CPP(PRI_OTHER_MIN,[#include <pthread.h>
555 +                               PRI_OTHER_MIN],,[
556 +                               posix_priority_min=PRI_OTHER_MIN        
557 +                               posix_priority_max=PRI_OTHER_MAX])
558 +               fi
559 +               if test x"$posix_priority_min" = x; then
560 +                       AC_MSG_RESULT(none found)
561 +                       AC_MSG_WARN($POSIX_NO_PRIORITIES)
562 +                       posix_priority_min=-1
563 +                       posix_priority_max=-1
564 +               else
565 +                       AC_MSG_RESULT($posix_priority_min/$posix_priority_max)
566 +                       AC_MSG_CHECKING(for pthread_setschedparam)
567 +                       AC_TRY_LINK([#include <pthread.h>],
568 +                         [pthread_t t; pthread_setschedparam(t, 0, NULL)],
569 +                         [AC_MSG_RESULT(yes)
570 +                       AC_DEFINE_UNQUOTED(POSIX_MIN_PRIORITY,$posix_priority_min,[Minimum POSIX RT priority])
571 +                          AC_DEFINE_UNQUOTED(POSIX_MAX_PRIORITY,$posix_priority_max,[Maximum POSIX RT priority])],
572 +                          [AC_MSG_RESULT(no)
573 +                           AC_MSG_WARN($POSIX_NO_PRIORITIES)])
574 +               fi
575 +               posix_yield_func=none
576 +               AC_MSG_CHECKING(for posix yield function)
577 +               for yield_func in sched_yield pthread_yield_np pthread_yield \
578 +                                                       thr_yield; do
579 +                       AC_TRY_LINK([#include <pthread.h>],
580 +                               [$yield_func()],
581 +                               [posix_yield_func="$yield_func"
582 +                               break])
583 +               done            
584 +               if test x"$posix_yield_func" = xnone; then
585 +                       AC_MSG_RESULT(none found)
586 +                       AC_MSG_WARN($POSIX_NO_YIELD)
587 +                       posix_yield_func="g_usleep(1000)"
588 +               else
589 +                       AC_MSG_RESULT($posix_yield_func)
590 +                       posix_yield_func="$posix_yield_func()"
591 +               fi
592 +               AC_DEFINE_UNQUOTED(POSIX_YIELD_FUNC,$posix_yield_func,[The POSIX RT yield function])
593 +               CPPFLAGS="$glib_save_CPPFLAGS"
594 +           
595 +       elif test x"$have_threads" = xwin32; then
596 +               # It's a pointer to a private struct
597 +               GLIB_SIZEOF(,struct _GThreadData *, system_thread)
598 +       elif test x"$have_threads" = xsolaris; then 
599 +               GLIB_SIZEOF([#include <thread.h>], thread_t, system_thread)
600         fi
601 +
602         LIBS="$glib_save_LIBS"
603 -       CFLAGS="$glib_save_CFLAGS"
604 -fi
605  
606 -if test "x$enable_threads" = "xyes"; then
607 -       if test "$ac_cv_func_getpwuid_r" != "yes"; then
608 +       # now spit out all the warnings.
609 +       if test "$ac_cv_func_posix_getpwuid_r" != "yes" && 
610 +          test "$ac_cv_func_nonposix_getpwuid_r" != "yes"; then
611                 AC_MSG_WARN($FUNC_NO_GETPWUID_R)
612         fi
613         if test "$ac_cv_func_localtime_r" != "yes"; then
614                 AC_MSG_WARN($FUNC_NO_LOCALTIME_R)
615         fi
616 +fi     
617 +
618 +if test x"$glib_cv_sizeof_system_thread" = x; then
619 +   # use a pointer as a fallback.
620 +   GLIB_SIZEOF(,void *, system_thread)
621  fi
622  
623 -AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c")
624 +#
625 +# Hack to deal with:
626 +# 
627 +#  a) GCC < 3.3 for Linux doesn't include -lpthread when
628 +#     building shared libraries with linux.
629 +#  b) libtool doesn't recognize -pthread as a library dependency.
630 +#
631 +case $host in
632 +  *-*-linux*)
633 +    G_THREAD_LIBS_FOR_GTHREAD="`echo $G_THREAD_LIBS | sed s/-pthread/-lpthread/`"
634 +    ;;
635 +  *)
636 +    G_THREAD_LIBS_FOR_GTHREAD="`echo $G_THREAD_LIBS | sed s/-pthread/-Wc,-pthread/`"
637 +    ;;
638 +esac
639 +
640 +AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c",
641 +                  [Source file containing theread implementation])
642  AC_SUBST(G_THREAD_CFLAGS)
643  AC_SUBST(G_THREAD_LIBS)
644 -
645 -CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
646 +AC_SUBST(G_THREAD_LIBS_FOR_GTHREAD)
647 +AC_SUBST(G_THREAD_LIBS_EXTRA)
648  
649  dnl **********************************************
650  dnl *** GDefaultMutex setup and initialization ***
651 @@ -940,13 +1003,14 @@
652  dnl ****************************************
653  dnl *** GLib POLL* compatibility defines ***
654  dnl ****************************************
655 -GLIB_SYSDEFS(
656 -[#include <sys/types.h>
657 -#include <sys/poll.h>],
658 -       POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32,
659 -       glibconfig-sysdefs.h,
660 -       =)
661 -
662 +if test $cross_compiling != yes ; then
663 +       GLIB_SYSDEFS(
664 +       [#include <sys/types.h>
665 +       #include <sys/poll.h>],
666 +               POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32,
667 +               glibconfig-sysdefs.h,
668 +               =)
669 +fi
670  
671  dnl ******************************
672  dnl *** output the whole stuff ***
673 --- glib-1.2.10/gmodule/Makefile.am~glib-reconf-fix.patch
674 +++ glib-1.2.10/gmodule/Makefile.am
675 @@ -42,7 +42,7 @@
676  libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ # $(libglib)
677  
678  noinst_PROGRAMS = testgmodule
679 -testgmodule_LDFLAGS += @G_MODULE_LDFLAGS@
680 +testgmodule_LDFLAGS = @G_MODULE_LDFLAGS@
681  testgmodule_LDADD = libgmodule.la $(libglib) @G_MODULE_LIBS@
682  
683  .PHONY: files release