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. --- src/thread/i386/cancellation2.s | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/thread/i386/cancellation2.s (limited to 'src/thread/i386/cancellation2.s') diff --git a/src/thread/i386/cancellation2.s b/src/thread/i386/cancellation2.s new file mode 100644 index 00000000..859aa239 --- /dev/null +++ b/src/thread/i386/cancellation2.s @@ -0,0 +1,16 @@ +.text +.global __pthread_register_cancel +.type __pthread_register_cancel,%function +__pthread_register_cancel: + pushl %eax + call __pthread_register_cancel_3 + popl %eax + ret + +.global __pthread_unregister_cancel +.type __pthread_unregister_cancel,%function +__pthread_unregister_cancel: + pushl %eax + call __pthread_unregister_cancel_3 + popl %eax + ret -- cgit v1.2.1