Nixpkgs Stdenv | 229 Members | |
| 74 Servers |
| Sender | Message | Time |
|---|---|---|
| 12 Nov 2024 | ||
| so to make the patch unconditional the logic probably has to move deeper into the guts | 22:42:01 | |
| also, it's kind of bad on Linux too, though hard to see how to easily remove it without regressing the issue with unwrapped compilers | 22:42:16 | |
* I think you want a Darwin hostPlatform (because of the patch conditional) and compare say {Linux, Darwin} × {x86-64, AArch64} for the target | 22:42:30 | |
* the -nostdlibinc patch will be a pain. it's a hack that we have to skip on Darwin because it doesn't help us and it breaks stuff. but it's a hack that works by patching the command-line parsing | 22:42:43 | |
In reply to @p14:matrix.org I’m comparing | 22:44:27 | |
| If I set | 22:45:00 | |
(also in case it was missed, this is on a branch where Randy makes the Darwin patch check unconditional, so can't expect to reproduce those results with a Darwin hostPlatform currently) | 22:45:34 | |
* (also in case it was missed, this is on a branch where Randy makes the Darwin patch check unconditional and removes the stdenv rpath stuff, so can't expect to reproduce those results with a Darwin hostPlatform currently) | 22:45:50 | |
| https://github.com/NixOS/nixpkgs/blob/45d55abd3964711133c2c3bdfdae82e178e9ce55/pkgs/stdenv/darwin/default.nix#L1262-L1278 | 22:47:28 | |
| If clang is correctly setting itself up as a multi-target compiler, should that be overlaid unconditionally? | 22:47:45 | |
| Or at least the LLVM portion. I don’t know about the Darwin binutils stuff. | 22:48:01 | |
| That allows | 22:48:31 | |
| 13 Nov 2024 | ||
In reply to @reckenrode:matrix.orgNot clear to me. The unwrapped clang can be; but llvmPackages contains wrapped clangs which embed information about the targetPlatform, right? | 17:42:07 | |
In reply to @p14:matrix.orgAssuming the targetPlatform stuff gets dropped, so the same Clang can be used for all cross builds. | 18:11:41 | |
In reply to @reckenrode:matrix.orgSame llvmPackages.clang.cc but not same llvmPackages.clang. | 18:12:48 | |
| https://github.com/NixOS/nixpkgs/blob/45d55abd3964711133c2c3bdfdae82e178e9ce55/pkgs/stdenv/darwin/default.nix#L306_L326 | 18:13:11 | |
| * | 18:13:42 | |
| @p14:matrix.org: Just double-checked what’s overlaid. See above. Only those packages are overlaid. No wrappers are included in those packages. | 18:14:35 | |
| Ah cool. That was opaque to me, thanks for explaining! | 18:15:21 | |
| I wish we had a simpler llvmPackages extend expression. | 18:15:37 | |
| The Darwin stdenv uses functions to group overrides for the stdenv bootstrap (and provide consistency between stages). That stuff is new with the rework. The wrapper won’t be overlaid because it’s not in those functions. | 18:16:27 | |
| Darwin bintools can target either Darwin platform, so it probably ought to be overlaid as well (but not the wrapper, of course). | 18:17:02 | |
| Of course, once the LLVM/Clang fixes are merged. | 18:17:20 | |
| I'll try taking a look at those PR's tonight and tomorrow | 19:18:46 | |
| I'd appreciate any input on ideas for where I might put an assert / how to implement an assert that clang.cc == pkgsStatic.stdenv.cc.cc == pkgsLLVM.stdenv.cc.cc for https://github.com/NixOS/nixpkgs/pull/355532. I figure I can't just put one in the expression for every eval since we don't want to be evaluating stuff unnecessarily, so presumably it should go into a release test of some sort; but is there anything I can use for precommit? | 19:56:39 | |
| I think it could go into stdenv. that doesn't sound like an expensive check to eval all the time | 20:03:44 | |
though it should probably be .outPath | 20:03:50 | |
| since comparing derivations is mildly evil I think | 20:03:56 | |
| +1 on outPath; but I'm thinking that evaling some cross derivation surely involves a substantial amount of additional eval you otherwise don't need. | 20:13:20 | |
| oh, sorry, I only skimmed the message and missed the cross package sets | 20:13:52 | |