This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]