aboutsummaryrefslogtreecommitdiff
blob: be6242fa6830de4cf163f062ea0a6c0d681af3cb (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
<?xml version="1.0"?>
<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 x86, <c>altivec</c> is only available on <c>ppc</c> and <c>vis</c> is
    only available on sparc 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.
</p>

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

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