[mythtv] Mythtv CVS on AMD64 wants -fPIC

Rutger Hendriks Loial at home.nl
Fri Nov 26 10:43:11 UTC 2004


Hi list,

current CVS of mythtv fails to compile the libavcodec directory
it complains about:
postprocess.o: relocation R_X86_64_32S against `a local symbol' can not be 
used when making a shared object; recompile with -fPIC
postprocess.o: could not read symbols: Bad value

here's the build output:
$ make
cd libs && qmake libs.pro -o Makefile
cd libs && make -f Makefile
make[1]: Entering directory `/home/loial/myth/mythtv/libs'
cd libavcodec && qmake libavcodec.pro -o Makefile
cd libavcodec && make -f Makefile
make[2]: Entering directory `/home/loial/myth/mythtv/libs/libavcodec'
gcc -c -pipe -w -O3 -march=k8 -fomit-frame-pointer -O3 -Wall -fPIC -DPIC -fPIC 
-fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE_SOURCE -D_GNU_SOURCE -D_REENTRANT  -D_GNU_SOURCE 
-D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DMMX -DCONFIG_VIDEO4LINUX 
-DUSING_IVTV -DLCD_DEVICE -DQT_NO_DEBUG -DQT_THREAD_SUPPORT 
-I/usr/qt/3/mkspecs/linux-g++ -I. -I../.. -I/usr/qt/3/include -o common.o 
common.c

<snip identical lines with only object file change>

gcc -c -pipe -w -O3 -march=k8 -fomit-frame-pointer -O3 -Wall -fPIC -DPIC -fPIC 
-fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE_SOURCE -D_GNU_SOURCE -D_REENTRANT  -D_GNU_SOURCE 
-D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DMMX -DCONFIG_VIDEO4LINUX 
-DUSING_IVTV -DLCD_DEVICE -DQT_NO_DEBUG -DQT_THREAD_SUPPORT 
-I/usr/qt/3/mkspecs/linux-g++ -I. -I../.. -I/usr/qt/3/include -o vp3dsp_mmx.o 
i386/vp3dsp_mmx.c
gcc -c -pipe -w -O3 -march=k8 -fomit-frame-pointer -O3 -Wall -fPIC -DPIC -fPIC 
-fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE_SOURCE -D_GNU_SOURCE -D_REENTRANT  -D_GNU_SOURCE 
-D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DMMX -DCONFIG_VIDEO4LINUX 
-DUSING_IVTV -DLCD_DEVICE -DQT_NO_DEBUG -DQT_THREAD_SUPPORT 
-I/usr/qt/3/mkspecs/linux-g++ -I. -I../.. -I/usr/qt/3/include -o 
vp3dsp_sse2.o i386/vp3dsp_sse2.c
rm -f libmythavcodec-0.16.so.0.16.0 libmythavcodec-0.16.so 
libmythavcodec-0.16.so.0 libmythavcodec-0.16.so.0.16
g++ -Wl,-rpath,/usr/qt/3/lib -shared -Wl,-soname,libmythavcodec-0.16.so.0 -o 
libmythavcodec-0.16.so.0.16.0 common.o utils.o mem.o allcodecs.o mpegvideo.o 
h263.o jrevdct.o jfdctfst.o mpegaudio.o ac3enc.o mjpeg.o audresample.o 
dsputil.o motion_est.o imgconvert.o imgresample.o msmpeg4.o mpeg12.o 
h263dec.o svq1.o rv10.o mpegaudiodec.o pcm.o simple_idct.o ratecontrol.o 
adpcm.o eval.o jfdctint.o dv.o error_resilience.o wmadec.o fft.o mdct.o 
mace.o huffyuv.o opts.o cyuv.o golomb.o h264.o raw.o indeo3.o asv1.o vp3.o 
4xm.o cabac.o ra144.o ra288.o vcr1.o cljr.o roqvideo.o dpcm.o tscc.o 
interplayvideo.o xan.o rpza.o cinepak.o msrle.o msvideo1.o vqavideo.o 
idcinvideo.o adx.o rational.o faandct.o snow.o sonic.o 8bps.o parser.o smc.o 
flicvideo.o truemotion1.o vmdav.o lcl.o qtrle.o g726.o flac.o vp3dsp.o 
integer.o h261.o resample2.o h264idct.o png.o pnm.o qdrw.o qpeg.o 
rangecoder.o ulti.o xl.o postprocess.o a52dec.o bit_allocate.o bitstream.o 
downmix.o imdct.o parse.o crc.o resample.o fdct_mmx.o cputest.o dsputil_mmx.o 
mpegvideo_mmx.o idct_mmx.o motion_est_mmx.o simple_idct_mmx.o 
fft_sse.ovp3dsp_mmx.o vp3dsp_sse2.o   -L/usr/qt/3/lib -L/usr/X11R6/lib 
-lqt-mt -lXext -lX11 -lm -lpthread
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/bin/ld: 
postprocess.o: relocation R_X86_64_32S against `a local symbol' can not be 
used when making a shared object; recompile with -fPIC
postprocess.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libmythavcodec-0.16.so.0.16.0] Error 1
make[2]: Leaving directory `/home/loial/myth/mythtv/libs/libavcodec'
make[1]: *** [sub-libavcodec] Error 2
make[1]: Leaving directory `/home/loial/myth/mythtv/libs'
make: *** [sub-libs] Error 2


I've tried placing -fPIC at every location I could think of, but the problem 
remained, so I must be forgetting something.

I hope you know what to change.

Thanks,
Rutger


More information about the mythtv-dev mailing list