From 1a5d0cea15963437af68bbb7a50354a378cf4efd Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Mon, 8 Mar 2021 09:48:19 +0100 Subject: [PATCH] stage2: Use correct ELF emulation for mips64 The n32 ABI requires a different emulation string than n64. --- src/link/Elf.zig | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/link/Elf.zig b/src/link/Elf.zig index bbbc9e25ed..314e443f3a 100644 --- 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) {