diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2021-06-09 09:52:15 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-09 09:52:15 +0200 |
| commit | a6ae5a77dac6466617cdf57357aa79c2b79403b3 (patch) | |
| tree | 1e22f27275c7c6ee6928ddd3a7c90f4b66d12ee6 /src/main.zig | |
| parent | 2d43db1d767ec56183cd7cf3ee8c5fd929548beb (diff) | |
| parent | 2ee1f7898b27447bb9b21d284842415c7459db4b (diff) | |
| download | zig-a6ae5a77dac6466617cdf57357aa79c2b79403b3.tar.gz zig-a6ae5a77dac6466617cdf57357aa79c2b79403b3.zip | |
Merge pull request #8992 from ziglang/cc-wasm32-wasi-emulations
cc,wasi: include emulated libs in WASI libc and refactor WASI libc handling
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig index 9245f5fd8a..0b93f97726 100644 --- a/src/main.zig +++ b/src/main.zig @@ -15,6 +15,7 @@ const Package = @import("Package.zig"); const build_options = @import("build_options"); const introspect = @import("introspect.zig"); const LibCInstallation = @import("libc_installation.zig").LibCInstallation; +const wasi_libc = @import("wasi_libc.zig"); const translate_c = @import("translate_c.zig"); const Cache = @import("Cache.zig"); const target_util = @import("target.zig"); @@ -616,6 +617,9 @@ fn buildOutputType( var system_libs = std.ArrayList([]const u8).init(gpa); defer system_libs.deinit(); + var wasi_emulated_libs = std.ArrayList(wasi_libc.CRTFile).init(gpa); + defer wasi_emulated_libs.deinit(); + var clang_argv = std.ArrayList([]const u8).init(gpa); defer clang_argv.deinit(); @@ -1586,6 +1590,13 @@ fn buildOutputType( if (std.fs.path.isAbsolute(lib_name)) { fatal("cannot use absolute path as a system library: {s}", .{lib_name}); } + if (target_info.target.os.tag == .wasi) { + if (wasi_libc.getEmulatedLibCRTFile(lib_name)) |crt_file| { + try wasi_emulated_libs.append(crt_file); + _ = system_libs.orderedRemove(i); + continue; + } + } i += 1; } } @@ -1895,6 +1906,7 @@ fn buildOutputType( .framework_dirs = framework_dirs.items, .frameworks = frameworks.items, .system_libs = system_libs.items, + .wasi_emulated_libs = wasi_emulated_libs.items, .link_libc = link_libc, .link_libcpp = link_libcpp, .link_libunwind = link_libunwind, |
