transcode-0.6.14-r2 fails to compile with the 3dnow use flag set: # emerge transcode ... i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -D_REENTRANT -I../.. -I../../filter -I../../src -I../../libvo -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -mtune=athlon64 -march=athlon64 -pipe -msse -msse2 -mmmx -m3dnow -mfpmath=sse -maccumulate-outgoing-args -foptimize-sibling-calls -frename-registers -funit-at-a-time -fstrength-reduce -fmerge-constants -fmerge-all-constants -ffast-math -fomit-frame-pointer -funroll-loops -fforce-addr -fforce-mem -fmove-all-movables -fprefetch-loop-arrays -falign-functions=4 -frerun-cse-after-loop -frerun-loop-opt -DDCT_YUV_PRECISION=1 -MT postprocess.lo -MD -MP -MF .deps/postprocess.Tpo -c postprocess.c -fPIC -DPIC -o .libs/postprocess.o postprocess_template.c: In function `postProcess_3DNow': postprocess_template.c:1157: error: can't find a register in class `GENERAL_REGS' while reloading `asm' make[3]: *** [postprocess.lo] Error 1 make[3]: Leaving directory `/var/tmp/portage/transcode-0.6.14-r2/work/transcode-0.6.14/filter/pp' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/transcode-0.6.14-r2/work/transcode-0.6.14/filter' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/transcode-0.6.14-r2/work/transcode-0.6.14' make: *** [all] Error 2 !!! ERROR: media-video/transcode-0.6.14-r2 failed. !!! Function src_compile, Line 132, Exitcode 2 !!! emake failed !!! If you need support, post the topmost build error, NOT this status message. note: the following compiles correctly: # USE="-3dnow" emerge transcode Reproducible: Always Steps to Reproduce: 1. emerge transcode 2. 3. Actual Results: compilation failes with the above error Expected Results: compile Portage 2.0.51.20-r5 (default-linux/x86/2005.0, gcc-3.4.3-20050110, glibc-2.3.4.20040808-r1, 2.6.10 i686) ================================================================= System uname: 2.6.10 i686 AMD Athlon(tm) 64 Processor 3200+ Gentoo Base System version 1.6.11 dev-lang/python: 2.3.5 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r8 sys-devel/libtool: 1.5.16 virtual/os-headers: 2.6.11 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O3 -mtune=athlon64 -march=athlon64 -pipe -msse -msse2 -mmmx -m3dnow -mfpmath=sse -maccumulate-outgoing-args -foptimize-sibling-calls -frename-registers -funit-at-a-time -fstrength-reduce -fmerge-constants -fmerge-all-constants -ffast-math -fomit-frame-pointer -funroll-loops -fforce-addr -fforce-mem -fmove-all-movables -fprefetch-loop-arrays -falign-functions=4 -frerun-cse-after-loop -frerun-loop-opt" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-O3 -mtune=athlon64 -march=athlon64 -pipe -msse -msse2 -mmmx -m3dnow -mfpmath=sse -maccumulate-outgoing-args -foptimize-sibling-calls -frename-registers -funit-at-a-time -fstrength-reduce -fmerge-constants -fmerge-all-constants -ffast-math -fomit-frame-pointer -funroll-loops -fforce-addr -fforce-mem -fmove-all-movables -fprefetch-loop-arrays -falign-functions=4 -frerun-cse-after-loop -frerun-loop-opt" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distlocks sandbox sfperms strict usersandbox" GENTOO_MIRRORS="http://sunsite.cnlab-switch.ch/ftp/mirror/gentoo/ http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" LANG="en_US.UTF-8" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/root/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 3dnow 3dnowex X aac acl acpi alsa apm arts avi bash-completion berkdb bitmap-fonts bluetooth bzlib caps cddb cdparanoia cdr chroot crypt cscope ctype cups curl dga divx4linux dmx dvd dvdr dvdread edl emboss encode ethereal exif fam fbcon flac flash font-server foomaticdb gd gdbm gif gimp gmp gnokii gphoto2 gpm gtk gtk2 icq imagemagick imap imlib ipv6 ithreads java javascript jce joystick jpeg jpeg2k junit kde latex lcms ldap libg++ libwww live lm_sensors logitech-mouse lzo lzw lzw-tiff mad mcal md5sum mhash mikmod mime mmx mmx2 mng mono motif moznocompose moznoirc moznomail mozp3p mozplaintext mozsvg mp3 mpeg mpeg4 mplayer ncurses network nis nls no_wxgtk1 nomotif nptl nvidia ogg oggvorbis ooo-kde opengl oss pam pda pdflib perl pg-intdatetime pic pie png postgres prebuilt qt quicktime rdesktop readline real rtc samba scanner sdl slang smime sms spell sse sse2 ssl svg tetex theora threads tiff truetype truetype-fonts type1-fonts unicode usb userlocales vorbis wmf xface xinerama xml2 xmms xosd xprint xrandr xscreensaver xv xvid xvmc zeroconf zlib" Unset: ASFLAGS, CTARGET, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS
try with saner cflags. suggested "-O2 -pipe -mtune=athlon64 -march=athlon64 -fomit-frame-pointer" Reopen if isn't working with them
OMG I'M FLYING SO FAST OH S***
HOLY COW I'M GOING SO FAST OH F***
The -fmove-all-movables CFLAG seems to cause the troubles. Maybe the ebuild should filter it out.
from the gcc man... -fmove-all-movables -freduce-all-givs These two options are intended to be removed someday, once they have helped determine the efficacy of various approaches to improv- ing loop optimizations. I'm not sure about adding filters for every cflags. I'm all for let people experiment, if they know what are they doing. bug closed since is getting a bit of noise and is solved