| ... | @@ -716,6 +716,7 @@ fn resolveLib( | ... | @@ -716,6 +716,7 @@ fn resolveLib( |
| 716 | const ParseError = error{ | 716 | const ParseError = error{ |
| 717 | UnknownFileType, | 717 | UnknownFileType, |
| 718 | InvalidTarget, | 718 | InvalidTarget, |
| | 719 | InvalidTargetFatLibrary, |
| 719 | DylibAlreadyExists, | 720 | DylibAlreadyExists, |
| 720 | IncompatibleDylibVersion, | 721 | IncompatibleDylibVersion, |
| 721 | OutOfMemory, | 722 | OutOfMemory, |
| ... | @@ -856,7 +857,7 @@ pub fn parseFatLibrary( | ... | @@ -856,7 +857,7 @@ pub fn parseFatLibrary( |
| 856 | for (fat_archs) |arch| { | 857 | for (fat_archs) |arch| { |
| 857 | ctx.detected_targets.appendAssumeCapacity(try ctx.arena.dupe(u8, @tagName(arch.tag))); | 858 | ctx.detected_targets.appendAssumeCapacity(try ctx.arena.dupe(u8, @tagName(arch.tag))); |
| 858 | } | 859 | } |
| 859 | return error.InvalidTarget; | 860 | return error.InvalidTargetFatLibrary; |
| 860 | }; | 861 | }; |
| 861 | return offset; | 862 | return offset; |
| 862 | } | 863 | } |
| ... | @@ -4871,7 +4872,7 @@ pub fn handleAndReportParseError( | ... | @@ -4871,7 +4872,7 @@ pub fn handleAndReportParseError( |
| 4871 | switch (err) { | 4872 | switch (err) { |
| 4872 | error.DylibAlreadyExists => {}, | 4873 | error.DylibAlreadyExists => {}, |
| 4873 | error.UnknownFileType => try self.reportParseError(path, "unknown file type", .{}), | 4874 | error.UnknownFileType => try self.reportParseError(path, "unknown file type", .{}), |
| 4874 | error.InvalidTarget => { | 4875 | error.InvalidTarget, error.InvalidTargetFatLibrary => { |
| 4875 | var targets_string = std.ArrayList(u8).init(self.base.allocator); | 4876 | var targets_string = std.ArrayList(u8).init(self.base.allocator); |
| 4876 | defer targets_string.deinit(); | 4877 | defer targets_string.deinit(); |
| 4877 | try targets_string.writer().writeAll("("); | 4878 | try targets_string.writer().writeAll("("); |
| ... | @@ -4880,10 +4881,20 @@ pub fn handleAndReportParseError( | ... | @@ -4880,10 +4881,20 @@ pub fn handleAndReportParseError( |
| 4880 | } | 4881 | } |
| 4881 | try targets_string.resize(targets_string.items.len - 2); | 4882 | try targets_string.resize(targets_string.items.len - 2); |
| 4882 | try targets_string.writer().writeAll(")"); | 4883 | try targets_string.writer().writeAll(")"); |
| 4883 | try self.reportParseError(path, "invalid target: expected '{}', but found '{s}'", .{ | 4884 | |
| 4884 | Platform.fromTarget(self.base.options.target).fmtTarget(cpu_arch), | 4885 | switch (err) { |
| 4885 | targets_string.items, | 4886 | error.InvalidTarget => try self.reportParseError( |
| 4886 | }); | 4887 | path, |
| | 4888 | "invalid target: expected '{}', but found '{s}'", |
| | 4889 | .{ Platform.fromTarget(self.base.options.target).fmtTarget(cpu_arch), targets_string.items }, |
| | 4890 | ), |
| | 4891 | error.InvalidTargetFatLibrary => try self.reportParseError( |
| | 4892 | path, |
| | 4893 | "invalid architecture in univeral library: expected '{s}', but found '{s}'", |
| | 4894 | .{ @tagName(cpu_arch), targets_string.items }, |
| | 4895 | ), |
| | 4896 | else => unreachable, |
| | 4897 | } |
| 4887 | }, | 4898 | }, |
| 4888 | else => |e| try self.reportParseError(path, "{s}: parsing object failed", .{@errorName(e)}), | 4899 | else => |e| try self.reportParseError(path, "{s}: parsing object failed", .{@errorName(e)}), |
| 4889 | } | 4900 | } |