3.20.14 Параметры eBPF
-mframe-limit=bytes-
Задает жесткое ограничение размера кадров в байтах. В настоящее время указанное значение должно быть меньше или равно ‘32767’. По умолчанию используется ограничение, заданное версией целевого ядра Linux.
-
-mbig-endian -
Генерировать код для цели с прямым порядком байтов.
-
-mlittle-endian -
Генерировать код для цели с обратным порядком байтов. Это значение используется по умолчанию.
-
-mjmpext -mno-jmpext-
Включить или отключить генерацию дополнительных инструкций условного перехода. Включено для CPU v2 и выше.
-
-mjmp32 -mno-jmp32-
Включить или отключить генерацию 32-разрядных инструкций перехода. Включено для CPU v3 и выше.
-
-malu32 -mno-alu32-
Включить или отключить генерацию 32-разрядных инструкций ALU. Включено для CPU v3 и выше.
-
-mv3-atomics -mno-v3-atomics-
Включить или отключить инструкции для общих атомарных операций, появившиеся в CPU v3. Включено для CPU v3 и выше.
-
-mbswap -mno-bswap-
Включить или отключить инструкции перестановки байтов. Включено для CPU v4 и выше.
-
-msdiv -mno-sdiv-
Включить или отключить инструкции деления со знаком и вычисления остатка. Включено для CPU v4 и выше.
-
-msmov -mno-smov-
Включить или отключить инструкции перемещения и загрузки из памяти с расширением знака. Включено для CPU v4 и выше.
-
-mcpu=version -
Задает версию ISA eBPF, для которой предназначен код. Более новые версии могут поддерживаться не всеми ядрами. По умолчанию используется ‘v4’.
Поддерживаемые значения version:
- ‘v1’
-
Первая стабильная версия ISA eBPF без специальных функций и расширений.
- ‘v2’
-
Поддерживает расширения переходов, как и -mjmpext.
- ‘v3’
-
Все возможности v2, а также:
- 32-разрядные операции перехода, как и -mjmp32
- 32-разрядные операции ALU, как и -malu32
- общие атомарные операции, как и -mv3-atomics
- ‘v4’
-
Все возможности v3, а также:
- Инструкции перестановки байтов, как и -mbswap
- Инструкции деления со знаком и вычисления остатка, как и -msdiv
- Инструкции перемещения и загрузки из памяти с расширением знака, как и -msmov
-
-mco-re -
Включить поддержку BPF Compile Once - Run Everywhere (CO-RE). Требует -gbtf, который также включает эту поддержку.
-
-mno-co-re -
Отключить поддержку BPF Compile Once - Run Everywhere (CO-RE). Поддержка BPF CO-RE включена по умолчанию при создании отладочной информации BTF для цели BPF.
-mxbpf-
Генерировать код для расширенной версии BPF, в которой ослаблены некоторые ограничения архитектуры BPF:
- Сохранять регистры, сохраняемые вызываемой функцией, при входе в функцию и восстанавливать их при выходе из нее.
-
-masm=dialect -
Выводить инструкции ассемблера, используя выбранный dialect eBPF. По умолчанию используется ‘pseudoc’.
Поддерживаемые значения dialect:
- ‘normal’
-
Выводить инструкции в обычном диалекте ассемблера.
- ‘pseudoc’
-
Выводить инструкции в диалекте ассемблера с псевдокодом на C.
-
-minline-memops-threshold=bytes -
Задает пороговый размер в байтах: операции memmove, memcpy и memset размером не более этого значения всегда будут развернуты непосредственно в код. Операции с размером, превышающим этот порог, должны реализовываться вызовом библиотеки, а не встраиваться в код, однако, поскольку BPF не допускает вызовов библиотечных функций, превышение этого порога приводит к ошибке компиляции. По умолчанию используется значение ‘1024’ байта.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/eBPF-Options.html