The USE flags mmx, mmx2, sse, sse2, 3dnow, 3dnowex are hard masked on amd64/Linux. No ebuild will use them. Blocks also Bug #76521 Reproducible: Always Steps to Reproduce: 1. emerge -pv gimp => no mmx enabled 2. Adding following to /usr/portage/profiles/default-linux/amd64/use.mask # Unmask x86 instruction sets (taken from ../x86/use.mask) -mmx -mmx2 -sse -sse2 -3dnow -3dnowex This assumed to be the correct fix. These flags are generally disabled for Linux, then generally enabled for linux->x86. They should then also be generally be enabled for linux->amd64 Works Actual Results: [ebuild R ] media-gfx/gimp-2.0.4 +aalib (-altivec) -debug +doc -gimpprint +jpeg (-mmx) +mng +png +python (-sse) +svg +tiff +wmf 0 kB You see (-mmx), (-sse) no matter whats in /etc/make.conf or /etc/portage/ Expected Results: [ebuild R ] media-gfx/gimp-2.0.4 +aalib (-altivec) -debug +doc -gimpprint +jpeg +mmx* +mng +png +python +sse* +svg +tiff +wmf 0 kB You see +mms, +sse Portage 2.0.51-r3 (default-linux/amd64/2004.3, gcc-3.4.3, glibc-2.3.4.20040808-r1, 2.6.10 x86_64) ================================================================= System uname: 2.6.10 x86_64 Mobile AMD Athlon 64 Processor 2800+ Gentoo Base System version 1.5.3 Autoconf: sys-devel/autoconf-2.59-r5,sys-devel/autoconf-2.13 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.90.0.1.1-r3 Headers: sys-kernel/linux26-headers-2.6.8.1-r2 Libtools: sys-devel/libtool-1.5.2-r7 ACCEPT_KEYWORDS="amd64" AUTOCLEAN="yes" CFLAGS="-O2" CHOST="x86_64-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/ kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/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/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox" GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/ gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 3dnow 3dnowex X aac aalib accessibility acpi alsa audiofile berkdb bitmap-fonts blender- game bluetooth bonobo bzlib c++ cairo cddb cdparanoia cdr cgi cjk cross crypt cups directfb divx4linux doc dri dvd dvdr dvdread edl emacs emacs-w3 emul-linux-x86 esd ethereal ex f77 fam fbcon fftw flac flash flatfile font-server fortran ftp gd gdbm gif ginac glx gmp gphoto2 gpm gstreamer gtk gtkhtml imagemagick imap imlib insecure-drivers ipv6 java jp2 jpeg kde lcms leim libwww lirc lzw lzw-tiff mad mbox mikmod mime mmx mmx2 mng motif mpi mule multilib ncurses nls offensive oggvorbis opengl oss pam pcntl pcre perl php png pnp ppds python qt readline recode samba sdk sdl sharedmem simplexml slang sse sse2 ssl svg sysvipc tcltk tcpd tetex theora tiff tokenizer truetype truetype-fonts type1-fonts usb userlocales v4l v4l2 vhosts videos wmf xfs xine xinerama xml xml2 xmms xosd xpm xprint xrandr xv xvid xvmc yv12 zlib video_cards_radeon linguas_en linguas_de"
This issue is currently being addressed by the AMD64 team. the USE flags are masked becuase they usualy enable x86 specific asm code.
Solved -> Reopen for different solution
The mentioned USE-Flags are for x86 only. amd64 enabled those part of source by default. INVALID.
Referring also to the Bug #76521 solution. In #76521 Danny wrote "AMD64 Team decided that all packages that support amd64-SIMD assembler will be enabled to use that assembler by default." I agree with that. Could you comment a reference to the discussion for the decision? Thanx. But the solution shown up in #76521 is not in the intention of the Gentoo build system, this simply doesn't enable that using the build system, this simply hardcodes that "enable" in that ebuild. If we follow that way, we have to review all ebuilds using that flags, and hardcode that for amd64 in. This is error-pronous and unnecessary work. The USE game here, as far as I have that understood: 1. /usr/portage/profiles/default-linux/use.mask This masks out the flags for Linux generally, e.g mmx 2. /usr/portage/profiles/default-linux/amd64/use.mask Here we have to undo the effect of 1., by adding each flag with a dash -mmx Now principally any user can add the flags in e.g. /etc/make.conf Same game as similar problem "altivec" on Linux/ppc64 3. As the porting team has decided, to enable that flags per default, the following entry USE="${GRP_STAGE23_USE} mmx mmx2 sse sse2 3dnow 3dnowex" should be added to /usr/portage/profiles/default-linux/amd64/make.defaults The current #76521 solution is a "get-rid-of-that" solution, not a "enable-per-default" solution
It's no "get-rif-od-that" solution. Taking {sse,sse2,mmx,...} out of use.mask would lead to breakage of all ebuilds that don't check for x86 when they check for the useflags. USE="sse" means: on _x86_, enable sse-assembler (32bit) for this package. This would break the build with gcc-error. You can't mix 32bit and 64bit code like that. So we had effectively 2 possibilities. Change the build-system to different USE Flags {sse-64,mmx-64,...} or hard-enable them.As there are NO amd64 processors w/o SIMD support, the choice was hard-enabling it. If you still want to ask questions or comment on this, please refer to the gentoo-amd64 mailing-list.
Closing this issue for now, don't agree "invalid"