if USE=mmx, it fails with this error: i386/mpegvideo_mmx.c:61: Error: suffix or operands invalid for `movd' if USE=-mmx, it fails with this error: yuv2rgb.c: In function ‘yuv2rgb_get_func_ptr’: yuv2rgb.c:609: error: ‘yuv420_rgb32_MMX2’ undeclared (first use in this function) yuv2rgb.c:609: error: (Each undeclared identifier is reported only once yuv2rgb.c:609: error: for each function it appears in.) yuv2rgb.c:610: error: ‘yuv420_rgb24_MMX2’ undeclared (first use in this function) yuv2rgb.c:611: error: ‘yuv420_rgb16_MMX2’ undeclared (first use in this function) yuv2rgb.c:612: error: ‘yuv420_rgb15_MMX2’ undeclared (first use in this function) yuv2rgb.c:617: error: ‘yuv420_rgb32_MMX’ undeclared (first use in this function) yuv2rgb.c:618: error: ‘yuv420_rgb24_MMX’ undeclared (first use in this function) yuv2rgb.c:619: error: ‘yuv420_rgb16_MMX’ undeclared (first use in this function) yuv2rgb.c:620: error: ‘yuv420_rgb15_MMX’ undeclared (first use in this function)
Try to remove -ftracer from your CFLAGS.
(In reply to comment #0) > if USE=mmx, it fails with this error: > > i386/mpegvideo_mmx.c:61: Error: suffix or operands invalid for `movd' You probably have ftracer in your cflags. See bug 226647. > if USE=-mmx, it fails with this error: > > yuv2rgb.c: In function ‘yuv2rgb_get_func_ptr’: > yuv2rgb.c:609: error: ‘yuv420_rgb32_MMX2’ undeclared (first use in this > function) > yuv2rgb.c:609: error: (Each undeclared identifier is reported only once > yuv2rgb.c:609: error: for each function it appears in.) > yuv2rgb.c:610: error: ‘yuv420_rgb24_MMX2’ undeclared (first use in this > function) > yuv2rgb.c:611: error: ‘yuv420_rgb16_MMX2’ undeclared (first use in this > function) > yuv2rgb.c:612: error: ‘yuv420_rgb15_MMX2’ undeclared (first use in this > function) > yuv2rgb.c:617: error: ‘yuv420_rgb32_MMX’ undeclared (first use in this > function) > yuv2rgb.c:618: error: ‘yuv420_rgb24_MMX’ undeclared (first use in this > function) > yuv2rgb.c:619: error: ‘yuv420_rgb16_MMX’ undeclared (first use in this > function) > yuv2rgb.c:620: error: ‘yuv420_rgb15_MMX’ undeclared (first use in this > function) > Reading the code, it kind of looks like we have to disable mmx2 if we disable mmx.
Correct, removing frtracer from cflags fixes it.
candidate for filter-flags?
Y'all, this bug is for "‘yuv420_rgb32_MMX2’ undeclared" breakage. Bug 226647 is where the philosophical implications of ftracer are debated.
(In reply to comment #3) > Correct, removing frtracer from cflags fixes it. > I have encountered the same problem, but I do not use ftracer in my cflags nor did I discovered this compiler flag in the build log. Adding "--disable-mmx2" to the configure options fixed the problem for me. Portage 2.2_rc1 (hardened/amd64, gcc-3.4.6, glibc-2.8_p20080602-r0, 2.6.25-hardened-monolith x86_64) ================================================================= System uname: Linux-2.6.25-hardened-monolith-x86_64-AMD_Sempron-tm-_Processor_3000+-with-glibc2.3.2 Timestamp of tree: Fri, 27 Jun 2008 01:45:01 +0000 app-shells/bash: 3.2_p39 dev-lang/python: 2.5.2-r5 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.2.5 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.62 sys-devel/automake: 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.18-r2 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 2.2.4 virtual/os-headers: 2.6.25-r4 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -fomit-frame-pointer -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/4.0/env /usr/kde/4.0/share/config /usr/kde/4.0/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=k8 -fomit-frame-pointer -O2 -pipe" DISTDIR="/var/distfiles" FEATURES="collision-protect distlocks parallel-fetch preserve-libs sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox webrsync-gpg" GENTOO_MIRRORS="ftp://fftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/" LDFLAGS="" LINGUAS="de" MAKEOPTS="-j2" PKGDIR="/var/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="3dnow X acl alsa amd64 arts bash-completion berkdb bzip2 caps cdr cracklib crypt dbus dvd dvdr dvdread encode fbcon ffmpeg flac gif gnutls gtk2 hal hardened id3tag imap ipv6 jpeg jpeg2k justify kde kdeenablefinal latex midi motif ncurses nls nptl nptlonly offensive ogg openexr opengl pam pic pie png qt3 qt4 readline ruby sasl sdl skey smartcard spell sse2 ssl symlink tcpd theora tiff truetype unicode urandom usb vcd vim-syntax vorbis xine xorg xvid zlib" ALSA_CARDS="via82xx" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="agfa_cl20" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="openchrome via vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ------------------------------------------------------- Result of "emerge -pv ffmpeg": [ebuild R ] media-video/ffmpeg-0.4.9_p20080326 USE="X encode imlib ipv6 mp3 network sdl theora threads truetype vorbis xvid zlib -a52 -aac (-altivec) -amr -bindist -debug -doc -hardcoded-tables -ieee1394 (-mmx) -test -x264" 0 kB
Not limited to amd64, x86 here. Could a "sufficiently empowered user" please change the Hardware tab? Don't think I have -ftracer either, unless it's implicitly defined... Adding --disable-mmx2 also fixes it for me. yuv2rgb.c: In function 'yuv2rgb_get_func_ptr': yuv2rgb.c:609: error: 'yuv420_rgb32_MMX2' undeclared (first use in this function) yuv2rgb.c:609: error: (Each undeclared identifier is reported only once yuv2rgb.c:609: error: for each function it appears in.) yuv2rgb.c:610: error: 'yuv420_rgb24_MMX2' undeclared (first use in this function) yuv2rgb.c:611: error: 'yuv420_rgb16_MMX2' undeclared (first use in this function) yuv2rgb.c:612: error: 'yuv420_rgb15_MMX2' undeclared (first use in this function) .9_p20080326/work/ffmpeg"/libpostproc -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libswscale -O2 -march=i686 -pipe -DBROKEN_RELOCATIONS -fomit-frame-pointer -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -fno-math-errno -c -o segafilm.o segafilm.c i686-pc-linux-gnu-gcc -O2 -march=i686 -pipe -DBROKEN_RELOCATIONS -fomit-frame-pointer -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -fno-math-errno -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg" -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg" -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavutil -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavcodec -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavformat -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libswscale -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavdevice -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavfilter -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -DHAVE_AV_CONFIG_H -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg" -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg" -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavcodec -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavdevice -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavfilter -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavformat -I"/var/tmp/portage/media-video/ffmpeg-0 no-math-errno -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg" -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg" -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavutil -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavcodec -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavformat -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libswscale -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavdevice -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavfilter -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -DHAVE_AV_CONFIG_H -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg" -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg" -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavcodec -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavdevice -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavfilter -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavformat -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libavutil -I"/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg"/libpostproc -I"/var/tmp/portage/media-video/ffmpeg-0.4yuv2rgb.c:619: error: 'yuv420_rgb16_MMX' undeclared (first use in this function) yuv2rgb.c:620: error: 'yuv420_rgb15_MMX' undeclared (first use in this function) make[1]: *** [yuv2rgb.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/work/ffmpeg/libswscale' make: *** [lib] Error 2 * * ERROR: media-video/ffmpeg-0.4.9_p20080326 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 2423: Called die * The specific snippet of code: * emake || die "make failed" * The die message: * make failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-video/ffmpeg-0.4.9_p20080326/temp/environment'. * emerge --info: Portage 2.2_rc1 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.8_p20080602-r0, 2.6.25-tuxonice-r4 i686) ================================================================= System uname: Linux-2.6.25-tuxonice-r4-i686-Intel-R-_Core-TM-2_Duo_CPU_T9500_@_2.60GHz-with-glibc2.0 Timestamp of tree: Mon, 07 Jul 2008 05:15:01 +0000 app-shells/bash: 3.2_p39 dev-java/java-config: 1.3.7, 2.1.6 dev-lang/python: 2.4.4-r6, 2.5.2-r4 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 2.0.0 sys-apps/openrc: 0.2.5 sys-apps/sandbox: 1.2.18.1-r3 sys-devel/autoconf: 2.13, 2.62 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 2.2.4 virtual/os-headers: 2.6.25-r4 ACCEPT_KEYWORDS="x86 ~x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -march=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks fixpackages parallel-fetch preserve-libs sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="ftp://morpheus.pcorp.com.au/pub/gentoo-portage/ http://mirror.internode.on.net/pub/gentoo/ http://ftp.swin.edu.au/gentoo/" LANG="en_AU" LC_ALL="en_AU" LDFLAGS="" LINGUAS="en_AU en en_GB en_US" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /usr/local/portage-synce-overlay" SYNC="rsync://rsync.au.gentoo.org/gentoo-portage" USE="X aac acl acpi aiglx alsa avahi berkdb bzip2 cli cracklib crypt cups dbus dri esd ffmpeg fortran gdbm gnome gpm gtk hal iconv ipv6 isdnlog jpeg libnotify midi mpeg mudflap ncurses nls nptl nptlonly openmp pam pcre perl pppd python readline reflection samba session smb spl ssl tcpd unicode x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_AU en en_GB en_US" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa fbdev" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
*** Bug 231048 has been marked as a duplicate of this bug. ***
(In reply to comment #7) > Not limited to amd64, x86 here. Could a "sufficiently empowered user" please > change the Hardware tab? Don't think I have -ftracer either, unless it's > implicitly defined... Adding --disable-mmx2 also fixes it for me. Where exactly do you add "--disable-mmx2"? The configscript tells me however, that mmx is set to "no" but build fails never the less.
(In reply to comment #9) --- ffmpeg-0.4.9_p20080326.ebuild.old 2008-04-08 00:36:36.000000000 +0200 +++ ffmpeg-0.4.9_p20080326.ebuild 2008-06-29 21:27:06.000000000 +0200 @@ -71,7 +71,7 @@ #disable mmx accelerated code if not requested, or if PIC is required # as the provided asm decidedly is not PIC. if ( gcc-specs-pie || ! use mmx ) ; then - myconf="${myconf} --disable-mmx" + myconf="${myconf} --disable-mmx --disable-mmx2" fi # enabled by default
+ 07 Jul 2008; Peter Alfredsen <loki_val@gentoo.org> + ffmpeg-0.4.9_p20080326.ebuild: + Fix build failure when disabling MMX, which would fail to disable MMX2 + code on processors supporting it, resulting in #ifdef spaghetti build + failure. Bug 229981. +