If you get the following error during a libxml compile with a 64-bit system:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/libm.a(s_floor.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../../lib/libm.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
In this case, the solution is to set libxml to not use fPIC or shared libraries.
Edit the build script. In the doLibxml2 Â section, find the line:
./configure --prefix=/usr/local --without-python
and change it to:./configure --prefix=/usr/local --without-python --disable-shared --without-pic
Save/exit.Then type:
./build libxml
and that should compile libxml for you.Note: That after further work on this issue, I was able to prevent the error, without needing the above items. Â The fix basically included a full reinstall of all of the dev, gcc, build-esssentials type items using dpkg and the apt-get program. Â I'm not sure if it was related, but I also did a
./build libtool
./build zlib
./build autoconf
./build automake
aptitude remove libc6-dev libsasl2-dev libstdc++6-4.1-dev zlib1g-dev g++-4.1 build-essential libssl-dev libcurl4-openssl-dev comerr-dev gcc libkrb5-dev libc-dev libstdc++6-4.3-dev g++-4.3
andapt-get install gcc g++ make flex bison openssl libssl-dev perl perl-base perl-modules libperl-dev build-essential