$OpenBSD: patch-src_main_main_c,v 1.10 2018/03/17 05:15:09 feinerer Exp $

Allocate stack with MAP_STACK to pass stack-register checking.

Index: src/main/main.c
--- src/main/main.c.orig
+++ src/main/main.c
@@ -19,6 +19,8 @@
  *  https://www.R-project.org/Licenses/
  */
 
+#include <sys/mman.h>
+
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -643,7 +645,8 @@ static void init_signal_handlers(void)
 {
     /* <FIXME> may need to reinstall this if we do recover. */
     struct sigaction sa;
-    signal_stack = malloc(SIGSTKSZ + R_USAGE);
+    signal_stack = mmap(NULL, SIGSTKSZ + R_USAGE, PROT_WRITE | PROT_READ,
+        MAP_PRIVATE | MAP_ANON | MAP_STACK, -1, 0);
     if (signal_stack != NULL) {
 	sigstk.ss_sp = signal_stack;
 	sigstk.ss_size = SIGSTKSZ + R_USAGE;
