zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Msrc/link/Elf.zig | 16++++++++++++++--
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) {