diff options
author | John Ericson <Ericson2314@Yahoo.com> | 2017-05-23 18:04:15 -0400 |
---|---|---|
committer | John Ericson <Ericson2314@Yahoo.com> | 2017-05-29 18:56:03 -0400 |
commit | 20e756a0936fb75ce8f9d9ef0b7a511198bf7eea (patch) | |
tree | efe83f0252c5097c00fff2d67afc90c9d6dd7b42 /lib | |
parent | b20f20d3eb80de83abe5047c2ada9abad54ae0b6 (diff) | |
download | nixlib-20e756a0936fb75ce8f9d9ef0b7a511198bf7eea.tar nixlib-20e756a0936fb75ce8f9d9ef0b7a511198bf7eea.tar.gz nixlib-20e756a0936fb75ce8f9d9ef0b7a511198bf7eea.tar.bz2 nixlib-20e756a0936fb75ce8f9d9ef0b7a511198bf7eea.tar.lz nixlib-20e756a0936fb75ce8f9d9ef0b7a511198bf7eea.tar.xz nixlib-20e756a0936fb75ce8f9d9ef0b7a511198bf7eea.tar.zst nixlib-20e756a0936fb75ce8f9d9ef0b7a511198bf7eea.zip |
lib: Consolidate platform configurations (used for crossSystem)
This is good for maintenance and education.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/systems/default.nix | 1 | ||||
-rw-r--r-- | lib/systems/examples.nix | 130 | ||||
-rw-r--r-- | lib/systems/platforms.nix | 9 |
3 files changed, 139 insertions, 1 deletions
diff --git a/lib/systems/default.nix b/lib/systems/default.nix index c37b6be25232..c22c99561969 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -5,6 +5,7 @@ rec { parse = import ./parse.nix; inspect = import ./inspect.nix; platforms = import ./platforms.nix; + examples = import ./examples.nix; # Elaborate a `localSystem` or `crossSystem` so that it contains everything # necessary. diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix new file mode 100644 index 000000000000..da9b95a6454d --- /dev/null +++ b/lib/systems/examples.nix @@ -0,0 +1,130 @@ +# These can be passed to nixpkgs as either the `localSystem` or +# `crossSystem`. They are put here for user convenience, but also used by cross +# tests and linux cross stdenv building, so handle with care! + +let platforms = import ./platforms.nix; in + +rec { + # + # Linux + # + + sheevaplug = rec { + config = "armv5te-unknown-linux-gnueabi"; + bigEndian = false; + arch = "armv5te"; + float = "soft"; + withTLS = true; + libc = "glibc"; + platform = platforms.sheevaplug; + openssl.system = "linux-generic32"; + inherit (platform) gcc; + }; + + raspberryPi = rec { + config = "armv6l-unknown-linux-gnueabihf"; + bigEndian = false; + arch = "armv6l"; + float = "hard"; + fpu = "vfp"; + withTLS = true; + libc = "glibc"; + platform = platforms.raspberrypi; + openssl.system = "linux-generic32"; + inherit (platform) gcc; + }; + + armv7l-hf-multiplatform = rec { + config = "arm-unknown-linux-gnueabihf"; + bigEndian = false; + arch = "armv7-a"; + float = "hard"; + fpu = "vfpv3-d16"; + withTLS = true; + libc = "glibc"; + platform = platforms.armv7l-hf-multiplatform; + openssl.system = "linux-generic32"; + inherit (platform) gcc; + }; + + aarch64-multiplatform = rec { + config = "aarch64-unknown-linux-gnu"; + bigEndian = false; + arch = "aarch64"; + withTLS = true; + libc = "glibc"; + platform = platforms.aarch64-multiplatform; + inherit (platform) gcc; + }; + + scaleway-c1 = armv7l-hf-multiplatform // rec { + platform = platforms.scaleway-c1; + inherit (platform) gcc; + inherit (gcc) fpu; + }; + + pogoplug4 = rec { + arch = "armv5tel"; + config = "armv5tel-softfloat-linux-gnueabi"; + float = "soft"; + + platform = platforms.pogoplug4; + + inherit (platform) gcc; + libc = "glibc"; + + withTLS = true; + openssl.system = "linux-generic32"; + }; + + fuloongminipc = rec { + config = "mips64el-unknown-linux-gnu"; + bigEndian = false; + arch = "mips"; + float = "hard"; + withTLS = true; + libc = "glibc"; + platform = platforms.fuloong2f_n32; + openssl.system = "linux-generic32"; + inherit (platform) gcc; + }; + + # + # Darwin + # + + iphone64 = { + config = "aarch64-apple-darwin14"; + arch = "arm64"; + libc = "libsystem"; + platform = {}; + }; + + iphone32 = { + config = "arm-apple-darwin10"; + arch = "armv7-a"; + libc = "libsystem"; + platform = {}; + }; + + # + # Windows + # + + # 32 bit mingw-w64 + mingw32 = { + config = "i686-pc-mingw32"; + arch = "x86"; # Irrelevant + libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain + platform = {}; + }; + + # 64 bit mingw-w64 + mingwW64 = { + # That's the triplet they use in the mingw-w64 docs. + config = "x86_64-pc-mingw32"; + arch = "x86_64"; # Irrelevant + libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain + platform = {}; + }; +} diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix index 0bea38ab4195..ae4fc355c71d 100644 --- a/lib/systems/platforms.nix +++ b/lib/systems/platforms.nix @@ -255,6 +255,10 @@ rec { arch = "armv6"; fpu = "vfp"; float = "hard"; + # TODO(@Ericson2314) what is this and is it a good idea? It was + # used in some cross compilation examples but not others. + # + # abi = "aapcs-linux"; }; }; @@ -460,7 +464,10 @@ rec { ''; kernelTarget = "vmlinux"; uboot = null; - gcc.arch = "loongson2f"; + gcc = { + arch = "loongson2f"; + abi = "n32"; + }; }; beaglebone = armv7l-hf-multiplatform // { |