* If we are on solaris, don't use the system qsort(), as it appears to be
broken in 64 bit mode on Solaris 8 (there are bugs about this in
SunSolve). Instead, use ompi_qsort(), which is taken from FreeBSD.
A #define in ompi_config_bottom.h makes this invisible to most of the
OMPI source tree.
* Fix memory badness in ompi_progress_register where we were reallocing the
array to be number of elements long instead of number of elements *
sizeof(element). Found while using bcheck to track down our problems in
64 bit on big endian machines.
* The debugging output code in session_dir.c could pass NULL as a value for a %s,
which will turn into "(null)" automagically on glibc, but causes segfaults for
older libcs (like those on Solaris). Check for this case in session_dir.c and
don't pass NULL as a %s value into ompi_output().
* Fix missing header file in convertor.c
This commit was SVN r6186.
function names with the GSYM (like we should be)
* Add support for PPC64/Linux in atomics
This should go to the beta branch.
This commit was SVN r6163.
I'm contributing patches for configure.ac and f90_check_type.m4.
The problem was that f90_check_type returned an exit code
and not all compilers actually do this. The fix tries to compile the
type and fails if it can't. The problem is that some compilers will
happily return a default kind if the particular kind is not supported.
So the real test is whether the size of the datatype is as expected.
This commit was SVN r6101.
[10.4] with gfortran 4.0) who need to be able to add flags to compile
simple Fortran executables that use libc routines.
Notably, for Tiger with gfortran 4.0 installed, you'll need to:
./configure F77=gfortran FC=gfortran LIBS=-lSystemStubs
This commit was SVN r5909.
- Fully support REAL*N, INTEGER*N, and COMPLEX*N in the MPI_Op
reduction operations.
- Update ddt to fully support these types as well, to include using
the results of sizes and alignments determined by configure
- Discover the goodness of m4 and consolidate a LOT of configure code
(i.e., remove a lot of essentially duplicated code and
m4-subroutine-ize it). The big kicker was figuring out how to
parameterize AC_DEFINE_UNQUOTED, which you can do if you use m4
properly.
- If we don't support a given INTEGER*N, REAL*N, or COMPLEX*N, don't
error. Just set the right flags so that we don't support them in
the MPI layer.
This commit was SVN r5788.
- Check for icc-8.1 segfaulting with varargs.
- Add check for size of REAL*4,8,16 types and purge,
if smaller
- Fix configure-output with regard to checking for c-types
for the REAL*-types.
This commit was SVN r5661.
biggie), so we gain nothing there. On 10.4, it's implemented directly,
but doesn't support devices (which messes up pty support and IO
forwarding).
This commit was SVN r5621.
for the size. If it does not fit, purge from the list, i.e. reset all
values to zero.
Fixes pgf90 problem, which silently accepts INTEGER*16, but internally
using INTEGER...
This commit was SVN r5594.
Merged in from:
svn merge -r5506:5553 https://svn.open-mpi.org/svn/ompi/tmp/hetero .
This commit was SVN r5552.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r5506
r5553
Merged in from:
svn merge -r5448:5496 https://svn.open-mpi.org/svn/ompi/tmp/hetero .
This commit was SVN r5550.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r5448
r5496
from:
svn merge -r5440:5448 https://svn.open-mpi.org/svn/ompi/tmp/hetero .
This commit was SVN r5549.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r5440
r5448
MPI_COMPLEX*x, and some optional C datatypes in MPI reduction
operations. These types are not technically supported by the letter
of the MPI standard, but are implied by the spirit of it (and there
are definitely users that use them in real applications)
- Add checks in configure for back-end C types for MPI_INTEGER*x and
MPI_REAL*x
- Create C data structs for MPI_COMPLEX*x
- Fixed typo for MPI_INTEGER8 in mpi.h
- Updated configure macros to create MPI_FORTRAN_INTEGER* defines, as
opposed to MPI_FORTRAN_INT, which was causing [me] lots of confusion
(between C "*_INT" names and Fortran "*_INT" names). This caused
some trivial updates in ddt, ompi_info, and the MPI layer to match.
- Update ompi_info to show whether we have each MPI_INTEGER*x,
MPI_REAL*x, and MPI_COMPLEX*x
- Extended reduction operations for optional datatypes:
- "C integer" now includes long long int, long long, and unsigned
long long
- "Fortran integer" now includes MPI_INTEGER*x
- "Floating point" now includes MPI_REAL*x
- "Complex" now includes MPI_COMPLEX*x
This commit was SVN r5511.
we are part of the source tree and not defined otherwise, we are going
with an always defined if ompi_config.h is included policy. If
ompi_config.h is included before mpi.h or before OMPI_BUILDING is set,
it will set OMPI_BUILDING to 1 and enable all the internal code that
is in ompi_config_bottom.h. Otherwise, it will only include the
system configuration data (enough for defining the C and C++ interfaces
to MPI, but not perturbing the user environment).
This should fix the problems with bool and the like that the Eclipse
folks were seeing. It also cleans up some build system hacks that
we had along the way.
Also, don't use int64_t as the default size of MPI_Offset, because it
requires us including stdint.h in mpi.h, which is something we really
shouldn't be doing.
And finally, fix a ROMIO Makefile that didn't set -DOMPI_BUILDING=1,
as ROMIO includes mpi.h, but not ompi_config.h
This commit was SVN r5430.
having it in config/ompi_setup_cxx.m4
2. Adding --enable-coverage option. This will add teh flags -ftest-coverage
and -fprofile-arcs to the flags. Also, one needs to compile with
debug and static only to enable code coverage
3. Adding the coverage flag options to WRAPPER_*_FLAGS so that mpicc and co.,
will add these to teh executables when they are compiled
This commit was SVN r5416.
Monday with Craig:
- split two f90 modules into two separate .f90 files so that
dependencies can be satisfied properly in parallel builds (i.e.,
mpi_kinds.f90 can be compiled and its f90 module can be generated
before any others are compiled, because it is needed by all of the
other f90 source files).
- rename mpi.i.h* to be mpi-f90-interfaces.h, just to be a little more
clear and less name-confusing with mpi.h and mpif.h
- update the build process in src/mpi/f90, including printing out a
warning that compiling mpi.f90 may take quite a while :-\
- update the wrapper compilers to add in the Right Things for
compiling F90 MPI applications
- add a check in configure to find what flag the F90 compiler uses to
identify where f90 module files live
This commit was SVN r5297.
linked into libmpi
* add --enable-mca-direct to specify components that should be directly
called (instead of going through component structs and the like). The
components and component frameworks must explicitly support this.
Currently, only the TEG PML does so.
* Updated all the calls to the PML to use a macro so that they can either
be direct called or called through function pointer interfaces (aka
the component infrastructure)
This commit was SVN r5291.
dimensions the f90 MPI bindings should support (they are strongly
typed, and the number of dimensions of choice arguments must be
specified -- it cannot be arbitrary). The default is four.
Note that even though increasing this value has essentially a linear
effect on the code, the multiplier constant is fairly large (only a
small number of functions have 2 choice buffers, so the exponential
factor is relatively small). Increasing this value increases the
amount of time f90 compilers will spend compiling src/mpi/f90/mpi.f90
(some compilers will crash if it is too big).
This commit was SVN r5268.
more obvious (and documented)
- VERSION now has lots of comments in it
- separate out whether we want the SVN r number in the version and
what the SVN r number is
- clearly describe the process for building the full version number
string
- make ompi info have a separate line item specifically for the SVN r
number, regardless of what the version number is
- update "make dist" process to substitute in the SVN r version
This commit was SVN r5022.
* SPARC Assembly fixes:
- Use SPARC assembly type only when not able to use the SPARC v9
instruction set (instead of previous whenever sizeof(void*) == 4
- Use SPARCV9_32 (aka sparc v8plus) and SPARCV9_64 (aka sparc v9) when
possible. Already were doing so for the 64bit, but on 32bit we
were falling back to SPARC.
- Implemented SPARCV9_32 atomic operations
- Emit warning if user is going to get SPARC atomic, as that probably
isn't what the user wants for best performance.
* Started shell of MIPS assembly. Does not work, but wanted something
so that everyone would only have to re-autogen once today....
This commit was SVN r4465.
threads (defaults to use MPI threads, disable progress threads). This
allows us to have MPI threaded support, but without progress threads
and all that fun stuff.
This commit was SVN r4443.