I need to have Aarch64 cross gcc into shell environment. It’s required for tests, the main code should be compiled with the regular native compiler so the method described here is not what I want.
I found a topic where this code was suggested for user environment:
nix-env -iA nixpkgs.stdenv.cc --arg crossSystem '{ config = "aarch64-unknown-linux-gnu"; }'
It actually works and adds cross compiler into user environment – but I need to add it to the environment generated by a nix script. I tried to reproduce it in a script:
let
nixpkgs = import <nixpkgs> {};
aarch64cc = nixpkgs.stdenv.cc { crossSystem = { config = "aarch64-unknown-linux-gnu"; }; };
in
nixpkgs.mkShell { buildInputs = [ aarch64cc ]; }
but it fails with an error:
error: attempt to call something which is not a function but a set
How can I have a crosscompiler in shell environments? In general, how to debug such issues?