# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/prefix/sunos/use.mask,v 1.4 2013/02/02 13:12:29 grobian Exp $

# Re-add SunOS libc
-elibc_SunOS
-kernel_SunOS

# these will more than likely never work on solaris
3dfx
3dnow
3dnowext
acpi
alsa
apm
cap
caps
cman
clvm
directfb
divx4linux
djbfft
emul-linux-x86
fbcon
fdftk
fmod
ggi
gpm
hardened
icc
icc-pgo
mmx
mmx2
# the following USE flag requires device-mapper
on-the-fly-crypt
oss
solid
sse
sse2
svga
sybase
sybase-ct
rtc
uclibc
voodoo3
pvm
v4l
