zig icon indicating copy to clipboard operation
zig copied to clipboard

Zig bootstrap crashes build on ReleaseSafe

Open kassane opened this issue 1 year ago • 6 comments

Zig Version

0.12.0-dev.3518+d2be725e4

Steps to Reproduce and Observed Behavior

Using latest zig-master src on bootstrap: https://github.com/ziglang/zig/commit/d2be725e4b14c33dbd39054e33d926913eee3cd4

  • build zig (cmake + wasm) [RelSafe]: OK
  • build LLVM using zig: OK
  • build zig using zig(cmake+wasm)[RelSafe]: Fail
./build x86_64-linux-musl baseline
-- Configuring zig version 0.12.0-dev.3518+d2be725e4
-- Configuring done (0.1s)
-- Generating done (0.1s)
-- Build files have been written to: /home/kassane/zig-bootstrap/out/build-zig-host
[ 36%] Built target zigcpp
[ 47%] Built target zig-wasm2c
[ 68%] Built target zig1
[ 73%] Running zig1.wasm to produce /home/kassane/zig-bootstrap/out/build-zig-host/zig2.c
[ 78%] Running zig1.wasm to produce /home/kassane/zig-bootstrap/out/build-zig-host/compiler_rt.c
[ 84%] Building C object CMakeFiles/zig2.dir/zig2.c.o
[ 89%] Building C object CMakeFiles/zig2.dir/compiler_rt.c.o
[ 94%] Linking CXX executable zig2
[ 94%] Built target zig2
[100%] Building stage3
[100%] Built target stage3
Install the project...
-- Install configuration: "Release"
error: sub-compilation of zig_libc failed
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/zig/c_translation.zig:417:16: note: expected 3 arguments, found 2
        return @fieldParentPtr(member, ptr);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/zig/AstGen.zig:11718:66: note: expected 3 arguments, found 2
                .defer_normal, .defer_error => return @alignCast(@fieldParentPtr("base", base)),
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/http/Client.zig:111:29: note: expected 3 arguments, found 2
        const node: *Node = @fieldParentPtr("data", connection);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Pool.zig:91:46: note: expected 3 arguments, found 2
            const run_node: *RunQueue.Node = @fieldParentPtr("data", runnable);
                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Futex.zig:647:35: note: expected 3 arguments, found 2
            const head: *Waiter = @fieldParentPtr("node", entry_node);
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Futex.zig:659:63: note: expected 3 arguments, found 2
            var queue_head: ?*Waiter = if (entry.node) |node| @fieldParentPtr("node", node) else null;
                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Futex.zig:702:39: note: expected 3 arguments, found 2
                const head: *Waiter = @fieldParentPtr("node", entry.node orelse unreachable);
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Build.zig:1065:42: note: expected 3 arguments, found 2
    const uninstall_tls: *TopLevelStep = @fieldParentPtr("step", uninstall_step);
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: sub-compilation of compiler_rt failed
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Build.zig:1065:42: note: expected 3 arguments, found 2
    const uninstall_tls: *TopLevelStep = @fieldParentPtr("step", uninstall_step);
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/zig/c_translation.zig:417:16: note: expected 3 arguments, found 2
        return @fieldParentPtr(member, ptr);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/zig/AstGen.zig:11718:66: note: expected 3 arguments, found 2
                .defer_normal, .defer_error => return @alignCast(@fieldParentPtr("base", base)),
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/http/Client.zig:111:29: note: expected 3 arguments, found 2
        const node: *Node = @fieldParentPtr("data", connection);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Pool.zig:91:46: note: expected 3 arguments, found 2
            const run_node: *RunQueue.Node = @fieldParentPtr("data", runnable);
                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Futex.zig:647:35: note: expected 3 arguments, found 2
            const head: *Waiter = @fieldParentPtr("node", entry_node);
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Futex.zig:659:63: note: expected 3 arguments, found 2
            var queue_head: ?*Waiter = if (entry.node) |node| @fieldParentPtr("node", node) else null;
                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Futex.zig:702:39: note: expected 3 arguments, found 2
                const head: *Waiter = @fieldParentPtr("node", entry.node orelse unreachable);
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:216:44: error: expected 3 arguments, found 2
        return if (base.tag == T.base_tag) @fieldParentPtr("base", base) else null;
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:373:39: error: expected 3 arguments, found 2
                return @as(*t.Type(), @fieldParentPtr("base", base)).lowerUnnamedConst(val, decl_index);
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:392:39: error: expected 3 arguments, found 2
                return @as(*t.Type(), @fieldParentPtr("base", base)).getGlobalSymbol(name, lib_name);
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:404:41: error: expected 3 arguments, found 2
                return @as(*tag.Type(), @fieldParentPtr("base", base)).updateDecl(module, decl_index);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:420:41: error: expected 3 arguments, found 2
                return @as(*tag.Type(), @fieldParentPtr("base", base)).updateFunc(module, func_index, air, liveness);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:432:41: error: expected 3 arguments, found 2
                return @as(*tag.Type(), @fieldParentPtr("base", base)).updateDeclLineNumber(module, decl_index);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:456:34: error: expected 3 arguments, found 2
                @as(*tag.Type(), @fieldParentPtr("base", base)).deinit();
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:539:28: error: expected 3 arguments, found 2
            return @as(*C, @fieldParentPtr("base", base)).flush(arena, prog_node);
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:577:41: error: expected 3 arguments, found 2
                return @as(*tag.Type(), @fieldParentPtr("base", base)).flushModule(arena, prog_node);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:587:34: error: expected 3 arguments, found 2
                @as(*tag.Type(), @fieldParentPtr("base", base)).freeDecl(decl_index);
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:610:41: error: expected 3 arguments, found 2
                return @as(*tag.Type(), @fieldParentPtr("base", base)).updateExports(module, exported, exports);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:634:41: error: expected 3 arguments, found 2
                return @as(*tag.Type(), @fieldParentPtr("base", base)).getDeclVAddr(decl_index, reloc_info);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:653:41: error: expected 3 arguments, found 2
                return @as(*tag.Type(), @fieldParentPtr("base", base)).lowerAnonDecl(decl_val, decl_align, src_loc);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:665:41: error: expected 3 arguments, found 2
                return @as(*tag.Type(), @fieldParentPtr("base", base)).getAnonDeclVAddr(decl_val, reloc_info);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/link.zig:684:41: error: expected 3 arguments, found 2
                return @as(*tag.Type(), @fieldParentPtr("base", base)).deleteDeclExport(decl_index, name);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/Module.zig:302:50: error: expected 3 arguments, found 2
            return @as(*std.heap.ArenaAllocator, @fieldParentPtr("state", state_acquired)).allocator();
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/Module.zig:312:43: error: expected 3 arguments, found 2
        if (@as(*std.heap.ArenaAllocator, @fieldParentPtr("state", self.state_acquired.?)) == arena_allocator) {
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/out/host/lib/zig/std/Build.zig:1065:42: error: expected 3 arguments, found 2
    const uninstall_tls: *TopLevelStep = @fieldParentPtr("step", uninstall_step);
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/src/register_manager.zig:62:31: error: expected 3 arguments, found 2
            return @alignCast(@fieldParentPtr("register_manager", self));
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/zig/test/standalone/cmakedefine/build.zig:89:46: error: expected 3 arguments, found 2
        const config_header: *ConfigHeader = @fieldParentPtr("step", config_header_step);
                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/out/host/lib/zig/std/zig/c_translation.zig:417:16: error: expected 3 arguments, found 2
        return @fieldParentPtr(member, ptr);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/out/host/lib/zig/std/zig/AstGen.zig:11718:66: error: expected 3 arguments, found 2
                .defer_normal, .defer_error => return @alignCast(@fieldParentPtr("base", base)),
                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/out/host/lib/zig/std/http/Client.zig:111:29: error: expected 3 arguments, found 2
        const node: *Node = @fieldParentPtr("data", connection);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Futex.zig:647:35: error: expected 3 arguments, found 2
            const head: *Waiter = @fieldParentPtr("node", entry_node);
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Futex.zig:659:63: error: expected 3 arguments, found 2
            var queue_head: ?*Waiter = if (entry.node) |node| @fieldParentPtr("node", node) else null;
                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Futex.zig:702:39: error: expected 3 arguments, found 2
                const head: *Waiter = @fieldParentPtr("node", entry.node orelse unreachable);
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/kassane/zig-bootstrap/out/host/lib/zig/std/Thread/Pool.zig:91:46: error: expected 3 arguments, found 2
            const run_node: *RunQueue.Node = @fieldParentPtr("data", runnable);
                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expected Behavior

Successful build. ReleaseFast works.

  • build zig (cmake + wasm)[RelFast]: Ok
  • build llvm using zig[RelFast]: Ok
  • build zig[RelSafe] using zig[RelFast]: Ok

kassane avatar Apr 02 '24 12:04 kassane

Did you update the bootstrap wasm blob as well?

Vexu avatar Apr 02 '24 13:04 Vexu

Did you update the bootstrap wasm blob as well?

This? https://github.com/ziglang/zig/commit/e5ba70bb5c176ba553a5458f89004b44da2b93d6 (yes)

kassane avatar Apr 02 '24 14:04 kassane

I don't know if it's clear enough.

  • Zig(wasm) build Zig(host) ReleaseSafe: OK
  • Zig(host)[ReleaseSafe] build Zig(triple-targets) ReleaseSafe: Fail

But,

  • Zig(host)[ReleaseFast] build Zig(triple-targets) as ReleaseSafe: Ok

kassane avatar Apr 02 '24 14:04 kassane

Can you try clearing the global cache?

Vexu avatar Apr 02 '24 15:04 Vexu

Can you try clearing the global cache?

clean (global + local) cache, get same error!

kassane avatar Apr 02 '24 15:04 kassane

There were some breaking changes to @fieldParentPtr. Ref: https://github.com/ziglang/zig/pull/19470

nunokaeru avatar May 05 '24 16:05 nunokaeru