# This file 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.

# 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		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
arm.*-.*-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
# 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.0 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
.*-.*-.*		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

# 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

# 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

# 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
hppa-.*-.*		libBrokenLocale=1	GLIBC_2.2
.*-.*-.*		libBrokenLocale=1

# The real-time library from POSIX.1b.
mips.*-.*-linux.*	librt=1			GLIBC_2.0 GLIBC_2.2
.*-.*-.*		librt=1

# The asynchronous name lookup library.
.*-.*-.*		libanl=1