From 839bdfdc93b1d2a2a4ed6f7c9ca3155323242d82 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 29 Sep 2020 21:48:50 -0700 Subject: [PATCH] link.Coff: skip redundant (and invalid) copy to same path --- src/link/Coff.zig | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/link/Coff.zig b/src/link/Coff.zig index 2290560509..3f462582e7 100644 --- a/src/link/Coff.zig +++ b/src/link/Coff.zig @@ -893,7 +893,11 @@ fn linkWithLLD(self: *Coff, comp: *Compilation) !void { // regarding eliding redundant object -> object transformations. return error.NoObjectsToLink; }; - try fs.cwd().copyFile(the_object_path, fs.cwd(), full_out_path, .{}); + // This can happen when using --enable-cache and using the stage1 backend. In this case + // we can skip the file copy. + if (!mem.eql(u8, the_object_path, full_out_path)) { + try fs.cwd().copyFile(the_object_path, fs.cwd(), full_out_path, .{}); + } } else { // Create an LLD command line and invoke it. var argv = std.ArrayList([]const u8).init(self.base.allocator);