diff options
Diffstat (limited to 'user/erlang/safe-signal-handling.patch')
-rw-r--r-- | user/erlang/safe-signal-handling.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/user/erlang/safe-signal-handling.patch b/user/erlang/safe-signal-handling.patch new file mode 100644 index 000000000..0996069ba --- /dev/null +++ b/user/erlang/safe-signal-handling.patch @@ -0,0 +1,22 @@ +--- otp-OTP-21.2.6.orig/erts/emulator/hipe/hipe_x86_signal.c ++++ otp-OTP-21.2.6/erts/emulator/hipe/hipe_x86_signal.c +@@ -159,16 +159,10 @@ + + #if !(defined(__GLIBC__) || defined(__DARWIN__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__sun__)) + /* +- * Unknown libc -- assume musl. Note: musl deliberately does not provide a musl-specific +- * feature test macro, so we cannot check for it. +- * +- * sigaction is a weak alias for __sigaction, which is a wrapper for __libc_sigaction. +- * There are libc-internal calls to __libc_sigaction which install handlers, so we must +- * override __libc_sigaction rather than __sigaction. ++ * Unknown libc -- assume musl. Also assume signal delivery on musl is safe. + */ +-#define NEXT_SIGACTION "__libc_sigaction" +-#define LIBC_SIGACTION __libc_sigaction +-#define OVERRIDE_SIGACTION ++#undef NEXT_SIGACTION ++#undef OVERRIDE_SIGACTION + #ifndef _NSIG + #define _NSIG NSIG + #endif |