commit c6cb5f691dce18b2c5b50fac8b3a770f0c2965ba (tree)
parent a7b686ac5eb10cfc2d37f50908a9c4b527b97d60
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Sat, 14 Mar 2026 06:19:00 +0100
Merge pull request '`link.Lld`: pass `--be8` to `ld.lld` for `armeb`/`thumbeb` for v6+' (#31489) from alexrp/zig:arm-be8 into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/31489
Diffstat:
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/std/zig/target.zig b/lib/std/zig/target.zig
@@ -21,8 +21,8 @@ pub const available_libcs = [_]ArchOsAbi{
.{ .arch = .arm, .os = .netbsd, .abi = .eabi, .os_ver = .{ .major = 1, .minor = 2, .patch = 0 } },
.{ .arch = .arm, .os = .netbsd, .abi = .eabihf, .os_ver = .{ .major = 1, .minor = 2, .patch = 0 } },
.{ .arch = .arm, .os = .openbsd, .abi = .eabi, .os_ver = .{ .major = 6, .minor = 1, .patch = 0 } },
- .{ .arch = .armeb, .os = .linux, .abi = .gnueabi, .os_ver = .{ .major = 2, .minor = 6, .patch = 0 } },
- .{ .arch = .armeb, .os = .linux, .abi = .gnueabihf, .os_ver = .{ .major = 2, .minor = 6, .patch = 0 } },
+ .{ .arch = .armeb, .os = .linux, .abi = .gnueabi, .os_ver = .{ .major = 2, .minor = 6, .patch = 0 }, .glibc_triple = "armeb-linux-gnueabi-be8" },
+ .{ .arch = .armeb, .os = .linux, .abi = .gnueabihf, .os_ver = .{ .major = 2, .minor = 6, .patch = 0 }, .glibc_triple = "armeb-linux-gnueabihf-be8" },
.{ .arch = .armeb, .os = .linux, .abi = .musleabi, .os_ver = .{ .major = 2, .minor = 6, .patch = 0 } },
.{ .arch = .armeb, .os = .linux, .abi = .musleabihf, .os_ver = .{ .major = 2, .minor = 6, .patch = 0 } },
.{ .arch = .armeb, .os = .netbsd, .abi = .eabi, .os_ver = .{ .major = 1, .minor = 2, .patch = 0 } },
diff --git 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 => {},