summary refs log tree commit diff
path: root/pkgs/stdenv/adapters.nix
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2009-11-23 23:16:40 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2009-11-23 23:16:40 +0000
commiteadcd4462d4a626219c27fd53aaf85f52f3b10cd (patch)
tree487440c089207153b6ac3196fe431bc493314170 /pkgs/stdenv/adapters.nix
parentd8aa5b5db19275b428d0b2a84cf26ecf836f3a55 (diff)
downloadnixlib-eadcd4462d4a626219c27fd53aaf85f52f3b10cd.tar
nixlib-eadcd4462d4a626219c27fd53aaf85f52f3b10cd.tar.gz
nixlib-eadcd4462d4a626219c27fd53aaf85f52f3b10cd.tar.bz2
nixlib-eadcd4462d4a626219c27fd53aaf85f52f3b10cd.tar.lz
nixlib-eadcd4462d4a626219c27fd53aaf85f52f3b10cd.tar.xz
nixlib-eadcd4462d4a626219c27fd53aaf85f52f3b10cd.tar.zst
nixlib-eadcd4462d4a626219c27fd53aaf85f52f3b10cd.zip
Making, in cross-builds, every buildInput a propagatedBuildInput. We need
this because 'ld' wants to know the path of every library involved in a dynamic
linking. I imagine that ld does not need that in native builds because it can
call the loader for it to resolve the library rpaths, but this is not the case
for cross-building.


svn path=/nixpkgs/branches/stdenv-updates/; revision=18577
Diffstat (limited to 'pkgs/stdenv/adapters.nix')
-rw-r--r--pkgs/stdenv/adapters.nix10
1 files changed, 8 insertions, 2 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index 9789a52255e3..47486398013d 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -147,8 +147,14 @@ rec {
                       ++ nativeInputsFromBuildInputs
                       ++ [ gccCross binutilsCross ] ++
                       stdenv.lib.optional selfBuildNativeInput buildDrv;
-                    buildInputs = buildInputsDrvs;
-                    propagatedBuildInputs = propagatedBuildInputsDrvs;
+
+                    # Cross-linking dynamic libraries, every buildInput should
+                    # be propagated because ld needs the -rpath-link to find
+                    # any library needed to link the program dynamically at
+                    # loader time. ld(1) explains it.
+                    buildInputs = [];
+                    propagatedBuildInputs = propagatedBuildInputsDrvs +
+                      buildInputsDrvs;
                     propagatedBuildNativeInputs = propagatedBuildNativeInputsDrvs;
 
                     crossConfig = cross.config;