at 21.11-pre 5.9 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 6 platforms = import ./platforms.nix { inherit lib; }; 7 8 riscv = bits: { 9 config = "riscv${bits}-unknown-linux-gnu"; 10 }; 11in 12 13rec { 14 # 15 # Linux 16 # 17 powernv = { 18 config = "powerpc64le-unknown-linux-gnu"; 19 }; 20 musl-power = { 21 config = "powerpc64le-unknown-linux-musl"; 22 }; 23 24 ppc64 = { 25 config = "powerpc64-unknown-linux-gnu"; 26 gcc = { abi = "elfv2"; }; # for gcc configuration 27 }; 28 ppc64-musl = { 29 config = "powerpc64-unknown-linux-musl"; 30 gcc = { abi = "elfv2"; }; # for gcc configuration 31 }; 32 33 sheevaplug = { 34 config = "armv5tel-unknown-linux-gnueabi"; 35 } // platforms.sheevaplug; 36 37 raspberryPi = { 38 config = "armv6l-unknown-linux-gnueabihf"; 39 } // platforms.raspberrypi; 40 41 remarkable1 = { 42 config = "armv7l-unknown-linux-gnueabihf"; 43 } // platforms.zero-gravitas; 44 45 remarkable2 = { 46 config = "armv7l-unknown-linux-gnueabihf"; 47 } // platforms.zero-sugar; 48 49 armv7l-hf-multiplatform = { 50 config = "armv7l-unknown-linux-gnueabihf"; 51 }; 52 53 aarch64-multiplatform = { 54 config = "aarch64-unknown-linux-gnu"; 55 }; 56 57 armv7a-android-prebuilt = { 58 config = "armv7a-unknown-linux-androideabi"; 59 rustc.config = "armv7-linux-androideabi"; 60 sdkVer = "29"; 61 ndkVer = "21"; 62 useAndroidPrebuilt = true; 63 } // platforms.armv7a-android; 64 65 aarch64-android-prebuilt = { 66 config = "aarch64-unknown-linux-android"; 67 rustc.config = "aarch64-linux-android"; 68 sdkVer = "29"; 69 ndkVer = "21"; 70 useAndroidPrebuilt = true; 71 }; 72 73 aarch64-android = { 74 config = "aarch64-unknown-linux-android"; 75 sdkVer = "30"; 76 ndkVer = "21"; 77 libc = "bionic"; 78 useAndroidPrebuilt = false; 79 useLLVM = true; 80 }; 81 82 scaleway-c1 = armv7l-hf-multiplatform // platforms.scaleway-c1; 83 84 pogoplug4 = { 85 config = "armv5tel-unknown-linux-gnueabi"; 86 } // platforms.pogoplug4; 87 88 ben-nanonote = { 89 config = "mipsel-unknown-linux-uclibc"; 90 } // platforms.ben_nanonote; 91 92 fuloongminipc = { 93 config = "mipsel-unknown-linux-gnu"; 94 } // platforms.fuloong2f_n32; 95 96 muslpi = raspberryPi // { 97 config = "armv6l-unknown-linux-musleabihf"; 98 }; 99 100 aarch64-multiplatform-musl = { 101 config = "aarch64-unknown-linux-musl"; 102 }; 103 104 gnu64 = { config = "x86_64-unknown-linux-gnu"; }; 105 gnu32 = { config = "i686-unknown-linux-gnu"; }; 106 107 musl64 = { config = "x86_64-unknown-linux-musl"; }; 108 musl32 = { config = "i686-unknown-linux-musl"; }; 109 110 riscv64 = riscv "64"; 111 riscv32 = riscv "32"; 112 113 riscv64-embedded = { 114 config = "riscv64-none-elf"; 115 libc = "newlib"; 116 }; 117 118 riscv32-embedded = { 119 config = "riscv32-none-elf"; 120 libc = "newlib"; 121 }; 122 123 mmix = { 124 config = "mmix-unknown-mmixware"; 125 libc = "newlib"; 126 }; 127 128 msp430 = { 129 config = "msp430-elf"; 130 libc = "newlib"; 131 }; 132 133 avr = { 134 config = "avr"; 135 }; 136 137 vc4 = { 138 config = "vc4-elf"; 139 libc = "newlib"; 140 }; 141 142 or1k = { 143 config = "or1k-elf"; 144 libc = "newlib"; 145 }; 146 147 arm-embedded = { 148 config = "arm-none-eabi"; 149 libc = "newlib"; 150 }; 151 armhf-embedded = { 152 config = "arm-none-eabihf"; 153 libc = "newlib"; 154 # GCC8+ does not build without this 155 # (https://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg552339.html): 156 gcc = { 157 arch = "armv5t"; 158 fpu = "vfp"; 159 }; 160 }; 161 162 aarch64-embedded = { 163 config = "aarch64-none-elf"; 164 libc = "newlib"; 165 }; 166 167 aarch64be-embedded = { 168 config = "aarch64_be-none-elf"; 169 libc = "newlib"; 170 }; 171 172 ppc-embedded = { 173 config = "powerpc-none-eabi"; 174 libc = "newlib"; 175 }; 176 177 ppcle-embedded = { 178 config = "powerpcle-none-eabi"; 179 libc = "newlib"; 180 }; 181 182 i686-embedded = { 183 config = "i686-elf"; 184 libc = "newlib"; 185 }; 186 187 x86_64-embedded = { 188 config = "x86_64-elf"; 189 libc = "newlib"; 190 }; 191 192 # 193 # Redox 194 # 195 196 x86_64-unknown-redox = { 197 config = "x86_64-unknown-redox"; 198 libc = "relibc"; 199 }; 200 201 # 202 # Darwin 203 # 204 205 iphone64 = { 206 config = "aarch64-apple-ios"; 207 # config = "aarch64-apple-darwin14"; 208 sdkVer = "14.3"; 209 xcodeVer = "12.3"; 210 xcodePlatform = "iPhoneOS"; 211 useiOSPrebuilt = true; 212 }; 213 214 iphone32 = { 215 config = "armv7a-apple-ios"; 216 # config = "arm-apple-darwin10"; 217 sdkVer = "14.3"; 218 xcodeVer = "12.3"; 219 xcodePlatform = "iPhoneOS"; 220 useiOSPrebuilt = true; 221 }; 222 223 iphone64-simulator = { 224 config = "x86_64-apple-ios"; 225 # config = "x86_64-apple-darwin14"; 226 sdkVer = "14.3"; 227 xcodeVer = "12.3"; 228 xcodePlatform = "iPhoneSimulator"; 229 darwinPlatform = "ios-simulator"; 230 useiOSPrebuilt = true; 231 }; 232 233 iphone32-simulator = { 234 config = "i686-apple-ios"; 235 # config = "i386-apple-darwin11"; 236 sdkVer = "14.3"; 237 xcodeVer = "12.3"; 238 xcodePlatform = "iPhoneSimulator"; 239 darwinPlatform = "ios-simulator"; 240 useiOSPrebuilt = true; 241 }; 242 243 aarch64-darwin = { 244 config = "aarch64-apple-darwin"; 245 xcodePlatform = "MacOSX"; 246 platform = {}; 247 }; 248 249 # 250 # Windows 251 # 252 253 # 32 bit mingw-w64 254 mingw32 = { 255 config = "i686-w64-mingw32"; 256 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain 257 }; 258 259 # 64 bit mingw-w64 260 mingwW64 = { 261 # That's the triplet they use in the mingw-w64 docs. 262 config = "x86_64-w64-mingw32"; 263 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain 264 }; 265 266 # BSDs 267 268 amd64-netbsd = lib.warn "The amd64-netbsd system example is deprecated. Use x86_64-netbsd instead." x86_64-netbsd; 269 270 x86_64-netbsd = { 271 config = "x86_64-unknown-netbsd"; 272 libc = "nblibc"; 273 }; 274 275 x86_64-netbsd-llvm = { 276 config = "x86_64-unknown-netbsd"; 277 libc = "nblibc"; 278 useLLVM = true; 279 }; 280 281 # 282 # WASM 283 # 284 285 wasi32 = { 286 config = "wasm32-unknown-wasi"; 287 useLLVM = true; 288 }; 289 290 # Ghcjs 291 ghcjs = { 292 config = "js-unknown-ghcjs"; 293 }; 294}