Commit 1a5d0cea15

LemonBoy <thatlemon@gmail.com>
2021-03-08 09:48:19
stage2: Use correct ELF emulation for mips64
The n32 ABI requires a different emulation string than n64.
1 parent a033735
Changed files (1)
src
link
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) {