aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-11-04 00:50:28 +0000
committergingerBill <bill@gingerbill.org>2021-11-04 00:50:28 +0000
commit9ab71ca0da6a68806ff9825000799e8ddfbfc341 (patch)
tree981a837391fb65baf6ece23420527eb382f7b08b /src
parent3d06dddb72e00409b14df36959bb3bcdc8d42999 (diff)
Add `ODIN_NO_CRT` global constant
Diffstat (limited to 'src')
-rw-r--r--src/checker.cpp1
-rw-r--r--src/llvm_backend.cpp2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/checker.cpp b/src/checker.cpp
index f0f463816..92e38a643 100644
--- a/src/checker.cpp
+++ b/src/checker.cpp
@@ -782,6 +782,7 @@ void init_universal(void) {
add_global_bool_constant("ODIN_DISABLE_ASSERT", bc->ODIN_DISABLE_ASSERT);
add_global_bool_constant("ODIN_DEFAULT_TO_NIL_ALLOCATOR", bc->ODIN_DEFAULT_TO_NIL_ALLOCATOR);
add_global_bool_constant("ODIN_NO_DYNAMIC_LITERALS", bc->no_dynamic_literals);
+ add_global_bool_constant("ODIN_NO_CRT", bc->no_crt);
add_global_bool_constant("ODIN_TEST", bc->command_kind == Command_test);
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 730b9c1ba..c0a7b60df 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -785,7 +785,7 @@ lbProcedure *lb_create_main_procedure(lbModule *m, lbProcedure *startup_runtime)
params->Tuple.variables[1] = alloc_entity_param(nullptr, make_token_ident("fdwReason"), t_u32, false, true);
params->Tuple.variables[2] = alloc_entity_param(nullptr, make_token_ident("lpReserved"), t_rawptr, false, true);
call_cleanup = false;
- } else if (build_context.metrics.os == TargetOs_windows && build_context.metrics.arch == TargetArch_386) {
+ } else if (build_context.metrics.os == TargetOs_windows && (build_context.metrics.arch == TargetArch_386 || build_context.no_crt)) {
name = str_lit("mainCRTStartup");
} else if (is_arch_wasm()) {
name = str_lit("_start");