# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/default/linux/hppa/package.use.mask,v 1.14 2013/10/14 18:32:06 jer Exp $

# DON'T TOUCH THIS FILE. Instead, file a bug and assign it to <hppa@gentoo.org>.

# Jeroen Roovers <jer@gentoo.org> (1 Sep 2011)
# No hardware support for NUMA (bug #381313)
sys-apps/hwloc numa

# Jeroen Roovers <jer@gentoo.org> (15 Aug 2008)
# HPPA still isn't supported with anything but -O0.
www-client/firefox custom-optimization

# Jeroen Roovers <jer@gentoo.org> (18 Jul 2008)
# Mask precompiled headers (pch) USE flag for dev-qt/qt* (bug #223775).
dev-qt/qt3support pch
dev-qt/qtbearer pch
dev-qt/qtcore pch
dev-qt/qtdbus pch
dev-qt/qtdemo pch
dev-qt/qtgui pch
dev-qt/qthelp pch 
dev-qt/qtopengl pch
dev-qt/qtphonon pch
dev-qt/qtscript pch
dev-qt/qtsql pch
dev-qt/qtsvg pch
dev-qt/qttest pch
dev-qt/qtwebkit pch
dev-qt/qtxmlpatterns pch

# DON'T TOUCH THIS FILE. Instead, file a bug and assign it to <hppa@gentoo.org>.
