authorgravatar for michael.dusan@gmail.comMichael Dusan <michael.dusan@gmail.com> 2021-03-14 10:52:35-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-03-14 17:26:24-04:00
loga502c160cd51ce3de80b3be945245b7a91967a85
tree3da5d0105e43b3f92906ef02261afee449840c82
parent27d07c6c4de36af1186392d4bec321825403860e

macho: fix various linker flags

fix drivers: zig {cc,c++} - `-dynamiclib` is an alias to `-shared` - associate `-dynamiclib` with zig `.shared` semantics fix drivers: zig {cc,c++,build-lib,build-exe} - use `-dynamic` for {exe,dylib} - for dylib this fixes a regression - for exe this replaces incorrect use of `-static`

3 files changed, 13 insertions(+), 4 deletions(-)

src/clang_options_data.zig+8-1
......@@ -2426,7 +2426,14 @@ flagpd1("dwarf-ext-refs"),
24262426sepd1("dylib_file"),
24272427flagpd1("dylinker"),
24282428flagpd1("dynamic"),
2429flagpd1("dynamiclib"),
2429.{
2430 .name = "dynamiclib",
2431 .syntax = .flag,
2432 .zig_equivalent = .shared,
2433 .pd1 = true,
2434 .pd2 = false,
2435 .psl = false,
2436},
24302437flagpd1("emit-ast"),
24312438flagpd1("emit-codegen-only"),
24322439flagpd1("emit-header-module"),
src/link/MachO.zig+1-3
......@@ -644,9 +644,7 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void {
644644 try argv.append("defs");
645645 }
646646
647 if (is_dyn_lib) {
648 try argv.append("-static");
649 } else {
647 if (is_exe_or_dyn_lib) {
650648 try argv.append("-dynamic");
651649 }
652650
tools/update_clang_options.zig+4
......@@ -332,6 +332,10 @@ const known_options = [_]KnownOpt{
332332 .name = "s",
333333 .ident = "strip",
334334 },
335 .{
336 .name = "dynamiclib",
337 .ident = "shared",
338 },
335339};
336340
337341const blacklisted_options = [_][]const u8{};