# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/prefix/darwin/macos/arch/x64/package.use.mask,v 1.1 2011/12/30 15:49:36 grobian Exp $

# The 32-bits profile is inherited by the 64-bits one!
# All the Mac OS X profiles inherit from their matching arch profile here.


# Jeremy Olexa <darkside@gentoo.org> (29 Jul 2010)
# Relocation issues on 32-bit OSX only, bug #329859
media-sound/mpg123 -mmx -sse

# Fabian Groffen <grobian@gentoo.org> (01 Feb 2009)
# Doesn't compile on 32-bits OSX only, bug #257225
media-video/ffmpeg -mmx
