[Nix-dev] breaking an infinite loop between gcc and glibc

Lluís Batlle viriketo at gmail.com
Sat Mar 6 16:41:52 CET 2010


2010/3/3 Rohan Hart <rohan.hart17 at gmail.com>:
> I've been building all of a minimal Nixos using the gold linker and
> have run into an issue that has me stumped.
>
> glibc can not currently be built with gold so I've tried to
> overrideGCC to one wrapped using the original binutils, which works
> for other derivations.  Unfortunately the dependency of gcc on glibc
> creates an infinite loop.  To break this I'd like to use the default
> gcc but replace only the binutils in use.  Not unexpectedly the
> gcc-wrapper used to build glibc still wants to use gold.

Sorry I did not answer before. I will try to keep this thread alive.

You may take a look on how is stdenv bootstrapped: pkgs/stdenv/linux/default.nix

You will see that nixpkgs is used there with some special stdenvs,
starting from the basic 'bootstrap-tools', building first the nixpkgs
binutils with the bootstrap-tools, then the nixpkgs glibc with those
binutils and the bootstrap-tools gcc, and then building the nixpkgs
gcc with the new glibc and the bootstrap-tools gcc.

Then, in nixpkgs, there are special mentions to the glibc and gcc
attributes, through the "useFromStdenv", to not fall into infinite
loops.

I understand that you want to use all around gold, but not in the
glibc building. The glibc used to build usual nixpkgs packages is
built in the bootstrap process of stdenv-linux I pointed. It's there
where you need to mention the proper binutils. You may want to modify
that bootstrap process, so the glibc is there built with non-gold
binutils.

Best regards,
Lluís.



More information about the nix-dev mailing list