Summary: | emerge media-libs/libmpeg3-1.5.2-r3 using mmx fails, but works without USE=-mmx | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Satan Claus <Satan.Claus> |
Component: | [OLD] Library | Assignee: | Gentoo Media-video project <media-video> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | crusaderky, dominique.c.michel, hurikhan77+bgo, philantrop, schulz.benjamin, x86 |
Priority: | High | ||
Version: | 2006.0 | ||
Hardware: | x86 | ||
OS: | Linux | ||
URL: | http://forums.gentoo.org/viewtopic-p-3464006.html | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | output of emerge |
Description
Satan Claus
2006-07-21 11:46:51 UTC
Created attachment 92435 [details]
output of emerge
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. Fall back to a simple CFLAGS="-O2" and try again. 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? You didn't post any errors. (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. (In reply to comment #6) > plese define what an error is? (perhaps also see the attachment???) Sorry, I've missed the attachment... 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 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. In simpler words: Remove "-fforce-addr" from your CFLAGS. (Sorry for the last comment, wrong bug.) 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" (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. *** Bug 144730 has been marked as a duplicate of this bug. *** *** Bug 147385 has been marked as a duplicate of this bug. *** *** Bug 149183 has been marked as a duplicate of this bug. *** -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? (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. (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? 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. Added filtering to libmpeg3-1.5.2-r3. libmpeg3-1.7 seems to work without filtering. |