On Wed, 30 Oct 2002, Doug Rabson wrote:

> On Wed, 30 Oct 2002, Terry Lambert wrote:
>
> > Doug Rabson wrote:
> > > On Wed, 30 Oct 2002, Terry Lambert wrote:
> > > > Daniel Eischen wrote:
> > > > > Patch looks correct.
> > > >
> > > > Please commit?  8-).
> > >
> > > Well I made a libc with this patch and rebuilt XFree86-4-libraries without
> > > libXThrStub but I ran into problems compiling the clients. The clients
> > > *require* someone in the link to supply the pthread_* symbols and libc.so
> > > only had _pthread_* symbols. I added some more weak references to libc.so
> > > but that just gets us back to square one.
> > >
> > > The problem is that the sawfish configuration tools are written using some
> > > extensible lisp/scheme thing called rep. The main rep binary links against
> > > libc.so so that occurs early in the list. Later on stacks of libraries are
> > > loaded dynamically, some of which depend on libc_r.so. Unfortunately
> > > libc_r.so is far too late in the list to get a lookin and it dies in
> > > exactly the same way as before, for the same reason (calling a
> > > non-functional stub version of pthread_setspecific().
> >
> > You need to link the library against libc_r.so instead of libXThrStub.so.
>
> Probably not. Doing that breaks the existing 'feature' of being able to
> use X11 in entirely non-threaded programs. I'm not sure whether that is
> acceptable. It also stops programs from being able to select between
> several thread implementations, of which -current has two.
>
> I think the only sensible solution to this problem is for libraries which
> provide an actual pthreads implementation (rather than a set of stubs) to
> define strong symbols. Wierd debugging wrappers can still be achieved via
> some dlopen/dlsym hackery.

For what its worth, doing this (defining strong pthread_* symbols in
libc_r) makes everything work fine, with or without libXThrStub.

-- 
Doug Rabson                             Mail:  [EMAIL PROTECTED]
                                        Phone: +44 20 8348 6160



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to