# Unmask the flag which corresponds to ARCH.
-arm64

# Unmask arm flags.
-armv8a

# Raúl Porcel <armin76@gentoo.org>
# I've been told xfs is broken on ARM
xfs

# Mart Raudsepp <leio@gentoo.org>
# net-misc/networkmanager not keyworded
networkmanager

# Raúl Porcel <armin76@gentoo.org>
# Fails to build/work
openexr

# Samuli Suominen <drac@gentoo.org>
# media-libs/amrnb and media-libs/amrwb not tested.
amr

# Samuli Suominen <drac@gentoo.org>
# sci-visualization/grace not tested.
grace

# Samuli Suominen <drac@gentoo.org>
# media-gfx/gimp not tested.
gimp

# Saleem Abdulrasool <compnerd@gentoo.org>
# With vapier's permission masking this.
mozilla

hardened

# Krzysiek Pawlik <nelchael@gentoo.org>
# With vapier's permission masking aoss:
aoss

# Paul de Vrieze <pauldv@gentoo.org>
# There is no java in this profile (if there is it must be available). Without
# this repoman will fail on apps like sys-libs/db
java
java-internal
java-external

# Stuff that doesn't make sense on this arch
3dfx
cpufreq
dell
laptop
dmi

# Stuff we don't want
chicken
clisp
fuse
R
octave
tracker
xindy
lyx
mpi
lasi
fusion

# havent tested yet
cupsddk
gphoto2
mythtv
dvb
qt3
arts
kde
afs
mono
pike
lirc
lm_sensors
netjack
beagle
nvtv
mzscheme
xemacs
madwifi
libupnp
zvbi
dvd
fluidsynth
gnomecd
lapack
cblas
webkit
prolog
sid
libmms
mtp
ieee1394

# 2006/02/05 - Donnie Berkholz <dberkholz@gentoo.org>
# Modular X: mask for architectures on which they aren't available
video_cards_apm
video_cards_ark
video_cards_ast
video_cards_ati
video_cards_cirrus
video_cards_chips
video_cards_cyrix
video_cards_glint
video_cards_i128
video_cards_i740
video_cards_imstt
video_cards_intel
video_cards_mach64
video_cards_mga
video_cards_neomagic
video_cards_newport
video_cards_nsc
video_cards_nv
video_cards_r128
video_cards_radeon
video_cards_radeonhd
video_cards_rendition
video_cards_s3
video_cards_s3virge
video_cards_savage
video_cards_siliconmotion
video_cards_sis
video_cards_tdfx
video_cards_tga
video_cards_trident
video_cards_tseng
video_cards_vesa
video_cards_via
video_cards_voodoo

# Unmask synaptics for use on ARM
-input_devices_synaptics

# Unmask Wacom for use on ARM
-input_devices_wacom

# Diego Pettenò <flameeyes@gentoo.org> (6 Dec 2006)
# Unmask the ARM-specific ALSA drivers
-alsa_cards_pxa2xx-i2sound
-alsa_cards_pxa2xx-soc
-alsa_cards_pxa2xx-soc-corgi
-alsa_cards_pxa2xx-soc-poodle
-alsa_cards_pxa2xx-soc-spitz
-alsa_cards_pxa2xx-soc-tosa
-alsa_cards_sa11xx-uda1341ts
-alsa_cards_armaaci
-alsa_cards_at91-soc
-alsa_cards_at91-soc-eti-b1-wm8731

# USE=audit masked prior to testing on alpha, arm, hppa, ppc64, s390, sh.
# Bug #184563, 18 Sep 2007
# Robin H. Johnson <robbat2@gentoo.org>
audit

# Disable pepper_flash on arm64.
pepper_flash

# As DriveFS is built with bazel and bazel's support of cros-compiling to
# aarch64 is somewhat deffective as of end of 2019, disable drivefs for arm64.
drivefs

# Unmask scanning on arm64.
-scanner

# Some SANE backends that we want to disable to conserve disk space
# TODO(b/161252439): synchronize with x86.
sane_backends_hp3900
sane_backends_plustek
sane_backends_snapscan
sane_backends_umax
sane_backends_mustek_usb
sane_backends_avision
sane_backends_gt68xx
sane_backends_rts8891
sane_backends_u12
sane_backends_kvs1025
sane_backends_artec_eplus48u
sane_backends_hp5590
sane_backends_hp5400
sane_backends_hp4200
sane_backends_hp4200
sane_backends_hpljm1005
sane_backends_ma1509

