Fails on "undefined reference to `mm_flags' Reproducible: Always Steps to Reproduce: 1. 2. 3. >>> emerge (1 of 1) media-video/transcode-0.6.10 to / >>> md5 src_uri ;-) transcode-0.6.10.tar.gz >>> Unpacking source... >>> Unpacking transcode-0.6.10.tar.gz to /var/tmp/portage/transcode-0.6.10/work * Old netbpm (<=9.12)... >>> Source unpacked. * Working directory: /var/tmp/portage/transcode-0.6.10/work/transcode-0.6.10/autotools... * Applying libtool-test.patch... * Applying libtool-relink.patch... * Applying libtool-tmp.patch... * Applying libtool-sed.patch... * Applying libtool-portage.patch... configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for a BSD-compatible install... /bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for i686-pc-linux-gnu-strip... no checking for strip... strip checking whether to enable maintainer-specific portions of Makefiles... no checking for i686-pc-linux-gnu-gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for egrep... grep -E checking whether gcc needs -traditional... no checking for i686-pc-linux-gnu-g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking for gawk... (cached) gawk checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for i686-pc-linux-gnu-gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ANSI C... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking for dlopen in -ldl... yes checking for dlopen... yes checking for getopt_long_only... yes checking whether support lib is needed... no checking for ANSI C header files... yes checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking errno.h usability... yes checking errno.h presence... yes checking for errno.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking for inttypes.h... (cached) yes checking malloc.h usability... yes checking malloc.h presence... yes checking for malloc.h... yes checking for an ANSI C-conforming const... yes checking whether time.h and sys/time.h may both be included... yes checking for inline... inline checking for size_t... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking __attribute__ ((aligned ())) support... 64 checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for working alloca.h... yes checking for alloca... yes checking for vprintf... yes checking for _doprnt... no checking whether lstat dereferences a symlink specified with a trailing slash... yes checking whether stat accepts an empty string... no checking for working strcoll... yes checking return type of signal handlers... void checking for strtol... yes checking for memalign... yes checking for ftruncate... yes checking for gettimeofday... yes checking for memset... yes checking for strerror... yes checking for strncasecmp... yes checking for stat... yes checking for floor... no checking for atexit... yes checking for getpagesize... yes checking for memmove... yes checking for mkfifo... yes checking for vsscanf... yes checking for strptime... yes checking for lrintf in -lm... yes checking for pthreads... -lpthread yes checking for glib-config... /usr/bin/glib-config checking for GLIB - version >= 0.99.7... yes checking for Intel Pentium architecture (IA32)... yes checking if $CC groks MMX inline assembly... (cached) false yes checking for support for gcc-style register parameters on Intel... yes checking for nasm... /usr/bin/nasm checking for recent nasm version... yes checking for support of 3DNow in assembly code... yes checking for CMOV support... true checking x86 sub-architecture settings... -mcpu=i686 -march=i686 checking if gcc supports -march=pentium3 -pipe -DDCT_YUV_PRECISION=1 -O3 flags... yes checking if gcc supports -march=pentium3 -pipe -DDCT_YUV_PRECISION=1 -O3 -fomit-frame-pointer flags... yes checking for ld used by GCC... /usr/i686-pc-linux-gnu/bin/ld checking if the linker (/usr/i686-pc-linux-gnu/bin/ld) is GNU ld... yes checking for /usr/i686-pc-linux-gnu/bin/ld option to reload object files... -r checking for BSD-compatible nm... nm checking for a sed that does not truncate output... /bin/sed checking how to recognise dependent libraries... pass_all checking command to parse nm output... ok checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for i686-pc-linux-gnu-ranlib... no checking for ranlib... ranlib checking for i686-pc-linux-gnu-strip... strip checking for objdir... .libs checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.lo... yes checking if gcc supports -fno-rtti -fno-exceptions... yes checking whether the linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking dynamic linker characteristics... GNU/Linux ld.so checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking whether -lc should be explicitly linked in... no creating libtool checking if gcc supports -march=pentium3 -pipe -DDCT_YUV_PRECISION=1 -O3 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 flags... yes checking if g++ supports -march=pentium3 -O3 -pipe -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 flags... yes checking for internal static framebuffer support... yes checking for network streaming support... yes checking for avifile-config... /usr/bin/avifile-config checking for avifile - version >= "0.7.25"... yes checking wether to enable filter_text... yes checking linux/videodev.h usability... yes checking linux/videodev.h presence... yes checking for linux/videodev.h... yes checking for v4l support... yes checking for /usr/include/lame/lame.h... yes checking lame version... 393 checking for lame_init in -lmp3lame... yes checking for ogg_sync_init in -logg... yes checking for /usr/include/ogg/ogg.h... yes checking for vorbis_info_init in -lvorbis... yes checking for /usr/include/vorbis/codec.h... yes checking for theora_info_init in -ltheora... no checking for /usr/include/theora/theora.h... no checking for /usr/local/include/theora/theora.h... no checking for /sw/include/theora/codec.h... no checking for DVDOpen in -ldvdread... yes checking for /usr/include/dvdread/dvd_reader.h... yes checking for mpeg3_open in -lmpeg3... no checking for pp_postprocess in -lpostproc... yes checking for lr_init in -llve... no checking for lr_init in -llve... (cached) no checking for quicktime_open in -lquicktime... no checking for quicktime_init in -lopenquicktime... no checking for dv_init in -ldv... yes checking for dv_encoder_new in -ldv... yes checking for dv_calculate_samples in -ldv... yes checking for lzo_version in -llzo... yes checking for a52_init in -la52... yes checking for liba52 as default decoder... no checking for libxml2 support... checking for xml2-config... yes checking whether mjpegtools support is requested... yes checking for YUV4MPEG support... checking for mjpegtools-config... yes checking for /usr/include/mjpegtools/yuv4mpeg.h... yes checking whether X11 support is requested... yes checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include checking for gethostbyname... yes checking for connect... yes checking for remove... yes checking for shmat... yes checking for IceConnectionNumber in -lICE... yes checking for XvQueryExtension in -lXv... yes checking X11/Xaw/Simple.h usability... yes checking X11/Xaw/Simple.h presence... yes checking for X11/Xaw/Simple.h... yes checking for XpmFreeAttributes in -lXpm... yes checking for sdl-config... /usr/bin/sdl-config checking for SDL - version >= 1.1.6... yes checking decore.h usability... yes checking decore.h presence... yes checking for decore.h... yes checking encore2.h usability... yes checking encore2.h presence... yes checking for encore2.h... yes checking for gtk-config... /usr/bin/gtk-config checking for GTK - version >= 0.99.7... yes checking for libfame-config... /usr/bin/libfame-config checking for libfame - version >= 0.9.0... yes checking for Magick-config... /usr/bin/Magick-config checking for InitializeMagick in -lMagick... yes checking for jpeg_CreateCompress in -ljpeg-mmx... yes *** All of mmx dependent parts will be disabled *** *** All of sse dependent parts will be disabled *** configure: creating ./config.status config.status: creating Makefile config.status: creating autotools/Makefile config.status: creating src/Makefile config.status: creating avilib/Makefile config.status: creating movlib/Makefile config.status: creating libioaux/Makefile config.status: creating libac3/Makefile config.status: creating libvo/Makefile config.status: creating libmpeg2/Makefile config.status: creating libmp3lame/Makefile config.status: creating libdvenc/Makefile config.status: creating bbmpeg/Makefile config.status: creating bbmpeg/tcmplex/Makefile config.status: creating ffmpeg/Makefile config.status: creating ffmpeg/libavcodec/Makefile config.status: creating ffmpeg/libavcodec/i386/Makefile config.status: creating ffmpeg/libavcodec/ppc/Makefile config.status: creating export/Makefile config.status: creating import/Makefile config.status: creating import/nuv/Makefile config.status: creating import/af6/Makefile config.status: creating import/net/Makefile config.status: creating import/v4l/Makefile config.status: creating import/lve/Makefile config.status: creating import/yuv/Makefile config.status: creating filter/Makefile config.status: creating filter/subtitler/Makefile config.status: creating filter/preview/Makefile config.status: creating filter/divxkey/Makefile config.status: creating filter/extsub/Makefile config.status: creating filter/resample/Makefile config.status: creating filter/test/Makefile config.status: creating filter/ivtc/Makefile config.status: creating filter/yuvdenoise/Makefile config.status: creating pvm3/Makefile config.status: creating docs/Makefile config.status: creating docs/html/Makefile config.status: creating docs/man/Makefile config.status: creating contrib/Makefile config.status: creating tools/Makefile config.status: creating aclib/Makefile config.status: creating libsupport/Makefile config.status: creating libdldarwin/Makefile config.status: creating transcode.spec config.status: creating config.h config.status: executing depfiles commands ---------------------------------------------------------- Summary for transcode 0.6.10 features: *-*-*-*-*-*-* Core *-*-*-*-*-*-* static AV-frame buffering yes support for network (sockets) streams yes DVD navigation support with libdvdread yes link against local lame library (>=3.89) | ver yes | 393 experimental pvm3 support no *-*-*-*-*-*-* Codec *-*-*-*-*-*-* nasm dependent modules (bbmpeg) yes mjpegtools dependent modules yes libdv dependent modules yes Ogg support | Vorbis support | Theora support yes | yes | no Default xvid export module xvid2 liba52 audio plugin (>=0.7.3) | default decoder yes | yes avifile API support yes ImageMagick dependent modules (>=5.4.3) yes libjpeg dependent modules | mmx accel yes | yes liblzo dependent modules yes libxml2 dependent modules yes experimental v4l support yes experimental lve support no libmpeg3 dependent modules no libfame video encoding plugin yes quicktime dependent modules no *-*-*-*-*-*-* Filter *-*-*-*-*-*-* libpostproc dependent filter plugin yes X11 dependent filter plugins yes freetype2 dependent filter (filter_text) no ---------------------------------------------------------- make all-recursive . . . /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 -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 /usr/lib/libdv.so -lm -lpthread -ldl -ldl -lm /usr/lib/libvorbisfile.so -lm /usr/lib/libvorbis.so -lm -lm /usr/lib/libogg.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 113, Exitcode 2 !!! (no error message)
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.