Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] unresolvable R_X86_64_64 relocation against symbol `mpi_fortran_*
From: Dmitry N. Mikushin (maemarcus_at_[hidden])
Date: 2011-10-03 05:53:11


Hi,

Here's a reprocase, the same one as mentioned here:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=608901

marcusmae_at_loveland:~/Programming/mpitest$ cat mpitest.f90
program main
include 'mpif.h'
integer ierr
call mpi_init(ierr)
end

marcusmae_at_loveland:~/Programming/mpitest$ mpif90 -g mpitest.f90
/usr/bin/ld: /tmp/cc3NLduM.o(.debug_info+0x542): unresolvable
R_X86_64_64 relocation against symbol `mpi_fortran_argv_null_'
/usr/bin/ld: /tmp/cc3NLduM.o(.debug_info+0x55c): unresolvable
R_X86_64_64 relocation against symbol `mpi_fortran_argv_null_'
/usr/bin/ld: /tmp/cc3NLduM.o(.debug_info+0x5d2): unresolvable
R_X86_64_64 relocation against symbol `mpi_fortran_errcodes_ignore_'
/usr/bin/ld: /tmp/cc3NLduM.o(.debug_info+0x5ec): unresolvable
R_X86_64_64 relocation against symbol `mpi_fortran_errcodes_ignore_'

Remove "-g", and the error will be gone.

marcusmae_at_loveland:~/Programming/mpitest$ mpif90 --showme -g mpitest.f90
gfortran -g mpitest.f90 -I/opt/openmpi_gcc-1.5.4/include -pthread
-I/opt/openmpi_gcc-1.5.4/lib -L/opt/openmpi_gcc-1.5.4/lib -lmpi_f90
-lmpi_f77 -lmpi -ldl -Wl,--export-dynamic -lnsl -lutil -lm -ldl

marcusmae_at_loveland:~/Programming/mpitest$ mpif90 -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gfortran
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6.1/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.6.1-9ubuntu3'
--with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr
--program-suffix=-4.6 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin
--enable-objc-gc --disable-werror --with-arch-32=i686
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)

2011/9/28 Dmitry N. Mikushin <maemarcus_at_[hidden]>:
> Hi,
>
> Interestingly, the errors are gone after I removed "-g" from the app
> compile options.
>
> I tested again on the fresh Ubuntu 11.10 install: both 1.4.3 and 1.5.4
> compile fine, but with the same error.
> Also I tried hard to find any 32-bit object or library and failed.
> They all are 64-bit.
>
> - D.
>
> 2011/9/24 Jeff Squyres <jsquyres_at_[hidden]>:
>> Check the output from when you ran Open MPI's configure and "make all" -- did it decide to build the F77 interface?
>>
>> Also check that gcc and gfortran output .o files of the same bitness / type.
>>
>>
>> On Sep 24, 2011, at 8:07 AM, Dmitry N. Mikushin wrote:
>>
>>> Compile and link - yes, but it turns out there was some unnoticed
>>> compilation error because
>>>
>>> ./hellompi: error while loading shared libraries: libmpi_f77.so.1:
>>> cannot open shared object file: No such file or directory
>>>
>>> and this library does not exist.
>>>
>>> Hm.
>>>
>>> 2011/9/24 Jeff Squyres <jsquyres_at_[hidden]>:
>>>> Can you compile / link simple OMPI applications without this problem?
>>>>
>>>> On Sep 24, 2011, at 7:54 AM, Dmitry N. Mikushin wrote:
>>>>
>>>>> Hi Jeff,
>>>>>
>>>>> Today I've verified this application on the Feroda 15 x86_64, where
>>>>> I'm usually building OpenMPI from source using the same method.
>>>>> Result: no link errors there! So, the issue is likely ubuntu-specific.
>>>>>
>>>>> Target application is compiled linked with mpif90 pointing to
>>>>> /opt/openmpi_gcc-1.5.4/bin/mpif90 I built.
>>>>>
>>>>> Regarding architectures, everything in target folders and OpenMPI
>>>>> installation is
>>>>> ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
>>>>> linked, not stripped
>>>>>
>>>>> - D.
>>>>>
>>>>> 2011/9/24 Jeff Squyres <jsquyres_at_[hidden]>:
>>>>>> How does the target application compile / link itself?
>>>>>>
>>>>>> Try running "file" on the Open MPI libraries and/or your target application .o files to see what their bitness is, etc.
>>>>>>
>>>>>>
>>>>>> On Sep 22, 2011, at 3:15 PM, Dmitry N. Mikushin wrote:
>>>>>>
>>>>>>> Hi Jeff,
>>>>>>>
>>>>>>> You're right because I also tried 1.4.3, and it's the same issue
>>>>>>> there. But what could be wrong? I'm using the simplest form -
>>>>>>> ../configure --prefix=/opt/openmpi_gcc-1.4.3/ and only installed
>>>>>>> compilers are system-default gcc and gfortran 4.6.1. Distro is ubuntu
>>>>>>> 11.10. There is no any mpi installed from packages, and no -m32
>>>>>>> options around. What else could be the source?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> - D.
>>>>>>>
>>>>>>> 2011/9/22 Jeff Squyres <jsquyres_at_[hidden]>:
>>>>>>>> This usually means that you're mixing compiler/linker flags somehow (e.g., built something with 32 bit, built something else with 64 bit, try to link them together).
>>>>>>>>
>>>>>>>> Can you verify that everything was built with all the same 32/64?
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sep 22, 2011, at 1:21 PM, Dmitry N. Mikushin wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> OpenMPI 1.5.4 compiled with gcc 4.6.1 and linked with target app gives
>>>>>>>>> a load of linker messages like this one:
>>>>>>>>>
>>>>>>>>> /usr/bin/ld: ../../lib/libutil.a(parallel_utilities.o)(.debug_info+0x529d):
>>>>>>>>> unresolvable R_X86_64_64 relocation against symbol
>>>>>>>>> `mpi_fortran_argv_null_
>>>>>>>>>
>>>>>>>>> There are a lot of similar messages about other mpi_fortran_ symbols.
>>>>>>>>> Is it a known issue?
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> - D.
>>>>>>>>> _______________________________________________
>>>>>>>>> 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
>>>>
>>>>
>>>> --
>>>> 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
>>
>