!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

189 Members
59 Servers

Load older messages


SenderMessageTime
27 Jun 2025
@emilazy:matrix.orgemilynot quite – there are reasons to forego standard headers and libraries even on a hosted platform21:05:39
@emilazy:matrix.orgemily but the obvious example is that glibc for aarch64-unknown-linux-gnu is of course built without glibc :) 21:05:50
@emilazy:matrix.orgemily(but is definitely not building for bare metal)21:06:03
@emilazy:matrix.orgemily pkgs/build-support/bintools-wrapper/ld-wrapper.sh has an example of gnarly non-trivial logic we have in wrappers around the rpath stuff 21:08:27
@rosscomputerguy:matrix.orgTristan Ross
In reply to @sielicki:matrix.org
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
This is something that's in the pipeline of changes we're working on. Hopefully soon we'll have some movement.
21:23:25
@emilazy:matrix.orgemilyit… is? :)21:27:44
@emilazy:matrix.orgemily I'm not aware of any current work on that front (for C-family languages I'm not sure it's a good idea to split up, though stdenvNoCC by default would obviously be great but is a hugely breaking change for external users) 21:28:07
@rosscomputerguy:matrix.orgTristan Ross
In reply to @emilazy:matrix.org
I'm not aware of any current work on that front (for C-family languages I'm not sure it's a good idea to split up, though stdenvNoCC by default would obviously be great but is a hugely breaking change for external users)
We've already got split GCC on the way and so far, it's doing good.
21:35:20
@rosscomputerguy:matrix.orgTristan RossI was thinking of having derivations which mirror the toolchain attributes21:35:46
@rosscomputerguy:matrix.orgTristan Ross So cc is your C/C++ compiler while cxxlib would be your C++ std implementation. 21:36:19
@rosscomputerguy:matrix.orgTristan Ross Ik it's something I've talked to Jon about 21:37:22
@rosscomputerguy:matrix.orgTristan RossAnd it's in the stdenv & CC improvements plan21:37:39
28 Jun 2025
@reckenrode:matrix.orgRandy EckenrodeI’ve been wondering if we should generate a sysroot when setting up the stdenv and point the compiler to that. It would simplify the Darwin SDK and let me drop some workarounds in the Swift compiler.00:30:39
@reckenrode:matrix.orgRandy Eckenrode I would also like to see the stdenv not assume a C compiler and require it (and autotools/make support) to be added just like for every other language and build system. 00:33:07
@rosscomputerguy:matrix.orgTristan Ross Yeah, it'll be great to disconnect stdenv and cc 00:33:53
@rosscomputerguy:matrix.orgTristan Rosshttps://github.com/NixOS/nixpkgs/pull/409851 this is a part of that work00:34:47
@emilazy:matrix.orgemily
In reply to @reckenrode:matrix.org
I’ve been wondering if we should generate a sysroot when setting up the stdenv and point the compiler to that. It would simplify the Darwin SDK and let me drop some workarounds in the Swift compiler.
I think that would help, yes. have you seen Clang's support for per-target config files?
08:24:50
@emilazy:matrix.orgemilythose will be another piece of the puzzle08:24:56
@reckenrode:matrix.orgRandy Eckenrode
In reply to @emilazy:matrix.org
I think that would help, yes. have you seen Clang's support for per-target config files?
No. I was assuming we would do that then pass it with -sysroot (or whatever it is).
11:06:30
@reckenrode:matrix.orgRandy EckenrodeIf Clang lets us specify it in a config file, that’s better.11:06:50
@emilazy:matrix.orgemilyhttps://clang.llvm.org/docs/UsersManual.html#configuration-files we can set an env variable to a directory that it will automatically load a file with command line args from based on language and target11:10:06
@emilazy:matrix.orgemilythat doesn't quite solve cases where we have more complex logic based on other parameters or environment variables, but it is a substantial chunk of the no-compiler-wrappers puzzle11:11:35
@emilazy:matrix.orgemilyand we could hopefully work with LLVM to find ways to eliminate as much custom logic as possible and find ways to move the rest into LLVM drivers11:12:34
@emilazy:matrix.orgemily I am not sure if the files support environment variable references but if they do then we could presumably do things like -mmacosx-min-version=$MACOSX_DEPLOYMENT_TARGET_salt etc. 11:14:44
@emilazy:matrix.orgemilythough doesn't quite help for static SDL stuff which may be the only remaining reason to care about salts for Darwin soon :P11:15:38
@emilazy:matrix.orgemily*SDK11:15:43
@emilazy:matrix.orgemily if someone wanted to prototype this I think it should be possible to make a derivation that extracts the relevant flag files from cc-wrapper and writes them into a directory with config files like this for all three platforms, and then you could try arranging an stdenv that exposed unwrapped LLVM directly with the relevant path variable set 11:18:38
@emilazy:matrix.orgemily since it searches for a file without the triple we can use it to implement a default target too although obviously we'd ideally prefer always passing a target - we can do always-prefixed compilers without wrappers because I believe that Clang interprets being invoked through a foo-clang symlink like clang -target foo 11:21:13
@emilazy:matrix.orgemily(but ideally you'd want the multi target Clang lying around as well - not sure if you can configure it to refuse to build without being given an explicit target but that sounds very much like something we could work with upstream on)11:22:16
@emilazy:matrix.orgemilyI'm not sure how we'd achieve the libc vs. no libc flags stuff but maybe we can do away with it if we use the correct include flags etc.11:26:23

Show newer messages


Back to Room ListRoom Version: 9