I have a problem when I try to build IcePy (from Ice 3.3.1) (for python 2.4.4).
Compilation, testing and install of Ice itself (cpp version) is OK but when I tried to build the python interface (“py” directory) I get the following error (sorry for the truncated paths) :
.../lib/python2.4/config/libpython2.4.a(abstract.o):
relocation R_X86_64_32 against `a local symbol' can not be used when making
a shared object; recompile with -fPIC
.../lib/python2.4/config/libpython2.4.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
Is anybody able to explain me what this problem of relocation means (or at least give me a link) ? Thank you in avdance for your help. Even if you don’t know anything about Ice, your comments on the error message are welcome.
(of course the compilation line already contained -fPIC so the “recompile with -fPIC” does not really help me…)
The
abstract.owas very likely not compiled with-fPIC, so the advice linker gave you is correct.Go back to your build log, and verify that
-fPICis not there whenlibpython2.4.awas built. Note that-fPICis needed forlibpython2.4.aitself, not just for the IcePy.If it is there, you have found a bug in GCC (which is somewhat unlikely).
You can learn about linkers and relocations here or here.