mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
Missing files for libc ABI handling.
This commit is contained in:
parent
561470e061
commit
bf219bc6fc
44
libc-abis
Normal file
44
libc-abis
Normal file
@ -0,0 +1,44 @@
|
||||
# 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*
|
26
scripts/gen-libc-abis
Normal file
26
scripts/gen-libc-abis
Normal file
@ -0,0 +1,26 @@
|
||||
#! /bin/sh
|
||||
triple="$1"
|
||||
|
||||
printf "#ifndef _LIBC_ABIS_H\n#define _LIBC_ABIS_H 1\n\n"
|
||||
printf "enum\n{\n LIBC_ABI_DEFAULT = 0,\n"
|
||||
|
||||
while read s t; do
|
||||
if test "$s" = "#" || test -z "$s"; then continue; fi
|
||||
if test -z "$t"; then
|
||||
printf " LIBC_ABI_%s,\n" "$s"
|
||||
features="$features $s"
|
||||
else
|
||||
case "$triple" in
|
||||
$t) printf " LIBC_ABI_%s,\n" "$s"
|
||||
features="$features $s" ;;
|
||||
*) ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
printf " LIBC_ABI_MAX\n};\n"
|
||||
printf "\n#endif\n"
|
||||
|
||||
if test -n "$features"; then
|
||||
printf "#define LIBC_ABIS_STRING \"libc ABIs:%s\\\\n\"\n" "$features"
|
||||
fi
|
Loading…
Reference in New Issue
Block a user