[rrd-users] Relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object

Johans johan.segers at ext.ec.europa.eu
Thu Sep 23 16:17:35 CEST 2010


I am migrating my BB with LARRD/RRDTOOL 1.0.49 from 32-bit Red hat Linux 3 to
a virtual Red Hat 5.4 64-bit.

BB is installed and works bit I get the following problem when I try to
compile/link the RRDTOOL.

I run:

1. sh configure --enable-shared   -> OK
2. make -> I get the message below even after changing in the Makefile the
CCFLAGS .. -fPIC and CXXFLAGS= ..-fPIC (see in red) 

The essential line below is : relocation R_X86_64_32 against `a local
symbol' can not be used when making a shared object; recompile with -fPIC
Changes made to Makefile: 

CFLAGS = -g -O2 -fPIC -Wall -pedantic -Ws  ….
CXXFLAGS = -g -O2 -fPIC

Has anyone an idea how to solve this problem ?

Rgds,
Johan

make[3]: Entering directory `/usr/local/rrdtool-1.0.49/perl-shared'
gcc -c  -I.. -I../src -I../gd1.3 -D_REENTRANT -D_GNU_SOURCE
-fno-strict-aliasing -pipe -Wdeclaration-after-statement
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/include/gdbm -DHAVE_CONFIG_H -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1.000491\"
-DXS_VERSION=\"1.000491\" -fPIC
"-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" 
-DPERLPATCHLEVEL=8 RRDs.c
In file included from ../src/rrd_tool.h:24,
                 from RRDs.xs:13:
../config.h:191:1: warning: "VERSION" redefined
<command line>:1:1: warning: this is the location of the previous definition
RRDs.c: In function âXS_RRDs_xportâ:
RRDs.c:302: warning: unused variable âtargâ
RRDs.c:301: warning: unused variable âRETVALâ
RRDs.xs:227: warning: unused variable ârow_cntâ
Running Mkbootstrap for RRDs ()
chmod 644 RRDs.bs
rm -f blib/arch/auto/RRDs/RRDs.so
gcc  -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic RRDs.o
-L../src/.libs/ -lrrd_private   -lm -o blib/arch/auto/RRDs/RRDs.so     \
                \
          
/usr/bin/ld: ../src/.libs//librrd_private.a(parsetime.o): relocation
R_X86_64_32 against `a local symbol' can not be used when making a shared
object; recompile with -fPIC
../src/.libs//librrd_private.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[3]: *** [blib/arch/auto/RRDs/RRDs.so] Error 1
make[3]: Leaving directory `/usr/local/rrdtool-1.0.49/perl-shared'
make[2]: *** [perl_shared] Error 2
make[2]: Leaving directory `/usr/local/rrdtool-1.0.49'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/rrdtool-1.0.49'
make: *** [all] Error 2

-- 
View this message in context: http://rrd-mailinglists.937164.n2.nabble.com/Relocation-R-X86-64-32-against-a-local-symbol-can-not-be-used-when-making-a-shared-object-tp5563232p5563232.html
Sent from the RRDtool Users Mailinglist mailing list archive at Nabble.com.



More information about the rrd-users mailing list