1 ; Options for the eBPF compiler port. 2 3 ; Copyright (C) 2019-2022 Free Software Foundation, Inc. 4 ; 5 ; This file is part of GCC. 6 ; 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 10 ; version. 11 ; 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 15 ; for more details. 16 ; 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/>. 20 21 HeaderInclude 22 config/bpf/bpf-opts.h 23 24 ; Selecting the kind of kernel the eBPF will be running on. 25 26 mkernel= 27 Target RejectNegative Joined Var(bpf_kernel) Enum(bpf_kernel) Init(LINUX_LATEST) 28 Generate eBPF for the given Linux kernel version. 29 30 Enum 31 Name(bpf_kernel) Type(enum bpf_kernel_version) 32 33 EnumValue 34 Enum(bpf_kernel) String(native) Value(LINUX_NATIVE) DriverOnly 35 36 EnumValue 37 Enum(bpf_kernel) String(latest) Value(LINUX_LATEST) DriverOnly 38 39 EnumValue 40 Enum(bpf_kernel) String(4.0) Value(LINUX_V4_0) 41 42 EnumValue 43 Enum(bpf_kernel) String(4.1) Value(LINUX_V4_1) 44 45 EnumValue 46 Enum(bpf_kernel) String(4.2) Value(LINUX_V4_2) 47 48 EnumValue 49 Enum(bpf_kernel) String(4.3) Value(LINUX_V4_3) 50 51 EnumValue 52 Enum(bpf_kernel) String(4.4) Value(LINUX_V4_4) 53 54 EnumValue 55 Enum(bpf_kernel) String(4.5) Value(LINUX_V4_5) 56 57 EnumValue 58 Enum(bpf_kernel) String(4.6) Value(LINUX_V4_6) 59 60 EnumValue 61 Enum(bpf_kernel) String(4.7) Value(LINUX_V4_7) 62 63 EnumValue 64 Enum(bpf_kernel) String(4.8) Value(LINUX_V4_8) 65 66 EnumValue 67 Enum(bpf_kernel) String(4.9) Value(LINUX_V4_9) 68 69 EnumValue 70 Enum(bpf_kernel) String(4.10) Value(LINUX_V4_10) 71 72 EnumValue 73 Enum(bpf_kernel) String(4.11) Value(LINUX_V4_11) 74 75 EnumValue 76 Enum(bpf_kernel) String(4.12) Value(LINUX_V4_12) 77 78 EnumValue 79 Enum(bpf_kernel) String(4.13) Value(LINUX_V4_13) 80 81 EnumValue 82 Enum(bpf_kernel) String(4.14) Value(LINUX_V4_14) 83 84 EnumValue 85 Enum(bpf_kernel) String(4.15) Value(LINUX_V4_15) 86 87 EnumValue 88 Enum(bpf_kernel) String(4.16) Value(LINUX_V4_16) 89 90 EnumValue 91 Enum(bpf_kernel) String(4.17) Value(LINUX_V4_17) 92 93 EnumValue 94 Enum(bpf_kernel) String(4.18) Value(LINUX_V4_18) 95 96 EnumValue 97 Enum(bpf_kernel) String(4.19) Value(LINUX_V4_19) 98 99 EnumValue 100 Enum(bpf_kernel) String(4.20) Value(LINUX_V4_20) 101 102 EnumValue 103 Enum(bpf_kernel) String(5.0) Value(LINUX_V5_0) 104 105 EnumValue 106 Enum(bpf_kernel) String(5.1) Value(LINUX_V5_1) 107 108 EnumValue 109 Enum(bpf_kernel) String(5.2) Value(LINUX_V5_2) 110 111 ; Use xBPF extensions. 112 113 mxbpf 114 Target Mask(XBPF) 115 Generate xBPF. 116 117 ; Selecting big endian or little endian targets. 118 119 mbig-endian 120 Target RejectNegative Mask(BIG_ENDIAN) 121 Generate big-endian eBPF. 122 123 mlittle-endian 124 Target RejectNegative InverseMask(BIG_ENDIAN) 125 Generate little-endian eBPF. 126 127 mframe-limit= 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. 130 131 mco-re 132 Target Mask(BPF_CORE) 133 Generate all necessary information for BPF Compile Once - Run Everywhere. 134 135 ; Selecting BPF ISA features and versions 136 137 mjmpext 138 Target Var(bpf_has_jmpext) Init(-1) 139 Enable extra conditional-branch instructions j(s)lt and j(s)le. 140 141 malu32 142 Target Var(bpf_has_alu32) Init(-1) 143 Enable 32-bit ALU instructions. 144 145 mjmp32 146 Target Var(bpf_has_jmp32) Init(-1) 147 Enable 32-bit jump instructions. 148 149 mcpu= 150 Target RejectNegative Joined Var(bpf_isa) Enum(bpf_isa) Init(ISA_V3) 151 152 Enum 153 Name(bpf_isa) Type(enum bpf_isa_version) 154 155 EnumValue 156 Enum(bpf_isa) String(v1) Value(ISA_V1) 157 158 EnumValue 159 Enum(bpf_isa) String(v2) Value(ISA_V2) 160 161 EnumValue 162 Enum(bpf_isa) String(v3) Value(ISA_V3) 163