release-cross: Make tests more uniform

Fewer packages are only built on one platform. Eventually we should
have each package encode its own requirements on build host and target
(as we do for build already) and use that to test automatically.

Changed files
+27 -36
pkgs
top-level
+27 -36
pkgs/top-level/release-cross.nix
···
let
nativePlatforms = linux;
-
/* Basic list of packages to cross-build */
-
basicCrossDrv = {
-
bison = nativePlatforms;
-
busybox = nativePlatforms;
-
coreutils = nativePlatforms;
-
dropbear = nativePlatforms;
};
-
/* Basic list of packages to be natively built,
-
but need a crossSystem defined to get meaning */
-
basicNativeDrv = {
-
buildPackages.binutils = nativePlatforms;
buildPackages.gccCrossStageFinal = nativePlatforms;
-
buildPackages.gdbCross = nativePlatforms;
};
-
basic = basicCrossDrv // basicNativeDrv;
-
windows = {
-
buildPackages.binutils = nativePlatforms;
-
buildPackages.gccCrossStageFinal = nativePlatforms;
-
coreutils = nativePlatforms;
boehmgc = nativePlatforms;
-
gmp = nativePlatforms;
guile_1_8 = nativePlatforms;
libffi = nativePlatforms;
libtool = nativePlatforms;
···
windows.wxMSW = nativePlatforms;
};
in
{
···
arch = "arm64";
libc = "libSystem";
};
-
in mapTestOnCross crossSystem {
-
buildPackages.binutils = darwin;
-
};
darwinToArm = let
crossSystem = {
···
arch = "armv7-a";
libc = "libSystem";
};
-
in mapTestOnCross crossSystem {
-
buildPackages.binutils = darwin;
-
};
/* Test some cross builds to the Sheevaplug */
crossSheevaplugLinux = let
···
libc = "glibc";
openssl.system = "linux-generic32";
};
-
in mapTestOnCross crossSystem (basic // {
ubootSheevaplug = nativePlatforms;
});
···
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
platform = {};
};
-
in mapTestOnCross crossSystem windows;
/* Test some cross builds on 64 bit mingw-w64 */
···
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
platform = {};
};
-
in mapTestOnCross crossSystem windows;
/* Linux on the fuloong */
···
abi = "n32";
};
};
-
in mapTestOnCross crossSystem {
-
coreutils = nativePlatforms;
-
ed = nativePlatforms;
-
patch = nativePlatforms;
-
};
/* Linux on Raspberrypi */
···
abi = "aapcs-linux";
};
};
-
in mapTestOnCross crossSystem {
-
coreutils = nativePlatforms;
-
ed = nativePlatforms;
-
patch = nativePlatforms;
vim = nativePlatforms;
unzip = nativePlatforms;
ddrescue = nativePlatforms;
···
patchelf = nativePlatforms;
buildPackages.binutils = nativePlatforms;
mpg123 = nativePlatforms;
-
};
/* Cross-built bootstrap tools for every supported platform */
···
let
nativePlatforms = linux;
+
common = {
+
buildPackages.binutils = nativePlatforms;
+
gmp = nativePlatforms;
};
+
gnuCommon = common // {
buildPackages.gccCrossStageFinal = nativePlatforms;
+
coreutils = nativePlatforms;
};
+
linuxCommon = gnuCommon // {
+
buildPackages.gdbCross = nativePlatforms;
+
bison = nativePlatforms;
+
busybox = nativePlatforms;
+
dropbear = nativePlatforms;
+
ed = nativePlatforms;
+
ncurses = nativePlatforms;
+
patch = nativePlatforms;
+
};
+
windowsCommon = gnuCommon // {
boehmgc = nativePlatforms;
guile_1_8 = nativePlatforms;
libffi = nativePlatforms;
libtool = nativePlatforms;
···
windows.wxMSW = nativePlatforms;
};
+
darwinCommon = {
+
buildPackages.binutils = darwin;
+
};
+
in
{
···
arch = "arm64";
libc = "libSystem";
};
+
in mapTestOnCross crossSystem darwinCommon;
darwinToArm = let
crossSystem = {
···
arch = "armv7-a";
libc = "libSystem";
};
+
in mapTestOnCross crossSystem darwinCommon;
/* Test some cross builds to the Sheevaplug */
crossSheevaplugLinux = let
···
libc = "glibc";
openssl.system = "linux-generic32";
};
+
in mapTestOnCross crossSystem (linuxCommon // {
ubootSheevaplug = nativePlatforms;
});
···
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
platform = {};
};
+
in mapTestOnCross crossSystem windowsCommon;
/* Test some cross builds on 64 bit mingw-w64 */
···
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
platform = {};
};
+
in mapTestOnCross crossSystem windowsCommon;
/* Linux on the fuloong */
···
abi = "n32";
};
};
+
in mapTestOnCross crossSystem linuxCommon;
/* Linux on Raspberrypi */
···
abi = "aapcs-linux";
};
};
+
in mapTestOnCross crossSystem (linuxCommon // {
vim = nativePlatforms;
unzip = nativePlatforms;
ddrescue = nativePlatforms;
···
patchelf = nativePlatforms;
buildPackages.binutils = nativePlatforms;
mpg123 = nativePlatforms;
+
});
/* Cross-built bootstrap tools for every supported platform */