than $(LN_S). This causes problems with with Windows and probably
elsewhere (re: #200). So use a slightly different trick to get the
right header selected for the MEMCPY and TIMER components.
* Using the same trick used to solve the AC_CONFIG_LINKS problem,
stop using a separate header file for direct calling in the
PML and MTL. This lets me remove some icky code in ompi_mca.m4
that was more fragile than I really liked.
This commit was SVN r10841.
We have repeatedly seen users inadvertantly try to use a C compiler
for $CXX (e.g., using icc instead of icpc in recent versions of the
Intel compiler). Unfortunately, this would "sorta work", meaning that
configure would complete successfully and the build would fail much
later in the process (when $CXX was used to try to link a C++
compiler). This was further compounded by the fact that many C
compilers will switch into "C++ mode" when they compile files that end
in .cc -- meaning that they'll *compile* C++ codes properly, but they
won't *link* properly. Hence, users would get all the way down to
compiling the C++ MPI bindings or ompi_info (i.e., very late in the
build process) before the problem became evident.
We already have a test in configure that tries to compile, link, and
run a sample C++ program. This helped ensure that $CXX was a valid
compiler, but it did not catch if the user accidentally supplied a C
compiler instead of a C++ compiler because the test program was simply
"return 0". This commit updates the test program to use some
C++-specific constructs (std::string) so that if the user supplies a C
compiler in $CXX, the program may *compile*, but it will definitely
fail to *link*.
Hence, the process will fail early in configure (with a descriptive
message about how the compiler failed to work properly) rather than
late in the build.
This commit was SVN r10829.
interconnects that provide matching logic in the library.
Currently includes support for MX and some support for
Portals
* Fix overuse of proc_pml pointer on the ompi_proc structuer,
splitting into proc_pml for pml data and proc_bml for
the BML endpoint data
* bug fixes in bsend init code, which wasn't being used by
the OB1 or DR PMLs...
This commit was SVN r10642.
on platforms without a 32-bit compare and swap implementation. There isn't
such a thing on Sparc v8 chips, so we can't support those platforms right
now. Should be possible to make opal_atomic_lifo less atomic on these
platforms, but not in the time allotted.
This commit was SVN r10407.
are 3 arguments: the pointer to the memory location to prefetch, the type of
operation that will be done on the memory (read or write) and the expected
locality.
This commit was SVN r10294.
whether an if statement is likely to be taken and for prefetching memory.
Current macros:
OPAL_LIKELY(expression)
OPAL_UNLIKELY(expression)
OPAL_PREFETC(address)
This commit was SVN r10278.
support for progress threads, so we shouldn't build them or try to use
them when support for progress threads has been requested. The TCP, GM,
SELF, and SM BTLs should have progress thread support, so they aren't
disabled. The Portals BTL isn't compiled on platforms with threads,
so it doens't need to be updated.
This commit was SVN r10156.
the pthreads library that don't do anything but are there when no special
options are given. Both the GNU compiler and the Sun compiler could
sometimes ignore the -K* options, causing badness when building with
posix threads. Don't try those options ;).
We still try -pthread and -pthreads because the compilers *do* error
when they see those options and some versions of the GNU compiler do
understand those flags (and do all the right things in that case).
This commit was SVN r10126.
- Make the F90 bindings compile and link properly with gfortran 4.0,
4.1, Intel 9.0, PGI 6.1, Sun (don't know version offhand -- the most
current as of this writing, I think), and NAG 5.2, although some
have limitations (e.g., NAG can't seem to handle the medium and
large sizes)
- Building the F90 "small" module size is now the default, even for
developers
- Split up mpif.h into multiple files because parts of it were toxic
to the F90 bindings
- Properly specify unsized/unshaped arrays to make the bindings work
on all known compilers
- Make ompi_info show Fortran 90 bindings size
- XML somewhat lags the generated scripts as of this commit, but
functionality was my main goal -- the XML can be updated later (if
at all).
This commit was SVN r10118.
else than a quite recent version. Using this option prevent gdb from accessing
the contents of some of the structures. The error message is:
Unexpected type (0) encountered for integer constant.
This commit was SVN r9994.
Sorry for committing configure changes during the day, but this is
necessary for some testing via multiple people at different sites.
This commit was SVN r9926.
in San Jose. Allow the configure option --disable-binaries to build OMPI,
but not build or install the support binaries (so basically, just build
the libraries).
This commit was SVN r9777.
- Add a lengthy comment explaining why we don't get F90 data type
alignments
- Remove config/f90_check.m4 and its entry in acinclude.m4
This commit was SVN r9707.
The following SVN revision numbers were found above:
r9698 --> open-mpi/ompi@e57300da4c
only uses the F77 alignments anyway. Plus, it is currently unknown
how to reliably get the F90 alignments because compilers *may* reorder
things and/or give different alignments than the f77 tests.
This commit was SVN r9698.
- include stdlib.h for tests that call exit(), as AC no longer
prototypes exit in 2.60
- Fix a compile issue in our cross-compiling test for C/C++
alignment checks, matching what AC did for 2.60.
This commit was SVN r9634.
svn merge -r 9453:9609 https://svn.open-mpi.org/svn/ompi/tmp/f90-stuff .
Several improvements over the current F90 MPI bindings:
- The capability to make 4 sizes of the F90 bindings:
- trivial: only the F90-specific MPI functions (sizeof and a few
others)
- small: (this is the default) all MPI functions that do not take
choice buffers
- medium: small + all MPI functions that take one choice buffer
(e.g., MPI_SEND)
- large: all MPI functions, but those that take 2 choice buffers
(e.g., MPI_GATHER) only allow both buffers to be of the same type
- Remove all non-standard MPI types (LOGICAL*x, CHARACTER*x)
- Remove use of selected_*_kind() and only use MPI-defined types
(INTEGER*x, etc.)
- Decrease complexity of the F90 configure and build system
This commit was SVN r9610.
* Don't do the .in -> .tmp -> header thing for the prefixes and versions.
It causes some severe cleanup issues all to save 4 files from rebuilding
when configure is run.
* Clean up some makefiles so it's clear what is being installed/disted
This commit was SVN r9260.
SLURM. Currently, this includes AIX and Linux. If the user wants to build
SLURM on another platform, they can specify --with-slurm.
* Enable/disable the SLURM sds component using the same logic as the PLS and
RDS components.
This commit was SVN r9259.
installation directories) in configure, the files that depend on this
information are not properly rebuilt. If you need this information,
don't setup a -D in the Makefile.am - instead, include
opal/install_dirs.h.
* Use the : option in AC_CONFIG_FILES to avoid needing to expose that
we are playing around with temporary files with our headers to avoid
rebuilding
* Clean up the version file information a bit, and like the install
directory stuff, make sure that there is a dependency so that
ompi_info gets rebuilt properly when a version number changes.
This commit was SVN r9256.
now-default GNU debug flags (-g3) don't accidentally cause the
configure system to add -O3 to the build flags (because it didn't
recognize that -g3 was a debugging flag).
This commit was SVN r9207.
source tree that are named .f95, and b) it sets the future file
extension for Fortran AC tests to be .f95. This is not a problem for
gfortran, but other compilers (e.g., ifort) don't like that.
This commit was SVN r9040.
- Make the F90 checks use the identical types to the F77 checks (e.g.,
INTEGER*4, as opposed to potential selected_int_kind() equivalents)
- Comment out the F77 and F90 alignment check failure -- there is some
confusion here; some vendors apparently told Craig R. yesterday that
they change the alignments of types based on whether the instance is
a standalone variable, in an array, or a member of a struct.
More investigation is needed (and potentially clarification for MPI
users -- this could be quite problematic!), but this alignment test is
otherwise hosing the nightlies, so it needs to be taken out for the
moment.
This commit was SVN r9031.
changes. The two Big Changes are elegance (much more re-use of code
rather than cut-n-pasting the same code over and over and over and...)
and enabling cross-compilation for F77 and F90 (because we actually
have to *run* some compiled F77 and F90 programs for some of the
tests, which obviously won't work in a cross-compilation environment
-- so enable the use of config.cache to load such values in
cross-compiling environments).
This commit was SVN r8991.
- move files out of toplevel include/ and etc/, moving it into the
sub-projects
- rather than including config headers with <project>/include,
have them as <project>
- require all headers to be included with a project prefix, with
the exception of the config headers ({opal,orte,ompi}_config.h
mpi.h, and mpif.h)
This commit was SVN r8985.
situations) before going on to tests that run executables with the
compiler. Print a friendly error message if it fails. Hopefully, this
will help people with borked compilers.
This commit was SVN r8898.
complete, but stable enough that it will have no impact on general development,
so into the trunk it goes. Changes in this commit include:
- Remove the --with option for disabling MPI-2 onesided support. It
complicated code, and has no real reason for existing
- add a framework osc (OneSided Communication) for encapsulating
all the MPI-2 onesided functionality
- Modify the MPI interface functions for the MPI-2 onesided chapter
to properly call the underlying framework and do the required
error checking
- Created an osc component pt2pt, which is layered over the BML/BTL
for communication (although it also uses the PML for long message
transfers). Currently, all support functions, all communication
functions (Put, Get, Accumulate), and the Fence synchronization
function are implemented. The PWSC active synchronization
functions and Lock/Unlock passive synchronization functions are
still not implemented
This commit was SVN r8836.
- fall back to compile test for windows paffinity component
when cross compiling
- fall back to platform guess when checking for threads having
different pids with pthreads (yes on linux, no elsewhere)
- pass the proper host, target, and build flags to the
ROMIO configure script
With these changes, cross-compiling should be possible with the exception
of the Fortran 77 and Fortran 90 bindings. Fortran 77 can be cross-
compiled if cache values are provided for type sizes and alignment.
This commit was SVN r8702.
- Borrow configure.m4 from the mvapi btl. One of the uDAPL headers emits a
warning when -pedantic is enabled, so strip it out.
- Change function check in ompi_check_dapl.m4 from dat_ia_open to
dat_registry_list_providers.. dat_ia_open wasn't working right
- Make the references to prepare_dst, put, and get NULL for now
- Add opal_output() calls in all the udapl interface functions for debugging
- Add evd_qlen component parameter to control event dispatcher queue length
- First stab at component_init and module_init
- Misc cleanups - whitespace, dead code removal
- Update copyrights to 2006
This commit was SVN r8701.
r8698), with changes below:
- Split wrapper flags into those required for each of the three projects,
and cleaned up some cruft (including the LIBMPI_EXTRA_*FLAGS) through-
out the build system
- Added opal_init_util and opal_finalize_util to allow init / cleanup
of all the opal code that doesn't require the MCA system
- Create standalone key=value file parser, based on the one that used
to be in the mca param parser, so that it can be shared in multiple
places
- Add wrapper datafiles for opal, orte, and ompi wrappers, and add
wrapper compiler with support for all the old features
This commit was SVN r8699.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r8690
r8698
the failure wasn't being properly propogated up from ompi_find_type and
resulting in bad #define values in ompi_config.h
* Fix issue where we could emit illegal sh code if we were checking for a
type with no corresponding C types listed. Thanks to Ralf for tracking
this one down.
* Fix a couple more messages to match all the others.
This commit was SVN r8685.
determine values like Fortran alignment (which can only be determined by
running a program) when cross-compiling. By providing cache values, the
programs will not be run at all, and life will be good. Also clean up
some macro interfaces so that they are a bit easier to use, at the cost
of horrid internals ;).
This commit was SVN r8684.
information on Windows with the CL compiler. We don't use it, and we
were running into trouble with the compiler on some tests
This commit was SVN r8558.
* Make sure --without-BTL works for all BTLs
* Fix copy-n-paste error in aix timer configrue help string
This should go to the v1.0 branch
This commit was SVN r8554.
- don't fail to configure if threads aren't found, since
we don't have thread support on windows
- rather than setting the asm file name to none in asm-data,
special case windows w/ CL in the ompi_config_asm macros.
Otherwise, there were some warnings during make dist and
configure that didn't need to be there.
This commit was SVN r8502.
- add the right asm format
- add checks for some constants / fields that cygwin
doesn't have in the stacktrace code
- fix for slightly more verbose libtool 2 betas that
have multiple lines for link output
This commit was SVN r8501.
value that is not internally translated). In order to make all the version
of libtool happy, the simplest way is to have the source file at the end of
the command line.
This commit was SVN r8451.
is a short name usually the one that the compiler have. If we are using
wrappers around a compiler the flavor will be the real name of the compiler.
The vendor is a short name for the maker of the compiler. The GNU compilers
get gnu and the microsoft one get microsoft.
These 2 macros provide a simple way to check for specific brand of compilers
and to generate the correct code to test with the autoconf macros. They are
not yet completed, I add just some of the compilers/vendors but feel free to
add more if you need/want.
This commit was SVN r8417.
x86_64 as most opterons do. So add test to see how many bytes a long is,
and if it's 8 bytes, assume we're on an AMD64 instead of an IA32 for the
purposes of assembly.
This commit was SVN r8384.
- since we now have three places where we need to add a -l<foo> if
and only if it isn't already in something in LIBS that provides
symbol bar...
This commit was SVN r8370.
features. Now it works with gfortran as well.
The problem was that the cast between LOGICAL and INTEGER is not a Fortran language feature. The easiest solution around this problem is to have a C function that print the value. We set the value in fortran and then call the C function to print it out.
This commit was SVN r8266.
case of:
sizeof(MPI_Flogical) != sizeof (int)
and
Fortran value of .TRUE. != 1
as is often the case.
- Check in configure the value of .TRUE., the C-type coresponding to
logical and check, that fortran compiler does not do something strange
with arrays of logicals
- Convert all occurrences of logicals in the fortran wrappers, only
in case it is needed.
*Please note* Implementation of MPI_Cart_sub needed special treatment.
- Output these value in ompi_info -a
- Clean up the prototypes_mpi.h to just have a single definition and
thereby deleting the necessity for prototypes_pmpi.h
- configured, compiled and tested with F90-program, which uses
MPI_Cart_create and MPI_Cart_get:
linux ia32, gcc (no testing, as no f90)
linux ia32, gcc --disable-mpi-f77 --disable-mpi-f90 (had a bug there)
linux ia32, icc-8.1
linux opteron, gcc-3.3.5, pgcc, pathccx/pathf90 (tested just
pgi-compiler)
linux em64t, gcc, icc-8.1 (tested just icc)
This commit was SVN r8254.
component/base Makefile.am files, reducing the time configure spends
stamping out Makefiles at the end
* Install base_impl.h file when devel-headers are being installed
This commit was SVN r8200.
options as part of the --with-wrapper-{*flags,libs} options to configure,
we'll eat one of them, which can have unintended issues. For example,
--with-wrapper-ldflags="-Wl,-rpath -Wl,pathA -Wl,-rpath -Wl,pathB"
will result in us removing the second -Wl,-rpath, which will result
in wrapper ldflags of -Wl,-rpath -Wl,pathA -Wl,pathB which doesn't
really do what the user intended. We now always pass the user-
specified flags completely unmodified, bypassing the OMPI_UNIQ
routine
This commit was SVN r8193.
it doesn't support it -- the compiler will automatically convert the
unsupported type to a type that it *does* support. For example, if
you try to use INTEGER*16 and the compiler doesn't support it, it may
well automatically convert it to INTEGER*8 for you (!). So we have to
check the actual size of the type once we determine that the compiler
doesn't error if we try to use it (i.e,. the compiler *might* support
that type). If the size doesn't match the expected size, then the
compiler doesn't really support it.
The F77 configure code actually handled this properly. The F90 code
did not quite do it right. This patch brings the F90 code up to the
same structure as the F77 code, albiet not m4-ized properly. I also
added a comment to config/f77_check.m4 that explains *why* we do this
extra size check (because no explanation was given).
The impetus for this was that xlf* on OS X 10.3 was not recognizing
that INTEGER*16 was not supported, and mpi-f90-interfaces.h was being
assembled incorrectly. This patch fixes this problem.
There is still one more problem, but waiting for some help from Craig
R on that (function pointers in F90 declarations).
This commit was SVN r8107.
the component's LIBS if the library was found in the default search paths.
However, it would also add -Is for default search paths and other nasty things,
so it seemed best to convert it to the OMPI_CHECK_PACKAGE macro so that it
behaved like all the other packages out there.
This commit was SVN r8007.
--enable-mpi-{cxx,f77,f90} so that people aren't confused about what
they are actually disabling.
This should go to the 1.0 branch
This commit was SVN r7851.
really crappy job of trying to emulate the inline assembly mode of GCC (and will
completely rewite the assembly, which seems to be bad in my opinion). GCC and
the AIX assembler don't see eye-to-eye on what GCC emits when doing inline
assembly. That's two compilers and no actual working support. So just punt and
fall back to XLC inline assembly or non-inlined assembly.
This commit was SVN r7800.
originally suggested by Ralf Wildenhues, to try to speed autogen, configure,
and make (and possibly even make install). Use automake's include directive
to drastically reduce the number of Makefile files (although the number of
Makefile.am files is the same - most are just included in a top-level
Makefile.am). Also use an Automake SUBDIRs feature to eliminate the
dynamic-mca tree, which was no longer really needed. This makes adding
a framework easier (since you don't have to remember the dynamic-mca
tree) and makes building faster (as make doesn't have to recurse through
the dynamic-mca tree)
This commit was SVN r7777.
Brooks Davis. Now handle everything as hex, and we don't have to
worry about signed/unsigned implementations of integers in shell and
expr.
This commit was SVN r7729.
a VPATH tree. Fix that problem, as well as some potential shell escaping badness
if a version number or path ever had a space in it.
This commit was SVN r7586.
Try to detect which form this version of Open IB uses, defaulting to the 5
version if we can't figure it out (the new version has 5 params)
* Only add -lcm if it exists on the system - some versions of Open IB
apparently don't need it.
This commit was SVN r7542.
a random string of characters as part of the version number (the really
soon to happen 1.0lanl release and the 1.1sc2005 release that we've
talked about). So rather than having alpha and beta fields that must
be numeric values, have a general field that can be any alphanumeric
value.
This commit was SVN r7511.
automagically don't build on platforms without such things
* Fix for mistaken use of cache variable in assembly setup
* one more cached test hits the books
This commit was SVN r7404.
C / C++ tests now use the caching scheme. Only exception is C++ exception
handling code, which is disabled by default, so I'm not too worried about making
that configure faster :)
This commit was SVN r7403.
the way we use weak symbols (you have to use the actual symbol in the
.o file or the weak symbol isn't generated). It worked for our test
case, but not for libmpi. Make our test case look more like what we
do in libmpi by generating a .o file with a weak symbol and attempting
to use it from another object file.
This commit was SVN r7360.
- fix the first test
- make the #define's always have a value (0 or 1)
- prefix them with OMPI
- remove the extra "__"'s in the names, since they're now
OMPI-specific #define names
This commit was SVN r7339.
They can be used to give additional knowledge to the compiler about the behaviour of a
function so it can optimize further. In the begining we just need it for the alias weak
a better way to create function aliases.
The problem was that the intel compiler version 8 to 9 support pragma weak but do not include
the function in the .o file if it's not used at least once in the same .c file. With the
alias weak this problem is solved as even intel support it correctly.
This commit was SVN r7330.
- Add --enable-trace which turns on some internal tracing and dumps a
file per process in the session directory tree. Meant for internal
developer tracing, *not* for tracing MPI applications in the
traditional sense.
This commit was SVN r7229.
should speed up autogen.sh on platforms with really slow svnversion searches,
as we only need the base version for autogen, which means we don't need the
r number.
* Since I can't type, add an error message if an invalid argument is given
This commit was SVN r7224.
AM_INIT_AUTOMAKE, instead of the deprecated version.
* Work around dumbness in modern AC_INIT that requires the version
number to be set at autoconf time (instead of at configure time, as
it was before). Set the version number, minus the subversion r number,
at autoconf time. Override the internal variables to include the r
number (if needed) at configure time. Basically, the right thing
should always happen. The only place it might not is the version
reported as part of configure --help will not have an r number.
* Since AM_INIT_AUTOMAKE taks a list of options, no need to specify
them in all the Makefile.am files.
* Addes support for subdir-objects, meaning that object files are put
in the directory containing source files, even if the Makefile.am is
in another directory. This should start making it feasible to
reduce the number of Makefile.am files we have in the tree, which
will greatly reduce the time to run autogen and configure.
This commit was SVN r7211.
include any optimization flags
- Use these flags to always compile ompi/debuggers/* and orterun so
that parallel debuggers (such as Totalview) can always see the
debugging symbols (see comments in ompi/debuggers/Makefile.am and
orte/tools/orterun/Makefile.am)
- Remove some obsolete LAM-named variables from configure.ac
This commit was SVN r7125.
- Setup OMPI_CC_ORIGINAL in preparation for AM subdir-objects (so that
we can snarf libtool objects properly if $CC has been switched to
the "compile" script)
This commit was SVN r7073.
which case, skip it, since it takes so bloody long to compile)
* Dsiable the XGrid PLS when compiling in 64 bit mode, as Tiger only
ships with XGrid libraries for 32bit apps
* ompi_config.h and orte_config.h (and supporting headers) are now only
installed if --with-devel-headers is enabled. Since they are no
longer needed for MPI applications, it doesn't make sense to install
them if we are only installing mpi.h and mpif.h.
Also, since we are no longer including ompi_config.h in mpi.h, there
is no longer a need to do the dumb sed trick on install
This commit was SVN r7042.