-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Closed
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behaviorlinkingos-macosmacOSmacOS
Milestone
Description
A user on IRC reported the following stack trace against zig 0.10.1:
thread 473118 panic: incorrect alignment
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO/Object.zig:114:72: 0x1030338ab in link.MachO.Object.parse (zig2)
@alignCast(@alignOf(macho.nlist_64), &self.contents[symtab.symoff]),
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO/Archive.zig:230:21: 0x1030485f7 in link.MachO.Archive.parseObject (zig2)
try object.parse(gpa, cpu_arch);
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO/zld.zig:1056:55: 0x102d4af7f in link.MachO.zld.Zld.resolveSymbolsInArchives (zig2)
const object = try archive.parseObject(gpa, cpu_arch, offsets.items[0]);
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO/zld.zig:4219:41: 0x102ad5443 in link.MachO.zld.linkWithZld (zig2)
try zld.resolveSymbolsInArchives(&resolver);
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO.zig:427:44: 0x10281667f in link.MachO.flush (zig2)
.one_shot => return zld.linkWithZld(self, comp, prog_node),
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link.zig:797:72: 0x10281345b in link.File.flush (zig2)
.macho => return @fieldParentPtr(MachO, "base", base).flush(comp, prog_node),
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/Compilation.zig:2516:24: 0x10278ca2f in Compilation.flush (zig2)
comp.bin_file.flush(comp, prog_node) catch |err| switch (err) {
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/Compilation.zig:2480:27: 0x10277fb67 in Compilation.update (zig2)
try comp.flush(main_progress_node);
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/main.zig:3361:20: 0x102701857 in main.updateModule (zig2)
try comp.update();
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/main.zig:3028:17: 0x10263e09f in main.buildOutputType (zig2)
updateModule(gpa, comp, hook) catch |err| switch (err) {
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/main.zig:230:31: 0x1025c6f6b in main.mainArgs (zig2)
return buildOutputType(gpa, arena, args, .{ .build = .Exe });
^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/stage1.zig:56:24: 0x1025c68a3 in main (zig2)
stage2.mainArgs(gpa, arena, args) catch unreachable;
^
I examined the corresponding master branch code, and it looks to me like the problem is still there:
Line 147 in 289e8fa
| @alignCast(@alignOf(macho.nlist_64), &self.contents[symtab.symoff]), |
Note that this field is marked align(1), so the alignment cast is completely unnecessary:
Line 38 in 289e8fa
| in_symtab: ?[]align(1) const macho.nlist_64 = null, |
cc @kubkon
Metadata
Metadata
Assignees
Labels
bugObserved behavior contradicts documented or intended behaviorObserved behavior contradicts documented or intended behaviorlinkingos-macosmacOSmacOS