From: Jakub J. <ja...@re...> - 2002-05-17 07:26:10
|
On Fri, May 17, 2002 at 10:22:23AM +0300, Momchil Velikov wrote: > >>>>> "Jakub" == Jakub Jelinek <ja...@re...> writes: > > >> How do you detect threading without making these calls to libpthreads.so? > > Jakub> Weak symbols. > > Jakub> extern pthread_t pthread_self (void) __attribute__ ((weak)); > > Jakub> (resp. #pragma weak pthread_self). > Jakub> Then if (&pthread_self) { application was linked against -lpthread } else { not threaded } > Jakub> Note all calls to pthread library has to be weak. > > Hmm, if all the references to libpthread are weak, what will pull > libpthread in ? Nothing, that's the point. If an application is threaded, it has to be linked with -lpthread (or some of its libraries). In that case the weak symbols in libGL will resolve to that library and libGL will be thread-safe. If an application is not threaded, you don't want to link against -lpthread. Jakub |