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.
got linked together (work on one caused work in the other):
* Clean up a bunch of VAR_SCOPE issues in configure. This includes:
* Using VAR_SCOPE_PUSH and VAR_SCOPE_POP in more places
* Cleaning up the use of some shell variables (e.g., name them better)
* Add support for external libevent via
--with-libevent=<dir-to-libevent-install-tree>, as specifically
asked for by downstream packagers.
* Revamp how wrapper compiler RPATH (and RUNPATH) support is done.
The external libevent work exposed weakenesses in how the original
RPATH/RUNPATH work was done, so we had to re-do it to be a bit more
robust.
This work has not yet been tested on Solaris.
Refs trac:3694
This commit was SVN r29899.
The following Trac tickets were found above:
Ticket 3694 --> https://svn.open-mpi.org/trac/ompi/ticket/3694
more:
- Remove OPAL_ENABLE_MULTI_THREADS, since it didn't really do anything
correctly. Opal always has threads enabled at this point.
- Remove OMPI_ENABLE_PROGRESS_THREADS, since this hasn't worked in
8 years and it has performance issues we'll never be able to
overcome. Note that we have plans for re-adding async progress, using
a hybrid protocol of async and sync sends.
- OMPI_ENABLE_THREAD_MULTIPLE now determines whether the thread lock
macros do the check or not.
- Condition variables are ALWAYS polling right now, which fixes the thread
live-lock currently found when THREAD_MULTIPLE is turned on.
This commit was SVN r29891.
http://www.open-mpi.org/community/lists/users/2013/10/22882.php, fix
the value of MPI_STATUS_SIZE for the -i8 case. Thanks to Jim Parker
for bringing up the issue and providing the patch.
Separate patches are required for v1.6 and v1.7 (and will be attached
to their respective tickets), because this breaks ABI, so we need a
non-default configure option to fix the issue but knowingly break ABI.
cmr=v1.7.4:reviewer=bosilca:subject=Fix MPI_STATUS_SIZE for -i8 case
cmr=v1.6.6:reviewer=bosilca:subject=Fix MPI_STATUS_SIZE for -i8 case
This commit was SVN r29858.