1
1
Граф коммитов

46 Коммитов

Автор SHA1 Сообщение Дата
Nathan Hjelm
b2f33bc076 opal/asm: fall back on inline asm atomics in some cases
This commit changes the asm configure logic to fall back on inline asm
atomics on systems that 1) have __sync atomics, 2) do not have 64-bit
__sync atomics, and 3) support 64-bit asm.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-05-10 04:27:58 -06:00
Nathan Hjelm
d99a9786b6 sync_builtin: check for 64-bit atomic support
This commit adds an additional check for 64-bit atomic support for __sync
builtins. If 64-bit support is not available the opal_atomic_*_64 atomics
are disabled.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-05-09 03:17:51 -06:00
Nathan Hjelm
98ce659e0b config: check for more __sync builtins
This commit updates the check for __sync builtin atomics to see if the
compiler supports both __sync_bool_compare_and_swap and
__sync_add_and_fetch. If either of these functions are not available
then we can't use the __sync builtins.

Fixes #1487

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-04-12 10:02:39 -06:00
Nathan Hjelm
e1cace0b02 configure: only enable sync builtin atomics if they link
This commit fixes the check for sync builtin atomics.
AC_COMPILE_IFELSE is insufficient to check for the builtins. Need to
use AC_LINK_IFELSE.

Fixes open-mpi/ompi#1487

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-03-29 16:57:15 -06:00
Nathan Hjelm
664ecc8f84 configure: re-enable built-in atomic support
This commit removes an erroneous else statement from the OSX built-in
atomics check. The else branch sets the built-in atomics support to
BUILTIN_NO if either opal_cv_asm_builtin is not BUILTIN_NO or OSX
atomics support is disabled.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-03-16 20:46:09 -06:00
Gilles Gouaillardet
fec973efda configury: test portability
replace test ... -o ... with test ... || test ...
and test ... -a ... with test ... && test ...
2015-12-28 13:58:45 +09:00
bosilca
984b35b860 Merge pull request #633 from bosilca/topic/enable_atomics
Enable by default the _sync version of atomic operations on OS X.
2015-09-28 12:03:08 -04:00
Nathan Hjelm
551c2ea480 opal/asm: remove alpha support
This commit removes alpha asm support. No current processor
manufacturer makes chips compatible with DEC alpha and no
participating organization has alpha processors. This makes it
difficult to support alpha via assembly.

This doesn't mean Open MPI will no longer build/work on alpha
processors. It should continue to work with gcc's builtin sync
atomics.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-08-18 09:11:38 -06:00
George Bosilca
277269b641 Have the __sync atomics the default. Remove spurious checking and
result messages
2015-08-17 18:08:25 -04:00
George Bosilca
5aadf39545 Clean-up the OS X selection logic. 2015-08-17 18:08:16 -04:00
George Bosilca
3eaefd790c Enable by default the _sync version of atomic operations on OS X. 2015-08-17 18:08:03 -04:00
Ralph Castain
869041f770 Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
Jeff Squyres
7d870c8b9e Merge pull request #550 from jsquyres/pr/turn-down-for-WHAT
RFC: opal_config_asm.m4: enable inline assembly on little-endian POWER
2015-04-25 06:25:11 -04:00
Jeff Squyres
0afda878a2 opal_config_asm: remove support for OS X Leopard
We haven't supported OS X Leopard (10.5) for a long time.  So remove
this dead code.
2015-04-24 03:43:56 -07:00
Jeff Squyres
f7b8c11027 opal_config_asm.m4: enable inline assembly on little endian POWER
Suggested by Paul Hargrove,
http://www.open-mpi.org/community/lists/devel/2015/04/17323.php,
amended by Nysal Jan for 32 bit, too.
2015-04-23 05:43:24 -07:00
Nathan Hjelm
81502fafa8 Merge pull request #379 from hjelmn/remove_enable_smp_locks
Per-RFC: remove the --disable-smp-locks configure option
2015-04-15 10:02:23 -06:00
Nathan Hjelm
ac82d1a6be Per-RFC: remove the --disable-smp-locks configure option
Use of this configuration option can cause crashing, hanging, and
(worse) incorrect results when btl/sm, btl/scif, or btl/vader are
in use. We discussed this at the January 2015 developers meeting
and it was decided to remove the option entirely. This commit does
just that. All usage of OPAL_WANT_SMP_LOCKS has been removed.
2015-03-04 11:31:43 -07:00
Gilles Gouaillardet
b42e344129 configury: force OPAL_HAVE_CMPXCHG16B=0 on buggy compilers
per several reports on the devel ML, the opal_lifo test hangs
with intel icc 14.0.0.080 (aka 2013sp1) and intel icc 14.0.1.106 (aka 2013sp1u1).
/* older and more recents compilers work fine
 * buggy compilers work also fine but only with -O0 */
