Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 319005 - media-video/ffmpeg-0.5_p22846 build failure
Summary: media-video/ffmpeg-0.5_p22846 build failure
Status: RESOLVED DUPLICATE of bug 290741
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-08 22:46 UTC by Russell Knighton
Modified: 2010-05-20 18:57 UTC (History)
2 users (show)

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


Attachments
Build failure log (ffmpeg-0.5_p22846_build_failure.log,76.63 KB, text/plain)
2010-05-08 22:52 UTC, Russell Knighton
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Russell Knighton 2010-05-08 22:46:54 UTC
I think this is possibly architecture specific as it compiled fine on my amd64 machine. Build log to follow...

Emerge command:
starbug ~ # emerge -pqv =media-video/ffmpeg-0.5_p22846
[ebuild     U ] media-video/ffmpeg-0.5_p22846 [0.5_p20373] USE="X encode hardcoded-tables mmx pic* ssse3 threads zlib -3dnow -3dnowext -alsa (-altivec) -amr% -bindist -cpudetection -custom-cflags -debug -dirac -doc -faac -faad -gsm -ieee1394 -jack -jpeg2k -mmxext -mp3 -network -oss -schroedinger -sdl -speex -test -theora -v4l -v4l2 -vdpau -vorbis -x264 -xvid (-ipv6%*) (-opencore-amr%)" VIDEO_CARDS="-nvidia" 


Emerge info output:

starbug ~ # emerge --info =media-video/ffmpeg-0.5_p22846
Portage 2.2_rc67 (default/linux/x86/10.0/server, gcc-4.4.3, glibc-2.11.1-r0, 2.6.32-gentoo-r6 i686)
=================================================================
                        System Settings
=================================================================
System uname: Linux-2.6.32-gentoo-r6-i686-Intel-R-_Xeon-TM-_CPU_2.40GHz-with-gentoo-2.0.1
Timestamp of tree: Fri, 07 May 2010 10:30:01 +0000
distcc 3.1 i686-pc-linux-gnu [disabled]
ccache version 2.4 [disabled]
app-shells/bash:     4.1_p5
dev-java/java-config: 2.1.11
dev-lang/python:     2.6.5-r2, 3.1.2-r3
dev-python/pycrypto: 2.1.0
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.8.1-r1
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.1-r1
sys-apps/sandbox:    2.2
sys-devel/autoconf:  2.13, 2.65
sys-devel/automake:  1.4_p6-r1, 1.7.9-r2, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1
sys-devel/gcc:       4.4.3-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.33
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -fforce-addr -pipe -fomit-frame-pointer"
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/X11/xkb /usr/share/config /var/bind"
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/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=pentium4 -fforce-addr -pipe -fomit-frame-pointer"
DISTDIR="/tmp/distfiles"
FEATURES="assume-digests distlocks fixpackages news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch userpriv"
GENTOO_MIRRORS="http://gentoo.virginmedia.com http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/ http://vlaai.snt.ipv6.utwente.nl/pub/os/linux/gentoo/ http://gentoo.osuosl.org ftp://ftp.mirrorservice.org/sites/www.ibiblio.org/gentoo/ ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,--as-needed"
LINGUAS="en_GB en"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
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="/var/lib/layman/sunrise /var/lib/layman/annunaki2k2 /var/lib/layman/kde-sunset /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl acpi amarok apache2 apm avahi bash-completion berkdb bidi bzip2 caps clamav clamd clamdtop cli consolekit cpio cracklib crypt cups curl cxx dbus dedicated dell device-mapper dhcp disk-partition dri fam fastcgi foomaticdb fortran fuse gdbm gdu glibc-omitfp gnome gnome-keyring gpm gtkhtml hal howl-compat iconv idn ipv6 ithreads kerberos ldap libclamav libnotify libwww logrotate lzma maildir mdnsresponder-compat mmx modules mpi mppe-mppc mudflap mysql nas ncurses netboot new-hpcups nls noamazon nptl nptlonly oav odbc openmp optimization optimized-qmake pam pcre perl php pic policykit pppd python qt3support readline reflection regex reiserfs rtc samba session slp smp snmp sockets spell spl sql sse sse2 ssl startup-notification stream strong-optimization svg sysfs syslog sysvipc szip tcl tcltk tcp tcpd threads tk truetype unicode urandom usb userlocales vim-syntax x86 xattr xcb xml xorg zeroconf zip zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd 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 dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB en" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="mach64" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS



Reproducible: Always

Steps to Reproduce:
1. emerge -ua ffmpeg

