commit 1a5d0cea15963437af68bbb7a50354a378cf4efd (tree)
parent a033735c8d2faf4ecd42b9d736d8ea61d22d3fcb
Author: LemonBoy <thatlemon@gmail.com>
Date: Mon, 8 Mar 2021 09:48:19 +0100
stage2: Use correct ELF emulation for mips64
The n32 ABI requires a different emulation string than n64.
Diffstat:
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
@@ -3230,8 +3230,20 @@ fn getLDMOption(target: std.Target) ?[]const u8 {
.sparcv9 => return "elf64_sparc",
.mips => return "elf32btsmip",
.mipsel => return "elf32ltsmip",
- .mips64 => return "elf64btsmip",
- .mips64el => return "elf64ltsmip",
+ .mips64 => {
+ if (target.abi == .gnuabin32) {
+ return "elf32btsmipn32";
+ } else {
+ return "elf64btsmip";
+ }
+ },
+ .mips64el => {
+ if (target.abi == .gnuabin32) {
+ return "elf32ltsmipn32";
+ } else {
+ return "elf64ltsmip";
+ }
+ },
.s390x => return "elf64_s390",
.x86_64 => {
if (target.abi == .gnux32) {