authorgravatar for xtex@astrafall.orgxtex <xtex@astrafall.org> 2026-10-06 11:13:22+08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-10-09 23:55:16+02:00
logb90b080836734bc5c2d0f684ed2aad5c95ede453
treeff8ad6d0e410dbd2eb8d1bac030d5e1476fec6f1
parent1df1f936b3f4b6f2e8e97248d5779cac1f60a911

objcopy: call seekTo after setLength

Previously, --pad-to is implemented using File.setLength which does a ftruncate syscall immediately. However, for positional writers, setLength will be called again in out.end(), truncating the file back to out.pos bytes. Therefore, seekTo should be called after setLength to update out.pos.

1 files changed, 1 insertions(+), 0 deletions(-)

lib/compiler/objcopy.zig+1
...@@ -669,6 +669,7 @@ fn padFile(out: *File.Writer, opt_size: ?u64) !void {...@@ -669,6 +669,7 @@ fn padFile(out: *File.Writer, opt_size: ?u64) !void {
669 const io = out.io;669 const io = out.io;
670 const size = opt_size orelse return;670 const size = opt_size orelse return;
671 try out.file.setLength(io, size);671 try out.file.setLength(io, size);
672 try out.seekTo(size);
672}673}
673674
674test "HexWriter.Record.Address has correct payload and checksum" {675test "HexWriter.Record.Address has correct payload and checksum" {