Actual Results:  
CC      libavfilter/vf_aspect.o
CC      libavfilter/vf_crop.o
CC      libavfilter/vf_format.o
CC      libavfilter/vf_null.o
CC      libavfilter/vf_scale.o
CC      libavfilter/vf_slicify.o
CC      libavfilter/vf_unsharp.o
libavfilter/vf_scale.c: In function ‘draw_slice’:
libavfilter/vf_scale.c:179: warning: passing argument 2 of ‘sws_scale’ from incompatible pointer type
./libswscale/swscale.h:195: note: expected ‘const uint8_t * const*’ but argument is of type ‘uint8_t **’
CC      libavfilter/vf_vflip.o
CC      libavfilter/vsink_nullsink.o
In file included from libavcodec/x86/dsputil_mmx.c:1818:
libavcodec/x86/h264dsp_mmx.c: In function ‘put_h264_qpel8_h_lowpass_3dnow’:
libavcodec/x86/h264dsp_mmx.c:2079: error: can't find a register in class ‘GENERAL_REGS’ while reloading ‘asm’
libavcodec/x86/h264dsp_mmx.c:2079: error: ‘asm’ operand has impossible constraints
CC      libavfilter/vsrc_nullsrc.o
CC      libswscale/options.o
CC      libswscale/rgb2rgb.o
CC      libswscale/swscale.o
CC      libswscale/utils.o
CC      libswscale/x86/yuv2rgb_mmx.o
In file included from libswscale/x86/yuv2rgb_mmx.c:52:
libswscale/x86/yuv2rgb_template.c: In function ‘yuva420_rgb32_MMX’:
libswscale/x86/yuv2rgb_template.c:528: warning: no return statement in function returning non-void
libswscale/x86/yuv2rgb_template.c: In function ‘yuva420_bgr32_MMX’:
libswscale/x86/yuv2rgb_template.c:564: warning: no return statement in function returning non-void
In file included from libswscale/x86/yuv2rgb_mmx.c:59:
libswscale/x86/yuv2rgb_template.c: In function ‘yuva420_rgb32_MMX2’:
libswscale/x86/yuv2rgb_template.c:528: warning: no return statement in function returning non-void
libswscale/x86/yuv2rgb_template.c: In function ‘yuva420_bgr32_MMX2’:
libswscale/x86/yuv2rgb_template.c:564: warning: no return statement in function returning non-void
In file included from libswscale/swscale.c:1209:
libswscale/swscale_template.c: In function ‘yuv2yuv1_MMX’:
libswscale/swscale_template.c:954: warning: initialization from incompatible pointer type
libswscale/swscale_template.c:954: warning: initialization from incompatible pointer type
libswscale/swscale_template.c:954: warning: initialization from incompatible pointer type
libswscale/swscale_template.c:954: warning: initialization from incompatible pointer type
libswscale/swscale_template.c: In function ‘yuv2packed2_MMX’:
libswscale/swscale_template.c:1235: warning: dereferencing type-punned pointer will break strict-aliasing rules
libswscale/swscale_template.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules
libswscale/swscale_template.c: In function ‘swScale_MMX’:
libswscale/swscale_template.c:2764: warning: cast from pointer to integer of different size
libswscale/swscale_template.c:2770: warning: cast from pointer to integer of different size
libswscale/swscale_template.c:2777: warning: cast from pointer to integer of different size
libswscale/swscale_template.c: In function ‘sws_init_swScale_MMX’:
libswscale/swscale_template.c:2965: warning: assignment from incompatible pointer type
libswscale/swscale_template.c:2980: warning: assignment from incompatible pointer type
libswscale/swscale_template.c:3025: warning: assignment from incompatible pointer type
CC      libswscale/yuv2rgb.o
libswscale/yuv2rgb.c: In function ‘ff_yuv2rgb_c_init_tables’:
libswscale/yuv2rgb.c:754: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint16_t *’
libswscale/yuv2rgb.c:755: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint16_t *’
libswscale/yuv2rgb.c:756: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint16_t *’
libswscale/yuv2rgb.c:777: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint16_t *’
libswscale/yuv2rgb.c:778: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint16_t *’
libswscale/yuv2rgb.c:779: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint16_t *’
libswscale/yuv2rgb.c:814: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint32_t *’
libswscale/yuv2rgb.c:815: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint32_t *’
libswscale/yuv2rgb.c:816: warning: passing argument 4 of ‘fill_table’ from incompatible pointer type
libswscale/yuv2rgb.c:598: note: expected ‘uint8_t *’ but argument is of type ‘uint32_t *’
make: *** [libavcodec/x86/dsputil_mmx.o] Error 1
make: *** Waiting for unfinished jobs....
libswscale/yuv2rgb.c:649: warning: ‘abase’ may be used uninitialized in this function
rm libavcodec/mdct_tablegen libavcodec/dv_tablegen libavcodec/cbrt_tablegen libavcodec/motionpixels_tablegen libavcodec/pcm_tablegen libavcodec/qdm2_tablegen
 * ERROR: media-video/ffmpeg-0.5_p22846 failed:
 *   make failed
 * 
 * Call stack:
 *     ebuild.sh, line  48:  Called src_compile
 *   environment, line 2639:  Called die
 * The specific snippet of code:
 *       emake || die "make failed"
 * 
 * If you need support, post the output of 'emerge --info =media-video/ffmpeg-0.5_p22846',
 * the complete build log and the output of 'emerge -pqv =media-video/ffmpeg-0.5_p22846'.
 * The complete build log is located at '/var/log/portage/media-video:ffmpeg-0.5_p22846:20100508-222905.log'.
 * The ebuild environment file is located at '/var/tmp/portage/media-video/ffmpeg-0.5_p22846/temp/environment'.
 * S: '/var/tmp/portage/media-video/ffmpeg-0.5_p22846/work/ffmpeg-
