From 092299036705eb597f6c9c3c1cb9939d5fb9d131 Mon Sep 17 00:00:00 2001 From: Matthew Lugg Date: Mon, 17 Nov 2025 01:51:11 +0100 Subject: [PATCH] std.Build.Step: send messages to compiler as little-endian Little-endian is what `std.zig.Server` expects, but the old logic just send the raw bytes of the struct, so sent in native endian (causing a crash on big-endian targets). --- lib/std/Build/Step.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/std/Build/Step.zig b/lib/std/Build/Step.zig index f4387a2480..8ee686e44e 100644 --- a/lib/std/Build/Step.zig +++ b/lib/std/Build/Step.zig @@ -680,7 +680,10 @@ fn sendMessage(file: std.fs.File, tag: std.zig.Client.Message.Tag) !void { .tag = tag, .bytes_len = 0, }; - try file.writeAll(std.mem.asBytes(&header)); + var w = file.writer(&.{}); + w.interface.writeStruct(header, .little) catch |err| switch (err) { + error.WriteFailed => return w.err.?, + }; } pub fn handleVerbose(