lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 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) |
| 40 | UNIQUE |
| 41 | # |
| 42 | # Indirect PLT relocations. Architecture dependent. |
| 43 | IFUNC x86_64-*-linux* |
| 44 | IFUNC i?86-*-linux* |
| 45 | IFUNC powerpc64-*-linux* |
| 46 | IFUNC powerpc-*-linux* |
| 47 | IFUNC sparc64-*-linux* |
| 48 | IFUNC sparc-*-linux* |