!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

563 Members
118 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
18 Dec 2025
@emilazy:matrix.orgemily(as the person who dropped the most recent batch of GCCs and LLVMs:) yes, it is a meaningful burden on LLVM and GCC maintenance13:38:48
@matthewcroughan:defenestrate.itmatthewcroughan The fact that it's in a file means it's not private, you could just versions = import ./pkgs.path + "pkgs/development/compilers/gcc/versions.nix"; no? 13:39:19
@matthewcroughan:defenestrate.itmatthewcroughan * The fact that it's in a file means it's not private, you could just versions = (import ./pkgs.path + "pkgs/development/compilers/gcc/versions.nix"); no? 13:39:34
@bake.monorail:matrix.orgbake.monorail even without taking cc-wrapper into account? 13:39:41
@matthewcroughan:defenestrate.itmatthewcroughan * The fact that it's in a file means it's not private, you could just versions = (import ./pkgs.path + "/pkgs/development/compilers/gcc/versions.nix"); no? 13:39:44
@emilazy:matrix.orgemilyyes13:39:45
@emilazy:matrix.orgemily

e.g.

  • having to non-trivially patch old compilers to keep working with newer versions of everything else (e.g. newer Darwin SDK incompatibilites with with older compiler versions)
  • having to backport patches from new compilers to old compilers to work around bugs
13:40:11
@emilazy:matrix.orgemilyoften in tandem13:40:14
@emilazy:matrix.orgemilyalso, dealing with divergence in build systems over time13:40:25
@emilazy:matrix.orgemilyall of these add non-trivial complexity to the compiler derivations and backporting work for patches13:40:38
@emilazy:matrix.orgemilyhaving old compilers available also means that things will inevitably use them, so e.g. LLVM 12 was load-bearing for way too long on AArch64 because of GHC13:41:11
@emilazy:matrix.orgemilywhich exacerbated the amount of work that had to be done to keep it working with manual backports13:41:27
@emilazy:matrix.orgemilyanother example of the former is that we have had multiple cases where old compilers would not build with new compilers13:41:56
@emilazy:matrix.orgemilydue to them getting more strict13:41:59
@emilazy:matrix.orgemily so since everything roots to a new compiler in the stdenv bootstrap, we had to backport patches to fix that as well 13:42:18
@bake.monorail:matrix.orgbake.monorailI can understand the others, but in my experience this is not something tragic to do and it's worthwhile, at least with LLVM.13:43:45
@bake.monorail:matrix.orgbake.monorail but yeah, I was thinking of making a PR to enable manually overriding compiler versions (see the versions.nix thing above), letting whoever hacks with handle it, but at least in a way that does not require forking. 13:44:32
@emilazy:matrix.orgemilyit is maintenance burden however you slice it, and I can attest that it was a very frustrating way to spend our limited maintenance resources for very little benefit13:44:37
@bake.monorail:matrix.orgbake.monorailfair fair13:45:51
@emilazy:matrix.orgemilyI considered https://github.com/NixOS/nixpkgs/pull/440273, https://github.com/NixOS/nixpkgs/pull/435019, and all the PRs linked from them to be worth the effort to do compared to what carrying many EOL compilers has been like, despite them taking like 2 months in total13:46:00

Show newer messages


Back to Room ListRoom Version: 6