diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-08-01 21:09:12 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-08-03 09:52:14 -0700 |
| commit | 9e50f960875601dbaaf7245cedb7d9e429678aeb (patch) | |
| tree | 7c0327ad202c92969a2549560048e8c3d22a0e2d /src | |
| parent | 2725c20a723f7c2eca455a081a4d499723a21ac4 (diff) | |
| download | zig-9e50f960875601dbaaf7245cedb7d9e429678aeb.tar.gz zig-9e50f960875601dbaaf7245cedb7d9e429678aeb.zip | |
MachO: put system_libs into libs not positionals
Putting them in both causes collisions because the same lib ends up
being linked in twice.
Putting them in positionals instead of libs makes their properties about
needed and weak being ignored.
Diffstat (limited to 'src')
| -rw-r--r-- | src/link/MachO/zld.zig | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/link/MachO/zld.zig b/src/link/MachO/zld.zig index c2a814b319..40cf9b217a 100644 --- a/src/link/MachO/zld.zig +++ b/src/link/MachO/zld.zig @@ -3549,17 +3549,12 @@ pub fn linkWithZld(macho_file: *MachO, comp: *Compilation, prog_node: *std.Progr try positionals.append(comp.libcxx_static_lib.?.full_object_path); } - { - // Add all system library paths to positionals. - const vals = options.system_libs.values(); - try positionals.ensureUnusedCapacity(vals.len); - for (vals) |info| positionals.appendAssumeCapacity(info.path); - } - var libs = std.StringArrayHashMap(link.SystemLib).init(arena); - for (options.system_libs.values()) |v| { - try libs.put(v.path, v); + { + const vals = options.system_libs.values(); + try libs.ensureUnusedCapacity(vals.len); + for (vals) |v| libs.putAssumeCapacity(v.path, v); } try MachO.resolveLibSystem(arena, comp, options.sysroot, target, options.lib_dirs, &libs); |
