Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 40964 - emerge error when compiling mythtv-0.14*. i386/dsputil_mmx.c:614: error: can't find a register in class `GENERAL_REGS' while reloading `asm' read at the bottom for details.
Summary: emerge error when compiling mythtv-0.14*. i386/dsputil_mmx.c:614: error: can...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Television related Applications in Gentoo's Portage
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-02-09 06:29 UTC by Snappi
Modified: 2004-06-07 12:32 UTC (History)
2 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 Snappi 2004-02-09 06:29:07 UTC
This is what I get from mythtv-.14 and .14-r1 . I have tried to lower myflags wich by default isn't aggresive. I use 
 
 
CFLAGS="-O2 -march=athlon -pipe -fomit-frame-pointer"


 
-------------------------------------------------------------------------------
D_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I../.. -I/usr/qt/3/include -o fdct_mmx.o i386/fdct_mmx.c 
 gcc -c -pipe -w -Wall -march=athlon -O2 -pipe -fomit-frame-pointer -g -O3 -DPIC -fPIC -fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -D_REENTRANT  -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DMMX -DUSING_IVTV -DHAVE_XVMC -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I../.. -I/usr/qt/3/include -o cputest.o i386/cputest.c 
 gcc -c -pipe -w -Wall -march=athlon -O2 -pipe -fomit-frame-pointer -g -O3 -DPIC -fPIC -fomit-frame-pointer -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -D_REENTRANT  -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DMMX -DUSING_IVTV -DHAVE_XVMC -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I../.. -I/usr/qt/3/include -o dsputil_mmx.o i386/dsputil_mmx.c 
 i386/dsputil_mmx.c: In function `h263_h_loop_filter_mmx': 
 i386/dsputil_mmx.c:614: error: can't find a register in class `GENERAL_REGS' while reloading `asm' 
 make[2]: *** [dsputil_mmx.o] Error 1 
 make[2]: Leaving directory `/var/tmp/portage/mythtv-0.14/work/mythtv-0.14/libs/libavcodec' 
 make[1]: *** [sub-libavcodec] Error 2 
 make[1]: Leaving directory `/var/tmp/portage/mythtv-0.14/work/mythtv-0.14/libs' 
 make: *** [sub-libs] Error 2 
 
 !!! ERROR: media-tv/mythtv-0.14 failed. 
 !!! Function src_compile, Line 92, Exitcode 2 
 !!! compile problem 
-------------------------------------------------------------------------------

Reproducible: Always
Steps to Reproduce:
1.
2.
3.
Comment 1 Benjamin Coles 2004-02-09 11:32:38 UTC
assigning to right group
Comment 2 Max Kalika (RETIRED) gentoo-dev 2004-02-09 12:05:50 UTC
please post your emerge --info screen
Comment 3 Snappi 2004-02-09 12:52:06 UTC
sorry for that here is my emerge --info:


Portage 2.0.50 (hardened-x86-2004.0, gcc-3.3.2, glibc-2.3.3_pre20040207-r0, 2.6.2-gentoo)
=================================================================
System uname: 2.6.2-gentoo i686 AMD Athlon(tm) Processor
Gentoo Base System version 1.4.3.13
Autoconf: sys-devel/autoconf-2.59
Automake: sys-devel/automake-1.8.2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon -O2 -pipe -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.1/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox sfperms strict"
GENTOO_MIRRORS="http://ds.thn.htu.se/linux/gentoo http://mirror.pudas.net/gentoo ftp://mirror.pudas.net/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 alsa arts berkdb crypt esd gdbm gtk imlib motif mysql nls nvidia oggvorbis opengl oss pam perl pic python qt readline sdl slang ssl svga tcpd x86 zlib"
Comment 4 Martin Holzer (RETIRED) gentoo-dev 2004-02-09 12:54:04 UTC
add mmx to your USE flags
add -mmmx to your CFLAGS
Comment 5 Snappi 2004-02-09 13:06:51 UTC
still same error:

FSET_BITS=64 -DPREFIX=\"/usr\" -DMMX -DUSING_IVTV -DUSING_XVMC -DHAVE_XVMC -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I../.. -I/usr/qt/3/include -o dsputil_mmx.o i386/dsputil_mmx.c
i386/dsputil_mmx.c: In function `h263_h_loop_filter_mmx':
i386/dsputil_mmx.c:614: error: can't find a register in class `GENERAL_REGS' while reloading `asm'
make[2]: *** [dsputil_mmx.o] Error 1
make[2]: Leaving directory `/var/tmp/portage/mythtv-0.14-r1/work/mythtv-0.14/libs/libavcodec'
make[1]: *** [sub-libavcodec] Error 2
make[1]: Leaving directory `/var/tmp/portage/mythtv-0.14-r1/work/mythtv-0.14/libs'
make: *** [sub-libs] Error 2

!!! ERROR: media-tv/mythtv-0.14-r1 failed.
!!! Function src_compile, Line 110, Exitcode 2
!!! compile problem


emerge --info

Portage 2.0.50 (hardened-x86-2004.0, gcc-3.3.2, glibc-2.3.3_pre20040207-r0, 2.6.2-gentoo)
=================================================================
System uname: 2.6.2-gentoo i686 AMD Athlon(tm) Processor
Gentoo Base System version 1.4.3.13
Autoconf: sys-devel/autoconf-2.59
Automake: sys-devel/automake-1.8.2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer -mmmx"
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/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer -mmmx"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox sfperms strict"
GENTOO_MIRRORS="http://ds.thn.htu.se/linux/gentoo http://mirror.pudas.net/gentoo ftp://mirror.pudas.net/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 alsa arts berkdb crypt esd gdbm gtk imlib mmx motif mysql nls nvidia oggvorbis opengl oss pam perl pic python qt readline sdl slang ssl svga tcpd x86 zlib"
Comment 6 Max Kalika (RETIRED) gentoo-dev 2004-02-09 13:14:24 UTC
which linux-headers do you have installed?
Comment 7 Snappi 2004-02-09 13:19:25 UTC
currently I have linux-headers-2.4.22, and that's strange because I use kernel-2.6.2. I will update and reply with the results.
Comment 8 Snappi 2004-02-09 14:37:40 UTC
I have now upgraded linux-headers to 2.6.0 and re-emerged glibc and I still have the same problem. 
Comment 9 Christian Kruft 2004-02-27 14:24:42 UTC
hey, i had the same problem with my cflags - so i tried CFLAGS="" ACCEPT_KEYWORDS="~x86" emerge mythtv -  so mythtv 0.14 compiled.
Comment 10 brian tarricone 2004-03-03 00:39:42 UTC
fails for me as well.

> add mmx to your USE flags
> add -mmmx to your CFLAGS

not sure how either of these would help...  assuming you're using a -march= that supports MMX, gcc should enable MMX automatically.  (either way, i tried it with "-mmmx" added, and it still failed.)

if, by chance, you meant doing USE="-mmx", that won't do anything, since the ebuild doesn't honor the mmx USE flag.

i tried adding "-mno-mmx" to my CFLAGS, and that allowed the compile to finish sucessfully (though there was a strangely long pause while compiling the file in question).  however, i don't consider that a solution, since my machine is a bit on the edge where required performance is concerned, and i'm not so sure it's going to run so well MMX-less.
Comment 11 Christoph Richter 2004-03-04 13:55:34 UTC
I have had the same error using gcc-3.3.3 with CFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer -mmmx -m3dnow -msse -mfpmath=sse,387 -ffast-math -frename-registers -fsched-spec-load -fforce-addr -fprefetch-loop-arrays -ftracer" 

However the responsible CFLAG seems to be -fforce-addr, without it mythtv-0.14 compiled just fine. Maybe your version of GCC enables that option at -O3?? Which version do you use, Snappi?
Comment 12 Snappi 2004-03-10 05:33:16 UTC
I got mad en did a clean install and everything worked fine after that.
Comment 13 Max Kalika (RETIRED) gentoo-dev 2004-03-10 10:27:16 UTC
Perhaps kernel headers where somehow corrupted?  Can we close this now?
Comment 14 brian tarricone 2004-03-10 10:36:30 UTC
confirmed: removing -fforce-addr from CFLAGS allows compilation to succeed.  perhaps a 'filter-flags' statement should be added to the ebuild?
Comment 15 Max Kalika (RETIRED) gentoo-dev 2004-03-10 10:43:33 UTC
I'm really hesitant to start adding filter flags for all the possible things that can break it.  Lets just close this one as one of those "overly-optimized CFLAGS" issues and refer people here if they hit it.
Comment 16 Max Kalika (RETIRED) gentoo-dev 2004-03-10 10:56:20 UTC
nevermind, I added this to filter-flags.
Comment 17 Greisberger Christophe 2004-06-06 13:26:41 UTC
Well, there are other flags that make the emerge fail...
I'm currently searching which one(s).
With CFLAGS="" it works, but with my current flags it fails (see emerge info).
I'm emerging, adding one by one my flags and I'll post the result later.

# emerge info
Portage 2.0.50-r7 (default-x86-1.4, gcc-3.3.3, glibc-2.3.3_pre20040420-r0, 2.6.5-gentoo-r1)
=================================================================
System uname: 2.6.5-gentoo-r1 i686 AMD Athlon(tm) XP 2800+
Gentoo Base System version 1.4.15
distcc 2.14 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
Autoconf: sys-devel/autoconf-2.59-r4
Automake: sys-devel/automake-1.8.5
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon-xp -O3 -pipe -fforce-addr -fomit-frame-pointer -fprefetch-loop-arrays -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4 -mmmx -msse -m3dnow -mfpmath=387,sse -momit-leaf-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 /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control /var/www/localhost/htdocs//mythweb/config"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp -O3 -pipe -fforce-addr -fomit-frame-pointer -fprefetch-loop-arrays -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4 -mmmx -msse -m3dnow -mfpmath=387,sse -momit-leaf-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
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="3dnow X aalib acl acpi aim alsa apache2 arts audiofile avi berkdb bidi canna caps cdr cjk crypt cups curl dga directfb divx4linux doc dvb dvd dvdr encode fam fastcgi fbcon fdftk fftw flac flash foomaticdb freewnn gd gdbm ggi gif gmp gphoto2 gstreamer gtk gtk2 guile icq imagemagick imap imlib jack java joystick jpeg kde ladcca lcms libg++ libwww linguas_ar linguas_de linguas_en linguas_fr linguas_hu linguas_jp linguas_ro linguas_ru linguas_sp lirc lzw-tiff mad maildir matroska mbox mmx motif mozilla mpeg msn mysql nas ncurses nls nocd nvidia odbc oggvorbis opengl oscar pam pdflib perl pic pie plotutils png postgres ppds prelude python qt quicktime readline samba sasl scanner sdl slang slp speex spell sse ssl svga szip tcltk tcpd tetex theora tiff truetype unicode usb v4l2 vhosts videos vim-with-x wmf wxwindows x86 xinerama xml xml2 xmms xosd xv xvid yahoo zlib"
Comment 18 Greisberger Christophe 2004-06-07 12:32:40 UTC
Found it! Of course it was the last one...
The compilation fails with -momit-leaf-frame-pointer