General setup

Prompt for development and/or incomplete code/drivers

Some of the various things that Linux supports (such as network drivers, file systems, network protocols, etc.) can be in a state of development where the functionality, stability, or the level of testing is not yet high enough for general use. This is usually known as the «alpha-test» phase among developers. If a feature is currently in alpha-test, then the developers usually discourage uninformed widespread use of this feature by the general public to avoid «Why doesn’t this work?» type mail messages. However, active testing and use of these systems is welcomed. Just be aware that it may not meet the normal level of reliability or it may fail to work in some special cases. Detailed bug reports from people familiar with the kernel internals are usually welcomed by the developers (before submitting bug reports, please read the documents <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, <file:Documentation/BUG-HUNTING>, and <file:Documentation/oops-tracing.txt> in the kernel source).

This option will also make obsoleted drivers available. These are drivers that have been replaced by something else, and/or are scheduled to be removed in a future kernel release. Unless you intend to help test and develop a feature or driver that falls into this category, or you have a situation that requires using these features, you should probably say N here, which will cause the configurator to present you with fewer choices. If you say Y here, you will be offered the choice of using features or drivers that are currently considered to be in the alpha-test phase.

Показывать разрабатываемые и/или нестабильные опции/драйвера

Некоторые функции, поддерживаемые ядром (такие как драйвера сетевых устройств, файловые системы, сетевые протоколы и т.д.) находятся в состоянии, когда функциональность, стабильность или уровень отлаженности не подходят для постоянного использования. Среди разработчиков такое состояние называется альфа-тестирование. Если функция находится в стадии альфа-тестирования, разработчики не рекомендуют ее использовать непросвещенным пользователям во избежание писем с вопросом «Почему это не работает?». Однако активное тестирование и использование этих опций приветствуется.Просто следует помнить, что такие опции снижают стабильность системы и могут иногда не работать как надо. Детализированные отчеты об ошибках от людей, разбирающихся в ядре, приветствуются разработчиками (прежде чем написать отчет, прочтите пожалуйста документы file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, <file:Documentation/BUG-HUNTING>, и <file:Documentation/oops-tracing.txt>, поставляемые с исходными кодами ядра).

Так же эта опция относится к устаревшим драйверам. Эти драйвера либо заменены, либо будут удалены в следующем релизе.

Если Вы не собираетесь тестировать и помогать в разработке частей ядра или сомневаетесь в использовании данных опций/драйверов, тогда ответьте N и конфигуратор уберет возможность включения нестабильных опции и драйверов. Если Вы ответите Y, то конфигуратор предоставит возможность выбора опций и драйверов, находящихся в стадии альфа-тестирования.

Local version — append to kernel release

Append an extra string to the end of your kernel version. This will show up when you type uname, for example. The string you set here will be appended after the contents of any files with a filename matching localversion* in your object and source tree, in that order. Your total string can be a maximum of 64 characters

Локальная версия — присоединить к релизу ядра

Добавить дополнительную строку к версии Вашего ядра. Вы её увидите, если, например, наберёте команду uname. Содержимое каждого файла, имя которого подходит под шаблон localversion* и расположенного в корне дерева исходных текстов, будет добавлено к LOCALVERSION в следующем порядке:

сначала srctree/localversion*, а затем objtree/localversion*.

Например:

  • файл $(srctree)/localversion-lowlatency содержит строку «-llat«;
  • файл $(srctree)/localversion-scheduler-nick содержит строку «-np«;
  • файл $(objtree)/localversion содержит строку «-smpacpi«.

Получим KERNELRELEASE вида: 2.6.8.rc1-smpacpi-llat-np

Максимальный размер строки не должен превышать 64 символа. Если точнее, то не размер LOCALVERSION, а всего KERNELRELEASE.

Kernel compression mode (X)

Алгоритм сжатия ядра

Gzip

The old and tried gzip compression. It provides a good balance between compression ratio and decompression speed.

