diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2024-10-21 15:40:41 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2024-10-23 16:27:39 -0700 |
| commit | 5d75d8f6fc026948aa02309bd820fc15206288e0 (patch) | |
| tree | f51698731964244bdf5f88b61104b5eb949b41f1 /src/Compilation.zig | |
| parent | 2d8ea78249c85552225db8f50b45e2e71ba85a41 (diff) | |
| download | zig-5d75d8f6fc026948aa02309bd820fc15206288e0.tar.gz zig-5d75d8f6fc026948aa02309bd820fc15206288e0.zip | |
also find static libc files on the host
and don't look for glibc files on windows
Diffstat (limited to 'src/Compilation.zig')
| -rw-r--r-- | src/Compilation.zig | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig index a4d464068e..066dfc3220 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -1780,32 +1780,14 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil const paths = try lci.resolveCrtPaths(arena, basenames, target); const fields = @typeInfo(@TypeOf(paths)).@"struct".fields; - try comp.link_task_queue.shared.ensureUnusedCapacity(gpa, fields.len); + try comp.link_task_queue.shared.ensureUnusedCapacity(gpa, fields.len + 1); inline for (fields) |field| { if (@field(paths, field.name)) |path| { comp.link_task_queue.shared.appendAssumeCapacity(.{ .load_object = path }); } } - - const flags = target_util.libcFullLinkFlags(target); - try comp.link_task_queue.shared.ensureUnusedCapacity(gpa, flags.len); - for (flags) |flag| { - assert(mem.startsWith(u8, flag, "-l")); - const lib_name = flag["-l".len..]; - const suffix = switch (comp.config.link_mode) { - .static => target.staticLibSuffix(), - .dynamic => target.dynamicLibSuffix(), - }; - const sep = std.fs.path.sep_str; - const lib_path = try std.fmt.allocPrint(arena, "{s}" ++ sep ++ "lib{s}{s}", .{ - lci.crt_dir.?, lib_name, suffix, - }); - const resolved_path = Path.initCwd(lib_path); - comp.link_task_queue.shared.appendAssumeCapacity(switch (comp.config.link_mode) { - .static => .{ .load_archive = resolved_path }, - .dynamic => .{ .load_dso = resolved_path }, - }); - } + // Loads the libraries provided by `target_util.libcFullLinkFlags(target)`. + comp.link_task_queue.shared.appendAssumeCapacity(.load_host_libc); } else if (target.isMusl() and !target.isWasm()) { if (!std.zig.target.canBuildLibC(target)) return error.LibCUnavailable; |
