This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 2/2] libc-abis: Define ABSOLUTE ABI [BZ #19818][BZ #23307]
- From: "Maciej W. Rozycki" <macro at mips dot com>
- To: <libc-alpha at sourceware dot org>
- Cc: Alan Modra <amodra at gmail dot com>
- Date: Mon, 18 Jun 2018 19:07:50 +0100
- Subject: [PATCH 2/2] libc-abis: Define ABSOLUTE ABI [BZ #19818][BZ #23307]
- References: <alpine.DEB.2.00.1806181533590.20622@tp.orcam.me.uk>
Define a new ABSOLUTE ABI for static linker's use with EI_ABIVERSION
where correct absolute (SHN_ABS) symbol run-time load semantics is
required. This way it can be ensured at static link time that a program
or DSO will not suffer from previous semantics where absolute symbols
were relocated by the base address, or symbols whose `st_value' is zero
silently ignored leading to a confusing "undefined symbol" error message
at load time, and instead "ELF file ABI version invalid" is printed with
old dynamic loaders, making it clear that there is an ABI version
incompatibility.
[BZ #19818]
[BZ #23307]
* libc-abis (ABSOLUTE): New ABI.
* sysdeps/unix/sysv/linux/mips/libc-abis (ABSOLUTE): New ABI.
---
Hi,
Arguably the "ELF file ABI version invalid" message could be improved
too, e.g. I think "Unsupported ELF file ABI version" or even "Unsupported
ELF file ABI version, please upgrade `ld.so'" would make it clearer what
is going on. But that's a matter for a separate change.
OK to apply?
Maciej
---
libc-abis | 2 ++
sysdeps/unix/sysv/linux/mips/libc-abis | 2 ++
2 files changed, 4 insertions(+)
glibc-abi-absolute.diff
Index: glibc/libc-abis
===================================================================
--- glibc.orig/libc-abis 2015-05-20 23:10:30.000000000 +0100
+++ glibc/libc-abis 2018-06-16 20:03:55.899525111 +0100
@@ -46,3 +46,5 @@ IFUNC powerpc64-*-linux*
IFUNC powerpc-*-linux*
IFUNC sparc64-*-linux*
IFUNC sparc-*-linux*
+# Absolute (SHN_ABS) symbols working correctly.
+ABSOLUTE
Index: glibc/sysdeps/unix/sysv/linux/mips/libc-abis
===================================================================
--- glibc.orig/sysdeps/unix/sysv/linux/mips/libc-abis 2015-05-20 23:10:47.000000000 +0100
+++ glibc/sysdeps/unix/sysv/linux/mips/libc-abis 2018-06-16 20:04:29.888042455 +0100
@@ -14,3 +14,5 @@ UNIQUE
#
# MIPS O32 FP64
MIPS_O32_FP64 mips*-*-linux*
+# Absolute (SHN_ABS) symbols working correctly.
+ABSOLUTE