| # 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* |