about summary refs log tree commit diff
path: root/REORG.TODO/libc-abis
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
committerZack Weinberg <zackw@panix.com>2017-06-08 15:39:03 -0400
commit5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch)
tree4470480d904b65cf14ca524f96f79eca818c3eaf /REORG.TODO/libc-abis
parent199fc19d3aaaf57944ef036e15904febe877fc93 (diff)
downloadglibc-5046dbb4a7eba5eccfd258f92f4735c9ffc8d069.tar.gz
glibc-5046dbb4a7eba5eccfd258f92f4735c9ffc8d069.tar.xz
glibc-5046dbb4a7eba5eccfd258f92f4735c9ffc8d069.zip
Prepare for radical source tree reorganization. zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage
directory, REORG.TODO, except for files that will certainly still
exist in their current form at top level when we're done (COPYING,
COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which
are moved to the new directory OldChangeLogs, instead), and the
generated file INSTALL (which is just deleted; in the new order, there
will be no generated files checked into version control).
Diffstat (limited to 'REORG.TODO/libc-abis')
-rw-r--r--REORG.TODO/libc-abis48
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*