Comment 1 Russell Knighton 2010-05-08 22:52:18 UTC
Created attachment 230827 [details]
Build failure log
Comment 2 Rafał Mużyło 2010-05-09 21:45:22 UTC
Looks like a dupe of bug 290741 - a different file,
but the same error.
Comment 3 Alexis Ballier gentoo-dev 2010-05-10 05:06:15 UTC

*** This bug has been marked as a duplicate of bug 290741 ***
Comment 4 Reimar Döffinger 2010-05-10 20:59:16 UTC
This is not a duplicate, 290741 is about a compiler bug where the compiler manages to confuse itself due to inlining.
This however is code we cannot reasonably expect gcc to compile, plus it is relatively easy to fix without any real hacks.
Comment 5 Alexis Ballier gentoo-dev 2010-05-11 06:35:32 UTC
(In reply to comment #4)
> This is not a duplicate, 290741 is about a compiler bug where the compiler
> manages to confuse itself due to inlining.
> This however is code we cannot reasonably expect gcc to compile, plus it is
> relatively easy to fix without any real hacks.
> 

Really ?


(In reply to comment #0)
> In file included from libavcodec/x86/dsputil_mmx.c:1818:
> libavcodec/x86/h264dsp_mmx.c: In function ‘put_h264_qpel8_h_lowpass_3dnow’:
> libavcodec/x86/h264dsp_mmx.c:2079: error: can't find a register in class
> ‘GENERAL_REGS’ while reloading ‘asm’
> libavcodec/x86/h264dsp_mmx.c:2079: error: ‘asm’ operand has impossible
> constraints

from bug #290741, I read:

In file included from libavcodec/x86/dsputil_mmx.c:1819:
libavcodec/x86/h264dsp_mmx.c: In function ‘put_h264_qpel4_h_lowpass_3dnow’:
libavcodec/x86/h264dsp_mmx.c:2058: error: can't find a register in class
‘GENERAL_REGS’ while reloading ‘asm’
libavcodec/x86/h264dsp_mmx.c:2058: error: ‘asm’ operand has impossible
constraints

Comment 6 Reimar Döffinger 2010-05-11 18:03:50 UTC
Well, I actually missed that one and only saw the lpc_mmx.c one.
Still, one is in the qpel4 and the other in the qpel8 function.
The one this bug is about (in the qpel8 function) is fixed in upstream FFmpeg, the qpel4 one from the other bug _maybe_ also (but then quite some time ago already), whereas there is no easy fix for the lpc_mmx.c one.
Comment 7 Alexis Ballier gentoo-dev 2010-05-12 05:42:13 UTC
reopening then; what woud you suggest ?
I'm seriously considering masking the pic useflag on x86 considering how gcc is broken with ffmpeg's inline asm.
Comment 8 Reimar Döffinger 2010-05-12 17:32:12 UTC
Well, a lot of these bugs are things that can and should be fixed upstream, so I welcome people doing this kind of testing.
One way to reduce the frequency of this kind of thing would be to make sure to have one or more FATE (http://fate.multimedia.cx) configurations testing x86+pic so it should always work on at least some compiler versions.
Apart from that, adding a warning to the ebuild that suggests recompiling with -pic might be a good idea.
Comment 9 SpanKY gentoo-dev 2010-05-20 03:19:42 UTC
i dont see how re-opening this bug matters.  the dupe is still open and is the same issue.  x86 has limited registers and using a lot of inline assembly will not work very well with it.

*** This bug has been marked as a duplicate of bug 290741 ***
Comment 10 Reimar Döffinger 2010-05-20 18:57:48 UTC
Whatever you want - I just didn't consider making this a duplicate as helpful.
This bug can be resolved by updating FFmpeg to a newer version, to solve the other bug (in addition) a different compiler version must be used.