`ReleaseSmall` builds fail with `FileNotFound` error
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
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.
Still happening on windows