diff --git a/headers/posix/setjmp.h b/headers/posix/setjmp.h index adb1555929..49612b0337 100644 --- a/headers/posix/setjmp.h +++ b/headers/posix/setjmp.h @@ -29,6 +29,14 @@ extern void _longjmp(jmp_buf jumpBuffer, int value); extern void longjmp(jmp_buf jumpBuffer, int value); extern void siglongjmp(sigjmp_buf jumpBuffer, int value); +// ToDo: this is a temporary workaround for a bug in BeOS +// (it exports setjmp/sigsetjmp functions that do not work) +#ifdef COMPILE_FOR_R5 +# define setjmp(buffer) __sigsetjmp((buffer), 0) +# define sigsetjmp(buffer, mask) __sigsetjmp((buffer), (mask)) +extern int __sigsetjmp(jmp_buf buffer, int saveMask); +#endif + #ifdef __cplusplus } #endif