From owner-freebsd-arch@FreeBSD.ORG Fri Apr 22 19:48:52 2005 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 744E116A4CE; Fri, 22 Apr 2005 19:48:52 +0000 (GMT) Received: from mail.ntplx.net (mail.ntplx.net [204.213.176.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id D5A3343D48; Fri, 22 Apr 2005 19:48:51 +0000 (GMT) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) j3MJmjkp024204; Fri, 22 Apr 2005 15:48:45 -0400 (EDT) Date: Fri, 22 Apr 2005 15:48:45 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Scott Long In-Reply-To: <42694DAC.5090505@samsco.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.ntplx.net) cc: sgk@troutmask.apl.washington.edu cc: peter@freebsd.org cc: freebsd-arch@freebsd.org Subject: Re: libpthread version bump X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Daniel Eischen List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Apr 2005 19:48:52 -0000 On Fri, 22 Apr 2005, Scott Long wrote: > Warner Losh wrote: > >>Having lived through the std{io,err,out} libc snafu, the > >>libm.so.2 snafu, and now the libc.so.5/libpthread.so.1 > >>problem, I will once again suggest that *ALL* library > >>version numbers should be bumped when a new branch is > >>created. > > > > > > Yes. When a library version is bumped, *ALL* libraries that depend on > > it need to be bumped. Sadly, this has proven to be too difficult > > because it would create an unholy maintanence problem for the ports. > > > > Warner > > Well, there is indeed a problem at the moment of libc being bumped for > 6-current but not libpthread. However, I think that the particular > problem with the fs/gs change goes above and beyond this problem. So, > we have about 2 months to sort this all out. Any volunteers? I'm not sure I fully understand the problem, but can't you just make libpthread avoid using *setbase() if the symbol isn't available and use the ldt functions as a fallback? #pragma weak i386_get_gsbase static void *have_gsbase = i386_get_gsbase; ... if (have_gsbase == NULL) { /* use ldt stuff */ } else { /* use i386_get_gsbase */ } You just need something else to force the symbol i386_get_gsbase to be loaded; the #pragma weak won't force it to be loaded even if it is present. -- DE