diff options
author | Alyssa Ross <hi@alyssa.is> | 2024-02-20 12:16:56 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2024-02-20 12:16:56 +0100 |
commit | b24d64b3b1ef897f07cd072a88a9881cb330aa7f (patch) | |
tree | a87bb2eed9af3ef1efd51dd65221d91f0c949041 /nixpkgs/pkgs/development/libraries/openmpi | |
parent | 73338df7473bb3810e70a16b8b0cba4f0f606f2b (diff) | |
parent | fa15b53dbea5028db38d6e09b4cef6eba42aeebb (diff) | |
download | nixlib-b24d64b3b1ef897f07cd072a88a9881cb330aa7f.tar nixlib-b24d64b3b1ef897f07cd072a88a9881cb330aa7f.tar.gz nixlib-b24d64b3b1ef897f07cd072a88a9881cb330aa7f.tar.bz2 nixlib-b24d64b3b1ef897f07cd072a88a9881cb330aa7f.tar.lz nixlib-b24d64b3b1ef897f07cd072a88a9881cb330aa7f.tar.xz nixlib-b24d64b3b1ef897f07cd072a88a9881cb330aa7f.tar.zst nixlib-b24d64b3b1ef897f07cd072a88a9881cb330aa7f.zip |
Merge branch 'nixos-unstable-small' of https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/openmpi')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/openmpi/default.nix | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/nixpkgs/pkgs/development/libraries/openmpi/default.nix b/nixpkgs/pkgs/development/libraries/openmpi/default.nix index a8bd8acacd59..8c54c13c9139 100644 --- a/nixpkgs/pkgs/development/libraries/openmpi/default.nix +++ b/nixpkgs/pkgs/development/libraries/openmpi/default.nix @@ -1,6 +1,6 @@ -{ lib, stdenv, fetchurl, gfortran, perl, libnl +{ lib, stdenv, fetchurl, removeReferencesTo, gfortran, perl, libnl , rdma-core, zlib, numactl, libevent, hwloc, targetPackages, symlinkJoin -, libpsm2, libfabric, pmix, ucx, ucc +, libpsm2, libfabric, pmix, ucx, ucc, makeWrapper , config # Enable CUDA support , cudaSupport ? config.cudaSupport, cudaPackages @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { find -name "Makefile.in" -exec sed -i "s/\`date\`/$ts/" \{} \; ''; - outputs = [ "out" "man" ]; + outputs = [ "out" "man" "dev" ]; buildInputs = [ zlib ] ++ lib.optionals stdenv.isLinux [ libnl numactl pmix ucx ucc ] @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { ++ lib.optional (stdenv.isLinux || stdenv.isFreeBSD) rdma-core ++ lib.optionals fabricSupport [ libpsm2 libfabric ]; - nativeBuildInputs = [ perl ] + nativeBuildInputs = [ perl removeReferencesTo makeWrapper ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ] ++ lib.optionals fortranSupport [ gfortran ]; @@ -71,24 +71,51 @@ stdenv.mkDerivation rec { postInstall = '' find $out/lib/ -name "*.la" -exec rm -f \{} \; + + for f in mpi shmem osh; do + for i in f77 f90 CC c++ cxx cc fort; do + moveToOutput "bin/$f$i" "''${!outputDev}" + echo "move $fi$i" + moveToOutput "share/openmpi/$f$i-wrapper-data.txt" "''${!outputDev}" + done + done + + for i in ortecc orte-info ompi_info oshmem_info opal_wrapper; do + moveToOutput "bin/$i" "''${!outputDev}" + done + + moveToOutput "share/openmpi/ortecc-wrapper-data.txt" "''${!outputDev}" ''; postFixup = '' + remove-references-to -t $dev $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary}) + remove-references-to -t $man $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary}) + + # The path to the wrapper is hard coded in libopen-pal.so, which we just cleared. + wrapProgram $dev/bin/opal_wrapper \ + --set OPAL_INCLUDEDIR $dev/include \ + --set OPAL_PKGDATADIR $dev/share/openmpi + # default compilers should be indentical to the # compilers at build time + echo "$dev/share/openmpi/mpicc-wrapper-data.txt" sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \ - $out/share/openmpi/mpicc-wrapper-data.txt + $dev/share/openmpi/mpicc-wrapper-data.txt + echo "$dev/share/openmpi/ortecc-wrapper-data.txt" sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \ - $out/share/openmpi/ortecc-wrapper-data.txt + $dev/share/openmpi/ortecc-wrapper-data.txt + echo "$dev/share/openmpi/mpic++-wrapper-data.txt" sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++:' \ - $out/share/openmpi/mpic++-wrapper-data.txt + $dev/share/openmpi/mpic++-wrapper-data.txt '' + lib.optionalString fortranSupport '' + echo "$dev/share/openmpi/mpifort-wrapper-data.txt" sed -i 's:compiler=.*:compiler=${gfortran}/bin/${gfortran.targetPrefix}gfortran:' \ - $out/share/openmpi/mpifort-wrapper-data.txt + $dev/share/openmpi/mpifort-wrapper-data.txt + ''; doCheck = true; |