diff --git a/lib/std/zig/target.zig b/lib/std/zig/target.zig index dee2241667..430db3c343 100644 --- 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 index 5c7ba84623..9a6f4f392b 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 => {},