gcc 3.2 - zepsute pthreads (i STL) przy glibc 2.2.5

Jakub Bogusz qboosh w pld.org.pl
Pią, 4 Paź 2002, 08:15:56 CEST


Któryś patch (podejrzewam gcc32-tls.patch, nadający specjalne znaczenie
symbolowi __thread) uniemożliwia używanie np. <iostream>; okazuje się,
że nawet samego <pthread.h>:

$ cc -c a.c
In file included from a.c:1:
/usr/include/pthread.h:163: parse error before "__thread"
/usr/include/pthread.h:165: `pthread_create' declared as function returning a function
/usr/include/pthread.h:166: parse error before "void"
/usr/include/pthread.h:591: storage class specified for parameter `type name'
In file included from /usr/include/pthread.h:655,
                 from a.c:1:
/usr/include/bits/sigthread.h:36: storage class specified for parameter `type name'

Jako workaround pomaga zmiana nazwy __thread na inną, np.
-D__thread=__blah (ale nie wiem, czy program korzystający z wątków potem
działa).

Być może przy glibc 2.3 nie ma tego problemu, ale... gcc 3.2 nie wymaga
glibc 2.3, a przed łataniem działał dobrze z 2.2.5!
 

-- 
Jakub Bogusz    http://www.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl