[gmx-users] Error compiling Gromacs 4.5.4: "relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC"
Justin A. Lemkul
jalemkul at vt.edu
Thu Apr 21 21:41:05 CEST 2011
Luca Bellucci wrote:
> Hi all,
> I have encountered the same problem.
> With this command:
> ./configure --with-fft=mkl --prefix=/path/gmx-4.5.3 --enable-mpi
> "make mdrun" works well
>
> When i used the same option with gmx 4.5.4
> ./configure --with-fft=mkl --prefix=/path/gmx-4.5.4 --enable-mpi
> "make mdrun" did not work.
> The compilation reported this error:
> ld: /usr/local/mpich2-1.3.2p2-install/lib/libmpich.a(allreduce.o): relocation
> R_X86_64_32 against `_2__STRING.14' can not be used when making a shared
> object; recompile with -fPIC
> etc..
> the problem here seems to be the use of shared or static libraries.
> I done configure command several times using the " --with-pic" and other
> combinations, however I did not resolve the problem. Perhaps there is an
> option that I have not seen!!
> Anyway I released that there is a different default behavior of the "configure"
> command.
> In fact using the options reported above the configure command gives in
> configure.ac for 4.5.3 at line ~27:
> AC_DISABLE_SHARED
>
> whereas in configure.ac for 4.5.4 ther is
> AC_ENABLE_SHARED
> test "$enable_mpi" = "yes" && AC_DISABLE_SHARED
>
> When i changed these two lines in AC_DISABLE_SHARED also gmx4.5.4 is compiled.
I think there may indeed be a problem with the build system, after all. When I
checked the configuration output, I saw:
...
checking whether to build shared libraries...yes
checking whether to build static libraries...yes
...
Please file a redmine issue so that this can be investigated, and fixed if
necessary.
redmine.gromacs.org
-Justin
> Luca
>
>> Pablo Englebienne wrote:
>>> Hi all,
>>>
>>> I'm trying to compile release 4.5.4 on a system that has been running
>>> every release since 4.0.4 without a problem. Even 4.5.3 compiled fine
>>> with the following configure:
>>>
>>> LDFLAGS="-L/cvos/shared/apps/fftw/gcc/64/3.2/lib"
>>> CPPFLAGS="-I/cvos/shared/apps/fftw/gcc/64/3.2/include" ./configure
>>> --prefix=$HOME/software
>>>
>>> The LDFLAGS and CPPFLAGS specify the (non-standard) location of the FFTW
>>> libraries and headers. Configure succeeds in creating the Makefiles, but
>>> when running make it aborts at this point:
>>>
>>> cc -shared .libs/calcmu.o .libs/calcvir.o .libs/constr.o
>>> .libs/coupling.o .libs/domdec.o .libs/domdec_box.o .libs/domdec_con.o
>>> .libs/domdec_network.o .libs/domdec_setup.o .libs/domdec_top.o
>>> .libs/ebin.o .libs/edsam.o .libs/ewald.o .libs/force.o .libs/forcerec.o
>>> .libs/ghat.o .libs/init.o .libs/mdatom.o .libs/mdebin.o .libs/minimize.o
>>> .libs/mvxvf.o .libs/ns.o .libs/nsgrid.o .libs/perf_est.o .libs/genborn.o
>>> .libs/genborn_sse2_single.o .libs/genborn_sse2_double.o
>>> .libs/genborn_allvsall.o .libs/genborn_allvsall_sse2_single.o
>>> .libs/genborn_allvsall_sse2_double.o .libs/gmx_qhop_parm.o
>>> .libs/gmx_qhop_xml.o .libs/groupcoord.o .libs/pme.o .libs/pme_pp.o
>>> .libs/pppm.o .libs/partdec.o .libs/pull.o .libs/pullutil.o
>>> .libs/rf_util.o .libs/shakef.o .libs/sim_util.o .libs/shellfc.o
>>> .libs/stat.o .libs/tables.o .libs/tgroup.o .libs/tpi.o .libs/update.o
>>> .libs/vcm.o .libs/vsite.o .libs/wall.o .libs/wnblist.o .libs/csettle.o
>>> .libs/clincs.o .libs/qmmm.o .libs/gmx_fft.o .libs/gmx_parallel_3dfft.o
>>> .libs/fft5d.o .libs/gmx_wallcycle.o .libs/qm_gaussian.o .libs/qm_mopac.o
>>> .libs/qm_gamess.o .libs/gmx_fft_fftw2.o .libs/gmx_fft_fftw3.o
>>> .libs/gmx_fft_fftpack.o .libs/gmx_fft_mkl.o .libs/qm_orca.o
>>> .libs/mdebin_bar.o -Wl,--rpath
>>> -Wl,/home/penglebie/downloads/gromacs-4.5.4/src/gmxlib/.libs -Wl,--rpath
>>> -Wl,/home/penglebie/software/lib
>>> /cvos/shared/apps/fftw/gcc/64/3.2/lib/libfftw3f.a -lxml2
>>> -L/cvos/shared/apps/fftw/gcc/64/3.2/lib ../gmxlib/.libs/libgmx.so -lnsl
>>> -lm -msse2 -pthread -Wl,-soname -Wl,libmd.so.6 -o .libs/libmd.so.6.0.0
>>> /usr/bin/ld:
>>> /cvos/shared/apps/fftw/gcc/64/3.2/lib/libfftw3f.a(plan-many-dft-r2c.o):
>>> relocation R_X86_64_32 against `a local symbol' can not be used when
>>> making a shared object; recompile with -fPIC
>>> /cvos/shared/apps/fftw/gcc/64/3.2/lib/libfftw3f.a: could not read
>>> symbols: Bad value
>>> collect2: ld returned 1 exit status
>>> make[3]: *** [libmd.la] Error 1
>>> make[3]: Leaving directory
>>> `/home/penglebie/downloads/gromacs-4.5.4/src/mdlib'
>>> make[2]: *** [all-recursive] Error 1
>>> make[2]: Leaving directory `/home/penglebie/downloads/gromacs-4.5.4/src'
>>> make[1]: *** [all] Error 2
>>> make[1]: Leaving directory `/home/penglebie/downloads/gromacs-4.5.4/src'
>>> make: *** [all-recursive] Error 1
>>>
>>> I see that recently
>>> (http://lists.gromacs.org/pipermail/gmx-users/2011-April/059919.html)
>>> another user encountered the same problem but this time with version
>>> 4.5.3; in my case 4.5.3 compiles fine, the only issue is with 4.5.4.
>> The solution is discussed in the installation instructions:
>>
>> http://www.gromacs.org/Downloads/Installation_Instructions#Prerequisites
>>
>>> The system is running Scientific Linux 5.5.
>>>
>>> $ uname -a
>>>
>>> Linux ST-HPC-Main 2.6.18-128.7.1.el5 #1 SMP Mon Aug 24 08:12:52 EDT 2009
>>> x86_64 x86_64 x86_64 GNU/Linux
>>>
>>>
>>> I am puzzled as to why it doesn't work in 4.5.4 but did until the
>>> previous release. Did something change in this respect?
>> Maybe, but the fact that this issue has come up numerous times in several
>> versions suggests not. As for why 4.5.3 works and 4.5.4 doesn't, I can't
>> say specifically. Please follow the instructions linked above and see if
>> it fixes your problem.
>>
>> -Justin
>>
>>> Regards,
>>> Pablo
>
--
========================================
Justin A. Lemkul
Ph.D. Candidate
ICTAS Doctoral Scholar
MILES-IGERT Trainee
Department of Biochemistry
Virginia Tech
Blacksburg, VA
jalemkul[at]vt.edu | (540) 231-9080
http://www.bevanlab.biochem.vt.edu/Pages/Personal/justin
========================================
More information about the gromacs.org_gmx-users
mailing list