1 const std = @import("std");
3 const path = std.fs.path;
5 const Allocator = std.mem.Allocator;
6 const Compilation = @import("Compilation.zig");
7 const build_options = @import("build_options");
9 pub const CrtFile = enum {
14 libwasi_emulated_process_clocks_a,
15 libwasi_emulated_getpid_a,
16 libwasi_emulated_mman_a,
17 libwasi_emulated_signal_a,
20 pub fn getEmulatedLibCrtFile(lib_name: []const u8) ?CrtFile {
21 if (mem.eql(u8, lib_name, "dl")) {
24 if (mem.eql(u8, lib_name, "wasi-emulated-process-clocks")) {
25 return .libwasi_emulated_process_clocks_a;
27 if (mem.eql(u8, lib_name, "wasi-emulated-getpid")) {
28 return .libwasi_emulated_getpid_a;
30 if (mem.eql(u8, lib_name, "wasi-emulated-mman")) {
31 return .libwasi_emulated_mman_a;
33 if (mem.eql(u8, lib_name, "wasi-emulated-signal")) {
34 return .libwasi_emulated_signal_a;
39 pub fn emulatedLibCRFileLibName(crt_file: CrtFile) []const u8 {
40 return switch (crt_file) {
41 .libdl_a => "libdl.a",
42 .libwasi_emulated_process_clocks_a => "libwasi-emulated-process-clocks.a",
43 .libwasi_emulated_getpid_a => "libwasi-emulated-getpid.a",
44 .libwasi_emulated_mman_a => "libwasi-emulated-mman.a",
45 .libwasi_emulated_signal_a => "libwasi-emulated-signal.a",
50 pub fn execModelCrtFile(wasi_exec_model: std.builtin.WasiExecModel) CrtFile {
51 return switch (wasi_exec_model) {
52 .reactor => CrtFile.crt1_reactor_o,
53 .command => CrtFile.crt1_command_o,
57 pub fn execModelCrtFileFullName(wasi_exec_model: std.builtin.WasiExecModel) []const u8 {
58 return switch (execModelCrtFile(wasi_exec_model)) {
59 .crt1_reactor_o => "crt1-reactor.o",
60 .crt1_command_o => "crt1-command.o",
65 /// TODO replace anyerror with explicit error set, recording user-friendly errors with
66 /// setMiscFailure and returning error.SubCompilationFailed. see libcxx.zig for example.
67 pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progress.Node) anyerror!void {
68 if (!build_options.have_llvm) {
69 return error.ZigCompilerNotBuiltWithLLVMExtensions;
73 var arena_allocator = std.heap.ArenaAllocator.init(gpa);
74 defer arena_allocator.deinit();
75 const arena = arena_allocator.allocator();
79 var args = std.ArrayList([]const u8).init(arena);
80 try addCCArgs(comp, arena, &args, .{});
81 try addLibcBottomHalfIncludes(comp, arena, &args);
82 var files = [_]Compilation.CSourceFile{
84 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
85 "libc", try sanitize(arena, crt1_reactor_src_file),
87 .extra_flags = args.items,
91 return comp.build_crt_file("crt1-reactor", .Obj, .@"wasi crt1-reactor.o", prog_node, &files, .{});
94 var args = std.ArrayList([]const u8).init(arena);
95 try addCCArgs(comp, arena, &args, .{});
96 try addLibcBottomHalfIncludes(comp, arena, &args);
97 var files = [_]Compilation.CSourceFile{
99 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
100 "libc", try sanitize(arena, crt1_command_src_file),
102 .extra_flags = args.items,
106 return comp.build_crt_file("crt1-command", .Obj, .@"wasi crt1-command.o", prog_node, &files, .{});
109 var libc_sources = std.ArrayList(Compilation.CSourceFile).init(arena);
113 var args = std.ArrayList([]const u8).init(arena);
114 try addCCArgs(comp, arena, &args, .{ .want_O3 = true, .no_strict_aliasing = true });
115 for (emmalloc_src_files) |file_path| {
116 try libc_sources.append(.{
117 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
118 "libc", try sanitize(arena, file_path),
120 .extra_flags = args.items,
127 // Compile libc-bottom-half.
128 var args = std.ArrayList([]const u8).init(arena);
129 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
130 try addLibcBottomHalfIncludes(comp, arena, &args);
132 for (libc_bottom_half_src_files) |file_path| {
133 try libc_sources.append(.{
134 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
135 "libc", try sanitize(arena, file_path),
137 .extra_flags = args.items,
144 // Compile libc-top-half.
145 var args = std.ArrayList([]const u8).init(arena);
146 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
147 try addLibcTopHalfIncludes(comp, arena, &args);
149 for (libc_top_half_src_files) |file_path| {
150 try libc_sources.append(.{
151 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
152 "libc", try sanitize(arena, file_path),
154 .extra_flags = args.items,
160 try comp.build_crt_file("c", .Lib, .@"wasi libc.a", prog_node, libc_sources.items, .{});
164 var args = std.ArrayList([]const u8).init(arena);
165 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
166 try addLibcBottomHalfIncludes(comp, arena, &args);
168 var emu_dl_sources = std.ArrayList(Compilation.CSourceFile).init(arena);
169 for (emulated_dl_src_files) |file_path| {
170 try emu_dl_sources.append(.{
171 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
172 "libc", try sanitize(arena, file_path),
174 .extra_flags = args.items,
178 try comp.build_crt_file("dl", .Lib, .@"wasi libdl.a", prog_node, emu_dl_sources.items, .{});
181 .libwasi_emulated_process_clocks_a => {
182 var args = std.ArrayList([]const u8).init(arena);
183 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
184 try addLibcBottomHalfIncludes(comp, arena, &args);
186 var emu_clocks_sources = std.ArrayList(Compilation.CSourceFile).init(arena);
187 for (emulated_process_clocks_src_files) |file_path| {
188 try emu_clocks_sources.append(.{
189 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
190 "libc", try sanitize(arena, file_path),
192 .extra_flags = args.items,
196 try comp.build_crt_file("wasi-emulated-process-clocks", .Lib, .@"libwasi-emulated-process-clocks.a", prog_node, emu_clocks_sources.items, .{});
198 .libwasi_emulated_getpid_a => {
199 var args = std.ArrayList([]const u8).init(arena);
200 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
201 try addLibcBottomHalfIncludes(comp, arena, &args);
203 var emu_getpid_sources = std.ArrayList(Compilation.CSourceFile).init(arena);
204 for (emulated_getpid_src_files) |file_path| {
205 try emu_getpid_sources.append(.{
206 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
207 "libc", try sanitize(arena, file_path),
209 .extra_flags = args.items,
213 try comp.build_crt_file("wasi-emulated-getpid", .Lib, .@"libwasi-emulated-getpid.a", prog_node, emu_getpid_sources.items, .{});
215 .libwasi_emulated_mman_a => {
216 var args = std.ArrayList([]const u8).init(arena);
217 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
218 try addLibcBottomHalfIncludes(comp, arena, &args);
220 var emu_mman_sources = std.ArrayList(Compilation.CSourceFile).init(arena);
221 for (emulated_mman_src_files) |file_path| {
222 try emu_mman_sources.append(.{
223 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
224 "libc", try sanitize(arena, file_path),
226 .extra_flags = args.items,
230 try comp.build_crt_file("wasi-emulated-mman", .Lib, .@"libwasi-emulated-mman.a", prog_node, emu_mman_sources.items, .{});
232 .libwasi_emulated_signal_a => {
233 var emu_signal_sources = std.ArrayList(Compilation.CSourceFile).init(arena);
236 var args = std.ArrayList([]const u8).init(arena);
237 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
239 for (emulated_signal_bottom_half_src_files) |file_path| {
240 try emu_signal_sources.append(.{
241 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
242 "libc", try sanitize(arena, file_path),
244 .extra_flags = args.items,
251 var args = std.ArrayList([]const u8).init(arena);
252 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
253 try addLibcTopHalfIncludes(comp, arena, &args);
254 try args.append("-D_WASI_EMULATED_SIGNAL");
256 for (emulated_signal_top_half_src_files) |file_path| {
257 try emu_signal_sources.append(.{
258 .src_path = try comp.zig_lib_directory.join(arena, &[_][]const u8{
259 "libc", try sanitize(arena, file_path),
261 .extra_flags = args.items,
267 try comp.build_crt_file("wasi-emulated-signal", .Lib, .@"libwasi-emulated-signal.a", prog_node, emu_signal_sources.items, .{});
272 fn sanitize(arena: Allocator, file_path: []const u8) ![]const u8 {
273 // TODO do this at comptime on the comptime data rather than at runtime
274 // probably best to wait until self-hosted is done and our comptime execution
275 // is faster and uses less memory.
276 const out_path = if (path.sep != '/') blk: {
277 const mutable_file_path = try arena.dupe(u8, file_path);
278 for (mutable_file_path) |*c| {
283 break :blk mutable_file_path;
288 const CCOptions = struct {
289 want_O3: bool = false,
290 no_strict_aliasing: bool = false,
296 args: *std.ArrayList([]const u8),
298 ) error{OutOfMemory}!void {
299 const target = comp.getTarget();
300 const arch_name = std.zig.target.muslArchNameHeaders(target.cpu.arch);
301 const os_name = @tagName(target.os.tag);
302 const triple = try std.fmt.allocPrint(arena, "{s}-{s}-musl", .{ arch_name, os_name });
303 const o_arg = if (options.want_O3) "-O3" else "-Os";
305 try args.appendSlice(&[_][]const u8{
307 "-fno-trapping-math",
308 "-w", // ignore all warnings
319 try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libc", "include", triple }),
321 "-DBULK_MEMORY_THRESHOLD=32",
324 if (options.no_strict_aliasing) {
325 try args.appendSlice(&[_][]const u8{"-fno-strict-aliasing"});
329 fn addLibcBottomHalfIncludes(
332 args: *std.ArrayList([]const u8),
333 ) error{OutOfMemory}!void {
334 try args.appendSlice(&[_][]const u8{
336 try comp.zig_lib_directory.join(arena, &[_][]const u8{
345 try comp.zig_lib_directory.join(arena, &[_][]const u8{
355 try comp.zig_lib_directory.join(arena, &[_][]const u8{
364 try comp.zig_lib_directory.join(arena, &[_][]const u8{
374 try comp.zig_lib_directory.join(arena, &[_][]const u8{
385 fn addLibcTopHalfIncludes(
388 args: *std.ArrayList([]const u8),
389 ) error{OutOfMemory}!void {
390 try args.appendSlice(&[_][]const u8{
392 try comp.zig_lib_directory.join(arena, &[_][]const u8{
402 try comp.zig_lib_directory.join(arena, &[_][]const u8{
412 try comp.zig_lib_directory.join(arena, &[_][]const u8{
422 try comp.zig_lib_directory.join(arena, &[_][]const u8{
432 try comp.zig_lib_directory.join(arena, &[_][]const u8{
442 const emmalloc_src_files = [_][]const u8{
443 "wasi/emmalloc/emmalloc.c",
446 const libc_bottom_half_src_files = [_][]const u8{
447 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/closedir.c",
448 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/dirfd.c",
449 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/fdclosedir.c",
450 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/fdopendir.c",
451 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/opendirat.c",
452 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/readdir.c",
453 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/rewinddir.c",
454 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/scandirat.c",
455 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/seekdir.c",
456 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/telldir.c",
457 "wasi/libc-bottom-half/cloudlibc/src/libc/errno/errno.c",
458 "wasi/libc-bottom-half/cloudlibc/src/libc/fcntl/fcntl.c",
459 "wasi/libc-bottom-half/cloudlibc/src/libc/fcntl/openat.c",
460 "wasi/libc-bottom-half/cloudlibc/src/libc/fcntl/posix_fadvise.c",
461 "wasi/libc-bottom-half/cloudlibc/src/libc/fcntl/posix_fallocate.c",
462 "wasi/libc-bottom-half/cloudlibc/src/libc/poll/poll.c",
463 "wasi/libc-bottom-half/cloudlibc/src/libc/sched/sched_yield.c",
464 "wasi/libc-bottom-half/cloudlibc/src/libc/stdio/renameat.c",
465 "wasi/libc-bottom-half/cloudlibc/src/libc/stdlib/_Exit.c",
466 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/ioctl/ioctl.c",
467 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/select/pselect.c",
468 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/select/select.c",
469 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/socket/getsockopt.c",
470 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/socket/recv.c",
471 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/socket/send.c",
472 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/socket/shutdown.c",
473 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/fstat.c",
474 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/fstatat.c",
475 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/futimens.c",
476 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/mkdirat.c",
477 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/utimensat.c",
478 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/time/gettimeofday.c",
479 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/uio/preadv.c",
480 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/uio/pwritev.c",
481 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/uio/readv.c",
482 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/uio/writev.c",
483 "wasi/libc-bottom-half/cloudlibc/src/libc/time/CLOCK_MONOTONIC.c",
484 "wasi/libc-bottom-half/cloudlibc/src/libc/time/CLOCK_REALTIME.c",
485 "wasi/libc-bottom-half/cloudlibc/src/libc/time/clock_getres.c",
486 "wasi/libc-bottom-half/cloudlibc/src/libc/time/clock_gettime.c",
487 "wasi/libc-bottom-half/cloudlibc/src/libc/time/clock_nanosleep.c",
488 "wasi/libc-bottom-half/cloudlibc/src/libc/time/nanosleep.c",
489 "wasi/libc-bottom-half/cloudlibc/src/libc/time/time.c",
490 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/faccessat.c",
491 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/fdatasync.c",
492 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/fsync.c",
493 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/ftruncate.c",
494 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/linkat.c",
495 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/lseek.c",
496 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/pread.c",
497 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/pwrite.c",
498 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/read.c",
499 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/readlinkat.c",
500 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/sleep.c",
501 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/symlinkat.c",
502 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/unlinkat.c",
503 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/usleep.c",
504 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/write.c",
505 "wasi/libc-bottom-half/sources/__errno_location.c",
506 "wasi/libc-bottom-half/sources/__main_void.c",
507 "wasi/libc-bottom-half/sources/__wasilibc_dt.c",
508 "wasi/libc-bottom-half/sources/__wasilibc_environ.c",
509 "wasi/libc-bottom-half/sources/__wasilibc_fd_renumber.c",
510 "wasi/libc-bottom-half/sources/__wasilibc_initialize_environ.c",
511 "wasi/libc-bottom-half/sources/__wasilibc_real.c",
512 "wasi/libc-bottom-half/sources/__wasilibc_rmdirat.c",
513 "wasi/libc-bottom-half/sources/__wasilibc_tell.c",
514 "wasi/libc-bottom-half/sources/__wasilibc_unlinkat.c",
515 "wasi/libc-bottom-half/sources/abort.c",
516 "wasi/libc-bottom-half/sources/accept-wasip1.c",
517 "wasi/libc-bottom-half/sources/at_fdcwd.c",
518 "wasi/libc-bottom-half/sources/complex-builtins.c",
519 "wasi/libc-bottom-half/sources/environ.c",
520 "wasi/libc-bottom-half/sources/errno.c",
521 "wasi/libc-bottom-half/sources/getcwd.c",
522 "wasi/libc-bottom-half/sources/getentropy.c",
523 "wasi/libc-bottom-half/sources/isatty.c",
524 "wasi/libc-bottom-half/sources/math/fmin-fmax.c",
525 "wasi/libc-bottom-half/sources/math/math-builtins.c",
526 "wasi/libc-bottom-half/sources/posix.c",
527 "wasi/libc-bottom-half/sources/preopens.c",
528 "wasi/libc-bottom-half/sources/reallocarray.c",
529 "wasi/libc-bottom-half/sources/sbrk.c",
530 "wasi/libc-bottom-half/sources/truncate.c",
531 "wasi/libc-bottom-half/sources/chdir.c",
534 const libc_top_half_src_files = [_][]const u8{
535 "wasi/libc-top-half/musl/src/misc/a64l.c",
536 "wasi/libc-top-half/musl/src/misc/basename.c",
537 "wasi/libc-top-half/musl/src/misc/dirname.c",
538 "wasi/libc-top-half/musl/src/misc/ffs.c",
539 "wasi/libc-top-half/musl/src/misc/ffsl.c",
540 "wasi/libc-top-half/musl/src/misc/ffsll.c",
541 "wasi/libc-top-half/musl/src/misc/fmtmsg.c",
542 "wasi/libc-top-half/musl/src/misc/getdomainname.c",
543 "wasi/libc-top-half/musl/src/misc/gethostid.c",
544 "wasi/libc-top-half/musl/src/misc/getopt.c",
545 "wasi/libc-top-half/musl/src/misc/getopt_long.c",
546 "wasi/libc-top-half/musl/src/misc/getsubopt.c",
547 "wasi/libc-top-half/musl/src/misc/realpath.c",
548 "wasi/libc-top-half/musl/src/misc/uname.c",
549 "wasi/libc-top-half/musl/src/misc/nftw.c",
550 "wasi/libc-top-half/musl/src/errno/strerror.c",
551 "wasi/libc-top-half/musl/src/network/htonl.c",
552 "wasi/libc-top-half/musl/src/network/htons.c",
553 "wasi/libc-top-half/musl/src/network/ntohl.c",
554 "wasi/libc-top-half/musl/src/network/ntohs.c",
555 "wasi/libc-top-half/musl/src/network/inet_ntop.c",
556 "wasi/libc-top-half/musl/src/network/inet_pton.c",
557 "wasi/libc-top-half/musl/src/network/inet_aton.c",
558 "wasi/libc-top-half/musl/src/network/in6addr_any.c",
559 "wasi/libc-top-half/musl/src/network/in6addr_loopback.c",
560 "wasi/libc-top-half/musl/src/fenv/fenv.c",
561 "wasi/libc-top-half/musl/src/fenv/fesetround.c",
562 "wasi/libc-top-half/musl/src/fenv/feupdateenv.c",
563 "wasi/libc-top-half/musl/src/fenv/fesetexceptflag.c",
564 "wasi/libc-top-half/musl/src/fenv/fegetexceptflag.c",
565 "wasi/libc-top-half/musl/src/fenv/feholdexcept.c",
566 "wasi/libc-top-half/musl/src/exit/exit.c",
567 "wasi/libc-top-half/musl/src/exit/atexit.c",
568 "wasi/libc-top-half/musl/src/exit/assert.c",
569 "wasi/libc-top-half/musl/src/exit/quick_exit.c",
570 "wasi/libc-top-half/musl/src/exit/at_quick_exit.c",
571 "wasi/libc-top-half/musl/src/time/strftime.c",
572 "wasi/libc-top-half/musl/src/time/asctime.c",
573 "wasi/libc-top-half/musl/src/time/asctime_r.c",
574 "wasi/libc-top-half/musl/src/time/ctime.c",
575 "wasi/libc-top-half/musl/src/time/ctime_r.c",
576 "wasi/libc-top-half/musl/src/time/wcsftime.c",
577 "wasi/libc-top-half/musl/src/time/strptime.c",
578 "wasi/libc-top-half/musl/src/time/difftime.c",
579 "wasi/libc-top-half/musl/src/time/timegm.c",
580 "wasi/libc-top-half/musl/src/time/ftime.c",
581 "wasi/libc-top-half/musl/src/time/gmtime.c",
582 "wasi/libc-top-half/musl/src/time/gmtime_r.c",
583 "wasi/libc-top-half/musl/src/time/timespec_get.c",
584 "wasi/libc-top-half/musl/src/time/getdate.c",
585 "wasi/libc-top-half/musl/src/time/localtime.c",
586 "wasi/libc-top-half/musl/src/time/localtime_r.c",
587 "wasi/libc-top-half/musl/src/time/mktime.c",
588 "wasi/libc-top-half/musl/src/time/__tm_to_secs.c",
589 "wasi/libc-top-half/musl/src/time/__month_to_secs.c",
590 "wasi/libc-top-half/musl/src/time/__secs_to_tm.c",
591 "wasi/libc-top-half/musl/src/time/__year_to_secs.c",
592 "wasi/libc-top-half/musl/src/time/__tz.c",
593 "wasi/libc-top-half/musl/src/fcntl/creat.c",
594 "wasi/libc-top-half/musl/src/dirent/alphasort.c",
595 "wasi/libc-top-half/musl/src/dirent/versionsort.c",
596 "wasi/libc-top-half/musl/src/env/__stack_chk_fail.c",
597 "wasi/libc-top-half/musl/src/env/clearenv.c",
598 "wasi/libc-top-half/musl/src/env/getenv.c",
599 "wasi/libc-top-half/musl/src/env/putenv.c",
600 "wasi/libc-top-half/musl/src/env/setenv.c",
601 "wasi/libc-top-half/musl/src/env/unsetenv.c",
602 "wasi/libc-top-half/musl/src/unistd/posix_close.c",
603 "wasi/libc-top-half/musl/src/stat/futimesat.c",
604 "wasi/libc-top-half/musl/src/legacy/getpagesize.c",
605 "wasi/libc-top-half/musl/src/thread/thrd_sleep.c",
606 "wasi/libc-top-half/musl/src/internal/defsysinfo.c",
607 "wasi/libc-top-half/musl/src/internal/floatscan.c",
608 "wasi/libc-top-half/musl/src/internal/intscan.c",
609 "wasi/libc-top-half/musl/src/internal/libc.c",
610 "wasi/libc-top-half/musl/src/internal/shgetc.c",
611 "wasi/libc-top-half/musl/src/stdio/__fclose_ca.c",
612 "wasi/libc-top-half/musl/src/stdio/__fdopen.c",
613 "wasi/libc-top-half/musl/src/stdio/__fmodeflags.c",
614 "wasi/libc-top-half/musl/src/stdio/__fopen_rb_ca.c",
615 "wasi/libc-top-half/musl/src/stdio/__overflow.c",
616 "wasi/libc-top-half/musl/src/stdio/__stdio_close.c",
617 "wasi/libc-top-half/musl/src/stdio/__stdio_exit.c",
618 "wasi/libc-top-half/musl/src/stdio/__stdio_read.c",
619 "wasi/libc-top-half/musl/src/stdio/__stdio_seek.c",
620 "wasi/libc-top-half/musl/src/stdio/__stdio_write.c",
621 "wasi/libc-top-half/musl/src/stdio/__stdout_write.c",
622 "wasi/libc-top-half/musl/src/stdio/__toread.c",
623 "wasi/libc-top-half/musl/src/stdio/__towrite.c",
624 "wasi/libc-top-half/musl/src/stdio/__uflow.c",
625 "wasi/libc-top-half/musl/src/stdio/asprintf.c",
626 "wasi/libc-top-half/musl/src/stdio/clearerr.c",
627 "wasi/libc-top-half/musl/src/stdio/dprintf.c",
628 "wasi/libc-top-half/musl/src/stdio/ext.c",
629 "wasi/libc-top-half/musl/src/stdio/ext2.c",
630 "wasi/libc-top-half/musl/src/stdio/fclose.c",
631 "wasi/libc-top-half/musl/src/stdio/feof.c",
632 "wasi/libc-top-half/musl/src/stdio/ferror.c",
633 "wasi/libc-top-half/musl/src/stdio/fflush.c",
634 "wasi/libc-top-half/musl/src/stdio/fgetc.c",
635 "wasi/libc-top-half/musl/src/stdio/fgetln.c",
636 "wasi/libc-top-half/musl/src/stdio/fgetpos.c",
637 "wasi/libc-top-half/musl/src/stdio/fgets.c",
638 "wasi/libc-top-half/musl/src/stdio/fgetwc.c",
639 "wasi/libc-top-half/musl/src/stdio/fgetws.c",
640 "wasi/libc-top-half/musl/src/stdio/fileno.c",
641 "wasi/libc-top-half/musl/src/stdio/fmemopen.c",
642 "wasi/libc-top-half/musl/src/stdio/fopen.c",
643 "wasi/libc-top-half/musl/src/stdio/fopencookie.c",
644 "wasi/libc-top-half/musl/src/stdio/fprintf.c",
645 "wasi/libc-top-half/musl/src/stdio/fputc.c",
646 "wasi/libc-top-half/musl/src/stdio/fputs.c",
647 "wasi/libc-top-half/musl/src/stdio/fputwc.c",
648 "wasi/libc-top-half/musl/src/stdio/fputws.c",
649 "wasi/libc-top-half/musl/src/stdio/fread.c",
650 "wasi/libc-top-half/musl/src/stdio/freopen.c",
651 "wasi/libc-top-half/musl/src/stdio/fscanf.c",
652 "wasi/libc-top-half/musl/src/stdio/fseek.c",
653 "wasi/libc-top-half/musl/src/stdio/fsetpos.c",
654 "wasi/libc-top-half/musl/src/stdio/ftell.c",
655 "wasi/libc-top-half/musl/src/stdio/fwide.c",
656 "wasi/libc-top-half/musl/src/stdio/fwprintf.c",
657 "wasi/libc-top-half/musl/src/stdio/fwrite.c",
658 "wasi/libc-top-half/musl/src/stdio/fwscanf.c",
659 "wasi/libc-top-half/musl/src/stdio/getc.c",
660 "wasi/libc-top-half/musl/src/stdio/getc_unlocked.c",
661 "wasi/libc-top-half/musl/src/stdio/getchar.c",
662 "wasi/libc-top-half/musl/src/stdio/getchar_unlocked.c",
663 "wasi/libc-top-half/musl/src/stdio/getdelim.c",
664 "wasi/libc-top-half/musl/src/stdio/getline.c",
665 "wasi/libc-top-half/musl/src/stdio/getw.c",
666 "wasi/libc-top-half/musl/src/stdio/getwc.c",
667 "wasi/libc-top-half/musl/src/stdio/getwchar.c",
668 "wasi/libc-top-half/musl/src/stdio/ofl.c",
669 "wasi/libc-top-half/musl/src/stdio/ofl_add.c",
670 "wasi/libc-top-half/musl/src/stdio/open_memstream.c",
671 "wasi/libc-top-half/musl/src/stdio/open_wmemstream.c",
672 "wasi/libc-top-half/musl/src/stdio/perror.c",
673 "wasi/libc-top-half/musl/src/stdio/printf.c",
674 "wasi/libc-top-half/musl/src/stdio/putc.c",
675 "wasi/libc-top-half/musl/src/stdio/putc_unlocked.c",
676 "wasi/libc-top-half/musl/src/stdio/putchar.c",
677 "wasi/libc-top-half/musl/src/stdio/putchar_unlocked.c",
678 "wasi/libc-top-half/musl/src/stdio/puts.c",
679 "wasi/libc-top-half/musl/src/stdio/putw.c",
680 "wasi/libc-top-half/musl/src/stdio/putwc.c",
681 "wasi/libc-top-half/musl/src/stdio/putwchar.c",
682 "wasi/libc-top-half/musl/src/stdio/rewind.c",
683 "wasi/libc-top-half/musl/src/stdio/scanf.c",
684 "wasi/libc-top-half/musl/src/stdio/setbuf.c",
685 "wasi/libc-top-half/musl/src/stdio/setbuffer.c",
686 "wasi/libc-top-half/musl/src/stdio/setlinebuf.c",
687 "wasi/libc-top-half/musl/src/stdio/setvbuf.c",
688 "wasi/libc-top-half/musl/src/stdio/snprintf.c",
689 "wasi/libc-top-half/musl/src/stdio/sprintf.c",
690 "wasi/libc-top-half/musl/src/stdio/sscanf.c",
691 "wasi/libc-top-half/musl/src/stdio/stderr.c",
692 "wasi/libc-top-half/musl/src/stdio/stdin.c",
693 "wasi/libc-top-half/musl/src/stdio/stdout.c",
694 "wasi/libc-top-half/musl/src/stdio/swprintf.c",
695 "wasi/libc-top-half/musl/src/stdio/swscanf.c",
696 "wasi/libc-top-half/musl/src/stdio/ungetc.c",
697 "wasi/libc-top-half/musl/src/stdio/ungetwc.c",
698 "wasi/libc-top-half/musl/src/stdio/vasprintf.c",
699 "wasi/libc-top-half/musl/src/stdio/vdprintf.c",
700 "wasi/libc-top-half/musl/src/stdio/vfprintf.c",
701 "wasi/libc-top-half/musl/src/stdio/vfscanf.c",
702 "wasi/libc-top-half/musl/src/stdio/vfwprintf.c",
703 "wasi/libc-top-half/musl/src/stdio/vfwscanf.c",
704 "wasi/libc-top-half/musl/src/stdio/vprintf.c",
705 "wasi/libc-top-half/musl/src/stdio/vscanf.c",
706 "wasi/libc-top-half/musl/src/stdio/vsnprintf.c",
707 "wasi/libc-top-half/musl/src/stdio/vsprintf.c",
708 "wasi/libc-top-half/musl/src/stdio/vsscanf.c",
709 "wasi/libc-top-half/musl/src/stdio/vswprintf.c",
710 "wasi/libc-top-half/musl/src/stdio/vswscanf.c",
711 "wasi/libc-top-half/musl/src/stdio/vwprintf.c",
712 "wasi/libc-top-half/musl/src/stdio/vwscanf.c",
713 "wasi/libc-top-half/musl/src/stdio/wprintf.c",
714 "wasi/libc-top-half/musl/src/stdio/wscanf.c",
715 "wasi/libc-top-half/musl/src/string/bcmp.c",
716 "wasi/libc-top-half/musl/src/string/bcopy.c",
717 "wasi/libc-top-half/musl/src/string/bzero.c",
718 "wasi/libc-top-half/musl/src/string/explicit_bzero.c",
719 "wasi/libc-top-half/musl/src/string/index.c",
720 "wasi/libc-top-half/musl/src/string/memccpy.c",
721 "wasi/libc-top-half/musl/src/string/memchr.c",
722 "wasi/libc-top-half/musl/src/string/memcmp.c",
723 "wasi/libc-top-half/musl/src/string/memmem.c",
724 "wasi/libc-top-half/musl/src/string/mempcpy.c",
725 "wasi/libc-top-half/musl/src/string/memrchr.c",
726 "wasi/libc-top-half/musl/src/string/memset.c",
727 "wasi/libc-top-half/musl/src/string/rindex.c",
728 "wasi/libc-top-half/musl/src/string/stpcpy.c",
729 "wasi/libc-top-half/musl/src/string/stpncpy.c",
730 "wasi/libc-top-half/musl/src/string/strcasecmp.c",
731 "wasi/libc-top-half/musl/src/string/strcasestr.c",
732 "wasi/libc-top-half/musl/src/string/strcat.c",
733 "wasi/libc-top-half/musl/src/string/strchr.c",
734 "wasi/libc-top-half/musl/src/string/strchrnul.c",
735 "wasi/libc-top-half/musl/src/string/strcmp.c",
736 "wasi/libc-top-half/musl/src/string/strcpy.c",
737 "wasi/libc-top-half/musl/src/string/strcspn.c",
738 "wasi/libc-top-half/musl/src/string/strdup.c",
739 "wasi/libc-top-half/musl/src/string/strerror_r.c",
740 "wasi/libc-top-half/musl/src/string/strlcat.c",
741 "wasi/libc-top-half/musl/src/string/strlcpy.c",
742 "wasi/libc-top-half/musl/src/string/strlen.c",
743 "wasi/libc-top-half/musl/src/string/strncasecmp.c",
744 "wasi/libc-top-half/musl/src/string/strncat.c",
745 "wasi/libc-top-half/musl/src/string/strncmp.c",
746 "wasi/libc-top-half/musl/src/string/strncpy.c",
747 "wasi/libc-top-half/musl/src/string/strndup.c",
748 "wasi/libc-top-half/musl/src/string/strnlen.c",
749 "wasi/libc-top-half/musl/src/string/strpbrk.c",
750 "wasi/libc-top-half/musl/src/string/strrchr.c",
751 "wasi/libc-top-half/musl/src/string/strsep.c",
752 "wasi/libc-top-half/musl/src/string/strspn.c",
753 "wasi/libc-top-half/musl/src/string/strstr.c",
754 "wasi/libc-top-half/musl/src/string/strtok.c",
755 "wasi/libc-top-half/musl/src/string/strtok_r.c",
756 "wasi/libc-top-half/musl/src/string/strverscmp.c",
757 "wasi/libc-top-half/musl/src/string/swab.c",
758 "wasi/libc-top-half/musl/src/string/wcpcpy.c",
759 "wasi/libc-top-half/musl/src/string/wcpncpy.c",
760 "wasi/libc-top-half/musl/src/string/wcscasecmp.c",
761 "wasi/libc-top-half/musl/src/string/wcscasecmp_l.c",
762 "wasi/libc-top-half/musl/src/string/wcscat.c",
763 "wasi/libc-top-half/musl/src/string/wcschr.c",
764 "wasi/libc-top-half/musl/src/string/wcscmp.c",
765 "wasi/libc-top-half/musl/src/string/wcscpy.c",
766 "wasi/libc-top-half/musl/src/string/wcscspn.c",
767 "wasi/libc-top-half/musl/src/string/wcsdup.c",
768 "wasi/libc-top-half/musl/src/string/wcslen.c",
769 "wasi/libc-top-half/musl/src/string/wcsncasecmp.c",
770 "wasi/libc-top-half/musl/src/string/wcsncasecmp_l.c",
771 "wasi/libc-top-half/musl/src/string/wcsncat.c",
772 "wasi/libc-top-half/musl/src/string/wcsncmp.c",
773 "wasi/libc-top-half/musl/src/string/wcsncpy.c",
774 "wasi/libc-top-half/musl/src/string/wcsnlen.c",
775 "wasi/libc-top-half/musl/src/string/wcspbrk.c",
776 "wasi/libc-top-half/musl/src/string/wcsrchr.c",
777 "wasi/libc-top-half/musl/src/string/wcsspn.c",
778 "wasi/libc-top-half/musl/src/string/wcsstr.c",
779 "wasi/libc-top-half/musl/src/string/wcstok.c",
780 "wasi/libc-top-half/musl/src/string/wcswcs.c",
781 "wasi/libc-top-half/musl/src/string/wmemchr.c",
782 "wasi/libc-top-half/musl/src/string/wmemcmp.c",
783 "wasi/libc-top-half/musl/src/string/wmemcpy.c",
784 "wasi/libc-top-half/musl/src/string/wmemmove.c",
785 "wasi/libc-top-half/musl/src/string/wmemset.c",
786 "wasi/libc-top-half/musl/src/locale/__lctrans.c",
787 "wasi/libc-top-half/musl/src/locale/__mo_lookup.c",
788 "wasi/libc-top-half/musl/src/locale/c_locale.c",
789 "wasi/libc-top-half/musl/src/locale/catclose.c",
790 "wasi/libc-top-half/musl/src/locale/catgets.c",
791 "wasi/libc-top-half/musl/src/locale/catopen.c",
792 "wasi/libc-top-half/musl/src/locale/duplocale.c",
793 "wasi/libc-top-half/musl/src/locale/freelocale.c",
794 "wasi/libc-top-half/musl/src/locale/iconv.c",
795 "wasi/libc-top-half/musl/src/locale/iconv_close.c",
796 "wasi/libc-top-half/musl/src/locale/langinfo.c",
797 "wasi/libc-top-half/musl/src/locale/locale_map.c",
798 "wasi/libc-top-half/musl/src/locale/localeconv.c",
799 "wasi/libc-top-half/musl/src/locale/newlocale.c",
800 "wasi/libc-top-half/musl/src/locale/pleval.c",
801 "wasi/libc-top-half/musl/src/locale/setlocale.c",
802 "wasi/libc-top-half/musl/src/locale/strcoll.c",
803 "wasi/libc-top-half/musl/src/locale/strfmon.c",
804 "wasi/libc-top-half/musl/src/locale/strtod_l.c",
805 "wasi/libc-top-half/musl/src/locale/strxfrm.c",
806 "wasi/libc-top-half/musl/src/locale/uselocale.c",
807 "wasi/libc-top-half/musl/src/locale/wcscoll.c",
808 "wasi/libc-top-half/musl/src/locale/wcsxfrm.c",
809 "wasi/libc-top-half/musl/src/stdlib/abs.c",
810 "wasi/libc-top-half/musl/src/stdlib/atof.c",
811 "wasi/libc-top-half/musl/src/stdlib/atoi.c",
812 "wasi/libc-top-half/musl/src/stdlib/atol.c",
813 "wasi/libc-top-half/musl/src/stdlib/atoll.c",
814 "wasi/libc-top-half/musl/src/stdlib/bsearch.c",
815 "wasi/libc-top-half/musl/src/stdlib/div.c",
816 "wasi/libc-top-half/musl/src/stdlib/ecvt.c",
817 "wasi/libc-top-half/musl/src/stdlib/fcvt.c",
818 "wasi/libc-top-half/musl/src/stdlib/gcvt.c",
819 "wasi/libc-top-half/musl/src/stdlib/imaxabs.c",
820 "wasi/libc-top-half/musl/src/stdlib/imaxdiv.c",
821 "wasi/libc-top-half/musl/src/stdlib/labs.c",
822 "wasi/libc-top-half/musl/src/stdlib/ldiv.c",
823 "wasi/libc-top-half/musl/src/stdlib/llabs.c",
824 "wasi/libc-top-half/musl/src/stdlib/lldiv.c",
825 "wasi/libc-top-half/musl/src/stdlib/qsort.c",
826 "wasi/libc-top-half/musl/src/stdlib/qsort_nr.c",
827 "wasi/libc-top-half/musl/src/stdlib/strtod.c",
828 "wasi/libc-top-half/musl/src/stdlib/strtol.c",
829 "wasi/libc-top-half/musl/src/stdlib/wcstod.c",
830 "wasi/libc-top-half/musl/src/stdlib/wcstol.c",
831 "wasi/libc-top-half/musl/src/search/hsearch.c",
832 "wasi/libc-top-half/musl/src/search/insque.c",
833 "wasi/libc-top-half/musl/src/search/lsearch.c",
834 "wasi/libc-top-half/musl/src/search/tdelete.c",
835 "wasi/libc-top-half/musl/src/search/tdestroy.c",
836 "wasi/libc-top-half/musl/src/search/tfind.c",
837 "wasi/libc-top-half/musl/src/search/tsearch.c",
838 "wasi/libc-top-half/musl/src/search/twalk.c",
839 "wasi/libc-top-half/musl/src/multibyte/btowc.c",
840 "wasi/libc-top-half/musl/src/multibyte/c16rtomb.c",
841 "wasi/libc-top-half/musl/src/multibyte/c32rtomb.c",
842 "wasi/libc-top-half/musl/src/multibyte/internal.c",
843 "wasi/libc-top-half/musl/src/multibyte/mblen.c",
844 "wasi/libc-top-half/musl/src/multibyte/mbrlen.c",
845 "wasi/libc-top-half/musl/src/multibyte/mbrtoc16.c",
846 "wasi/libc-top-half/musl/src/multibyte/mbrtoc32.c",
847 "wasi/libc-top-half/musl/src/multibyte/mbrtowc.c",
848 "wasi/libc-top-half/musl/src/multibyte/mbsinit.c",
849 "wasi/libc-top-half/musl/src/multibyte/mbsnrtowcs.c",
850 "wasi/libc-top-half/musl/src/multibyte/mbsrtowcs.c",
851 "wasi/libc-top-half/musl/src/multibyte/mbstowcs.c",
852 "wasi/libc-top-half/musl/src/multibyte/mbtowc.c",
853 "wasi/libc-top-half/musl/src/multibyte/wcrtomb.c",
854 "wasi/libc-top-half/musl/src/multibyte/wcsnrtombs.c",
855 "wasi/libc-top-half/musl/src/multibyte/wcsrtombs.c",
856 "wasi/libc-top-half/musl/src/multibyte/wcstombs.c",
857 "wasi/libc-top-half/musl/src/multibyte/wctob.c",
858 "wasi/libc-top-half/musl/src/multibyte/wctomb.c",
859 "wasi/libc-top-half/musl/src/regex/fnmatch.c",
860 "wasi/libc-top-half/musl/src/regex/glob.c",
861 "wasi/libc-top-half/musl/src/regex/regcomp.c",
862 "wasi/libc-top-half/musl/src/regex/regerror.c",
863 "wasi/libc-top-half/musl/src/regex/regexec.c",
864 "wasi/libc-top-half/musl/src/regex/tre-mem.c",
865 "wasi/libc-top-half/musl/src/prng/__rand48_step.c",
866 "wasi/libc-top-half/musl/src/prng/__seed48.c",
867 "wasi/libc-top-half/musl/src/prng/drand48.c",
868 "wasi/libc-top-half/musl/src/prng/lcong48.c",
869 "wasi/libc-top-half/musl/src/prng/lrand48.c",
870 "wasi/libc-top-half/musl/src/prng/mrand48.c",
871 "wasi/libc-top-half/musl/src/prng/rand.c",
872 "wasi/libc-top-half/musl/src/prng/rand_r.c",
873 "wasi/libc-top-half/musl/src/prng/random.c",
874 "wasi/libc-top-half/musl/src/prng/seed48.c",
875 "wasi/libc-top-half/musl/src/prng/srand48.c",
876 "wasi/libc-top-half/musl/src/conf/confstr.c",
877 "wasi/libc-top-half/musl/src/conf/fpathconf.c",
878 "wasi/libc-top-half/musl/src/conf/legacy.c",
879 "wasi/libc-top-half/musl/src/conf/pathconf.c",
880 "wasi/libc-top-half/musl/src/conf/sysconf.c",
881 "wasi/libc-top-half/musl/src/ctype/__ctype_b_loc.c",
882 "wasi/libc-top-half/musl/src/ctype/__ctype_get_mb_cur_max.c",
883 "wasi/libc-top-half/musl/src/ctype/__ctype_tolower_loc.c",
884 "wasi/libc-top-half/musl/src/ctype/__ctype_toupper_loc.c",
885 "wasi/libc-top-half/musl/src/ctype/isalnum.c",
886 "wasi/libc-top-half/musl/src/ctype/isalpha.c",
887 "wasi/libc-top-half/musl/src/ctype/isascii.c",
888 "wasi/libc-top-half/musl/src/ctype/isblank.c",
889 "wasi/libc-top-half/musl/src/ctype/iscntrl.c",
890 "wasi/libc-top-half/musl/src/ctype/isdigit.c",
891 "wasi/libc-top-half/musl/src/ctype/isgraph.c",
892 "wasi/libc-top-half/musl/src/ctype/islower.c",
893 "wasi/libc-top-half/musl/src/ctype/isprint.c",
894 "wasi/libc-top-half/musl/src/ctype/ispunct.c",
895 "wasi/libc-top-half/musl/src/ctype/isspace.c",
896 "wasi/libc-top-half/musl/src/ctype/isupper.c",
897 "wasi/libc-top-half/musl/src/ctype/iswalnum.c",
898 "wasi/libc-top-half/musl/src/ctype/iswalpha.c",
899 "wasi/libc-top-half/musl/src/ctype/iswblank.c",
900 "wasi/libc-top-half/musl/src/ctype/iswcntrl.c",
901 "wasi/libc-top-half/musl/src/ctype/iswctype.c",
902 "wasi/libc-top-half/musl/src/ctype/iswdigit.c",
903 "wasi/libc-top-half/musl/src/ctype/iswgraph.c",
904 "wasi/libc-top-half/musl/src/ctype/iswlower.c",
905 "wasi/libc-top-half/musl/src/ctype/iswprint.c",
906 "wasi/libc-top-half/musl/src/ctype/iswpunct.c",
907 "wasi/libc-top-half/musl/src/ctype/iswspace.c",
908 "wasi/libc-top-half/musl/src/ctype/iswupper.c",
909 "wasi/libc-top-half/musl/src/ctype/iswxdigit.c",
910 "wasi/libc-top-half/musl/src/ctype/isxdigit.c",
911 "wasi/libc-top-half/musl/src/ctype/toascii.c",
912 "wasi/libc-top-half/musl/src/ctype/tolower.c",
913 "wasi/libc-top-half/musl/src/ctype/toupper.c",
914 "wasi/libc-top-half/musl/src/ctype/towctrans.c",
915 "wasi/libc-top-half/musl/src/ctype/wcswidth.c",
916 "wasi/libc-top-half/musl/src/ctype/wctrans.c",
917 "wasi/libc-top-half/musl/src/ctype/wcwidth.c",
918 "wasi/libc-top-half/musl/src/math/__cos.c",
919 "wasi/libc-top-half/musl/src/math/__cosdf.c",
920 "wasi/libc-top-half/musl/src/math/__cosl.c",
921 "wasi/libc-top-half/musl/src/math/__expo2.c",
922 "wasi/libc-top-half/musl/src/math/__expo2f.c",
923 "wasi/libc-top-half/musl/src/math/__invtrigl.c",
924 "wasi/libc-top-half/musl/src/math/__math_divzero.c",
925 "wasi/libc-top-half/musl/src/math/__math_divzerof.c",
926 "wasi/libc-top-half/musl/src/math/__math_invalid.c",
927 "wasi/libc-top-half/musl/src/math/__math_invalidf.c",
928 "wasi/libc-top-half/musl/src/math/__math_invalidl.c",
929 "wasi/libc-top-half/musl/src/math/__math_oflow.c",
930 "wasi/libc-top-half/musl/src/math/__math_oflowf.c",
931 "wasi/libc-top-half/musl/src/math/__math_uflow.c",
932 "wasi/libc-top-half/musl/src/math/__math_uflowf.c",
933 "wasi/libc-top-half/musl/src/math/__math_xflow.c",
934 "wasi/libc-top-half/musl/src/math/__math_xflowf.c",
935 "wasi/libc-top-half/musl/src/math/__polevll.c",
936 "wasi/libc-top-half/musl/src/math/__rem_pio2.c",
937 "wasi/libc-top-half/musl/src/math/__rem_pio2_large.c",
938 "wasi/libc-top-half/musl/src/math/__rem_pio2f.c",
939 "wasi/libc-top-half/musl/src/math/__rem_pio2l.c",
940 "wasi/libc-top-half/musl/src/math/__sin.c",
941 "wasi/libc-top-half/musl/src/math/__sindf.c",
942 "wasi/libc-top-half/musl/src/math/__sinl.c",
943 "wasi/libc-top-half/musl/src/math/__tan.c",
944 "wasi/libc-top-half/musl/src/math/__tandf.c",
945 "wasi/libc-top-half/musl/src/math/__tanl.c",
946 "wasi/libc-top-half/musl/src/math/acos.c",
947 "wasi/libc-top-half/musl/src/math/acosf.c",
948 "wasi/libc-top-half/musl/src/math/acosh.c",
949 "wasi/libc-top-half/musl/src/math/acoshf.c",
950 "wasi/libc-top-half/musl/src/math/acoshl.c",
951 "wasi/libc-top-half/musl/src/math/acosl.c",
952 "wasi/libc-top-half/musl/src/math/asin.c",
953 "wasi/libc-top-half/musl/src/math/asinf.c",
954 "wasi/libc-top-half/musl/src/math/asinh.c",
955 "wasi/libc-top-half/musl/src/math/asinhf.c",
956 "wasi/libc-top-half/musl/src/math/asinhl.c",
957 "wasi/libc-top-half/musl/src/math/asinl.c",
958 "wasi/libc-top-half/musl/src/math/atan.c",
959 "wasi/libc-top-half/musl/src/math/atan2.c",
960 "wasi/libc-top-half/musl/src/math/atan2f.c",
961 "wasi/libc-top-half/musl/src/math/atan2l.c",
962 "wasi/libc-top-half/musl/src/math/atanf.c",
963 "wasi/libc-top-half/musl/src/math/atanh.c",
964 "wasi/libc-top-half/musl/src/math/atanhf.c",
965 "wasi/libc-top-half/musl/src/math/atanhl.c",
966 "wasi/libc-top-half/musl/src/math/atanl.c",
967 "wasi/libc-top-half/musl/src/math/cbrt.c",
968 "wasi/libc-top-half/musl/src/math/cbrtf.c",
969 "wasi/libc-top-half/musl/src/math/cbrtl.c",
970 "wasi/libc-top-half/musl/src/math/ceill.c",
971 "wasi/libc-top-half/musl/src/math/copysignl.c",
972 "wasi/libc-top-half/musl/src/math/cos.c",
973 "wasi/libc-top-half/musl/src/math/cosf.c",
974 "wasi/libc-top-half/musl/src/math/cosh.c",
975 "wasi/libc-top-half/musl/src/math/coshf.c",
976 "wasi/libc-top-half/musl/src/math/coshl.c",
977 "wasi/libc-top-half/musl/src/math/cosl.c",
978 "wasi/libc-top-half/musl/src/math/erf.c",
979 "wasi/libc-top-half/musl/src/math/erff.c",
980 "wasi/libc-top-half/musl/src/math/erfl.c",
981 "wasi/libc-top-half/musl/src/math/exp.c",
982 "wasi/libc-top-half/musl/src/math/exp10.c",
983 "wasi/libc-top-half/musl/src/math/exp10f.c",
984 "wasi/libc-top-half/musl/src/math/exp10l.c",
985 "wasi/libc-top-half/musl/src/math/exp2.c",
986 "wasi/libc-top-half/musl/src/math/exp2f.c",
987 "wasi/libc-top-half/musl/src/math/exp2f_data.c",
988 "wasi/libc-top-half/musl/src/math/exp2l.c",
989 "wasi/libc-top-half/musl/src/math/exp_data.c",
990 "wasi/libc-top-half/musl/src/math/expf.c",
991 "wasi/libc-top-half/musl/src/math/expl.c",
992 "wasi/libc-top-half/musl/src/math/expm1.c",
993 "wasi/libc-top-half/musl/src/math/expm1f.c",
994 "wasi/libc-top-half/musl/src/math/expm1l.c",
995 "wasi/libc-top-half/musl/src/math/fabsl.c",
996 "wasi/libc-top-half/musl/src/math/fdim.c",
997 "wasi/libc-top-half/musl/src/math/fdimf.c",
998 "wasi/libc-top-half/musl/src/math/fdiml.c",
999 "wasi/libc-top-half/musl/src/math/finite.c",
1000 "wasi/libc-top-half/musl/src/math/finitef.c",
1001 "wasi/libc-top-half/musl/src/math/floorl.c",
1002 "wasi/libc-top-half/musl/src/math/fma.c",
1003 "wasi/libc-top-half/musl/src/math/fmaf.c",
1004 "wasi/libc-top-half/musl/src/math/fmal.c",
1005 "wasi/libc-top-half/musl/src/math/fmaxl.c",
1006 "wasi/libc-top-half/musl/src/math/fminl.c",
1007 "wasi/libc-top-half/musl/src/math/fmod.c",
1008 "wasi/libc-top-half/musl/src/math/fmodf.c",
1009 "wasi/libc-top-half/musl/src/math/fmodl.c",
1010 "wasi/libc-top-half/musl/src/math/frexp.c",
1011 "wasi/libc-top-half/musl/src/math/frexpf.c",
1012 "wasi/libc-top-half/musl/src/math/frexpl.c",
1013 "wasi/libc-top-half/musl/src/math/hypot.c",
1014 "wasi/libc-top-half/musl/src/math/hypotf.c",
1015 "wasi/libc-top-half/musl/src/math/hypotl.c",
1016 "wasi/libc-top-half/musl/src/math/ilogb.c",
1017 "wasi/libc-top-half/musl/src/math/ilogbf.c",
1018 "wasi/libc-top-half/musl/src/math/ilogbl.c",
1019 "wasi/libc-top-half/musl/src/math/j0.c",
1020 "wasi/libc-top-half/musl/src/math/j0f.c",
1021 "wasi/libc-top-half/musl/src/math/j1.c",
1022 "wasi/libc-top-half/musl/src/math/j1f.c",
1023 "wasi/libc-top-half/musl/src/math/jn.c",
1024 "wasi/libc-top-half/musl/src/math/jnf.c",
1025 "wasi/libc-top-half/musl/src/math/ldexp.c",
1026 "wasi/libc-top-half/musl/src/math/ldexpf.c",
1027 "wasi/libc-top-half/musl/src/math/ldexpl.c",
1028 "wasi/libc-top-half/musl/src/math/lgamma.c",
1029 "wasi/libc-top-half/musl/src/math/lgamma_r.c",
1030 "wasi/libc-top-half/musl/src/math/lgammaf.c",
1031 "wasi/libc-top-half/musl/src/math/lgammaf_r.c",
1032 "wasi/libc-top-half/musl/src/math/lgammal.c",
1033 "wasi/libc-top-half/musl/src/math/llrint.c",
1034 "wasi/libc-top-half/musl/src/math/llrintf.c",
1035 "wasi/libc-top-half/musl/src/math/llrintl.c",
1036 "wasi/libc-top-half/musl/src/math/llround.c",
1037 "wasi/libc-top-half/musl/src/math/llroundf.c",
1038 "wasi/libc-top-half/musl/src/math/llroundl.c",
1039 "wasi/libc-top-half/musl/src/math/log.c",
1040 "wasi/libc-top-half/musl/src/math/log10.c",
1041 "wasi/libc-top-half/musl/src/math/log10f.c",
1042 "wasi/libc-top-half/musl/src/math/log10l.c",
1043 "wasi/libc-top-half/musl/src/math/log1p.c",
1044 "wasi/libc-top-half/musl/src/math/log1pf.c",
1045 "wasi/libc-top-half/musl/src/math/log1pl.c",
1046 "wasi/libc-top-half/musl/src/math/log2.c",
1047 "wasi/libc-top-half/musl/src/math/log2_data.c",
1048 "wasi/libc-top-half/musl/src/math/log2f.c",
1049 "wasi/libc-top-half/musl/src/math/log2f_data.c",
1050 "wasi/libc-top-half/musl/src/math/log2l.c",
1051 "wasi/libc-top-half/musl/src/math/log_data.c",
1052 "wasi/libc-top-half/musl/src/math/logb.c",
1053 "wasi/libc-top-half/musl/src/math/logbf.c",
1054 "wasi/libc-top-half/musl/src/math/logbl.c",
1055 "wasi/libc-top-half/musl/src/math/logf.c",
1056 "wasi/libc-top-half/musl/src/math/logf_data.c",
1057 "wasi/libc-top-half/musl/src/math/logl.c",
1058 "wasi/libc-top-half/musl/src/math/lrint.c",
1059 "wasi/libc-top-half/musl/src/math/lrintf.c",
1060 "wasi/libc-top-half/musl/src/math/lrintl.c",
1061 "wasi/libc-top-half/musl/src/math/lround.c",
1062 "wasi/libc-top-half/musl/src/math/lroundf.c",
1063 "wasi/libc-top-half/musl/src/math/lroundl.c",
1064 "wasi/libc-top-half/musl/src/math/modf.c",
1065 "wasi/libc-top-half/musl/src/math/modff.c",
1066 "wasi/libc-top-half/musl/src/math/modfl.c",
1067 "wasi/libc-top-half/musl/src/math/nan.c",
1068 "wasi/libc-top-half/musl/src/math/nanf.c",
1069 "wasi/libc-top-half/musl/src/math/nanl.c",
1070 "wasi/libc-top-half/musl/src/math/nearbyintl.c",
1071 "wasi/libc-top-half/musl/src/math/nextafter.c",
1072 "wasi/libc-top-half/musl/src/math/nextafterf.c",
1073 "wasi/libc-top-half/musl/src/math/nextafterl.c",
1074 "wasi/libc-top-half/musl/src/math/nexttoward.c",
1075 "wasi/libc-top-half/musl/src/math/nexttowardf.c",
1076 "wasi/libc-top-half/musl/src/math/nexttowardl.c",
1077 "wasi/libc-top-half/musl/src/math/pow.c",
1078 "wasi/libc-top-half/musl/src/math/pow_data.c",
1079 "wasi/libc-top-half/musl/src/math/powf.c",
1080 "wasi/libc-top-half/musl/src/math/powf_data.c",
1081 "wasi/libc-top-half/musl/src/math/powl.c",
1082 "wasi/libc-top-half/musl/src/math/remainder.c",
1083 "wasi/libc-top-half/musl/src/math/remainderf.c",
1084 "wasi/libc-top-half/musl/src/math/remainderl.c",
1085 "wasi/libc-top-half/musl/src/math/remquo.c",
1086 "wasi/libc-top-half/musl/src/math/remquof.c",
1087 "wasi/libc-top-half/musl/src/math/remquol.c",
1088 "wasi/libc-top-half/musl/src/math/rintl.c",
1089 "wasi/libc-top-half/musl/src/math/round.c",
1090 "wasi/libc-top-half/musl/src/math/roundf.c",
1091 "wasi/libc-top-half/musl/src/math/roundl.c",
1092 "wasi/libc-top-half/musl/src/math/scalb.c",
1093 "wasi/libc-top-half/musl/src/math/scalbf.c",
1094 "wasi/libc-top-half/musl/src/math/scalbln.c",
1095 "wasi/libc-top-half/musl/src/math/scalblnf.c",
1096 "wasi/libc-top-half/musl/src/math/scalblnl.c",
1097 "wasi/libc-top-half/musl/src/math/scalbn.c",
1098 "wasi/libc-top-half/musl/src/math/scalbnf.c",
1099 "wasi/libc-top-half/musl/src/math/scalbnl.c",
1100 "wasi/libc-top-half/musl/src/math/signgam.c",
1101 "wasi/libc-top-half/musl/src/math/significand.c",
1102 "wasi/libc-top-half/musl/src/math/significandf.c",
1103 "wasi/libc-top-half/musl/src/math/sin.c",
1104 "wasi/libc-top-half/musl/src/math/sincos.c",
1105 "wasi/libc-top-half/musl/src/math/sincosf.c",
1106 "wasi/libc-top-half/musl/src/math/sincosl.c",
1107 "wasi/libc-top-half/musl/src/math/sinf.c",
1108 "wasi/libc-top-half/musl/src/math/sinh.c",
1109 "wasi/libc-top-half/musl/src/math/sinhf.c",
1110 "wasi/libc-top-half/musl/src/math/sinhl.c",
1111 "wasi/libc-top-half/musl/src/math/sinl.c",
1112 "wasi/libc-top-half/musl/src/math/sqrt_data.c",
1113 "wasi/libc-top-half/musl/src/math/sqrtl.c",
1114 "wasi/libc-top-half/musl/src/math/tan.c",
1115 "wasi/libc-top-half/musl/src/math/tanf.c",
1116 "wasi/libc-top-half/musl/src/math/tanh.c",
1117 "wasi/libc-top-half/musl/src/math/tanhf.c",
1118 "wasi/libc-top-half/musl/src/math/tanhl.c",
1119 "wasi/libc-top-half/musl/src/math/tanl.c",
1120 "wasi/libc-top-half/musl/src/math/tgamma.c",
1121 "wasi/libc-top-half/musl/src/math/tgammaf.c",
1122 "wasi/libc-top-half/musl/src/math/tgammal.c",
1123 "wasi/libc-top-half/musl/src/math/truncl.c",
1124 "wasi/libc-top-half/musl/src/complex/__cexp.c",
1125 "wasi/libc-top-half/musl/src/complex/__cexpf.c",
1126 "wasi/libc-top-half/musl/src/complex/cabs.c",
1127 "wasi/libc-top-half/musl/src/complex/cabsf.c",
1128 "wasi/libc-top-half/musl/src/complex/cabsl.c",
1129 "wasi/libc-top-half/musl/src/complex/cacos.c",
1130 "wasi/libc-top-half/musl/src/complex/cacosf.c",
1131 "wasi/libc-top-half/musl/src/complex/cacosh.c",
1132 "wasi/libc-top-half/musl/src/complex/cacoshf.c",
1133 "wasi/libc-top-half/musl/src/complex/cacoshl.c",
1134 "wasi/libc-top-half/musl/src/complex/cacosl.c",
1135 "wasi/libc-top-half/musl/src/complex/carg.c",
1136 "wasi/libc-top-half/musl/src/complex/cargf.c",
1137 "wasi/libc-top-half/musl/src/complex/cargl.c",
1138 "wasi/libc-top-half/musl/src/complex/casin.c",
1139 "wasi/libc-top-half/musl/src/complex/casinf.c",
1140 "wasi/libc-top-half/musl/src/complex/casinh.c",
1141 "wasi/libc-top-half/musl/src/complex/casinhf.c",
1142 "wasi/libc-top-half/musl/src/complex/casinhl.c",
1143 "wasi/libc-top-half/musl/src/complex/casinl.c",
1144 "wasi/libc-top-half/musl/src/complex/catan.c",
1145 "wasi/libc-top-half/musl/src/complex/catanf.c",
1146 "wasi/libc-top-half/musl/src/complex/catanh.c",
1147 "wasi/libc-top-half/musl/src/complex/catanhf.c",
1148 "wasi/libc-top-half/musl/src/complex/catanhl.c",
1149 "wasi/libc-top-half/musl/src/complex/catanl.c",
1150 "wasi/libc-top-half/musl/src/complex/ccos.c",
1151 "wasi/libc-top-half/musl/src/complex/ccosf.c",
1152 "wasi/libc-top-half/musl/src/complex/ccosh.c",
1153 "wasi/libc-top-half/musl/src/complex/ccoshf.c",
1154 "wasi/libc-top-half/musl/src/complex/ccoshl.c",
1155 "wasi/libc-top-half/musl/src/complex/ccosl.c",
1156 "wasi/libc-top-half/musl/src/complex/cexp.c",
1157 "wasi/libc-top-half/musl/src/complex/cexpf.c",
1158 "wasi/libc-top-half/musl/src/complex/cexpl.c",
1159 "wasi/libc-top-half/musl/src/complex/clog.c",
1160 "wasi/libc-top-half/musl/src/complex/clogf.c",
1161 "wasi/libc-top-half/musl/src/complex/clogl.c",
1162 "wasi/libc-top-half/musl/src/complex/conj.c",
1163 "wasi/libc-top-half/musl/src/complex/conjf.c",
1164 "wasi/libc-top-half/musl/src/complex/conjl.c",
1165 "wasi/libc-top-half/musl/src/complex/cpow.c",
1166 "wasi/libc-top-half/musl/src/complex/cpowf.c",
1167 "wasi/libc-top-half/musl/src/complex/cpowl.c",
1168 "wasi/libc-top-half/musl/src/complex/cproj.c",
1169 "wasi/libc-top-half/musl/src/complex/cprojf.c",
1170 "wasi/libc-top-half/musl/src/complex/cprojl.c",
1171 "wasi/libc-top-half/musl/src/complex/csin.c",
1172 "wasi/libc-top-half/musl/src/complex/csinf.c",
1173 "wasi/libc-top-half/musl/src/complex/csinh.c",
1174 "wasi/libc-top-half/musl/src/complex/csinhf.c",
1175 "wasi/libc-top-half/musl/src/complex/csinhl.c",
1176 "wasi/libc-top-half/musl/src/complex/csinl.c",
1177 "wasi/libc-top-half/musl/src/complex/csqrt.c",
1178 "wasi/libc-top-half/musl/src/complex/csqrtf.c",
1179 "wasi/libc-top-half/musl/src/complex/csqrtl.c",
1180 "wasi/libc-top-half/musl/src/complex/ctan.c",
1181 "wasi/libc-top-half/musl/src/complex/ctanf.c",
1182 "wasi/libc-top-half/musl/src/complex/ctanh.c",
1183 "wasi/libc-top-half/musl/src/complex/ctanhf.c",
1184 "wasi/libc-top-half/musl/src/complex/ctanhl.c",
1185 "wasi/libc-top-half/musl/src/complex/ctanl.c",
1186 "wasi/libc-top-half/musl/src/crypt/crypt.c",
1187 "wasi/libc-top-half/musl/src/crypt/crypt_blowfish.c",
1188 "wasi/libc-top-half/musl/src/crypt/crypt_des.c",
1189 "wasi/libc-top-half/musl/src/crypt/crypt_md5.c",
1190 "wasi/libc-top-half/musl/src/crypt/crypt_r.c",
1191 "wasi/libc-top-half/musl/src/crypt/crypt_sha256.c",
1192 "wasi/libc-top-half/musl/src/crypt/crypt_sha512.c",
1193 "wasi/libc-top-half/musl/src/crypt/encrypt.c",
1194 "wasi/libc-top-half/sources/arc4random.c",
1197 const crt1_command_src_file = "wasi/libc-bottom-half/crt/crt1-command.c";
1198 const crt1_reactor_src_file = "wasi/libc-bottom-half/crt/crt1-reactor.c";
1200 const emulated_dl_src_files = &[_][]const u8{
1201 "wasi/libc-top-half/musl/src/misc/dl.c",
1204 const emulated_process_clocks_src_files = &[_][]const u8{
1205 "wasi/libc-bottom-half/clocks/clock.c",
1206 "wasi/libc-bottom-half/clocks/getrusage.c",
1207 "wasi/libc-bottom-half/clocks/times.c",
1210 const emulated_getpid_src_files = &[_][]const u8{
1211 "wasi/libc-bottom-half/getpid/getpid.c",
1214 const emulated_mman_src_files = &[_][]const u8{
1215 "wasi/libc-bottom-half/mman/mman.c",
1218 const emulated_signal_bottom_half_src_files = &[_][]const u8{
1219 "wasi/libc-bottom-half/signal/signal.c",
1222 const emulated_signal_top_half_src_files = &[_][]const u8{
1223 "wasi/libc-top-half/musl/src/signal/psignal.c",
1224 "wasi/libc-top-half/musl/src/string/strsignal.c",