diff options
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/bintools-wrapper/default.nix | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix index e88482397f2f..ae910b76c708 100644 --- a/pkgs/build-support/bintools-wrapper/default.nix +++ b/pkgs/build-support/bintools-wrapper/default.nix @@ -59,7 +59,7 @@ let else if (with targetPlatform; isArm && isLinux) then "${libc_lib}/lib/ld-linux*.so.3" else if targetPlatform.system == "aarch64-linux" then "${libc_lib}/lib/ld-linux-aarch64.so.1" else if targetPlatform.system == "powerpc-linux" then "${libc_lib}/lib/ld.so.1" - else if targetPlatform.system == "mips64el-linux" then "${libc_lib}/lib/ld.so.1" + else if targetPlatform.isMips then "${libc_lib}/lib/ld.so.1" else if targetPlatform.isDarwin then "/usr/lib/dyld" else if stdenv.lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1" else null; @@ -172,13 +172,20 @@ stdenv.mkDerivation { else if targetPlatform.isWindows then "pe" else "elf" + toString targetPlatform.parsed.cpu.bits; endianPrefix = if targetPlatform.isBigEndian then "big" else "little"; + sep = optionalString (!targetPlatform.isMips) "-"; arch = /**/ if targetPlatform.isAarch64 then endianPrefix + "aarch64" else if targetPlatform.isArm then endianPrefix + "arm" else if targetPlatform.isx86_64 then "x86-64" else if targetPlatform.isi686 then "i386" + else if targetPlatform.isMips then { + "mips" = "btsmipn32"; # n32 variant + "mipsel" = "ltsmipn32"; # n32 variant + "mips64" = "btsmip"; + "mips64el" = "ltsmip"; + }.${targetPlatform.parsed.cpu.name} else throw "unknown emulation for platform: " + targetPlatform.config; - in targetPlatform.platform.bfdEmulation or (fmt + "-" + arch); + in targetPlatform.platform.bfdEmulation or (fmt + sep + arch); depsTargetTargetPropagated = extraPackages; |