From: Konstantinos D. <da...@fr...> - 2006-02-06 17:55:09
Attachments:
dalai.vcf
|
relocation R_X86_64_32 against 'a local symbol' can not be used when making a shared object; recompile with -fPIC Anyone knows anything about this error? A web search didn't help much and the weird thing is that it is compiled with the -fPIC Compiling on an AMD64, with Suse 10.0 gcc 4.0.2 Python 2.4.1 binutils-2.16.91.0.2-8.2 python-setuptools 0.6a9-1 make[5]: Entering directory `/mmedia/src/gazebo/libgazebo/bindings/python= ' python ./setup.py build running build running build_py file gazebo.py (for module gazebo) not found file gazebo.py (for module gazebo) not found running build_ext building '_gazebo' extension swigging gazebo.i to gazebo_wrap.c swig -python -o gazebo_wrap.c gazebo.i creating build creating build/temp.linux-x86_64-2.4 gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -fmessage-length=3D0 -Wall -D_FORTIFY_SOURCE=3D2 -g -fPIC -I../.. -I/usr/include/python2.4 -c gazebo_wrap.c -o build/temp.linux-x86_64-2.4/gazebo_wrap.o gazebo_wrap.c: In function =A1_wrap_gz_camera_data_t_image_get=A2: gazebo_wrap.c:4204: warning: pointer targets in passing argument 1 of =A1PyString_FromStringAndSize=A2 differ in signedness gazebo_wrap.c: In function =A1_wrap_gz_guicam_data_t_image_get=A2: gazebo_wrap.c:6931: warning: pointer targets in passing argument 1 of =A1PyString_FromStringAndSize=A2 differ in signedness gazebo_wrap.c: In function =A1_wrap_gz_stereo_data_t_left_image_get=A2: gazebo_wrap.c:13575: warning: pointer targets in passing argument 1 of =A1PyString_FromStringAndSize=A2 differ in signedness gazebo_wrap.c: In function =A1_wrap_gz_stereo_data_t_right_image_get=A2: gazebo_wrap.c:13667: warning: pointer targets in passing argument 1 of =A1PyString_FromStringAndSize=A2 differ in signedness gazebo_wrap.c: At top level: gazebo_wrap.c:214: warning: =A1SWIG_TypeDynamicCast=A2 defined but not us= ed gazebo_wrap.c:402: warning: =A1SWIG_UnpackDataName=A2 defined but not use= d gazebo_wrap.c:482: warning: =A1SWIG_PropagateClientData=A2 defined but no= t used gazebo_wrap.c:1181: warning: =A1SWIG_Python_MustGetPtr=A2 defined but not= used gazebo_wrap.c:1195: warning: =A1SWIG_Python_ConvertPacked=A2 defined but = not used gazebo_wrap.c:1580: warning: =A1SWIG_Check_int=A2 defined but not used gazebo_wrap.c:1693: warning: =A1SWIG_Check_unsigned_SS_long=A2 defined bu= t not used gazebo_wrap.c:1789: warning: =A1SWIG_Check_double=A2 defined but not used gazebo_wrap.c:1860: warning: =A1SWIG_Check_unsigned_SS_int=A2 defined but not used gazebo_wrap.c:17820: warning: =A1SWIG_Python_addvarlink=A2 defined but no= t used creating build/lib.linux-x86_64-2.4 gcc -pthread -shared build/temp.linux-x86_64-2.4/gazebo_wrap.o -L../.. -lgazebo -o build/lib.linux-x86_64-2.4/_gazebo.so /usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../../../x86_64-suse-linux/bin/= ld: ../../libgazebo.a(gz_error.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC ../../libgazebo.a: could not read symbols: Bad value collect2: ld returned 1 exit status error: command 'gcc' failed with exit status 1 make[5]: *** [pythonbuild] Error 1 make[5]: Leaving directory `/mmedia/src/gazebo/libgazebo/bindings/python' make[4]: *** [all] Error 2 ____________________________________________________________________ http://www.freemail.gr - =E4=F9=F1=E5=DC=ED =F5=F0=E7=F1=E5=F3=DF=E1 =E7=EB= =E5=EA=F4=F1=EF=ED=E9=EA=EF=FD =F4=E1=F7=F5=E4=F1=EF=EC=E5=DF=EF=F5. http://www.freemail.gr - free email service for the Greek-speaking. |
From: Alexis M. <mal...@cs...> - 2006-02-16 17:25:30
Attachments:
patch_64bit_gazebo20060216
|
Hi. On Mon, Feb 06, 2006 at 12:52:49PM -0500, Konstantinos Dalamagkidis wrote: > relocation R_X86_64_32 against 'a local symbol' can not be used when > making a shared object; recompile with -fPIC > > Anyone knows anything about this error? > A web search didn't help much and the weird thing is that it is compiled > with the -fPIC > > > Compiling on an AMD64, with ... I ran into this building gazebo for AMD64 at our office. Basically, you have to recompile _everything_ with -fPIC. If you just change the Makefile on your gazebo root, it will not affect everything. One way to fix it is using the environmental variables CFLAGS and CXXFLAGS when you call ./configure. If you are using gazebo CVS, the following works: export CFLAGS=-fPIC ${CFLAGS} export CXXFLAGS=-fPIC ${CXXFLAGS} ./bootstrap ./configure <your options, you probably want to disable a lot of models> make make install There is another problem for building gazebo in 64bits: there are some casts from pointers to int (search for (int) this) in the gazebo/server/models directory. They are found on calls to gz_position_create(), and this function only needs a different Id number each time. The cast from *this to int works in 32bits, but in 64bits systems, the pointer is too big. Armin Muellear (he works with me) fixed those creating an static variable in the Model Class, and incrementing it every time that a model asks for a new Id number. It seems like a clean solution to me. I just made a patch from a clean CVS install and I am attaching it to this email, hoping that it's useful to somebody else. The patch also adds -fPIC to the CFLAGS and CXXFLAGs (it's needed for 64bits platforms and it doesn't hurt on 32bits). Greetings, Alexis Maldonado PhD Student/Researcher Info 9, Technische Universitaet Muenchen http://www9.cs.tum.edu/people/maldonad/ |