1
1
Commit Graph

60 Commits

Author SHA1 Message Date
Ralph Castain
1e2019ce2a Revert "Update to sync with OMPI master and cleanup to build"
This reverts commit cb55c88a8b.
2016-11-22 15:03:20 -08:00
Ralph Castain
cb55c88a8b Update to sync with OMPI master and cleanup to build
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-22 14:24:54 -08:00
Gilles Gouaillardet
a27ced0966 configury: fix typos in {ompi,opal}_setup_cxx 2016-07-12 10:09:32 +09:00
Gilles Gouaillardet
3e469662ad trim man pages if no c++/f08/fortran 2015-10-13 10:21:42 +09:00
Ralph Castain
869041f770 Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
Gilles Gouaillardet
8fc7c79579 config/ompi_*: portability fixes
convert "test ... -o" to "test ... ||"
convert "test ... -a" to "test ... &&"
2015-02-03 14:50:32 +09:00
Ralph Castain
8a0d6b4aa6 Per RFC, continue the joyous fun of the renaming exercise
This commit was SVN r31661.
2014-05-06 20:13:37 +00:00
Ralph Castain
4f4d9dcd28 Per RFC, continue with build system renaming
This commit was SVN r31657.
2014-05-06 19:22:27 +00:00
Jeff Squyres
9d19dec80a [ompi|opal]_setup_cxx.m4: ensure to use the C++ compiler (!)
We didn't AC_LANG_PUSH(C++) before checking to see if the compiler
supports -finline-functions, meaning that configure used the C
compiler for these checkes, not the C++ compiler.

Due to #2999, we have to fix both opal_setup_cxx.m4 and
ompi_setup_cxx.m4.

cmr=v1.8.2:reviewer=rolfv

This commit was SVN r31651.
2014-05-06 17:42:51 +00:00
Ralph Castain
002cd34013 Per RFC, continue the build system renaming
OMPI_C_GET_ALIGNMENT  -> OPAL_C_GET_ALIGNMENT
   ompi_cv_c_align_  ->  opal_cv_c_align_

This commit was SVN r31648.
2014-05-06 16:50:27 +00:00
Ralph Castain
29609577d5 Per RFC:
ompi_show_title  -> opal_show_title
    ompi_show_subtitle -> opal_show_subtitle

This commit was SVN r31638.
2014-05-05 22:35:23 +00:00
Ralph Castain
425d4b9e81 Per RFC: OMPI_ENSURE_CONTAINS_OPTFLAGS -> OPAL_ENSURE_CONTAINS_OPTFLAGS
This commit was SVN r31636.
2014-05-05 22:02:39 +00:00
Ralph Castain
2749231eb5 Next step in RFC: OMPI_CHECK_COMPILER_WORKS -> OPAL_CHECK_COMPILER_WORKS
This commit was SVN r31584.
2014-05-01 15:25:47 +00:00
George Bosilca
32a494e73b When CXX support is disabled don't check if coverage is supported. The
problem is that ompi_cxx_vendor is only defined when MPI CXX support
is enabled.

This commit was SVN r30599.
2014-02-06 21:40:26 +00:00
Jeff Squyres
1bc8f41edb This commit combines 3 somewhat-unrelated things, which unfortunately
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
2013-12-13 21:24:45 +00:00
Brian Barrett
b8442ba505 Revamp the handling of wrapper compiler flags. The user flags, main configure
flags, and mca flags are kept seperate until the very end.  The main configure
wrapper flags should now be modified by using the OPAL_WRAPPER_FLAGS_ADD
macro.  MCA components should either let <framework>_<component>_{LIBS,LDFLAGS}
be copied over OR set <framework>_<component>_WRAPPER_EXTRA_{LIBS,LDFLAGS}.
The situations in which WRAPPER CPPFLAGS can be set by MCA components was
made very small to match the one use case where it makes sense.

This commit was SVN r27950.
2013-01-29 00:00:43 +00:00
Jeff Squyres
b29b852281 Consolidate all the opal/orte/ompi .m4 files back to the top-level
config/ directory.  We split them apart a while ago in the hopes that
it would simplify things, but it didn't really (e.g., because there
were still some ompi/opal .m4 files in the top-level config/
directory, resulting in developer confusion where any given m4 macro
was defined).

So this commit consolidates them back into the top-level directory for
simplicity.  

