From eadcd4462d4a626219c27fd53aaf85f52f3b10cd Mon Sep 17 00:00:00 2001 From: LluĂ­s Batlle i Rossell Date: Mon, 23 Nov 2009 23:16:40 +0000 Subject: 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 --- pkgs/stdenv/adapters.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'pkgs/stdenv/adapters.nix') 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; -- cgit 1.4.1