openldap-2.0.7's configuration program tests for pthreads. the test program that normally succeeds segfaults with glibc-2.2-12. went back to 2.2-9 and it's working again. the test program is here (watch the line wrapping though). the included file condefs.h can be gotten from the openldap-2.0.7 package. pete #include "confdefs.h" /* pthread test headers */ #include <pthread.h> #ifndef NULL #define NULL (void*)0 #endif static void *task(p) void *p; { return (void *) (p == NULL); } int main(argc, argv) int argc; char **argv; { /* pthread test function */ pthread_t t; int status; #if HAVE_PTHREADS_FINAL && defined(PTHREAD_CREATE_UNDETACHED) /* This system (e.g. AIX) defaults detached; must override */ pthread_attr_t attr; status = pthread_attr_init(&attr); if( status ) exit( status ); status = pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_UNDETACHED); if( status ) exit( status ); #define ATTR &attr #else #if HAVE_PTHREADS_D4 #define ATTR pthread_attr_default #else #define ATTR NULL #endif #endif /* make sure pthread_create() isn't just a stub */ status = pthread_create(&t, ATTR, task, NULL); if( status ) exit( status ); /* make sure pthread_detach() isn't just a stub */ #if HAVE_PTHREADS_D4 status = pthread_detach( &t ); #else status = pthread_detach( t ); #endif #ifdef HAVE_LINUX_THREADS pthread_kill_other_threads_np(); #endif exit( status ); }
Created attachment 7566 [details] conftest.c
Created attachment 7567 [details] including confdefs.h too
I've fixed this yesterday, it made into 2.2.1 final. It will appear once next rpms are built.
You can grab glibc-2.2.1-2 from rawhide.