hurd-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Extra version stuff in glibc?


From: Marcus Brinkmann
Subject: Re: Extra version stuff in glibc?
Date: Sat, 23 Mar 2002 04:32:42 +0100
User-agent: Mutt/1.3.27i

On Fri, Mar 22, 2002 at 02:03:06PM -0800, Jeff Bailey wrote:
> On Fri, Mar 22, 2002 at 01:36:17PM -0500, Roland McGrath wrote:
> > Check the .map files in your libc build.  libc.map seems to be wrong.
> > Try removing it and doing a rebuild.  If it comes out different,
> > then try to reproduce the original failure with a clean build.
> > This is exactly what the 2002-03-14 libc changes should have fixed.
> 
> I can now reproduce the failure - I'm trying to grok the Makefiles
> enough to guess the correct fix.

The generation of the maps is fine, what doesn't work is generation of the
soversions.  The rules for soversions.i don't take into account the
oldest-abi value at all, only the information in shlib-versions.  But
shlib-versions doesn't say alot about Hurd requirements, only in the one
case:

%if defined(USE_IN_LIBIO) && !defined(GLIBC_OLDEST_ABI)
// If you use configure --enable-libio --enable-oldest-abi=2.0 then we
// won't rename the old version sets and all the libraries except libc
// itself ought to be binary compatible with the libc.so.0.2 ABI.
.*-.*-gnu-gnu.*         DEFAULT                 GLIBC_2.2.5
%endif

So the only case where the soversions.i file is correct is in the case:
without libio, no (or the default) oldest abi specified and with libio, and
_no_ oldest abi specified (any oldest-abi option will make it drop back to
the default, which is 2.0).

Note the utter lack of mentioning the oldest abi in the rules for
soversions.i.  This is how soversions.i looks in a build with libio and no
oldest abi specified:

address@hidden:/tmp/libc$ less build-libio/soversions.i
libm 6 GLIBC_2.2.5
libmachuser 1 GLIBC_2.2.5
libhurduser 0.0 GLIBC_2.2.5
libc 0.3 GLIBC_2.2.5
ld ld.so.1 GLIBC_2.2.5
...

And like this in any other configuration:
libm 6
libmachuser 1
libhurduser 0.0
libc 0.3
ld ld.so.1
libdl 2

Which is of course only right for the stdio, no (or default == 2.0) oldest abi
version.

The rules for soversions.i in Makeconfig needs fixing.

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org address@hidden
Marcus Brinkmann              GNU    http://www.gnu.org    address@hidden
address@hidden
http://www.marcus-brinkmann.de



reply via email to

[Prev in Thread] Current Thread [Next in Thread]