[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 13:25:28 CST 2011


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



More information about the mpich-discuss mailing list