aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzigazeljko <ziga.zeljko@gmail.com>2020-06-03 01:58:30 +0800
committerAndrew Kelley <andrew@ziglang.org>2020-07-27 19:51:58 +0000
commitbf273b7aec8fe9957967c635bd01b2b92909b192 (patch)
tree600bd4b6275ccd92ad99189d3934a181dbda115a /src
parentfb9d5529dad8356de51f09da5da5f36c8fd8bf9c (diff)
downloadzig-bf273b7aec8fe9957967c635bd01b2b92909b192.tar.gz
zig-bf273b7aec8fe9957967c635bd01b2b92909b192.zip
Add comment explaining --stack-first option
Diffstat (limited to 'src')
-rw-r--r--src/link.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/link.cpp b/src/link.cpp
index 80baffe51c..b54fdf6b93 100644
--- a/src/link.cpp
+++ b/src/link.cpp
@@ -2107,6 +2107,10 @@ static void construct_linker_job_wasm(LinkJob *lj) {
lj->args.append("-z");
lj->args.append(buf_ptr(buf_sprintf("stack-size=%" ZIG_PRI_usize, stack_size)));
+ // put stack before globals so that stack overflow results in segfault immediately before corrupting globals
+ // see https://github.com/ziglang/zig/issues/4496
+ lj->args.append("--stack-first");
+
if (g->out_type != OutTypeExe) {
lj->args.append("--no-entry"); // So lld doesn't look for _start.