This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.25-599-g83653f8
- From: stli at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 27 Jun 2017 13:25:17 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.25-599-g83653f8
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 83653f804dca6e8e9606e20e708be45b8422d96c (commit)
from 39bd76df3d61c6d83c5aa8bab06c7c1dbe7159ac (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=83653f804dca6e8e9606e20e708be45b8422d96c
commit 83653f804dca6e8e9606e20e708be45b8422d96c
Author: Stefan Liebler <stli@linux.vnet.ibm.com>
Date: Tue Jun 27 15:23:43 2017 +0200
S390: Save and restore r12 in TLS_IE macro.
The testcases elf/tst-tls1-static and elf/tst-tls2-static
are failing on s390 if gcc is configured with --enable-default-pie.
According to binutils, there are only four valid cases for IE -> LE transition:
lg %rx,(0,%ry) -> sllg %rx,%ry,0
lg %rx,(%ry,0) -> sllg %rx,%ry,0
lg %rx,(%ry,%r12) -> sllg %rx,%ry,0
lg %rx,(%r12,%ry) -> sllg %rx,%ry,0
Thus I've adjusted the TLS_IE macro in s390 tls-macros.h files in PIC case
in order to use r12 for the address of global offset table.
The adjusted macro definition is not used if gcc is not configured with
--enable-default-pie.
ChangeLog:
* sysdeps/s390/s390-32/tls-macros.h (TLS_IE): Use r12 for GOT address.
* sysdeps/s390/s390-64/tls-macros.h (TLS_IE): Likewise.
diff --git a/ChangeLog b/ChangeLog
index f885eb4..48821c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-06-27 Stefan Liebler <stli@linux.vnet.ibm.com>
+
+ * sysdeps/s390/s390-32/tls-macros.h (TLS_IE): Use r12 for GOT address.
+ * sysdeps/s390/s390-64/tls-macros.h (TLS_IE): Likewise.
+
2017-06-27 Florian Weimer <fweimer@redhat.com>
Work around test timeouts with ICMP rate limiting on localhost.
diff --git a/sysdeps/s390/s390-32/tls-macros.h b/sysdeps/s390/s390-32/tls-macros.h
index a4c5fff..153523a 100644
--- a/sysdeps/s390/s390-32/tls-macros.h
+++ b/sysdeps/s390/s390-32/tls-macros.h
@@ -8,15 +8,17 @@
#ifdef PIC
# define TLS_IE(x) \
- ({ unsigned long __offset, __got; \
+ ({ unsigned long __offset, __save12; \
__asm__ ("bras %0,1f\n" \
"0:\t.long _GLOBAL_OFFSET_TABLE_-0b\n\t" \
".long " #x "@gotntpoff\n" \
- "1:\tl %1,0(%0)\n\t" \
- "la %1,0(%1,%0)\n\t" \
+ "1:\tlr %1,%%r12\n\t" \
+ "l %%r12,0(%0)\n\t" \
+ "la %%r12,0(%0,%%r12)\n\t" \
"l %0,4(%0)\n\t" \
- "l %0,0(%0,%1):tls_load:" #x "\n" \
- : "=&a" (__offset), "=&a" (__got) : : "cc" ); \
+ "l %0,0(%0,%%r12):tls_load:" #x "\n\t" \
+ "lr %%r12,%1\n" \
+ : "=&a" (__offset), "=&a" (__save12) : : "cc" ); \
(int *) (__builtin_thread_pointer() + __offset); })
#else
# define TLS_IE(x) \
diff --git a/sysdeps/s390/s390-64/tls-macros.h b/sysdeps/s390/s390-64/tls-macros.h
index d70ea6c..449a843 100644
--- a/sysdeps/s390/s390-64/tls-macros.h
+++ b/sysdeps/s390/s390-64/tls-macros.h
@@ -8,13 +8,15 @@
#ifdef PIC
# define TLS_IE(x) \
- ({ unsigned long __offset, __got; \
+ ({ unsigned long __offset, __save12; \
__asm__ ("bras %0,0f\n\t" \
".quad " #x "@gotntpoff\n" \
- "0:\tlarl %1,_GLOBAL_OFFSET_TABLE_\n\t" \
+ "0:\tlgr %1,%%r12\n\t" \
+ "larl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \
"lg %0,0(%0)\n\t" \
- "lg %0,0(%0,%1):tls_load:" #x "\n" \
- : "=&a" (__offset), "=&a" (__got) : : "cc" ); \
+ "lg %0,0(%0,%%r12):tls_load:" #x "\n\t" \
+ "lgr %%r12,%1\n" \
+ : "=&a" (__offset), "=&a" (__save12) : : "cc" ); \
(int *) (__builtin_thread_pointer() + __offset); })
#else
# define TLS_IE(x) \
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
sysdeps/s390/s390-32/tls-macros.h | 12 +++++++-----
sysdeps/s390/s390-64/tls-macros.h | 10 ++++++----
3 files changed, 18 insertions(+), 9 deletions(-)
hooks/post-receive
--
GNU C Library master sources