authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-12-12 14:03:13+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-12-12 14:03:13+01:00
loga76910b691179390b122b9c42a5575c00d40583a
treec644b3255c21b351dad5cbad657a838762e3aa43
parentdbfcebf8d88b91c5a85366da09a4ce69c0bb5dc6
parent4ce62087502c2b1eca7d5721f3face5bc4fe538b

Merge branch 'motiejus-framework-not-found'


1 files changed, 9 insertions(+), 2 deletions(-)

src/link/MachO.zig+9-2
......@@ -572,6 +572,9 @@ pub fn flushModule(self: *MachO, comp: *Compilation) !void {
572572 try self.populateMissingMetadata();
573573 }
574574
575 var lib_not_found = false;
576 var framework_not_found = false;
577
575578 if (needs_full_relink) {
576579 for (self.objects.items) |*object| {
577580 object.free(self.base.allocator, self);
......@@ -688,7 +691,6 @@ pub fn flushModule(self: *MachO, comp: *Compilation) !void {
688691 }
689692
690693 var libs = std.ArrayList([]const u8).init(arena);
691 var lib_not_found = false;
692694 for (search_lib_names.items) |lib_name| {
693695 // Assume ld64 default: -search_paths_first
694696 // Look in each directory for a dylib (stub first), and then for archive
......@@ -752,7 +754,6 @@ pub fn flushModule(self: *MachO, comp: *Compilation) !void {
752754 }
753755 }
754756
755 var framework_not_found = false;
756757 for (self.base.options.frameworks) |framework| {
757758 for (&[_][]const u8{ ".tbd", ".dylib", "" }) |ext| {
758759 if (try resolveFramework(arena, framework_dirs.items, framework, ext)) |full_path| {
......@@ -928,6 +929,12 @@ pub fn flushModule(self: *MachO, comp: *Compilation) !void {
928929 if (self.unresolved.count() > 0) {
929930 return error.UndefinedSymbolReference;
930931 }
932 if (lib_not_found) {
933 return error.LibraryNotFound;
934 }
935 if (framework_not_found) {
936 return error.FrameworkNotFound;
937 }
931938
932939 try self.createTentativeDefAtoms();
933940 try self.parseObjectsIntoAtoms();