Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] 1.4.4rc2 is up
From: Larry Baker (baker_at_[hidden])
Date: 2011-05-18 14:55:38


Jeff,

> Hmm. This sounds right, but I'm a little curious as to why this
> never came up before.

I reported this, as well as several others, in August 2010, "Fixes to
OpenMPI-1.4.2 for PGI compilers". (Attached are my patches for
OpenMPI 1.4.2.) At that time I was using the PGI 10.x compilers.

> What was the specific problem that caused you to add this patch?

These warning messages are from PGI C++ 11.4 for the assembly language
macros in OpenMPI 1.4.3 opal/include/opal/sys/amd64/atomic.h:

> libtool: compile: pgcpp -m64 -DHAVE_CONFIG_H -I. -I../../../opal/
> include -I../../../orte/include -I../../../ompi/include -I../../../
> opal/mca/paffinity/linux/plpa/src/libplpa -
> DOMPI_BUILDING_CXX_BINDINGS_LIBRARY=1 -DOMPI_SKIP_MPICXX=1 -I../../
> .. -D_REENTRANT -DNDEBUG -g -O3 -DNO_PGI_OFFSET -c mpicxx.cc -fpic -
> DPIC -o .libs/mpicxx.o
> "../../../opal/include/opal/sys/amd64/atomic.h", line 91: warning:
> "cc"
> clobber ignored
> : "memory", "cc");
> ^
>
> "../../../opal/include/opal/sys/amd64/atomic.h", line 83: warning:
> parameter
> "oldval" was set but never used
> int32_t oldval, int32_t
> newval)
> ^
>
> "../../../opal/include/opal/sys/amd64/atomic.h", line 112: warning:
> "cc"
> clobber ignored
> : "memory", "cc"
> ^
>
> "../../../opal/include/opal/sys/amd64/atomic.h", line 104: warning:
> parameter
> "oldval" was set but never used
> int64_t oldval, int64_t
> newval)
> ^

configure defines OMPI_CXX_GCC_INLINE_ASSEMBLY as 1 in opal/include/
opal_config.h (unlike OMPI_C_GCC_INLINE_ASSEMBLY, which is defined as
0), which causes the assembly language macros to be used:

> # find . -name \*.h -exec grep \#define.\*OMPI_.\*_INLINE_ASSEMBLY
> {} ';' -print
> <snip>
> #define OMPI_CXX_DEC_INLINE_ASSEMBLY 0
> #define OMPI_CXX_GCC_INLINE_ASSEMBLY 1
> #define OMPI_CXX_XLC_INLINE_ASSEMBLY 0
> #define OMPI_C_DEC_INLINE_ASSEMBLY 0
> #define OMPI_C_GCC_INLINE_ASSEMBLY 0
> #define OMPI_C_XLC_INLINE_ASSEMBLY 0
> ./opal/include/opal_config.h

Larry Baker
US Geological Survey
650-329-5608
baker_at_[hidden]

On 18 May 2011, at 6:17 AM, Jeff Squyres wrote:

> Hmm. This sounds right, but I'm a little curious as to why this
> never came up before. What was the specific problem that caused you
> to add this patch?
>
>
> On May 17, 2011, at 9:41 PM, Larry Baker wrote:
>
>> This bug applies to OpenMPI 1.4.x and 1.5.x.
>>
>> Inline assembly does not work for PGI compilers. configure
>> disables inline assembly for PGI C, but neglects to do the same for
>> PGI C++. The code that disables inline assembly for PGI C needs to
>> be copied to the section that handles inline assembly for C++.
>>
>> Here's the diff -u from OpenMPI 1.4.3 (same code, same bug):
>>
>>> [root_at_hydra openmpi-1.4.3]# diff -u configure{.original,}
>>> --- configure.original 2010-10-05 15:48:18.000000000 -0700
>>> +++ configure 2011-05-17 18:35:04.000000000 -0700
>>> @@ -34690,6 +34690,11 @@
>>> { $as_echo "$as_me:$LINENO: checking if $CXX supports GCC
>>> inline assembly" >&5
>>> $as_echo_n "checking if $CXX supports GCC inline assembly... "
>>> >&6; }
>>>
>>> + if test "$ompi_cv_cxx_compiler_vendor" = "portland group" ;
>>> then
>>> + # PGI seems to have some issues with our inline assembly.
>>> + # Disable for now.
>>> + asm_result="no (Portland Group)"
>>> + else
>>> case $host in
>>> *-aix*)
>>> # the AIX compilers and linkers really don't do gcc
>>> @@ -34813,6 +34818,7 @@
>>> rm -f core conftest.err conftest.$ac_objext
>>> conftest_ipa8_conftest.oo \
>>> conftest$ac_exeext conftest.$ac_ext
>>> fi
>>> + fi
>>>
>>> { $as_echo "$as_me:$LINENO: result: $asm_result" >&5
>>> $as_echo "$asm_result" >&6; }
>>
>> Larry Baker
>> US Geological Survey
>> 650-329-5608
>> baker_at_[hidden]
>>
>> On 5 May 2011, at 7:15 AM, Jeff Squyres wrote:
>>
>>> Fixed the ROMIO attribute problem properly this time -- it's in
>>> the usual place:
>>>
>>> http://www.open-mpi.org/software/ompi/v1.4/
>>>
>>> --
>>> 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]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>
>> _______________________________________________
>> devel mailing list
>> devel_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
>
> --
> 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]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel