These constants are now upstream (see
https://git.kernel.org/cgit/libs/infiniband/libibverbs.git/commit/?id=f57a9c67eabb9e7f19c624ac3c8c27b7be55796c),
so let's support them properly in Open MPI.
Added bonus: consolidating these checks up in
ompi_check_openfabrics.m4 allowed removing some custom checks and
AC_DEFINE's from the usnic configure.m4 script.
Also change the usnic/configure.m4 check for IBV_EVENT_GID_CHANGE to
use AC_CHECK_DECLS (vs. AC_CHECK_DECL).
cmr=v1.7.5:reviewer=dgoodell
This commit was SVN r30804.
- Move the ptrdiff_t tests up higher in configure.ac to be with the
rest of the type tests.
- Create new OMPI_FIND_MPI_AINT_COUNT_OFFSET for finding the
corresponding types of MPI_Aint, MPI_Count, and MPI_Offset.
Consolidate all the old C and Fortran tests into this new macro (and
.m4 file).
- Fix Fortran MPI_*_KIND tests that incorrectly keyed off assumed
types (e.g., int64_t) rather than whatever the corresponding C
MPI_Aint, MPI_Count, MPI_Offset types turned out to be.
- Add new logic to ensure that sizeof(MPI_Count) <= sizeof(size_t),
because our entire PML, BTL, and convertor infrastructure requires
this. As a side effect, just like MPI_Offset the same type of
MPI_Count (because MPI_Count has to be able to hold an MPI_Offset,
so we can't let MPI_Offset be larger than a MPI_Count).
This commit was SVN r30776.
The following Trac tickets were found above:
Ticket 4205 --> https://svn.open-mpi.org/trac/ompi/ticket/4205
This particular test can leave various <foo>.mod files in the OMPI top
build dir, which leads developers to say "what are these .mod files in
my 'svn status' output?".
So make a subdir, run the tests in there, and then remove the subdir.
Reviewed by Dave Goodell.
This is not 100% necessary for OMPI 1.7.4, but it would be nice. The
goal is to have this test removed by OMPI 1.7.5 (i.e., fix ticket
4157). So I leave it up to the RM to decide whether this goes into
1.7.4 or not.
cmr=v1.7.4:reviewer=ompi-rm1.7
This commit was SVN r30524.
Ensure that these two flags are in all of mpif.h, the mpi module, and
the mpi_f08 module. Thanks to Rolf Rabenseifner for pointing out the
issue.
cmr=v1.7.4:reviewer=ompi-rm1.7
This commit was SVN r30519.
for 32-bit architectures.
This commit also modifies _OMPI_CHECK_HEADER to use AC_CHECK_HEADERS instead
of AC_CHECK_HEADER. This allows components to check for multiple headers
instead of just one. The new semantics of the header check in OMPI_CHECK_PACKAGE
are to return success if at least one of the specified headers exists. The new
semantics will not break current usage.
cmr=v1.7.5:ticket=trac:4053
This commit was SVN r30476.
The following Trac tickets were found above:
Ticket 4053 --> https://svn.open-mpi.org/trac/ompi/ticket/4053
implementation does (that is not quite adherant to the Fortran
standard). If a compiler allows this behavior, build the mpi_f08
wrapper. For example, ifort allows it, but Pathscale/EKOPath 5.0 is
stricter in its Fortran compliance and disallows it.
This test is temporary; the real fix is to make OMPI adhere to Fortran
properly (i.e., see #4157). Once we fix#4157, this test should be
removed. The main reason for committing this test is to put it into
v1.7.4 so that we can release, but with the intent to remove it by
1.7.5 (or 1.8.x at the latest!).
Refs trac:4157
cmr=v1.7.4:reviewer=ompi-rm1.7:subject=Add mpi_f08-(non)compliance configure test
This commit was SVN r30440.
The following Trac tickets were found above:
Ticket 4157 --> https://svn.open-mpi.org/trac/ompi/ticket/4157
names longer than 32 characters.
Per discussion on the devel list starting here:
http://www.open-mpi.org/community/lists/devel/2014/01/13799.php we
need a new litmus test to disqualify older Fortran compilers (e.g.,
Pathscale 4.0.12) that *seem* to support all the Right Things, but a)
do not support BIND(C, name="super_long_name") or b) run into an
internal error when compiling our mpi_f08 module.
Testing for b) is sketchy at best. But OMPI has some BIND(C) names
that are >32 characters, and the same compilers that exhibit b) also
seem to not support BIND(C) names that are >32 characters (i.e., a)).
Hence, the following BIND(C) test checks to ensure that BIND(C,
name="foo") works, where "foo" is actually a name >32 characters.
cmr=v1.7.4:reviewer=rhc:subject=Update Fortran configure test to exclude older pathscale/open64 compilers from mpi_f08
This commit was SVN r30421.
fix the case, to enable oshmem-fortran when "with-shmem" was specified and "ompi-fortran" was enabled and happy.
fixed by Roman, reviewed by Miked
Refs trac:3763
This commit was SVN r30391.
The following Trac tickets were found above:
Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
As discovered by the nightly build, r30379 broke the case where
configure does not find a fortran compiler, and no form of
--enable-mpi-fortran was specified.
This commit specifically calls out the difference between a user
specifying that they want Fortran bindings and the default "try to
compile all the Fortran bindings" cases.
cmr=v1.7.4:ticket=4162
This commit was SVN r30386.
The following SVN revision numbers were found above:
r30379 --> open-mpi/ompi@7b28af54bb
The following Trac tickets were found above:
Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
So just take out this useless warning.
cmr=v1.7.5:ticket=4163
This commit was SVN r30383.
The following Trac tickets were found above:
Ticket 4163 --> https://svn.open-mpi.org/trac/ompi/ticket/4163
Each Fortran bindings layer builds on the other. Specifically:
* You can build just mpif.h support
* You can build mpif.h and "use mpi" support
* You can build mpif.h and "use mpi" and "use mpi_f08" support
You cannot build mpif.h and "use mpi_f08" support without also
building "use mpi" support.
This new functionality adds new capabilities to the existing
--enable-fortran-mpi switch. You can now pass the following values:
* --enable-fortran-mpi=no or none: synonyms for --disable-fortran-mpi
(i.e., build no Fortran bindings).
* --enable-fortran-mpi=mpifh: build only mpif.h support
* --enable-fortran-mpi=usempi: build mpif.h and "use mpi" support
* --enable-fortran-mpi=usempif08: build mpif.h, "use mpi", and "use
mpi_f08" support
* --enable-fortran-mpi=yes or all: synonyms for --enable-fortran-mpi
(i.e., no argument), which will attempt to build all 3 Fortran
bindings
cmr=v1.7.4:ticket=4162
This commit was SVN r30379.
The following Trac tickets were found above:
Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
The check to enable shmem fortran was too early, MPI can disable fortran but SHMEM fortran check was already done.
Refs trac:3763
This commit was SVN r30340.
The following Trac tickets were found above:
Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
Add a configure test to see if the Fortran compiler supports the
PROTECTED keyword. If it does, use in mpi-f08-types.F90 (via a macro
defined in configure-fortran-output-bottom.h).
This is needed to support the PGI 9 Fortran compiler, which does not
support the PROTECTED keyword.
Note that regardless of whether we want to support the PGI 9 Fortran
compiler + mpi_f08, we need to correctly detect whether PROTECTED
works or not, and then use that determination as a criteria for
building the mpi_f08 module. Previously, mpi-f08-types.F90 used
PROTECTED unconditionally, and we didn't test for it in configure. So
if a compiler (e.g., PGI 9) supported everything else but didn't
support PROTECTED, it would try to compile the mpi_f08 stuff and choke
on the use of PROTECTED.
Refs trac:4093
This commit was SVN r30273.
The following Trac tickets were found above:
Ticket 4093 --> https://svn.open-mpi.org/trac/ompi/ticket/4093
Just some minor updates to make some Fortran test outputs be a bit
more consistent with each other. This can definitely wait until
1.7.5, unless it causes conflicts with other changes that need to come
into 1.7.4.
cmr=v1.7.5:reviewer=dgoodell
This commit was SVN r30271.
This configure option was only relevant when we were generating TKR
"use mpi" interfaces for MPI subroutines with choice buffers. Now
that we aren't, the only interface that needs to accept a choice
buffer is MPI_SIZEOF (which we have to provide).
And since there's now only several dozen interfaces in the "mpi" TKR
module, there's no reason to not generate ''all'' possible array rank
values (when there were thousands of interfaces, generating 4-vs-7
array ranks per interface per type was a big deal). The default used
to be 4; now we can just hard-code it to 7, the max possible value for
Fortran 2003 (I think the max was raised ?to 11? in F2008, but let's
not go there for now).
cmr=v1.7.5:reviewer=dgoodell:subject=Remove even more dead Fortran configury
This commit was SVN r30257.
BIND(C), but not ''all'' of it. So expand our configure checks to
look for multiple different forms of BIND(C):
* ISO_C_BINDING
* SUBROUTINE ... BIND(C)
* TYPE, BIND(C)
* TYPE(foo), BIND(C, name="bar")
If the compiler supports all of these, then declare that we support
BIND(C), and the rest of the mpi_f08 checks can continue. If we miss
any one of those, don't bother continuing -- we won't build the
mpi_f08 module.
Also push the results of all of these tests down to ompi_info so that
they can be reported easily (e.g., "Hey, why doesn't my OMPI
installation have the mpi_f08 module?").
cmr=v1.7.4:reviewer=jsquyres:subject=Expand Fortran BIND(C) configure checks
This commit was SVN r30247.
This should have been part of r30151/#4057. Oops.
cmr=v1.7.4:reviewer=dgoodell
This commit was SVN r30246.
The following SVN revision numbers were found above:
r30151 --> open-mpi/ompi@52b5e17d97
upcoming GCC/gfortran 4.9's ignore TKR interface.
This was originally committed in a side mercurial repo, but I sadly
completely forgot about it until Tobias reminded me.
cmr=v1.7.5:reviewer=dgoodell:subject=Add support for gfortran 4.9 Fortran ignore TKR
This commit was SVN r30152.
This commit adds support for placing the send memory segment in a
traditional shared memory segment when XPMEM is not available. The
current default is to reserve 4MB for shared memory on each process.
The latest benchmarks show vader performing better than sm on both
Intel and AMD CPUs.
For large messages vader will now use CMA if it is available (and
XPMEM is not).
cmr=v1.7.5:reviewer=jsquyres
This commit was SVN r30123.
r30016 was not enough to solve the issue.
So properly prefix all the shell variables used in opal_setup_java.m4
(one of them had an orte_ prefix -- oops!). Now we won't get any
conflicts.
Refs trac:4015
This commit was SVN r30037.
The following SVN revision numbers were found above:
r30016 --> open-mpi/ompi@35dfd26f9e
The following Trac tickets were found above:
Ticket 4015 --> https://svn.open-mpi.org/trac/ompi/ticket/4015
This *should* fix following situation:
1 mxm.rpm puts /etc/ld.so.conf.d/mxm.conf file during rpm install with libpath to /opt/mellanox/mxm/lib
2 some1 can extract mxm.rpm into $HOME/mxm and compile OMPI with new mxm location
3 during runtime, OMPI from prev step will pick MXM from step (1) instead of from step (2)
cmr=v1.7.4:reviewer=ompi-rm1.7
This commit was SVN r30005.