ports/lang/mono/patches/patch-external_bdwgc_os_dep_c

26 lines
827 B
Text

Index: external/bdwgc/os_dep.c
--- external/bdwgc/os_dep.c.orig
+++ external/bdwgc/os_dep.c
@@ -525,10 +525,7 @@ GC_INNER char * GC_get_maps(void)
STATIC JMP_BUF GC_jmp_buf_openbsd;
# ifdef THREADS
-# include <sys/syscall.h>
- EXTERN_C_BEGIN
- extern sigset_t __syscall(quad_t, ...);
- EXTERN_C_END
+ sigset_t signalmask;
# endif
/* Don't use GC_find_limit() because siglongjmp() outside of the */
@@ -577,7 +574,9 @@ GC_INNER char * GC_get_maps(void)
# ifdef THREADS
/* Due to the siglongjump we need to manually unmask SIGPROF. */
- __syscall(SYS_sigprocmask, SIG_UNBLOCK, sigmask(SIGPROF));
+ sigemptyset(&signalmask);
+ sigaddset(&signalmask, SIGPROF);
+ sigprocmask(SIG_UNBLOCK, &signalmask, NULL);
# endif
sigaction(SIGSEGV, &old_segv_act, 0);