about summary refs log tree commit diff
path: root/sysdeps/unix/sysv
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@mips.com>2018-07-05 18:06:43 +0100
committerMaciej W. Rozycki <macro@mips.com>2018-07-05 18:06:43 +0100
commit9449a295ad7e30f3a787421cb22aaa475f950549 (patch)
treedc51ac41c40921f14229dd25cb3d98bb0141d4cf /sysdeps/unix/sysv
parentd6da5cb6a8e0e8a9ce92b7d951a254cf325248d7 (diff)
downloadglibc-9449a295ad7e30f3a787421cb22aaa475f950549.tar.gz
glibc-9449a295ad7e30f3a787421cb22aaa475f950549.tar.xz
glibc-9449a295ad7e30f3a787421cb22aaa475f950549.zip
libc-abis: Define ABSOLUTE ABI [BZ #19818][BZ #23307]
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>
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r--sysdeps/unix/sysv/linux/mips/libc-abis2
1 files changed, 2 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/libc-abis b/sysdeps/unix/sysv/linux/mips/libc-abis
index 14ff60322a..eaea558720 100644
--- a/sysdeps/unix/sysv/linux/mips/libc-abis
+++ b/sysdeps/unix/sysv/linux/mips/libc-abis
@@ -14,3 +14,5 @@ UNIQUE
 #
 # MIPS O32 FP64
 MIPS_O32_FP64   mips*-*-linux*
+# Absolute (SHN_ABS) symbols working correctly.
+ABSOLUTE