diff --git a/src/build_settings.cpp b/src/build_settings.cpp index 32640d732..47f7bf5ba 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -1658,6 +1658,13 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta bc->optimization_level = gb_clamp(bc->optimization_level, -1, 3); + if (bc->optimization_level <= 0) { + if (!is_arch_wasm()) { + bc->use_separate_modules = true; + } + } + + // TODO: Static map calls are bugged on `amd64sysv` abi. if (bc->metrics.os != TargetOs_windows && bc->metrics.arch == TargetArch_amd64) { // ENFORCE DYNAMIC MAP CALLS diff --git a/src/main.cpp b/src/main.cpp index ef9cad873..da8322476 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2312,9 +2312,9 @@ gb_internal void print_show_help(String const arg0, String const &command) { print_usage_line(0, ""); print_usage_line(1, "-use-separate-modules"); - print_usage_line(1, "[EXPERIMENTAL]"); print_usage_line(2, "The backend generates multiple build units which are then linked together."); print_usage_line(2, "Normally, a single build unit is generated for a standard project."); + print_usage_line(2, "This is the default behaviour for '-o:none' and '-o:minimal' builds"); print_usage_line(0, ""); }