master
1const std = @import("std");
2const mem = std.mem;
3const path = std.fs.path;
4
5const Allocator = std.mem.Allocator;
6const Compilation = @import("../Compilation.zig");
7const build_options = @import("build_options");
8
9pub const CrtFile = enum {
10 crt1_reactor_o,
11 crt1_command_o,
12 libc_a,
13};
14
15pub fn execModelCrtFile(wasi_exec_model: std.builtin.WasiExecModel) CrtFile {
16 return switch (wasi_exec_model) {
17 .reactor => CrtFile.crt1_reactor_o,
18 .command => CrtFile.crt1_command_o,
19 };
20}
21
22pub fn execModelCrtFileFullName(wasi_exec_model: std.builtin.WasiExecModel) []const u8 {
23 return switch (execModelCrtFile(wasi_exec_model)) {
24 .crt1_reactor_o => "crt1-reactor.o",
25 .crt1_command_o => "crt1-command.o",
26 else => unreachable,
27 };
28}
29
30/// TODO replace anyerror with explicit error set, recording user-friendly errors with
31/// lockAndSetMiscFailure and returning error.AlreadyReported. see libcxx.zig for example.
32pub fn buildCrtFile(comp: *Compilation, crt_file: CrtFile, prog_node: std.Progress.Node) anyerror!void {
33 if (!build_options.have_llvm) {
34 return error.ZigCompilerNotBuiltWithLLVMExtensions;
35 }
36
37 const gpa = comp.gpa;
38 var arena_allocator = std.heap.ArenaAllocator.init(gpa);
39 defer arena_allocator.deinit();
40 const arena = arena_allocator.allocator();
41
42 switch (crt_file) {
43 .crt1_reactor_o => {
44 var args = std.array_list.Managed([]const u8).init(arena);
45 try addCCArgs(comp, arena, &args, .{});
46 try addLibcBottomHalfIncludes(comp, arena, &args);
47
48 var files = [_]Compilation.CSourceFile{
49 .{
50 .src_path = try comp.dirs.zig_lib.join(arena, &.{
51 "libc", try sanitize(arena, crt1_reactor_src_file),
52 }),
53 .extra_flags = args.items,
54 .owner = undefined,
55 },
56 };
57
58 return comp.build_crt_file("crt1-reactor", .Obj, .@"wasi crt1-reactor.o", prog_node, &files, .{});
59 },
60 .crt1_command_o => {
61 var args = std.array_list.Managed([]const u8).init(arena);
62 try addCCArgs(comp, arena, &args, .{});
63 try addLibcBottomHalfIncludes(comp, arena, &args);
64
65 var files = [_]Compilation.CSourceFile{
66 .{
67 .src_path = try comp.dirs.zig_lib.join(arena, &.{
68 "libc", try sanitize(arena, crt1_command_src_file),
69 }),
70 .extra_flags = args.items,
71 .owner = undefined,
72 },
73 };
74
75 return comp.build_crt_file("crt1-command", .Obj, .@"wasi crt1-command.o", prog_node, &files, .{});
76 },
77 .libc_a => {
78 var libc_sources = std.array_list.Managed(Compilation.CSourceFile).init(arena);
79
80 {
81 // Compile emmalloc.
82 var args = std.array_list.Managed([]const u8).init(arena);
83 try addCCArgs(comp, arena, &args, .{ .want_O3 = true, .no_strict_aliasing = true });
84
85 for (emmalloc_src_files) |file_path| {
86 try libc_sources.append(.{
87 .src_path = try comp.dirs.zig_lib.join(arena, &.{
88 "libc", try sanitize(arena, file_path),
89 }),
90 .extra_flags = args.items,
91 .owner = undefined,
92 });
93 }
94 }
95
96 {
97 // Compile libc-bottom-half.
98 var args = std.array_list.Managed([]const u8).init(arena);
99 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
100 try addLibcBottomHalfIncludes(comp, arena, &args);
101
102 for (libc_bottom_half_src_files) |file_path| {
103 try libc_sources.append(.{
104 .src_path = try comp.dirs.zig_lib.join(arena, &.{
105 "libc", try sanitize(arena, file_path),
106 }),
107 .extra_flags = args.items,
108 .owner = undefined,
109 });
110 }
111 }
112
113 {
114 // Compile libc-top-half.
115 var args = std.array_list.Managed([]const u8).init(arena);
116 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
117 try addLibcTopHalfIncludes(comp, arena, &args);
118
119 for (libc_top_half_src_files) |file_path| {
120 try libc_sources.append(.{
121 .src_path = try comp.dirs.zig_lib.join(arena, &.{
122 "libc", try sanitize(arena, file_path),
123 }),
124 .extra_flags = args.items,
125 .owner = undefined,
126 });
127 }
128 }
129
130 {
131 // Compile musl-fts.
132 var args = std.array_list.Managed([]const u8).init(arena);
133 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
134 try args.appendSlice(&[_][]const u8{
135 "-I",
136 try comp.dirs.zig_lib.join(arena, &.{
137 "libc",
138 "wasi",
139 "fts",
140 }),
141 });
142
143 for (fts_src_files) |file_path| {
144 try libc_sources.append(.{
145 .src_path = try comp.dirs.zig_lib.join(arena, &.{
146 "libc", try sanitize(arena, file_path),
147 }),
148 .extra_flags = args.items,
149 .owner = undefined,
150 });
151 }
152 }
153
154 if (comp.getTarget().cpu.has(.wasm, .exception_handling)) {
155 // Compile libsetjmp.
156 var args = std.array_list.Managed([]const u8).init(arena);
157 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
158 try addLibcTopHalfIncludes(comp, arena, &args);
159
160 for (setjmp_src_files) |file_path| {
161 try libc_sources.append(.{
162 .src_path = try comp.dirs.zig_lib.join(arena, &.{
163 "libc", try sanitize(arena, file_path),
164 }),
165 .extra_flags = args.items,
166 .owner = undefined,
167 });
168 }
169 }
170
171 {
172 // Compile libdl.
173 var args = std.array_list.Managed([]const u8).init(arena);
174 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
175 try addLibcTopHalfIncludes(comp, arena, &args);
176
177 for (emulated_dl_src_files) |file_path| {
178 try libc_sources.append(.{
179 .src_path = try comp.dirs.zig_lib.join(arena, &.{
180 "libc", try sanitize(arena, file_path),
181 }),
182 .extra_flags = args.items,
183 .owner = undefined,
184 });
185 }
186 }
187
188 {
189 // Compile libwasi-emulated-process-clocks.
190 var args = std.array_list.Managed([]const u8).init(arena);
191 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
192
193 for (emulated_process_clocks_src_files) |file_path| {
194 try libc_sources.append(.{
195 .src_path = try comp.dirs.zig_lib.join(arena, &.{
196 "libc", try sanitize(arena, file_path),
197 }),
198 .extra_flags = args.items,
199 .owner = undefined,
200 });
201 }
202 }
203
204 {
205 // Compile libwasi-emulated-getpid.
206 var args = std.array_list.Managed([]const u8).init(arena);
207 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
208
209 for (emulated_getpid_src_files) |file_path| {
210 try libc_sources.append(.{
211 .src_path = try comp.dirs.zig_lib.join(arena, &.{
212 "libc", try sanitize(arena, file_path),
213 }),
214 .extra_flags = args.items,
215 .owner = undefined,
216 });
217 }
218 }
219
220 {
221 // Compile libwasi-emulated-mman.
222 var args = std.array_list.Managed([]const u8).init(arena);
223 try addCCArgs(comp, arena, &args, .{ .want_O3 = true });
224
225 for (emulated_mman_src_files) |file_path| {
226 try libc_sources.append(.{
227 .src_path = try comp.dirs.zig_lib.join(arena, &.{
228 "libc", try sanitize(arena, file_path),
229 }),
230 .extra_flags = args.items,
231 .owner = undefined,
232 });
233 }
234 }
235
236 {
237 // Compile libwasi-emulated-signal.
238 var bottom_args = std.array_list.Managed([]const u8).init(arena);
239 try addCCArgs(comp, arena, &bottom_args, .{ .want_O3 = true });
240
241 for (emulated_signal_bottom_half_src_files) |file_path| {
242 try libc_sources.append(.{
243 .src_path = try comp.dirs.zig_lib.join(arena, &.{
244 "libc", try sanitize(arena, file_path),
245 }),
246 .extra_flags = bottom_args.items,
247 .owner = undefined,
248 });
249 }
250
251 var top_args = std.array_list.Managed([]const u8).init(arena);
252 try addCCArgs(comp, arena, &top_args, .{ .want_O3 = true });
253 try addLibcTopHalfIncludes(comp, arena, &top_args);
254 try top_args.append("-D_WASI_EMULATED_SIGNAL");
255
256 for (emulated_signal_top_half_src_files) |file_path| {
257 try libc_sources.append(.{
258 .src_path = try comp.dirs.zig_lib.join(arena, &.{
259 "libc", try sanitize(arena, file_path),
260 }),
261 .extra_flags = top_args.items,
262 .owner = undefined,
263 });
264 }
265 }
266
267 try comp.build_crt_file("c", .Lib, .@"wasi libc.a", prog_node, libc_sources.items, .{});
268 },
269 }
270}
271
272fn 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| {
279 if (c.* == '/') {
280 c.* = path.sep;
281 }
282 }
283 break :blk mutable_file_path;
284 } else file_path;
285 return out_path;
286}
287
288const CCOptions = struct {
289 want_O3: bool = false,
290 no_strict_aliasing: bool = false,
291};
292
293fn addCCArgs(
294 comp: *Compilation,
295 arena: Allocator,
296 args: *std.array_list.Managed([]const u8),
297 options: CCOptions,
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";
304
305 try args.appendSlice(&[_][]const u8{
306 "-std=gnu17",
307 "-fno-trapping-math",
308 "-w", // ignore all warnings
309
310 o_arg,
311
312 "-mthread-model",
313 "single",
314
315 "-I",
316 try comp.dirs.zig_lib.join(arena, &.{
317 "libc",
318 "wasi",
319 "libc-bottom-half",
320 "cloudlibc",
321 "src",
322 }),
323
324 "-isystem",
325 try comp.dirs.zig_lib.join(arena, &.{ "libc", "include", triple }),
326 "-isystem",
327 try comp.dirs.zig_lib.join(arena, &.{ "libc", "include", "generic-musl" }),
328
329 "-DBULK_MEMORY_THRESHOLD=32",
330 });
331
332 if (options.no_strict_aliasing) {
333 try args.appendSlice(&[_][]const u8{"-fno-strict-aliasing"});
334 }
335}
336
337fn addLibcBottomHalfIncludes(
338 comp: *Compilation,
339 arena: Allocator,
340 args: *std.array_list.Managed([]const u8),
341) error{OutOfMemory}!void {
342 try args.appendSlice(&[_][]const u8{
343 "-I",
344 try comp.dirs.zig_lib.join(arena, &.{
345 "libc",
346 "wasi",
347 "libc-bottom-half",
348 "headers",
349 "private",
350 }),
351
352 "-I",
353 try comp.dirs.zig_lib.join(arena, &.{
354 "libc",
355 "wasi",
356 "libc-bottom-half",
357 "cloudlibc",
358 "src",
359 "include",
360 }),
361
362 "-I",
363 try comp.dirs.zig_lib.join(arena, &.{
364 "libc",
365 "wasi",
366 "libc-bottom-half",
367 "cloudlibc",
368 "src",
369 }),
370
371 "-I",
372 try comp.dirs.zig_lib.join(arena, &.{
373 "libc",
374 "wasi",
375 "libc-top-half",
376 "musl",
377 "src",
378 "include",
379 }),
380 "-I",
381 try comp.dirs.zig_lib.join(arena, &.{
382 "libc",
383 "musl",
384 "src",
385 "include",
386 }),
387 "-I",
388
389 try comp.dirs.zig_lib.join(arena, &.{
390 "libc",
391 "wasi",
392 "libc-top-half",
393 "musl",
394 "src",
395 "internal",
396 }),
397 "-I",
398 try comp.dirs.zig_lib.join(arena, &.{
399 "libc",
400 "musl",
401 "src",
402 "internal",
403 }),
404 });
405}
406
407fn addLibcTopHalfIncludes(
408 comp: *Compilation,
409 arena: Allocator,
410 args: *std.array_list.Managed([]const u8),
411) error{OutOfMemory}!void {
412 try args.appendSlice(&[_][]const u8{
413 "-I",
414 try comp.dirs.zig_lib.join(arena, &.{
415 "libc",
416 "wasi",
417 "libc-top-half",
418 "musl",
419 "src",
420 "include",
421 }),
422 "-I",
423 try comp.dirs.zig_lib.join(arena, &.{
424 "libc",
425 "musl",
426 "src",
427 "include",
428 }),
429
430 "-I",
431 try comp.dirs.zig_lib.join(arena, &.{
432 "libc",
433 "wasi",
434 "libc-top-half",
435 "musl",
436 "src",
437 "internal",
438 }),
439 "-I",
440 try comp.dirs.zig_lib.join(arena, &.{
441 "libc",
442 "musl",
443 "src",
444 "internal",
445 }),
446
447 "-I",
448 try comp.dirs.zig_lib.join(arena, &.{
449 "libc",
450 "wasi",
451 "libc-top-half",
452 "musl",
453 "arch",
454 "wasm32",
455 }),
456 "-I",
457 try comp.dirs.zig_lib.join(arena, &.{
458 "libc",
459 "musl",
460 "arch",
461 "generic",
462 }),
463
464 "-I",
465 try comp.dirs.zig_lib.join(arena, &.{
466 "libc",
467 "wasi",
468 "libc-top-half",
469 "headers",
470 "private",
471 }),
472 });
473}
474
475const emmalloc_src_files = [_][]const u8{
476 "wasi/emmalloc/emmalloc.c",
477};
478
479const libc_bottom_half_src_files = [_][]const u8{
480 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/closedir.c",
481 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/dirfd.c",
482 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/fdclosedir.c",
483 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/fdopendir.c",
484 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/opendirat.c",
485 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/readdir.c",
486 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/rewinddir.c",
487 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/scandirat.c",
488 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/seekdir.c",
489 "wasi/libc-bottom-half/cloudlibc/src/libc/dirent/telldir.c",
490 "wasi/libc-bottom-half/cloudlibc/src/libc/errno/errno.c",
491 "wasi/libc-bottom-half/cloudlibc/src/libc/fcntl/fcntl.c",
492 "wasi/libc-bottom-half/cloudlibc/src/libc/fcntl/openat.c",
493 "wasi/libc-bottom-half/cloudlibc/src/libc/fcntl/posix_fadvise.c",
494 "wasi/libc-bottom-half/cloudlibc/src/libc/fcntl/posix_fallocate.c",
495 "wasi/libc-bottom-half/cloudlibc/src/libc/poll/poll.c",
496 "wasi/libc-bottom-half/cloudlibc/src/libc/sched/sched_yield.c",
497 "wasi/libc-bottom-half/cloudlibc/src/libc/stdio/renameat.c",
498 "wasi/libc-bottom-half/cloudlibc/src/libc/stdlib/_Exit.c",
499 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/ioctl/ioctl.c",
500 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/select/pselect.c",
501 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/select/select.c",
502 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/socket/getsockopt.c",
503 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/socket/recv.c",
504 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/socket/send.c",
505 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/socket/shutdown.c",
506 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/fstatat.c",
507 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/fstat.c",
508 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/futimens.c",
509 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/mkdirat.c",
510 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/stat/utimensat.c",
511 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/time/gettimeofday.c",
512 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/uio/preadv.c",
513 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/uio/pwritev.c",
514 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/uio/readv.c",
515 "wasi/libc-bottom-half/cloudlibc/src/libc/sys/uio/writev.c",
516 "wasi/libc-bottom-half/cloudlibc/src/libc/time/clock_getres.c",
517 "wasi/libc-bottom-half/cloudlibc/src/libc/time/clock_gettime.c",
518 "wasi/libc-bottom-half/cloudlibc/src/libc/time/CLOCK_MONOTONIC.c",
519 "wasi/libc-bottom-half/cloudlibc/src/libc/time/clock_nanosleep.c",
520 "wasi/libc-bottom-half/cloudlibc/src/libc/time/CLOCK_REALTIME.c",
521 "wasi/libc-bottom-half/cloudlibc/src/libc/time/nanosleep.c",
522 "wasi/libc-bottom-half/cloudlibc/src/libc/time/time.c",
523 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/faccessat.c",
524 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/fdatasync.c",
525 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/fsync.c",
526 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/ftruncate.c",
527 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/linkat.c",
528 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/lseek.c",
529 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/pread.c",
530 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/pwrite.c",
531 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/read.c",
532 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/readlinkat.c",
533 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/sleep.c",
534 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/symlinkat.c",
535 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/unlinkat.c",
536 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/usleep.c",
537 "wasi/libc-bottom-half/cloudlibc/src/libc/unistd/write.c",
538 "wasi/libc-bottom-half/sources/abort.c",
539 "wasi/libc-bottom-half/sources/accept-wasip1.c",
540 "wasi/libc-bottom-half/sources/at_fdcwd.c",
541 "wasi/libc-bottom-half/sources/chdir.c",
542 "wasi/libc-bottom-half/sources/complex-builtins.c",
543 "wasi/libc-bottom-half/sources/environ.c",
544 "wasi/libc-bottom-half/sources/errno.c",
545 "wasi/libc-bottom-half/sources/__errno_location.c",
546 "wasi/libc-bottom-half/sources/getcwd.c",
547 "wasi/libc-bottom-half/sources/getentropy.c",
548 "wasi/libc-bottom-half/sources/isatty.c",
549 "wasi/libc-bottom-half/sources/__main_void.c",
550 "wasi/libc-bottom-half/sources/math/fmin-fmax.c",
551 "wasi/libc-bottom-half/sources/math/math-builtins.c",
552 "wasi/libc-bottom-half/sources/posix.c",
553 "wasi/libc-bottom-half/sources/preopens.c",
554 "wasi/libc-bottom-half/sources/reallocarray.c",
555 "wasi/libc-bottom-half/sources/sbrk.c",
556 "wasi/libc-bottom-half/sources/truncate.c",
557 "wasi/libc-bottom-half/sources/__wasilibc_dt.c",
558 "wasi/libc-bottom-half/sources/__wasilibc_environ.c",
559 "wasi/libc-bottom-half/sources/__wasilibc_fd_renumber.c",
560 "wasi/libc-bottom-half/sources/__wasilibc_initialize_environ.c",
561 "wasi/libc-bottom-half/sources/__wasilibc_random.c",
562 "wasi/libc-bottom-half/sources/__wasilibc_real.c",
563 "wasi/libc-bottom-half/sources/__wasilibc_rmdirat.c",
564 "wasi/libc-bottom-half/sources/__wasilibc_tell.c",
565 "wasi/libc-bottom-half/sources/__wasilibc_unlinkat.c",
566};
567
568const libc_top_half_src_files = [_][]const u8{
569 "musl/src/complex/cabs.c",
570 "musl/src/complex/cabsf.c",
571 "musl/src/complex/cabsl.c",
572 "musl/src/complex/cacos.c",
573 "musl/src/complex/cacosf.c",
574 "musl/src/complex/cacosh.c",
575 "musl/src/complex/cacoshf.c",
576 "musl/src/complex/cacoshl.c",
577 "musl/src/complex/cacosl.c",
578 "musl/src/complex/carg.c",
579 "musl/src/complex/cargf.c",
580 "musl/src/complex/cargl.c",
581 "musl/src/complex/casin.c",
582 "musl/src/complex/casinf.c",
583 "musl/src/complex/casinh.c",
584 "musl/src/complex/casinhf.c",
585 "musl/src/complex/casinhl.c",
586 "musl/src/complex/casinl.c",
587 "musl/src/complex/catan.c",
588 "musl/src/complex/catanf.c",
589 "musl/src/complex/catanh.c",
590 "musl/src/complex/catanhf.c",
591 "musl/src/complex/catanhl.c",
592 "musl/src/complex/catanl.c",
593 "musl/src/complex/ccos.c",
594 "musl/src/complex/ccosf.c",
595 "musl/src/complex/ccosh.c",
596 "musl/src/complex/ccoshf.c",
597 "musl/src/complex/ccoshl.c",
598 "musl/src/complex/ccosl.c",
599 "musl/src/complex/__cexp.c",
600 "musl/src/complex/cexp.c",
601 "musl/src/complex/__cexpf.c",
602 "musl/src/complex/cexpf.c",
603 "musl/src/complex/cexpl.c",
604 "musl/src/complex/clog.c",
605 "musl/src/complex/clogf.c",
606 "musl/src/complex/clogl.c",
607 "musl/src/complex/conj.c",
608 "musl/src/complex/conjf.c",
609 "musl/src/complex/conjl.c",
610 "musl/src/complex/cpow.c",
611 "musl/src/complex/cpowf.c",
612 "musl/src/complex/cpowl.c",
613 "musl/src/complex/cproj.c",
614 "musl/src/complex/cprojf.c",
615 "musl/src/complex/cprojl.c",
616 "musl/src/complex/csin.c",
617 "musl/src/complex/csinf.c",
618 "musl/src/complex/csinh.c",
619 "musl/src/complex/csinhf.c",
620 "musl/src/complex/csinhl.c",
621 "musl/src/complex/csinl.c",
622 "musl/src/complex/csqrt.c",
623 "musl/src/complex/csqrtf.c",
624 "musl/src/complex/csqrtl.c",
625 "musl/src/complex/ctan.c",
626 "musl/src/complex/ctanf.c",
627 "musl/src/complex/ctanh.c",
628 "musl/src/complex/ctanhf.c",
629 "musl/src/complex/ctanhl.c",
630 "musl/src/complex/ctanl.c",
631 "musl/src/conf/confstr.c",
632 "musl/src/conf/legacy.c",
633 "musl/src/conf/pathconf.c",
634 "musl/src/crypt/crypt_blowfish.c",
635 "musl/src/crypt/crypt.c",
636 "musl/src/crypt/crypt_des.c",
637 "musl/src/crypt/crypt_md5.c",
638 "musl/src/crypt/crypt_r.c",
639 "musl/src/crypt/crypt_sha256.c",
640 "musl/src/crypt/crypt_sha512.c",
641 "musl/src/crypt/encrypt.c",
642 "musl/src/ctype/__ctype_b_loc.c",
643 "musl/src/ctype/__ctype_get_mb_cur_max.c",
644 "musl/src/ctype/__ctype_tolower_loc.c",
645 "musl/src/ctype/__ctype_toupper_loc.c",
646 "musl/src/ctype/isalnum.c",
647 "musl/src/ctype/isalpha.c",
648 "musl/src/ctype/isascii.c",
649 "musl/src/ctype/isblank.c",
650 "musl/src/ctype/iscntrl.c",
651 "musl/src/ctype/isdigit.c",
652 "musl/src/ctype/isgraph.c",
653 "musl/src/ctype/islower.c",
654 "musl/src/ctype/isprint.c",
655 "musl/src/ctype/ispunct.c",
656 "musl/src/ctype/isspace.c",
657 "musl/src/ctype/isupper.c",
658 "musl/src/ctype/iswalnum.c",
659 "musl/src/ctype/iswalpha.c",
660 "musl/src/ctype/iswblank.c",
661 "musl/src/ctype/iswcntrl.c",
662 "musl/src/ctype/iswctype.c",
663 "musl/src/ctype/iswdigit.c",
664 "musl/src/ctype/iswgraph.c",
665 "musl/src/ctype/iswlower.c",
666 "musl/src/ctype/iswprint.c",
667 "musl/src/ctype/iswpunct.c",
668 "musl/src/ctype/iswspace.c",
669 "musl/src/ctype/iswupper.c",
670 "musl/src/ctype/iswxdigit.c",
671 "musl/src/ctype/isxdigit.c",
672 "musl/src/ctype/toascii.c",
673 "musl/src/ctype/tolower.c",
674 "musl/src/ctype/toupper.c",
675 "musl/src/ctype/towctrans.c",
676 "musl/src/ctype/wcswidth.c",
677 "musl/src/ctype/wctrans.c",
678 "musl/src/ctype/wcwidth.c",
679 "musl/src/env/setenv.c",
680 "musl/src/exit/assert.c",
681 "musl/src/exit/quick_exit.c",
682 "musl/src/fenv/fegetexceptflag.c",
683 "musl/src/fenv/feholdexcept.c",
684 "musl/src/fenv/fenv.c",
685 "musl/src/fenv/fesetexceptflag.c",
686 "musl/src/fenv/fesetround.c",
687 "musl/src/fenv/feupdateenv.c",
688 "musl/src/legacy/getpagesize.c",
689 "musl/src/locale/c_locale.c",
690 "musl/src/locale/duplocale.c",
691 "musl/src/locale/freelocale.c",
692 "musl/src/locale/iconv.c",
693 "musl/src/locale/iconv_close.c",
694 "musl/src/locale/langinfo.c",
695 "musl/src/locale/__lctrans.c",
696 "musl/src/locale/localeconv.c",
697 "musl/src/locale/__mo_lookup.c",
698 "musl/src/locale/pleval.c",
699 "musl/src/locale/setlocale.c",
700 "musl/src/locale/strcoll.c",
701 "musl/src/locale/strfmon.c",
702 "musl/src/locale/strtod_l.c",
703 "musl/src/locale/strxfrm.c",
704 "musl/src/locale/wcscoll.c",
705 "musl/src/locale/wcsxfrm.c",
706 "musl/src/math/acos.c",
707 "musl/src/math/acosf.c",
708 "musl/src/math/acosh.c",
709 "musl/src/math/acoshf.c",
710 "musl/src/math/acoshl.c",
711 "musl/src/math/acosl.c",
712 "musl/src/math/asin.c",
713 "musl/src/math/asinf.c",
714 "musl/src/math/asinh.c",
715 "musl/src/math/asinhf.c",
716 "musl/src/math/asinhl.c",
717 "musl/src/math/asinl.c",
718 "musl/src/math/atan2.c",
719 "musl/src/math/atan2f.c",
720 "musl/src/math/atan2l.c",
721 "musl/src/math/atan.c",
722 "musl/src/math/atanf.c",
723 "musl/src/math/atanh.c",
724 "musl/src/math/atanhf.c",
725 "musl/src/math/atanhl.c",
726 "musl/src/math/atanl.c",
727 "musl/src/math/cbrt.c",
728 "musl/src/math/cbrtf.c",
729 "musl/src/math/cbrtl.c",
730 "musl/src/math/copysignl.c",
731 "musl/src/math/__cos.c",
732 "musl/src/math/__cosdf.c",
733 "musl/src/math/coshl.c",
734 "musl/src/math/__cosl.c",
735 "musl/src/math/cosl.c",
736 "musl/src/math/erf.c",
737 "musl/src/math/erff.c",
738 "musl/src/math/erfl.c",
739 "musl/src/math/exp10.c",
740 "musl/src/math/exp10f.c",
741 "musl/src/math/exp10l.c",
742 "musl/src/math/exp2.c",
743 "musl/src/math/exp2f.c",
744 "musl/src/math/exp2f_data.c",
745 "musl/src/math/exp2l.c",
746 "musl/src/math/exp.c",
747 "musl/src/math/exp_data.c",
748 "musl/src/math/expf.c",
749 "musl/src/math/expl.c",
750 "musl/src/math/expm1.c",
751 "musl/src/math/expm1f.c",
752 "musl/src/math/expm1l.c",
753 "musl/src/math/fdim.c",
754 "musl/src/math/fdimf.c",
755 "musl/src/math/fdiml.c",
756 "musl/src/math/finite.c",
757 "musl/src/math/finitef.c",
758 "musl/src/math/fma.c",
759 "musl/src/math/fmaf.c",
760 "musl/src/math/fmaxl.c",
761 "musl/src/math/fminl.c",
762 "musl/src/math/fmod.c",
763 "musl/src/math/fmodf.c",
764 "musl/src/math/fmodl.c",
765 "musl/src/math/frexp.c",
766 "musl/src/math/frexpf.c",
767 "musl/src/math/frexpl.c",
768 "musl/src/math/hypot.c",
769 "musl/src/math/hypotf.c",
770 "musl/src/math/hypotl.c",
771 "musl/src/math/ilogb.c",
772 "musl/src/math/ilogbf.c",
773 "musl/src/math/ilogbl.c",
774 "musl/src/math/__invtrigl.c",
775 "musl/src/math/j0.c",
776 "musl/src/math/j0f.c",
777 "musl/src/math/j1.c",
778 "musl/src/math/j1f.c",
779 "musl/src/math/jn.c",
780 "musl/src/math/jnf.c",
781 "musl/src/math/ldexp.c",
782 "musl/src/math/ldexpf.c",
783 "musl/src/math/ldexpl.c",
784 "musl/src/math/lgamma.c",
785 "musl/src/math/lgammaf.c",
786 "musl/src/math/lgammaf_r.c",
787 "musl/src/math/lgammal.c",
788 "musl/src/math/lgamma_r.c",
789 "musl/src/math/llrint.c",
790 "musl/src/math/llrintf.c",
791 "musl/src/math/llrintl.c",
792 "musl/src/math/llround.c",
793 "musl/src/math/llroundf.c",
794 "musl/src/math/llroundl.c",
795 "musl/src/math/log10.c",
796 "musl/src/math/log10f.c",
797 "musl/src/math/log10l.c",
798 "musl/src/math/log1p.c",
799 "musl/src/math/log1pf.c",
800 "musl/src/math/log1pl.c",
801 "musl/src/math/log2.c",
802 "musl/src/math/log2_data.c",
803 "musl/src/math/log2f.c",
804 "musl/src/math/log2f_data.c",
805 "musl/src/math/log2l.c",
806 "musl/src/math/logb.c",
807 "musl/src/math/logbf.c",
808 "musl/src/math/logbl.c",
809 "musl/src/math/log.c",
810 "musl/src/math/log_data.c",
811 "musl/src/math/logf.c",
812 "musl/src/math/logf_data.c",
813 "musl/src/math/logl.c",
814 "musl/src/math/lrint.c",
815 "musl/src/math/lrintf.c",
816 "musl/src/math/lrintl.c",
817 "musl/src/math/lround.c",
818 "musl/src/math/lroundf.c",
819 "musl/src/math/lroundl.c",
820 "musl/src/math/__math_divzero.c",
821 "musl/src/math/__math_divzerof.c",
822 "musl/src/math/__math_invalid.c",
823 "musl/src/math/__math_invalidf.c",
824 "musl/src/math/__math_invalidl.c",
825 "musl/src/math/__math_oflow.c",
826 "musl/src/math/__math_oflowf.c",
827 "musl/src/math/__math_uflow.c",
828 "musl/src/math/__math_uflowf.c",
829 "musl/src/math/__math_xflow.c",
830 "musl/src/math/__math_xflowf.c",
831 "musl/src/math/modf.c",
832 "musl/src/math/modff.c",
833 "musl/src/math/modfl.c",
834 "musl/src/math/nan.c",
835 "musl/src/math/nanf.c",
836 "musl/src/math/nanl.c",
837 "musl/src/math/nearbyintl.c",
838 "musl/src/math/nextafter.c",
839 "musl/src/math/nextafterf.c",
840 "musl/src/math/nextafterl.c",
841 "musl/src/math/nexttoward.c",
842 "musl/src/math/nexttowardf.c",
843 "musl/src/math/nexttowardl.c",
844 "musl/src/math/__polevll.c",
845 "musl/src/math/pow.c",
846 "musl/src/math/pow_data.c",
847 "musl/src/math/powf.c",
848 "musl/src/math/powf_data.c",
849 "musl/src/math/remainder.c",
850 "musl/src/math/remainderf.c",
851 "musl/src/math/remainderl.c",
852 "musl/src/math/__rem_pio2_large.c",
853 "musl/src/math/remquo.c",
854 "musl/src/math/remquof.c",
855 "musl/src/math/remquol.c",
856 "musl/src/math/rintl.c",
857 "musl/src/math/round.c",
858 "musl/src/math/roundf.c",
859 "musl/src/math/roundl.c",
860 "musl/src/math/scalb.c",
861 "musl/src/math/scalbf.c",
862 "musl/src/math/scalbln.c",
863 "musl/src/math/scalblnf.c",
864 "musl/src/math/scalblnl.c",
865 "musl/src/math/scalbn.c",
866 "musl/src/math/scalbnf.c",
867 "musl/src/math/scalbnl.c",
868 "musl/src/math/signgam.c",
869 "musl/src/math/significand.c",
870 "musl/src/math/significandf.c",
871 "musl/src/math/__sin.c",
872 "musl/src/math/sincosl.c",
873 "musl/src/math/__sindf.c",
874 "musl/src/math/sinhl.c",
875 "musl/src/math/__sinl.c",
876 "musl/src/math/sinl.c",
877 "musl/src/math/sqrt_data.c",
878 "musl/src/math/sqrtl.c",
879 "musl/src/math/__tan.c",
880 "musl/src/math/__tandf.c",
881 "musl/src/math/tanh.c",
882 "musl/src/math/tanhf.c",
883 "musl/src/math/tanhl.c",
884 "musl/src/math/__tanl.c",
885 "musl/src/math/tanl.c",
886 "musl/src/math/tgamma.c",
887 "musl/src/math/tgammaf.c",
888 "musl/src/math/tgammal.c",
889 "musl/src/misc/a64l.c",
890 "musl/src/misc/basename.c",
891 "musl/src/misc/dirname.c",
892 "musl/src/misc/ffs.c",
893 "musl/src/misc/ffsl.c",
894 "musl/src/misc/ffsll.c",
895 "musl/src/misc/getdomainname.c",
896 "musl/src/misc/gethostid.c",
897 "musl/src/misc/getopt.c",
898 "musl/src/misc/getopt_long.c",
899 "musl/src/misc/getsubopt.c",
900 "musl/src/misc/realpath.c",
901 "musl/src/multibyte/btowc.c",
902 "musl/src/multibyte/c16rtomb.c",
903 "musl/src/multibyte/c32rtomb.c",
904 "musl/src/multibyte/internal.c",
905 "musl/src/multibyte/mblen.c",
906 "musl/src/multibyte/mbrlen.c",
907 "musl/src/multibyte/mbrtoc16.c",
908 "musl/src/multibyte/mbrtoc32.c",
909 "musl/src/multibyte/mbrtowc.c",
910 "musl/src/multibyte/mbsinit.c",
911 "musl/src/multibyte/mbsnrtowcs.c",
912 "musl/src/multibyte/mbsrtowcs.c",
913 "musl/src/multibyte/mbstowcs.c",
914 "musl/src/multibyte/mbtowc.c",
915 "musl/src/multibyte/wcrtomb.c",
916 "musl/src/multibyte/wcsnrtombs.c",
917 "musl/src/multibyte/wcsrtombs.c",
918 "musl/src/multibyte/wcstombs.c",
919 "musl/src/multibyte/wctob.c",
920 "musl/src/multibyte/wctomb.c",
921 "musl/src/network/htonl.c",
922 "musl/src/network/htons.c",
923 "musl/src/network/in6addr_any.c",
924 "musl/src/network/in6addr_loopback.c",
925 "musl/src/network/inet_aton.c",
926 "musl/src/network/inet_ntop.c",
927 "musl/src/network/inet_pton.c",
928 "musl/src/network/ntohl.c",
929 "musl/src/network/ntohs.c",
930 "musl/src/prng/drand48.c",
931 "musl/src/prng/lcong48.c",
932 "musl/src/prng/lrand48.c",
933 "musl/src/prng/mrand48.c",
934 "musl/src/prng/__rand48_step.c",
935 "musl/src/prng/rand.c",
936 "musl/src/prng/rand_r.c",
937 "musl/src/prng/__seed48.c",
938 "musl/src/prng/seed48.c",
939 "musl/src/prng/srand48.c",
940 "musl/src/regex/fnmatch.c",
941 "musl/src/regex/regerror.c",
942 "musl/src/search/hsearch.c",
943 "musl/src/search/insque.c",
944 "musl/src/search/lsearch.c",
945 "musl/src/search/tdelete.c",
946 "musl/src/search/tdestroy.c",
947 "musl/src/search/tfind.c",
948 "musl/src/search/tsearch.c",
949 "musl/src/search/twalk.c",
950 "musl/src/stdio/asprintf.c",
951 "musl/src/stdio/clearerr.c",
952 "musl/src/stdio/dprintf.c",
953 "musl/src/stdio/ext2.c",
954 "musl/src/stdio/ext.c",
955 "musl/src/stdio/fclose.c",
956 "musl/src/stdio/__fclose_ca.c",
957 "musl/src/stdio/feof.c",
958 "musl/src/stdio/ferror.c",
959 "musl/src/stdio/fflush.c",
960 "musl/src/stdio/fgetln.c",
961 "musl/src/stdio/fgets.c",
962 "musl/src/stdio/fgetwc.c",
963 "musl/src/stdio/fgetws.c",
964 "musl/src/stdio/fileno.c",
965 "musl/src/stdio/__fmodeflags.c",
966 "musl/src/stdio/fopencookie.c",
967 "musl/src/stdio/fprintf.c",
968 "musl/src/stdio/fputs.c",
969 "musl/src/stdio/fputwc.c",
970 "musl/src/stdio/fputws.c",
971 "musl/src/stdio/fread.c",
972 "musl/src/stdio/fscanf.c",
973 "musl/src/stdio/fwide.c",
974 "musl/src/stdio/fwprintf.c",
975 "musl/src/stdio/fwrite.c",
976 "musl/src/stdio/fwscanf.c",
977 "musl/src/stdio/getchar_unlocked.c",
978 "musl/src/stdio/getc_unlocked.c",
979 "musl/src/stdio/getdelim.c",
980 "musl/src/stdio/getline.c",
981 "musl/src/stdio/getw.c",
982 "musl/src/stdio/getwc.c",
983 "musl/src/stdio/getwchar.c",
984 "musl/src/stdio/ofl_add.c",
985 "musl/src/stdio/__overflow.c",
986 "musl/src/stdio/perror.c",
987 "musl/src/stdio/putchar_unlocked.c",
988 "musl/src/stdio/putc_unlocked.c",
989 "musl/src/stdio/puts.c",
990 "musl/src/stdio/putw.c",
991 "musl/src/stdio/putwc.c",
992 "musl/src/stdio/putwchar.c",
993 "musl/src/stdio/rewind.c",
994 "musl/src/stdio/scanf.c",
995 "musl/src/stdio/setbuf.c",
996 "musl/src/stdio/setbuffer.c",
997 "musl/src/stdio/setlinebuf.c",
998 "musl/src/stdio/setvbuf.c",
999 "musl/src/stdio/snprintf.c",
1000 "musl/src/stdio/sprintf.c",
1001 "musl/src/stdio/sscanf.c",
1002 "musl/src/stdio/__stdio_exit.c",
1003 "musl/src/stdio/swprintf.c",
1004 "musl/src/stdio/swscanf.c",
1005 "musl/src/stdio/__toread.c",
1006 "musl/src/stdio/__towrite.c",
1007 "musl/src/stdio/__uflow.c",
1008 "musl/src/stdio/ungetc.c",
1009 "musl/src/stdio/ungetwc.c",
1010 "musl/src/stdio/vasprintf.c",
1011 "musl/src/stdio/vfwscanf.c",
1012 "musl/src/stdio/vprintf.c",
1013 "musl/src/stdio/vscanf.c",
1014 "musl/src/stdio/vsprintf.c",
1015 "musl/src/stdio/vwprintf.c",
1016 "musl/src/stdio/vwscanf.c",
1017 "musl/src/stdio/wprintf.c",
1018 "musl/src/stdio/wscanf.c",
1019 "musl/src/stdlib/atof.c",
1020 "musl/src/stdlib/atoi.c",
1021 "musl/src/stdlib/atol.c",
1022 "musl/src/stdlib/atoll.c",
1023 "musl/src/stdlib/bsearch.c",
1024 "musl/src/stdlib/div.c",
1025 "musl/src/stdlib/ecvt.c",
1026 "musl/src/stdlib/fcvt.c",
1027 "musl/src/stdlib/gcvt.c",
1028 "musl/src/stdlib/imaxdiv.c",
1029 "musl/src/stdlib/ldiv.c",
1030 "musl/src/stdlib/lldiv.c",
1031 "musl/src/stdlib/qsort.c",
1032 "musl/src/stdlib/qsort_nr.c",
1033 "musl/src/stdlib/strtol.c",
1034 "musl/src/string/bcmp.c",
1035 "musl/src/string/bcopy.c",
1036 "musl/src/string/explicit_bzero.c",
1037 "musl/src/string/index.c",
1038 "musl/src/string/memccpy.c",
1039 "musl/src/string/memmem.c",
1040 "musl/src/string/mempcpy.c",
1041 "musl/src/string/rindex.c",
1042 "musl/src/string/stpcpy.c",
1043 "musl/src/string/stpncpy.c",
1044 "musl/src/string/strcasestr.c",
1045 "musl/src/string/strcat.c",
1046 "musl/src/string/strchr.c",
1047 "musl/src/string/strcpy.c",
1048 "musl/src/string/strcspn.c",
1049 "musl/src/string/strdup.c",
1050 "musl/src/string/strerror_r.c",
1051 "musl/src/string/strlcat.c",
1052 "musl/src/string/strlcpy.c",
1053 "musl/src/string/strncat.c",
1054 "musl/src/string/strncpy.c",
1055 "musl/src/string/strndup.c",
1056 "musl/src/string/strnlen.c",
1057 "musl/src/string/strpbrk.c",
1058 "musl/src/string/strrchr.c",
1059 "musl/src/string/strsep.c",
1060 "musl/src/string/strspn.c",
1061 "musl/src/string/strstr.c",
1062 "musl/src/string/strtok.c",
1063 "musl/src/string/strtok_r.c",
1064 "musl/src/string/strverscmp.c",
1065 "musl/src/string/swab.c",
1066 "musl/src/string/wcpcpy.c",
1067 "musl/src/string/wcpncpy.c",
1068 "musl/src/string/wcscasecmp.c",
1069 "musl/src/string/wcscasecmp_l.c",
1070 "musl/src/string/wcscat.c",
1071 "musl/src/string/wcschr.c",
1072 "musl/src/string/wcscmp.c",
1073 "musl/src/string/wcscpy.c",
1074 "musl/src/string/wcscspn.c",
1075 "musl/src/string/wcsdup.c",
1076 "musl/src/string/wcslen.c",
1077 "musl/src/string/wcsncasecmp.c",
1078 "musl/src/string/wcsncasecmp_l.c",
1079 "musl/src/string/wcsncat.c",
1080 "musl/src/string/wcsncmp.c",
1081 "musl/src/string/wcsncpy.c",
1082 "musl/src/string/wcsnlen.c",
1083 "musl/src/string/wcspbrk.c",
1084 "musl/src/string/wcsrchr.c",
1085 "musl/src/string/wcsspn.c",
1086 "musl/src/string/wcsstr.c",
1087 "musl/src/string/wcstok.c",
1088 "musl/src/string/wcswcs.c",
1089 "musl/src/string/wmemchr.c",
1090 "musl/src/string/wmemcmp.c",
1091 "musl/src/string/wmemcpy.c",
1092 "musl/src/string/wmemmove.c",
1093 "musl/src/string/wmemset.c",
1094 "musl/src/thread/default_attr.c",
1095 "musl/src/thread/pthread_attr_destroy.c",
1096 "musl/src/thread/pthread_attr_init.c",
1097 "musl/src/thread/pthread_attr_setdetachstate.c",
1098 "musl/src/thread/pthread_attr_setstack.c",
1099 "musl/src/thread/pthread_attr_setstacksize.c",
1100 "musl/src/thread/pthread_barrierattr_destroy.c",
1101 "musl/src/thread/pthread_barrierattr_init.c",
1102 "musl/src/thread/pthread_barrierattr_setpshared.c",
1103 "musl/src/thread/pthread_cleanup_push.c",
1104 "musl/src/thread/pthread_condattr_destroy.c",
1105 "musl/src/thread/pthread_condattr_init.c",
1106 "musl/src/thread/pthread_condattr_setpshared.c",
1107 "musl/src/thread/pthread_equal.c",
1108 "musl/src/thread/pthread_getspecific.c",
1109 "musl/src/thread/pthread_mutexattr_destroy.c",
1110 "musl/src/thread/pthread_mutexattr_init.c",
1111 "musl/src/thread/pthread_mutexattr_setpshared.c",
1112 "musl/src/thread/pthread_mutexattr_settype.c",
1113 "musl/src/thread/pthread_mutex_init.c",
1114 "musl/src/thread/pthread_rwlockattr_destroy.c",
1115 "musl/src/thread/pthread_rwlockattr_init.c",
1116 "musl/src/thread/pthread_rwlockattr_setpshared.c",
1117 "musl/src/thread/pthread_rwlock_destroy.c",
1118 "musl/src/thread/pthread_rwlock_init.c",
1119 "musl/src/thread/pthread_setcancelstate.c",
1120 "musl/src/thread/pthread_setcanceltype.c",
1121 "musl/src/thread/pthread_setspecific.c",
1122 "musl/src/thread/pthread_spin_destroy.c",
1123 "musl/src/thread/pthread_spin_init.c",
1124 "musl/src/thread/pthread_testcancel.c",
1125 "musl/src/thread/thrd_sleep.c",
1126 "musl/src/time/asctime.c",
1127 "musl/src/time/asctime_r.c",
1128 "musl/src/time/ctime.c",
1129 "musl/src/time/ctime_r.c",
1130 "musl/src/time/difftime.c",
1131 "musl/src/time/ftime.c",
1132 "musl/src/time/__month_to_secs.c",
1133 "musl/src/time/strptime.c",
1134 "musl/src/time/timespec_get.c",
1135 "musl/src/time/__year_to_secs.c",
1136 "musl/src/unistd/posix_close.c",
1137
1138 "wasi/libc-top-half/musl/src/conf/fpathconf.c",
1139 "wasi/libc-top-half/musl/src/conf/sysconf.c",
1140 "wasi/libc-top-half/musl/src/dirent/alphasort.c",
1141 "wasi/libc-top-half/musl/src/dirent/versionsort.c",
1142 "wasi/libc-top-half/musl/src/env/clearenv.c",
1143 "wasi/libc-top-half/musl/src/env/getenv.c",
1144 "wasi/libc-top-half/musl/src/env/putenv.c",
1145 "wasi/libc-top-half/musl/src/env/__stack_chk_fail.c",
1146 "wasi/libc-top-half/musl/src/env/unsetenv.c",
1147 "wasi/libc-top-half/musl/src/errno/strerror.c",
1148 "wasi/libc-top-half/musl/src/exit/atexit.c",
1149 "wasi/libc-top-half/musl/src/exit/at_quick_exit.c",
1150 "wasi/libc-top-half/musl/src/exit/exit.c",
1151 "wasi/libc-top-half/musl/src/fcntl/creat.c",
1152 "wasi/libc-top-half/musl/src/internal/defsysinfo.c",
1153 "wasi/libc-top-half/musl/src/internal/floatscan.c",
1154 "wasi/libc-top-half/musl/src/internal/intscan.c",
1155 "wasi/libc-top-half/musl/src/internal/libc.c",
1156 "wasi/libc-top-half/musl/src/internal/shgetc.c",
1157 "wasi/libc-top-half/musl/src/locale/catclose.c",
1158 "wasi/libc-top-half/musl/src/locale/catgets.c",
1159 "wasi/libc-top-half/musl/src/locale/catopen.c",
1160 "wasi/libc-top-half/musl/src/locale/locale_map.c",
1161 "wasi/libc-top-half/musl/src/locale/newlocale.c",
1162 "wasi/libc-top-half/musl/src/locale/uselocale.c",
1163 "wasi/libc-top-half/musl/src/math/cosh.c",
1164 "wasi/libc-top-half/musl/src/math/coshf.c",
1165 "wasi/libc-top-half/musl/src/math/__expo2.c",
1166 "wasi/libc-top-half/musl/src/math/__expo2f.c",
1167 "wasi/libc-top-half/musl/src/math/fmal.c",
1168 "wasi/libc-top-half/musl/src/math/powl.c",
1169 "wasi/libc-top-half/musl/src/math/__rem_pio2.c",
1170 "wasi/libc-top-half/musl/src/math/__rem_pio2f.c",
1171 "wasi/libc-top-half/musl/src/math/__rem_pio2l.c",
1172 "wasi/libc-top-half/musl/src/math/sinh.c",
1173 "wasi/libc-top-half/musl/src/math/sinhf.c",
1174 "wasi/libc-top-half/musl/src/misc/fmtmsg.c",
1175 "wasi/libc-top-half/musl/src/misc/nftw.c",
1176 "wasi/libc-top-half/musl/src/misc/uname.c",
1177 "wasi/libc-top-half/musl/src/prng/random.c",
1178 "wasi/libc-top-half/musl/src/regex/glob.c",
1179 "wasi/libc-top-half/musl/src/regex/regcomp.c",
1180 "wasi/libc-top-half/musl/src/regex/regexec.c",
1181 "wasi/libc-top-half/musl/src/regex/tre-mem.c",
1182 "wasi/libc-top-half/musl/src/stat/futimesat.c",
1183 "wasi/libc-top-half/musl/src/stdio/__fdopen.c",
1184 "wasi/libc-top-half/musl/src/stdio/fgetc.c",
1185 "wasi/libc-top-half/musl/src/stdio/fgetpos.c",
1186 "wasi/libc-top-half/musl/src/stdio/fmemopen.c",
1187 "wasi/libc-top-half/musl/src/stdio/fopen.c",
1188 "wasi/libc-top-half/musl/src/stdio/__fopen_rb_ca.c",
1189 "wasi/libc-top-half/musl/src/stdio/fputc.c",
1190 "wasi/libc-top-half/musl/src/stdio/freopen.c",
1191 "wasi/libc-top-half/musl/src/stdio/fseek.c",
1192 "wasi/libc-top-half/musl/src/stdio/fsetpos.c",
1193 "wasi/libc-top-half/musl/src/stdio/ftell.c",
1194 "wasi/libc-top-half/musl/src/stdio/getc.c",
1195 "wasi/libc-top-half/musl/src/stdio/getchar.c",
1196 "wasi/libc-top-half/musl/src/stdio/ofl.c",
1197 "wasi/libc-top-half/musl/src/stdio/open_memstream.c",
1198 "wasi/libc-top-half/musl/src/stdio/open_wmemstream.c",
1199 "wasi/libc-top-half/musl/src/stdio/printf.c",
1200 "wasi/libc-top-half/musl/src/stdio/putc.c",
1201 "wasi/libc-top-half/musl/src/stdio/putchar.c",
1202 "wasi/libc-top-half/musl/src/stdio/stderr.c",
1203 "wasi/libc-top-half/musl/src/stdio/stdin.c",
1204 "wasi/libc-top-half/musl/src/stdio/__stdio_close.c",
1205 "wasi/libc-top-half/musl/src/stdio/__stdio_read.c",
1206 "wasi/libc-top-half/musl/src/stdio/__stdio_seek.c",
1207 "wasi/libc-top-half/musl/src/stdio/__stdio_write.c",
1208 "wasi/libc-top-half/musl/src/stdio/stdout.c",
1209 "wasi/libc-top-half/musl/src/stdio/__stdout_write.c",
1210 "wasi/libc-top-half/musl/src/stdio/vdprintf.c",
1211 "wasi/libc-top-half/musl/src/stdio/vfprintf.c",
1212 "wasi/libc-top-half/musl/src/stdio/vfscanf.c",
1213 "wasi/libc-top-half/musl/src/stdio/vfwprintf.c",
1214 "wasi/libc-top-half/musl/src/stdio/vsnprintf.c",
1215 "wasi/libc-top-half/musl/src/stdio/vsscanf.c",
1216 "wasi/libc-top-half/musl/src/stdio/vswprintf.c",
1217 "wasi/libc-top-half/musl/src/stdio/vswscanf.c",
1218 "wasi/libc-top-half/musl/src/stdlib/strtod.c",
1219 "wasi/libc-top-half/musl/src/stdlib/wcstod.c",
1220 "wasi/libc-top-half/musl/src/stdlib/wcstol.c",
1221 "wasi/libc-top-half/musl/src/string/memchr.c",
1222 "wasi/libc-top-half/musl/src/string/memrchr.c",
1223 "wasi/libc-top-half/musl/src/string/strchrnul.c",
1224 "wasi/libc-top-half/musl/src/thread/pthread_attr_get.c",
1225 "wasi/libc-top-half/musl/src/thread/pthread_attr_setguardsize.c",
1226 "wasi/libc-top-half/musl/src/thread/pthread_attr_setschedparam.c",
1227 "wasi/libc-top-half/musl/src/thread/pthread_cancel.c",
1228 "wasi/libc-top-half/musl/src/thread/pthread_condattr_setclock.c",
1229 "wasi/libc-top-half/musl/src/thread/pthread_key_create.c",
1230 "wasi/libc-top-half/musl/src/thread/pthread_mutexattr_setprotocol.c",
1231 "wasi/libc-top-half/musl/src/thread/pthread_mutexattr_setrobust.c",
1232 "wasi/libc-top-half/musl/src/thread/pthread_mutex_destroy.c",
1233 "wasi/libc-top-half/musl/src/thread/pthread_self.c",
1234 "wasi/libc-top-half/musl/src/time/getdate.c",
1235 "wasi/libc-top-half/musl/src/time/gmtime.c",
1236 "wasi/libc-top-half/musl/src/time/gmtime_r.c",
1237 "wasi/libc-top-half/musl/src/time/localtime.c",
1238 "wasi/libc-top-half/musl/src/time/localtime_r.c",
1239 "wasi/libc-top-half/musl/src/time/mktime.c",
1240 "wasi/libc-top-half/musl/src/time/__secs_to_tm.c",
1241 "wasi/libc-top-half/musl/src/time/strftime.c",
1242 "wasi/libc-top-half/musl/src/time/timegm.c",
1243 "wasi/libc-top-half/musl/src/time/__tm_to_secs.c",
1244 "wasi/libc-top-half/musl/src/time/__tz.c",
1245 "wasi/libc-top-half/musl/src/time/wcsftime.c",
1246
1247 "wasi/libc-top-half/sources/arc4random.c",
1248
1249 "wasi/thread-stub/pthread_barrier_destroy.c",
1250 "wasi/thread-stub/pthread_barrier_init.c",
1251 "wasi/thread-stub/pthread_barrier_wait.c",
1252 "wasi/thread-stub/pthread_cond_broadcast.c",
1253 "wasi/thread-stub/pthread_cond_destroy.c",
1254 "wasi/thread-stub/pthread_cond_init.c",
1255 "wasi/thread-stub/pthread_cond_signal.c",
1256 "wasi/thread-stub/pthread_cond_timedwait.c",
1257 "wasi/thread-stub/pthread_cond_wait.c",
1258 "wasi/thread-stub/pthread_create.c",
1259 "wasi/thread-stub/pthread_detach.c",
1260 "wasi/thread-stub/pthread_getattr_np.c",
1261 "wasi/thread-stub/pthread_join.c",
1262 "wasi/thread-stub/pthread_mutex_consistent.c",
1263 "wasi/thread-stub/pthread_mutex_getprioceiling.c",
1264 "wasi/thread-stub/pthread_mutex_lock.c",
1265 "wasi/thread-stub/pthread_mutex_timedlock.c",
1266 "wasi/thread-stub/pthread_mutex_trylock.c",
1267 "wasi/thread-stub/pthread_mutex_unlock.c",
1268 "wasi/thread-stub/pthread_once.c",
1269 "wasi/thread-stub/pthread_rwlock_rdlock.c",
1270 "wasi/thread-stub/pthread_rwlock_timedrdlock.c",
1271 "wasi/thread-stub/pthread_rwlock_timedwrlock.c",
1272 "wasi/thread-stub/pthread_rwlock_tryrdlock.c",
1273 "wasi/thread-stub/pthread_rwlock_trywrlock.c",
1274 "wasi/thread-stub/pthread_rwlock_unlock.c",
1275 "wasi/thread-stub/pthread_rwlock_wrlock.c",
1276 "wasi/thread-stub/pthread_spin_lock.c",
1277 "wasi/thread-stub/pthread_spin_trylock.c",
1278 "wasi/thread-stub/pthread_spin_unlock.c",
1279};
1280
1281const crt1_command_src_file = "wasi/libc-bottom-half/crt/crt1-command.c";
1282const crt1_reactor_src_file = "wasi/libc-bottom-half/crt/crt1-reactor.c";
1283
1284const fts_src_files = &[_][]const u8{
1285 "wasi/fts/musl-fts/fts.c",
1286};
1287
1288const setjmp_src_files = &[_][]const u8{
1289 "wasi/libc-top-half/musl/src/setjmp/wasm32/rt.c",
1290};
1291
1292const emulated_dl_src_files = &[_][]const u8{
1293 "wasi/libc-top-half/musl/src/misc/dl.c",
1294};
1295
1296const emulated_process_clocks_src_files = &[_][]const u8{
1297 "wasi/libc-bottom-half/clocks/clock.c",
1298 "wasi/libc-bottom-half/clocks/getrusage.c",
1299 "wasi/libc-bottom-half/clocks/times.c",
1300};
1301
1302const emulated_getpid_src_files = &[_][]const u8{
1303 "wasi/libc-bottom-half/getpid/getpid.c",
1304};
1305
1306const emulated_mman_src_files = &[_][]const u8{
1307 "wasi/libc-bottom-half/mman/mman.c",
1308};
1309
1310const emulated_signal_bottom_half_src_files = &[_][]const u8{
1311 "wasi/libc-bottom-half/signal/signal.c",
1312};
1313
1314const emulated_signal_top_half_src_files = &[_][]const u8{
1315 "musl/src/signal/psignal.c",
1316 "musl/src/string/strsignal.c",
1317};