1 ; Options for the eBPF compiler port.
3 ; Copyright (C) 2019-2023 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3. If not see
19 ; <http://www.gnu.org/licenses/>.
24 ; Selecting the kind of kernel the eBPF will be running on.
27 Target RejectNegative Joined Var(bpf_kernel) Enum(bpf_kernel) Init(LINUX_LATEST)
28 Generate eBPF for the given Linux kernel version.
31 Name(bpf_kernel) Type(enum bpf_kernel_version)
34 Enum(bpf_kernel) String(native) Value(LINUX_NATIVE) DriverOnly
37 Enum(bpf_kernel) String(latest) Value(LINUX_LATEST) DriverOnly
40 Enum(bpf_kernel) String(4.0) Value(LINUX_V4_0)
43 Enum(bpf_kernel) String(4.1) Value(LINUX_V4_1)
46 Enum(bpf_kernel) String(4.2) Value(LINUX_V4_2)
49 Enum(bpf_kernel) String(4.3) Value(LINUX_V4_3)
52 Enum(bpf_kernel) String(4.4) Value(LINUX_V4_4)
55 Enum(bpf_kernel) String(4.5) Value(LINUX_V4_5)
58 Enum(bpf_kernel) String(4.6) Value(LINUX_V4_6)
61 Enum(bpf_kernel) String(4.7) Value(LINUX_V4_7)
64 Enum(bpf_kernel) String(4.8) Value(LINUX_V4_8)
67 Enum(bpf_kernel) String(4.9) Value(LINUX_V4_9)
70 Enum(bpf_kernel) String(4.10) Value(LINUX_V4_10)
73 Enum(bpf_kernel) String(4.11) Value(LINUX_V4_11)
76 Enum(bpf_kernel) String(4.12) Value(LINUX_V4_12)
79 Enum(bpf_kernel) String(4.13) Value(LINUX_V4_13)
82 Enum(bpf_kernel) String(4.14) Value(LINUX_V4_14)
85 Enum(bpf_kernel) String(4.15) Value(LINUX_V4_15)
88 Enum(bpf_kernel) String(4.16) Value(LINUX_V4_16)
91 Enum(bpf_kernel) String(4.17) Value(LINUX_V4_17)
94 Enum(bpf_kernel) String(4.18) Value(LINUX_V4_18)
97 Enum(bpf_kernel) String(4.19) Value(LINUX_V4_19)
100 Enum(bpf_kernel) String(4.20) Value(LINUX_V4_20)
103 Enum(bpf_kernel) String(5.0) Value(LINUX_V5_0)
106 Enum(bpf_kernel) String(5.1) Value(LINUX_V5_1)
109 Enum(bpf_kernel) String(5.2) Value(LINUX_V5_2)
111 ; Use xBPF extensions.
117 ; Selecting big endian or little endian targets.
120 Target RejectNegative Mask(BIG_ENDIAN)
121 Generate big-endian eBPF.
124 Target RejectNegative InverseMask(BIG_ENDIAN)
125 Generate little-endian eBPF.
128 Target Joined RejectNegative UInteger IntegerRange(0, 32767) Var(bpf_frame_limit) Init(512)
129 Set a hard limit for the size of each stack frame, in bytes.
132 Target Mask(BPF_CORE)
133 Generate all necessary information for BPF Compile Once - Run Everywhere.
135 ; Selecting BPF ISA features and versions
138 Target Var(bpf_has_jmpext) Init(-1)
139 Enable extra conditional-branch instructions j(s)lt and j(s)le.
142 Target Var(bpf_has_alu32) Init(-1)
143 Enable 32-bit ALU instructions.
146 Target Var(bpf_has_jmp32) Init(-1)
147 Enable 32-bit jump instructions.
150 Target RejectNegative Joined Var(bpf_isa) Enum(bpf_isa) Init(ISA_V3)
153 Name(bpf_isa) Type(enum bpf_isa_version)
156 Enum(bpf_isa) String(v1) Value(ISA_V1)
159 Enum(bpf_isa) String(v2) Value(ISA_V2)
162 Enum(bpf_isa) String(v3) Value(ISA_V3)