This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch azanella/aarch64-split-stack created. glibc-2.23-577-g805fb36
- From: azanella at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 28 Jul 2016 20:12:07 -0000
- Subject: 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