On Thu, 31 Oct 2002, Alexander Kabaev wrote: > On Wed, 30 Oct 2002 22:25:12 -0500 (EST) > Daniel Eischen <[EMAIL PROTECTED]> wrote: > > > > If last weak will win, the normal case when Xthrstub is loaded > > > _after_ libc_r will break. The only way to really fix this is to > > > export pthread_ symbols as strong in libc_r. Exporting them as weak > > > sounds like is a mistake which should be fixed. > > > > I disagree. See Solaris 6, 7, 8 & 9 for an example. > > > Cool. Then let's be consistent and follow Solaris all the way. Libc on > Solaris provides full set of pthread_? functions which in turn call > weakly defined _pthread_?? counterparts. libpthread in turn provides > strong definitions for _pthread_??. > > Since in absolute majority of cases libc is the first library searched > for symbols, all pthread references will be bound to it and failure > described by Doug will not happen. > > Any library providing strong pthread_ definitions will be able to > override ones provided by the system.
Our libc is quite different. We define a (weak) set of _pthread_* symbols and libc_r defines a set of strong _pthread_* symbols and a set of weak pthread_* aliases for them. It sounds like libc should define weak _pthread_*, and weak pthread_* aliases for them. Libc_r should define strong _pthread_* symbols and libc's aliases will then resolve to them. That ought to work quite well in this situation and should satisfy everyone. -- 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