There's still (at least) two changes that would be nice to make:

 1. Split any generated .m4 file (e.g., autogen-generated .m4 files)
    into a separate directory somewhere so that a top-level -Iconfig/
    will only get our explicitly defined macros, not the autogen stuff
    (e.g., with libevent2019 needing to get the visibility macro, but
    NOT all the autogen-generated inclusion of component configure.m4
    files).
 1. Change configure to be of the form:
{{{
# ...a small amount of preamble/setup...
OPAL_SETUP
m4_ifdef([project_orte], [ORTE_SETUP])
m4_ifdef([project_ompi], [OMPI_SETUP])
# ...a small amount of finishing stuff...
}}}

I doubt we'll ever get anything as clean as that, but that would be
the goal to shoot for.

This commit was SVN r27704.
2012-12-19 00:00:36 +00:00
Ralph Castain
214e26b539 Per Jeff (this work was done on a branch of mine, so I will do the commit):
Re-enable "./autogen.sh -no-ompi" again. If you -no-ompi, the entire OMPI
configury is skipped and the entire ompi/ subtree is not built. There's
some simple m4-isms that prune out the relevant parts.

I added ompi/config/, orte/config/, and opal/config/ directories. I moved a
bunch of m4 files from the top-level config/ dir into ompi/config/, and a few
into orte/config/.

Note that all 3 <project>/config directories have a config_files.m4 file. This
file contains the AC_CONFIG_FILES list for that project. The AC_CONFIG_FILES
call cannot be in an AC_DEFUN macro and conditionally called -- if it is
included at all, Autoconf will process it. Hence, these config_files.m4 files
don't AC_DEFUN -- they just have AC_CONFIG_FILES. m4_ifdef() is used to
conditionally include the files or not.

I moved a bunch of obvious OMPI-only m4 files from config/ to ompi/config/,
but I'm sure that there's more that could go. A ticket will be filed with
thoughts on future work in this area.

This commit was SVN r22113.
2009-10-20 23:44:20 +00:00
Jeff Squyres
f50e25d0d2 Addition to r21759 and r21764. Properly group flag-saving inside the AC_REQUIREd macro so that we don't get unexpected execution ordering. See comments on Trac ticket #1993 and Ralf W.'s post on the devel list: http://www.open-mpi.org/community/lists/devel/2009/08/6621.php
This commit was SVN r21803.

The following SVN revision numbers were found above:
  r21759 --> open-mpi/ompi@3eb2a3141a
  r21764 --> open-mpi/ompi@a82d957c46
2009-08-11 23:13:18 +00:00
Jeff Squyres
a82d957c46 A few dirty tricks to ensure that section titles appear before their
sections. 

This commit was SVN r21764.
2009-08-05 01:25:47 +00:00
Jeff Squyres
3eb2a3141a These changes appear to make us play nicely with AC 2.64. I'm not
sure ''why'' these changes are necessary -- they don't really have any
functional difference.  Strange...

This commit was SVN r21759.
2009-08-04 21:37:10 +00:00
Jeff Squyres
846e6e4bad Fix borkedness from r21755:
* No need for OPAL_SIZEOF_BOOL and OPAL_SIZEOF_INT in comm_inln.h --
   just use sizeof()
 * Fix logic in ompi_setup_cxx.m4 to account for the case where we
   ''do'' have a C++ compiler (duh!!)
 * Fix spelling error in a shell variable that ended up making a
   bad/empty #define

This should bring the trunk back to being functional.  Sorry for the
interruption, folks...

This commit was SVN r21758.

The following SVN revision numbers were found above:
  r21755 --> open-mpi/ompi@90d6491737
2009-08-04 18:45:11 +00:00
Jeff Squyres
90d6491737 Since ompi_info is no longer written in C++, we no longer require a
C++ compiler in configure.  If we have a C++ compiler, then the MPI
C++ bindings are built by default.  If we don't have a C++ compiler,
then the MPI C++ bindings are not built by default.

--enable-mpi-cxx will now force an error if there is no C++ compiler
available.  --disable-mpi-cxx (or the lack of a C++ compiler) will now
disable many of the C++ compiler checks in configure.

