From ea343364a719add2cd8adf8a50c15bb5f9400dd8 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 25 Mar 2011 22:13:57 -0400 Subject: match glibc/lsb cancellation abi on i386 glibc made the ridiculous choice to use pass-by-register calling convention for these functions, which is impossible to duplicate directly on non-gcc compilers. instead, we use ugly asm to wrap and convert the calling convention. presumably this works with every compiler anyone could potentially want to use. --- include/pthread.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/pthread.h b/include/pthread.h index e15f25bb..76333669 100644 --- a/include/pthread.h +++ b/include/pthread.h @@ -181,9 +181,11 @@ int pthread_atfork(void (*)(void), void (*)(void), void (*)(void)); #include int __setjmp(void *); +#ifndef __pthread_register_cancel void __pthread_register_cancel(struct __ptcb *); void __pthread_unregister_cancel(struct __ptcb *); void __pthread_unwind_next(struct __ptcb *); +#endif #define pthread_cleanup_push(f, x) \ do { struct __ptcb __cb; void (*__f)(void *) = (f); void *__x = (x); \ -- cgit v1.2.1