# list is processed, with earlier entries taking precedence over later
# entries. So loose patterns at the end of the list can give defaults.
-# Configuration Library versions
-# ------------- ------- --------
+# This file can use cpp-style conditionals starting with % instead of #
+# to test the symbols defined in config.h by configure.
+
+# In the optional third column, there can one or more symbol set names
+# 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.
+#
+# An entry with WORDSIZE* in the second column gives an alternate
+# configuration tuple whose macros will be conditionally defined in
+# gnu/lib-names.h; @CPU@, @VENDOR@, @OS@ can be used in the third
+# column to compose the alternate tuple matched against the patterns here.
+
+# Configuration DEFAULT Earliest symbol set
+# ------------- --------------- ------------------------------
+
+s390x-.*-linux.* DEFAULT GLIBC_2.2
+cris-.*-linux.* DEFAULT GLIBC_2.2
+x86_64-.*-linux.* DEFAULT GLIBC_2.2.5
+powerpc64-.*-linux.* DEFAULT GLIBC_2.3
+.*-.*-gnu-gnu.* DEFAULT GLIBC_2.2.6
+
+# Configuration WORDSIZE[32|64] Alternate configuration
+# ------------- ---------- -----------------------
+x86_64-.*-.* WORDSIZE32 i686-@VENDOR@-@OS@
+i.86-.*-.* WORDSIZE64 x86_64-@VENDOR@-@OS@
+s390x-.*-.* WORDSIZE32 s390-@VENDOR@-@OS@
+s390-.*-.* WORDSIZE64 s390x-@VENDOR@-@OS@
+powerpc64-.*-.* WORDSIZE32 powerpc-@VENDOR@-@OS@
+powerpc.*-.*-.* WORDSIZE64 powerpc64-@VENDOR@-@OS@
+sparc64.*-.*-.* WORDSIZE32 sparc-@VENDOR@-@OS@
+sparc.*-.*-.* WORDSIZE64 sparc64-@VENDOR@-@OS@
+
+# Configuration ABI Identifier for ABI data files
+# ------------- ---------- -----------------------------
+sparc64.*-.*-.* ABI sparc64-@OS@
+sparc.*-.*-.* ABI sparc-@OS@
+
+# Configuration Library=version Earliest symbol set (optional)
+# ------------- --------------- ------------------------------
# The interface to -lm depends mostly only on cpu, not on operating system.
-i.86-.*-.* libm=6
-m68k-.*-.* libm=6
-sparc-.*-.* libm=6
-sparc64-.*-.* libm=6
+sparc64.*-.*-linux.* libm=6 GLIBC_2.2
alpha.*-.*-linux.* libm=6.1
-alpha.*-.*-.* libm=6
-powerpc-.*-.* libm=6
-mips-.*-.* libm=6
+ia64-.*-linux.* libm=6.1 GLIBC_2.2
+sh.*-.*-linux.* libm=6 GLIBC_2.2
+.*-.*-linux.* libm=6
+.*-.*-gnu-gnu.* libm=6
# We provide libc.so.6 for Linux kernel versions 2.0 and later.
alpha.*-.*-linux.* libc=6.1
+ia64-.*-linux.* libc=6.1 GLIBC_2.2
+sh.*-.*-linux.* libc=6 GLIBC_2.2
+sparc64.*-.*-linux.* libc=6 GLIBC_2.2
.*-.*-linux.* libc=6
# libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release.
.*-.*-gnu-gnu.* libmachuser=1
-# libhurduser.so.0.0 corresponds to hurd/*.defs as of 7 May 1996.
-.*-.*-gnu-gnu* libhurduser=0.0
+# libhurduser.so.0.3 corresponds to hurd/*.defs as of 11 June 2002.
+.*-.*-gnu-gnu.* libhurduser=0.3
-# libc.so.0.2 is for the Hurd alpha release 0.2.
-.*-.*-gnu-gnu* libc=0.2
+# libc.so.0.3 is the first Hurd libc using libio.
+.*-.*-gnu-gnu.* libc=0.3
# The dynamic loader also requires different names.
i.86-.*-linux.* ld=ld-linux.so.2
-sparc-.*-linux.* ld=ld-linux.so.2
-sparc64-.*-linux.* ld=ld-linux64.so.2
+sparc64.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
+sparc.*-.*-linux.* ld=ld-linux.so.2
alpha.*-.*-linux.* ld=ld-linux.so.2
+sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_2.2
+ia64-.*-linux.* ld=ld-linux-ia64.so.2 GLIBC_2.2
+s390x-.*-linux.* ld=ld64.so.1 GLIBC_2.2
+powerpc64.*-.*-linux.* ld=ld64.so.1 GLIBC_2.3
+cris-.*-linux.* ld=ld.so.1 GLIBC_2.2
+x86_64-.*-linux.* ld=ld-linux-x86-64.so.2 GLIBC_2.2.5
# We use the ELF ABI standard name for the default.
.*-.*-.* ld=ld.so.1
# names given in /etc/nsswitch.conf.
.*-.*-.* libnss_files=2
.*-.*-.* libnss_dns=2
-.*-.*-.* libnss_db=2
.*-.*-.* libnss_compat=2
.*-.*-.* libnss_nis=2
.*-.*-.* libnss_nisplus=2
.*-.*-.* libnss_ldap=2
.*-.*-.* libnss_hesiod=2
+.*-.*-.* libnss_db=2
+
+# Tests for NSS. They must have the same NSS_SHLIB_REVISION number as
+# the rest.
+.*-.*-.* libnss_test1=2
# Version for libnsl with YP and NIS+ functions.
alpha.*-.*-linux.* libnsl=1.1
.*-.*-.* libnsl=1
-# We use libdb.so.3 for the interface in version 2.x of the Berkeley DB code.
-.*-.*-.* libdb=3
-
# This defines the shared library version numbers we will install.
alpha.*-.*-linux.* libcrypt=1.1
.*-.*-.* libcrypt=1
# The gross patch for programs assuming broken locale implementations.
alpha.*-.*-linux.* libBrokenLocale=1.1
+ia64-.*-.* libBrokenLocale=1 GLIBC_2.2
+sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
+sparc64.*-.*-.* libBrokenLocale=1 GLIBC_2.2
.*-.*-.* libBrokenLocale=1
# The real-time library from POSIX.1b.
.*-.*-.* librt=1
+
+# The asynchronous name lookup library.
+.*-.*-.* libanl=1