Note that there are a few items to clean up regarding the difference
between C's _Bool type and C++'s bool type.  Right now, we assume that
they are the same.  But they aren't, and they shouldn't be treated as
such.  This cleanup will be forced in MPI-2.2 with the introduction of
the MPI_C_BOOL MPI datatype.

This commit was SVN r21755.
2009-08-04 11:54:01 +00:00
Jeff Squyres
d2c3a3cede Fix a problem on some distros that have buggy versions of gcc (e.g.,
https://bugs.launchpad.net/ubuntu/+source/gcc-4.2/+bug/284401).
Ensure to test for -Wno-long-* in combination with other CFLAGS that
we added, not just individually.

This commit was SVN r19838.
2008-10-29 12:17:44 +00:00
George Bosilca
d33801c0fa Rollback the last two commits.
svn merge -r 19823:19821 https://svn.open-mpi.org/svn/ompi/trunk ./

I copied the config directory in another location, and the original
.svn directory was replaced by the Open MPI one ... As a result my
first commit, applied the changes on the Open MPI trunk instead of
the other project.

This commit was SVN r19824.
2008-10-28 17:22:29 +00:00
George Bosilca
e0bb777a51 Remove useless files.
This commit was SVN r19823.
2008-10-28 17:02:37 +00:00
Jeff Squyres
fdbb2d01aa Fix the wrapper compiler flags to get the right C++ exceptions flags
(this was missed in #1585).  Also, fix a long-standing problem that
the F90 wrapper compilers were using the F77 wrapper compiler flags.

This commit was SVN r19819.
2008-10-28 14:26:47 +00:00
Terry Dontje
a39d8d62e7 Correct the "default" message for --enable-cxx-exceptions to disabled as the
code is actually coded and correct some F90 comments to f77.

This commit was SVN r19784.
2008-10-21 20:54:08 +00:00
Jeff Squyres
ac698173b9 * Ensure to pass the C++ exceptions flags to the C and Fortran
compilers as well.   Not doing this was causing problems with
   MPI::ERRORS_THROW_EXCEPTIONS with gcc in 32 bit (but not 64 bit!). 
 * Ensure that the C and Fortran compilers actually like the C++
   exceptions flags.  If not, currently just abort.  Let's see if
   anyone complains about this -- I doubt they will because a) C++
   exception support is not enabled by default, and b) I think C++
   exceptions really only make sense within the same compiler family.

This commit was SVN r19783.
2008-10-21 20:25:20 +00:00
Jeff Squyres
bccd8a6cfc Expand a few configure help string messages, mainly because Terry was
complaining that he didn't know what the defaults were ;-), but also
because it's the Right thing to do.

