Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] [EXTERNAL] Build failures from r31393: opal atomics
From: Jeff Squyres (jsquyres) (jsquyres_at_[hidden])
Date: 2014-04-15 11:48:50


Perfect -- thanks!

On Apr 15, 2014, at 11:36 AM, "Grant, Ryan Eric (-EXP)" <regrant_at_[hidden]> wrote:

> Jeff,
>
> Ack, sorry. I've grouped the built-in atomics into a family 020x as
> discussed. I've also got the built-ins renamed as OMPI_BULTIN_name. Commit
> is coming up soon.
>
> --Ryan
>
> On 4/15/14 8:57 AM, "Jeff Squyres (jsquyres)" <jsquyres_at_[hidden]> wrote:
>
>> Ryan --
>>
>> I'm getting build failures with this:
>>
>> -----
>> make[1]: Entering directory
>> `/home/jsquyres/svn/ompi5/openmpi-1.9a1r31394M/_build/opal/asm'
>> CC asm.lo
>> In file included from ../../../opal/asm/asm.c:21:
>> ../../../opal/include/opal/sys/atomic.h:144:7: error: invalid digit "8"
>> in octal constant
>> ../../../opal/include/opal/sys/atomic.h:146:7: error: invalid digit "8"
>> in octal constant
>> -----
>>
>> The problem seems to be coming from a new #define you added:
>>
>> #define OMPI_NO_BUILTIN 0800
>>
>> With the leading 0, it's being interpreted as octal, and therefore 8 is
>> an invalid digit.
>>
>> From looking at the other values in that #define group, it's not clear to
>> me if these are supposed to be bit flags or just unique values...?
>>
>>
>>
>> On Apr 15, 2014, at 9:17 AM, svn-commit-mailer_at_[hidden] wrote:
>>
>>> Author: regrant (Ryan Grant)
>>> Date: 2014-04-15 09:17:04 EDT (Tue, 15 Apr 2014)
>>> New Revision: 31393
>>> URL: https://svn.open-mpi.org/trac/ompi/changeset/31393
>>>
>>> Log:
>>> Fixing atomics selection issue, to be CMR'd after it passes the nightly
>>> tests
>>>
>>> Text files modified:
>>> trunk/config/opal_config_asm.m4 | 26
>>> ++++++++++++++++++--------
>>> trunk/opal/include/opal/sys/architecture.h | 1 +
>>>
>>> trunk/opal/include/opal/sys/atomic.h | 10 +++++-----
>>>
>>> 3 files changed, 24 insertions(+), 13 deletions(-)
>>>
>>> Modified: trunk/config/opal_config_asm.m4
>>>
>>> =========================================================================
>>> =====
>>> --- trunk/config/opal_config_asm.m4 Tue Apr 15 03:23:39 2014 (r31392)
>>> +++ trunk/config/opal_config_asm.m4 2014-04-15 09:17:04 EDT (Tue, 15
>>> Apr 2014) (r31393)
>>> @@ -766,14 +766,17 @@
>>> [Enable use of OSX builtin atomics (default: disabled)])])
>>>
>>> if test "$enable_builtin_atomics" = "yes" ; then
>>> - OPAL_CHECK_SYNC_BUILTINS([ompi_cv_asm_arch="SYNC_BUILTIN"],
>>> + OPAL_CHECK_SYNC_BUILTINS([ompi_cv_asm_builtin="SYNC_BUILTIN"],
>>> [AC_MSG_ERROR([__sync builtin atomics requested but not
>>> found.])])
>>> AC_DEFINE([OPAL_C_GCC_INLINE_ASSEMBLY], [1],
>>> [Whether C compiler supports GCC style inline assembly])
>>> elif test "$enable_osx_builtin_atomics" = "yes" ; then
>>> - AC_CHECK_HEADER([libkern/OSAtomic.h],[ompi_cv_asm_arch="OSX_BUILTIN"],
>>> +
>>> AC_CHECK_HEADER([libkern/OSAtomic.h],[ompi_cv_asm_builtin="OSX_BUILTIN"],
>>> [AC_MSG_ERROR([OSX builtin atomics requested but not found.])])
>>> else
>>> + ompi_cv_asm_builtin="NO_BUILTIN"
>>> + fi
>>> +
>>> OMPI_CHECK_ASM_PROC
>>> OMPI_CHECK_ASM_TEXT
>>> OMPI_CHECK_ASM_GLOBAL
>>> @@ -898,12 +901,12 @@
>>> ;;
>>>
>>> *)
>>> - OPAL_CHECK_SYNC_BUILTINS([ompi_cv_asm_arch="SYNC_BUILTIN"],
>>> +
>>> OPAL_CHECK_SYNC_BUILTINS([ompi_cv_asm_builtin="SYNC_BUILTIN"],
>>> [AC_MSG_ERROR([No atomic primitives available for
>>> $host])])
>>> ;;
>>> esac
>>>
>>> - if test "$ompi_cv_asm_arch" = "SYNC_BUILTIN" ; then
>>> + if test "$ompi_cv_asm_builtin" = "SYNC_BUILTIN" ; then
>>> AC_DEFINE([OPAL_C_GCC_INLINE_ASSEMBLY], [1],
>>> [Whether C compiler supports GCC style inline assembly])
>>> else
>>> @@ -954,17 +957,24 @@
>>> AC_DEFINE_UNQUOTED([OPAL_ASSEMBLY_FORMAT],
>>> ["$OPAL_ASSEMBLY_FORMAT"],
>>> [Format of assembly file])
>>> AC_SUBST([OPAL_ASSEMBLY_FORMAT])
>>> - fi # if ompi_cv_asm_arch = SYNC_BUILTIN
>>> - fi # if cv_c_compiler_vendor = microsoft
>>> + fi # if ompi_cv_asm_builtin = SYNC_BUILTIN
>>>
>>> result="OMPI_$ompi_cv_asm_arch"
>>> OPAL_ASSEMBLY_ARCH="$ompi_cv_asm_arch"
>>> AC_MSG_CHECKING([for asssembly architecture])
>>> AC_MSG_RESULT([$ompi_cv_asm_arch])
>>> AC_DEFINE_UNQUOTED([OPAL_ASSEMBLY_ARCH], [$result],
>>> - [Architecture type of assembly to use for atomic operations])
>>> + [Architecture type of assembly to use for atomic operations
>>> and CMA])
>>> AC_SUBST([OPAL_ASSEMBLY_ARCH])
>>>
>>> + result="OMPI_$ompi_cv_asm_builtin"
>>> + OPAL_ASSEMBLY_BUILTIN="$ompi_cv_asm_builtin"
>>> + AC_MSG_CHECKING([for builtin atomics])
>>> + AC_MSG_RESULT([$ompi_cv_asm_builtin])
>>> + AC_DEFINE_UNQUOTED([OPAL_ASSEMBLY_BUILTIN], [$result],
>>> + [Whether to use builtin atomics])
>>> + AC_SUBST([OPAL_ASSEMBLY_BUILTIN])
>>> +
>>> OMPI_ASM_FIND_FILE
>>>
>>> unset result asm_format
>>> @@ -983,7 +993,7 @@
>>> AC_REQUIRE([AC_PROG_GREP])
>>> AC_REQUIRE([AC_PROG_FGREP])
>>>
>>> -if test "$ompi_cv_asm_arch" != "WINDOWS" -a "$ompi_cv_asm_arch" !=
>>> "SYNC_BUILTIN" -a "$ompi_cv_asm_arch" != "OSX_BUILTIN" ; then
>>> +if test "$ompi_cv_asm_arch" != "WINDOWS" -a "$ompi_cv_asm_builtin" !=
>>> "SYNC_BUILTIN" -a "$ompi_cv_asm_builtin" != "OSX_BUILTIN" ; then
>>> AC_CHECK_PROG([PERL], [perl], [perl])
>>>
>>> # see if we have a pre-built one already
>>>
>>> Modified: trunk/opal/include/opal/sys/architecture.h
>>>
>>> =========================================================================
>>> =====
>>> --- trunk/opal/include/opal/sys/architecture.h Tue Apr 15 03:23:39
>>> 2014 (r31392)
>>> +++ trunk/opal/include/opal/sys/architecture.h 2014-04-15 09:17:04 EDT
>>> (Tue, 15 Apr 2014) (r31393)
>>> @@ -39,6 +39,7 @@
>>> #define OMPI_ARM 0100
>>> #define OMPI_SYNC_BUILTIN 0200
>>> #define OMPI_OSX_BUILTIN 0400
>>> +#define OMPI_NO_BUILTIN 0800
>>>
>>> /* Formats */
>>> #define OMPI_DEFAULT 1000 /* standard for given architecture */
>>>
>>> Modified: trunk/opal/include/opal/sys/atomic.h
>>>
>>> =========================================================================
>>> =====
>>> --- trunk/opal/include/opal/sys/atomic.h Tue Apr 15 03:23:39
>>> 2014 (r31392)
>>> +++ trunk/opal/include/opal/sys/atomic.h 2014-04-15 09:17:04 EDT (Tue,
>>> 15 Apr 2014) (r31393)
>>> @@ -136,9 +136,13 @@
>>> * Load the appropriate architecture files and set some reasonable
>>> * default values for our support
>>> *
>>> - *********************************************************************/
>>> +
>>> *********************************************************************/
>>> #if defined(DOXYGEN)
>>> /* don't include system-level gorp when generating doxygen files */
>>> +#elif OPAL_ASSEMBLY_BUILTIN == OMPI_SYNC_BUILTIN
>>> +#include "opal/sys/sync_builtin/atomic.h"
>>> +#elif OPAL_ASSEMBLY_BUILTIN == OMPI_OSX_BUILTIN
>>> +#include "opal/sys/osx/atomic.h"
>>> #elif OPAL_ASSEMBLY_ARCH == OMPI_ALPHA
>>> #include "opal/sys/alpha/atomic.h"
>>> #elif OPAL_ASSEMBLY_ARCH == OMPI_AMD64
>>> @@ -161,10 +165,6 @@
>>> #include "opal/sys/sparcv9/atomic.h"
>>> #elif OPAL_ASSEMBLY_ARCH == OMPI_SPARCV9_64
>>> #include "opal/sys/sparcv9/atomic.h"
>>> -#elif OPAL_ASSEMBLY_ARCH == OMPI_SYNC_BUILTIN
>>> -#include "opal/sys/sync_builtin/atomic.h"
>>> -#elif OPAL_ASSEMBLY_ARCH == OMPI_OSX_BUILTIN
>>> -#include "opal/sys/osx/atomic.h"
>>> #endif
>>>
>>> #ifndef DOXYGEN
>>> _______________________________________________
>>> svn-full mailing list
>>> svn-full_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/svn-full
>>
>>
>> --
>> Jeff Squyres
>> jsquyres_at_[hidden]
>> For corporate legal information go to:
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>
>> _______________________________________________
>> devel mailing list
>> devel_at_[hidden]
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> Link to this post:
>> http://www.open-mpi.org/community/lists/devel/2014/04/14529.php
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: http://www.open-mpi.org/community/lists/devel/2014/04/14530.php

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/