Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 141323 - emerge media-libs/libmpeg3-1.5.2-r3 using mmx fails, but works without USE=-mmx
Summary: emerge media-libs/libmpeg3-1.5.2-r3 using mmx fails, but works without USE=-mmx
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: x86 Linux
: High minor (vote)
Assignee: Gentoo Media-video project
URL: http://forums.gentoo.org/viewtopic-p-...
Whiteboard:
Keywords:
: 144730 147385 149183 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-07-21 11:46 UTC by Satan Claus
Modified: 2006-11-29 05:28 UTC (History)
6 users (show)

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


Attachments
output of emerge (emerge_error.log,10.43 KB, text/plain)
2006-07-21 11:48 UTC, Satan Claus
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Satan Claus 2006-07-21 11:46:51 UTC
Well, as my description is to long, the same can be found in http://forums.gentoo.org/viewtopic-p-3464006.html , a bit more verbose.

emerge failed upgrading:
  media-libs/libmpeg3-1.5.2-r3 [1.5.2] USE="mmx%" 0 kB
see attachment for output.
   
The "video/output.c" shows inline assembler on the specified lines.   
 
My 
  cat /proc/cpuinfo
shows:
 processor : 0 
 vendor_id : AuthenticAMD 
 cpu family : 6 
 model : 4 
 model name : AMD Athlon(TM)Processor 
 stepping : 4 
 cpu MHz : 1400.720 
 cache size : 256 KB 
 fdiv_bug : no 
 hlt_bug : no 
 f00f_bug : no 
 coma_bug : no 
 fpu : yes 
 fpu_exception : yes 
 cpuid level : 1 
 wp : yes 
 flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow 
 bogomips : 2802.97


, so I'm quite sure that my cpu supports mmx. 
 
Still adding "=media-libs/libmpeg3-1.5.2-r3 -mmx" to my /etc/portage/package.use solves the problem, but as I can imagine it's pretty slow without mmx, right? And why not use it when your processor supports it?
Does anyone have an Idea why I'm getting the error? And does anyone else experience such problems? 
Could it be due to the fact that I'm still using a 32bit processor? Or is it related to mmx mmx2...? 
 
ok, thx... 
SatanClaus


SatanClaus ~ # emerge --info
Portage 2.1-r1 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.3.6-r4, 2.6.16-gentoo-r9 i686)
=================================================================
System uname: 2.6.16-gentoo-r9 i686 AMD Athlon(TM)Processor
Gentoo Base System version 1.6.15
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [enabled]
app-admin/eselect-compiler: [Not Present]
dev-lang/python:     2.3.5-r2, 2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.3
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.16.1-r3
sys-devel/gcc-config: 1.3.13-r3
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-tbird -O3 -pipe -fforce-addr -funroll-loops -falign-functions=4 -maccumulate-outgoing-args"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /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/"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /usr/X11R6/bin/startx"
CXXFLAGS="-march=athlon-tbird -O3 -pipe -fforce-addr -funroll-loops -falign-functions=4 -maccumulate-outgoing-args"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://pandemonium.tiscali.de/pub/gentoo/ http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ http://gentoo.mirror.intouch.nl/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://gentoo.intergenia.de"
LINGUAS="de en en_GB"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="3dnow X a52 aac aalib acl aim alsa apache2 apm arts asf audiofile avi berkdb bitmap-fonts bzip2 cdparanoia cdr cli crypt cups curl cvs dlloader dri dv dvd dvdr dvdread eds emboss encode exif expat ffmpeg firebird flac flash foomaticdb fortran gd gdbm gif gmp gphoto2 gpm gps gstreamer gtk gtk2 icq idn imagemagick imap imlib ipv6 isdnlog jabber java javascript jpeg jpeg2k junit kde kdexdeltas kerberos lcms ldap libcaca libg++ libwww lm_sensors mad mikmod mjpeg mmx mng motif mozilla mp3 mpeg mysql ncurses network nls nptl nsplugin nvidia offensive ogg openal opengl oscar oss pam pcre pdf pdflib perl php png povray ppds pppd python qt qt3 qt4 quicktime readline reflection ruby samba sasl scanner sdl session slang speex spell spl sql sqlite ssl subversion svg svga tcltk tcpd tetex theora threads tiff truetype truetype-fonts type1-fonts udev unicode usb v4l v4l2 vcd vorbis win32codecs wmf wxwindows x86 xine xinerama xml xml2 xmms xorg xpm xv xvid zlib elibc_glibc input_devices_keyboard input_devices_mouse kernel_linux linguas_de linguas_en linguas_en_GB userland_GNU video_cards_nvidia video_cards_nv"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Satan Claus 2006-07-21 11:48:24 UTC
Created attachment 92435 [details]
output of emerge
Comment 2 Satan Claus 2006-07-21 12:01:57 UTC
Removing "-fforce-addr" from CFLAGS did help.
The ebuild now compiles through, even with mmx, but as the manpage of gcc doesn't sound as if -fforce-addr can break something I don't know whether to mark the bug as fixed or not... you decide ;)

thx for your help though.
Comment 3 Christian Faulhammer (RETIRED) gentoo-dev 2006-07-21 12:09:53 UTC
Fall back to a simple CFLAGS="-O2" and try again.
Comment 4 Christopher Hogan 2006-07-21 13:06:52 UTC
I had the same error. Falling back to -O2 fixed it. Would it possible to add "use mmx && replace-flags -O[3-9] -O2" to the ebuild?
Comment 5 Jakub Moc (RETIRED) gentoo-dev 2006-07-21 19:19:59 UTC
You didn't post any errors.
Comment 6 Satan Claus 2006-07-22 04:31:31 UTC
(In reply to comment #5)
> You didn't post any errors.
> 

well, if you consider an ebuild which doesn't emerge not an error... could you plese define what an error is? (perhaps also see the attachment???)
I think it's a problem of that ebuild. I didn't encounter any problems with all the other ebuilds I emerged and the gcc-man-page doesn't sound as if the -fforce-addr could do any damage at all.
Comment 7 Jakub Moc (RETIRED) gentoo-dev 2006-07-22 04:39:33 UTC
(In reply to comment #6)
> plese define what an error is? (perhaps also see the attachment???)

Sorry, I've missed the attachment...
Comment 8 Christian Faulhammer (RETIRED) gentoo-dev 2006-07-22 05:03:15 UTC
Christopher, what are your CFLAGS? Only -O3?

I don't have a problem emerging with -O3.

luna libmpeg3 # emerge --info
Portage 2.1-r1 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.3.6-r4, 2.6.16-gentoo-r13 i686)
=================================================================
System uname: 2.6.16-gentoo-r13 i686 AMD Athlon(tm) XP 2500+
Gentoo Base System version 1.6.15
app-admin/eselect-compiler: [Not Present]
dev-lang/python:     2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.16.1-r3
sys-devel/gcc-config: 1.3.13-r3
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo"
CXXFLAGS="-O3"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache collision-protect distlocks metadata-transfer parallel-fetch sandbox sfperms strict test"
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo/"
LANG="de_DE@euro"
LC_ALL="de_DE@euro"
LINGUAS="de"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.informatik.rwth-aachen.de/gentoo-portage"
USE="x86 3dnow 3dnowext X Xaw3d a52 alsa arts artworkextra asf audiofile avi bash-completion beagle berkdb bidi bitmap-fonts bootsplash branding bzip2 cairo cdda cddb cdparanoia cdr cli cracklib crypt css cups curl custom-cflags dbus dga directfb divx4linux dlloader dri dts dvd dvdr dvdread dvi eds emacs emboss encode esd evo exif expat fam fat fbcon fdftk ffmpeg firefox foomaticdb fortran ftp gb gcj gdbm gif gnome gpm gstreamer gtk gtk2 gtkhtml hal icq idn imagemagick imap imlib ipv6 isdnlog java javascript jikes jpeg jpeg2k kde ldap leim libg++ libwww lm_sensors mad maildir matroska mbox mikmod mime mmx mmxext mng mono motif mp3 mpeg mpeg2 mule nautilus ncurses nforce2 nls nocardbus nptl nptlonly nsplugin nvidia ogg opengl pam pcre pdf pdflib perl plotutils pmu png ppds pppd preview-latex print python qt qt3 qt4 quicktime readline reflection reiserfs samba sdk session slang spell spl sse ssl svg svga t1lib tcltk tcpd theora thunderbird tiff truetype truetype-fonts type1-fonts udev usb vcd videos vorbis win32codecs wmf wxwindows xine xml xorg xosd xv xvid zlib elibc_glibc input_devices_mouse input_devices_keyboard kernel_linux linguas_de userland_GNU video_cards_radeon video_cards_vesa video_cards_fbdev"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 9 Ryan Hill (RETIRED) gentoo-dev 2006-07-22 07:15:59 UTC
you're telling the compiler to store memory addresses in general registers and then trying to compile handmade ASM that expects to have these registers available.  voila, register starvation.
Comment 10 Wulf Krueger (RETIRED) gentoo-dev 2006-07-22 09:28:49 UTC
In simpler words: Remove "-fforce-addr" from your CFLAGS.
Comment 11 Wulf Krueger (RETIRED) gentoo-dev 2006-07-22 09:30:24 UTC
(Sorry for the last comment, wrong bug.)
Comment 12 Staffan Palmroos 2006-07-25 02:49:34 UTC
adding

	filter-flags -fforce-addr

as the first line in the src_compile() function in the ebuild fixed the problem for me.

My CFLAGS is 
CFLAGS="-march=athlon-xp -O3 -mmmx -msse -m3dnow -fforce-addr -pipe"

Comment 13 Samuli Suominen (RETIRED) gentoo-dev 2006-07-25 03:16:50 UTC
(In reply to comment #12)
> adding
> 
>         filter-flags -fforce-addr
> CFLAGS="-march=athlon-xp -O3 -mmmx -msse -m3dnow -fforce-addr -pipe"

You know there is no obligation for developers to filter out ricer flags? And
-march=athlon-xp allready implents -mmmx -msse -m3dnow and you shouldn't have them in make.conf? It builds with sane CFLAGS and that's enough, IMO.

comment #9 is only sanish comment I've seen so far.
Comment 14 Jakub Moc (RETIRED) gentoo-dev 2006-08-22 02:44:19 UTC
*** Bug 144730 has been marked as a duplicate of this bug. ***
Comment 15 Carsten Lohrke (RETIRED) gentoo-dev 2006-09-26 10:12:50 UTC
*** Bug 147385 has been marked as a duplicate of this bug. ***
Comment 16 Carsten Lohrke (RETIRED) gentoo-dev 2006-09-26 10:14:49 UTC
*** Bug 149183 has been marked as a duplicate of this bug. ***
Comment 17 Carsten Lohrke (RETIRED) gentoo-dev 2006-09-26 10:40:28 UTC
-fforce-addr in itself isn't a ricer flag and it would be nice to have the combinations -O3/-fforce-addr respective -finline-functions/-fforce-addr filtererd out. Would the media-video herd mind, if I add the extra bits, instead accumulating dupes?
Comment 18 Alexis Ballier gentoo-dev 2006-10-21 02:56:50 UTC
(In reply to comment #17)
> -fforce-addr in itself isn't a ricer flag and it would be nice to have the
> combinations -O3/-fforce-addr respective -finline-functions/-fforce-addr
> filtererd out. Would the media-video herd mind, if I add the extra bits,
> instead accumulating dupes?
> 

Yes, please do it. I'd like to fix it myself, but I recently lost my x86 box... 
At the same time, if you could also check this for libmpeg3-1.7 and filter the flag if needed, that'd be perfect.

Thanks.

Alexis.
Comment 19 Christian Faulhammer (RETIRED) gentoo-dev 2006-11-04 16:49:05 UTC
(In reply to comment #17)
> -fforce-addr in itself isn't a ricer flag and it would be nice to have the
> combinations -O3/-fforce-addr respective -finline-functions/-fforce-addr
> filtererd out. Would the media-video herd mind, if I add the extra bits,
> instead accumulating dupes?

carlo, media herd was ok with above change... would you please introduce it, so we can close down this bug?
Comment 20 Dominique Michel 2006-11-05 03:17:57 UTC
I experimented with -O3 and -fforce-addr with an antenna simulation software not in portage, the nec2 software. The result was, with gcc-3.4.5, at the program was compiling both with and without -fforce-addr, but the result of the simulation was wrong in some test cases with -O3 alone, when it was correct with -O3 -fforce-addr.

Another result I get was huge compilation time with -O3 fforce-addr, a much bigger executable, and a program that was not executing faster as with -O2 alone.

In consequence, at a program compile with -O3 doesn't mean at the resulting code is correct and that even when the program did compile and run. Tests are needed. Another consequence is at it is better to use -O2 as -O3 fforce-addr, because the execution time will be the same but the compilation time and the loading time will be shorter with -O2.

I don't know what will be the result with gcc-4+ because I went back to -O2 in make.conf when upgrading.
Comment 21 Matthias Schwarzott gentoo-dev 2006-11-29 05:28:21 UTC
Added filtering to libmpeg3-1.5.2-r3.
libmpeg3-1.7 seems to work without filtering.