2015-02-05 13:24:12 +09:00
Gilles Gouaillardet
b4c333fe9b config/opal_*: portability fixes
convert "test ... -o" to "test ... ||"
convert "test ... -a" to "test ... &&"
2015-02-03 15:19:22 +09:00
Nathan Hjelm
79d8f6e54d Check if the processor supports compare-and-exchange on 128-bit values.
Before this commit we checked if the compiler supported compare-and-exchange
on 128-bit values. This turned out to be insufficient. This commit strengthens
the check to see if the processor supports the instruction (or built-in). This
check will not work when cross-compiling (will always disable the 128-bit
atomic) so overrides have been added for this case.
2014-12-17 23:34:12 -07:00
Nathan Hjelm
ccbb869274 Use AC_TRY_LINK not AC_TRY_COMPILE when testing for __sync_bool_compare_and_swap on 128-bit values 2014-12-09 18:56:21 -07:00
Nathan Hjelm
0efe6baf64 Add check for -mcx16 flag for 128-bit compare and swap
Some versions of gcc require this flag to be set before the __sync
builtin atomic compare and swap will support 128-bit values. If the
flag is required this check adds the flag to the CFLAGS.
2014-12-04 14:25:53 -07:00
Nathan Hjelm
fe787512d8 Add support for __sync builtin compare and swap on 128-bit values 2014-12-04 09:23:51 -07:00
Nathan Hjelm
b2b58b31a2 Add support for 128-bit compare and swap on x86_64 when available.
A 128-bit compare-and-swap will enable a better atomic lifo implementation
that uses the pointer + counter method to avoid ABA issues. This commit
adds configury to check for the instruction (cmpxchg16b) and adds an
implementation that uses the __int128 type available in C99.
2014-12-04 08:53:28 -07:00
George Bosilca
6772b07792 Only use RDTSCP if supported by the processor.
Conflicts:
	opal/include/opal/sys/amd64/timer.h
2014-11-27 11:29:47 -05:00
Jeff Squyres
7a8c3ed0d1 opal_config_asm.m4: fix typo in output message
Thanks to Paul Hargrove for spotting the typo.

cmr=v1.8.3:reviewer=rhc

This commit was SVN r32505.
2014-08-11 13:28:17 +00:00
Ralph Castain
a8e2d6c3a6 The bulk of the remaining renaming changes, in one final glorious "blob". Thanks to Jeff for some help chasing down a few spots. Per chat with Jeff, we decided to cleanup a few things that were historical in nature:
top_ompi_srcdir  ->  OMPI_TOP_SRCDIR
top_ompi_builddir -> OMPI_TOP_BUILDDIR

We also split the srcdir/builddir flags according to their local tree (e.g., OPAL_TOP_SRCDIR), and tied them all together in configure.ac. Renamed ompi_ignore and ompi_unignore to be opal_<foo> as these are agnostic markers.

Only thing left is ompilibdir being treated similar to what we dif for srcdir/builddir. Coming soon.

