-
Notifications
You must be signed in to change notification settings - Fork 57
Description
I'm trying to get cross-compilation working but without any luck so far. I tried every incantation of buildPlatform, hostPlatform, localSystem, crossSystem in either channels config or host's config, but I just can't get it to work.
In particular:
{
nixpkgs.buildPlatform = { config = "x86_64-unknown-linux-gnu"; };
nixpkgs.hostPlatform = { config = "aarch64-unknown-linux-gnu"; };
}This should cross-compile according to the nixpkgs documentation, but it doesn't.
Also this (unsure what the difference to above is supposed to be):
{
nixpkgs.localSystem = { config = "x86_64-unknown-linux-gnu"; };
nixpkgs.crossSystem = { config = "aarch64-unknown-linux-gnu"; };
}Additionally, setting pkgs seems to have zero effect when using fup:
{
nixpkgs.pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux.pkgsCross.aarch64-multiplatform
}I also tried it in channels config:
{
channels.cross = {
input = nixpkgs; # input = nixpkgs.legacyPackages.x86_64-linux.pkgsCross.aarch64-multiplatform; doesn't work
pkgs = nixpkgs.legacyPackages.x86_64-linux.pkgsCross.aarch64-multiplatform; # ignored?
localSystem = { config = "x86_64-unknown-linux-gnu"; }; # ignored?
crossSystem = { config = "aarch64-unknown-linux-gnu"; }; # ignored?
};
}Trying to read the code it looks like on is merely able to influence nixpkgs.config from the flake level, however all these options go into options directly under nipkgs.
Do you know of anyone successfully using fup for aarch64?
My aarch64 hosts either wrongly build as x86_64, or use qemu to build. The latter is extremely slow to a point it's unusable, and stopped working alltogether recently trying to build "grafana" (just stops doing anything without load).
Any pointers?