at 22.05-pre 6.2 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 m68k = { 148 config = "m68k-unknown-linux-gnu"; 149 }; 150 151 s390 = { 152 config = "s390-unknown-linux-gnu"; 153 }; 154 155 s390x = { 156 config = "s390x-unknown-linux-gnu"; 157 }; 158 159 arm-embedded = { 160 config = "arm-none-eabi"; 161 libc = "newlib"; 162 }; 163 armhf-embedded = { 164 config = "arm-none-eabihf"; 165 libc = "newlib"; 166 # GCC8+ does not build without this 167 # (https://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg552339.html): 168 gcc = { 169 arch = "armv5t"; 170 fpu = "vfp"; 171 }; 172 }; 173 174 aarch64-embedded = { 175 config = "aarch64-none-elf"; 176 libc = "newlib"; 177 }; 178 179 aarch64be-embedded = { 180 config = "aarch64_be-none-elf"; 181 libc = "newlib"; 182 }; 183 184 ppc-embedded = { 185 config = "powerpc-none-eabi"; 186 libc = "newlib"; 187 }; 188 189 ppcle-embedded = { 190 config = "powerpcle-none-eabi"; 191 libc = "newlib"; 192 }; 193 194 i686-embedded = { 195 config = "i686-elf"; 196 libc = "newlib"; 197 }; 198 199 x86_64-embedded = { 200 config = "x86_64-elf"; 201 libc = "newlib"; 202 }; 203 204 # 205 # Redox 206 # 207 208 x86_64-unknown-redox = { 209 config = "x86_64-unknown-redox"; 210 libc = "relibc"; 211 }; 212 213 # 214 # Darwin 215 # 216 217 iphone64 = { 218 config = "aarch64-apple-ios"; 219 # config = "aarch64-apple-darwin14"; 220 sdkVer = "14.3"; 221 xcodeVer = "12.3"; 222 xcodePlatform = "iPhoneOS"; 223 useiOSPrebuilt = true; 224 }; 225 226 iphone32 = { 227 config = "armv7a-apple-ios"; 228 # config = "arm-apple-darwin10"; 229 sdkVer = "14.3"; 230 xcodeVer = "12.3"; 231 xcodePlatform = "iPhoneOS"; 232 useiOSPrebuilt = true; 233 }; 234 235 iphone64-simulator = { 236 config = "x86_64-apple-ios"; 237 # config = "x86_64-apple-darwin14"; 238 sdkVer = "14.3"; 239 xcodeVer = "12.3"; 240 xcodePlatform = "iPhoneSimulator"; 241 darwinPlatform = "ios-simulator"; 242 useiOSPrebuilt = true; 243 }; 244 245 iphone32-simulator = { 246 config = "i686-apple-ios"; 247 # config = "i386-apple-darwin11"; 248 sdkVer = "14.3"; 249 xcodeVer = "12.3"; 250 xcodePlatform = "iPhoneSimulator"; 251 darwinPlatform = "ios-simulator"; 252 useiOSPrebuilt = true; 253 }; 254 255 aarch64-darwin = { 256 config = "aarch64-apple-darwin"; 257 xcodePlatform = "MacOSX"; 258 platform = {}; 259 }; 260 261 x86_64-darwin = { 262 config = "x86_64-apple-darwin"; 263 xcodePlatform = "MacOSX"; 264 platform = {}; 265 }; 266 267 # 268 # Windows 269 # 270 271 # 32 bit mingw-w64 272 mingw32 = { 273 config = "i686-w64-mingw32"; 274 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain 275 }; 276 277 # 64 bit mingw-w64 278 mingwW64 = { 279 # That's the triplet they use in the mingw-w64 docs. 280 config = "x86_64-w64-mingw32"; 281 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain 282 }; 283 284 # BSDs 285 286 amd64-netbsd = lib.warn "The amd64-netbsd system example is deprecated. Use x86_64-netbsd instead." x86_64-netbsd; 287 288 x86_64-netbsd = { 289 config = "x86_64-unknown-netbsd"; 290 libc = "nblibc"; 291 }; 292 293 x86_64-netbsd-llvm = { 294 config = "x86_64-unknown-netbsd"; 295 libc = "nblibc"; 296 useLLVM = true; 297 }; 298 299 # 300 # WASM 301 # 302 303 wasi32 = { 304 config = "wasm32-unknown-wasi"; 305 useLLVM = true; 306 }; 307 308 # Ghcjs 309 ghcjs = { 310 config = "js-unknown-ghcjs"; 311 }; 312}