at 18.03-beta 2.8 kB view raw
1# These can be passed to nixpkgs as either the `localSystem` or 2# `crossSystem`. They are put here for user convenience, but also used by cross 3# tests and linux cross stdenv building, so handle with care! 4{ lib }: 5let platforms = import ./platforms.nix { inherit lib; }; in 6 7rec { 8 # 9 # Linux 10 # 11 12 sheevaplug = rec { 13 config = "armv5tel-unknown-linux-gnueabi"; 14 arch = "armv5tel"; 15 float = "soft"; 16 platform = platforms.sheevaplug; 17 }; 18 19 raspberryPi = rec { 20 config = "armv6l-unknown-linux-gnueabihf"; 21 arch = "armv6l"; 22 float = "hard"; 23 fpu = "vfp"; 24 platform = platforms.raspberrypi; 25 }; 26 27 armv7l-hf-multiplatform = rec { 28 config = "arm-unknown-linux-gnueabihf"; 29 arch = "armv7-a"; 30 float = "hard"; 31 fpu = "vfpv3-d16"; 32 platform = platforms.armv7l-hf-multiplatform; 33 }; 34 35 aarch64-multiplatform = rec { 36 config = "aarch64-unknown-linux-gnu"; 37 arch = "aarch64"; 38 platform = platforms.aarch64-multiplatform; 39 }; 40 41 aarch64-android-prebuilt = rec { 42 config = "aarch64-unknown-linux-android"; 43 arch = "aarch64"; 44 platform = platforms.aarch64-multiplatform; 45 useAndroidPrebuilt = true; 46 }; 47 48 scaleway-c1 = armv7l-hf-multiplatform // rec { 49 platform = platforms.scaleway-c1; 50 inherit (platform.gcc) fpu; 51 }; 52 53 pogoplug4 = rec { 54 arch = "armv5tel"; 55 config = "armv5tel-unknown-linux-gnueabi"; 56 float = "soft"; 57 platform = platforms.pogoplug4; 58 }; 59 60 fuloongminipc = rec { 61 config = "mipsel-unknown-linux-gnu"; 62 arch = "mips"; 63 float = "hard"; 64 platform = platforms.fuloong2f_n32; 65 }; 66 67 muslpi = raspberryPi // { 68 config = "armv6l-unknown-linux-musleabihf"; 69 }; 70 71 aarch64-multiplatform-musl = aarch64-multiplatform // { 72 config = "aarch64-unknown-linux-musl"; 73 }; 74 75 musl64 = { config = "x86_64-unknown-linux-musl"; }; 76 musl32 = { config = "i686-unknown-linux-musl"; }; 77 78 riscv = bits: { 79 config = "riscv${bits}-unknown-linux-gnu"; 80 platform = platforms.riscv-multiplatform bits; 81 }; 82 riscv64 = riscv "64"; 83 riscv32 = riscv "32"; 84 85 86 # 87 # Darwin 88 # 89 90 iphone64 = { 91 config = "aarch64-apple-darwin14"; 92 arch = "arm64"; 93 libc = "libSystem"; 94 platform = {}; 95 }; 96 97 iphone32 = { 98 config = "arm-apple-darwin10"; 99 arch = "armv7-a"; 100 libc = "libSystem"; 101 platform = {}; 102 }; 103 104 # 105 # Windows 106 # 107 108 # 32 bit mingw-w64 109 mingw32 = { 110 config = "i686-pc-mingw32"; 111 arch = "x86"; # Irrelevant 112 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain 113 platform = {}; 114 }; 115 116 # 64 bit mingw-w64 117 mingwW64 = { 118 # That's the triplet they use in the mingw-w64 docs. 119 config = "x86_64-pc-mingw32"; 120 arch = "x86_64"; # Irrelevant 121 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain 122 platform = {}; 123 }; 124}