diff mbox

Update alpha localplt.data

Message ID alpine.DEB.2.20.1611042223170.19848@digraph.polyomino.org.uk
State New
Headers show

Commit Message

Joseph Myers Nov. 4, 2016, 10:24 p.m. UTC
This patch updates alpha localplt.data so the localplt test passes in
my compile-only all-ABIs glibc testing.  The failures I see without
this patch are:

Missing required PLT reference: ld.so: __tls_get_addr
Missing required PLT reference: ld.so: free

Now, __tls_get_addr can be made optional.  For free, rather than
making it optional as in libc.so it seems better to mark all the
malloc-related symbols in both libc.so and ld.so as allowing an
R_ALPHA_GLOB_DAT relocation as an alternative to using a PLT entry, so
this patch does so.

Tested for alpha.

2016-11-04  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/unix/sysv/linux/alpha/localplt.data: Make __tls_get_addr
	optional in ld.so.  Allow R_ALPHA_GLOB_DAT relocation for malloc,
	calloc, realloc, free, memalign and __libc_memalign rather than
	making them optional.
diff mbox

Patch

diff --git a/sysdeps/unix/sysv/linux/alpha/localplt.data b/sysdeps/unix/sysv/linux/alpha/localplt.data
index e2a4311..351596c 100644
--- a/sysdeps/unix/sysv/linux/alpha/localplt.data
+++ b/sysdeps/unix/sysv/linux/alpha/localplt.data
@@ -15,11 +15,11 @@  libc.so: _OtsNeqX ?
 libc.so: _OtsNintXQ ?
 libc.so: _OtsSubX ?
 libc.so: _Unwind_Find_FDE
-libc.so: calloc ?
-libc.so: free ?
-libc.so: malloc ?
-libc.so: memalign ?
-libc.so: realloc ?
+libc.so: calloc + RELA R_ALPHA_GLOB_DAT
+libc.so: free + RELA R_ALPHA_GLOB_DAT
+libc.so: malloc + RELA R_ALPHA_GLOB_DAT
+libc.so: memalign + RELA R_ALPHA_GLOB_DAT
+libc.so: realloc + RELA R_ALPHA_GLOB_DAT
 libm.so: matherr
 # We used to offer inline functions that used this, so it must be exported.
 # Ought to reorg things such that carg isn't thus forced to use a plt.
@@ -27,9 +27,9 @@  libm.so: __atan2
 # The dynamic loader needs __tls_get_addr for TLS, and uses __libc_memalign
 # internally to allocate aligned TLS storage. The other malloc family of
 # functions are expected to allow user symbol interposition.
-ld.so: __tls_get_addr
-ld.so: __libc_memalign
-ld.so: malloc
-ld.so: calloc
-ld.so: realloc
-ld.so: free
+ld.so: __tls_get_addr ?
+ld.so: __libc_memalign + RELA R_ALPHA_GLOB_DAT
+ld.so: malloc + RELA R_ALPHA_GLOB_DAT
+ld.so: calloc + RELA R_ALPHA_GLOB_DAT
+ld.so: realloc + RELA R_ALPHA_GLOB_DAT
+ld.so: free + RELA R_ALPHA_GLOB_DAT