Старый и проверенный алгоритм сжатия. Хороший баланс между степенью сжатия и скоростью распаковки

Bzip2

Its compression ratio and speed is intermediate. Decompression speed is slowest among the three. The kernel size is about 10% smaller with bzip2, in comparison to gzip. Bzip2 uses a large amount of memory. For modern kernels you will need at least 8MB RAM or more for booting.

Степень сжатия и скорость умеренные. Скорость распаковки самая медленная из 3-х представленных. Размер ядра на 10% меньше, чем при сжатии алгоритмом gzip. Алгоритм Bzip2 использует больше памяти. Для современного ядра Вам понадобится более 8 Мб ОЗУ или боле, для загрузки.

LZMA

The most recent compression algorithm. Its ratio is best, decompression speed is between the other two. Compression is slowest. The kernel size is about 33% smaller with LZMA in comparison to gzip.

Один из современных алгоритмов сжатия. Степень сжатия лучшая, скорость распаковки между двумя предыдущими. Скорость сжатия самая низкая. Ядро на 33% меньше по объему, по сравнению с Bzip-сжатым ядром.

LZO

Its compression ratio is the poorest among the 4. The kernel size is about about 10% bigger than gzip; however its speed (both compression and decompression) is the fastest.

Степень сжатия худшая из 4 представленных алгоритмов. Размер ядра больше на 10% чем у Bzip-сжатого. Тем не менее, скорость упаковки и распаковки наибольшая среди представленных алгоритмов.

Support for paging of anonymous memory (swap)

This option allows you to choose whether you want to have support for socalled swap devices or swap files in your kernel that are used to provide more virtual memory than the actual RAM present in your computer. If unsure say Y.

Поддержка своппинга

Эта опция позволяет включить в ядре поддержку так называемых swap-устройств или swap-файлов, что позволяет увеличить объём предоставляемой программам виртуальной памяти за счет выгрузки содержимого неиспользуемых в данный момент частей ОЗУ на внешний носитель (например, на жесткий диск). Таким образом, объём доступной программам виртуальной памяти может превышать объем ОЗУ. Если вы не уверены в выборе, нажмите Y.

System V IPC

Inter Process Communication is a suite of library functions and system calls which let processes (running programs) synchronize and exchange information. It is generally considered to be a good thing, and some programs won’t run unless you say Y here. In particular, if you want to run the DOS emulator dosemu under Linux read the DOSEMU-HOWTO, available from http://www.tldp.org/docs.html#howto), you’ll need to say Y here.

You can find documentation about IPC with «info ipc» and also in section 6.4 of the Linux Programmer’s Guide, available from <http://www.tldp.org/guides.html>.

Поддержка System V IPC

IPC (Inter-Process Communication) — набор библиотечных функций и системных вызовов, которые позволяют процессам (упрощая, процесс можно считать запущенной программой) производить сихронизацию и обмен данными. Многие программы используют IPC и не будут корректно работать, если Вы не включите эту опцию. Наример, если Вы захотите использовать эмулятор DOS, (почитайте DOSEMU-HOWTO), вам необходимо выбрать Y.

Вы можете найти документацию об IPC введя команду info ipc (при условии, что у Вас установлена система TeXinfo и соотвествующие страницы справки). Так же можно посмотреть параграф 6.4 из Linux Programmer’s Guide.

IPC Namespaces

Support ipc namespaces. This allows containers, i.e. virtual environments, to use ipc namespaces to provide different ipc objects for different servers. If unsure, say N.

Поддержка IPC пространства имен. Это позволяет контейнерам, то есть виртуальным средам, использовать пространства имен ipc для предоставления разных объектов ipc для разных серверов. Если не уверены, скажите N.

POSIX Message Queues

