GNU C Library master sources branch master updated. glibc-2.22-478-g352988a

tuliom@sourceware.org tuliom@sourceware.org
Wed Oct 28 13:42:00 GMT 2015


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  352988a4a66723b9884ef92e0c2a2ae1165776d6 (commit)
      from  c871b9b096e107fe6220e18102f5fb8070b49819 (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=352988a4a66723b9884ef92e0c2a2ae1165776d6

commit 352988a4a66723b9884ef92e0c2a2ae1165776d6
Author: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
Date:   Thu Oct 8 14:26:23 2015 -0300

    powerpc: Provide __tls_get_addr () in static libc
    
    Since '--no-tls-optimize' is available for Power in ld, we need to provide
    __tls_get_addr () in static libc in order to avoid undefined references to this
    symbol when that flag is used.
    
    	* sysdeps/powerpc/libc-tls.c: New file. Provides __tls_get_addr () in
    	static libc.

diff --git a/ChangeLog b/ChangeLog
index 321a857..76f23fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-10-28  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
+
+	* sysdeps/powerpc/libc-tls.c: New file. Provides __tls_get_addr () in
+	static libc.
+
 2015-10-28  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/i386/configure.ac (libc_cv_cc_avx2): Remove configure
diff --git a/sysdeps/powerpc/libc-tls.c b/sysdeps/powerpc/libc-tls.c
new file mode 100644
index 0000000..ee61ecc
--- /dev/null
+++ b/sysdeps/powerpc/libc-tls.c
@@ -0,0 +1,32 @@
+/* Thread-local storage handling in the ELF dynamic linker.  PowerPC version.
+   Copyright (C) 2015 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <csu/libc-tls.c>
+#include <dl-tls.h>
+
+/* On powerpc, the linker usually optimizes code sequences used to access
+   Thread Local Storage.  However, when the user disables these optimizations
+   by passing --no-tls-optimze to the linker, we need to provide __tls_get_addr
+   in static libc in order to avoid undefined references to that symbol.  */
+
+void *
+__tls_get_addr (tls_index *ti)
+{
+  dtv_t *dtv = THREAD_DTV ();
+  return (char *) dtv[1].pointer.val + ti->ti_offset + TLS_DTV_OFFSET;
+}

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                          |    5 +++++
 sysdeps/{sh => powerpc}/libc-tls.c |   14 +++++++-------
 2 files changed, 12 insertions(+), 7 deletions(-)
 copy sysdeps/{sh => powerpc}/libc-tls.c (62%)


hooks/post-receive
-- 
GNU C Library master sources



More information about the Glibc-cvs mailing list