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