POSIX variant of message queues is a part of IPC. In POSIX message queues every message has a priority which decides about succession of receiving it by a process. If you want to compile and run programs written e.g. for Solaris with use of its POSIX message queues (functions mq_*) say Y here. To use this feature you will also need mqueue library, available from <http://www.mat.uni.torun.pl/~wrona/posix_ipc/>

POSIX message queues are visible as a filesystem called ‘mqueue’ and can be mounted somewhere if you want to do filesystem operations on message queues.

If unsure, say Y.

Очереди сообщений POSIX (Message Queues)

Реализация POSIX-варианта очередей сообщений является частью IPC. все symbols IPC — Inter-Process Communications, средство обмена информацией между запущенными в системе процессами.

В очередях сообщений POSIX каждое сообщение получает свой приоритет, который влияет на порядок получения сообщений процессами. Если вы хотите компилировать и запускать программы написанные для ОС Solaris и других UNIX систем, которые используют очереди сообщений POSIX (функции mq_*) — скажите Y. Для использования этой опции вы должны установить библиотеку mqueue, исходный код которой доступен по адресу [1].

POSIX очереди сообщений видны как файловая система называемая ‘mqueue’, которая может быть примонтирована куда-нибудь, если Вы хотите работать операциями файловой системы с очередями сообщений.

Если не уверены — нажмите Y.

BSD Process Accounting

If you say Y here, a user level program will be able to instruct the kernel (via a special system call) to write process accounting information to a file: whenever a process exits, information about that process will be appended to the file by the kernel. The information includes things such as creation time, owning user, command name, memory usage, controlling terminal etc. (the complete list is in the struct acct in <file:include/linux/acct.h>). It is up to the user level program to do useful things with this information. This is generally a good idea, so say Y.

BSD-учёт процессов

Если Вы выбирете Y, то пользовательские программы получат возможность указать ядру (с помощью специального вызова) записать информацию о процессе в файл: если процесс существует, данные о нем будут добавлены ядром к файлу. Информация о процессе включает следующие сведения: время создания процесса, владелец процесса(пользователь от имени которого данный процесс запущен), название команды, статистика использования памяти процессом, терминал и так далее. (для более полной информации смотрите структуру acct в заголовочном файле <include/linux/acct.h>). Что делать с полученной учётной информацией — решать Вам.

Обычно, Вам надо выбрать Y.

BSD Process Accounting version 3 file format

If you say Y here, the process accounting information is written in a new file format that also logs the process IDs of each process and it’s parent. Note that this file format is incompatible with previous v0/v1/v2 file formats, so you will need updated tools for processing it. A preliminary version of these tools is available at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.

Использовать формат файлов версии 3 для BSD-учёта процессов

Если использована эта опция, то при сбросе информация о процессе в файл будет использоваться формат записей версии 3 (в новой версии формата файла указываются дополнительные данные: для каждого процесса записывается его ID, а также ID его процесса-родителя). Имейте в виду, что новый формат файла не совместим со старыми форматами (форматами версии 0, 1 и 2), а значит понадобится обновить программное обеспечения для их обработки. Предварительные версии этого программного обеспечения находятся по адресу <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.

Export task/process statistics through netlink

Export selected statistics for tasks/processes through the generic netlink interface. Unlike BSD process accounting, the statistics are available during the lifetime of tasks/processes as responses to commands. Like BSD accounting, they are sent to user space on task exit.

Say N if unsure.

Передача данных задачи/процесса посредством макросов датаграмм

Передача данных для задачи/процесса посредством макросов датаграмм. Не такой как в BSD процессах, доступный во время жизни задачи/процесса, отвечающий на команды.

Enable per-task delay accounting

Collect information on time spent by a task waiting for system resources like cpu, synchronous block I/O completion and swapping in pages. Such statistics can help in setting a task’s priorities relative to other tasks for cpu, io, rss limits etc.

Say N if unsure.

