diff --git a/pkgs/gpi-2/default.nix b/pkgs/gpi-2/default.nix index a341f369..428a270b 100644 --- a/pkgs/gpi-2/default.nix +++ b/pkgs/gpi-2/default.nix @@ -9,7 +9,6 @@ , automake , libtool , mpi -, rsync , gfortran }: @@ -44,13 +43,24 @@ stdenv.mkDerivation rec { configureFlags = [ "--with-infiniband=${rdma-core-all}" - "--with-mpi=${mpiAll}" + "--with-mpi=yes" # fixes mpi detection when cross-compiling "--with-slurm" "CFLAGS=-fPIC" "CXXFLAGS=-fPIC" ]; - buildInputs = [ slurm mpiAll rdma-core-all autoconf automake libtool rsync gfortran ]; + nativeBuildInputs = [ + autoconf + automake + gfortran + libtool + ]; + + buildInputs = [ + slurm + mpiAll + rdma-core-all + ]; hardeningDisable = [ "all" ]; @@ -60,5 +70,6 @@ stdenv.mkDerivation rec { maintainers = with lib.maintainers.bsc; [ rarias ]; platforms = lib.platforms.linux; license = lib.licenses.gpl3Plus; + cross = false; # infiniband detection does not work }; } diff --git a/pkgs/mpich/default.nix b/pkgs/mpich/default.nix index 1afa9b71..ec2eede4 100644 --- a/pkgs/mpich/default.nix +++ b/pkgs/mpich/default.nix @@ -6,6 +6,13 @@ , pmix , gfortran , symlinkJoin +# Disabled when cross-compiling +# To fix cross compilation, we should fill the values in: +# https://github.com/pmodels/mpich/blob/main/maint/fcrosscompile/cross_values.txt.in +# For each arch +, enableFortran ? stdenv.hostPlatform == stdenv.buildPlatform +, perl +, targetPackages }: let @@ -15,10 +22,13 @@ let paths = [ pmix.dev pmix.out ]; }; in mpich.overrideAttrs (old: { - buildInput = old.buildInputs ++ [ + buildInputs = old.buildInputs ++ [ libfabric pmixAll ]; + nativeBuildInputs = old.nativeBuildInputs ++ [ + perl + ]; configureFlags = [ "--enable-shared" "--enable-sharedlib" @@ -31,10 +41,21 @@ in mpich.overrideAttrs (old: { ] ++ lib.optionals (lib.versionAtLeast gfortran.version "10") [ "FFLAGS=-fallow-argument-mismatch" # https://github.com/pmodels/mpich/issues/4300 "FCFLAGS=-fallow-argument-mismatch" + ] ++ lib.optionals (!enableFortran) [ + "--disable-fortran" ]; + + preFixup = '' + sed -i 's:^CC=.*:CC=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' $out/bin/mpicc + sed -i 's:^CXX=.*:CXX=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++:' $out/bin/mpicxx + '' + lib.optionalString enableFortran '' + sed -i 's:^FC=.*:FC=${targetPackages.gfortran or gfortran}/bin/${targetPackages.gfortran.targetPrefix or gfortran.targetPrefix}gfortran:' $out/bin/mpifort + ''; + hardeningDisable = [ "all" ]; meta = old.meta // { maintainers = old.meta.maintainers ++ (with lib.maintainers.bsc; [ rarias ]); + cross = true; }; }) diff --git a/pkgs/osu/default.nix b/pkgs/osu/default.nix index a1aa6450..b35fad9b 100644 --- a/pkgs/osu/default.nix +++ b/pkgs/osu/default.nix @@ -32,6 +32,11 @@ stdenv.mkDerivation rec { "CXX=mpicxx" ]; + env = { + MPICH_CC="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"; + MPICH_CXX="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"; + }; + postInstall = '' mkdir -p $out/bin for f in $(find $out -executable -type f); do @@ -44,5 +49,6 @@ stdenv.mkDerivation rec { homepage = "http://mvapich.cse.ohio-state.edu/benchmarks/"; maintainers = [ ]; platforms = lib.platforms.all; + cross = true; }; } diff --git a/pkgs/sonar/default.nix b/pkgs/sonar/default.nix index 36a5ef8a..ac062a60 100644 --- a/pkgs/sonar/default.nix +++ b/pkgs/sonar/default.nix @@ -35,5 +35,6 @@ stdenv.mkDerivation rec { maintainers = with lib.maintainers.bsc; [ rarias ]; platforms = lib.platforms.linux; license = lib.licenses.mit; + cross = true; }; } diff --git a/pkgs/tagaspi/default.nix b/pkgs/tagaspi/default.nix index 5f1d7340..94c28e37 100644 --- a/pkgs/tagaspi/default.nix +++ b/pkgs/tagaspi/default.nix @@ -5,23 +5,14 @@ , automake , autoconf , libtool -, mpi , autoreconfHook , gpi-2 , boost , numactl , rdma-core , gfortran -, symlinkJoin }: -let - mpiAll = symlinkJoin { - name = "mpi-all"; - paths = [ mpi.all ]; - }; -in - stdenv.mkDerivation rec { pname = "tagaspi"; enableParallelBuilding = true; @@ -35,16 +26,18 @@ stdenv.mkDerivation rec { hash = "sha256-RGG/Re2uM293HduZfGzKUWioDtwnSYYdfeG9pVrX9EM="; }; - buildInputs = [ + nativeBuildInputs = [ autoreconfHook automake autoconf libtool + gfortran + ]; + + buildInputs = [ boost numactl rdma-core - gfortran - mpiAll ]; dontDisableStatic = true; @@ -63,5 +56,6 @@ stdenv.mkDerivation rec { maintainers = with lib.maintainers.bsc; [ rarias ]; platforms = lib.platforms.linux; license = lib.licenses.gpl3Plus; + cross = false; # gpi-2 cannot cross }; } diff --git a/pkgs/tampi/default.nix b/pkgs/tampi/default.nix index 15e48dee..16b2e4b6 100644 --- a/pkgs/tampi/default.nix +++ b/pkgs/tampi/default.nix @@ -68,5 +68,6 @@ in stdenv.mkDerivation { maintainers = with lib.maintainers.bsc; [ rarias ]; platforms = lib.platforms.linux; license = lib.licenses.gpl3Plus; + cross = true; }; }