libc-abis 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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*
  49. # Absolute (SHN_ABS) symbols working correctly.
  50. ABSOLUTE