Skip to content

stage2 unable to build stage3 on x86_64 macos: panic: incorrect alignment #12387

@andrewrk

Description

@andrewrk

Zig Version: 0.10.0-dev.3511+17511a48f

andy@Andrews-Air-2:~/dev/zig/build$ stage2/bin/zig build -p stage3 -Denable-llvm -Denable-stage1
MachO Flush... thread 7320547 panic: incorrect alignment
/Users/andy/dev/zig/src/link/MachO/Object.zig:104:72: 0x1032c60bc in link.MachO.Object.parse (zig1)
                    @alignCast(@alignOf(macho.nlist_64), &self.contents[symtab.symoff]),
                                                                       ^
/Users/andy/dev/zig/src/link/MachO/Archive.zig:228:21: 0x1032b8f44 in link.MachO.Archive.parseObject (zig1)
    try object.parse(allocator, cpu_arch);
                    ^
/Users/andy/dev/zig/src/link/MachO.zig:2676:51: 0x103377880 in link.MachO.resolveSymbolsInArchives (zig1)
            const object = try archive.parseObject(gpa, cpu_arch, offsets.items[0]);
                                                  ^
/Users/andy/dev/zig/src/link/MachO.zig:1108:42: 0x1032440dd in link.MachO.linkOneShot (zig1)
        try self.resolveSymbolsInArchives();
                                         ^
/Users/andy/dev/zig/src/link/MachO.zig:414:45: 0x1032266d8 in link.MachO.flush (zig1)
        .one_shot => return self.linkOneShot(comp, prog_node),
                                            ^
/Users/andy/dev/zig/src/link.zig:641:72: 0x103223788 in link.File.flush (zig1)
            .macho => return @fieldParentPtr(MachO, "base", base).flush(comp, prog_node),
                                                                       ^
/Users/andy/dev/zig/src/Compilation.zig:2335:24: 0x1031bef48 in Compilation.flush (zig1)
    comp.bin_file.flush(comp, prog_node) catch |err| switch (err) {
                       ^
/Users/andy/dev/zig/src/Compilation.zig:2316:23: 0x1031b1e35 in Compilation.update (zig1)
        try comp.flush(main_progress_node);
                      ^
/Users/andy/dev/zig/src/main.zig:3327:20: 0x103149030 in main.updateModule (zig1)
    try comp.update();
                   ^

Same command works fine on my M1 mac. You need to check out the stage3-default branch (#12368) to replicate this. I'm using homebrew LLVM and zig env says

error: Zig was built/linked incorrectly: LLVM and Clang have separate copies of libc++
       If you are dynamically linking LLVM, make sure you dynamically link libc++ too

Metadata

Metadata

Assignees

No one assigned

    Labels

    arch-x86_6464-bit x86bugObserved behavior contradicts documented or intended behaviorfrontendTokenization, parsing, AstGen, Sema, and Liveness.linkingos-macos

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions