diff --git a/pkgs/by-name/cp/cp2k/package.nix b/pkgs/by-name/cp/cp2k/package.nix index 0f4533499cb4b..2c9c2d1415ed3 100644 --- a/pkgs/by-name/cp/cp2k/package.nix +++ b/pkgs/by-name/cp/cp2k/package.nix @@ -36,6 +36,7 @@ toml-f, greenx, gmp, + addDriverRunpath, enableElpa ? false, elpa, cudaPackages, @@ -168,6 +169,7 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals (gpuBackend == "cuda") [ cudaPackages.cuda_nvcc + addDriverRunpath ]; buildInputs = [ @@ -267,6 +269,14 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p $out/share/cp2k cp -r ../data/* $out/share/cp2k + # Patch RPATH so libcuda.so.1 (NVIDIA driver) is found at runtime. + # Must run before wrapProgram, which renames the original ELF binary. + ${lib.optionalString (gpuBackend == "cuda") '' + for i in $out/bin/* $out/lib/*.so*; do + addDriverRunpath "$i" || true + done + ''} + for i in $out/bin/*; do wrapProgram $i \ --set-default CP2K_DATA_DIR $out/share/cp2k \ diff --git a/pkgs/by-name/si/sirius/package.nix b/pkgs/by-name/si/sirius/package.nix index cd02c2b2ac4f9..9acbef3202114 100644 --- a/pkgs/by-name/si/sirius/package.nix +++ b/pkgs/by-name/si/sirius/package.nix @@ -80,6 +80,12 @@ stdenv.mkDerivation (finalAttrs: { # can be found across outputs. substituteInPlace cmake/siriusConfig.cmake.in \ --replace-fail "NO_DEFAULT_PATH" "" + + # src/CMakeLists.txt uses ''${CMAKE_CUDA_ARCHITECTURES} unquoted in + # set_target_properties, which breaks when multiple architectures are + # set (semicolon-separated list splits into separate arguments). + substituteInPlace src/CMakeLists.txt \ + --replace-fail 'CUDA_ARCHITECTURES ''${CMAKE_CUDA_ARCHITECTURES}' 'CUDA_ARCHITECTURES "''${CMAKE_CUDA_ARCHITECTURES}"' ''; outputs = [ diff --git a/pkgs/by-name/um/umpire/package.nix b/pkgs/by-name/um/umpire/package.nix index 4f12dd9f9fa94..ccf1cc71c2bb3 100644 --- a/pkgs/by-name/um/umpire/package.nix +++ b/pkgs/by-name/um/umpire/package.nix @@ -61,6 +61,9 @@ stdenv.mkDerivation (finalAttrs: { lib.optionals cudaSupport [ "-DENABLE_CUDA=ON" (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaPackages.flags.cmakeCudaArchitecturesString) + # The bundled camp test resource_aware_pool_tests.cpp uses brace- + # initialization syntax that nvcc cannot compile. + "-DENABLE_TESTS=OFF" ] ++ lib.optionals rocmSupport [ "-DENABLE_HIP=ON"