at 23.05-pre 7.7 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-gnuabielfv2"; 26 }; 27 ppc64-musl = { 28 config = "powerpc64-unknown-linux-musl"; 29 gcc = { abi = "elfv2"; }; 30 }; 31 32 sheevaplug = { 33 config = "armv5tel-unknown-linux-gnueabi"; 34 } // platforms.sheevaplug; 35 36 raspberryPi = { 37 config = "armv6l-unknown-linux-gnueabihf"; 38 } // platforms.raspberrypi; 39 40 remarkable1 = { 41 config = "armv7l-unknown-linux-gnueabihf"; 42 } // platforms.zero-gravitas; 43 44 remarkable2 = { 45 config = "armv7l-unknown-linux-gnueabihf"; 46 } // platforms.zero-sugar; 47 48 armv7l-hf-multiplatform = { 49 config = "armv7l-unknown-linux-gnueabihf"; 50 }; 51 52 aarch64-multiplatform = { 53 config = "aarch64-unknown-linux-gnu"; 54 }; 55 56 armv7a-android-prebuilt = { 57 config = "armv7a-unknown-linux-androideabi"; 58 rustc.config = "armv7-linux-androideabi"; 59 sdkVer = "28"; 60 ndkVer = "24"; 61 useAndroidPrebuilt = true; 62 } // platforms.armv7a-android; 63 64 aarch64-android-prebuilt = { 65 config = "aarch64-unknown-linux-android"; 66 rustc.config = "aarch64-linux-android"; 67 sdkVer = "28"; 68 ndkVer = "24"; 69 useAndroidPrebuilt = true; 70 }; 71 72 aarch64-android = { 73 config = "aarch64-unknown-linux-android"; 74 sdkVer = "30"; 75 ndkVer = "24"; 76 libc = "bionic"; 77 useAndroidPrebuilt = false; 78 useLLVM = true; 79 }; 80 81 pogoplug4 = { 82 config = "armv5tel-unknown-linux-gnueabi"; 83 } // platforms.pogoplug4; 84 85 ben-nanonote = { 86 config = "mipsel-unknown-linux-uclibc"; 87 } // platforms.ben_nanonote; 88 89 fuloongminipc = { 90 config = "mipsel-unknown-linux-gnu"; 91 } // platforms.fuloong2f_n32; 92 93 # can execute on 32bit chip 94 mips-linux-gnu = { config = "mips-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32; 95 mipsel-linux-gnu = { config = "mipsel-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32; 96 mipsisa32r6-linux-gnu = { config = "mipsisa32r6-unknown-linux-gnu"; } // platforms.gcc_mips32r6_o32; 97 mipsisa32r6el-linux-gnu = { config = "mipsisa32r6el-unknown-linux-gnu"; } // platforms.gcc_mips32r6_o32; 98 99 # require 64bit chip (for more registers, 64-bit floating point, 64-bit "long long") but use 32bit pointers 100 mips64-linux-gnuabin32 = { config = "mips64-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32; 101 mips64el-linux-gnuabin32 = { config = "mips64el-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32; 102 mipsisa64r6-linux-gnuabin32 = { config = "mipsisa64r6-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r6_n32; 103 mipsisa64r6el-linux-gnuabin32 = { config = "mipsisa64r6el-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r6_n32; 104 105 # 64bit pointers 106 mips64-linux-gnuabi64 = { config = "mips64-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r2_64; 107 mips64el-linux-gnuabi64 = { config = "mips64el-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r2_64; 108 mipsisa64r6-linux-gnuabi64 = { config = "mipsisa64r6-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r6_64; 109 mipsisa64r6el-linux-gnuabi64 = { config = "mipsisa64r6el-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r6_64; 110 111 muslpi = raspberryPi // { 112 config = "armv6l-unknown-linux-musleabihf"; 113 }; 114 115 aarch64-multiplatform-musl = { 116 config = "aarch64-unknown-linux-musl"; 117 }; 118 119 gnu64 = { config = "x86_64-unknown-linux-gnu"; }; 120 gnu32 = { config = "i686-unknown-linux-gnu"; }; 121 122 musl64 = { config = "x86_64-unknown-linux-musl"; }; 123 musl32 = { config = "i686-unknown-linux-musl"; }; 124 125 riscv64 = riscv "64"; 126 riscv32 = riscv "32"; 127 128 riscv64-embedded = { 129 config = "riscv64-none-elf"; 130 libc = "newlib"; 131 }; 132 133 riscv32-embedded = { 134 config = "riscv32-none-elf"; 135 libc = "newlib"; 136 }; 137 138 mmix = { 139 config = "mmix-unknown-mmixware"; 140 libc = "newlib"; 141 }; 142 143 rx-embedded = { 144 config = "rx-none-elf"; 145 libc = "newlib"; 146 }; 147 148 msp430 = { 149 config = "msp430-elf"; 150 libc = "newlib"; 151 }; 152 153 avr = { 154 config = "avr"; 155 }; 156 157 vc4 = { 158 config = "vc4-elf"; 159 libc = "newlib"; 160 }; 161 162 or1k = { 163 config = "or1k-elf"; 164 libc = "newlib"; 165 }; 166 167 m68k = { 168 config = "m68k-unknown-linux-gnu"; 169 }; 170 171 s390 = { 172 config = "s390-unknown-linux-gnu"; 173 }; 174 175 s390x = { 176 config = "s390x-unknown-linux-gnu"; 177 }; 178 179 arm-embedded = { 180 config = "arm-none-eabi"; 181 libc = "newlib"; 182 }; 183 armhf-embedded = { 184 config = "arm-none-eabihf"; 185 libc = "newlib"; 186 # GCC8+ does not build without this 187 # (https://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg552339.html): 188 gcc = { 189 arch = "armv5t"; 190 fpu = "vfp"; 191 }; 192 }; 193 194 aarch64-embedded = { 195 config = "aarch64-none-elf"; 196 libc = "newlib"; 197 }; 198 199 aarch64be-embedded = { 200 config = "aarch64_be-none-elf"; 201 libc = "newlib"; 202 }; 203 204 ppc-embedded = { 205 config = "powerpc-none-eabi"; 206 libc = "newlib"; 207 }; 208 209 ppcle-embedded = { 210 config = "powerpcle-none-eabi"; 211 libc = "newlib"; 212 }; 213 214 i686-embedded = { 215 config = "i686-elf"; 216 libc = "newlib"; 217 }; 218 219 x86_64-embedded = { 220 config = "x86_64-elf"; 221 libc = "newlib"; 222 }; 223 224 # 225 # Redox 226 # 227 228 x86_64-unknown-redox = { 229 config = "x86_64-unknown-redox"; 230 libc = "relibc"; 231 }; 232 233 # 234 # Darwin 235 # 236 237 iphone64 = { 238 config = "aarch64-apple-ios"; 239 # config = "aarch64-apple-darwin14"; 240 sdkVer = "14.3"; 241 xcodeVer = "12.3"; 242 xcodePlatform = "iPhoneOS"; 243 useiOSPrebuilt = true; 244 }; 245 246 iphone32 = { 247 config = "armv7a-apple-ios"; 248 # config = "arm-apple-darwin10"; 249 sdkVer = "14.3"; 250 xcodeVer = "12.3"; 251 xcodePlatform = "iPhoneOS"; 252 useiOSPrebuilt = true; 253 }; 254 255 iphone64-simulator = { 256 config = "x86_64-apple-ios"; 257 # config = "x86_64-apple-darwin14"; 258 sdkVer = "14.3"; 259 xcodeVer = "12.3"; 260 xcodePlatform = "iPhoneSimulator"; 261 darwinPlatform = "ios-simulator"; 262 useiOSPrebuilt = true; 263 }; 264 265 iphone32-simulator = { 266 config = "i686-apple-ios"; 267 # config = "i386-apple-darwin11"; 268 sdkVer = "14.3"; 269 xcodeVer = "12.3"; 270 xcodePlatform = "iPhoneSimulator"; 271 darwinPlatform = "ios-simulator"; 272 useiOSPrebuilt = true; 273 }; 274 275 aarch64-darwin = { 276 config = "aarch64-apple-darwin"; 277 xcodePlatform = "MacOSX"; 278 platform = {}; 279 }; 280 281 x86_64-darwin = { 282 config = "x86_64-apple-darwin"; 283 xcodePlatform = "MacOSX"; 284 platform = {}; 285 }; 286 287 # 288 # Windows 289 # 290 291 # 32 bit mingw-w64 292 mingw32 = { 293 config = "i686-w64-mingw32"; 294 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain 295 }; 296 297 # 64 bit mingw-w64 298 mingwW64 = { 299 # That's the triplet they use in the mingw-w64 docs. 300 config = "x86_64-w64-mingw32"; 301 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain 302 }; 303 304 # BSDs 305 306 x86_64-freebsd = { 307 config = "x86_64-unknown-freebsd13"; 308 useLLVM = true; 309 }; 310 311 x86_64-netbsd = { 312 config = "x86_64-unknown-netbsd"; 313 }; 314 315 # this is broken and never worked fully 316 x86_64-netbsd-llvm = { 317 config = "x86_64-unknown-netbsd"; 318 useLLVM = true; 319 }; 320 321 # 322 # WASM 323 # 324 325 wasi32 = { 326 config = "wasm32-unknown-wasi"; 327 useLLVM = true; 328 }; 329 330 # Ghcjs 331 ghcjs = { 332 config = "js-unknown-ghcjs"; 333 }; 334}