1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
# This file defines the minimum symbol version number used by the
# system-provided libcrypt, for each CPU and OS where libxcrypt can be
# binary backward compatible with it. See also lib/libcrypt.map.in,
# build-aux/scripts/compute-symver-floor, and
# build-aux/scripts/gen-libcrypt-map.
#
# Lines in this file that start with '#' are comments; # is not
# otherwise significant. Blank lines are ignored. All other lines
# must have three or four columns: VERSION, SYSTEM, CPU_FAMILY,
# and PREPROCESSOR_CHECK, in that order.
#
# VERSION is the minimum symbol version to use on hosts where SYSTEM
# and CPU_FAMILY match autoconf's $host_os and $host_cpu values,
# respectively, when interpreted as (Perl) regexes. There is an implicit
# ^ at the beginning of each regex (that is, they must match starting
# at the beginning of the string) but there is no implicit $ at the end
# (that is, they do not have to match the entire string). Use '.'
# to accept any string.
#
# If there is anything more on the line after the CPU_FAMILY field,
# all of it is taken as a preprocessor #if expression which must be
# true for this line's version number to be used. The macros defined
# in <limits.h> are available to this expression. This mechanism is
# for subarchitectures that do not change $host_cpu, e.g. x32 (I wish
# they wouldn't do that...)
#
# The symbol version XCRYPT_2.0 is special; if this file selects that
# version as the minimum for some platform, configure will
# automatically switch into --disable-obsolete-api mode. This is used
# for platforms where either we have not yet implemented binary
# backward compatibility with the system-provided libcrypt, or we know
# there is no system-provided libcrypt to be compatible with.
#
# The symbol version ERROR is special; if this file selects that
# version as the minimum for some platform, configuration will fail.
# This is used for platforms where we know we ought to support
# backward binary compatibility and the library shouldn't be allowed
# to be used until someone's set this up properly.
#
# More specific regexes must be sorted below less specific ones, and
# empty PREPROCESSOR_CHECK must be sorted below non-empty. If neither
# constraint applies, sort entries in descending order of symbol
# version within one SYSTEM, and in alphabetical order of CPU_FAMILY
# within each symbol version.
#
# Future cleanup: the ERROR lines for 'gnu*', 'kfreebsd*gnu*', and
# 'linux*gnu*' can be removed once GNU libc stops shipping libcrypt.
# It will be correct to use XCRYPT_2.0 as the minimum symbol version
# for any platform added to glibc after that release.
#VERSION SYSTEM CPU_FAMILY PREPROCESSOR_CHECK
# GNU Hurd
GLIBC_2.38 gnu x86_64
GLIBC_2.2.6 gnu i[3-9]86
ERROR gnu .
# FreeBSD kernel with GNU libc
GLIBC_2.3 kfreebsd.*gnu x86_64 !(defined __x86_64__ && ULONG_MAX == UINT_MAX) /* not x32 */
GLIBC_2.3 kfreebsd.*gnu i[3-9]86
ERROR kfreebsd.*gnu .
# Linux with GNU libc
GLIBC_2.36 linux.*gnu loongarch64 __WORDSIZE == 64 && ULONG_MAX != UINT_MAX /* lp64* ABI */
GLIBC_2.35 linux.*gnu or1k
GLIBC_2.33 linux.*gnu riscv32
GLIBC_2.32 linux.*gnu arc
GLIBC_2.29 linux.*gnu csky
GLIBC_2.27 linux.*gnu riscv64
GLIBC_2.21 linux.*gnu nios2
GLIBC_2.18 linux.*gnu microblaze
GLIBC_2.17 linux.*gnu aarch64
GLIBC_2.17 linux.*gnu powerpc64le
GLIBC_2.16 linux.*gnu x86_64 defined __x86_64__ && ULONG_MAX == UINT_MAX /* x32 */
GLIBC_2.12 linux.*gnu tilegx
GLIBC_2.12 linux.*gnu tilepro
GLIBC_2.4 linux.*gnu arm
GLIBC_2.4 linux.*gnu m68k defined __mcoldfire__
GLIBC_2.3 linux.*gnu powerpc64
GLIBC_2.2.5 linux.*gnu x86_64 defined __x86_64__ && ULONG_MAX != UINT_MAX /* 64 */
GLIBC_2.2 linux.*gnu s390x
GLIBC_2.0 linux.*gnu alpha
GLIBC_2.0 linux.*gnu e2k
GLIBC_2.0 linux.*gnu hppa
GLIBC_2.0 linux.*gnu i[3-9]86
GLIBC_2.0 linux.*gnu ia64
GLIBC_2.0 linux.*gnu m68k
GLIBC_2.0 linux.*gnu mips
GLIBC_2.0 linux.*gnu powerpc
GLIBC_2.0 linux.*gnu s390
GLIBC_2.0 linux.*gnu sh
GLIBC_2.0 linux.*gnu sparc
GLIBC_2.0 linux.*gnu x86_64
ERROR linux.*gnu .
# Other systems.
XCRYPT_2.0 . .
|