I am trying to build Python 2.6 for QGIS on RHEL 5. During the making of QGIS I get the following error:
Linking CXX shared library libqgispython.so
/usr/bin/ld: /usr/local/lib/python2.6/config/libpython2.6.a(abstract.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/python2.6/config/libpython2.6.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [src/python/libqgispython.so.1.0] Error 1
make[1]: *** [src/python/CMakeFiles/qgispython.dir/all] Error 2
make: *** [all] Error 2
What I figure out from this error is that I need to build Python 2.6 with some flag, -fPIC
.
OK, so I found it in the configure.in
file but it checks several conditions and on the basis of those conditions it assigns -fPIC
to the CCSHARED
flag.
What I did was that after all conditions were checked I added the following line to deliberately use CCSHARED
as -fPIC
.
CCSHARED="-fPIC";
But it did not work..
How to specify while configuring that I want to set CCSHARED
as -fPIC
?
Run configure with
--enable-shared
. Then-fPIC
will be included as part of the shared flags../configure --help
, possibly piping to grep PIC, to see if there's an option to enable thisIf neither of those work, you need to read the configure code and understand the conditions it tests for better.