| 9 Nov 2024 |
Tristan Ross | Because the python update script fills in the template | 15:54:23 |
emily | I don't quite understand what the Nix is for but surely all the parameterization here could just be --argstr? | 15:55:43 |
Tristan Ross | It fetches the source so the hash can be determined | 15:56:55 |
Tristan Ross | The hashes are written out into a JSON file and gets imported later on | 15:57:15 |
Tristan Ross | I also didn't originally write the updater, I only changed it once I added the flutter engine built from source lol | 15:59:22 |
emily | yeah, but I mean, Nix is a programming language. you don't need to do "@foo@", you can just… take foo as an argument and pass it with --arg/--argstr when evaluating/building. | 16:06:21 |
| 10 Nov 2024 |
emily | help: is it normal that gcc and gcc13 are wrapping different GCCs (different bootstrap stages seemingly) with different options even though gcc = pkgs.${"gcc${toString 13}"} | 12:53:26 |
trofi | At least stdenv.cc is gcc :) | 16:56:41 |
emily | indeed | 16:57:25 |
emily | but I can't figure out why | 16:57:28 |
emily | some stdenv overlay stuff I don't understand, I presume? | 16:57:33 |
emily | it's breaking Alyssa's PR https://github.com/NixOS/nixpkgs/pull/344239 | 16:57:46 |
emily | this is only applying to actual gcc13, not the GCC that's actually used :/ | 16:57:56 |
emily | (also, it seems weird that the builder of the unwrapped gcc is a bootstrap tools Bash – I thought the bootstrap tools were meant to be rinsed out by the late stdenv stages?) | 16:58:19 |
trofi | gcc needs stdenv. sdtenv needs gcc. I don't think they can be defined in a single bootstrap phase. | 16:58:45 |
trofi | gcc gets clobbered by a last stage of the bootstrap: https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/linux/default.nix#L683 | 17:01:08 |
emily | makes sense | 17:03:24 |
emily | what's the correct way to adjust the wrapping options of the C compiler that's actually used? I couldn't find where the wrapping happens in the bootstrap. | 17:03:40 |
trofi | bootstrap stages use gcc attribute, that is a wrapper (compared to gcc-unwrapped compiler without a wrapper). For example here: https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/linux/default.nix#L565 . Otherwise it should use default nixpkgs definition. | 17:08:19 |
emily | "otherwise" as in, for a "complete" Nixpkgs gcc should be the same as gcc13? | 17:09:20 |
emily | because that's not what I observed :( | 17:09:38 |
trofi | "otherwise", as in in the previous bootstrap stages (there gcc usually comes as a prebuild from bootstrap-tools) | 17:12:26 |
emily | right | 17:17:16 |
emily | so I guess Alyssa's modifications need duplicating in both stdenv and gcc :/ | 17:17:31 |
emily | at least they're only temporary | 17:17:37 |
Alyssa Ross | Is it that gcc ≠ gcc13, or that gcc ≠ stdenv.cc?
| 19:24:03 |
Alyssa Ross | I assume the latter? | 19:24:50 |
Alyssa Ross | If we just overrode the flags for stdenv.cc, that would mean packages already pinned to gcc13 don't have to worry about the flags, which might be nice?
| 19:25:15 |
Alyssa Ross | Doesn't matter too much either way though I think | 19:25:22 |
emily | no | 19:25:55 |