This commit was SVN r31678.
2014-05-07 21:48:53 +00:00
Ralph Castain
2dbeb671d0 Fix typo impacting assembly support that came in during renaming
This commit was SVN r31676.
2014-05-07 16:22:11 +00:00
Ralph Castain
f4c31cae9b Per RFC, another round in the renaming game - nearly complete
This commit was SVN r31668.
2014-05-07 03:01:47 +00:00
Ralph Castain
a54dbb17d2 Per RFC, continue renaming project
This commit was SVN r31667.
2014-05-07 01:00:06 +00:00
Ralph Castain
883fce4cba Per RFC, continue the build system renaming
This commit was SVN r31662.
2014-05-06 20:30:37 +00:00
Ralph Castain
390d29733f Per RFC, continue renaming of build tools:
ompi_c_vendor  ->  opal_c_vendor
ompi_cv_c_compiler_vendor  ->  opal_cv_c_compiler_vendor

This commit was SVN r31646.
2014-05-06 15:01:34 +00:00
Ryan Grant
6d577a2663 Update to atomics selection, fix octal issue and rename defines
This commit was SVN r31396.
2014-04-15 15:40:30 +00:00
Ryan Grant
e67ca81dca Fixing atomics selection issue, to be CMR'd after it passes the nightly tests
This commit was SVN r31393.
2014-04-15 13:17:04 +00:00
Brian Barrett
8ab8940e45 Clean up error message about Sparc v8/v8+, since the README now has better
information and the cases are getting too long for an AC_MSG_WARN.

This commit was SVN r30503.
2014-01-30 17:51:13 +00:00
Nathan Hjelm
b922cd1583 Add support for OSX builtin atomics.
OSX atomic support is disabled by default. Enable with --enable-osx-builtin-atomics.

Fixes trac:2120

This commit was SVN r29568.

The following Trac tickets were found above:
  Ticket 2120 --> https://svn.open-mpi.org/trac/ompi/ticket/2120
2013-10-30 17:48:15 +00:00
Ralph Castain
a4b6fb241f Remove all remaining vestiges of the Windows integration
This commit was SVN r28137.
2013-02-28 17:31:47 +00:00
Jeff Squyres
fc3e45ee5c Minimalistic patch to ARM support, as suggested by Leif. Note that
this patch has already gone into the v1.6 branch.

Leif would like to revamp the ARM support in a different way, and will
submit a patch to do so in the future.

This commit was SVN r27961.
2013-01-29 14:13:55 +00:00
Jeff Squyres
ef8ab5507e Per discussion on the devel list, revert r27882.
Leif would like to revamp the ARM support in a different way, and will
submit a patch to do so in the future.

This commit was SVN r27960.

The following SVN revision numbers were found above:
  r27882 --> open-mpi/ompi@8649b5eece
2013-01-29 14:10:46 +00:00
George Bosilca
8649b5eece The patch from ticket #3469 adapted for the trunk.
This commit was SVN r27882.
2013-01-21 11:45:05 +00:00
Brian Barrett
579cf4adcd After discussion with Jeff, don't do C++ inline assembly (there is a non-inline
version still avaiable for C++).  This is yet another push to try to make
OPAL a C only interface...

This commit was SVN r27828.
2013-01-15 17:04:42 +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
13d86e100b Courtesy of Ralph and Jeff:
Continue the reorganization of the configure system. Move files from the main config directory to their appropriate level-specific config directories. Modify the configure system to correctly handle compiler detection, test, and setup so that all things pertaining to opal and orte are done at the lower level, with the ompi configure system only looking at mpi-specific options.

Ensure the wrapper compilers for orte and ompi only get built when appropriate. Add support for c++ to the orte wrapper compilers, both script and non-script versions.

This commit was SVN r22138.
2009-10-24 01:04:35 +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
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
Greg Koenig
e4e064542f This change goes along with r21180 to move files into
the correct names.

This commit was SVN r21181.

The following SVN revision numbers were found above:
  r21180 --> open-mpi/ompi@60485ff95f
2009-05-06 20:15:34 +00:00