!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

230 Members
75 Servers

Load older messages


SenderMessageTime
25 Nov 2024
@emilazy:matrix.orgemilyit doesn't address trofi's concern, which comes up within a GCC build21:59:30
@alex:tunstall.xyzAlexRight, I see now. Nix needs a DAG but it requires hacking into the GCC build system to untangle libstdc++ from g++.22:00:54
@trofi:matrix.orgtrofi Yeah, or patching built binaries after the fact to redirect to fresher libstdc++. 22:23:26
26 Nov 2024
@yannis:mozilla.org@yannis:mozilla.org changed their display name from yannis|pto_back_nov_26 to yannis.07:49:11
27 Nov 2024
@Ericson2314:matrix.orgJohn Ericson
In reply to @trofi:matrix.org
g++ uses libstdc++.so as part of it's implementation. libstdc++ uses g++ to build itself. It's not directly related to the seed. Even after you got the seed you need to build both of those. You need to build both in a single derivation to get them linked against one another (gcc usually builds it in 2 stages internally to untagle from builder's gcc/libstdc++.so, which nixpkgs disables and suffers afterwards, fresh example is https://github.com/NixOS/nixpkgs/issues/342904).
I think it is still related
06:34:27
@Ericson2314:matrix.orgJohn EricsonNix wants a dag, but the from-scratch bootstrap forces a dag06:34:38
@Ericson2314:matrix.orgJohn Ericsonin practice, reality does dictate it's a dag06:34:47
@Ericson2314:matrix.orgJohn Ericsonthe way the world get around that in practice is bootstrapping to a fixed point06:35:02
@Ericson2314:matrix.orgJohn Ericson * the way the world get around that in practice is bootstrapping to a fixed point, either byte-for-byte or just the ABI06:35:20
@Ericson2314:matrix.orgJohn Ericson
In reply to @philiptaron:matrix.org

I'm up for a Zoom or other video meetup.

Here's the list of things I'm tracking in stdenv world.

  1. __structuredAttrs https://github.com/NixOS/nixpkgs/issues/205690. Mostly driven by @wolfgangwalthier. Thank you!
  2. Various improvements to fetchgit,fetchGitHub, etc, mostly around rev vs. tag to increase the expressiveness of the function.
  3. Improvements to nixpkgs configuration options to document and regularize those options (https://github.com/NixOS/nixpkgs/pull/330753, but the PR author has left nixpkgs)
  4. Structured logging (@nix { "action": "msg", "level": "1", "msg": ...}) support in the stdenv. https://github.com/NixOS/nixpkgs/pull/331794
  5. Thorough removal of substituteAll in the nixpkgs codebase: https://github.com/NixOS/nixpkgs/issues/237216
  6. Continued progress on clarifying what the environment is and what guarantees are possible across "releases".
  7. Linters and checkers (like nixpkgs-vet) that assist with in-tree and out-of-tree users to provide diagnostics and migrations for necessary changes.
  8. Breaking apart the knot of bootstrapping on every platform to enable a stdenv that's "bootstrap-free" -- not strangely constrained by bootstrap concerns, but able to be changed without breaking bootstrap.
  9. Making sense of how cross-compilation depends and does not depend on stdenv. (This is a personal goal, since I just don't understand it today.)

There are other small things, but this is the majority effort.

Good list! Would like to we the GCC repackaging on that list too :)
06:35:57
@emilazy:matrix.orgemilywhat repackaging?06:36:33
@trofi:matrix.orgtrofi
In reply to @Ericson2314:matrix.org
in practice, reality does dictate it's a dag
It's a DAG from build step standpoint. But from installation directory standpoint gcc's own bootstrap allows installing libstdc++ and gcc multiple times to make sure both are using one another. nix does not allow for in place file updates and one has to resort to file copies from one store path into another and requires binary patching to achieve the same effect (which is fragile for self-references and effectively requires CA compatibility as a precondition).
06:56:31
@trofi:matrix.orgtrofi Luckily gcc is CA-compatible, but glibc is not. As a result I have to use hacks like https://bpa.st/raw/5QWA just to make glibc work in CA (and in cases when I have to rewrite references to relocate glibc) :) 07:02:13
@emilazy:matrix.orgemily __FILE__ has been a persistent painful cause of "trivial" self-references / unwanted references for me lately 07:08:30
@emilazy:matrix.orgemilynot even with CA derivations07:08:33
@trofi:matrix.orgtrofiAt least macro expansion should be worked around by https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/gcc/patches/13/mangle-NIX_STORE-in-__FILE__.patch10:50:46
@Ericson2314:matrix.orgJohn Ericson emily: I was working on a branch with Philip Taron (UTC-8) that builds GCC in parts like we do with LLVM 15:03:08
@Ericson2314:matrix.orgJohn Ericsonwe are both pressed for time, but I very much want to see it done, as it cuts down on rebuilds and makes cross sane15:03:26
@jopejoe1:matrix.orgjopejoe1 (4094@39c3) changed their display name from jopejoe1 to jopejoe1 [4094].18:17:59
@emilazy:matrix.orgemilyI see19:10:12
@emilazy:matrix.orgemily fwiw we probably need to un-split some LLVM stuff since some of it is pretty broken. e.g. Clang having separate lib output breaks unwrapped compilers 19:10:38
28 Nov 2024
@shawn8901:matrix.orgshawn8901 left the room.18:48:46
@shawn8901:matrix.orgshawn8901 joined the room.18:50:23
1 Dec 2024
@shawn8901:matrix.orgshawn8901 left the room.00:08:07
10 Dec 2024
@rosscomputerguy:matrix.orgTristan Ross https://crab.fit/nixpkgs-stdenv-team-meeting-699727 made a crab fit thing to find the availability of everyone so we can work on our updates to give to the SC. 05:33:42
@p14:matrix.orgp14

Minor quality of life improvements:

  • https://github.com/NixOS/nixpkgs/pull/363852
  • https://github.com/NixOS/nixpkgs/pull/363855
09:12:53
11 Dec 2024
@dminca:matrix.org@dminca:matrix.org left the room.14:19:13
12 Dec 2024
@truby:matrix.orgtruby I'm trying to work out how to get a libcxxStdenv where my C++ dependencies are also built with libc++. I was thinking something along the lines of https://gist.github.com/DavidTruby/d0364e1637074a983a167fcecedd5847 but I couldn't get this to compile (fails to compile gettext)
Am I even thinking along the right lines here?
17:46:50
@p14:matrix.orgp14
In reply to @truby:matrix.org
I'm trying to work out how to get a libcxxStdenv where my C++ dependencies are also built with libc++. I was thinking something along the lines of https://gist.github.com/DavidTruby/d0364e1637074a983a167fcecedd5847 but I couldn't get this to compile (fails to compile gettext)
Am I even thinking along the right lines here?
Yes. The problem is that gettext doesn’t support the newer llvm compiler. You could introduce an overlay to set llvmPackages = self.llvmPackages_17 (or whatever version is needed to build gettext)
18:10:30
@truby:matrix.orgtrubyI thought the latest gettext fixed that? or has that not made it into nixpkgs yet?18:12:00

Show newer messages


Back to Room ListRoom Version: 9