about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2023-10-23 22:00:13 +0100
committerDavid CARLIER <devnexen@gmail.com>2023-10-23 22:51:16 +0100
commit1d3d5aaa881bec2206d306a3cf68c8ffdaabcd22 (patch)
treecf17d62a43ffce692084f679cee64c2170495436
parente2068cdb0964ccbae614ab60cddeed7b24473cdd (diff)
downloadrust-1d3d5aaa881bec2206d306a3cf68c8ffdaabcd22.tar.gz
rust-1d3d5aaa881bec2206d306a3cf68c8ffdaabcd22.zip
stack_overflow: get_stackp using MAP_STACK flag on dragonflybsd too.
-rw-r--r--library/std/src/sys/unix/stack_overflow.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/library/std/src/sys/unix/stack_overflow.rs b/library/std/src/sys/unix/stack_overflow.rs
index 73c530786b2..3dbab4cc486 100644
--- a/library/std/src/sys/unix/stack_overflow.rs
+++ b/library/std/src/sys/unix/stack_overflow.rs
@@ -134,9 +134,19 @@ mod imp {
         // OpenBSD requires this flag for stack mapping
         // otherwise the said mapping will fail as a no-op on most systems
         // and has a different meaning on FreeBSD
-        #[cfg(any(target_os = "openbsd", target_os = "netbsd", target_os = "linux",))]
+        #[cfg(any(
+            target_os = "openbsd",
+            target_os = "netbsd",
+            target_os = "linux",
+            target_os = "dragonfly",
+        ))]
         let flags = MAP_PRIVATE | MAP_ANON | libc::MAP_STACK;
-        #[cfg(not(any(target_os = "openbsd", target_os = "netbsd", target_os = "linux",)))]
+        #[cfg(not(any(
+            target_os = "openbsd",
+            target_os = "netbsd",
+            target_os = "linux",
+            target_os = "dragonfly",
+        )))]
         let flags = MAP_PRIVATE | MAP_ANON;
         let stackp =
             mmap64(ptr::null_mut(), SIGSTKSZ + page_size(), PROT_READ | PROT_WRITE, flags, -1, 0);