mirror of
https://github.com/fluencelabs/musl
synced 2025-06-27 05:32:06 +00:00
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:
@ -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); \
|
||||
|
Reference in New Issue
Block a user