diff options
| author | LemonBoy <thatlemon@gmail.com> | 2021-03-08 09:48:19 +0100 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-03-09 18:20:34 -0500 |
| commit | 1a5d0cea15963437af68bbb7a50354a378cf4efd (patch) | |
| tree | d321e4715a321049e8719df20f62fd80447d181f /src | |
| parent | a033735c8d2faf4ecd42b9d736d8ea61d22d3fcb (diff) | |
| download | zig-1a5d0cea15963437af68bbb7a50354a378cf4efd.tar.gz zig-1a5d0cea15963437af68bbb7a50354a378cf4efd.zip | |
stage2: Use correct ELF emulation for mips64
The n32 ABI requires a different emulation string than n64.
Diffstat (limited to 'src')
| -rw-r--r-- | src/link/Elf.zig | 16 |
1 files 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) { |
