From f409338a9e808a09001669377c608fd2803d808d Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 20 Feb 2015 20:25:35 -0500 Subject: prepare cancellation syscall asm for possibility of __cancel returning --- src/thread/pthread_cancel.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/thread/pthread_cancel.c') diff --git a/src/thread/pthread_cancel.c b/src/thread/pthread_cancel.c index 4493931e..66e0817c 100644 --- a/src/thread/pthread_cancel.c +++ b/src/thread/pthread_cancel.c @@ -1,11 +1,18 @@ #include "pthread_impl.h" #include "syscall.h" +#include "libc.h" void __cancel() { pthread_exit(PTHREAD_CANCELED); } +/* If __syscall_cp_asm has adjusted the stack pointer, it must provide a + * definition of __cp_cancel to undo those adjustments and call __cancel. + * Otherwise, __cancel provides a definition for __cp_cancel. */ + +weak_alias(__cancel, __cp_cancel); + long __syscall_cp_asm(volatile void *, syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t); -- cgit v1.2.1