aboutsummaryrefslogtreecommitdiff
path: root/src/link
diff options
context:
space:
mode:
authorTom Read Cutting <readcuttingt@gmail.com>2023-02-12 10:48:39 +0000
committerJakub Konka <kubkon@jakubkonka.com>2023-02-14 12:05:30 +0100
commit47e14b7ffbe02c800ac4c2b4f181ab6c7f022988 (patch)
tree99692d15eacbc578ff18bfce5711c3a49ff7b2ea /src/link
parentd09e39aefd470ce80da0b0ada703a5c32290f4f1 (diff)
downloadzig-47e14b7ffbe02c800ac4c2b4f181ab6c7f022988.tar.gz
zig-47e14b7ffbe02c800ac4c2b4f181ab6c7f022988.zip
Zld: Report archive file with cpu arch mismatch
This is just a simple/hacky feature to report the source of a linking error. I found this helpful in fixing-up some of my libs when recently switching from an x86_64 to aarch64 device, so thought it might be useful to others a well before zld has a fully featured error reporting system.
Diffstat (limited to 'src/link')
-rw-r--r--src/link/MachO/zld.zig8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/link/MachO/zld.zig b/src/link/MachO/zld.zig
index 785fa71445..a94a0828fc 100644
--- a/src/link/MachO/zld.zig
+++ b/src/link/MachO/zld.zig
@@ -1065,7 +1065,13 @@ pub const Zld = struct {
assert(offsets.items.len > 0);
const object_id = @intCast(u16, self.objects.items.len);
- const object = try archive.parseObject(gpa, cpu_arch, offsets.items[0]);
+ const object = archive.parseObject(gpa, cpu_arch, offsets.items[0]) catch |e| switch (e) {
+ error.MismatchedCpuArchitecture => {
+ log.err("CPU architecture mismatch found in {s}", .{archive.name});
+ return e;
+ },
+ else => return e,
+ };
try self.objects.append(gpa, object);
try self.resolveSymbolsInObject(object_id, resolver);