From 9a5216921ca44fe25e66c81928f812f13f2d59e0 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 31 Oct 2021 01:08:17 +0000 Subject: Add `wasi_wasm32` --- src/llvm_backend.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/llvm_backend.cpp') diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 892f615df..27914efb2 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -784,6 +784,8 @@ lbProcedure *lb_create_main_procedure(lbModule *m, lbProcedure *startup_runtime) params->Tuple.variables[2] = alloc_entity_param(nullptr, make_token_ident("lpReserved"), t_rawptr, false, true); } else if (build_context.metrics.os == TargetOs_windows && build_context.metrics.arch == TargetArch_386) { name = str_lit("mainCRTStartup"); + } else if (build_context.metrics.os == TargetOs_wasi) { + name = str_lit("_start"); } else { has_args = true; slice_init(¶ms->Tuple.variables, permanent_allocator(), 2); @@ -885,6 +887,14 @@ lbProcedure *lb_create_main_procedure(lbModule *m, lbProcedure *startup_runtime) } lb_end_procedure_body(p); + + + if (build_context.metrics.os == TargetOs_wasi) { + LLVMSetLinkage(p->value, LLVMDLLExportLinkage); + } else { + LLVMSetLinkage(p->value, LLVMExternalLinkage); + } + if (!m->debug_builder && LLVMVerifyFunction(p->value, LLVMReturnStatusAction)) { gb_printf_err("LLVM CODE GEN FAILED FOR PROCEDURE: %s\n", "main"); -- cgit v1.2.3