This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Extra version stuff in glibc?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]