aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2021-06-09 09:52:15 +0200
committerGitHub <noreply@github.com>2021-06-09 09:52:15 +0200
commita6ae5a77dac6466617cdf57357aa79c2b79403b3 (patch)
tree1e22f27275c7c6ee6928ddd3a7c90f4b66d12ee6 /src/main.zig
parent2d43db1d767ec56183cd7cf3ee8c5fd929548beb (diff)
parent2ee1f7898b27447bb9b21d284842415c7459db4b (diff)
downloadzig-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.zig12
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,