Собирает информацию о времени, потраченном задачей, ожидающей системных ресурсов, таких как процессор, синхронное завершение блоков ввода-вывода и обмен страницами. Такая статистика может помочь в установлении приоритетов задачи по сравнению с другими задачами для процессоров, io, rss и т. Д.

Скажи N, если не уверен.

UTS Namespaces

Support uts namespaces. This allows containers, i.e. vservers, to use uts namespaces to provide different uts info for different servers. If unsure, say N.

Поддержка UTS пространства имен. Это позволяет контейнерам, то есть виртуальным серверам, использовать пространства имен uts для предоставления различной информации uts для разных серверов.

Если не уверены, скажите N.

Auditing support

Enable auditing infrastructure that can be used with another kernel subsystem, such as SELinux (which requires this for logging of avc messages output). Does not do system-call auditing without CONFIG_AUDITSYSCALL.

Поддержка аудита

Включает механизм аудита, который может быть использован другими подсистемами ядра, такими как SELinux (который требует этой особенности для журнальной регистрации вывода сообщений avc). Он не сможет использовать функции системы аудита, если не будет включен CONFIG_AUDITSYSCALL.

Enable system-call auditing support

Enable low-overhead system-call auditing infrastructure that can be used independently or with another kernel subsystem, such as SELinux.

Задействовать поддержку аудита системных вызовов

Задействовать аудит системных вызовов, который может быть использован независимо или с другими подсистемами ядра, таким как SELinux.

Kernel .config support

This option enables the complete Linux kernel «.config» file contents to be saved in the kernel. It provides documentation of which kernel options are used in a running kernel or in an on-disk kernel. This information can be extracted from the kernel image file with the script scripts/extract-ikconfig and used as input to rebuild the current kernel or to build another kernel. It can also be extracted from a running kernel by reading /proc/config.gz if enabled (below).

Хранение файла .config внутри ядра

Если эта опция включена, то все настройки ядра сохраняются в самом образе ядра. Это позволяет получить конфигурационный файл ядра, даже если Вы удалили его исходные тексты. Эта информация может быть извлечена с помощью скрипта scripts/extract-ikconfig, и использована для пересборки имеющегося ядра или для сборки нового ядра. Конфигурация может быть также получена из файла /proc/config.gz если включена описанная ниже опция.

Enable access to .config through /proc/config.gz

This option enables access to the kernel configuration file through /proc/config.gz.

Обеспечить доступ к файлу .config через /proc/config.gz

Эта опция позволяет получать конфигурационный файл ядра из файла /proc/config.gz.

Получить .config можно например так:

zcat /proc/config.gz > .config

Cpuset support

This option will let you create and manage CPUSETs which allow dynamically partitioning a system into sets of CPUs and Memory Nodes and assigning tasks to run only within those sets. This is primarily useful on large SMP or NUMA systems.

Say N if unsure.

Поддержка CPUSET

Эта опция позволит вам создавать и управлять CPUSET, которые позволяют динамически разбивать систему на наборы процессоров и узлов памяти и назначать задачи для запуска только внутри этих наборов. Это в первую очередь полезно в больших системах SMP или NUMA.

Скажи N, если не уверены.

Create deprecated sysfs files

This option creates deprecated symlinks such as the «device»-link, the <subsystem>:<name>-link, and the «bus»-link. It may also add deprecated key in the uevent environment.

None of these features or values should be used today, as they export driver core implementation details to userspace or export properties which can’t be kept stable across kernel releases.

If enabled, this option will also move any device structures that belong to a class, back into the /sys/class heirachy, in order to support older versions of udev.

If you are using a distro that was released in 2006 or later, it should be safe to say N here.

Создание устаревших файлов sysfs

Этот параметр создает устаревшие символические ссылки, такие как ссылка «устройство», ссылка <подсистема>: <имя> и ссылка «шина». Он также может добавить устаревший ключ в среду событий.

