From c5cd97dd8968f5f6ad4f130a68008beacda78b64 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 2 Nov 2021 12:54:23 +0000 Subject: Improve `wasm-import` semantics to allow procedures from different import paths --- src/llvm_backend.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src/llvm_backend.cpp') diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 1d382aa6d..730b9c1ba 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -895,15 +895,9 @@ lbProcedure *lb_create_main_procedure(lbModule *m, lbProcedure *startup_runtime) lb_end_procedure_body(p); + LLVMSetLinkage(p->value, LLVMExternalLinkage); if (is_arch_wasm()) { - LLVMSetLinkage(p->value, LLVMDLLExportLinkage); - LLVMSetDLLStorageClass(p->value, LLVMDLLExportStorageClass); - LLVMSetVisibility(p->value, LLVMDefaultVisibility); - - char const *export_name = alloc_cstring(permanent_allocator(), p->name); - LLVMAddTargetDependentFunctionAttr(p->value, "wasm-export-name", export_name); - } else { - LLVMSetLinkage(p->value, LLVMExternalLinkage); + lb_set_wasm_export_attributes(p->value, p->name); } @@ -1489,6 +1483,8 @@ void lb_generate_code(lbGenerator *gen) { LLVMSetLinkage(g.value, LLVMExternalLinkage); LLVMSetExternallyInitialized(g.value, true); lb_add_foreign_library_path(m, e->Variable.foreign_library); + + lb_set_wasm_import_attributes(g.value, e, name); } else { LLVMSetInitializer(g.value, LLVMConstNull(lb_type(m, e->type))); } -- cgit v1.2.3