aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-06-02 07:32:19 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-06-02 07:34:24 +0200
commitc44838ebf8b8da0795d56e05b477c5d2b37b4a19 (patch)
treec1dc4f38603b4b09748ae2bf334022109279c234 /sysdeps
parentd32ee64df750c2a1ebfffaccc1c02251a73d0532 (diff)
downloadglibc-c44838ebf8b8da0795d56e05b477c5d2b37b4a19.zip
glibc-c44838ebf8b8da0795d56e05b477c5d2b37b4a19.tar.gz
glibc-c44838ebf8b8da0795d56e05b477c5d2b37b4a19.tar.bz2
Add libc ABI extension kludge for baseline-violating libdl symbols
Some targets have a GLIBC_2.0 baseline for libdl, while using GLIBC_2.2 for libc. This means that the generated libc.map file does not have any version nodes for GLIBC_2.0 or GLIBC_2.1. However, moving symbols from libdl into libc needs such version nodes. (Future symbol moves from librt will need this as well.) This kludge is only necessary for symbols predating GLIBC_2.2 because the affected targets use GLIBC_2.2 as the baseline for libc. Given the small number and fixed set of affected architectures, no generic mechanism is implemented, and instead the map file fragment is hard-coded in scripts/versions.mk. The compat_symbol macro already emits the appropriate version strings, so no adjustments are needed there. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/linux/hppa/Versions1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/Versions1
-rw-r--r--sysdeps/unix/sysv/linux/sh/Versions1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Versions1
4 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions
index 9532d20..357c68a 100644
--- a/sysdeps/unix/sysv/linux/hppa/Versions
+++ b/sysdeps/unix/sysv/linux/hppa/Versions
@@ -1,3 +1,4 @@
+!libc_pre_versions
libc {
GLIBC_2.1 {
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
index 54e7723..f438b12 100644
--- a/sysdeps/unix/sysv/linux/ia64/Versions
+++ b/sysdeps/unix/sysv/linux/ia64/Versions
@@ -1,3 +1,4 @@
+!libc_pre_versions
libc {
GLIBC_2.2 {
ioperm; iopl;
diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions
index 19ba1d8..9c734ff 100644
--- a/sysdeps/unix/sysv/linux/sh/Versions
+++ b/sysdeps/unix/sysv/linux/sh/Versions
@@ -1,3 +1,4 @@
+!libc_pre_versions
libc {
GLIBC_2.2 {
# functions used in other libraries
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
index fbea1bb..33b6779 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -1,3 +1,4 @@
+!libc_pre_versions
libc {
GLIBC_2.0 {
# Exception handling support functions from libgcc