aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
diff options
context:
space:
mode:
authorColin Davidson <colrdavidson@gmail.com>2025-07-29 13:48:32 -0700
committerColin Davidson <colrdavidson@gmail.com>2025-07-29 13:48:32 -0700
commite869b9351bae90a57a4b86fef1b48e2e7e46348a (patch)
tree00ad3196c1c2ae3d260fc35619451ff82acd8ae9 /src/build_settings.cpp
parente1fd69f573bcf8ba9c8cfc961a007ab23aa83135 (diff)
parent861fa4ab68d07bc8f3827ca29946c79c7b3f744e (diff)
Merge remote-tracking branch 'live/master' into spall_v3
Diffstat (limited to 'src/build_settings.cpp')
-rw-r--r--src/build_settings.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index e1b9c4156..46a4f9ae5 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -1887,6 +1887,13 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta
str_lit("-target "), bc->metrics.target_triplet, str_lit(" "));
} else if (is_arch_wasm()) {
gbString link_flags = gb_string_make(heap_allocator(), " ");
+
+ // NOTE(laytan): Put the stack first in the memory,
+ // causing a stack overflow to error immediately instead of corrupting globals.
+ link_flags = gb_string_appendc(link_flags, "--stack-first ");
+ // NOTE(laytan): default stack size is 64KiB, up to a more reasonable 1MiB.
+ link_flags = gb_string_appendc(link_flags, "-z stack-size=1048576 ");
+
// link_flags = gb_string_appendc(link_flags, "--export-all ");
// link_flags = gb_string_appendc(link_flags, "--export-table ");
// if (bc->metrics.arch == TargetArch_wasm64) {