; Options for the eBPF compiler port. ; Copyright (C) 2019-2022 Free Software Foundation, Inc. ; ; This file is part of GCC. ; ; GCC is free software; you can redistribute it and/or modify it under ; the terms of the GNU General Public License as published by the Free ; Software Foundation; either version 3, or (at your option) any later ; version. ; ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY ; WARRANTY; without even the implied warranty of MERCHANTABILITY or ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ; for more details. ; ; You should have received a copy of the GNU General Public License ; along with GCC; see the file COPYING3. If not see ; . HeaderInclude config/bpf/bpf-opts.h ; Selecting the kind of kernel the eBPF will be running on. mkernel= Target RejectNegative Joined Var(bpf_kernel) Enum(bpf_kernel) Init(LINUX_LATEST) Generate eBPF for the given Linux kernel version. Enum Name(bpf_kernel) Type(enum bpf_kernel_version) EnumValue Enum(bpf_kernel) String(native) Value(LINUX_NATIVE) DriverOnly EnumValue Enum(bpf_kernel) String(latest) Value(LINUX_LATEST) DriverOnly EnumValue Enum(bpf_kernel) String(4.0) Value(LINUX_V4_0) EnumValue Enum(bpf_kernel) String(4.1) Value(LINUX_V4_1) EnumValue Enum(bpf_kernel) String(4.2) Value(LINUX_V4_2) EnumValue Enum(bpf_kernel) String(4.3) Value(LINUX_V4_3) EnumValue Enum(bpf_kernel) String(4.4) Value(LINUX_V4_4) EnumValue Enum(bpf_kernel) String(4.5) Value(LINUX_V4_5) EnumValue Enum(bpf_kernel) String(4.6) Value(LINUX_V4_6) EnumValue Enum(bpf_kernel) String(4.7) Value(LINUX_V4_7) EnumValue Enum(bpf_kernel) String(4.8) Value(LINUX_V4_8) EnumValue Enum(bpf_kernel) String(4.9) Value(LINUX_V4_9) EnumValue Enum(bpf_kernel) String(4.10) Value(LINUX_V4_10) EnumValue Enum(bpf_kernel) String(4.11) Value(LINUX_V4_11) EnumValue Enum(bpf_kernel) String(4.12) Value(LINUX_V4_12) EnumValue Enum(bpf_kernel) String(4.13) Value(LINUX_V4_13) EnumValue Enum(bpf_kernel) String(4.14) Value(LINUX_V4_14) EnumValue Enum(bpf_kernel) String(4.15) Value(LINUX_V4_15) EnumValue Enum(bpf_kernel) String(4.16) Value(LINUX_V4_16) EnumValue Enum(bpf_kernel) String(4.17) Value(LINUX_V4_17) EnumValue Enum(bpf_kernel) String(4.18) Value(LINUX_V4_18) EnumValue Enum(bpf_kernel) String(4.19) Value(LINUX_V4_19) EnumValue Enum(bpf_kernel) String(4.20) Value(LINUX_V4_20) EnumValue Enum(bpf_kernel) String(5.0) Value(LINUX_V5_0) EnumValue Enum(bpf_kernel) String(5.1) Value(LINUX_V5_1) EnumValue Enum(bpf_kernel) String(5.2) Value(LINUX_V5_2) ; Use xBPF extensions. mxbpf Target Mask(XBPF) Generate xBPF. ; Selecting big endian or little endian targets. mbig-endian Target RejectNegative Mask(BIG_ENDIAN) Generate big-endian eBPF. mlittle-endian Target RejectNegative InverseMask(BIG_ENDIAN) Generate little-endian eBPF. mframe-limit= Target Joined RejectNegative UInteger IntegerRange(0, 32767) Var(bpf_frame_limit) Init(512) Set a hard limit for the size of each stack frame, in bytes. mco-re Target Mask(BPF_CORE) Generate all necessary information for BPF Compile Once - Run Everywhere. ; Selecting BPF ISA features and versions mjmpext Target Var(bpf_has_jmpext) Init(-1) Enable extra conditional-branch instructions j(s)lt and j(s)le. malu32 Target Var(bpf_has_alu32) Init(-1) Enable 32-bit ALU instructions. mjmp32 Target Var(bpf_has_jmp32) Init(-1) Enable 32-bit jump instructions. mcpu= Target RejectNegative Joined Var(bpf_isa) Enum(bpf_isa) Init(ISA_V3) Enum Name(bpf_isa) Type(enum bpf_isa_version) EnumValue Enum(bpf_isa) String(v1) Value(ISA_V1) EnumValue Enum(bpf_isa) String(v2) Value(ISA_V2) EnumValue Enum(bpf_isa) String(v3) Value(ISA_V3)