| 10 Nov 2024 |
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 |
emily | gcc = stdenv.cc ≠ gcc13 | 19:26:00 |
Alyssa Ross | Oh that's actually good then? | 19:26:07 |
Alyssa Ross | We can leave gcc13 alone | 19:26:18 |
emily | in that the override should just be in stdenv and nowhere else? | 19:26:21 |
Alyssa Ross | Yeah | 19:26:24 |
emily | I guess so, but when I see gcc = pkgs.${"gcc${toString default-gcc-version}"} I'm not expecting the two to behave differently… | 19:26:54 |
Alyssa Ross | Redacted or Malformed Event | 19:29:19 |
trofi | I agree stdenv overlay is scary in that way and requires some time to get used to it. | 21:28:29 |
p14 | It would be good to have a comment next to the gcc at least to point out that it is overlaid. Otherwise we get the confusing situation emily was in where it was necessary to first identify "this is not the gcc you are looking for" before you can even figure out any other issues. | 21:43:29 |
emily | my mental model was always that only stdenv.* has weird overlay stuff once the bootstrap is complete | 21:46:41 |
emily | but I guess that was all wrong | 21:46:45 |
| 11 Nov 2024 |
| Carlo Cabrera joined the room. | 05:03:14 |
trofi | p14: gcc is not very special. Same goes for, say, glibc (or xz). glibc is even fancier, as it's built is even earlier than gcc:
nix-repl> [ stdenv lv.stdenv gcc.stdenv xz.stdenv glibc.stdenv perl.stdenv ]
[
«derivation /nix/store/wzis3nzvh90z9jvdn0v3ixrl5qckla36-stdenv-linux.drv»
«derivation /nix/store/wzis3nzvh90z9jvdn0v3ixrl5qckla36-stdenv-linux.drv»
«derivation /nix/store/1glwz1vx32xnwc0xyg25qp8ykp4qgihn-bootstrap-stage4-stdenv-linux.drv»
«derivation /nix/store/afsnvmh8hly6gqiam1rmnxqhm1zqxas2-bootstrap-stage4-stdenv-linux.drv»
«derivation /nix/store/ivbchmrk6vr7dfg55w35h28535kmsbjz-bootstrap-stage2-stdenv-linux.drv»
«repeated»
]
| 07:04:17 |
Randy Eckenrode | In reply to @emilazy:matrix.org gcc = stdenv.cc ≠ gcc13 This was fixed for Darwin. Can it be fixed for Linux? | 14:51:42 |
Randy Eckenrode | On Darwin:
nix-repl> [ clang clang_16 llvmPackages.clang llvmPackages_16.clang stdenv.cc ]
[
«derivation /nix/store/62sadwh9mwfgxmk6kx62yia20rd1j5w4-clang-wrapper-16.0.6.drv»
«derivation /nix/store/62sadwh9mwfgxmk6kx62yia20rd1j5w4-clang-wrapper-16.0.6.drv»
«derivation /nix/store/62sadwh9mwfgxmk6kx62yia20rd1j5w4-clang-wrapper-16.0.6.drv»
«derivation /nix/store/62sadwh9mwfgxmk6kx62yia20rd1j5w4-clang-wrapper-16.0.6.drv»
«derivation /nix/store/62sadwh9mwfgxmk6kx62yia20rd1j5w4-clang-wrapper-16.0.6.drv»
]
| 14:52:25 |
emily | I don't know anything about how the overlaying works, so maybe? :) | 14:52:48 |
emily | it'd make things more convenient for me at least | 14:52:52 |
Randy Eckenrode | https://github.com/NixOS/nixpkgs/blob/db2a0eaf13018f970376297fc53b4c41df5f193f/pkgs/stdenv/darwin/default.nix#L1268-L1277 | 14:53:41 |