Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ReleaseSmall builds fail with FileNotFound error #13405

Closed
mrkishi opened this issue Nov 1, 2022 · 2 comments · Fixed by #15756
Closed

ReleaseSmall builds fail with FileNotFound error #13405

mrkishi opened this issue Nov 1, 2022 · 2 comments · Fixed by #15756
Labels
bug Observed behavior contradicts documented or intended behavior os-windows
Milestone

Comments

@mrkishi
Copy link
Contributor

mrkishi commented Nov 1, 2022

Zig Version

0.11.0-dev.5+ddb9eac05

Steps to Reproduce and Observed Behavior

I'm getting a FileNotFound error when building any projects with -Drelease-small on Windows, both with -fstage1 and -fnostage1. The 0.10 release notes mention -fstrip should be the default, but interestingly enough, adding exe.strip = true; to build.zig seems to fix the issue.

❯ zig init-exe
info: Created build.zig
info: Created src\main.zig
info: Next, try `zig build --help` or `zig build run`

❯ zig build run
All your codebase are belong to us.
Run `zig build test` to run the tests.

❯ zig build -Drelease-small
error: FileNotFound
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\os\windows.zig:126:35: 0x7ff71b062809 in OpenFile (build.exe.obj)
        .OBJECT_NAME_NOT_FOUND => return error.FileNotFound,
                                  ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\fs.zig:1224:23: 0x7ff71b065eb3 in openFileW (build.exe.obj)
            .handle = try w.OpenFile(sub_path_w, .{
                      ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\fs.zig:1096:13: 0x7ff71b04324e in openFile (build.exe.obj)
            return self.openFileW(path_w.span(), flags);
            ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\fs.zig:2532:24: 0x7ff71b0c6392 in updateFile (build.exe.obj)
        var src_file = try source_dir.openFile(source_path, .{});
                       ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:1089:29: 0x7ff71b0db14d in updateFile (build.exe.obj)
        const prev_status = try fs.Dir.updateFile(cwd, source_path, cwd, dest_path, .{});
                            ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:3427:13: 0x7ff71b0bd448 in make (build.exe.obj)
            try builder.updateFile(self.artifact.getOutputPdbSource().getPath(builder), full_pdb_path);
            ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:3649:9: 0x7ff71b02e449 in make (build.exe.obj)
        try self.makeFn(self);
        ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:509:9: 0x7ff71b01c76c in makeOneStep (build.exe.obj)
        try s.make();
        ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:503:17: 0x7ff71b01c6e5 in makeOneStep (build.exe.obj)
                return err;
                ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:464:13: 0x7ff71b01c438 in make (build.exe.obj)
            try self.makeOneStep(s);
            ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\build_runner.zig:223:21: 0x7ff71b01f3aa in main (build.exe.obj)
            else => return err,
                    ^
error: the following build command failed with exit code 1:
F:\projects\repros\zig-release-small\zig-cache\o\34a1f8d987ce9d091d0e0b5a87f3042a\build.exe C:\Users\mrkishi\scoop\apps\zig-dev\current\zig.exe F:\projects\repros\zig-release-small F:\projects\repros\zig-release-small\zig-cache C:\Users\mrkishi\AppData\Local\zig -Drelease-small

❯ zig build -Drelease-small -fstage1
error: FileNotFound
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\os\windows.zig:134:35: 0x7ff6b140285e in std.os.windows.OpenFile (build.obj)
        .OBJECT_NAME_COLLISION => return error.PathAlreadyExists,
                                  ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\os.zig:2833:21: 0x7ff6b13feaf9 in std.os.mkdiratW (build.obj)
        else => |e| return e,
                    ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\os.zig:2756:9: 0x7ff6b13fea2b in std.os.mkdirat (build.obj)
        return mkdiratW(dir_fd, sub_dir_path_w.span(), mode);
        ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\fs.zig:1426:9: 0x7ff6b13fe94a in std.fs.Dir::std.fs.Dir.makeDir (build.obj)
        try os.mkdirat(self.fd, sub_path, default_new_dir_mode);
        ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\os\windows.zig:134:35: 0x7ff6b140285e in std.os.windows.OpenFile (build.obj)
        .OBJECT_NAME_COLLISION => return error.PathAlreadyExists,
                                  ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\os.zig:2833:21: 0x7ff6b13feaf9 in std.os.mkdiratW (build.obj)
        else => |e| return e,
                    ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\os.zig:2756:9: 0x7ff6b13fea2b in std.os.mkdirat (build.obj)
        return mkdiratW(dir_fd, sub_dir_path_w.span(), mode);
        ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\fs.zig:1426:9: 0x7ff6b13fe94a in std.fs.Dir::std.fs.Dir.makeDir (build.obj)
        try os.mkdirat(self.fd, sub_path, default_new_dir_mode);
        ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\os\windows.zig:126:35: 0x7ff6b1402730 in std.os.windows.OpenFile (build.obj)
        .OBJECT_NAME_NOT_FOUND => return error.FileNotFound,
                                  ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\fs.zig:1224:23: 0x7ff6b13bf8cf in std.fs.Dir::std.fs.Dir.openFileW (build.obj)
            .handle = try w.OpenFile(sub_path_w, .{
                      ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\fs.zig:1096:13: 0x7ff6b13dc1aa in std.fs.Dir::std.fs.Dir.openFile (build.obj)
            return self.openFileW(path_w.span(), flags);
            ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\fs.zig:2532:24: 0x7ff6b1470a2a in std.fs.Dir::std.fs.Dir.updateFile (build.obj)
        var src_file = try source_dir.openFile(source_path, .{});
                       ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:1089:29: 0x7ff6b147e55e in std.build.Builder::std.build.Builder.updateFile (build.obj)
        const prev_status = try fs.Dir.updateFile(cwd, source_path, cwd, dest_path, .{});
                            ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:3427:13: 0x7ff6b146524f in std.build.InstallArtifactStep::std.build.InstallArtifactStep.make (build.obj)
            try builder.updateFile(self.artifact.getOutputPdbSource().getPath(builder), full_pdb_path);
            ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:3649:9: 0x7ff6b13ff070 in std.build.Step::std.build.Step.make (build.obj)
        try self.makeFn(self);
        ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:509:9: 0x7ff6b13fe481 in std.build.Builder::std.build.Builder.makeOneStep (build.obj)
        try s.make();
        ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:503:17: 0x7ff6b13fe42d in std.build.Builder::std.build.Builder.makeOneStep (build.obj)
                return err;
                ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\std\build.zig:464:13: 0x7ff6b13f2dd1 in std.build.Builder::std.build.Builder.make (build.obj)
            try self.makeOneStep(s);
            ^
C:\Users\mrkishi\scoop\apps\zig-dev\current\lib\build_runner.zig:223:21: 0x7ff6b13b80c7 in main (build.obj)
            else => return err,
                    ^
error: the following build command failed with exit code 1:
F:\projects\repros\zig-release-small\zig-cache\o\fe30788cd52cfff3817985b5c5b11dbb\build.exe C:\Users\mrkishi\scoop\apps\zig-dev\current\zig.exe F:\projects\repros\zig-release-small F:\projects\repros\zig-release-small\zig-cache C:\Users\mrkishi\AppData\Local\zig -Drelease-small -fstage1 -fstage1

Expected Behavior

A successful build! :P

@mrkishi mrkishi added the bug Observed behavior contradicts documented or intended behavior label Nov 1, 2022
bsedat added a commit to tinfoil/burrito that referenced this issue Dec 14, 2022
Due to a Zig 0.10.0 bug (ziglang/zig#13405) the strip flag must be set manually. This moves build mode selection to be contained within the zig build file, and selected based on the value of the IS_PROD check.
@Vexu Vexu added this to the 0.11.0 milestone Jan 10, 2023
@Durobot
Copy link
Sponsor

Durobot commented Feb 6, 2023

I can confirm that this issue is still present on 0.11.0-dev.1580+a5b34a61a
It is not present on Linux, appears to be Windows-specific (as are .pdb files?).

The build itself succeeds, but it does not create the pdb file (unlike other release modes), and so the file can't be copied to zig-out\bin, which causes error: FileNotFound.

@cdecompilador
Copy link

Still happening on windows

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Observed behavior contradicts documented or intended behavior os-windows
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants