This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I noticed there is a lot of error-prone duplication in shlib-versions every time a new platform is added. This patch allows for special entries to set the default symbol set list to be used when a library entry with no specific list matches. As a random example, my patch includes changes to make s390x-.*-linux.* use the new feature instead of having many specific entries. Numerous other platforms could likewise use the feature to make their specifications in shlib-versions more concise. Of course, no platform's specifications should actually be changed except by the port maintainers. 2001-04-08 Roland McGrath <roland@frob.com> * Makeconfig ($(common-objpfx)soversions.i): Grok entries with DEFAULT in second column, to provide default values for third column. * shlib-versions: Add comments about using DEFAULT in second column. (s390x-.*-linux.*): Replace individual entries with a DEFAULT entry. Index: Makeconfig =================================================================== RCS file: /cvs/glibc/libc/Makeconfig,v retrieving revision 1.254 diff -u -r1.254 Makeconfig --- Makeconfig 2001/01/07 00:37:33 1.254 +++ Makeconfig 2001/04/09 02:21:47 @@ -1,4 +1,4 @@ -# Copyright (C) 1991-1999,2000 Free Software Foundation, Inc. +# Copyright (C) 1991-1999,2000,01 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -725,11 +725,15 @@ test -n "$$version" && \ test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \ : "$$conf"` != 0 || continue; \ - lib=`echo $$version | sed 's/=.*$$//'`; \ - if eval test -z "\$${versioned_$${lib}}"; then \ - eval versioned_$${lib}=yes; \ - number=`echo $$version | sed "s/^.*=//"`; \ - echo $$lib $$number $$setname; \ + if test "x$$version" = xDEFAULT; then \ + default_setname="$$setname"; \ + else \ + lib=`echo $$version | sed 's/=.*$$//'`; \ + if eval test -z "\$${versioned_$${lib}}"; then \ + eval versioned_$${lib}=yes; \ + number=`echo $$version | sed "s/^.*=//"`; \ + echo $$lib $$number $${setname:-$${default_setname}}; \ + fi; \ fi; \ done > $@T; exit 0 mv -f $@T $@ Index: shlib-versions =================================================================== RCS file: /cvs/glibc/libc/shlib-versions,v retrieving revision 1.57 diff -u -r1.57 shlib-versions --- shlib-versions 2001/03/16 08:46:26 1.57 +++ shlib-versions 2001/04/09 02:21:47 @@ -12,7 +12,17 @@ # listed, which must be in ascending version order reading left to right # and must appear in this same order in the Versions.def file. Each listed # version subsumes all prior versions back to the previous listed version. +# +# An entry with DEFAULT in the second column gives a default third column +# to apply on matching configurations when the matching entry for a particular +# library has no third column. The defaults must precede the entries they +# apply to. +# Configuration DEFAULT Earliest symbol set +# ------------- --------------- ------------------------------ + +s390x-.*-linux.* DEFAULT GLIBC_2.2 + # Configuration Library=version Earliest symbol set (optional) # ------------- --------------- ------------------------------ @@ -23,7 +33,6 @@ ia64-.*-linux.* libm=6.1 GLIBC_2.2 sh.*-.*-linux.* libm=6 GLIBC_2.2 hppa.*-.*-.* libm=6 GLIBC_2.2 -s390x-.*-linux.* libm=6 GLIBC_2.2 .*-.*-linux.* libm=6 .*-.*-gnu-gnu.* libm=6 @@ -35,7 +44,6 @@ sh.*-.*-linux.* libc=6 GLIBC_2.2 sparc64-.*-linux.* libc=6 GLIBC_2.2 hppa.*-.*-.* libc=6 GLIBC_2.2 -s390x-.*-linux.* libc=6 GLIBC_2.2 .*-.*-linux.* libc=6 # libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release. @@ -44,11 +52,12 @@ # libhurduser.so.0.0 corresponds to hurd/*.defs as of 7 May 1996. .*-.*-gnu-gnu.* libhurduser=0.0 +%ifndef USE_IN_LIBIO # libc.so.0.2 is for the Hurd alpha release 0.2. -%ifdef USE_IN_LIBIO /* experimental only! */ -.*-.*-gnu-gnu.* libc=0.2.90.libio GLIBC_2.2 -%else .*-.*-gnu-gnu.* libc=0.2 +%else /* experimental only! */ +# libc.so.0.3 is +.*-.*-gnu-gnu.* libc=0.2.91.libio GLIBC_2.2.3 %endif # The dynamic loader also requires different names. @@ -61,20 +70,17 @@ ia64-.*-linux.* ld=ld-linux-ia64.so.2 GLIBC_2.2 mips.*-.*-linux.* ld=ld.so.1 GLIBC_2.0 GLIBC_2.2 hppa.*-.*-.* ld=ld.so.1 GLIBC_2.2 -s390x-.*-linux.* ld=ld64.so.1 GLIBC_2.2 # We use the ELF ABI standard name for the default. .*-.*-.* ld=ld.so.1 # The -ldl interface (see <dlfcn.h>) is the same on all platforms. alpha.*-.*-linux.* libdl=2.1 mips.*-.*-linux.* libdl=2 GLIBC_2._2.2 -s390x-.*-linux.* libdl=2 GLIBC_2.2 .*-.*-.* libdl=2 # So far the -lutil interface is the same on all platforms, except for the # `struct utmp' format, which depends on libc. alpha.*-.*-linux.* libutil=1.1 -s390x-.*-linux.* libutil=1 GLIBC_2.2 .*-.*-.* libutil=1 # Version number 2 is used on other systems for the BIND 4.9.5 resolver @@ -93,13 +99,6 @@ mips.*-.*-linux.* libnss_nisplus=2 GLIBC_2.0 GLIBC_2.2 mips.*-.*-linux.* libnss_ldap=2 GLIBC_2.0 GLIBC_2.2 mips.*-.*-linux.* libnss_hesiod=2 GLIBC_2.0 GLIBC_2.2 -s390x-.*-linux.* libnss_files=2 GLIBC_2.2 -s390x-.*-linux.* libnss_dns=2 GLIBC_2.2 -s390x-.*-linux.* libnss_compat=2 GLIBC_2.2 -s390x-.*-linux.* libnss_nis=2 GLIBC_2.2 -s390x-.*-linux.* libnss_nisplus=2 GLIBC_2.2 -s390x-.*-linux.* libnss_ldap=2 GLIBC_2.2 -s390x-.*-linux.* libnss_hesiod=2 GLIBC_2.2 .*-.*-.* libnss_files=2 .*-.*-.* libnss_dns=2 .*-.*-.* libnss_compat=2 @@ -111,12 +110,10 @@ # Version for libnsl with YP and NIS+ functions. alpha.*-.*-linux.* libnsl=1.1 mips.*-.*-linux.* libnsl=1 GLIBC_2.0 GLIBC_2.2 -s390x-.*-linux.* libnsl=1 GLIBC_2.2 .*-.*-.* libnsl=1 # This defines the shared library version numbers we will install. alpha.*-.*-linux.* libcrypt=1.1 -s390x-.*-linux.* libcrypt=1 GLIBC_2.2 .*-.*-.* libcrypt=1 # The gross patch for programs assuming broken locale implementations. @@ -125,12 +122,10 @@ sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2 sparc64-.*-.* libBrokenLocale=1 GLIBC_2.2 hppa-.*-.* libBrokenLocale=1 GLIBC_2.2 -s390x-.*-linux.* libBrokenLocale=1 GLIBC_2.2 .*-.*-.* libBrokenLocale=1 # The real-time library from POSIX.1b. mips.*-.*-linux.* librt=1 GLIBC_2.0 GLIBC_2.2 -s390x-.*-linux.* librt=1 GLIBC_2.2 .*-.*-.* librt=1 # The asynchronous name lookup library.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |