about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNiels Sascha Reedijk <niels.reedijk@gmail.com>2019-01-27 09:25:25 +0100
committerNiels Sascha Reedijk <niels.reedijk@gmail.com>2019-06-10 08:10:06 +0200
commit56a7f1e77ecb264e1588924588071d2eef6e1840 (patch)
tree2936179610811287fdb88f34eb1917b253859945
parent57e13e0325c1d41161a31de1f8520538ec2c575c (diff)
downloadrust-56a7f1e77ecb264e1588924588071d2eef6e1840.tar.gz
rust-56a7f1e77ecb264e1588924588071d2eef6e1840.zip
Haiku: the maximum stack size is 16 MB
When one tries to create a thread with a requested stack size larger
than 16 MB, the call will fail and the compiler will bail out. Therefore
we should limit the size of the thread stack to 16 MB on Haiku.
-rw-r--r--src/librustc_interface/util.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/librustc_interface/util.rs b/src/librustc_interface/util.rs
index f4f7456a97a..a86d3cc4394 100644
--- a/src/librustc_interface/util.rs
+++ b/src/librustc_interface/util.rs
@@ -121,9 +121,13 @@ pub fn create_session(
 }
 
 // Temporarily have stack size set to 32MB to deal with various crates with long method
-// chains or deep syntax trees.
+// chains or deep syntax trees, except when on Haiku.
 // FIXME(oli-obk): get https://github.com/rust-lang/rust/pull/55617 the finish line
-const STACK_SIZE: usize = 32 * 1024 * 1024; // 32MB
+#[cfg(not(target_os = "haiku"))]
+const STACK_SIZE: usize = 32 * 1024 * 1024;
+
+#[cfg(target_os = "haiku")]
+const STACK_SIZE: usize = 16 * 1024 * 1024;
 
 fn get_stack_size() -> Option<usize> {
     // FIXME: Hacks on hacks. If the env is trying to override the stack size