about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/mpich
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2024-01-20 12:31:50 +0100
committerAlyssa Ross <hi@alyssa.is>2024-01-20 12:32:25 +0100
commitb7baf40e099b4215181fe7b0c63083b12ef2c7fb (patch)
treea6efabd31d05b6d0a36624729e80377bbbfb0149 /nixpkgs/pkgs/development/libraries/mpich
parent710028664e26e85cb831a869b3da9f6993902255 (diff)
parent0799f514b1cd74878174939df79ac60ca5036673 (diff)
downloadnixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.gz
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.bz2
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.lz
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.xz
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.tar.zst
nixlib-b7baf40e099b4215181fe7b0c63083b12ef2c7fb.zip
Merge branch 'nixos-unstable-small' of https://github.com/NixOS/nixpkgs
Conflicts:
	nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/mpich')
-rw-r--r--nixpkgs/pkgs/development/libraries/mpich/default.nix21
1 files changed, 17 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/development/libraries/mpich/default.nix b/nixpkgs/pkgs/development/libraries/mpich/default.nix
index 622ee233f9c4..f53a3268b739 100644
--- a/nixpkgs/pkgs/development/libraries/mpich/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mpich/default.nix
@@ -3,10 +3,19 @@
 # either libfabric or ucx work for ch4backend on linux. On darwin, neither of
 # these libraries currently build so this argument is ignored on Darwin.
 , ch4backend
-# Process manager to build
-, withPm ? "hydra:gforker"
+# Process managers to build (`--with-pm`),
+# cf. https://github.com/pmodels/mpich/blob/b80a6d7c24defe7cdf6c57c52430f8075a0a41d6/README.vin#L562-L586
+, withPm ? [ "hydra" "gforker" ]
+, pmix
+# PMIX support is likely incompatible with process managers (`--with-pm`)
+# https://github.com/NixOS/nixpkgs/pull/274804#discussion_r1432601476
+, pmixSupport ? false
 } :
 
+let
+  withPmStr = if withPm != [ ] then builtins.concatStringsSep ":" withPm else "no";
+in
+
 assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
 
 stdenv.mkDerivation  rec {
@@ -22,11 +31,12 @@ stdenv.mkDerivation  rec {
 
   configureFlags = [
     "--enable-shared"
-    "--enable-sharedlib"
-    "--with-pm=${withPm}"
+    "--with-pm=${withPmStr}"
   ] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
     "FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300
     "FCFLAGS=-fallow-argument-mismatch"
+  ] ++ lib.optionals pmixSupport [
+    "--with-pmix=${lib.getDev pmix}"
   ];
 
   enableParallelBuilding = true;
@@ -45,6 +55,9 @@ stdenv.mkDerivation  rec {
   '';
 
   meta = with lib; {
+    # As far as we know, --with-pmix silently disables all of `--with-pm`
+    broken = pmixSupport && withPm != [ ];
+
     description = "Implementation of the Message Passing Interface (MPI) standard";
 
     longDescription = ''