Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] 1.5.5rc1 tested: MacOS/ppc (w/ 1 failure and a "CMR")
From: Paul H. Hargrove (PHHargrove_at_[hidden])
Date: 2012-02-15 23:58:35


Ah, I see that my problems on MacOS 10.4 are already a moot point, as my
"option (c)" has already been implemented.

 From README in 1.5 branch:
> - OS X (10.5, 10.6), 32 and 64 bit (x86_64), with gcc and Absoft
> compilers (*)
and from trunk:
> - OS X (10.5, 10.6, 10.7), 32 and 64 bit (x86_64), with gcc
> and Absoft compilers (*).

-Paul

On 2/15/2012 7:24 PM, Paul H. Hargrove wrote:
> As a point for discussion, I am going to offer a simple solution:
>
> c) Ignore this for 1.5.5 and raise the minimum MacOS version from 10.4
> to 10.5 for ompi 1.6.x and 1.7.x
>
> Any strong opinions?
>
> -Paul
>
> On 2/15/2012 10:29 AM, Paul H. Hargrove wrote:
>> I wanted to note that MacOS 10.4 on *X86* has the same "WEAK"
>> definitions in opal_config.h.
>> Yet it can build ompi-1.5.x with only WARNING about duplicate symbols.
>> I just tried, and the test code Matthias sent worked too:
>>
>> $ ./bin/mpicc pmpi_test.c
>> /usr/bin/ld: warning multiple definitions of symbol _MPI_Finalize
>> /var/tmp//cc7tP6zp.o definition of _MPI_Finalize in section
>> (__TEXT,__text)
>> /Users/phhargrove/OMPI/openmpi-1.5.5rc1/INST/lib/libmpi.dylib(single
>> module) definition of _MPI_Finalize
>>
>> $ ./a.out
>> inside MPI_Finalize() wrapper
>>
>> So, I don't think (A) is an appropriate solution.
>> I am also wondering if there is some compiler/linker flag we
>> could/should pass to "fix" the PPC.
>>
>>
>> Going back to the 10.4/PPC I see now that despite the warnings, a
>> working executable WAS generated:
>> $ ./a.out
>> inside MPI_Finalize() wrapper
>>
>> So, I don't think we have managed to reproduce the source of the
>> build problem.
>>
>> -Paul
>>
>> On 2/15/2012 9:25 AM, Matthias Jurenz wrote:
>>> Thanks for testing, Paul.
>>>
>>> I think we need an additional configure test which disables VT if
>>>
>>> a) weak symbol support is disabled/not available
>>>
>>> - or more precise -
>>>
>>> b) configuring on PPC/Mac10.4 and the used GNU compiler version is
>>> older or
>>> equal to 4.0.1
>>>
>>> I prefer to option b) because VT (i.e. PMPI) should also work
>>> without weak
>>> symbol support (at least it does on my laptop with gcc 4.4.3 and
>>> '--disable-
>>> weak-symbols'). On the other hand, in the most cases the compiler
>>> supports
>>> weak symbols, so option a) would also work, unless weak symbol
>>> support is
>>> disabled by the configure option '--disable-weak-symbols'.
>>> Jeff, what's your opinion?
>>>
>>> Matthias
>>>
>>> On Wednesday 15 February 2012 10:33:30 Paul Hargrove wrote:
>>>> See responses mixed in below.
>>>>
>>>> On Wed, Feb 15, 2012 at 1:02 AM, Matthias Jurenz<
>>>>
>>>> matthias.jurenz_at_[hidden]> wrote:
>>>>> Unfortunately, we don't have access to a PPC system with MacOS
>>>>> 10.4 to
>>>>> try to
>>>>> reproduce the error.
>>>> Not too surprising. I'll see what I can do to help resolve the
>>>> problem.
>>>>
>>>>> Paul, could you please check for the definition of the macro
>>>>> OPAL_HAVE_WEAK_SYMBOLS in ompi_config.h?
>>>> ompi_config.h doesn't contain that macro.
>>>> However, opal_config.h shows no weak symbol support:
>>>> #define HWLOC_HAVE_ATTRIBUTE_WEAK_ALIAS 0
>>>> #define OPAL_HAVE_ATTRIBUTE_WEAK_ALIAS 0
>>>> #define OPAL_HAVE_WEAK_SYMBOLS 0
>>>>
>>>>> I assume that the ancient GNU compiler
>>>>> on PPC/MacOS10.4 does not support weak-symbols which cause the
>>>>> multiply
>>>>> definitions.
>>>> Does that mean I should simply not expect to get VT built there?
>>>>
>>>>> Furthermore, could you please try to build the following code to test
>>>>> whether
>>>>> the PMPI interface of Open MPI works in general?
>>>>>
>>>>> #include<stdio.h>
>>>>> #include<mpi.h>
>>>>>
>>>>> int MPI_Finalize() {
>>>>>
>>>>> printf( "inside MPI_Finalize() wrapper\n" );
>>>>> return PMPI_Finalize();
>>>>>
>>>>> }
>>>>>
>>>>> int main(int argc, char** argv) {
>>>>>
>>>>> MPI_Init(&argc,&argv);
>>>>> MPI_Finalize();
>>>>>
>>>>> }
>>>> I am assuming I am supposed to build that with VT disabled in my OMPI
>>>> build.
>>>> Doing so, I see that PMPI is apparently not working:
>>>> $ ./bin/mpicc pmpi_test.c
>>>> /usr/bin/ld: warning multiple definitions of symbol _MPI_Finalize
>>>> /var/tmp//ccHZvZ3B.o definition of _MPI_Finalize in section
>>>> (__TEXT,__text)
>>>> /Users/phargrov/OMPI/openmpi-1.5.5rc1/INST/lib/libmpi.dylib(single
>>>> module)
>>>> definition of _MPI_Finalize
>>>>
>>>>> Maybe the error occurs only if this code is in a shared library which
>>>>> depends
>>>>> on the MPI library (as does the libvt-mpi). Therefor, run the
>>>>> following:
>>>>>
>>>>> $ gcc -fPIC -shared pmpi_test.c -I<mpi-inc-dir> -o
>>>>> libpmpi_test.dylib
>>>>> -L<mpi-
>>>>> lib-dir> -lmpi
>>>> I assume this check might be redundant given that the previous one
>>>> failed.
>>>> However, here it is anyway:
>>>> $ gcc -fPIC -shared pmpi_test.c -Iinclude -o libpmpi_test.dylib -Llib
>>>> powerpc-apple-darwin8-gcc-4.0.1: unrecognized option '-shared'
>>>> /usr/bin/ld: Undefined symbols:
>>>> _MPI_Init
>>>> _PMPI_Finalize
>>>> collect2: ld returned 1 exit status
>>>>
>>>>
>>>> -Paul
>>>>
>>>>> Thanks!
>>>>>
>>>>> Matthias
>>>>>
>>>>>> On 12/14/2011 2:51 PM, Paul H. Hargrove wrote:
>>>>>> I've attempted to reproduce the failure reported below for MacOS
>>>>>> 10.4
>>>>>> for PPC on an X86-64 system.
>>>>>> First, I've realized that while I reported "make check" as the
>>>>>> source
>>>>>> of the problem, it occurs at "make".
>>>>>>
>>>>>> Regardless of that mistake in my reporting, I was unable to
>>>>>> reproduce
>>>>>> the problem, making this a PPC-specific problem as far as I can
>>>>>> tell.
>>>>>> Instead of 255 instances of "ld: multiple definitions of symbol
>>>>>> _MPI_*"
>>>>>> I get instances of "ld: warning multiple definitions of symbol
>>>>>> _MPI*",
>>>>>> where the only difference is the addition of the word "warning".
>>>>>> However, this is apparently non-fatal on the x86-64 but fatal by
>>>>>> default on PPC.
>>>>>>
>>>>>> -Paul
>>>>>>
>>>>>> On 12/13/2011 9:30 PM, Paul H. Hargrove wrote:
>>>>>>> Using the 1.5.5rc1 tarball, I've repeated tests on the following
>>>>>>> platforms for which I recently reported 1.4.5rc1 results:
>>>>>>>
>>>>>>> MacOS 10.5 (Leopard) on PPC:
>>>>>>> powerpc-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5488)
>>>>>>> MacOS 10.4 (Tiger) on PPC:
>>>>>>> powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc.
>>>>>>> build 5341)
>>>>>>> MacOS 10.3 (Panther) on PPC:
>>>>>>> gcc (GCC) 3.3 20030304 (Apple Computer, Inc. build 1666)
>>>>>>>
>>>>>>> On MacOS 10.5 "make all install check" completed w/o incident.
>>>>>>>
>>>>>>> Unfortunately, on MacOS 10.4 (Tiger) I get multiply defined symbols
>>>>>>>
>>>>>>> from VT in "make check":
>>>>>>>> Making check in vtlib
>>>>>>>> CCLD libvt-mpi.la
>>>>>>>> ld: multiple definitions of symbol _MPI_Abort
>>>>>>>> .libs/libvt_mpi_la-vt_mpiwrap.o definition of _MPI_Abort in
>>>>>>>> section
>>>>>>>> (__TEXT,__text)
>>>>>>>> /Users/phargrov/openmpi-1.5.5rc1/BUILD-
>>>>> dflt/ompi/contrib/vt/vt/../../../.libs/libmpi.dylib(single
>>>>>
>>>>>>>> module) definition of _MPI_Abort
>>>>>>> [...253 more "ld: multiple definitions of symbol" errors...]
>>>>>>>
>>>>>>>> ld: multiple definitions of symbol _MPI_Win_wait
>>>>>>>> .libs/libvt_mpi_la-vt_mpiwrap.o definition of _MPI_Win_wait in
>>>>>>>> section (__TEXT,__text)
>>>>>>>> /Users/phargrov/openmpi-1.5.5rc1/BUILD-
>>>>> dflt/ompi/contrib/vt/vt/../../../.libs/libmpi.dylib(single
>>>>>
>>>>>>>> module) definition of _MPI_Win_wait
>>>>>>>> /usr/bin/libtool: internal link edit command failed
>>>>>>>> make[4]: *** [libvt-mpi.la] Error 1
>>>>>>> Unlike the compilation failure for 1.4.5rc1 on MacOS 10.3
>>>>>>> (Panther),
>>>>>>> I
>>>>>>>
>>>>>>> got the following at configure time:
>>>>>>>> configure: WARNING: Open MPI does not support OS X prior to
>>>>>>>> version
>>>>>>>> 10.4 (Tiger)
>>>>>>>> configure: error: Cannot continue
>>>>>>> So I would like to "CMR" this logic to the 1.4 branch.
>>>>>>>
>>>>>>>
>>>>>>> -Paul
>>>>>>>
>>>>>>> On 12/13/2011 8:36 PM, Jeff Squyres wrote:
>>>>>>>> In the usual place:
>>>>>>>>
>>>>>>>> http://www.open-mpi.org/software/ompi/v1.5/
>>>>>>>>
>>>>>>>> Please test! I would really like to get this out by the end of the
>>>>>>>> week.
>>>>>>>>
>>>>>>>> Two issues *might* still be considered for this release:
>>>>>>>>
>>>>>>>> Putting back the openib minor fixes
>>>>>>>> https://svn.open-mpi.org/trac/ompi/ticket/2930
>>>>>>>>
>>>>>>>> Making the "your SM file is on an NFS!" warning disable-able
>>>>>>>> (this is the v1.4 ticket)
>>>>>>>> https://svn.open-mpi.org/trac/ompi/ticket/2937
>>>>>>>>
>>>>>>>> They would both need to be fixed in the *immediate future* to be
>>>>>>>> considered.
>>>>>> --
>>>>>> Paul H. Hargrove PHHargrove_at_[hidden]
>>>>>> Future Technologies Group
>>>>>> HPC Research Department Tel: +1-510-495-2352
>>>>>> Lawrence Berkeley National Laboratory Fax: +1-510-486-6900
>>
>

-- 
Paul H. Hargrove                          PHHargrove_at_[hidden]
Future Technologies Group
HPC Research Department                   Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900