[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:
https://svn.nixos.org/repos/nix/nixpkgs/trunk/pkgs/build-support/gcc-wrapper/ld-wrapper.sh
[*] 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”:
https://svn.nixos.org/repos/nix/hydra-config/gnu/trunk/libtool/release.nix
> ./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. :-)
Thanks,
Ludo’.
pgpFOxHM1gB3S.pgp
Description: PGP signature