This commit was SVN r19765.
2008-10-17 23:05:30 +00:00
Rainer Keller
e1e13631cc - Starting with gcc-4.4, the compiler does not recognize faulty
compiler warnings starting with -Wno- to recognize (if there are no
   other warnings.
   Try it with Your favorite warning, such as -Wno-britney will not
   fail, while it will be recognized as faulty, if You also pass on with
   -Wno-britney -Wspears....

This commit was SVN r18070.
2008-04-02 07:44:17 +00:00
Ethan Mallove
cb7c435a9c Added OMPI_WHICH macro as an alternative to using {{{`which
<prog>`}}} in `configure`. It is preferable to simply using {{{`which
<prog>`}}} because backticks (`) (aka backquotes) invoke a sub-shell
which may source a "noisy" `~/.whatever` file, and we do not want the
error messages to be part of the assignment in {{{foo=`which
<prog>`}}}.

This commit was SVN r16955.
2007-12-14 02:39:58 +00:00
Jeff Squyres
8320a491fe Fix problem when $CC or $CXX where multiple tokens. A similar fix
when in for $F77 and $FC long ago.

Thanks to Brian Barrett for noticing and submitting a patch.

This commit was SVN r16864.
2007-12-06 11:38:35 +00:00
Brian Barrett
bf38c9d8e2 Configure changes... woopie...
* Check that the C++, Fortran 77, and Objective C comilers emit code
    that can link against object files emitted by the C compiler.
    Moves some built / run time errors to configure time, which is
    nice and should help with the debugging
  * Remove unneeded -F option when building the XGrid components, 
    which started causing problems with LT 2.0.
  * Try to use the XGridFoundation library, rather than just seeing
    if we can give -framework XGridFoundation.  Should make the
    test slightly more accurate
  * Don't assume XGrid is unavailable on 64 bit platforms, as that
    won't be true on Leopard
  * Require AM 1.10 or newer if using AC 2.60 or newer, so that
    we don't have a split of AC supporting Objective C and AM
    not doing so

This commit was SVN r12701.
2006-11-30 01:59:44 +00:00
Brian Barrett
53925dfd88 * Use AC_TRY_LINK instead of AC_TRY_cOMPILE to see if the compiler hints
for prefetch and branch prediction work.  A non-happy compiler could
  just think these were functions and we wouldn't get the error, because
  we didn't try to link.

  Refs trac:287

This commit was SVN r11333.

The following Trac tickets were found above:
  Ticket 287 --> https://svn.open-mpi.org/trac/ompi/ticket/287
2006-08-22 22:20:12 +00:00
George Bosilca
8db4a55a57 Reorder the C++ compiler discovery stages. Check first the compiler vendor
before checking if we are able to compile the test program. This is required
for windows as the C++ conftest.c file generated by configure cannot be
compiled with the Microsoft cl.exe compiler (because of the exit function
prototype). So if we detect a vendor equal to microsoft we will assume
that the compiler is correctly installed (which is true on Windows most
of the time anyway).

This commit was SVN r11268.
2006-08-20 13:53:27 +00:00
Brian Barrett
1daa21e1e3 It appears that most versions of the IBM XL compiler (including the latest
releases on Linux and OS X) don't handle const_cast<> of 2-dimensional 
arrays properly.  If we're using one of the compilers that isn't friendly
to such casts, fall back to a standard C-style cast.

refs: #271

This commit was SVN r11263.
2006-08-19 22:55:59 +00:00
Rainer Keller
bfadfa9eb6 - Get code-coverage to work with gcc-4.x (needs --coverage flag also
when linking)
   This allows ompi-branch optimization. Works now with mpicc wrappers.

This commit was SVN r11067.
2006-07-31 21:55:01 +00:00
Jeff Squyres
4eb3ee7835 Another project that has been brewing for a week or so...
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.
2006-07-15 10:27:09 +00:00
George Bosilca
85b60cf2bd Having access to the full power of the prefetch is way more interesting. There
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.
2006-06-11 20:10:36 +00:00
Brian Barrett
0e6cf49341 * fix tests for __builtin_expect to not use NULL
This commit was SVN r10282.
2006-06-10 00:32:39 +00:00
Brian Barrett
4c80624fb3 * As promised to George and per #93, add macros for hinting to the compiler
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.
2006-06-09 19:50:51 +00:00
Brian Barrett
2ad29df0a1 * Add option to disable the adding of -g to CFLAGS/CXXFLAGS when --enable-debug
is given.  Generally not useful, unless you're on a platform without a
  debugger...

This commit was SVN r9684.
2006-04-22 19:23:26 +00:00
George Bosilca
426c587dcc Dont use exit(0) when we try to run a simple C++ program. Use return instead
to avoid having problems on Windows with the C++ mangling scheme.

This commit was SVN r9161.
2006-02-27 05:14:35 +00:00
Brian Barrett
d751d3bacf * Try to execute a simple application with a compiler (in non-cross-compile
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.
2006-02-05 01:28:05 +00:00
Brian Barrett
73f4f407c1 Extend test for compiler vendor to include many, many more compilers, and
unify the C / C++ tests, as they are often the same defines to check...

This commit was SVN r8450.
2005-12-12 00:41:01 +00:00
George Bosilca
93cff86017 Include the vendor and nickname detection directly in the setup macros.
This commit was SVN r8422.
2005-12-09 04:19:53 +00:00
Jeff Squyres
42ec26e640 Update the copyright notices for IU and UTK.
This commit was SVN r7999.
2005-11-05 19:57:48 +00:00
Brian Barrett
cf04b2da3c * bunch of changes to make better use of config cache. Almost everything in the
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.
2005-09-16 02:49:31 +00:00
Brian Barrett
1fe9356d37 * Clean up the --with-platform option to automagically set a whole bunch
of flags to configure.  Now don't need to specify the contrib/platform
  part of the path if you don't want to
* Add "optimized" platform setting that will undo all the performance-
  affecting things that a developer build sets up.

This commit was SVN r6946.
2005-08-20 20:43:59 +00:00