!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

182 Members
57 Servers

Load older messages


SenderMessageTime
27 Jun 2025
@aleksana:mozilla.orgaleksana 🏳️‍⚧️ (force me to bed after 18:00 UTC)
In reply to @rosscomputerguy:matrix.org
There's also an LLVM bump in that cycle
llvm is probably unrelated as nix has a problem too, and it's not involving aws-sdk-cpp
18:28:09
@rosscomputerguy:matrix.orgTristan RossYeah, I was thinking about that as well after I mentioned it18:28:49
@rosscomputerguy:matrix.orgTristan RossI saw there's some cc-wrapper changes but they look harmless enough, it probably is GCC like emily mentioned.18:29:20
@sielicki:matrix.orgsielicki stupid question: is there a reason that stdenvNoCC.fetchurl cannot assume builtins.fetchurl here? 19:44:01
@emilazy:matrix.orgemilyI believe https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/fetchurl/boot.nix is used for the boostrap19:45:37
@sielicki:matrix.orgsielicki
nix-repl> :e <nix/fetchurl.nix>
error: cannot open '<nix/fetchurl.nix>' in an editor because it has no physical path

i do not understand what this is

19:50:16
@sielicki:matrix.orgsielicki is <nix/*> special? 19:50:43
@emilazy:matrix.orgemilyyes, it's magic builtin stuff19:51:13
@emilazy:matrix.orgemily I think builtins.fetchurl is a wrapper around it or something (probably newer than <nix/fetchurl.nix>?) 19:51:23
@emilazy:matrix.orgemilyor vice versa19:51:24
@sielicki:matrix.orgsielicki
nix-repl> builtins.findFile builtins.nixPath "nix/fetchurl.nix"
<nix/fetchurl.nix>

turtles all the way down

19:51:40
@sielicki:matrix.orgsielicki okay, yes, it's right in the root of libexpr 19:52:25
@emilazy:matrix.orgemily actually I think the difference is that <nix/fetchurl.nix> produces an actual FOD 19:52:41
@emilazy:matrix.orgemily whereas builtins.fetchurl is a bulitin fetcher that runs at eval time 19:52:48
@emilazy:matrix.orgemilybut don't quote me on that19:52:49
@sielicki:matrix.orgsielickiit's a shame that this is so difficult to touch without catastrophic levels of rebuilds20:00:24
@emilazy:matrix.orgemily you can override stdenv for individual packages though of course for bootstrap that does not help 20:01:38
@emilazy:matrix.orgemilybut for anything early in bootstrap you can just build early bootstrap stuff when iterating since ideally it gets "washed out" past a certain point anyway20:02:12
@sielicki:matrix.orgsielicki with the current stdenv, my main complaint is that it's imprecise with respect to the languages supported. ie: there's no stdenv.cxx/stdenv.fc/stdenv.objcc/stdenv.objcxx/stdenv.nvcc/stdenv.hipcc 20:04:36
@sielicki:matrix.orgsielickithere's really no good reason that a C compiler implies a C++ compiler or vice versa. I'm looking at this in the context of generating cmake toolchains from stdenvs20:05:14
@emilazy:matrix.orgemily in an ideal world stdenvNoCC would be the default and C toolchains would be added explicitly as dependencies 20:13:49
@emilazy:matrix.orgemilyI doubt we'd realistically decouple C and C++ though20:14:00
@sielicki:matrix.orgsielicki

one of the biggest rough spots for me is in trying to setup environments between clang/gcc and libc++ vs libstdc++:

nix-repl> pkgs.stdenv.cc.libcxx # on darwin
«derivation /nix/store/clhcsg5l0lwabkniwqfgfjcfhydp0xxs-libcxx-19.1.7.drv»

nix-repl> pkgs.pkgsLinux.stdenv.cc.libcxx
null

both of these stdenvs are capable of building C++ programs

20:25:44
@emilazy:matrix.orgemily libcxx is the LLVM C++ library 20:37:24
@emilazy:matrix.orgemily on Linux we use libstdc++ by default 20:37:28
@emilazy:matrix.orgemilywell, I guess you know that :)20:37:35
@emilazy:matrix.orgemily but I'm not sure why you're looking at stdenv.cc.libcxx to begin with, what are you trying to accomplish? 20:37:44
@sielicki:matrix.orgsielickiI dunno, that's a good question. I guess my main idea here is to avoid cc-wrapper as much as possible, for build systems where it is possible. In the case of autotools, I don't see a way around cc-wrapper. But for meson or cmake, I think passing the unwrapped compiler, alongside a nix-generated toolchain, can help out in some hand-wavey way. https://github.com/sielicki/nix-cmake/blob/main/pkgs/cmake-toolchain-hook/cmake-toolchain.nix https://github.com/sielicki/nix-cmake/blob/main/pkgs/cmake-dependency-hook/cmakeBuildHook.cmake this is very rough but it's a start. 20:43:57
@emilazy:matrix.orgemilywe (or at least I) would generally like to move in the direction of fewer wrappers, but it's hard (will require upstream compiler work)20:45:12
@emilazy:matrix.orgemilysince exactly what the flags inject depends on what flags are being passed20:45:18

Show newer messages


Back to Room ListRoom Version: 9