diff options
| author | Laytan <laytanlaats@hotmail.com> | 2025-07-29 19:16:19 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-29 19:16:19 +0200 |
| commit | e8a591386be9c3358eb3e7f9795b53baf89bdbcd (patch) | |
| tree | 819d3c78fa2de7eab8f68fc052320f989eadab65 | |
| parent | be3006dbf26fbe6b51bb489f346793823968aedf (diff) | |
| parent | af0b90bd3e0ef7d11eec9cc07aac3b6774c7c818 (diff) | |
Merge pull request #5514 from laytan/saner-default-stack-linker-flags
saner stack linker flags for WASM
| -rw-r--r-- | src/build_settings.cpp | 7 |
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) { |