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 azanella/aarch64-split-stack created. glibc-2.23-577-g805fb36


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, azanella/aarch64-split-stack has been created
        at  805fb36fcfbb842b0491e394e0905612b0c6785b (commit)

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=805fb36fcfbb842b0491e394e0905612b0c6785b

commit 805fb36fcfbb842b0491e394e0905612b0c6785b
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Apr 25 19:15:49 2016 +0000

    aarch64: Add split-stack TCB field
    
    This patch adds a new TCB field meant to be used by GCC split-stack
    option. A new symbol, __tcb_private_ss, is also added to version
    control the private TCB field.
    
    Checked on aarch64.
    
    	* sysdeps/aarch64/Makefile [$(subdir) == elf] (sysdep-dl-routines):
    	Add tcb-version.
    	* sysdeps/aarch64/Version [ld] (GLIBC_2.25): Define __tcb_private
    	ss;
    	* sysdeps/aarch64/nptl/tls.h (tcbhead_t): Add __private_ss field.
    	* sysdeps/unix/sysv/linux/aarch64/ld.abilist: Add GLIBC_2.25 and
    	__tcb_private_ss.
    	* sysdeps/aarch64/tcb-version.c: New file.

diff --git a/ChangeLog b/ChangeLog
index f148ac8..02e0fbf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2016-07-28  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* sysdeps/aarch64/Makefile [$(subdir) == elf] (sysdep-dl-routines):
+	Add tcb-version.
+	* sysdeps/aarch64/Version [ld] (GLIBC_2.25): Define __tcb_private
+	ss;
+	* sysdeps/aarch64/nptl/tls.h (tcbhead_t): Add __private_ss field.
+	* sysdeps/unix/sysv/linux/aarch64/ld.abilist: Add GLIBC_2.25 and
+	__tcb_private_ss.
+	* sysdeps/aarch64/tcb-version.c: New file.
+
 2016-07-27  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #20384]
diff --git a/sysdeps/aarch64/Makefile b/sysdeps/aarch64/Makefile
index 562c137..0155988 100644
--- a/sysdeps/aarch64/Makefile
+++ b/sysdeps/aarch64/Makefile
@@ -5,7 +5,7 @@ CFLAGS-backtrace.c += -funwind-tables
 endif
 
 ifeq ($(subdir),elf)
-sysdep-dl-routines += tlsdesc dl-tlsdesc
+sysdep-dl-routines += tlsdesc dl-tlsdesc tcb-version
 gen-as-const-headers += dl-link.sym
 endif
 
diff --git a/sysdeps/aarch64/Versions b/sysdeps/aarch64/Versions
index e1aa44f..36a3e91 100644
--- a/sysdeps/aarch64/Versions
+++ b/sysdeps/aarch64/Versions
@@ -3,3 +3,11 @@ libc {
     _mcount;
   }
 }
+
+ld {
+  GLIBC_2.25 {
+    # Symbol used to version control the private GLIBC TCB split-stack
+    # field.
+    __tcb_private_ss;
+  }
+}
diff --git a/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h
index c5f20ef..fded63a 100644
--- a/sysdeps/aarch64/nptl/tls.h
+++ b/sysdeps/aarch64/nptl/tls.h
@@ -47,6 +47,8 @@ typedef struct
 {
   dtv_t *dtv;
   void *private;
+  /* GCC split stack support.  */
+  void *__private_ss;
 } tcbhead_t;
 
 /* This is the size of the initial TCB.  */
diff --git a/sysdeps/aarch64/tcb-version.c b/sysdeps/aarch64/tcb-version.c
new file mode 100644
index 0000000..5c82cd7
--- /dev/null
+++ b/sysdeps/aarch64/tcb-version.c
@@ -0,0 +1,24 @@
+/* Copyright (C) 2016 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/>.  */
+
+/* Symbol used to version control the private GLIBC TCB split-stack
+   field.  */
+void
+__tcb_private_ss (void)
+{
+}
diff --git a/sysdeps/unix/sysv/linux/aarch64/ld.abilist b/sysdeps/unix/sysv/linux/aarch64/ld.abilist
index ab08a98..00aa781 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ld.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/ld.abilist
@@ -9,3 +9,5 @@ GLIBC_2.17 calloc F
 GLIBC_2.17 free F
 GLIBC_2.17 malloc F
 GLIBC_2.17 realloc F
+GLIBC_2.25 GLIBC_2.24 A
+GLIBC_2.25 __tcb_private_ss F

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


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]