[Nix-dev] Re: mostly minimal Nixos built using gold ld where possible

Rohan Hart rohan.hart17 at gmail.com
Thu Mar 18 22:09:08 CET 2010


Hi

2010/3/18 Ludovic Courtès <ludo at gnu.org>:
> Hi,
>
> Rohan Hart <rohan.hart17 at gmail.com>
> writes:
>> Many of the package level changes are due to Gold being more strict in
>> ensuring that all symbols can be found at link time.  In most cases
>> I've simply added an LDFLAGS = ... entry in the derivation.
>
> Some of them are a bit surprising.  For instance, AFAICS, libgcrypt does
> pass ‘-lgpg-error’ when linking (see
> <http://hydra.nixos.org/build/325591/log/raw>).  Do you remember the
> details?  Could it have something to do with the magic in the GCC/ld
> wrappers?

In this particular case the error is when building the tests:

building register
/bin/sh ../libtool --tag=CC   --mode=link gcc
-I/nix/store/...-libgpg-error-1.7/include -g -O2 -fvisibility=hidden
-Wall   -o register register.o ../src/libgcrypt.la
gcc -I/nix/store/...-libgpg-error-1.7/include -g -O2
-fvisibility=hidden -Wall -o .libs/register register.o
../src/.libs/libgcrypt.so -Wl,--rpath
-Wl,/nix/store/il7qshgcxzvnb4max9k552vkij9il6lr-libgcrypt-1.4.5/lib
/nix/store/...-binutils-2.20-gold/bin/ld: register.o: in function
check_run:register.c:121: error: undefined reference to 'gpg_strerror'
/nix/store/...-binutils-2.20-gold/bin/ld: register.o: in function
check_run:register.c:127: error: undefined reference to 'gpg_strerror'
/nix/store/...-binutils-2.20-gold/bin/ld: register.o: in function
check_run:register.c:132: error: undefined reference to 'gpg_strerror'
collect2: ld returned 1 exit status
make[2]: *** [register] Error 1
make[2]: Leaving directory
`/tmp/nix-build-...-libgcrypt-1.4.5.drv-0/libgcrypt-1.4.5/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/tmp/nix-build-...-libgcrypt-1.4.5.drv-0/libgcrypt-1.4.5'
make: *** [all] Error 2

Given that someone's built all of Debian with Gold I'm surprised that
the upstream packages haven't started to configure themselves
correctly.  More bug reports to file.

>> If a hydra branch of nixpkgs was created I'd be happy to (slowly) fix
>> packages till there's a stable build.  In the mean time I'd like to be
>> able to use Nixos without multi-day compile delays  ;-)
>
> I second your request and invite you to create a branch for this!

I assume that would require a subversion branch?  And a separate channel?

> One nitpick:
>
> Instead of ‘binutilsOld’ and ‘gccOld’, which aren’t very descriptive,
> how about ‘binutilsGold’ and ‘gccGold’?

Since I made Gold the default I wanted to call that derivation simply
binutils as that lets inherit work as normal.  A better name for the
non-Gold binutils is needed.  binutilsNonGold isn't much better.  Any
suggestions?

cheers
Rohan



More information about the nix-dev mailing list