nvidia-x11: Set 32-bit library paths for 32-bit libraries.
Patchelf was being called to point RUNPATH to 64-bit library paths even for 32-bit libraries.
This commit is contained in:
parent
0b8efd8724
commit
d1226bff8e
@ -102,7 +102,11 @@ installPhase() {
|
|||||||
do
|
do
|
||||||
# I'm lazy to differentiate needed libs per-library, as the closure is the same.
|
# I'm lazy to differentiate needed libs per-library, as the closure is the same.
|
||||||
# Unfortunately --shrink-rpath would strip too much.
|
# Unfortunately --shrink-rpath would strip too much.
|
||||||
patchelf --set-rpath "$out/lib:$libPath" "$libname"
|
if [[ -n $lib32 && $libname == "$lib32/lib/"* ]]; then
|
||||||
|
patchelf --set-rpath "$lib32/lib:$libPath32" "$libname"
|
||||||
|
else
|
||||||
|
patchelf --set-rpath "$out/lib:$libPath" "$libname"
|
||||||
|
fi
|
||||||
|
|
||||||
libname_short=`echo -n "$libname" | sed 's/so\..*/so/'`
|
libname_short=`echo -n "$libname" | sed 's/so\..*/so/'`
|
||||||
|
|
||||||
|
@ -13,8 +13,8 @@
|
|||||||
, broken ? false
|
, broken ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{ stdenv, callPackage, pkgsi686Linux, fetchurl
|
{ stdenv, callPackage, pkgs, pkgsi686Linux, fetchurl
|
||||||
, kernel ? null, xorg, zlib, perl, nukeReferences
|
, kernel ? null, perl, nukeReferences
|
||||||
, # Whether to build the libraries only (i.e. not the kernel module or
|
, # Whether to build the libraries only (i.e. not the kernel module or
|
||||||
# nvidia-settings). Used to support 32-bit binaries on 64-bit
|
# nvidia-settings). Used to support 32-bit binaries on 64-bit
|
||||||
# Linux.
|
# Linux.
|
||||||
@ -32,6 +32,8 @@ let
|
|||||||
pkgSuffix = optionalString (versionOlder version "304") "-pkg0";
|
pkgSuffix = optionalString (versionOlder version "304") "-pkg0";
|
||||||
i686bundled = versionAtLeast version "391";
|
i686bundled = versionAtLeast version "391";
|
||||||
|
|
||||||
|
libPathFor = pkgs: pkgs.lib.makeLibraryPath [ pkgs.xorg.libXext pkgs.xorg.libX11
|
||||||
|
pkgs.xorg.libXv pkgs.xorg.libXrandr pkgs.xorg.libxcb pkgs.zlib pkgs.stdenv.cc.cc ];
|
||||||
|
|
||||||
self = stdenv.mkDerivation {
|
self = stdenv.mkDerivation {
|
||||||
name = "nvidia-x11-${version}${nameSuffix}";
|
name = "nvidia-x11-${version}${nameSuffix}";
|
||||||
@ -70,7 +72,8 @@ let
|
|||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
|
|
||||||
libPath = makeLibraryPath [ xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr xorg.libxcb zlib stdenv.cc.cc ];
|
libPath = libPathFor pkgs;
|
||||||
|
libPath32 = optionalString i686bundled (libPathFor pkgsi686Linux);
|
||||||
|
|
||||||
nativeBuildInputs = [ perl nukeReferences ]
|
nativeBuildInputs = [ perl nukeReferences ]
|
||||||
++ optionals (!libsOnly) kernel.moduleBuildDependencies;
|
++ optionals (!libsOnly) kernel.moduleBuildDependencies;
|
||||||
|
Loading…
Reference in New Issue
Block a user