MPICH is an implementation of the Message-Passing Interface (MPI) standard.
The goal of MPICH is to provide an MPI implementation that supports
different computation and communication platforms including commodity
clusters, high-speed networks and proprietary high-end computing systems.
It also enables cutting-edge research in MPI through an easy-to-extend
modular framework for other derived implementations.
See also <https://github.com/pmodels/mpich>.
===> The following configuration options are available for mpich-5.0.1:
DOCS=on: Build and/or install documentation
FORTRAN=on: Fortran language support
L0=off: oneAPI Level Zero support
SLURM=off: Extra Slurm support
====> Process managers
GFORKER=on: Simple local process manager
HYDRA=on: Parallel process manager
====> Default process manager: you can only select none or one of them
DGFORKER=off: Make gforker the default process manager
DHYDRA=on: Make hydra the default process manager
===> Use 'make config' to modify these settings
net/mpich: Update 4.3.1 => 4.3.2
Changelog:
https://www.mpich.org/2025/10/06/mpich-4-3-2-released/
- Switch repo to github because of Cloudflare "JS challenge" issues with
fetch on the mpich.org domain.
- Replace space with tab in CONFIGURE_ARGS.
PR: 290082
MFH: 2025Q4
net/mpich: fix build with clang 19 on i386
In bug 276035 this was already handled once, but with clang 19 on i386
we get similar link errors:
ld: error: undefined reference: __addtf3
>>> referenced by lib/.libs/libmpi.so (disallowed by
--no-allow-shlib-undefined)
ld: error: undefined reference: __gttf2
>>> referenced by lib/.libs/libmpi.so (disallowed by
--no-allow-shlib-undefined)
ld: error: undefined reference: __lttf2
>>> referenced by lib/.libs/libmpi.so (disallowed by
--no-allow-shlib-undefined)
ld: error: undefined reference: __multf3
(Only the first 15 lines of the commit message are shown above )
net/mpich: Fix build error on i386 CURRENT
A workaround existed in net/mpich for a missing feature in llvm 17.0.
The feature has been added to llvm 18.1 except for the i386 platform.
This patch adds llvm 18.1 i386 to the existing workaround.
PR: 280719
Approved by: submitter is maintainer
net/mpich: Update to 4.2.1
- Submitter becomes maintainer
- Remove bash dependency
- Restore the www doc folder
- Remove bugfix for slurm_query_node_list.c as it was fixed upstream
While I'm here:
- Remove GNU_CONFIGURE_MANPREFIX after 9fd7ee1cdf6c
ChangeLog: https://www.mpich.org/2024/04/17/mpich-4-2-1-released/
PR: 278505
net/mpich: apply the fix for clang 17 on all OSVERSION
clang-17 has been MFC’ed: do not check OSVERSION but rather COMPILER_VERSION.
PR: 276035
Reported by: pmc (at) citylink.dinoex.sub.org
net/mpich: real fix for clang-17
This replaces the previous work-around and the need of an external
compiler.
For detailed explanations, see PR 276035.
PR: 276035
net/mpich: work-around to build the dependencies on -CURRENT
Since the switch from clang-16 to 17.0.6 on -CURRENT, MPICH encounters
linker errors.
A work-around to force the usage of clang <= 16 has been introduced in
eb36006fdb70, but when the compiler has been forced to build, it must be
kept to build the dependencies.
PR: 276035
net/mpich: Revert dependency changes
Revert "net/mpich: fix build by removal of hydra from pkg-plist"
This reverts commit 531052cb22f42acc476e0b15379db24115b683f1.
Revert "net/mpich: Update dependency"
This reverts commit 78bb85928c8845e2f3ccd78dc68bd2e7184a9339.
sysutils/torque is required by mpich.
Reported by: thierry
net/mpich: fix build by removal of hydra from pkg-plist
Commit 78bb85928c8 removed the HYDRA option, but missed to remove
the files depending on that option from pkg-plist.
Approved by: portmgr (implicit)
net/mpich: Unbreak on CURRENT with base clang 17
clang version 17.0.6 causes linker errors that break the build on
15.0-CURRENT. Work around this by building with an older llvm from
ports. This patch is same as commit f25b169ac895.
Thanks to thierry@ for the hint.
net/mpich: upgrade to 4.1.2
Upgrade to 4.1.2
Release notes at <https://www.mpich.org/2023/06/08/mpich-4-1-2-released/>.
It also installs mpi_f08.mod and some other interfaces, but this requires
ISO_Fortran_binding.h to be found.
PR: 275317
Exp-run by: antoine@
Mk/Uses/mpi.mk: revert c9a111c1f2ce by marking MPICH libraries as private
Mark the libraries brought by MPICH dependencies as private, in order to
avoid to register them.
Patch provided by tijl@.
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
*/*: Remove redundant '-[0-9]*' from CONFLICTS
The conflict checks compare the patterns first against the package
names without version (as reported by "pkg query "%n"), then - if
there was no match - agsinst the full package names including the
version (as reported by "pkg query "%n-%v").
Many CONFLICTS definitions used patterns like "bash-[0-9]*" to filter
for the bash package in any version. But that pattern is functionally
identical with just "bash".
Approved by: portmgr (blanket)
net/mpich: unbreak optimized runtime after 88e134883dd2
Runtime may fail without a L0 driver like intel-compute-runtime e.g.,
$ mpivars
Abort(268484367) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init_thread:
Other MPI error, error stack:
MPIR_Init_thread(153): gpu_init failed
[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=268484367
:
system msg for write_line failure : Bad file descriptor
Attempting to use an MPI routine before initializing MPICH
$ MPIR_CVAR_ENABLE_GPU=0 mpivars
Abort(2139535) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init_thread:
Other MPI error, error stack:
MPIR_Init_thread(159)......:
(Only the first 15 lines of the commit message are shown above )
net/mpich: fix build on powerpc64
Neither __BYTE_ORDER nor __BIG_ENDIAN are defined:
In file included from src/mpi/datatype/typerep/dataloop/looputil.c:10:
./src/mpi/datatype/typerep/dataloop/looputil.h:57:2: error: This code assumes
that __BYTE_ORDER and __BIG_ENDIAN are defined
#error This code assumes that __BYTE_ORDER and __BIG_ENDIAN are defined
net/mpich: unbreak with level-zero after r560756
level-zero is pulled as a build-only dependency of intel-compute-runtime.
mpich support for level-zero is broken and uses pre-1.0 API (before r545238).
src/gpu/mpl_gpu_ze.c:123:11: warning: implicit declaration of function
'zeDriverGetMemIpcHandle' is invalid in C99 [-Wimplicit-function-declaration]
ret = zeDriverGetMemIpcHandle(global_ze_driver_handle, ptr, ipc_handle);
^
src/gpu/mpl_gpu_ze.c:139:9: warning: implicit declaration of function
'zeDriverOpenMemIpcHandle' is invalid in C99 [-Wimplicit-function-declaration]
zeDriverOpenMemIpcHandle(global_ze_driver_handle,
^
src/gpu/mpl_gpu_ze.c:140:70: error: no member named 'global_dev_id' in 'struct
_ze_ipc_mem_handle_t'
global_ze_devices_handle[ipc_handle.global_dev_id],
~~~~~~~~~~ ^
src/gpu/mpl_gpu_ze.c:141:45: error: no member named 'handle' in 'struct
_ze_ipc_mem_handle_t'
(Only the first 15 lines of the commit message are shown above )
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
Related to revision 499061 bump ports with USES=fortran to have them
benefit from the improved situation where libgcc_s is only used when
absolutely necessary.
Suggested by: tijl
net/mpich: Remove the compiler version check
It fails on science/meep for no obvious reason, and would otherwise prevent meep
from being upgraded mpich2->mpich.
Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590
Bump PORTREVISION for ports depending on the canonical version of GCC
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.
This includes ports
- featuring USE_GCC=yes or USE_GCC=any,
- featuring USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and those
- with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.
PR: 222542
Bump PORTREVISION for ports depending on the canonical version of GCC
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++11-lang,
c++14-lang, c++0x, c11, or gcc-c++11-lib.
PR: 219275
Bump PORTREVISIONs for ports depending on the canonical version of GCC and
lang/gcc which have moved from GCC 4.9.4 to GCC 5.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using using Mk/bsd.octave.mk which in turn has USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++14-lang,
c++11-lang, c++0x, c11, or gcc-c++11-lib.
PR: 216707
Bump PORTREVISIONS for ports depending on the canonical version of GCC and
lang/gcc which have moved from GCC 4.8.5 to GCC 4.9.4 (at least under some
circumstances such as versions of FreeBSD or platforms), part II.
The first part covered ports with USE_GCC=yes, USE_GCC=any, or one of
gcc-c++11-lib, openmp, nestedfct, c++11-lib as well as c++14-lang,
c++11-lang, c++0x, c11 requested via USES=compiler.
This adds ports with USES=fortran and ports using Mk/bsd.octave.mk
which in turn has USES=fortran.
PR: 214965
Reported by: thierry
Add patch to apply alignment attribute to a struct instead of a typedef.
This rounds the size of the struct to a multiple of the alignment such that
malloc and friends allocate memory with the correct alignment.
PR: 214784
MFH: 2016Q4
Update to MPICH 3.1.3
From the announcement:
This release adds several enhancements to Portals4 support, PAMI, RMA, and
ROMIO. It also contains a large number of bug fixes.
Update to MPICH 3.1.2
From the announcement:
This release contains significant enhancements to the BG/Q device,
especially for RMA and shared memory functionality. It also contains
enhancements to ROMIO and upgrades hwloc to 1.9. In addition, it updates
its weak alias support to align with gcc-4.x, has a better implementation
of MPI_Allreduce for intercommunicator, adds more F08 test cases and fixes
several bugs present in 3.1.1.
- Switch devel/hwloc to USES=libtool, drop .la files
- Bump dependent ports as .so version has changed
- Add LICENSE_FILE
- While here, fix stagedir reference in www/trafficserver
Approved by: portmgr blanket
Update to MPICH 3.1.1.
From the announcement:
This is a stable release that adds several capabilities including Blue
Gene/Q implementation supports for MPI-3, experimental Fortran 2008
bindings, significant rework of MPICH library management, and a large
number of bug fixes.
Convert all :U to :tu and :L to :tl
Since FreeBSD 8.4 and FreeBSD 9.1 make(1) do support :tu and :tl as a
replacement for :U and :L (which has been marked as deprecated)
bmake which is the default on FreeBSD 10+ only support by default
:tu/:tl a hack has been added at the time to support :U and :L to ease
migration. This hack is now not necessary anymore
Note that this makes the ports tree incompatible with make(1) from
FreeBSD 8.3 or earlier
With hat: portmgr
When linking a library libA with a library libB using libtool, if libB.la
exists, libtool will add all libraries libB.la refers to (dependency_libs
field) to the linker command line and store them in the dependency_libs
field of libA.la. So everything that subsequently links with libA will also
link to these extra libraries. This causes too much overlinking.
This commit modifies Mk/Uses/libtool.mk so it empties the dependency_libs
field in .la libraries during staging. However, because .la libraries have
very limited use when dependency_libs is empty it makes sense to completely
remove them during staging.
So with this commit USES=libtool is modified to remove .la libraries and a
new form (USES=libtool:keepla) is introduced in case they need to be kept
(dependency_libs is still emptied).
(Only the first 15 lines of the commit message are shown above )
Update the default version of GCC used in the Ports Collection from
GCC 4.6.4 to GCC 4.7.3. This entails updating the lang/gcc port as
well as changing the default in Mk/bsd.default-versions.mk.
Part II, Bump PORTREVISIONs.
PR: 182136
Supported by: Christoph Moench-Tegeder <cmt@burggraben.net> (fixing many ports)
Tested by: bdrewery (two -exp runs)
- Update to MPICH 3.1.
- Remove bash and perl dependencies.
- Make Fortran support optional.
- Add options to select process managers.
Based on suggestions made by Matthieu Volat <matthieu.volat@ujf-grenoble.fr>
Remove net/mpich. It fails to build, does not have a maintainer, no
other port depends on it, and has been superseded by net/mpich2.
Discussed with: pav
Use ${FC} instead of hard coding gfortran42 (which would need to be
gfortran43 nowadays).
Remove F77=${FC} from CONFIGURE_ENV since this provided by Mk/bsd.gcc.mk.
Add USE_GCC=4.3 since this port uses both C and Fortran frontends.
- Remove the DESTDIR modifications from individual ports as we have a new,
fully chrooted DESTDIR, which does not need such any more.
Sponsored by: Google Summer of Code 2007
Approved by: portmgr (pav)
Add support for DESTDIR part I.
This commit should largele be a NOOP as it only adds support
for DESTDIR undefined. This does allow us to start testing
ports with DESTDIR set, but this is as of yet not supported.
Although this has been extensively tested on pointyhat, this
is a very intrusive change and some cases may have been
overlooked. Please contact Gabor and me if you find any.
PR: 100555
Submitted by: gabor
Sponsored by: Google Summer of Code 2006
Upgrade to 1.2.6 and fix building problems by upgrading from jdk13 to
jdk14.
With some cleaning to pet portlint.
Remark: java is disabled when PACKAGE_BUILDING.
PR: ports/79279
Submitted by: maintainer