summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.vnet.ibm.com>2016-12-02 09:09:55 +0100
committerStefan Liebler <stli@linux.vnet.ibm.com>2016-12-02 09:09:55 +0100
commitf91d3fd64d9b98054f5663a8fb533d15ca9f5943 (patch)
treef04f8023c6d50dfe79afb4b9bf8b29f9616dbe9f /ChangeLog
parent55a38f82369669e181a05bcf2ac6c647dcd9b261 (diff)
downloadglibc-f91d3fd64d9b98054f5663a8fb533d15ca9f5943.tar.gz
glibc-f91d3fd64d9b98054f5663a8fb533d15ca9f5943.tar.xz
glibc-f91d3fd64d9b98054f5663a8fb533d15ca9f5943.zip
Fix new testcase elf/tst-latepthread on s390x.
The first dlopen ("tst-latepthreadmod.so", RTLD_LOCAL | RTLD_LAZY) call
in elf/tst-latepthread.c fails on s390x with "error: dlopen failed:
.../build-s390x/elf/tst-latepthreadmod.so:
undefined symbol: this_function_is_not_defined".

In elf/tst-latepthreadmod.c, this_function_is_not_defined is a sibling
call which leads to a R_390_GLOB_DAT relocation in .rela.dyn instead of
a R_390_JMP_SLOT in .rela.plt.

As RTLD_LAZY skips the JMP_SLOT relocations, but not GLOB_DAT ones,
the dlopen call fails. If elf/tst-latepthreadmod.c is build with
-fno-optimize-sibling-calls, a JMP_SLOT relocation is generated for
this_function_is_not_defined and the test passes.

ChangeLog:

	* elf/Makefile (CFLAGS-tst-latepthreadmod.c):
	Add -fno-optimize-sibling-calls.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog5
1 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 62e49bb03a..f42d0c574d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-12-02  Stefan Liebler  <stli@linux.vnet.ibm.com>
+
+	* elf/Makefile (CFLAGS-tst-latepthreadmod.c):
+	Add -fno-optimize-sibling-calls.
+
 2016-12-02  Joseph Myers  <joseph@codesourcery.com>
 
 	* math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)] (llogb):