]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
libc-abis: Define ABSOLUTE ABI [BZ #19818][BZ #23307]
authorMaciej W. Rozycki <macro@mips.com>
Thu, 5 Jul 2018 17:06:43 +0000 (18:06 +0100)
committerMaciej W. Rozycki <macro@mips.com>
Thu, 5 Jul 2018 17:06:43 +0000 (18:06 +0100)
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.
* NEWS: Mention the new ABI.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
ChangeLog
NEWS
libc-abis
sysdeps/unix/sysv/linux/mips/libc-abis

index 27927257ceb6391a239ab8181d083a968f75e18b..d134e1f29d8058254d7187aeac877ea388c37510 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2018-07-05  Maciej W. Rozycki  <macro@mips.com>
+
+       [BZ #19818]
+       [BZ #23307]
+       * libc-abis (ABSOLUTE): New ABI.
+       * sysdeps/unix/sysv/linux/mips/libc-abis (ABSOLUTE): New ABI.
+       * NEWS: Mention the new ABI.
+
 2018-07-05  Florian Weimer  <fweimer@redhat.com>
 
        [BZ # 17662]
diff --git a/NEWS b/NEWS
index 5d253910b571577b6d4fccf3a66b02cdec9fe193..716d11cda12e90cd71e2d546885edd89473856b3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,13 @@ Version 2.28
 
 Major new features:
 
+* The GNU C Library now has correct support for ABSOLUTE symbols
+  (SHN_ABS-relative symbols).  Previously such ABSOLUTE symbols were
+  relocated incorrectly or in some cases discarded.  The GNU linker can
+  make use of the newer semantics, but it must communicate it to the
+  dynamic loader by setting the ELF file's identification (EI_ABIVERSION
+  field) to indicate such support is required.
+
 * Unicode 11.0.0 Support: Character encoding, character type info, and
   transliteration tables are all updated to Unicode 11.0.0, using
   generator scripts contributed by Mike FABIAN (Red Hat).
index 8668e49d8863cd2ad77aa0f1b0df0de5a1d46505..e702f6ae245c1528f5a608df8cfae4f037809de2 100644 (file)
--- a/libc-abis
+++ b/libc-abis
@@ -46,3 +46,5 @@ IFUNC         powerpc64-*-linux*
 IFUNC          powerpc-*-linux*
 IFUNC          sparc64-*-linux*
 IFUNC          sparc-*-linux*
+# Absolute (SHN_ABS) symbols working correctly.
+ABSOLUTE
index 14ff60322abc9cbf055f5e3afd1f788e730c92af..eaea558720f42a488836eddfbaa380af878cb781 100644 (file)
@@ -14,3 +14,5 @@ UNIQUE
 #
 # MIPS O32 FP64
 MIPS_O32_FP64   mips*-*-linux*
+# Absolute (SHN_ABS) symbols working correctly.
+ABSOLUTE