From e3c1c3b35b4c49fa94408df8ef752e19c1163444 Mon Sep 17 00:00:00 2001 From: Dennis Gosnell Date: Tue, 9 Mar 2021 14:04:39 +0900 Subject: cudnnPackages: Remove statically linked .a files. --- pkgs/development/libraries/science/math/cudnn/generic.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'pkgs/development/libraries/science/math/cudnn') diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix index 566a17c614729..d9c19e6790c6b 100644 --- a/pkgs/development/libraries/science/math/cudnn/generic.nix +++ b/pkgs/development/libraries/science/math/cudnn/generic.nix @@ -8,6 +8,14 @@ , cudatoolkit , fetchurl , addOpenGLRunpath +, # The distributed version of CUDNN includes both dynamically liked .so files, + # as well as statically linked .a files. However, CUDNN is quite large + # (multiple gigabytes), so you can save some space in your nix store by + # removing the statically linked libraries if you are not using them. + # + # Setting this to true removes the statically linked .a files. + # Setting this to false keeps these statically linked .a files. + removeStatic ? false }: stdenv.mkDerivation { @@ -23,6 +31,8 @@ stdenv.mkDerivation { nativeBuildInputs = [ addOpenGLRunpath ]; installPhase = '' + runHook preInstall + function fixRunPath { p=$(patchelf --print-rpath $1) patchelf --set-rpath "''${p:+$p:}${lib.makeLibraryPath [ stdenv.cc.cc ]}:\$ORIGIN/" $1 @@ -35,6 +45,10 @@ stdenv.mkDerivation { mkdir -p $out cp -a include $out/include cp -a lib64 $out/lib64 + '' + lib.optionalString removeStatic '' + rm -f $out/lib64/*.a + '' + '' + runHook postInstall ''; # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found. -- cgit 1.4.1