Summary: | transcode-0.6.10 fails to compile | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | teidakankan |
Component: | Current packages | Assignee: | Gentoo Media-video project <media-video> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | aja, lars, m.debruijne, mholzer, zypher |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
transcode-0.6.10-no-mmx.patch
transcode-0.6.10-no-mmx.patch |
Description
teidakankan
2003-10-10 17:12:17 UTC
Same issue here. I had the same problem. When I manually ran configure and make. It compiled correctly. Further investigation revealed that it needed --enable-mmx passed to configure to compile correctly on my system. I then did the following and it compiled and merged correctly. env USE="mmx" emerge transcode So the issue appears to be in the mmx code somewhere. I'm not enough of a developer to determine if it is in the code or the ebuild. Thanks Pal Varner. I too was able to get it to compile when I passed: USE="mmx" emerge transcode on my system. I had the same compile problem and got around it using the USE="mmx" workaround. same here: USE="mmx" emerge transcode went fine For me it seems that transcode-0.6.10 worked once. After an upgrade from libMagick, transcode didn't work anymore. So I had to reinstall transcode so that it has the correct shared libraries again. Now I had the same trouble and the same resolution worked. transcode is now linked against the new libMagick. Martin Same problem here. Thought tht recompiling avi-libraries might help, but didn't. But the mmx workaround does. Thanks. I had to set "mmx" in my USE flag too. Is't a real fix just having the ebuild default to mmx, while people can overload it with "-mmx"? Do you guys have sse or 3dnow in USE ? My USE flags are only: USE="cdr dvd mozilla" But I do have: CFLAGS="-march=pentium3 -O3 -mfpmath=sse -pipe" Hi Martin, Same problem over here, this is the result of emerge --info (I don't have sse and/or 3dnow in my USE-flags); emerge --info Portage 2.0.49-r15 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.20-gentoo-r8) ================================================================= System uname: 2.4.20-gentoo-r8 i686 AMD Athlon(tm) XP 2000+ Gentoo Base System version 1.4.3.10p1 ccache version 2.3 [enabled] ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="sandbox ccache autoaddcvs fixpackages" GENTOO_MIRRORS="http://ftp.snt.utwente.nl/pub/os/linux/gentoo http://ftp.easynet.nl/mirror/gentoo ftp://ftp.easynet.nl/mirror/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 oss apm avi crypt cups encode foomaticdb gif jpeg gnome libg++ mad mikmod mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib gtkhtml gdbm berkdb slang readline arts tetex aalib bonobo svga tcltk java guile X sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gtk qt kde motif opengl mozilla acpi acpi4linux alsa cdr doc dvd gphoto2 gtk2 ldap nowin pda ppds samba scanner tiff usb vhost" Try removing '-mfpmath=sse' - might be that the disabling of mmx in the package causes it to misbehave. As for the Amd one - not sure. Could you also try and comment the lines in the ebuild that sets the configure flags depending on mmx, sse and 3dnow being in USE ? It might be that it will behave if we leave them alone totally. I already added the 3dnow, mmx and sse USE-flags to my make.conf and emerged transcode-0.6.10 without problems. But to help squash this bug I emerged transcode again without these USE-flags and I commented the 3dnow, mmx and sse related lines in the ebuild. Guess what; it installed without problems. As you can see below, no change when I removed -mfpmath=sse. Just going to add mmx and sse to my USE flags. /bin/sh ../libtool --mode=link gcc -D_REENTRANT -funroll-loops -ffast-math -Wall -DMOD_PATH=\"/usr/lib/transcode\" -march=pentium3 -pipe -DDCT_YUV_PRECISION=1 -O3 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -g -o tcdecode tcdecode.o decode_ac3.o decode_mpeg2.o decode_yuv.o fileinfo.o ioaux.o decode_dv.o decode_mp3.o mpg123.o decode_a52.o decode_af6.o scan_dv.o decode_lavc.o decode_xvid.o decode_ogg.o decode_mov.o decode_lzo.o -L../ffmpeg/libavcodec -ltcavcodec -L/usr/lib -lmp3lame -lm -L../libac3 -lac3_tc -L../libmpeg2 -lmpeg2cvs -L../libvo -lvout -L/usr/lib -ldv -lpthread -ldl -L/usr/lib -lglib -ldl -lm -lvorbisfile -L/usr/lib -lvorbis -lm -L/usr/lib -logg -lm -L/usr/lib -lquicktime -lpng -lz -lpthread -lglib -ldl -lm -ldv -L/usr/lib -llzo -lpthread -ldl -L/usr/lib -lglib -ldl -lm -lm -lpthread -ldl gcc -D_REENTRANT -funroll-loops -ffast-math -Wall -DMOD_PATH=\"/usr/lib/transcode\" -march=pentium3 -pipe -DDCT_YUV_PRECISION=1 -O3 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -g -o tcdecode tcdecode.o decode_ac3.o decode_mpeg2.o decode_yuv.o fileinfo.o ioaux.o decode_dv.o decode_mp3.o mpg123.o decode_a52.o decode_af6.o scan_dv.o decode_lavc.o decode_xvid.o decode_ogg.o decode_mov.o decode_lzo.o -L/var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec -ltcavcodec -L/usr/lib /usr/lib/libmp3lame.so -lm -L/var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/libac3 -lac3_tc -L/var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/libmpeg2 -lmpeg2cvs -L/var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/libvo -lvout -lm -lpthread -ldl -ldl -lm /usr/lib/libvorbisfile.so -lm /usr/lib/libvorbis.so -lm -lm /usr/lib/libogg.so -lm /usr/lib/libquicktime.so -lpthread -ldl -lpng -lz -lpthread -ldl -lm /usr/lib/libdv.so -lm /usr/lib/liblzo.so -lpthread -ldl /usr/lib/libglib.so -ldl -lm -lm -lpthread -ldl /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(utils.o)(.text+0x107e): In function `avcodec_encode_video': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/utils.c:341: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(utils.o)(.text+0x10da): In function `avcodec_decode_video': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/utils.c:365: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mpegvideo.o)(.text+0x50): In function `MPV_common_init': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mpegvideo.c:175: undefined reference to `MPV_common_init_mmx' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mpegvideo.o)(.text+0x1bb8): In function `MPV_frame_end': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mpegvideo.c:1035: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mpegvideo.o)(.text+0x3808): In function `ff_draw_horiz_band': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mpegvideo.c:2703: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mpegvideo.o)(.text+0x3cfc): In function `encode_picture': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mpegvideo.c:3268: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mpegvideo.o)(.text+0x5b2e):/var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mpegvideo.c:3779: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mpegvideo.o)(.text+0x831a): In function `DCT_common_init': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mpegvideo.c:175: undefined reference to `MPV_common_init_mmx' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mpegvideo.o)(.text+0x9410): In function `select_input_picture': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mpegvideo.c:1442: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mjpeg.o)(.text+0x255e): In function `encode_picture_lossless': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mjpeg.c:783: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mjpeg.o)(.text+0x48c5): In function `mjpeg_decode_sos': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mjpeg.c:1430: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(dsputil.o)(.text+0xd37): In function `dsputil_init': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/dsputil.c:3013: undefined reference to `dsputil_init_mmx' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(mpeg12.o)(.text+0x4618): In function `mpeg_decode_frame': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/mpeg12.c:2319: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(ratecontrol.o)(.text+0x13): In function `ff_rate_control_init': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/ratecontrol.c:51: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(ratecontrol.o)(.text+0xb98): In function `ff_rate_estimate_qscale': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/ratecontrol.c:574: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(ratecontrol.o)(.text+0x25f2): In function `ff_rate_control_uninit': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/ratecontrol.c:179: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(dv.o)(.text+0x698): In function `dvvideo_decode_frame': /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/dv.c:620: undefined reference to `mm_flags' /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/libtcavcodec.a(vp3.o)(.text+0x335b):/var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/ffmpeg/libavcodec/vp3.c:2208: more undefined references to `mm_flags' follow collect2: ld returned 1 exit status make[3]: *** [tcdecode] Error 1 make[3]: Leaving directory `/var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/import' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/import' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10' make: *** [all] Error 2 !!! ERROR: media-video/transcode-0.6.10 failed. !!! Function src_compile, Line 115, Exitcode 2 !!! (no error message) Here was my emerge --info: bash-2.05b# emerge --info Portage 2.0.49-r15 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.20-gentoo-r8) ================================================================= System uname: 2.4.20-gentoo-r8 i686 Pentium III (Coppermine) Gentoo Base System version 1.4.3.10p1 ccache version 2.3 [enabled] ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium3 -O3 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=pentium3 -O3 -pipe" DISTDIR="/mnt/maxlin/distfiles" FEATURES="sandbox autoaddcvs ccache" GENTOO_MIRRORS="ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO http://www.zentek-international.com/mirrors/gentoo/ http://gentoo.ccccom.com" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage" USE="x86 oss apm avi crypt cups encode foomaticdb gif jpeg libg++ mad mikmod mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib alsa gdbm berkdb slang readline arts tetex aalib bonobo svga ggi tcltk java guile X sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gnome gtk qt kde motif opengl ldap scanner cdr dvd mozilla" I 'fixed' it by not using mmx,sse and 3dnow USE flags in the build, but we should really figure out why. I did have a look, and it seems like the HAVE_MMX stuff is not used correctly in ffmpeg. Basically when passing --disable-mmx, but building on a box thatsupports mmx, HAVE_MMX still gets set, breaking libavcodec that relieson it, as it still includes config.h through ffmpeg/av_config.h.We thus have to unset HAVE_MMX in ffmpeg/av_config.h, but alsoadd #ifdef's to config.h to ensure HAVE_MMX is not set, and thenHAVE_MMX will only be set properly by the ffmpeg/libavcodec/Makefile ... This should be fixed in 0.6.11, so please try with: # USE="-mmx -sse -3dnow" emerge transcode Patch below. Created attachment 20348 [details, diff]
transcode-0.6.10-no-mmx.patch
Bah, Ok, I did not commit as this breaks mmx support again :/ Will have a look again ... Created attachment 20351 [details, diff]
transcode-0.6.10-no-mmx.patch
Ok, here is a proper one.
Ok, patch is in 0.6.11, please test. |