| ... | @@ -797,6 +797,14 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void { | ... | @@ -797,6 +797,14 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void { |
| 797 | try argv.appendSlice(&.{ "-e", entry_name }); | 797 | try argv.appendSlice(&.{ "-e", entry_name }); |
| 798 | } | 798 | } |
| 799 | | 799 | |
| | 800 | try argv.append("-o"); |
| | 801 | try argv.append(full_out_path); |
| | 802 | |
| | 803 | if (self.base.isDynLib() and self.base.allow_shlib_undefined) { |
| | 804 | try argv.append("-undefined"); |
| | 805 | try argv.append("dynamic_lookup"); |
| | 806 | } |
| | 807 | |
| 800 | for (comp.objects) |obj| { | 808 | for (comp.objects) |obj| { |
| 801 | // TODO: verify this | 809 | // TODO: verify this |
| 802 | if (obj.must_link) { | 810 | if (obj.must_link) { |
| ... | @@ -813,19 +821,11 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void { | ... | @@ -813,19 +821,11 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void { |
| 813 | try argv.append(p); | 821 | try argv.append(p); |
| 814 | } | 822 | } |
| 815 | | 823 | |
| 816 | if (comp.compiler_rt_lib) |lib| try argv.append(lib.full_object_path); | 824 | for (self.lib_dirs) |lib_dir| { |
| 817 | if (comp.compiler_rt_obj) |obj| try argv.append(obj.full_object_path); | 825 | const arg = try std.fmt.allocPrint(arena, "-L{s}", .{lib_dir}); |
| 818 | | 826 | try argv.append(arg); |
| 819 | if (comp.config.link_libcpp) { | | |
| 820 | try argv.append(comp.libcxxabi_static_lib.?.full_object_path); | | |
| 821 | try argv.append(comp.libcxx_static_lib.?.full_object_path); | | |
| 822 | } | 827 | } |
| 823 | | 828 | |
| 824 | try argv.append("-o"); | | |
| 825 | try argv.append(full_out_path); | | |
| 826 | | | |
| 827 | try argv.append("-lSystem"); | | |
| 828 | | | |
| 829 | for (comp.system_libs.keys()) |l_name| { | 829 | for (comp.system_libs.keys()) |l_name| { |
| 830 | const info = comp.system_libs.get(l_name).?; | 830 | const info = comp.system_libs.get(l_name).?; |
| 831 | const arg = if (info.needed) | 831 | const arg = if (info.needed) |
| ... | @@ -837,9 +837,9 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void { | ... | @@ -837,9 +837,9 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void { |
| 837 | try argv.append(arg); | 837 | try argv.append(arg); |
| 838 | } | 838 | } |
| 839 | | 839 | |
| 840 | for (self.lib_dirs) |lib_dir| { | 840 | for (self.framework_dirs) |f_dir| { |
| 841 | const arg = try std.fmt.allocPrint(arena, "-L{s}", .{lib_dir}); | 841 | try argv.append("-F"); |
| 842 | try argv.append(arg); | 842 | try argv.append(f_dir); |
| 843 | } | 843 | } |
| 844 | | 844 | |
| 845 | for (self.frameworks) |framework| { | 845 | for (self.frameworks) |framework| { |
| ... | @@ -853,15 +853,15 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void { | ... | @@ -853,15 +853,15 @@ fn dumpArgv(self: *MachO, comp: *Compilation) !void { |
| 853 | try argv.append(arg); | 853 | try argv.append(arg); |
| 854 | } | 854 | } |
| 855 | | 855 | |
| 856 | for (self.framework_dirs) |f_dir| { | 856 | if (comp.config.link_libcpp) { |
| 857 | try argv.append("-F"); | 857 | try argv.append(comp.libcxxabi_static_lib.?.full_object_path); |
| 858 | try argv.append(f_dir); | 858 | try argv.append(comp.libcxx_static_lib.?.full_object_path); |
| 859 | } | 859 | } |
| 860 | | 860 | |
| 861 | if (self.base.isDynLib() and self.base.allow_shlib_undefined) { | 861 | try argv.append("-lSystem"); |
| 862 | try argv.append("-undefined"); | 862 | |
| 863 | try argv.append("dynamic_lookup"); | 863 | if (comp.compiler_rt_lib) |lib| try argv.append(lib.full_object_path); |
| 864 | } | 864 | if (comp.compiler_rt_obj) |obj| try argv.append(obj.full_object_path); |
| 865 | } | 865 | } |
| 866 | | 866 | |
| 867 | Compilation.dump_argv(argv.items); | 867 | Compilation.dump_argv(argv.items); |