[mpich-discuss] MPICH2-1.3.1 libmpich.a: relocation R_X86_64_32 against `mpifcmb2_' can not be used when making a shared object; recompile with -fPIC

Dave Goodell goodell at mcs.anl.gov
Fri Jan 7 17:00:24 CST 2011


Hmm... I'm not sure I understand why this is happening.

Can you try compiling the failing link step for your application with "-v" and send us the output?  This should tell us the final library search path that the compiler is using when trying to link your application.

This _might_ be an rpath issue.  By default, MPICH2 specifies an rpath when linking.  You can disable the rpath by passing "--disable-rpath" to configure and rebuilding+reinstalling.  But you'll need to add the installed library path to your LD_LIBRARY_PATH (or something equivalent).

-Dave

On Jan 7, 2011, at 3:53 PM CST, Sunil Thomas wrote:

> Hi Dave,
>  
>     Thanks for the response. Actually I added "-fPIC" to both CFLAGS and CXXFLAGS in my next try. I've always
> been building with --enable-shared, and only started adding the flags after I got the error recommending them. But
> I still got the error (second one mentioned in the e-mail).
>  
>      Yes, my application is being built with "-fPIC" as well. The only fix I found so far is tos specify the link against
> the shared object (.so) mpich libraries, instead of static ones. 
>  
> Thanks!
> --Sunil.
> 
> On Fri, Jan 7, 2011 at 11:25 AM, Dave Goodell <goodell at mcs.anl.gov> wrote:
> Well, you might be able to solve your C++ application build error by using the same workaround you used for C.  Add "-fPIC" to your CXXFLAGS when you build MPICH2.
> 
> However, that said, it shouldn't be necessary to add those flags to your plain old CFLAGS/CXXFLAGS when building MPICH2 with "--enable-shared".  Are you building your application with "-fPIC" as well?  If not, then the reason that adding those to MPICH2's build flags fixes your problem is because that flag is then added to the mpicc and mpicxx compiler wrapper scripts.
> 
> -Dave
> 
> On Jan 6, 2011, at 10:24 PM CST, Sunil Thomas wrote:
> 
> > Just to follow-up on this issue; I resolved it by linking instead against the dynamic library
> > libmpich.so (shared objects files). I am configuring this entirely with cmake and it could
> > very well be that I am not specifying the right things in the cmake file (but I still feel the
> > previous version should work, using the static libs).
> >
> > Any further thoughts on this will be appreciated..
> >
> > --Sunil.
> >
> > On Thu, Jan 6, 2011 at 8:02 PM, Sunil Thomas <sgthomas27 at gmail.com> wrote:
> > Hi,
> >
> >    First I built mpich2-1.3.1 following the directions in install.pdf doc with --enable-shared
> > and the built and install complete successfully but I got the following error when building
> > my application:
> >
> > relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object,
> > recompile with -fPIC  (Could not read symbols: Bad value)
> >
> >
> >    Then I built mpich2-1.3.1 with CFLAGS=-fPIC and --enable-shared and the build and install
> > again comlpete successfully. (This is on RHEL 5). However when I try to build my application
> > using the resulting mpicxx compilers and link to the installed mpich libraries (my application
> > is written in C++), this time I got the following error:
> >
> >  relocation R_X86_64_32 against `mpifcmb2_' can not be used when making a shared object;
> > recompile with -fPIC (Could not read symbols: Bad value)
> >
> > Greatly appreciate any advice on a fix to the this issue. Let me know if I can provide more
> > info.
> >
> > Thanks!
> > --Sunil.
> >
> >
> > _______________________________________________
> > mpich-discuss mailing list
> > mpich-discuss at mcs.anl.gov
> > https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
> 
> _______________________________________________
> mpich-discuss mailing list
> mpich-discuss at mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
> 
> _______________________________________________
> mpich-discuss mailing list
> mpich-discuss at mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss



More information about the mpich-discuss mailing list