Home | History | Annotate | Line # | Download | only in bpf
      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