aboutsummaryrefslogtreecommitdiff
path: root/src/link
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-10-09 16:45:39 -0700
committerAndrew Kelley <andrew@ziglang.org>2020-10-09 16:45:39 -0700
commit9f8f4464353460825856b848dfe2480de20d8d55 (patch)
treef1543b917d9407611e014e1a79d26b0eed267621 /src/link
parent57912964af0247a7aa940f76d09a8994d8fe1ec8 (diff)
downloadzig-9f8f4464353460825856b848dfe2480de20d8d55.tar.gz
zig-9f8f4464353460825856b848dfe2480de20d8d55.zip
fixups to previous commit
* std.fs.Dir.readFile: add doc comments to explain what it means when the returned slice has the same length as the supplied buffer. * introduce readSmallFile / writeSmallFile to abstract over the decision to use symlink or file contents to store data.
Diffstat (limited to 'src/link')
-rw-r--r--src/link/Coff.zig12
-rw-r--r--src/link/Elf.zig12
-rw-r--r--src/link/MachO.zig12
-rw-r--r--src/link/Wasm.zig12
4 files changed, 32 insertions, 16 deletions
diff --git a/src/link/Coff.zig b/src/link/Coff.zig
index 5c7975743f..492dbfc8eb 100644
--- a/src/link/Coff.zig
+++ b/src/link/Coff.zig
@@ -854,8 +854,12 @@ fn linkWithLLD(self: *Coff, comp: *Compilation) !void {
_ = try man.hit();
digest = man.final();
var prev_digest_buf: [digest.len]u8 = undefined;
- const prev_digest: []u8 = directory.handle.readFile(id_symlink_basename, &prev_digest_buf) catch |err| blk: {
- log.debug("COFF LLD new_digest={} readFile error: {}", .{ digest, @errorName(err) });
+ const prev_digest: []u8 = Cache.readSmallFile(
+ directory.handle,
+ id_symlink_basename,
+ &prev_digest_buf,
+ ) catch |err| blk: {
+ log.debug("COFF LLD new_digest={} error: {}", .{ digest, @errorName(err) });
// Handle this as a cache miss.
break :blk prev_digest_buf[0..0];
};
@@ -1180,9 +1184,9 @@ fn linkWithLLD(self: *Coff, comp: *Compilation) !void {
}
if (!self.base.options.disable_lld_caching) {
- // Update the dangling file with the digest. If it fails we can continue; it only
+ // Update the file with the digest. If it fails we can continue; it only
// means that the next invocation will have an unnecessary cache miss.
- directory.handle.writeFile(id_symlink_basename, &digest) catch |err| {
+ Cache.writeSmallFile(directory.handle, id_symlink_basename, &digest) catch |err| {
std.log.warn("failed to save linking hash digest file: {}", .{@errorName(err)});
};
// Again failure here only means an unnecessary cache miss.
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index 4fcfe78901..9c4029b3cd 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -1326,8 +1326,12 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void {
digest = man.final();
var prev_digest_buf: [digest.len]u8 = undefined;
- const prev_digest: []u8 = directory.handle.readFile(id_symlink_basename, &prev_digest_buf) catch |err| blk: {
- log.debug("ELF LLD new_digest={} readFile error: {}", .{ digest, @errorName(err) });
+ const prev_digest: []u8 = Cache.readSmallFile(
+ directory.handle,
+ id_symlink_basename,
+ &prev_digest_buf,
+ ) catch |err| blk: {
+ log.debug("ELF LLD new_digest={} error: {}", .{ digest, @errorName(err) });
// Handle this as a cache miss.
break :blk prev_digest_buf[0..0];
};
@@ -1647,9 +1651,9 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void {
}
if (!self.base.options.disable_lld_caching) {
- // Update the dangling file with the digest. If it fails we can continue; it only
+ // Update the file with the digest. If it fails we can continue; it only
// means that the next invocation will have an unnecessary cache miss.
- directory.handle.writeFile(id_symlink_basename, &digest) catch |err| {
+ Cache.writeSmallFile(directory.handle, id_symlink_basename, &digest) catch |err| {
std.log.warn("failed to save linking hash digest file: {}", .{@errorName(err)});
};
// Again failure here only means an unnecessary cache miss.
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
index 20fda846f5..9700a0bdb4 100644
--- a/src/link/MachO.zig
+++ b/src/link/MachO.zig
@@ -419,8 +419,12 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void {
digest = man.final();
var prev_digest_buf: [digest.len]u8 = undefined;
- const prev_digest: []u8 = directory.handle.readFile(id_symlink_basename, &prev_digest_buf) catch |err| blk: {
- log.debug("MachO LLD new_digest={} readFile error: {}", .{ digest, @errorName(err) });
+ const prev_digest: []u8 = Cache.readSmallFile(
+ directory.handle,
+ id_symlink_basename,
+ &prev_digest_buf,
+ ) catch |err| blk: {
+ log.debug("MachO LLD new_digest={} error: {}", .{ digest, @errorName(err) });
// Handle this as a cache miss.
break :blk prev_digest_buf[0..0];
};
@@ -674,9 +678,9 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void {
}
if (!self.base.options.disable_lld_caching) {
- // Update the dangling file with the digest. If it fails we can continue; it only
+ // Update the file with the digest. If it fails we can continue; it only
// means that the next invocation will have an unnecessary cache miss.
- directory.handle.writeFile(id_symlink_basename, &digest) catch |err| {
+ Cache.writeSmallFile(directory.handle, id_symlink_basename, &digest) catch |err| {
std.log.warn("failed to save linking hash digest file: {}", .{@errorName(err)});
};
// Again failure here only means an unnecessary cache miss.
diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig
index 320f90de19..2ab757461c 100644
--- a/src/link/Wasm.zig
+++ b/src/link/Wasm.zig
@@ -310,8 +310,12 @@ fn linkWithLLD(self: *Wasm, comp: *Compilation) !void {
digest = man.final();
var prev_digest_buf: [digest.len]u8 = undefined;
- const prev_digest: []u8 = directory.handle.readFile(id_symlink_basename, &prev_digest_buf) catch |err| blk: {
- log.debug("WASM LLD new_digest={} readFile error: {}", .{ digest, @errorName(err) });
+ const prev_digest: []u8 = Cache.readSmallFile(
+ directory.handle,
+ id_symlink_basename,
+ &prev_digest_buf,
+ ) catch |err| blk: {
+ log.debug("WASM LLD new_digest={} error: {}", .{ digest, @errorName(err) });
// Handle this as a cache miss.
break :blk prev_digest_buf[0..0];
};
@@ -424,9 +428,9 @@ fn linkWithLLD(self: *Wasm, comp: *Compilation) !void {
}
if (!self.base.options.disable_lld_caching) {
- // Update the dangling file with the digest. If it fails we can continue; it only
+ // Update the file with the digest. If it fails we can continue; it only
// means that the next invocation will have an unnecessary cache miss.
- directory.handle.writeFile(id_symlink_basename, &digest) catch |err| {
+ Cache.writeSmallFile(directory.handle, id_symlink_basename, &digest) catch |err| {
std.log.warn("failed to save linking hash digest symlink: {}", .{@errorName(err)});
};
// Again failure here only means an unnecessary cache miss.