How to use `gcc_multi` with a specific GCC version in nixpkgs?
I recently came across the problem that pkgs.gcc_multi comes with gcc in version 12 but I needed version 11. While nixpkgs exports gcc in multiple versions (pkgs.gcc, pkgs.gcc11, pkgs.gcc12, pkgs.gcc13), pkgs.gcc_multi is only exported once, backed with the version coming from pkgs.gcc. However, using another, specific gcc version is fairly simple.
In <nixpkgs at NixOS 23.11>/pkgs/top-level/all-packages.nix we can find gcc_multi. This is aliased to pkgs.wrapCCMulti gcc (function call), which is defined in the same file. So to use a specific version, you just have to define:
gcc11_multi = pkgs.wrapCCMulti pkgs.gcc11; // or gcc13_multi = pkgs.wrapCCMulti pkgs.gcc13;
PS: I would much prefer publishing this in an official NixOS wiki post than on my blog, but unfortunately, I couldn’t find a document that already talks about gcc_multi. I might work on fixing this soon, but let’s see.
UPDATE: Added it to https://nixos.wiki/wiki/C
0 Comments