Ни одна из этих функций или значений не должна использоваться сегодня, так как они экспортируют подробности реализации ядра драйвера в пользовательское пространство или экспортируют свойства, которые не могут быть стабильными во всех выпусках ядра.

Если эта опция включена, она также будет перемещать любые структуры устройств, принадлежащие классу, обратно в иерархию / sys / class для поддержки более старых версий udev.

Если вы используете дистрибутив, выпущенный в 2006 году или позже, можно с уверенностью сказать «N».

Kernel->user space relay support (formerly relayfs)

This option enables support for relay interface support in certain file systems (such as debugfs). It is designed to provide an efficient mechanism for tools and facilities to relay large amounts of data from kernel space to user space.

If unsure, say N.

Kernel-> поддержка ретрансляции пространства пользователя (ранее relayfs)

Эта опция включает поддержку интерфейса ретрансляции в определенных файловых системах (таких как debugfs). Она предназначена для обеспечения эффективного механизма для инструментов и средств для передачи больших объемов данных из пространства ядра в пространство пользователя.

Если не уверены, скажите N.

Initial RAM filesystem and RAM disk (initramfs/initrd) support

The initial RAM filesystem is a ramfs which is loaded by the boot loader (loadlin or lilo) and that is mounted as root before the normal boot procedure. It is typically used to load modules needed to mount the «real» root file system, etc. See <file:Documentation/initrd.txt> for details.

If RAM disk support (BLK_DEV_RAM) is also included, this also enables initial RAM disk (initrd) support and adds 15 Kbytes (more on some other architectures) to the kernel size.

If unsure say Y.

Поддержка начальной файловой системы RAM и диска RAM (initramfs / initrd)

Исходная файловая система RAM — это ramfs, который загружается загрузчиком (loadlin или lilo) и монтируется как root перед обычной процедурой загрузки. Обычно он используется для загрузки модулей, необходимых для монтирования «настоящей» корневой файловой системы и т. д. Подробности смотрите в <file:Documentation/initrd.txt>.

Если также включена поддержка RAM-диска (BLK_DEV_RAM), это также включает начальную поддержку RAM-диска (initrd) и добавляет 15 Кбайт (больше чем в некоторых других архитектурах) к размеру ядра.

Если не уверены, скажите Y.

Initramfs source file(s)

This can be either a single cpio archive with a .cpio suffix or a space-separated list of directories and files for building the initramfs image. A cpio archive should contain a filesystem archive to be used as an initramfs image. Directories should contain a filesystem layout to be included in the initramfs image. Files should contain entries according to the format described by the «usr/gen_init_cpio» program in the kernel tree.

When multiple directories and files are specified then the initramfs image will be the aggregate of all of them.

See <file:Documentation/early-userspace/README for more details.

If you are not sure, leave it blank.

Исходные файлы Initramfs

Это может быть либо отдельный архив cpio с суффиксом .cpio, либо разделенный пробелами список каталогов и файлов для построения образа initramfs. Архив cpio должен содержать архив файловой системы, который будет использоваться в качестве образа initramfs. Каталоги должны содержать макет файловой системы, который будет включен в образ initramfs. Файлы должны содержать записи в соответствии с форматом, описанным программой «usr/gen_init_cpio» в дереве ядра.

Когда указано несколько каталогов и файлов, образ initramfs будет объединять их все.

Смотрите <file: Documentation/early-userspace/README для более подробной информации.

Если вы не уверены, оставьте это поле пустым.

Optimize for size (Look out for broken compilers!)

Enabling this option will pass «-Os» instead of «-O2» to gcc resulting in a smaller kernel.

Заставляет компилятор использовать парамер -Os вместо -O2 для получения ядра меньшего размера.

EMBEDDED

Тут много чего поменялось. Поскольку данный раздел включают очень редко, пока не буду вносить изменения.

Configure standart kernel features (for small systems)

