From 05c059e563d88e277cbfb723449778c73ad94f8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Fri, 13 Mar 2026 04:25:58 +0100 Subject: [PATCH] link.Lld: pass --be8 to ld.lld for armeb/thumbeb v6+ BE32 is deprecated and only supported by older cores and some v6 cores. All cores v6 or newer support BE8, so default to that for v6+. closes https://codeberg.org/ziglang/zig/issues/31404 --- src/link/Lld.zig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/link/Lld.zig b/src/link/Lld.zig index 5c7ba84623bde145063b4ff87b08434840ec43d9..9a6f4f392be21ebb3cae4a995c68d1a8fcbb6e87 100644 --- a/src/link/Lld.zig +++ b/src/link/Lld.zig @@ -871,6 +871,11 @@ fn elfLink(lld: *Lld, arena: Allocator) !void { try std.fmt.allocPrint(arena, "-float-abi={s}", .{if (target.abi.float() == .hard) "hard" else "soft"}), }); + switch (target.cpu.arch) { + .armeb, .thumbeb => if (is_exe_or_dyn_lib and target.cpu.has(.arm, .has_v6)) try argv.append("--be8"), + else => {}, + } + if (comp.config.lto != .none) { switch (comp.root_mod.optimize_mode) { .Debug => {}, -- 2.54.0