From 3a3acb6afc753475675b5724f206e619d0c9590d Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 20 Jan 2014 12:58:03 +0000 Subject: [PATCH] [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. --- NEWS | 8 ++++---- ports/ChangeLog.aarch64 | 6 ++++++ ports/sysdeps/unix/sysv/linux/aarch64/clone.S | 7 ++++++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index da86ee502eb..87ab0485fd1 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 19d8fe13a01..f11a0865369 100644 --- a/ports/ChangeLog.aarch64 +++ b/ports/ChangeLog.aarch64 @@ -1,3 +1,9 @@ +2014-01-20 Tom Tromey + + [BZ #16169] + * sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Add CFI + directives; Zero x29. + 2014-01-20 Marcus Shawcroft * 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 2ca80210640..f2964f48716 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) -- 2.47.2