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
5let platforms = import ./platforms.nix; in
6
7rec {
8 #
9 # Linux
10 #
11
12 sheevaplug = rec {
13 config = "armv5tel-unknown-linux-gnueabi";
14 bigEndian = false;
15 arch = "armv5tel";
16 float = "soft";
17 withTLS = true;
18 libc = "glibc";
19 platform = platforms.sheevaplug;
20 openssl.system = "linux-generic32";
21 inherit (platform) gcc;
22 };
23
24 raspberryPi = rec {
25 config = "armv6l-unknown-linux-gnueabihf";
26 bigEndian = false;
27 arch = "armv6l";
28 float = "hard";
29 fpu = "vfp";
30 withTLS = true;
31 libc = "glibc";
32 platform = platforms.raspberrypi;
33 openssl.system = "linux-generic32";
34 inherit (platform) gcc;
35 };
36
37 armv7l-hf-multiplatform = rec {
38 config = "arm-unknown-linux-gnueabihf";
39 bigEndian = false;
40 arch = "armv7-a";
41 float = "hard";
42 fpu = "vfpv3-d16";
43 withTLS = true;
44 libc = "glibc";
45 platform = platforms.armv7l-hf-multiplatform;
46 openssl.system = "linux-generic32";
47 inherit (platform) gcc;
48 };
49
50 aarch64-multiplatform = rec {
51 config = "aarch64-unknown-linux-gnu";
52 bigEndian = false;
53 arch = "aarch64";
54 withTLS = true;
55 libc = "glibc";
56 platform = platforms.aarch64-multiplatform;
57 inherit (platform) gcc;
58 };
59
60 scaleway-c1 = armv7l-hf-multiplatform // rec {
61 platform = platforms.scaleway-c1;
62 inherit (platform) gcc;
63 inherit (gcc) fpu;
64 };
65
66 pogoplug4 = rec {
67 arch = "armv5tel";
68 config = "armv5tel-softfloat-linux-gnueabi";
69 float = "soft";
70
71 platform = platforms.pogoplug4;
72
73 inherit (platform) gcc;
74 libc = "glibc";
75
76 withTLS = true;
77 openssl.system = "linux-generic32";
78 };
79
80 fuloongminipc = rec {
81 config = "mips64el-unknown-linux-gnu";
82 bigEndian = false;
83 arch = "mips";
84 float = "hard";
85 withTLS = true;
86 libc = "glibc";
87 platform = platforms.fuloong2f_n32;
88 openssl.system = "linux-generic32";
89 inherit (platform) gcc;
90 };
91
92 #
93 # Darwin
94 #
95
96 iphone64 = {
97 config = "aarch64-apple-darwin14";
98 arch = "arm64";
99 libc = "libSystem";
100 platform = {};
101 };
102
103 iphone32 = {
104 config = "arm-apple-darwin10";
105 arch = "armv7-a";
106 libc = "libSystem";
107 platform = {};
108 };
109
110 #
111 # Windows
112 #
113
114 # 32 bit mingw-w64
115 mingw32 = {
116 config = "i686-pc-mingw32";
117 arch = "x86"; # Irrelevant
118 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
119 platform = {};
120 };
121
122 # 64 bit mingw-w64
123 mingwW64 = {
124 # That's the triplet they use in the mingw-w64 docs.
125 config = "x86_64-pc-mingw32";
126 arch = "x86_64"; # Irrelevant
127 libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
128 platform = {};
129 };
130}