diff options
| author | Shritesh Bhattarai <shritesh@shritesh.com> | 2019-04-13 22:28:58 -0500 |
|---|---|---|
| committer | Shritesh Bhattarai <shritesh@shritesh.com> | 2019-04-13 22:28:58 -0500 |
| commit | a2d8f03092419853b6bbcee45ea759ae994cc2d5 (patch) | |
| tree | bf8ede52d1c3dd6cc2eb7148d8945321fc81ea82 /src | |
| parent | 93528be6b19d608b4a02944e7e599554fc9f1378 (diff) | |
| download | zig-a2d8f03092419853b6bbcee45ea759ae994cc2d5.tar.gz zig-a2d8f03092419853b6bbcee45ea759ae994cc2d5.zip | |
support extern "wasi" functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/ir.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/ir.cpp b/src/ir.cpp index de4543df4e..73a24a815a 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -15836,6 +15836,13 @@ static void add_link_lib_symbol(IrAnalyze *ira, Buf *lib_name, Buf *symbol_name, ira->codegen->reported_bad_link_libc_error = true; } + bool is_wasi = ira->codegen->zig_target->os == OsWASI; + if (!is_wasi && buf_eql_str(lib_name, "wasi")) { + ir_add_error_node(ira, source_node, + buf_sprintf("linking against wasi libarry")); + ira->codegen->reported_bad_link_libc_error = true; + } + LinkLib *link_lib = add_link_lib(ira->codegen, lib_name); for (size_t i = 0; i < link_lib->symbols.length; i += 1) { Buf *existing_symbol_name = link_lib->symbols.at(i); @@ -15844,7 +15851,7 @@ static void add_link_lib_symbol(IrAnalyze *ira, Buf *lib_name, Buf *symbol_name, } } - if (!is_libc && !ira->codegen->have_pic && !ira->codegen->reported_bad_link_libc_error) { + if (!is_libc && !ira->codegen->have_pic && !ira->codegen->reported_bad_link_libc_error && !is_wasi) { ErrorMsg *msg = ir_add_error_node(ira, source_node, buf_sprintf("dependency on dynamic library '%s' requires enabling Position Independent Code", buf_ptr(lib_name))); |
