Date: Thu, 15 Feb 2001 09:16:47 -0500 (EST) From: Daniel Eischen <eischen@vigrid.com> To: Warner Losh <imp@harmony.village.org> Cc: arch@FreeBSD.ORG Subject: Re: The whole libc thing. Message-ID: <Pine.SUN.3.91.1010215091552.2023A@pcnet1.pcnet.com> In-Reply-To: <200102150903.f1F93rW62243@harmony.village.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 15 Feb 2001, Warner Losh wrote: > > OK. Pere's bumping of libc won't work. We'd have to bump all shared > libraries that use stdio, which is too many. Even in the ports > system. > > The issue, for those following along at home. > > libc.so.5 defined std{in,out,err} in terms of absolte offsets into > the __sF array. This is bad if we ever want to change the size of > __sF. > > libc.so.5.20010213 introduced __std{in,out,err} to deal with this. > These would be referenced rather than the __sF array. > > Now here's where the problem comes in. > > If I rebuild the world, certain libraries, like libcam.so.2, change > from referencing __sF to referencing __stderr and the like. This is > fine for new binaries, but introduces a problem for old binaries. > > Consider cdrecord built before the change, say on 4.2R. It will > reference libc.so.4 (which has the __sF symbols, but not the __stderr > ones) and libcam.so.2. After the above buildworld, running cdrecord > will break with __stderr undefined. why? Well, that's involved. > > cdrecord runs and ld.so brings in libcam.so.2 and libc.so.4. Since > libcam.so.2 references __stderr and libc.so.4 doesn't have it, we get > the error. > > The only solution is to bump the major number of libcam.so.3 so that > old applications continue to work. > > However, that's the rub. *ALL* libraries that reference > std{in,out,err} would need their major numbers bumped. Let's just bump the libraries and be done with it. -- Dan Eischen To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SUN.3.91.1010215091552.2023A>