This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: Extra version stuff in glibc?
- From: Marcus Brinkmann <Marcus dot Brinkmann at ruhr-uni-bochum dot de>
- To: Jeff Bailey <jbailey at nisa dot net>
- Cc: Roland McGrath <roland at frob dot com>, hurd-devel at gnu dot org,GNU C Library <libc-alpha at sources dot redhat dot com>
- Date: Sat, 23 Mar 2002 04:58:16 +0100
- Subject: Re: Extra version stuff in glibc?
- References: <20020322055850.B2736@nisa.net> <20020322183617.A199E1BA02@perdition.linnaean.org> <20020322140306.A9400@nisa.net> <20020323033242.GF1456@212.23.136.22>
Hi,
here is a fix for the below problem.
2002-03-23 Marcus Brinkmann <marcus@gnu.org>
* Makeconfig ($(common-objpfx)soversions.i): If there is no
standard version, apply $(oldest-abi) if it is set.
--- /mnt/marcus/gnu/cvs/libc/Makeconfig Mon Mar 18 01:42:51 2002
+++ ./Makeconfig Sat Mar 23 04:42:42 2002
@@ -772,7 +772,7 @@
if eval test -z "\$${versioned_$${lib}}"; then \
eval versioned_$${lib}=yes; \
number=`echo $$version | sed "s/^.*=//"`; \
- echo $$lib $$number $${setname:-$${default_setname}}; \
+ echo $$lib $$number $${setname:-$${default_setname:-$(if $(filter default,$(oldest-abi)),,GLIBC_$(oldest-abi))}}; \
fi; \
fi; \
done < $< > $@T; exit 0
On Sat, Mar 23, 2002 at 04:32:42AM +0100, Marcus Brinkmann wrote:
> 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:
>
> marcus@ulysses[0]:/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 brinkmd@debian.org
> Marcus Brinkmann GNU http://www.gnu.org marcus@gnu.org
> Marcus.Brinkmann@ruhr-uni-bochum.de
> http://www.marcus-brinkmann.de
>
>
--
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann GNU http://www.gnu.org marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de