I think the LSF part of this may be a red herring.  Do you really need to add 
"-lbat -llsf" to the command line to make it work?

The error message *sounds* like y.tab.o was compiled differently than 
others...?  It's hard to know without seeing the output of mpicc --showme.


On Oct 17, 2014, at 7:51 AM, Ralph Castain <r...@open-mpi.org> wrote:

> Forwarding this for Paul until his email address gets updated on the User 
> list:
> 
>> Begin forwarded message:
>> 
>> Date: October 17, 2014 at 6:35:31 AM PDT
>> From: Paul Kapinos <kapi...@itc.rwth-aachen.de>
>> To: Open MPI Users <us...@open-mpi.org>
>> Cc: "Kapinos, Paul" <kapi...@itc.rwth-aachen.de>, 
>> <fri...@cats.rwth-aachen.de>
>> Subject: Open MPI 1.8: link problem when Fortran+C+Platform LSF
>> 
>> Dear Open MPI developer,
>> 
>> we have both Open MPI 1.6(.5) and 1.8(.3) in our cluster, configured to be 
>> used with Platform LSF.
>> 
>> One of our users run into an issue when trying to link his code (combination 
>> of lex/C and Fortran) with v.1.8, whereby with OpenMPI/1.6er the code can be 
>> linked OK.
>> 
>>> $ make
>>> mpif90 -c main.f90
>>> yacc -d example4.y
>>> mpicc -c y.tab.c
>>> mpicc -c mymain.c
>>> lex example4.l
>>> mpicc -c lex.yy.c
>>> mpif90 -o example main.o y.tab.o mymain.o lex.yy.o
>>> ld: y.tab.o(.text+0xd9): unresolvable R_X86_64_PC32 relocation against 
>>> symbol `yylval'
>>> ld: y.tab.o(.text+0x16f): unresolvable R_X86_64_PC32 relocation against 
>>> symbol `yyval'
>>> .......
>> 
>> looking into "mpif90 --show-me" let us see that the link line and possibly 
>> the philosophy behind it has been changed, there is also a note on it:
>> 
>> # Note that per https://svn.open-mpi.org/trac/ompi/ticket/3422, we
>> # intentionally only link in the MPI libraries (ORTE, OPAL, etc. are
>> # pulled in implicitly) because we intend MPI applications to only use
>> # the MPI API.
>> 
>> 
>> 
>> 
>> Well, by now we know two workarounds:
>> a) add "-lbat -llsf" to the link line
>> b) add " -Wl,--as-needed" to the link line
>> 
>> What would be better? Maybe one of this should be added to linker_flags=..." 
>> in the .../share/openmpi/mpif90-wrapper-data.txt file? As of the note above, 
>> (b) would be better?
>> 
>> Best
>> 
>> Paul Kapinos
>> 
>> P.S. $ mpif90 --show-me
>> 
>> 1.6.5
>> ifort -nofor-main -I/opt/MPI/openmpi-1.6.5/linux/intel/include -fexceptions 
>> -I/opt/MPI/openmpi-1.6.5/linux/intel/lib 
>> -L/opt/lsf/9.1/linux2.6-glibc2.3-x86_64/lib 
>> -L/opt/MPI/openmpi-1.6.5/linux/intel/lib -lmpi_f90 -lmpi_f77 -lmpi -losmcomp 
>> -lrdmacm -libverbs -lrt -lnsl -lutil -lpsm_infinipath -lbat -llsf -ldl -lm 
>> -lnuma -lrt -lnsl -lutil
>> 
>> 1.8.3
>> ifort             -I/opt/MPI/openmpi-1.8.3/linux/intel/include -fexceptions 
>> -I/opt/MPI/openmpi-1.8.3/linux/intel/lib 
>> -L/opt/lsf/9.1/linux2.6-glibc2.3-x86_64/lib -Wl,-rpath 
>> -Wl,/opt/lsf/9.1/linux2.6-glibc2.3-x86_64/lib -Wl,-rpath 
>> -Wl,/opt/MPI/openmpi-1.8.3/linux/intel/lib -Wl,--enable-new-dtags 
>> -L/opt/MPI/openmpi-1.8.3/linux/intel/lib -lmpi_usempif08 
>> -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi
>> 
>> P.S.2 $ man ld
>> ....
>>       --as-needed
>>       --no-as-needed
>>           This option affects ELF DT_NEEDED tags for dynamic libraries
>>           mentioned on the command line after the --as-needed option.
>>           Normally the linker will add a DT_NEEDED tag for each dynamic
>>           library mentioned on the command line, regardless of whether the
>>           library is actually needed or not.  --as-needed causes a DT_NEEDED
>>           tag to only be emitted for a library that satisfies an undefined
>>           symbol reference from a regular object file or, if the library is
>>           not found in the DT_NEEDED lists of other libraries linked up to
>>           that point, an undefined symbol reference from another dynamic
>>           library.  --no-as-needed restores the default behaviour.
>> 
>> ....
>> 
>> -- 
>> Dipl.-Inform. Paul Kapinos   -   High Performance Computing,
>> RWTH Aachen University, IT Center
>> Seffenter Weg 23,  D 52074  Aachen (Germany)
>> Tel: +49 241/80-24915
>> 
> 
> <lexyacc.zip>


-- 
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