1# Definition of features which introduce new libc ABI versions. This 2# file is used to create a header file with definitions for the various 3# versions. The static linker will encode in the EI_ABIVERSION field in 4# the e_ident array in the ELF program header the required ABI version. 5# This is not a bitmask. The maximum ABI version required must be 6# encoded. 7# 8# Adding new features should always happen by appending new lines. Never 9# add entries in the middle or where they seem "logical". Once a version 10# is assigned to a feature it must not change again. Since some features 11# are conditionally added this can only ever be done securely without much 12# risk is by adding at the end. 13# 14# The following lines have one of two formats: 15# 16# SYMBOL 17# With just a symbol on the line this is the name of a feature which 18# is architecture independent. 19# 20# SYMBOL PLATFORM 21# Using this form architecture (and platform) dependent features can be 22# specified. The PLATFORM name can use the wildcards available in 23# the Bourne shell's case expression. 24# 25# Note that the same symbol can be used using different platform triples. 26# They don't have to be in the same order relative to other entries. This 27# can happen if the feature is implemented for different architectures 28# at different times. 29# 30# This file is parsed by a script which produces a header file containing 31# a single enum definition. An extra symbol is added as entry zero to 32# specify the default ABI with number 0 and an artificial last entry is 33# added to allow computing the maximum ABI version for the platform. 34# 35# Feature Name Configuration 36# ------------ ------------- 37# 38# Unique symbol definitions for C++. 39# Architecture independent, all ELF targets (== all targets) 40UNIQUE 41# 42# Indirect PLT relocations. Architecture dependent. 43IFUNC x86_64-*-linux* 44IFUNC i?86-*-linux* 45IFUNC powerpc64-*-linux* 46IFUNC powerpc-*-linux* 47IFUNC sparc64-*-linux* 48IFUNC sparc-*-linux* 49# Absolute (SHN_ABS) symbols working correctly. 50ABSOLUTE 51IFUNC riscv*-linux* 52