Spec-Zone.ru › GCC 14

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API