Cross compiling binutils, host and target are different

So I’m trying to read up on cross compilation, and unfortunately they skip over the thing I’m interested in:

The target platform is relevant to cases where you want to build a compiler binary. In such cases, you would build a compiler on the build platform, run it to compile code on the host platform, and run the final executable on the target platform.

Since this is rarely needed, we will assume that the target is identical to the host.

I need to run the compiler on the x86_64 platform, and I need to compile the binary for 32 bit MIPS. I checked with repl and config.guess and it seems my host platform would be x86_64-pc-linux-gnu, which is identical to my build platform, and my target platform would be mipsel-unknown-linux-gnu.

The question now is, how do I proceed?

To clarify, I need something like the binutils-mips-linux-gnu package which exists in Ubuntu and in the Arch User Repository.

Thank you.

It seems it was as easy as making a shell.nix file with the following contents:

let
  crossPkgs = import <nixpkgs> { crossSystem = { config = "mips-elf"; }; };
  pkgs = import <nixpkgs> {};
in
pkgs.mkShell {
  packages = [
    pkgs.gnumake
    crossPkgs.buildPackages.binutilsNoLibc
  ];
}

Then all I had to do was running nix-shell shell.nix and it dropped me into an environment with mips-elf-* and make available. I will mark this as solved, but if anyone has a better solution, feel free to share.