Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 229981 - media-video/ffmpeg-0.4.9_p20080326 fails w/use="-mmx" on amd64: ‘yuv420_rgb32_MMX2’ undeclared
Summary: media-video/ffmpeg-0.4.9_p20080326 fails w/use="-mmx" on amd64: ‘yuv420_rgb32...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
: 231048 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-06-29 07:45 UTC by Matheus Izvekov
Modified: 2008-07-07 20:39 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matheus Izvekov 2008-06-29 07:45:11 UTC
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)
Comment 1 Vladimir Smirnov (RETIRED) gentoo-dev 2008-06-29 08:08:30 UTC
Try to remove -ftracer from your CFLAGS.
Comment 2 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-29 08:12:35 UTC
(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.
Comment 3 Matheus Izvekov 2008-06-29 08:40:10 UTC
Correct, removing frtracer from cflags fixes it.
Comment 4 Stefan Briesenick (RETIRED) gentoo-dev 2008-06-29 16:46:22 UTC
candidate for filter-flags?
Comment 5 Peter Alfredsen (RETIRED) gentoo-dev 2008-06-29 17:09:44 UTC
Y'all, this bug is for "‘yuv420_rgb32_MMX2’ undeclared" breakage.
Bug 226647 is where the philosophical implications of ftracer are debated.
Comment 6 Christian Apeltauer 2008-06-29 19:39:13 UTC
(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
Comment 7 Iain Buchanan 2008-07-07 07:00:25 UTC
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
Comment 8 Carsten Lohrke (RETIRED) gentoo-dev 2008-07-07 16:12:23 UTC
*** Bug 231048 has been marked as a duplicate of this bug. ***
Comment 9 thorben krueger 2008-07-07 16:45:27 UTC
(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.
Comment 10 Christian Apeltauer 2008-07-07 20:08:26 UTC
(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
Comment 11 Peter Alfredsen (RETIRED) gentoo-dev 2008-07-07 20:39:13 UTC
+  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.
+