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.
This commit is contained in:
Rich Felker 2011-03-25 22:13:57 -04:00
commit ea343364a7
8 changed files with 57 additions and 0 deletions

View file

@ -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

View file

@ -0,0 +1,8 @@
.text
.global __pthread_unwind_next
.type __pthread_unwind_next,%function
__pthread_unwind_next:
pushl %eax
call __pthread_unwind_next_3
popl %eax
ret