; Options for the eBPF compiler port.
; Copyright (C) 2019-2024 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
; 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(32767)
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.
mv3-atomics
Target Var(bpf_has_v3_atomics) Init(-1)
Enable general atomic operations introduced in v3 ISA.
mbswap
Target Var(bpf_has_bswap) Init(-1)
Enable byte swap instructions.
msdiv
Target Var(bpf_has_sdiv) Init(-1)
Enable signed division and modulus instructions.
msmov
Target Var(bpf_has_smov) Init(-1)
Enable signed move and memory load instructions.
mcpu=
Target RejectNegative Joined Var(bpf_isa) Enum(bpf_isa) Init(ISA_V4)
Select the eBPF ISA version to target in code generation.
Enum
Name(bpf_isa) Type(enum bpf_isa_version)
Valid ISA versions (for use with the -mcpu= option)
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)
EnumValue
Enum(bpf_isa) String(v4) Value(ISA_V4)
masm=
Target RejectNegative Joined Var(asm_dialect) Enum(asm_dialect) Init(ASM_PSEUDOC)
Use given assembler dialect.
Enum
Name(asm_dialect) Type(enum bpf_asm_dialect)
Known assembler dialects (for use with the -masm= option)
EnumValue
Enum(asm_dialect) String(normal) Value(ASM_NORMAL)
EnumValue
Enum(asm_dialect) String(pseudoc) Value(ASM_PSEUDOC)
minline-memops-threshold=
Target RejectNegative Joined UInteger Var(bpf_inline_memops_threshold) Init(1024)
-minline-memops-threshold= Maximum size of memset/memmove/memcpy to inline, larger sizes will use a library call.