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:
parent
92b52b70e8
commit
ea343364a7
8 changed files with 57 additions and 0 deletions
|
|
@ -181,9 +181,11 @@ int pthread_atfork(void (*)(void), void (*)(void), void (*)(void));
|
|||
#include <bits/pthread.h>
|
||||
|
||||
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); \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue