!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

552 Members
116 Servers

Load older messages


SenderMessageTime
18 Dec 2025
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)you can't keep everything always forever, that's what you use old releases of nixpkgs for 13:31:02
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)and then you can maintain that in your own repo, with your own overlays, if you're truly serious about it13:31:16
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)If it's "not that hard" as you say, then why not just keep an overlay? Not that hard either?13:31:55
@bake.monorail:matrix.orgbake.monorailI think compilers could be an exception due to their role in enabling building other software. but yeah, I feel like we're delving more on opinions rather than hard facts about what's specifically hard.13:32:16
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)I mean, provide it as an overlay or flake then if you feel that way?13:32:48
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)https://github.com/autc04/Retro6813:32:49
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)check that out13:32:52
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)the maintenance status of retro68 makes it pretty valid for inclusion in nixpkgs instead of being its own flake though13:33:11
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)whereas an out-of-date unmaintained thing is less relevant for nixpkgs inclusion13:33:30
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)still shows how you can provide all that infra just fine outside of nixpkgs though13:33:46
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)Like, overlays, overrideAttrs, override, all provide you with ways of achieving what you want to do, you can't keep everything forever in the tree13:35:37
@bake.monorail:matrix.orgbake.monorail I feel you're being a bit unnecessarily adversarial. this said, having an overlay is quite different story, since it does not enable you to reuse "private" logic from nixpkgs.
for instance, in the GCC package it's not possible to override the versions without forking (there's a "private" variable determining the versions).
13:35:42
@bake.monorail:matrix.orgbake.monorail * I feel you're being a bit unnecessarily adversarial. this said, having an overlay is a quite different story, since it does not enable you to reuse "private" logic from nixpkgs.
for instance, in the GCC package it's not possible to override the versions without forking (there's a "private" variable determining the versions).
13:36:13
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)Not at all trying to be adversarial, just stating that if you want something like you're asking for, you should maintain it in your own tree, and this is what other people do too13:36:18
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)And that there's nothing too bad about providing toolchains in overlays13:36:41
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)like providing toolchains as overlays in nix works well13:37:04
@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 @ 39c3 (DECT 94667 or 97340 or 67192) 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 @ 39c3 (DECT 94667 or 97340 or 67192) * 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 @ 39c3 (DECT 94667 or 97340 or 67192) * 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

Show newer messages


Back to Room ListRoom Version: 6