diff options
Diffstat (limited to 'REORG.TODO/libc-abis')
-rw-r--r-- | REORG.TODO/libc-abis | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/REORG.TODO/libc-abis b/REORG.TODO/libc-abis new file mode 100644 index 0000000000..8668e49d88 --- /dev/null +++ b/REORG.TODO/libc-abis @@ -0,0 +1,48 @@ +# Definition of features which introduce new libc ABI versions. This +# file is used to create a header file with definitions for the various +# versions. The static linker will encode in the EI_ABIVERSION field in +# the e_ident array in the ELF program header the required ABI version. +# This is not a bitmask. The maximum ABI version required must be +# encoded. +# +# Adding new features should always happen by appending new lines. Never +# add entries in the middle or where they seem "logical". Once a version +# is assigned to a feature it must not change again. Since some features +# are conditionally added this can only ever be done securely without much +# risk is by adding at the end. +# +# The following lines have one of two formats: +# +# SYMBOL +# With just a symbol on the line this is the name of a feature which +# is architecture independent. +# +# SYMBOL PLATFORM +# Using this form architecture (and platform) dependent features can be +# specified. The PLATFORM name can use the wildcards available in +# the Bourne shell's case expression. +# +# Note that the same symbol can be used using different platform triples. +# They don't have to be in the same order relative to other entries. This +# can happen if the feature is implemented for different architectures +# at different times. +# +# This file is parsed by a script which produces a header file containing +# a single enum definition. An extra symbol is added as entry zero to +# specify the default ABI with number 0 and an artificial last entry is +# added to allow computing the maximum ABI version for the platform. +# +# Feature Name Configuration +# ------------ ------------- +# +# Unique symbol definitions for C++. +# Architecture independent, all ELF targets (== all targets) +UNIQUE +# +# Indirect PLT relocations. Architecture dependent. +IFUNC x86_64-*-linux* +IFUNC i?86-*-linux* +IFUNC powerpc64-*-linux* +IFUNC powerpc-*-linux* +IFUNC sparc64-*-linux* +IFUNC sparc-*-linux* |