about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNoah D. Brenowitz <nbren12@gmail.com>2021-05-06 21:08:19 -0700
committerNoah D. Brenowitz <nbren12@gmail.com>2021-05-06 21:08:19 -0700
commita3d423090b8aaa441544dc1b9a2e8bd8843f5e7c (patch)
treeb15cb34b96efad4453e810591ec733bfb1f1f51d
parente62feb3bf4a603e26755238303bda0c24651e155 (diff)
mpich: fix darwin build
The darwin build was failing because neither of the ch4backend libraries
build on darwin.

Changes:
* delete unused argument device
* pass the derivation for the ch4backend in directly rather than using
  a string to switch between two other arguments. (3 args to 1 arg)
* don't use ch4backend on Darwin

Resolves #121978
-rw-r--r--pkgs/development/libraries/mpich/default.nix13
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 8 insertions, 9 deletions
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix
index 49af2593e51ef..d2cbee14c3a09 100644
--- a/pkgs/development/libraries/mpich/default.nix
+++ b/pkgs/development/libraries/mpich/default.nix
@@ -1,15 +1,13 @@
 { stdenv, lib, fetchurl, perl, gfortran
 , openssh, hwloc, autoconf, automake, libtool
-# device options are ch3 or ch4
-, device ? "ch4"
-# backend option are libfabric or ucx
-, ch4backend ? "libfabric"
-, ucx, libfabric
+# 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"
 } :
 
-assert (ch4backend == "ucx" || ch4backend == "libfabric");
+assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
 
 stdenv.mkDerivation  rec {
   pname = "mpich";
@@ -45,8 +43,7 @@ stdenv.mkDerivation  rec {
   enableParallelBuilding = true;
 
   buildInputs = [ perl gfortran openssh hwloc ]
-    ++ lib.optional (ch4backend == "ucx") ucx
-    ++ lib.optional (ch4backend == "libfabric") libfabric;
+    ++ lib.optional (!stdenv.isDarwin) ch4backend;
 
   doCheck = true;
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d8e77bcf6d4d2..47cfb79b2c4bc 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16711,7 +16711,9 @@ in
 
   libmpc = callPackage ../development/libraries/libmpc { };
 
-  mpich = callPackage ../development/libraries/mpich { };
+  mpich = callPackage ../development/libraries/mpich {
+    ch4backend = libfabric;
+  };
 
   mstpd = callPackage ../os-specific/linux/mstpd { };