[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