3.19.13 Параметры eBPF
-mframe-limit=bytes-
Устанавливает жёсткий предел размера фреймов в байтах. В настоящее время допустимое значение должно быть меньше или равно ‘32767’. По умолчанию используется ограничение, установленное целевой версией ядра Linux.
-
-mbig-endian -
Генерировать код для целевой архитектуры с порядком байтов big-endian.
-
-mlittle-endian -
Генерировать код для целевой архитектуры с порядком байтов little-endian. Это значение по умолчанию.
-
-mjmpext -mno-jmpext-
Включить или выключить генерацию дополнительных инструкций условных переходов. Включено для процессоров v2 и выше.
-
-mjmp32 -mno-jmp32-
Включить или выключить генерацию 32-битных инструкций перехода. Включено для процессоров v3 и выше.
-
-malu32 -mno-alu32-
Включить или выключить генерацию 32-битных инструкций ALU. Включено для процессоров v3 и выше.
-
-mv3-atomics -mno-v3-atomics-
Включить или выключить инструкции для общих атомарных операций, представленных в процессорах v3. Включено для процессоров v3 и выше.
-
-mbswap -mno-bswap-
Включить или выключить инструкции перестановки байтов. Включено для процессоров v4 и выше.
-
-msdiv -mno-sdiv-
Включить или выключить инструкции для операций деления и остатка от деления со знаком. Включено для процессоров v4 и выше.
-
-msmov -mno-smov-
Включить или выключить инструкции расширения знака для перемещения и загрузки из памяти. Включено для процессоров v4 и выше.
-
-mcpu=version -
Указывает, какую версию ISA eBPF использовать в качестве целевой. Более новые версии могут не поддерживаться всеми ядрами. По умолчанию используется ‘v4’.
Допустимые значения для version:
- ‘v1’
-
Первая стабильная версия eBPF ISA без специальных функций или расширений.
- ‘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 -
Выводит инструкции ассемблера с использованием выбранного диалекта eBPF dialect. По умолчанию используется ‘pseudoc’.
Допустимые значения для dialect:
- ‘normal’
-
Выводит обычный диалект ассемблера.
- ‘pseudoc’
-
Выводит диалект ассемблера pseudo-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-14.2.0/gcc/eBPF-Options.html