aboutsummaryrefslogtreecommitdiff
blob: f3c080ce568c8137f838a4d5f1a01ccdf6e44f2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?xml version="1.0" encoding="UTF-8"?>
<guide self="profiles/use.mask/">
<chapter>
<title>Profiles <c>use.mask</c> File</title>
<body>

<p>
The <c>use.mask</c> file can be used to mark <c>USE</c> flags as unavailable on a
particular profile. This can be useful for various reasons:
</p>

<ul>
  <li>
    Masking hardware-specific feature flags. For example, <c>mmx</c> and
    <c>sse</c> are only available on <c>x86</c>, <c>altivec</c> is only
    available on <c>ppc</c> and <c>vis</c> is only available on <c>sparc</c> v9.
  </li>
  <li>
    Disabling unavailable soft dependencies. A simple hypothetical example <d /> say
    <c>fooapp</c> works on <c>mips</c>, but has an optional dependency (controlled by
    the <c>bar</c> flag) upon <c>libbar</c>, which doesn't work on <c>mips</c>. Then by
    adding the <c>bar</c> flag to <c>profiles/arch/mips/use.mask</c>,
    <c>fooapp</c> could be made available to <c>mips</c> users with the unresolvable
    dependency forcibly disabled.
  </li>
</ul>

<p>
Note that <c>use.mask</c> is a per-flag thing, not per package's use of a given
flag. This is one of the reasons that USE flags must have a specific well
defined purpose.
</p>

<p>
Updates to <c>use.mask</c> should be handled via the relevant arch team. Any
additions are sorted chronologically, starting at the top of the file
(underneath any comment header blocks).
</p>

<p>
See <uri link="::general-concepts/use-flags/#noblah USE Flags"/> for more discussion.
</p>

</body>
</chapter>
</guide>