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
|
<div class="subsection-level-extent" id="eBPF-Options"> <div class="nav-panel"> <p> Next: <a href="fr30-options" accesskey="n" rel="next">FR30 Options</a>, Previous: <a href="dec-alpha-options" accesskey="p" rel="prev">DEC Alpha Options</a>, Up: <a href="submodel-options" accesskey="u" rel="up">Machine-Dependent Options</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div> <h1 class="subsection" id="eBPF-Options-1"><span>3.19.13 eBPF Options<a class="copiable-link" href="#eBPF-Options-1"> ¶</a></span></h1> <dl class="table"> <dt><code class="code">-mframe-limit=<var class="var">bytes</var></code></dt> <dd>
<p>This specifies the hard limit for frame sizes, in bytes. Currently, the value that can be specified should be less than or equal to ‘<samp class="samp">32767</samp>’. Defaults to whatever limit is imposed by the version of the Linux kernel targeted. </p> </dd> <dt>
<span><code class="code">-mkernel=<var class="var">version</var></code><a class="copiable-link" href="#index-mkernel-1"> ¶</a></span>
</dt> <dd>
<p>This specifies the minimum version of the kernel that will run the compiled program. GCC uses this version to determine which instructions to use, what kernel helpers to allow, etc. Currently, <var class="var">version</var> can be one of ‘<samp class="samp">4.0</samp>’, ‘<samp class="samp">4.1</samp>’, ‘<samp class="samp">4.2</samp>’, ‘<samp class="samp">4.3</samp>’, ‘<samp class="samp">4.4</samp>’, ‘<samp class="samp">4.5</samp>’, ‘<samp class="samp">4.6</samp>’, ‘<samp class="samp">4.7</samp>’, ‘<samp class="samp">4.8</samp>’, ‘<samp class="samp">4.9</samp>’, ‘<samp class="samp">4.10</samp>’, ‘<samp class="samp">4.11</samp>’, ‘<samp class="samp">4.12</samp>’, ‘<samp class="samp">4.13</samp>’, ‘<samp class="samp">4.14</samp>’, ‘<samp class="samp">4.15</samp>’, ‘<samp class="samp">4.16</samp>’, ‘<samp class="samp">4.17</samp>’, ‘<samp class="samp">4.18</samp>’, ‘<samp class="samp">4.19</samp>’, ‘<samp class="samp">4.20</samp>’, ‘<samp class="samp">5.0</samp>’, ‘<samp class="samp">5.1</samp>’, ‘<samp class="samp">5.2</samp>’, ‘<samp class="samp">latest</samp>’ and ‘<samp class="samp">native</samp>’. </p> </dd> <dt>
<span><code class="code">-mbig-endian</code><a class="copiable-link" href="#index-mbig-endian-5"> ¶</a></span>
</dt> <dd>
<p>Generate code for a big-endian target. </p> </dd> <dt>
<span><code class="code">-mlittle-endian</code><a class="copiable-link" href="#index-mlittle-endian-5"> ¶</a></span>
</dt> <dd>
<p>Generate code for a little-endian target. This is the default. </p> </dd> <dt>
<span><code class="code">-mjmpext</code><a class="copiable-link" href="#index-mjmpext"> ¶</a></span>
</dt> <dd>
<p>Enable generation of extra conditional-branch instructions. Enabled for CPU v2 and above. </p> </dd> <dt>
<span><code class="code">-mjmp32</code><a class="copiable-link" href="#index-mjmp32"> ¶</a></span>
</dt> <dd>
<p>Enable 32-bit jump instructions. Enabled for CPU v3 and above. </p> </dd> <dt>
<span><code class="code">-malu32</code><a class="copiable-link" href="#index-malu32"> ¶</a></span>
</dt> <dd>
<p>Enable 32-bit ALU instructions. Enabled for CPU v3 and above. </p> </dd> <dt>
<span><code class="code">-mcpu=<var class="var">version</var></code><a class="copiable-link" href="#index-mcpu-5"> ¶</a></span>
</dt> <dd>
<p>This specifies which version of the eBPF ISA to target. Newer versions may not be supported by all kernels. The default is ‘<samp class="samp">v3</samp>’. </p> <p>Supported values for <var class="var">version</var> are: </p> <dl class="table"> <dt>‘<samp class="samp">v1</samp>’</dt> <dd>
<p>The first stable eBPF ISA with no special features or extensions. </p> </dd> <dt>‘<samp class="samp">v2</samp>’</dt> <dd>
<p>Supports the jump extensions, as in <samp class="option">-mjmpext</samp>. </p> </dd> <dt>‘<samp class="samp">v3</samp>’</dt> <dd>
<p>All features of v2, plus: </p>
<ul class="itemize mark-minus"> <li>32-bit jump operations, as in <samp class="option">-mjmp32</samp> </li>
<li>32-bit ALU operations, as in <samp class="option">-malu32</samp> </li>
</ul> </dd> </dl> </dd> <dt>
<span><code class="code">-mco-re</code><a class="copiable-link" href="#index-mco-re"> ¶</a></span>
</dt> <dd>
<p>Enable BPF Compile Once - Run Everywhere (CO-RE) support. Requires and is implied by <samp class="option">-gbtf</samp>. </p> </dd> <dt>
<span><code class="code">-mno-co-re</code><a class="copiable-link" href="#index-mno-co-re"> ¶</a></span>
</dt> <dd>
<p>Disable BPF Compile Once - Run Everywhere (CO-RE) support. BPF CO-RE support is enabled by default when generating BTF debug information for the BPF target. </p> </dd> <dt><code class="code">-mxbpf</code></dt> <dd>
<p>Generate code for an expanded version of BPF, which relaxes some of the restrictions imposed by the BPF architecture: </p>
<ul class="itemize mark-minus"> <li>Save and restore callee-saved registers at function entry and exit, respectively. </li>
</ul> </dd> </dl> </div> <div class="nav-panel"> <p> Next: <a href="fr30-options">FR30 Options</a>, Previous: <a href="dec-alpha-options">DEC Alpha Options</a>, Up: <a href="submodel-options">Machine-Dependent Options</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div><div class="_attribution">
<p class="_attribution-p">
© Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br>
<a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/eBPF-Options.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/eBPF-Options.html</a>
</p>
</div>
|