Christopher Smith wrote:
>
> On Fri, Mar 31, 2000 at 05:30:52PM -0500, John Rousseau wrote:
> > On Friday Mar 31, 2000, Christopher Smith wrote:
> > > On Fri, Mar 31, 2000 at 08:14:47AM -0500, John Rousseau wrote:
> > > > On Friday Mar 31, 2000, Natarajan SK wrote:
> > > > Kevin Hendricks solved a very similar problem for me. This is
> > > > assuming that you are using native threads. Try linking in -lpthread
> > > > explicitly on your link line (and make sure you don't have an
> > > > explicit -lc before it).
> > > >
> > > > This is because you may be picking up the non-thread safe versions
> > > > of libc routines.
> > >
> > > I am confused, I thought all you needed to do use the right routines
> > > was to use -DREENTRANT.
> >
> > Unfortunately not. The Blackdown folks are/were considering adding
> > wrappers to their native threads library (libhpi.so) so that it
> > would pick up the correct versions. Currently you need to be careful
> > about your link line.
>
> Ok. I'm confused. This is from the glibc notes:
>
> - Macro: _THREAD_SAFE
> If you define one of these macros, reentrant versions of several
> functions get declared. Some of the functions are specified in
> POSIX.1c but many others are only available on a few other systems
> or are unique to GNU libc. The problem is that the
> standardization of the thread safe C library interface still is
> behind.
>
> Unlike on some other systems no special version of the C library
> must be used for linking. There is only one version but while
> compiling this it must have been specified to compile as thread
> safe.
>
> Is the problem actually with glibc or is it with libhpi?
The problem is with glibc - it has a few symbols that must be overridden
with other versions (found in libpthread) for proper multi-threaded
behavior. The library that depends on those symbols, libhpi, could pull
a few tricks to get those versions even if your app fails to link in
libpthread as John described -- but it doesn't currently do that.
Nathan
>
> --Chris
>
> ----------------------------------------------------------------------
> To UNSUBSCRIBE, email to [EMAIL PROTECTED]
> with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]