[squid-users] Re: Re: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

From: Brian J. Murrell <brian_at_interlinx.bc.ca>
Date: Sun, 22 Dec 2013 09:55:56 -0500

On Sun, 2013-12-22 at 09:52 +0200, Nikolai Gorchilov wrote:
> Hi Brian,

Hi Nikolai,

> Do you add CFLAGS/CXXFLAGS/etc while ./configure?

Well, *I* don't but Ubuntu's (Debian's in reality, I guess) build system
does. :-)

CFLAGS="-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security"
CXXFLAGS="-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security"

> I had similar issue,
> until I completely removed them.

Interesting. I wonder if we can be more surgical and figure out which
one(s) are causing the problems? I suppose I can start though by
removing them all and seeing if that is my problem also.

Sadly, removing all CFLAGS/CXXFLAGS options done at configure time
didn't help:

make[4]: Entering directory `/usr/src/squid-3.4.1/helpers/basic_auth/LDAP'
g++ -DHAVE_CONFIG_H -I../../.. -I../../../include -I../../../lib -I../../../src -I../../../include -I/usr/include -I/usr/include/libxml2 -D_FORTIFY_SOURCE=2 -I/usr/include/libxml2 -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Werror -pipe -D_REENTRANT -m64 -march=native -std=c++0x -c -o basic_ldap_auth.o basic_ldap_auth.cc
/bin/bash ../../../libtool --tag=CXX --mode=link g++ -I/usr/include/libxml2 -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Werror -pipe -D_REENTRANT -m64 -march=native -std=c++0x -m64 -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -o basic_ldap_auth basic_ldap_auth.o ../../../lib/libmiscencoding.la -L../../../compat -lcompat-squid -lldap -llber
libtool: link: g++ -I/usr/include/libxml2 -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Werror -pipe -D_REENTRANT -m64 -march=native -std=c++0x -m64 -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z -Wl,relro -Wl,-z -Wl,now -o basic_ldap_auth basic_ldap_auth.o ../../../lib/.libs/libmiscencoding.a -L/usr/src/squid-3.4.1/compat -lcompat-squid -lldap -llber
/usr/bin/ld.bfd.real: basic_ldap_auth.o: relocation R_X86_64_32 against `ber_pvt_opt_on' can not be used when making a shared object; recompile with -fPIC
basic_ldap_auth.o: could not read symbols: Bad value
collect2: ld returned 1 exit status

I do notice at the end of the configure it reports:

configure: Multi-Language support enabled: yes
configure: BUILD LIBRARIES:
configure: BUILD EXTRA LIBRARIES: -lm -lnsl -lresolv -lrt -ldl -ldl
configure: BUILD OBJECTS:
configure: BUILD EXTRA OBJECTS:
configure: BUILD C FLAGS: -m64 -Wall
configure: BUILD EXTRA C FLAGS: -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments -Wshadow -Werror -pipe -D_REENTRANT
configure: BUILD C++ FLAGS: -m64 -march=native -std=c++0x
configure: BUILD EXTRA C++ FLAGS: -I/usr/include/libxml2 -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Werror -pipe -D_REENTRANT

Those must be flags that configure has decided to add.

Cheers,
b.

Received on Sun Dec 22 2013 - 14:56:24 MST

This archive was generated by hypermail 2.2.0 : Sun Dec 22 2013 - 12:00:04 MST