[mythtv] Mythtv CVS on AMD64 wants -fPIC

Rutger Hendriks Loial at home.nl
Sun Dec 12 15:25:09 UTC 2004


Hi list,

the problem described below still applies on CVS for a few seconds ago
I have now -fPIC -DPIC -fPIC in the following variables:
CFLAGS, CXXFLAGS, LFLAGS, LIBS
in the Makefile in mythtv/libs/libavcodec

Any input is appreciated. I would really like to install the latest version 
because 0.16 keeps crashing on me :-(

Thank you,

Rutger Hendriks


On Friday 26 November 2004 11:43, Rutger Hendriks wrote:
> 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