This option allows certain base kernel options and settings to be disabled or tweaked. This is for specialized environments which can tolerate a «non-standard» kernel. Only use this if you really know what you are doing.

 Настроить стандартные свойства ядра (для малых систем)

При выборе этой опции станет возможным отключение или настройка некоторых основных параметров ядра.

Предназначено для специализированных сред, которые допускают работу при «нестандартных» ядрах. Используйте эту возможность только если Вы абсолютно уверены в том, что делаете.

Load all symbols for debugging/kksymoops

Say Y here to let the kernel print out symbolic crash information and symbolic stack backtraces. This increases the size of the kernel somewhat, as all symbols have to be loaded into the kernel image.

 Загрузить все символы для отладки/kksymoops

Скажите Y здесь, чтобы позволить ядру распечатать текстовую информацию о сбое и вывод стека ошибок. Это несколько увеличивает размер ядра, так как все символы должны быть загружены в образ ядра.

Do an extra kallsyms pass

If kallsyms is not working correctly, the build will fail with inconsistent kallsyms data. If that occurs, log a bug report and turn on KALLSYMS_EXTRA_PASS which should result in a stable build. Always say N here unless you find a bug in kallsyms, which must be reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while you wait for kallsyms to be fixed.

 Сделать дополнительный проход kallsyms

Если kallsyms не работает должным образом, сборка не удастся с противоречивыми данными kallsyms. Если это произойдет, зарегистрируйте отчет об ошибке и включите KALLSYMS_EXTRA_PASS, что должно привести к стабильной сборке.

Всегда говорите N здесь, если вы не найдете ошибку в kallsyms, о которой нужно сообщать. KALLSYMS_EXTRA_PASS — это временный обходной путь, пока вы ждете исправления kallsyms.

Enable support for printk

This option enables normal printk support. Removing it eliminates most of the message strings from the kernel image and makes the kernel more or less silent. As this makes it very difficult to diagnose system problems, saying N here is strongly discouraged.

Включить нормальную поддержку функции printk

Эта опция включает нормальную поддержку функции printk, иначе говоря printk будет работать именно так как полагается :))). Установка данной опции в N приведёт к исключению из образа ядра большинства строк с сообщениями, что приведет к тому, что ядро будет выдавать крайне мало сообщений, что в свою очередь затруднит диагностику неисправностей в системе. Установка данной опции в N крайне не рекомендуется.

Подробности для знающих C:

Функция printk широко используется практически во всех частях ядра. Именно с помощью этой функции производится вывод информации в системную консоль (например, при старте ядра), а также вывод отладочных сообщений. Если данная опция установлена в N, то функция printk будет иметь приблизительно такой вид:

int printk(const char *s, ...) { return 0; }

а значит функция printk ничего не делает. Оптимизирующий компилятор, узнав про это, будет выкидывать все вызовы функции printk вместе с константными аргументами, что несколько уменьшит размер ядра.

BUG() support

Disabling this option eliminates support for BUG and WARN, reducing the size of your kernel image and potentially quietly ignoring numerous fatal conditions. You should only consider disabling this option for embedded systems with no facilities for reporting errors. Just say Y.

Отключение этой опции исключает поддержку BUG и WARN, уменьшает размер образа вашего ядра и потенциально спокойно игнорирует многочисленные фатальные ситуации. Вам следует рассмотреть возможность отключения этой опции только для встроенных систем, в которых нет средств для сообщения об ошибках.

Просто скажи Y.

Enable full-sized data structures for core

Disabling this option reduces the size of miscellaneous core kernel data structures. This saves memory on small machines, but may reduce performance.

Включить полноразмерные структуры данных ядра

Отключение данной функции уменьшает размер различных структур данных ядра. Это экономит память на малых машинах, но может понизить производительность.

Enable futex support

Disabling this option will cause the kernel to be built without support for «fast userspace mutexes». The resulting kernel may not run glibc-based applications correctly.

Включить поддержку futex

