3b32c920d5
eabihf is an abi that can be used with ARM architectures that support the “hard float”. It should probably only be used with ARM32 when you are absolutely sure your binaries will run on ARM systems with a FPU. Also, add an example "armhf-embedded" to match the preexisting arm-embedded system. qmk_firmware needs hard float in a few places, so add them here to get that to work. Fixes #51184
215 lines
4.5 KiB
Nix
215 lines
4.5 KiB
Nix
# 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!
|
|
{ lib }:
|
|
let
|
|
platforms = import ./platforms.nix { inherit lib; };
|
|
|
|
riscv = bits: {
|
|
config = "riscv${bits}-unknown-linux-gnu";
|
|
platform = platforms.riscv-multiplatform bits;
|
|
};
|
|
in
|
|
|
|
rec {
|
|
#
|
|
# Linux
|
|
#
|
|
powernv = {
|
|
config = "powerpc64le-unknown-linux-gnu";
|
|
platform = platforms.powernv;
|
|
};
|
|
musl-power = {
|
|
config = "powerpc64le-unknown-linux-musl";
|
|
platform = platforms.powernv;
|
|
};
|
|
|
|
sheevaplug = rec {
|
|
config = "armv5tel-unknown-linux-gnueabi";
|
|
platform = platforms.sheevaplug;
|
|
};
|
|
|
|
raspberryPi = rec {
|
|
config = "armv6l-unknown-linux-gnueabihf";
|
|
platform = platforms.raspberrypi;
|
|
};
|
|
|
|
armv7l-hf-multiplatform = rec {
|
|
config = "armv7l-unknown-linux-gnueabihf";
|
|
platform = platforms.armv7l-hf-multiplatform;
|
|
};
|
|
|
|
aarch64-multiplatform = rec {
|
|
config = "aarch64-unknown-linux-gnu";
|
|
platform = platforms.aarch64-multiplatform;
|
|
};
|
|
|
|
armv5te-android-prebuilt = rec {
|
|
config = "armv5tel-unknown-linux-androideabi";
|
|
sdkVer = "21";
|
|
ndkVer = "10e";
|
|
platform = platforms.armv5te-android;
|
|
useAndroidPrebuilt = true;
|
|
};
|
|
|
|
armv7a-android-prebuilt = rec {
|
|
config = "armv7a-unknown-linux-androideabi";
|
|
sdkVer = "24";
|
|
ndkVer = "17c";
|
|
platform = platforms.armv7a-android;
|
|
useAndroidPrebuilt = true;
|
|
};
|
|
|
|
aarch64-android-prebuilt = rec {
|
|
config = "aarch64-unknown-linux-android";
|
|
sdkVer = "24";
|
|
ndkVer = "17c";
|
|
platform = platforms.aarch64-multiplatform;
|
|
useAndroidPrebuilt = true;
|
|
};
|
|
|
|
scaleway-c1 = armv7l-hf-multiplatform // rec {
|
|
platform = platforms.scaleway-c1;
|
|
inherit (platform.gcc) fpu;
|
|
};
|
|
|
|
pogoplug4 = rec {
|
|
config = "armv5tel-unknown-linux-gnueabi";
|
|
platform = platforms.pogoplug4;
|
|
};
|
|
|
|
ben-nanonote = rec {
|
|
config = "mipsel-unknown-linux-uclibc";
|
|
platform = platforms.ben_nanonote;
|
|
};
|
|
|
|
fuloongminipc = rec {
|
|
config = "mipsel-unknown-linux-gnu";
|
|
platform = platforms.fuloong2f_n32;
|
|
};
|
|
|
|
muslpi = raspberryPi // {
|
|
config = "armv6l-unknown-linux-musleabihf";
|
|
};
|
|
|
|
aarch64-multiplatform-musl = aarch64-multiplatform // {
|
|
config = "aarch64-unknown-linux-musl";
|
|
};
|
|
|
|
musl64 = { config = "x86_64-unknown-linux-musl"; };
|
|
musl32 = { config = "i686-unknown-linux-musl"; };
|
|
|
|
riscv64 = riscv "64";
|
|
riscv32 = riscv "32";
|
|
|
|
avr = {
|
|
config = "avr";
|
|
};
|
|
|
|
arm-embedded = {
|
|
config = "arm-none-eabi";
|
|
libc = "newlib";
|
|
};
|
|
armhf-embedded = {
|
|
config = "arm-none-eabihf";
|
|
libc = "newlib";
|
|
};
|
|
|
|
aarch64-embedded = {
|
|
config = "aarch64-none-elf";
|
|
libc = "newlib";
|
|
};
|
|
|
|
aarch64be-embedded = {
|
|
config = "aarch64_be-none-elf";
|
|
libc = "newlib";
|
|
};
|
|
|
|
ppc-embedded = {
|
|
config = "powerpc-none-eabi";
|
|
libc = "newlib";
|
|
};
|
|
|
|
ppcle-embedded = {
|
|
config = "powerpcle-none-eabi";
|
|
libc = "newlib";
|
|
};
|
|
|
|
alpha-embedded = {
|
|
config = "alpha-elf";
|
|
libc = "newlib";
|
|
};
|
|
|
|
i686-embedded = {
|
|
config = "i686-elf";
|
|
libc = "newlib";
|
|
};
|
|
|
|
x86_64-embedded = {
|
|
config = "x86_64-elf";
|
|
libc = "newlib";
|
|
};
|
|
|
|
#
|
|
# Darwin
|
|
#
|
|
|
|
iphone64 = {
|
|
config = "aarch64-apple-ios";
|
|
# config = "aarch64-apple-darwin14";
|
|
sdkVer = "10.2";
|
|
xcodeVer = "8.2";
|
|
xcodePlatform = "iPhoneOS";
|
|
useiOSPrebuilt = true;
|
|
platform = {};
|
|
};
|
|
|
|
iphone32 = {
|
|
config = "armv7a-apple-ios";
|
|
# config = "arm-apple-darwin10";
|
|
sdkVer = "10.2";
|
|
xcodeVer = "8.2";
|
|
xcodePlatform = "iPhoneOS";
|
|
useiOSPrebuilt = true;
|
|
platform = {};
|
|
};
|
|
|
|
iphone64-simulator = {
|
|
config = "x86_64-apple-ios";
|
|
# config = "x86_64-apple-darwin14";
|
|
sdkVer = "10.2";
|
|
xcodeVer = "8.2";
|
|
xcodePlatform = "iPhoneSimulator";
|
|
useiOSPrebuilt = true;
|
|
platform = {};
|
|
};
|
|
|
|
iphone32-simulator = {
|
|
config = "i686-apple-ios";
|
|
# config = "i386-apple-darwin11";
|
|
sdkVer = "10.2";
|
|
xcodeVer = "8.2";
|
|
xcodePlatform = "iPhoneSimulator";
|
|
useiOSPrebuilt = true;
|
|
platform = {};
|
|
};
|
|
|
|
#
|
|
# Windows
|
|
#
|
|
|
|
# 32 bit mingw-w64
|
|
mingw32 = {
|
|
config = "i686-pc-mingw32";
|
|
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";
|
|
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
|
|
platform = {};
|
|
};
|
|
}
|