aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2025-06-11 22:00:41 +0100
committermlugg <mlugg@mlugg.co.uk>2025-06-12 17:51:31 +0100
commitf9a670d46de3c62be16202f186eacfee6ec096d4 (patch)
tree8f91214fd4ca521fcd7d882aa30da1a970359fe2 /src/Compilation.zig
parentde69d6317516af95e09ca7a48484fa175b171d11 (diff)
downloadzig-f9a670d46de3c62be16202f186eacfee6ec096d4.tar.gz
zig-f9a670d46de3c62be16202f186eacfee6ec096d4.zip
Compilation: prevent zig1 depending on fd_readdir
This isn't really coherent to model as a `Feature`; this makes sense because of zig1's specific environment. As such, I opted to check `dev.env` directly.
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 49b2a6b8b6..9f851cf135 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -2589,6 +2589,11 @@ fn cleanupAfterUpdate(comp: *Compilation, tmp_dir_rand_int: u64) void {
if (none.tmp_artifact_directory) |*tmp_dir| {
tmp_dir.handle.close();
none.tmp_artifact_directory = null;
+ if (dev.env == .bootstrap) {
+ // zig1 uses `CacheMode.none`, but it doesn't need to know how to delete
+ // temporary directories; it doesn't have a real cache directory anyway.
+ return;
+ }
const tmp_dir_sub_path = "tmp" ++ std.fs.path.sep_str ++ std.fmt.hex(tmp_dir_rand_int);
comp.dirs.local_cache.handle.deleteTree(tmp_dir_sub_path) catch |err| {
log.warn("failed to delete temporary directory '{s}{c}{s}': {s}", .{