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

Michal Moskal malekith w pld-linux.org
Pią, 4 Paź 2002, 09:10:45 CEST


On Fri, Oct 04, 2002 at 08:15:56AM +0200, Jakub Bogusz wrote:
> 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!

Trzeba załatać glibc. __thread występuje tylko w dwóch miejscach. Jeśli
chodzi o łaty, to w CVS mainline, bez żadnych łat __thread też jest
słowem kluczowym. 

-- 
: Michal Moskal ::::: malekith/at/pld-linux.org :  GCS {C,UL}++++$ a? !tv
: PLD Linux ::::::: Wroclaw University, CS Dept :  {E-,w}-- {b++,e}>+++ h



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