Skip site navigation (1)Skip section navigation (2)
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>