Отключение этой опции приведет к тому, что ядро будет собираться без поддержки «быстрых мьютексов пространства пользователя». Полученное ядро может некорректно запускать приложения на основе glibc.

Enable futex support

Disabling this option will cause the kernel to be built without support for epoll family of system calls.

Включить поддержку eventpoll

Отключение этой опции приведет к тому, что ядро будет собрано без поддержки системных вызовов epoll.

Use full shmem filesystem

The shmem is an internal filesystem used to manage shared memory. It is backed by swap and manages resource limits. It is also exported to userspace as tmpfs if TMPFS is enabled. Disabling this option replaces shmem and tmpfs with the much simpler ramfs code, which may be appropriate on small systems without swap.

Использовать полную файловую систему shmem

Shmem — это внутренняя файловая система, используемая для управления общей памятью. Он поддерживается свопом и управляет ограничениями ресурсов. Он также экспортируется в пользовательское пространство как tmpfs, если включена TMPFS. Отключение этой опции заменяет shmem и tmpfs гораздо более простым кодом ramfs, который может быть подходящим для небольших систем без подкачки.

Alignment

Следующие опции влияют на использование параметров -falign-functions=n, -falign-labels=n, -falign-loops=n, -falign-jumps=n при запуске компилятора для сборки ядра. По непроверенным данным, в ближайшее время эти опции настройки ядра могут исчезнуть (хотя опции компилятора -falign- останутся).

Бесполезность данных опций объясняется тем, что они становятся доступны только после включения опции Configure standard kernel features (for small systems) (EMBEDDED), т.е. они нацелены на использование при сборке ядер для встраиваемых систем, но выравнивания, возникающие из-за применения данных параметров приводят к увеличению размера образа ядра, с другой стороны, сборщики ядер для встраиваемых систем хотят получать ядра минимального размера, и включают соответствующие флаги компилятора.

Function alignment

Align the start of functions to the next power-of-two greater than n, skipping up to n bytes. For instance, 32 aligns functions to the next 32-byte boundary, but 24 would align to the next 32-byte boundary only if this can be done by skipping 23 bytes or less. Zero means use compiler’s default.

Выравнивание функций

Выровняйте начало функций по следующим степеням двух больше n, пропуская до n байтов. Например, 32 выравнивает функции по следующей 32-байтовой границе, но 24 будет выравниваться по следующей 32-байтовой границе, только если это можно сделать, пропустив 23 байта или меньше. Ноль означает использовать компилятор по умолчанию.

Label alignment

Align all branch targets to a power-of-two boundary, skipping up to n bytes like ALIGN_FUNCTIONS. This option can easily make code slower, because it must insert dummy operations for when the branch target is reached in the usual flow of the code. Zero means use compiler’s default.

Выравнивание этикетки

Выровняйте все цели ветвления с границей степени двух, пропуская до n байтов, как ALIGN_FUNCTIONS. Эта опция может легко сделать код медленнее, потому что она должна вставлять фиктивные операции для достижения цели перехода в обычном потоке кода. Ноль означает использовать компилятор по умолчанию.

Loop alignment

Align loops to a power-of-two boundary, skipping up to n bytes. Zero means use compiler’s default.

Выравнивание петли

Выровняйте циклы по границе степени два, пропуская до n байтов. Ноль означает использовать компилятор по умолчанию.

Jump alignment

Align branch targets to a power-of-two boundary, for branch targets where the targets can only be reached by jumping, skipping up to n bytes like ALIGN_FUNCTIONS. In this case, no dummy operations need be executed. Zero means use compiler’s default

Выравнивание прыжков

Выровняйте цели ветвления по границе степени двойки, для целей ветвления, где цели могут быть достигнуты только путем прыжка, пропуская до n байтов, как ALIGN_FUNCTIONS. В этом случае не нужно выполнять фиктивные операции. Ноль означает использовать компилятор по умолчанию