Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 48699 - emerge transcode fails in libavcodec/msmpeg4.c
Summary: emerge transcode fails in libavcodec/msmpeg4.c
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: Chris White (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on: 51853
Blocks:
  Show dependency tree
 
Reported: 2004-04-22 09:47 UTC by Randal Cobb
Modified: 2004-10-20 17:20 UTC (History)
3 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 Randal Cobb 2004-04-22 09:47:29 UTC
When I try to emerge transcode-0.16.12-r1, I get the following error in the libavcodec/msmpeg4.c class:

if gcc -DHAVE_CONFIG_H -I../.. -I. -I../.. -I. -I../../    -O2 -g -Wall -ffast-math  -DARCH_X86 -DHAVE_MMX -DHAVE_AV_CONFIG_H -D_GNU_SOURCE --include=../../ffmpeg/av_config.h -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fomit-frame-pointer -O3 -O2 -march=pentium4 -fomit-frame-pointer -DDCT_YUV_PRECISION=1 -MT msmpeg4.o -MD -MP -MF ".deps/msmpeg4.Tpo" \
  -c -o msmpeg4.o `test -f 'msmpeg4.c' || echo './'`msmpeg4.c; \
then mv -f ".deps/msmpeg4.Tpo" ".deps/msmpeg4.Po"; \
else rm -f ".deps/msmpeg4.Tpo"; exit 1; \
fi
msmpeg4.c: In function `msmpeg4_pred_dc':
msmpeg4.c:734: error: can't find a register in class `BREG' while reloading `asm'
wmv2.c: At top level:
msmpeg4.c:660: warning: `ff_old_msmpeg4_dc_scale' defined but not used
wmv2.c:103: warning: `wmv2_encode_end' defined but not used
wmv2.c:481: warning: `ff_wmv2_decode_init' defined but not used
make[4]: *** [msmpeg4.o] Error 1
make[4]: Leaving directory `/var/tmp/portage/transcode-0.6.12-r1/work/transcode-0.6.12/ffmpeg/libavcodec'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/portage/transcode-0.6.12-r1/work/transcode-0.6.12/ffmpeg/libavcodec'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/transcode-0.6.12-r1/work/transcode-0.6.12/ffmpeg'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/transcode-0.6.12-r1/work/transcode-0.6.12'
make: *** [all] Error 2

!!! ERROR: media-video/transcode-0.6.12-r1 failed.
!!! Function src_compile, Line 101, Exitcode 2
!!! (no error message)

I have tried adjusting USE flags to include MMX, 3DNOW, etc., I get the exact same results.  I have also tried to reduce my CFLAGS to "", and I still get the error.



Reproducible: Always
Steps to Reproduce:
1. su - or login to the root account
2. emerge transcode


Actual Results:  
I see the emerge performing it's tasks until the compile error causes it to fail.

Expected Results:  
It should have emerged successfully.

Portage 2.0.50-r6 (hardened-x86-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040207-r0,
2.6.5-gentoo)
=================================================================
System uname: 2.6.5-gentoo i686 Intel(R) Pentium(R) 4 CPU 1400MHz
Gentoo Base System version 1.4.6
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.8.3
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.oregonstate.edu
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aalib alsa arts avi berkdb bonobo cdr crypt cups dga directfb dvd dvdr
encode esd fbcon firebird foomaticdb gdbm ggi gif gnome gpm gtk gtk2 gtkhtml
imlib java jpeg ldap lirc mad mozilla mpeg nas nls oggvorbis opengl oss pam
pdflib perl pic png ppds python qt quicktime readline sdl slang speex spell sse
ssl tcl tcltk tcpd tiff tk truetype usb x86 xmms zlib"
Comment 1 Joerg Flade 2004-04-26 07:09:16 UTC
I think the problem of this is that most dont set the theora USE Flag.
After i set it and compiled the libtheora pakage the problem was solved.

Greets Joerg...
Comment 2 Dan Elder 2004-04-27 15:55:07 UTC
I have the same error but even after emerging libtheora (and setting the USE flag) I still get the same error.  I'm running ~x86 with the following emerge settings:

Portage 2.0.50-r6 (hardened-x86-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040420-r0, 2.6.3)
=================================================================
System uname: 2.6.3 i686 Intel(R) Pentium(R) 4 CPU 3.06GHz
Gentoo Base System version 1.4.10
ccache version 2.3 [enabled]
Autoconf: sys-devel/autoconf-2.59-r3
Automake: sys-devel/automake-1.8.3
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-fstack-protector -fpic -O3 -mcpu=pentium4 -ffast-math -funroll-loops -fomit-frame-pointer -fforce-addr -falign-functions=4 -pipe -mmmx -msse -msse2 -mfpmath=sse,387"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-fstack-protector -fpic -O3 -mcpu=pentium4 -ffast-math -funroll-loops -fomit-frame-pointer -fforce-addr -falign-functions=4 -pipe -mmmx -msse -msse2 -mfpmath=sse,387"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache prelink sandbox sfperms strict"
GENTOO_MIRRORS="http://128.213.5.34/gentoo/ ftp://csociety-ftp.ecn.purdue.edu/pub/gentoo/ http://csociety-ftp.ecn.purdue.edu/pub/gentoo/ http://gentoo.llarian.net/ http://gentoo.binarycompass.org"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/overlays/bmg-overlay /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="S3TC X X509 aalib acl acpi acpi4linux adns aim alsa antlr apache2 apm berkdb bluetooth bonobo cddb cdr chroot crypt cups curl dga directfb dv dvd encode esd ethereal evms2 evo faad fam fbcon ffmpeg flac flash freetds gb gd gdbm geoip glade glut gnome gnomedb gphoto2 gpm gps gstreamer gtk gtk2 gtkhtml guile hardened hbci icq idea imagemagick imap imlib innodb ipv6 irda irmc jabber java javamail javascript jpeg junit lcms ldap libgda libwww log4j maildir mbox mcal md5sum mdb memlimit mmap mmx mono motif mozilla mozinterfaceinfo moznoirc moznomail mozp3p mozsvg mpeg mpeg4 msn music mysql nas ncurses net nls nocd nptl nvidia oci8 offensive ofx oggvorbis openal opengl opie optional-tasks oscar oss pam pcap pcmcia pdflib perl php pic plotutils png pnp postgres ppds prelude propolice pthreads python qt quicktime readline regexp rhino samba sasl scanner sdl skey slang slp snmp speex spell sqlite sse ssl svga tcltk tcpd theora threads tiff transcode truetype unicode usb videos vim-with-x wmf wxwin wxwindows x86 xine xinerama xml xml2 xosd xv xvid yahoo zlib"
Comment 3 Artik 2004-07-31 13:16:42 UTC
msmpeg4.c: In function `msmpeg4_pred_dc':
msmpeg4.c:720: error: can't find a register in class `BREG' while reloading `asm'
make[1]: *** [msmpeg4.o] Error 1
make[1]: Leaving directory `/var/tmp/portage/mplayer-1.0_pre5-r2/work/MPlayer-1.0pre5/libavcodec'
make: *** [libavcodec/libavcodec.a] Error 2

!!! ERROR: media-video/mplayer-1.0_pre5-r2 failed.
!!! Function src_compile, Line 347, Exitcode 2
!!! Failed to build MPlayer!
Comment 4 Chris White (RETIRED) gentoo-dev 2004-07-31 21:31:19 UTC
I'll take this.  MPlayer has smiliar issues that I'll be working on tonight.
It deals with how hardened handles the cpu registers with its position
independant code (PIC). 
Comment 5 Piotr Turek 2004-08-21 03:00:07 UTC
In mplayer You can edit confgiure.sh or (this is better) makeconfig (in bz2 file) and add flag for gcc:-fno-pie.
After this mplayer compiled succesfuly (and work). It's propably error similiar to X.org + hardened gcc.

Piotr Turek
Comment 6 Bret Towe 2004-09-22 13:55:07 UTC
Chris:
you said you were going to take this bug
but its still not fixed
what were you going todo/add to the ebuild?

is comment #5 on the right path with the adding cflag item?
Comment 7 Chris White (RETIRED) gentoo-dev 2004-09-22 14:40:17 UTC
This is a generic ffmpeg bug.

The bug this depends on will fix this bug once resolved.

The issue is with x86 asm and ebx register handling when compiling with pic /
hardened gcc.  
Comment 8 Chris White (RETIRED) gentoo-dev 2004-10-20 17:20:10 UTC
Transcode just needed a little flag filtering to get it running.

0.6.12-r2 has the proper fixes implemented.  Closing down this bug.