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.20-540-gd639a36
- From: siddhesh at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 14 Jan 2015 15:57:10 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.20-540-gd639a36
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 d639a36345dfce12cbb69e254e8d2f32e5da9ed9 (commit)
from ce6615c9c686acd34672a9f4eba9bcf5553496f6 (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=d639a36345dfce12cbb69e254e8d2f32e5da9ed9
commit d639a36345dfce12cbb69e254e8d2f32e5da9ed9
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date: Wed Jan 14 21:26:50 2015 +0530
[s390] Define a __tls_get_addr macro to avoid declaring it again
commit 050f7298e1ecc39887c329037575ccd972071255 added an extern
declaration for __tls_get_addr that conflicts with the one in s390
dl-tls.h, based on whether __tls_get_addr is defined as a macro. The
rationale seems to be based on the assumption that __tls_get_addr is
exported for every architecture and hence an internal non-plt alias is
needed. This is not true for s390 though, since it exports
__tls_get_offset and not __tls_get_addr. This results in tst-audit9
being stuck in an infinite loop.
This patch fixes this by defining a __tls_get_addr macro to itself so
as to not use the conflicting declaration.
diff --git a/ChangeLog b/ChangeLog
index 2b65e02..33e232c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-14 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ * sysdeps/s390/dl-tls.h [IS_IN (rtld)]: Define __tls_get_addr
+ macro.
+
2015-01-13 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/powerpc64/power7/memcmp.S (memcmp): Fix performance
diff --git a/sysdeps/s390/dl-tls.h b/sysdeps/s390/dl-tls.h
index 0fa8045..8132b10 100644
--- a/sysdeps/s390/dl-tls.h
+++ b/sysdeps/s390/dl-tls.h
@@ -33,6 +33,13 @@ extern unsigned long __tls_get_offset (unsigned long got_offset);
# include <shlib-compat.h>
+/* dl-tls.c declares __tls_get_addr as an exported symbol if it is not defined
+ as a macro. It seems suitable to do that in the generic code because all
+ architectures other than s390 export __tls_get_addr. The declaration causes
+ problems in s390 though, so we define __tls_get_addr here to avoid declaring
+ __tls_get_addr again. */
+# define __tls_get_addr __tls_get_addr
+
extern void *__tls_get_addr (tls_index *ti) attribute_hidden;
/* Make a temporary alias of __tls_get_addr to remove the hidden
attribute. Then export __tls_get_addr as __tls_get_addr_internal
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
sysdeps/s390/dl-tls.h | 7 +++++++
2 files changed, 12 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources