-# This file defines the shared library version numbers we will install.
+# This file (and shlib-versions files in sysdeps directories) defines
+# the shared library version numbers we will install.
-# The following lines list filename patterns matching canonical configurations,
-# and the associated versions to use for various libraries. The entire
-# list is processed, with earlier entries taking precedence over later
-# entries. So loose patterns at the end of the list can give defaults.
+# The following lines list the associated versions to use for various
+# libraries. The entire list is processed, with earlier entries
+# taking precedence over later entries (and the files from sysdeps
+# directories coming before those from other subdirectories, which
+# come before this file).
# 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
+# In the optional second 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 Library=version Earliest symbol set (optional)
-# ------------- --------------- ------------------------------
-
-# The interface to -lm depends mostly only on cpu, not on operating system.
-sparc64-.*-linux.* libm=6 GLIBC_2.2
-alpha.*-.*-linux.* libm=6.1
-mips.*-.*-linux.* libm=6 GLIBC_2.0 GLIBC_2.2
-ia64-.*-linux.* libm=6.1 GLIBC_2.2
-sh.*-.*-linux.* libm=6 GLIBC_2.2
-hppa.*-.*-.* 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
-# Working mips versions were never released between 2.0 and 2.2.
-mips.*-.*-linux.* libc=6 GLIBC_2.0 GLIBC_2.2
-ia64-.*-linux.* libc=6.1 GLIBC_2.2
-sh.*-.*-linux.* libc=6 GLIBC_2.2
-sparc64-.*-linux.* libc=6 GLIBC_2.2
-hppa.*-.*-.* 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.3 corresponds to hurd/*.defs as of 11 June 2002.
-.*-.*-gnu-gnu.* libhurduser=0.3
-
-# 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
-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
-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
-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
+# An entry with DEFAULT in the first column gives a default second
+# column to apply when the matching entry for a particular library has
+# no second column. The defaults must precede the entries they apply
+# to.
+
+# Library=version Earliest symbol set (optional)
+# --------------- ------------------------------
+
# We use the ELF ABI standard name for the default.
-.*-.*-.* ld=ld.so.1
+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.0 GLIBC_2.2
-.*-.*-.* libdl=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
-.*-.*-.* libutil=1
+libutil=1
# Version number 2 is used on other systems for the BIND 4.9.5 resolver
# interface.
-alpha.*-.*-linux.* libresolv=2.1
-mips.*-.*-linux.* libresolv=2 GLIBC_2.0 GLIBC_2.2
-.*-.*-.* libresolv=2
+libresolv=2
# Interface revision of nss_* modules. This must match NSS_SHLIB_REVISION
# in nss/nsswitch.h, which determines the library names used for service
# names given in /etc/nsswitch.conf.
-mips.*-.*-linux.* libnss_files=2 GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.* libnss_dns=2 GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.* libnss_compat=2 GLIBC_2.0 GLIBC_2.2
-mips.*-.*-linux.* libnss_nis=2 GLIBC_2.0 GLIBC_2.2
-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
-.*-.*-.* libnss_files=2
-.*-.*-.* libnss_dns=2
-.*-.*-.* libnss_compat=2
-.*-.*-.* libnss_nis=2
-.*-.*-.* libnss_nisplus=2
-.*-.*-.* libnss_ldap=2
-.*-.*-.* libnss_hesiod=2
+libnss_files=2
+libnss_dns=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
+libnss_test2=2
# Version for libnsl with YP and NIS+ functions.
-alpha.*-.*-linux.* libnsl=1.1
-mips.*-.*-linux.* libnsl=1 GLIBC_2.0 GLIBC_2.2
-.*-.*-.* libnsl=1
+libnsl=1
# This defines the shared library version numbers we will install.
-alpha.*-.*-linux.* libcrypt=1.1
-.*-.*-.* libcrypt=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
-hppa-.*-.* libBrokenLocale=1 GLIBC_2.2
-.*-.*-.* libBrokenLocale=1
+libBrokenLocale=1
# The real-time library from POSIX.1b.
-mips.*-.*-linux.* librt=1 GLIBC_2.0 GLIBC_2.2
-.*-.*-.* librt=1
+librt=1
# The asynchronous name lookup library.
-.*-.*-.* libanl=1
+libanl=1
+
+# This defines the libgcc soname version this glibc is to load for
+# asynchronous cancellation to work correctly.
+libgcc_s=1
+
+# The vector math library
+libmvec=1