aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2014-01-20 12:58:03 +0000
committerMarcus Shawcroft <marcus.shawcroft@linaro.org>2014-01-20 15:44:05 +0000
commit3a3acb6afc753475675b5724f206e619d0c9590d (patch)
tree17c565f3ad7d09d9890e42495ab3fc9cf20229b9
parentb67e7fe0f9f9b0f6c4386a0eccba83178098438c (diff)
downloadglibc-3a3acb6afc753475675b5724f206e619d0c9590d.tar
glibc-3a3acb6afc753475675b5724f206e619d0c9590d.tar.gz
glibc-3a3acb6afc753475675b5724f206e619d0c9590d.tar.bz2
glibc-3a3acb6afc753475675b5724f206e619d0c9590d.zip
[AArch64] BZ #16169 Add CFI directives to clone.S
[BZ #16169] Add CFI directives to the AArch64 clone.S implementation and ensure that the FP in the child is zero'd in order to comply with AAPCS.
-rw-r--r--NEWS8
-rw-r--r--ports/ChangeLog.aarch646
-rw-r--r--ports/sysdeps/unix/sysv/linux/aarch64/clone.S7
3 files changed, 16 insertions, 5 deletions
diff --git a/NEWS b/NEWS
index da86ee502e..87ab0485fd 100644
--- a/NEWS
+++ b/NEWS
@@ -22,10 +22,10 @@ Version 2.19
15919, 15921, 15923, 15939, 15941, 15948, 15963, 15966, 15985, 15988,
15997, 16032, 16034, 16036, 16037, 16038, 16041, 16055, 16071, 16072,
16074, 16077, 16078, 16103, 16112, 16133, 16143, 16144, 16146, 16150,
- 16151, 16153, 16167, 16172, 16195, 16214, 16245, 16271, 16274, 16283,
- 16289, 16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365, 16366,
- 16369, 16372, 16375, 16379, 16384, 16385, 16386, 16387, 16390, 16394,
- 16400, 16407, 16408, 16414, 16430, 16453.
+ 16151, 16153, 16167, 16169, 16172, 16195, 16214, 16245, 16271, 16274,
+ 16283, 16289, 16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365,
+ 16366, 16369, 16372, 16375, 16379, 16384, 16385, 16386, 16387, 16390,
+ 16394, 16400, 16407, 16408, 16414, 16430, 16453.
* Slovenian translations for glibc messages have been contributed by the
Translation Project's Slovenian team of translators.
diff --git a/ports/ChangeLog.aarch64 b/ports/ChangeLog.aarch64
index 19d8fe13a0..f11a086536 100644
--- a/ports/ChangeLog.aarch64
+++ b/ports/ChangeLog.aarch64
@@ -1,3 +1,9 @@
+2014-01-20 Tom Tromey <tromey@redhat.com>
+
+ [BZ #16169]
+ * sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Add CFI
+ directives; Zero x29.
+
2014-01-20 Marcus Shawcroft <marcus.shawcroft@linaro.org>
* sysdeps/aarch64/configure.ac: New file.
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
index 2ca8021064..f2964f4871 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S
@@ -63,6 +63,7 @@ ENTRY(__clone)
mov x8, #SYS_ify(clone)
/* X0:flags, x1:newsp, x2:parenttidptr, x3:newtls, x4:childtid. */
svc 0x0
+ cfi_endproc
cmp x0, #0
beq 2f
blt 3f
@@ -72,6 +73,9 @@ ENTRY(__clone)
b syscall_error
2:
+ cfi_startproc
+ cfi_undefined (x30)
+ mov x29, 0
#ifdef RESET_PID
tbnz x5, #CLONE_THREAD_BIT, 3f
mov x0, #-1
@@ -93,7 +97,8 @@ ENTRY(__clone)
/* We are done, pass the return value through x0. */
b HIDDEN_JUMPTARGET(_exit)
-
+ cfi_endproc
+ cfi_startproc
PSEUDO_END (__clone)
weak_alias (__clone, clone)