Wow -- painful!  Glad you figured it out; thanks for posting it back here to 
make it google-able.


On Oct 3, 2011, at 9:21 AM, Dmitry N. Mikushin wrote:

> Ok, here's the solution: remove --as-needed option out of compiler's
> internal linker invocation command line. Steps to do this:
> 
> 1) Dump compiler specs: $ gcc -dumpspecs > specs
> 2) Open specs file for edit and remove --as-needed from the line
> 
> *link:
> %{!r:--build-id} --no-add-needed --as-needed %{!static:--eh-frame-hdr}
> %{!m32:-m elf_x86_64} %{m32:-m elf_i386} --hash-style=gnu
> %{shared:-shared}   %{!shared:     %{!static:
> %{rdynamic:-export-dynamic}       %{m32:-dynamic-linker
> %{muclibc:/lib/ld-uClibc.so.0;:%{mbionic:/system/bin/linker;:/lib/ld-linux.so.2}}}
>      %{!m32:-dynamic-linker
> %{muclibc:/lib/ld64-uClibc.so.0;:%{mbionic:/system/bin/linker64;:/lib64/ld-linux-x86-64.so.2}}}}
>    %{static:-static}}
> 
> resulting into
> 
> *link:
> %{!r:--build-id} --no-add-needed %{!static:--eh-frame-hdr} %{!m32:-m
> elf_x86_64} %{m32:-m elf_i386} --hash-style=gnu   %{shared:-shared}
> %{!shared:     %{!static:       %{rdynamic:-export-dynamic}
> %{m32:-dynamic-linker
> %{muclibc:/lib/ld-uClibc.so.0;:%{mbionic:/system/bin/linker;:/lib/ld-linux.so.2}}}
>      %{!m32:-dynamic-linker
> %{muclibc:/lib/ld64-uClibc.so.0;:%{mbionic:/system/bin/linker64;:/lib64/ld-linux-x86-64.so.2}}}}
>    %{static:-static}}
> 
> 3) Save specs file into compiler's folder
> /usr/lib/gcc/<target>/<version>/ For example, in case of Ubuntu 10.10
> with gcc 4.6.1 it's /usr/lib/gcc/x86_64-linux-gnu/4.6.1/
> 
> With this change no unresolvable relocations anymore!
> 
> - D.
> 
> 2011/10/3 Dmitry N. Mikushin <maemar...@gmail.com>:
>> Hi,
>> 
>> Here's a reprocase, the same one as mentioned here:
>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=608901
>> 
>> marcusmae@loveland:~/Programming/mpitest$ cat mpitest.f90
>> program main
>> include 'mpif.h'
>> integer ierr
>> call mpi_init(ierr)
>> end
>> 
>> marcusmae@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@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@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 <maemar...@gmail.com>:
>>> 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 <jsquy...@cisco.com>:
>>>> 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 <jsquy...@cisco.com>:
>>>>>> 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 <jsquy...@cisco.com>:
>>>>>>>> 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 <jsquy...@cisco.com>:
>>>>>>>>>> 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
>>>>>>>>>>> us...@open-mpi.org
>>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Jeff Squyres
>>>>>>>>>> jsquy...@cisco.com
>>>>>>>>>> For corporate legal information go to:
>>>>>>>>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> _______________________________________________
>>>>>>>>>> users mailing list
>>>>>>>>>> us...@open-mpi.org
>>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>>>>>> 
>>>>>>>>> _______________________________________________
>>>>>>>>> users mailing list
>>>>>>>>> us...@open-mpi.org
>>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Jeff Squyres
>>>>>>>> jsquy...@cisco.com
>>>>>>>> For corporate legal information go to:
>>>>>>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>>>>>> 
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> users mailing list
>>>>>>>> us...@open-mpi.org
>>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> users mailing list
>>>>>>> us...@open-mpi.org
>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Jeff Squyres
>>>>>> jsquy...@cisco.com
>>>>>> For corporate legal information go to:
>>>>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> users mailing list
>>>>>> us...@open-mpi.org
>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>>> 
>>>>> _______________________________________________
>>>>> users mailing list
>>>>> us...@open-mpi.org
>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>> 
>>>> 
>>>> --
>>>> Jeff Squyres
>>>> jsquy...@cisco.com
>>>> For corporate legal information go to:
>>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>> 
>>>> 
>>>> _______________________________________________
>>>> users mailing list
>>>> us...@open-mpi.org
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>> 
>>> 
>> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to