Bug 23966
| Summary: | glibc-2.2-12 breaks pthreads | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Retired] Red Hat Linux | Reporter: | Pete Toscano <sigsegv> | ||||||
| Component: | glibc | Assignee: | Jakub Jelinek <jakub> | ||||||
| Status: | CLOSED RAWHIDE | QA Contact: | Aaron Brown <abrown> | ||||||
| Severity: | high | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | 7.0 | CC: | fweimer, shishz, sigsegv | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | i386 | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2001-01-14 09:36:01 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Attachments: |
|
||||||||
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. |
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 ); }