diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2018-04-19 14:51:59 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2018-04-19 14:51:59 -0700 |
| commit | e58629b990ee8ca2dc8fde0703fc7ca2b4b2a809 (patch) | |
| tree | 9804eff0ea0b1f9c011f5fb89669d042eaa780a5 /src | |
| parent | 8830a0304327ba8c983555ac5d42cec0569c31bb (diff) | |
| download | rust-e58629b990ee8ca2dc8fde0703fc7ca2b4b2a809.tar.gz rust-e58629b990ee8ca2dc8fde0703fc7ca2b4b2a809.zip | |
wasm: Increase default stack size to 1MB
This commit increases the dfeault stack size allocated to the wasm32-unknown-unknown target to 1MB by default. Currently the default stack size is one wasm page, or 64 kilobytes. This default stack is quite small and has caused a stack overflow or two in the wild by accident. The current "best practice" for fixing this is to pass `-Clink-args='-z stack-size=$bigger'` but that's not great nor always easy to do. A default of 1MB matches more closely with other platforms where it's "pretty big" by default. Note that it was tested and if the users uses `-C link-args` to pass a custom stack size that's still resepected as lld seems to take the first argument, and where rustc is passing it will always be last.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_trans/back/linker.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/librustc_trans/back/linker.rs b/src/librustc_trans/back/linker.rs index ebcf06d63be..e001e809ee5 100644 --- a/src/librustc_trans/back/linker.rs +++ b/src/librustc_trans/back/linker.rs @@ -960,6 +960,7 @@ impl Linker for WasmLd { fn finalize(&mut self) -> Command { self.cmd.arg("--threads"); + self.cmd.arg("-z").arg("stack-size=1048576"); // FIXME we probably shouldn't pass this but instead pass an explicit // whitelist of symbols we'll allow to be undefined. Unfortunately |
