about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/s390/s390-64/clone.S')
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/clone.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
index daf8a58326..8b0cc7e019 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
@@ -55,12 +55,16 @@ error:
 PSEUDO_END (__clone)
 
 thread_start:
+	cfi_startproc
+	/* Mark r14 as undefined in order to stop unwinding here!  */
+	cfi_undefined (r14)
 	/* fn is in gpr 1, arg in gpr 0 */
 	lgr	%r2,%r0		/* set first parameter to void *arg */
 	aghi	%r15,-160	/* make room on the stack for the save area */
 	xc	0(8,%r15),0(%r15)
 	basr	%r14,%r1	/* jump to fn */
 	DO_CALL	(exit, 1)
+	cfi_endproc
 
 libc_hidden_def (__clone)
 weak_alias (__clone, clone)