From 9cb1ca6d71c2e3a04660509349556cbc78bfcd93 Mon Sep 17 00:00:00 2001 From: Madoura Date: Tue, 7 Feb 2023 22:33:25 -0600 Subject: [PATCH 1/2] rocfft: fix propagatedBuildInputs typo propagatedBuildInputs has been incorrectly spelled for a while now. --- pkgs/development/libraries/rocfft/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/rocfft/default.nix b/pkgs/development/libraries/rocfft/default.nix index 6e5795cd304..cff991fe8aa 100644 --- a/pkgs/development/libraries/rocfft/default.nix +++ b/pkgs/development/libraries/rocfft/default.nix @@ -58,7 +58,7 @@ let openmp ]; - propogatedBuildInputs = lib.optionals buildTests [ + propagatedBuildInputs = lib.optionals buildTests [ fftw fftwFloat ]; From 4af7dad6255d8a61eb31bc60702df467e91a65ee Mon Sep 17 00:00:00 2001 From: Madoura Date: Tue, 7 Feb 2023 22:40:47 -0600 Subject: [PATCH 2/2] rocfft: split base outputs for hydra Split the base derivation's outputs to hopefully avoid hydra failing the base due to the output limit and not continuing with the rest. This and all hydra commits for rocfft and composable_kernel will be reverted if this does not work. --- pkgs/development/libraries/rocfft/default.nix | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/pkgs/development/libraries/rocfft/default.nix b/pkgs/development/libraries/rocfft/default.nix index cff991fe8aa..20c855d23aa 100644 --- a/pkgs/development/libraries/rocfft/default.nix +++ b/pkgs/development/libraries/rocfft/default.nix @@ -19,6 +19,11 @@ }: let + name-zero = "librocfft-device-0.so.0.1"; + name-one = "librocfft-device-1.so.0.1"; + name-two = "librocfft-device-2.so.0.1"; + name-three = "librocfft-device-3.so.0.1"; + # This is over 3GB, to allow hydra caching we separate it rf = stdenv.mkDerivation (finalAttrs: { pname = "rocfft"; @@ -26,6 +31,10 @@ let outputs = [ "out" + "libzero" + "libone" + "libtwo" + "libthree" ] ++ lib.optionals buildTests [ "test" ] ++ lib.optionals buildBenchmarks [ @@ -80,7 +89,16 @@ let "-DBUILD_CLIENTS_SAMPLES=ON" ]; - postInstall = lib.optionalString buildTests '' + postInstall = '' + mv $out/lib/${name-zero} $libzero + mv $out/lib/${name-one} $libone + mv $out/lib/${name-two} $libtwo + mv $out/lib/${name-three} $libthree + ln -s $libzero $out/lib/${name-zero} + ln -s $libone $out/lib/${name-one} + ln -s $libtwo $out/lib/${name-two} + ln -s $libthree $out/lib/${name-three} + '' + lib.optionalString buildTests '' mkdir -p $test/{bin,lib/fftw} cp -a $out/bin/* $test/bin ln -s ${fftw}/lib/libfftw*.so $test/lib/fftw @@ -113,23 +131,31 @@ let }; }); - rf-zero = runCommand "librocfft-device-0.so.0.1" { preferLocalBuild = true; } '' - cp -a ${rf}/lib/$name $out + rf-zero = runCommand name-zero { preferLocalBuild = true; } '' + cp -a ${rf.libzero} $out ''; - rf-one = runCommand "librocfft-device-1.so.0.1" { preferLocalBuild = true; } '' - cp -a ${rf}/lib/$name $out + rf-one = runCommand name-one { preferLocalBuild = true; } '' + cp -a ${rf.libone} $out ''; - rf-two = runCommand "librocfft-device-2.so.0.1" { preferLocalBuild = true; } '' - cp -a ${rf}/lib/$name $out + rf-two = runCommand name-two { preferLocalBuild = true; } '' + cp -a ${rf.libtwo} $out ''; - rf-three = runCommand "librocfft-device-3.so.0.1" { preferLocalBuild = true; } '' - cp -a ${rf}/lib/$name $out + rf-three = runCommand name-three { preferLocalBuild = true; } '' + cp -a ${rf.libthree} $out ''; in stdenv.mkDerivation { - inherit (rf) pname version outputs src passthru meta; + inherit (rf) pname version src passthru meta; + + outputs = [ + "out" + ] ++ lib.optionals buildTests [ + "test" + ] ++ lib.optionals buildBenchmarks [ + "benchmark" + ]; dontUnpack = true; dontPatch = true; @@ -140,10 +166,10 @@ in stdenv.mkDerivation { runHook preInstall mkdir -p $out/lib - cp -as ${rf-zero} $out/lib/${rf-zero.name} - cp -as ${rf-one} $out/lib/${rf-one.name} - cp -as ${rf-two} $out/lib/${rf-two.name} - cp -as ${rf-three} $out/lib/${rf-three.name} + ln -sf ${rf-zero} $out/lib/${name-zero} + ln -sf ${rf-one} $out/lib/${name-one} + ln -sf ${rf-two} $out/lib/${name-two} + ln -sf ${rf-three} $out/lib/${name-three} cp -an ${rf}/* $out '' + lib.optionalString buildTests '' cp -a ${rf.test} $test