[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: git Libtool failures on NixOS

From: Ludovic Courtès
Subject: Re: git Libtool failures on NixOS
Date: Tue, 31 Aug 2010 15:20:46 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)

Hello Ralf!

Ralf Wildenhues <address@hidden> writes:

> What does NixOS do with the compiler and/or the linker and/or the
> runtime linker?

NixOS does all sorts of ugly things, which could interfere with
Libtool’s view of the world.  ;-)

The main reason is that on NixOS there are no “standard” location: /lib,
/usr/lib, and /usr/local/lib do not exist, for instance.  To work around
that, NixOS has an “ld wrapper”, which autohackily passes the right ‘-L’
and ‘-rpath’[*] flags before calling the real ld:


  [*] On NixOS this actually sets RUNPATH, not RPATH, because ld is
      configured with ‘--enable-new-dtags’.

(In theory this could also be achieved by setting $LIBRARY_PATH and
$LD_RUN_PATH, which would be cleaner.  However, the wrapper also does
other things: checking for “impurities”–references to libraries outside
/nix/store–and honoring extra environment variables.)

However, the Libtool build recipe for Hydra disables all this by setting
$NIX_DONT_SET_RPATH before running “make check”:


> ./shlibpath.at:54: if "$lt_exe" || exit 1 && exit 77; then :; else 
> lt_status=$?;           test $lt_status != 1 &&         test "X$host" != 
> "X$build" && test -x "$lt_exe" && exit 77;     exit $lt_status; fi
> stderr:
> ./m: symbol lookup error: ./m: undefined symbol: a
> stdout:
> ./shlibpath.at:68: if "$lt_exe" || exit 1; then :; else lt_status=$?;      
> test $lt_status != 1 &&         test "X$host" != "X$build" && test -x 
> "$lt_exe" && exit 77;     exit $lt_status; fi

It’s unclear to me why the lib would be found but not the symbol.

If the clues above aren’t enough to let you find out, I can try to
investigate.  :-)


Attachment: pgpFOxHM1gB3S.pgp
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]