Skip to content

panic: index out of bounds in link.MachO.ZldAtom.resolveRelocsArm64 #14559

@winterqt

Description

@winterqt

Zig Version

0.10.1

Steps to Reproduce and Observed Behavior

After fixing the @alignCast issue in #14558, stage3 fails to build on aarch64-darwin with a different error:

thread 666841 panic: index out of bounds
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO/ZldAtom.zig:793:53: 0x105a2bd27 in link.MachO.ZldAtom.resolveRelocsArm64 (zig2)
                    mem.readIntLittle(i64, atom_code[rel_offset..][0..8])
                                                    ^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO/ZldAtom.zig:483:39: 0x105a2719f in link.MachO.ZldAtom.resolveRelocs (zig2)
        .aarch64 => resolveRelocsArm64(zld, atom_index, atom_code, atom_relocs, reverse_lookup, ctx),
                                      ^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO/zld.zig:1736:43: 0x1056db723 in link.MachO.zld.Zld.writeAtoms (zig2)
                    try Atom.resolveRelocs(
                                          ^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO/zld.zig:4290:27: 0x10545e997 in link.MachO.zld.linkWithZld (zig2)
        try zld.writeAtoms(reverse_lookups);
                          ^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/link/MachO.zig:427:44: 0x10519e6d7 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: 0x10519b4b3 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: 0x105114a87 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: 0x105107bbf 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: 0x1050898af in main.updateModule (zig2)
    try comp.update();
                   ^
/private/tmp/nix-build-zig-0.10.1.drv-0/source/src/main.zig:3028:17: 0x104fc60f7 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: 0x104f4efc3 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: 0x104f4e8fb in main (zig2)
        stage2.mainArgs(gpa, arena, args) catch unreachable;
                       ^

Expected Behavior

For it to link correctly :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugObserved behavior contradicts documented or intended behaviorlinkingos-macosmacOS

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions