How do you debug X86_64 relocation errors

sean seandarcy2@gmail.com
Sat Aug 20 03:00:00 GMT 2005


I'm trying to build ffmpeg on amd64, which has a x264 
plugin. I built x264 with -fPIC which gives x264.a (dunno 
why the devs only want a static lib).

When I try to build ffmpeg - also with -fPIC, I get:

gcc -shared -o libavcodec.so bitstream.o utils.o mem.o 
allcodecs.o mpegvideo.o jrevdct.o jfdctfst.o jfdctint.o 
[..........]
vorbis.o vp3.o vqavideo.o wmadec.o wnv1.o ws-snd1.o xan.o 
xl.o pthread.o  faad.o faac.o xvidff.o x264.o 
libpostproc/postprocess.o mp3lameaudio.o oggvorbis.o 
oggtheora.o  -lm -lx264 -lz -ldl -lpthread -L../libavutil 
-lavutil -lfaac -lxvidcore -lx264 -lmp3lame -lvorbisenc 
-lvorbis -ltheora -logg  -Wl,--warn-common -rdynamic -ldl 
-I/usr/X11R6/include/X11
/usr/bin/ld: 
/usr/lib/gcc/x86_64-redhat-linux/4.0.1/../../../../lib64/libx264.a(dct-a.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-redhat-linux/4.0.1/../../../../lib64/libx264.a: 
could not read symbols: Bad value

I've strewn -fPIC's all over the place. What else do you 
look for?

sean



More information about the Binutils mailing list