Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Undefined symbols with MPI_Get_address
From: Jeff Squyres (jsquyres) (jsquyres_at_[hidden])
Date: 2013-08-06 11:22:27


You found a bug!

Embarrissingly, we have MPI_Get_address prototyped in the Fortran module, but it is not actually implemented (whereas MPI_Address is both prototyped and implemented). Yow. :-(

This is just a minor oversight; there's no technical issue that prevents this implementation. I've committed a patch to the SVN development trunk (https://svn.open-mpi.org/trac/ompi/changeset/29005), and have filed to have this moved over to the upcoming v1.7.3 release.

On Aug 5, 2013, at 7:31 AM, Hugo Gagnon <opensource.openmpi_at_[hidden]> wrote:

> Build log attached.
>
> --
> Hugo Gagnon
>
> On Mon, Aug 5, 2013, at 10:04, Hugo Gagnon wrote:
>> Will do, for now the best I can give is the portfile containing some
>> config options:
>>
>> https://trac.macports.org/browser/trunk/dports/science/openmpi/Portfile
>>
>> I used the gcc48 variant.
>>
>> --
>> Hugo Gagnon
>>
>> On Mon, Aug 5, 2013, at 9:52, Jeff Squyres (jsquyres) wrote:
>>> Can you send your build logs? See:
>>>
>>> http://www.open-mpi.org/community/help/
>>>
>>> (I know you said you installed via macports, but we don't package that,
>>> so we don't know how it's built)
>>>
>>>
>>> On Aug 5, 2013, at 8:50 AM, Hugo Gagnon
>>> <opensource.openmpi_at_[hidden]> wrote:
>>>
>>>> I could replicate the problem with the following:
>>>>
>>>> program test
>>>> use mpi
>>>> integer :: ierr, a
>>>> integer(kind=MPI_ADDRESS_KIND) :: address
>>>> call MPI_Init(ierr)
>>>> a = 0
>>>> call MPI_Get_address(a,address,ierr)
>>>> write(*,*) address
>>>> call MPI_Finalize(ierr)
>>>> end program test
>>>>
>>>> $ openmpif90 test.f90
>>>> Undefined symbols for architecture x86_64:
>>>> "_mpi_get_address0di4_", referenced from:
>>>> _MAIN__ in ccLLbLGQ.o
>>>> ld: symbol(s) not found for architecture x86_64
>>>>
>>>> --
>>>> Hugo Gagnon
>>>>
>>>> On Mon, Aug 5, 2013, at 9:42, Jeff Squyres (jsquyres) wrote:
>>>>> Can you send a small reproducing example?
>>>>>
>>>>>
>>>>> On Aug 4, 2013, at 1:46 PM, Hugo Gagnon
>>>>> <opensource.openmpi_at_[hidden]> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have a .f90 module containing several lines of the form:
>>>>>>
>>>>>> call mpi_get_address(location, address, error)
>>>>>>
>>>>>> The module compiles fine (though only if I set the "kind" of "address"
>>>>>> to MPI_OFFSET_KIND) but I get this error at the linking stage:
>>>>>>
>>>>>> Undefined symbols for architecture x86_64:
>>>>>> "_mpi_get_address0di4_", referenced from:
>>>>>> ___io_mod_MOD_writegridparallel in IO_Mod.o
>>>>>> ___io_mod_MOD_writemeanstats in IO_Mod.o
>>>>>> ___io_mod_MOD_writeinststats in IO_Mod.o
>>>>>> ___io_mod_MOD_writequbckp in IO_Mod.o
>>>>>> "_mpi_get_address0dr8_", referenced from:
>>>>>> ___io_mod_MOD_writegridparallel in IO_Mod.o
>>>>>> ___io_mod_MOD_writequbckp in IO_Mod.o
>>>>>> "_mpi_get_address1dr8_", referenced from:
>>>>>> ___io_mod_MOD_writemeanstats in IO_Mod.o
>>>>>> ___io_mod_MOD_writeinststats in IO_Mod.o
>>>>>> ld: symbol(s) not found for architecture x86_64
>>>>>>
>>>>>> I'm using gcc 4.8.1 and openmpi 1.7.2, both built from macports.
>>>>>>
>>>>>> Inputs appreciated,
>>>>>> --
>>>>>> Hugo Gagnon
>>>>>> _______________________________________________
>>>>>> users mailing list
>>>>>> users_at_[hidden]
>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>
>>>>>
>>>>> --
>>>>> Jeff Squyres
>>>>> jsquyres_at_[hidden]
>>>>> For corporate legal information go to:
>>>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> users mailing list
>>>>> users_at_[hidden]
>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>> _______________________________________________
>>>> users mailing list
>>>> users_at_[hidden]
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>
>>>
>>> --
>>> Jeff Squyres
>>> jsquyres_at_[hidden]
>>> For corporate legal information go to:
>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>
>>>
>>> _______________________________________________
>>> users mailing list
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
> <ompi-output.tar.bz2>_______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

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