Unverified Commit dbe006d2 authored by Markus Kowalewski's avatar Markus Kowalewski Committed by GitHub
Browse files

mpich: 4.2.2 -> 4.2.3 (#346381)

parents 4fa56ac6 37974f02
Loading
Loading
Loading
Loading
+68 −31
Original line number Diff line number Diff line
{ stdenv, lib, fetchurl, perl, gfortran
, openssh, hwloc, python3
, darwin
{
  stdenv,
  lib,
  fetchurl,
  perl,
  gfortran,
  automake,
  autoconf,
  openssh,
  hwloc,
  python3,
  darwin,
  # 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
  ch4backend,
  # Process managers to build (`--with-pm`),
  # cf. https://github.com/pmodels/mpich/blob/b80a6d7c24defe7cdf6c57c52430f8075a0a41d6/README.vin#L562-L586
, withPm ? [ "hydra" "gforker" ]
, pmix
  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
  pmixSupport ? false,
}:

let
@@ -21,29 +33,54 @@ assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");

stdenv.mkDerivation rec {
  pname = "mpich";
  version = "4.2.2";
  version = "4.2.3";

  src = fetchurl {
    url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz";
    sha256 = "sha256-iD9bs66r9ifLhJLKAqA7GR0Jg2u+D1mdhQg1EXl4HUE=";
    hash = "sha256-egGRgMUdFzitnF2NRSMU3mXoKO4kC8stH4DemmW+iKg=";
  };

  outputs = [ "out" "doc" "man" ];
  patches = [
    # Disables ROMIO test which was enabled in
    # https://github.com/pmodels/mpich/commit/09686f45d77b7739f7aef4c2c6ef4c3060946595
    # The test searches for mpicc in $out/bin, which is not yet present in the checkPhase
    # Moreover it fails one test.
    ./disable-romio-tests.patch
  ];

  outputs = [
    "out"
    "doc"
    "man"
  ];

  configureFlags = [
  configureFlags =
    [
      "--enable-shared"
      "--with-pm=${withPmStr}"
  ] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [
    ]
    ++ 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 [
    ]
    ++ lib.optionals pmixSupport [
      "--with-pmix"
    ];

  enableParallelBuilding = true;

  nativeBuildInputs = [ gfortran python3 ];
  buildInputs = [ perl openssh hwloc ]
  nativeBuildInputs = [
    gfortran
    python3
    autoconf
    automake
  ];
  buildInputs =
    [
      perl
      openssh
      hwloc
    ]
    ++ lib.optional (!stdenv.hostPlatform.isDarwin) ch4backend
    ++ lib.optional pmixSupport pmix
    ++ lib.optional stdenv.hostPlatform.isDarwin darwin.apple_sdk.frameworks.Foundation;
@@ -58,7 +95,7 @@ stdenv.mkDerivation rec {
    sed -i 's:FC="gfortran":FC=${gfortran}/bin/gfortran:' $out/bin/mpifort
  '';

  meta = with lib; {
  meta = {
    # As far as we know, --with-pmix silently disables all of `--with-pm`
    broken = pmixSupport && withPm != [ ];

@@ -74,7 +111,7 @@ stdenv.mkDerivation rec {
      url = "http://git.mpich.org/mpich.git/blob/a385d6d0d55e83c3709ae851967ce613e892cd21:/COPYRIGHT";
      fullName = "MPICH license (permissive)";
    };
    maintainers = [ maintainers.markuskowa ];
    platforms = platforms.linux ++ platforms.darwin;
    maintainers = [ lib.maintainers.markuskowa ];
    platforms = lib.platforms.linux ++ lib.platforms.darwin;
  };
}
+13 −0
Original line number Diff line number Diff line
diff --git a/src/mpi/romio/Makefile.am b/src/mpi/romio/Makefile.am
index a6429766f..658f1c563 100644
--- a/src/mpi/romio/Makefile.am
+++ b/src/mpi/romio/Makefile.am
@@ -56,7 +56,7 @@ nodist_include_HEADERS += include/mpio.h include/mpiof.h
 
 # ------------------------------------------------------------------------
 
-SUBDIRS = $(external_subdirs) . test
+SUBDIRS = $(external_subdirs)
 DIST_SUBDIRS = test test-internal $(external_dist_subdirs)
 
 # for the sake of parallel make and avoiding an excessive number of convenience