Пакет: binutils

Версия
2.44
Релиз
1.niceos5
Архитектура
x86_64
Хэш GOST
28c0f559cceadeb80f12bd7c71ddb3218bc772f211a32a19dbfff5fdc4bff756
Хэш MD5
2e9a54cad7af0163ab2856c8931c6f72
Хэш SHA256
e5992efd4baf3b3f51f4f44d326eccd847a1c210bef2cd9c7302d74380d3f280
Лицензия
GPLv2+
Дата сборки
12 мая 2025 г.
Размер
21,374 ГиБ
Совместимые ОС
rpm файл:
binutils-2.44-1.niceos5.x86_64.rpm
Подпакеты
Имя Краткое описание
binutils-libs Описание отсутствует
binutils-devel Описание отсутствует
Зависимости
Имя Тип Версия
/usr/bin/env runtime -
binutils-libs runtime -
libbfd-2.44.so()(64bit) runtime -
libc.so.6()(64bit) runtime -
libc.so.6(GLIBC_2.11)(64bit) runtime -
libc.so.6(GLIBC_2.14)(64bit) runtime -
libc.so.6(GLIBC_2.15)(64bit) runtime -
libc.so.6(GLIBC_2.2.5)(64bit) runtime -
libc.so.6(GLIBC_2.27)(64bit) runtime -
libc.so.6(GLIBC_2.3)(64bit) runtime -
libc.so.6(GLIBC_2.3.4)(64bit) runtime -
libc.so.6(GLIBC_2.33)(64bit) runtime -
libc.so.6(GLIBC_2.34)(64bit) runtime -
libc.so.6(GLIBC_2.38)(64bit) runtime -
libc.so.6(GLIBC_2.4)(64bit) runtime -
libc.so.6(GLIBC_2.6)(64bit) runtime -
libctf-nobfd.so.0()(64bit) runtime -
libctf-nobfd.so.0(LIBCTF_1.0)(64bit) runtime -
libctf-nobfd.so.0(LIBCTF_1.1)(64bit) runtime -
libctf.so.0()(64bit) runtime -
libctf.so.0(LIBCTF_1.0)(64bit) runtime -
libctf.so.0(LIBCTF_1.1)(64bit) runtime -
libdebuginfod.so.1()(64bit) runtime -
libdebuginfod.so.1(ELFUTILS_0.178)(64bit) runtime -
libfl.so.2()(64bit) runtime -
libgcc_s.so.1()(64bit) runtime -
libgcc_s.so.1(GCC_3.0)(64bit) runtime -
libgprofng.so.0()(64bit) runtime -
libm.so.6()(64bit) runtime -
libopcodes-2.44.so()(64bit) runtime -
libsframe.so.1()(64bit) runtime -
libsframe.so.1(LIBSFRAME_1.0)(64bit) runtime -
libstdc++.so.6()(64bit) runtime -
libstdc++.so.6(CXXABI_1.3)(64bit) runtime -
libstdc++.so.6(CXXABI_1.3.8)(64bit) runtime -
libstdc++.so.6(CXXABI_1.3.9)(64bit) runtime -
libstdc++.so.6(GLIBCXX_3.4)(64bit) runtime -
libstdc++.so.6(GLIBCXX_3.4.32)(64bit) runtime -
libz.so.1()(64bit) runtime -
libzstd.so.1()(64bit) runtime -
perl(Cwd) runtime -
perl(File::Basename) runtime -
perl(File::stat) runtime -
perl(Getopt::Long) runtime -
perl(List::Util) runtime -
perl(POSIX) runtime -
perl(bigint) runtime -
perl(feature) runtime -
perl(strict) runtime -
perl(warnings) runtime -
rtld(GNU_HASH) runtime -
Граф зависимостей
История изменений
Дата Автор Сообщение
31 мар. 2025 г. Stanislav Belikov <sbelikov@ncsgp.ru> Первая сборка для binutils
Файлы пакета
    • /etc/gprofng.rc 3,893 КиБ
      • /usr/bin/addr2line 37,859 КиБ
      • /usr/bin/ar 79,273 КиБ
      • /usr/bin/as 886,57 КиБ
      • /usr/bin/c++filt 36,281 КиБ
      • /usr/bin/elfedit 49,148 КиБ
      • /usr/bin/gp-archive 15 Б
      • /usr/bin/gp-collect-app 19 Б
      • /usr/bin/gp-display-html 20 Б
      • /usr/bin/gp-display-src 19 Б
      • /usr/bin/gp-display-text 20 Б
      • /usr/bin/gprof 111,367 КиБ
      • /usr/bin/gprofng 25,734 КиБ
      • /usr/bin/gprofng-archive 53,523 КиБ
      • /usr/bin/gprofng-collect-app 64,969 КиБ
      • /usr/bin/gprofng-display-html 630,354 КиБ
      • /usr/bin/gprofng-display-src 36,516 КиБ
      • /usr/bin/gprofng-display-text 198,531 КиБ
      • /usr/bin/ld 1,362 МиБ
      • /usr/bin/ld.bfd 1,362 МиБ
      • /usr/bin/nm 65,773 КиБ
      • /usr/bin/objcopy 213,289 КиБ
      • /usr/bin/objdump 493,578 КиБ
      • /usr/bin/ranlib 79,305 КиБ
      • /usr/bin/readelf 866,125 КиБ
      • /usr/bin/size 41,641 КиБ
      • /usr/bin/strings 45,617 КиБ
      • /usr/bin/strip 213,297 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.x 10,703 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xbn 10,511 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xc 10,357 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xce 10,695 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xcer 10,639 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xd 10,572 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xdc 10,261 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xdce 10,599 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xdcer 10,542 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xde 10,91 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xder 10,854 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xdw 10,223 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xdwe 10,561 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xdwer 10,504 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xe 11,007 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xer 10,95 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xn 10,672 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xr 6,498 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xs 10,201 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xsc 9,89 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xsce 10,228 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xscer 10,171 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xse 10,539 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xser 10,482 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xsw 9,852 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xswe 10,189 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xswer 10,133 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xu 6,521 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xw 10,319 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xwe 10,657 КиБ
        • /usr/lib/ldscripts/elf32_x86_64.xwer 10,601 КиБ
        • /usr/lib/ldscripts/elf_i386.x 10,074 КиБ
        • /usr/lib/ldscripts/elf_i386.xbn 9,882 КиБ
        • /usr/lib/ldscripts/elf_i386.xc 9,859 КиБ
        • /usr/lib/ldscripts/elf_i386.xce 10,197 КиБ
        • /usr/lib/ldscripts/elf_i386.xcer 10,141 КиБ
        • /usr/lib/ldscripts/elf_i386.xd 9,941 КиБ
        • /usr/lib/ldscripts/elf_i386.xdc 9,761 КиБ
        • /usr/lib/ldscripts/elf_i386.xdce 10,099 КиБ
        • /usr/lib/ldscripts/elf_i386.xdcer 10,042 КиБ
        • /usr/lib/ldscripts/elf_i386.xde 10,279 КиБ
        • /usr/lib/ldscripts/elf_i386.xder 10,223 КиБ
        • /usr/lib/ldscripts/elf_i386.xdw 9,723 КиБ
        • /usr/lib/ldscripts/elf_i386.xdwe 10,061 КиБ
        • /usr/lib/ldscripts/elf_i386.xdwer 10,004 КиБ
        • /usr/lib/ldscripts/elf_i386.xe 10,378 КиБ
        • /usr/lib/ldscripts/elf_i386.xer 10,321 КиБ
        • /usr/lib/ldscripts/elf_i386.xn 10,043 КиБ
        • /usr/lib/ldscripts/elf_i386.xr 6,239 КиБ
        • /usr/lib/ldscripts/elf_i386.xs 9,57 КиБ
        • /usr/lib/ldscripts/elf_i386.xsc 9,39 КиБ
        • /usr/lib/ldscripts/elf_i386.xsce 9,728 КиБ
        • /usr/lib/ldscripts/elf_i386.xscer 9,671 КиБ
        • /usr/lib/ldscripts/elf_i386.xse 9,908 КиБ
        • /usr/lib/ldscripts/elf_i386.xser 9,852 КиБ
        • /usr/lib/ldscripts/elf_i386.xsw 9,352 КиБ
        • /usr/lib/ldscripts/elf_i386.xswe 9,689 КиБ
        • /usr/lib/ldscripts/elf_i386.xswer 9,633 КиБ
        • /usr/lib/ldscripts/elf_i386.xu 6,263 КиБ
        • /usr/lib/ldscripts/elf_i386.xw 9,821 КиБ
        • /usr/lib/ldscripts/elf_i386.xwe 10,159 КиБ
        • /usr/lib/ldscripts/elf_i386.xwer 10,103 КиБ
        • /usr/lib/ldscripts/elf_iamcu.x 9,771 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xbn 9,578 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xc 9,556 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xce 9,894 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xcer 9,837 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xd 9,638 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xdc 9,457 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xdce 9,795 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xdcer 9,738 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xde 9,976 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xder 9,919 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xdw 9,419 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xdwe 9,757 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xdwer 9,7 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xe 10,074 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xer 10,018 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xn 9,739 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xr 6,18 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xs 9,267 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xsc 9,086 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xsce 9,424 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xscer 9,367 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xse 9,604 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xser 9,548 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xsw 9,048 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xswe 9,386 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xswer 9,329 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xu 6,203 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xw 9,518 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xwe 9,855 КиБ
        • /usr/lib/ldscripts/elf_iamcu.xwer 9,799 КиБ
        • /usr/lib/ldscripts/elf_x86_64.x 10,699 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xbn 10,507 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xc 10,354 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xce 10,691 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xcer 10,635 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xd 10,568 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xdc 10,257 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xdce 10,595 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xdcer 10,538 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xde 10,906 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xder 10,85 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xdw 10,219 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xdwe 10,557 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xdwer 10,5 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xe 11,003 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xer 10,946 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xn 10,668 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xr 6,498 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xs 10,197 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xsc 9,886 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xsce 10,224 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xscer 10,167 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xse 10,535 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xser 10,479 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xsw 9,848 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xswe 10,186 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xswer 10,129 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xu 6,521 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xw 10,315 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xwe 10,653 КиБ
        • /usr/lib/ldscripts/elf_x86_64.xwer 10,597 КиБ
        • /usr/lib/ldscripts/stamp 0 Б
            • /usr/share/locale/bg/LC_MESSAGES/binutils.mo 158,188 КиБ
            • /usr/share/locale/bg/LC_MESSAGES/gprof.mo 12,755 КиБ
            • /usr/share/locale/bg/LC_MESSAGES/ld.mo 106,161 КиБ
            • /usr/share/locale/ca/LC_MESSAGES/binutils.mo 151,625 КиБ
            • /usr/share/locale/da/LC_MESSAGES/bfd.mo 150,042 КиБ
            • /usr/share/locale/da/LC_MESSAGES/binutils.mo 68,383 КиБ
            • /usr/share/locale/da/LC_MESSAGES/gprof.mo 10,233 КиБ
            • /usr/share/locale/da/LC_MESSAGES/ld.mo 40,662 КиБ
            • /usr/share/locale/da/LC_MESSAGES/opcodes.mo 17,18 КиБ
            • /usr/share/locale/de/LC_MESSAGES/gprof.mo 10,588 КиБ
            • /usr/share/locale/de/LC_MESSAGES/ld.mo 50,673 КиБ
            • /usr/share/locale/de/LC_MESSAGES/opcodes.mo 54,588 КиБ
            • /usr/share/locale/eo/LC_MESSAGES/gprof.mo 10,5 КиБ
            • /usr/share/locale/es/LC_MESSAGES/bfd.mo 234,267 КиБ
            • /usr/share/locale/es/LC_MESSAGES/binutils.mo 118,151 КиБ
            • /usr/share/locale/es/LC_MESSAGES/gas.mo 499,732 КиБ
            • /usr/share/locale/es/LC_MESSAGES/gprof.mo 10,884 КиБ
            • /usr/share/locale/es/LC_MESSAGES/ld.mo 136,346 КиБ
            • /usr/share/locale/es/LC_MESSAGES/opcodes.mo 38,974 КиБ
            • /usr/share/locale/fi/LC_MESSAGES/bfd.mo 158,9 КиБ
            • /usr/share/locale/fi/LC_MESSAGES/binutils.mo 206,126 КиБ
            • /usr/share/locale/fi/LC_MESSAGES/gas.mo 432,427 КиБ
            • /usr/share/locale/fi/LC_MESSAGES/gprof.mo 10,87 КиБ
            • /usr/share/locale/fi/LC_MESSAGES/ld.mo 36,572 КиБ
            • /usr/share/locale/fi/LC_MESSAGES/opcodes.mo 30,528 КиБ
            • /usr/share/locale/fr/LC_MESSAGES/bfd.mo 244,874 КиБ
            • /usr/share/locale/fr/LC_MESSAGES/binutils.mo 335,121 КиБ
            • /usr/share/locale/fr/LC_MESSAGES/gas.mo 586,724 КиБ
            • /usr/share/locale/fr/LC_MESSAGES/gprof.mo 11,161 КиБ
            • /usr/share/locale/fr/LC_MESSAGES/ld.mo 186,056 КиБ
            • /usr/share/locale/fr/LC_MESSAGES/opcodes.mo 55,866 КиБ
            • /usr/share/locale/ga/LC_MESSAGES/gprof.mo 10,258 КиБ
            • /usr/share/locale/ga/LC_MESSAGES/ld.mo 58,245 КиБ
            • /usr/share/locale/ga/LC_MESSAGES/opcodes.mo 30,021 КиБ
            • /usr/share/locale/hr/LC_MESSAGES/bfd.mo 5,063 КиБ
            • /usr/share/locale/hr/LC_MESSAGES/binutils.mo 21,106 КиБ
            • /usr/share/locale/hu/LC_MESSAGES/gprof.mo 10,949 КиБ
            • /usr/share/locale/id/LC_MESSAGES/bfd.mo 140,896 КиБ
            • /usr/share/locale/id/LC_MESSAGES/binutils.mo 149,626 КиБ
            • /usr/share/locale/id/LC_MESSAGES/gas.mo 408,378 КиБ
            • /usr/share/locale/id/LC_MESSAGES/gprof.mo 10,281 КиБ
            • /usr/share/locale/id/LC_MESSAGES/ld.mo 54,536 КиБ
            • /usr/share/locale/id/LC_MESSAGES/opcodes.mo 29,603 КиБ
            • /usr/share/locale/it/LC_MESSAGES/binutils.mo 188,272 КиБ
            • /usr/share/locale/it/LC_MESSAGES/gprof.mo 10,503 КиБ
            • /usr/share/locale/it/LC_MESSAGES/ld.mo 56,69 КиБ
            • /usr/share/locale/it/LC_MESSAGES/opcodes.mo 25,771 КиБ
            • /usr/share/locale/ja/LC_MESSAGES/bfd.mo 131,53 КиБ
            • /usr/share/locale/ja/LC_MESSAGES/binutils.mo 146,604 КиБ
            • /usr/share/locale/ja/LC_MESSAGES/gas.mo 36,333 КиБ
            • /usr/share/locale/ja/LC_MESSAGES/gprof.mo 2,996 КиБ
            • /usr/share/locale/ja/LC_MESSAGES/ld.mo 62,591 КиБ
            • /usr/share/locale/ka/LC_MESSAGES/bfd.mo 4,916 КиБ
            • /usr/share/locale/ka/LC_MESSAGES/gprof.mo 15,11 КиБ
            • /usr/share/locale/ka/LC_MESSAGES/ld.mo 31,435 КиБ
            • /usr/share/locale/ms/LC_MESSAGES/bfd.mo 1,82 КиБ
            • /usr/share/locale/ms/LC_MESSAGES/gprof.mo 10,481 КиБ
            • /usr/share/locale/nl/LC_MESSAGES/gprof.mo 10,523 КиБ
            • /usr/share/locale/nl/LC_MESSAGES/opcodes.mo 24,707 КиБ
            • /usr/share/locale/pt/LC_MESSAGES/bfd.mo 213,241 КиБ
            • /usr/share/locale/pt/LC_MESSAGES/binutils.mo 288,055 КиБ
            • /usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo 10,973 КиБ
            • /usr/share/locale/pt_BR/LC_MESSAGES/ld.mo 144,85 КиБ
            • /usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo 55,116 КиБ
            • /usr/share/locale/ro/LC_MESSAGES/bfd.mo 244,088 КиБ
            • /usr/share/locale/ro/LC_MESSAGES/binutils.mo 344,819 КиБ
            • /usr/share/locale/ro/LC_MESSAGES/gas.mo 591,549 КиБ
            • /usr/share/locale/ro/LC_MESSAGES/gprof.mo 11,214 КиБ
            • /usr/share/locale/ro/LC_MESSAGES/ld.mo 184,269 КиБ
            • /usr/share/locale/ro/LC_MESSAGES/opcodes.mo 56,448 КиБ
            • /usr/share/locale/ru/LC_MESSAGES/bfd.mo 291,426 КиБ
            • /usr/share/locale/ru/LC_MESSAGES/binutils.mo 333,949 КиБ
            • /usr/share/locale/ru/LC_MESSAGES/gas.mo 713,888 КиБ
            • /usr/share/locale/ru/LC_MESSAGES/gprof.mo 12,812 КиБ
            • /usr/share/locale/ru/LC_MESSAGES/ld.mo 157,21 КиБ
            • /usr/share/locale/rw/LC_MESSAGES/bfd.mo 429 Б
            • /usr/share/locale/rw/LC_MESSAGES/binutils.mo 615 Б
            • /usr/share/locale/rw/LC_MESSAGES/gas.mo 396 Б
            • /usr/share/locale/rw/LC_MESSAGES/gprof.mo 486 Б
            • /usr/share/locale/sk/LC_MESSAGES/binutils.mo 146,19 КиБ
            • /usr/share/locale/sr/LC_MESSAGES/bfd.mo 292,723 КиБ
            • /usr/share/locale/sr/LC_MESSAGES/binutils.mo 399,809 КиБ
            • /usr/share/locale/sr/LC_MESSAGES/gprof.mo 12,8 КиБ
            • /usr/share/locale/sr/LC_MESSAGES/ld.mo 215,922 КиБ
            • /usr/share/locale/sr/LC_MESSAGES/opcodes.mo 67,93 КиБ
            • /usr/share/locale/sv/LC_MESSAGES/bfd.mo 151,621 КиБ
            • /usr/share/locale/sv/LC_MESSAGES/binutils.mo 316,367 КиБ
            • /usr/share/locale/sv/LC_MESSAGES/gas.mo 512,443 КиБ
            • /usr/share/locale/sv/LC_MESSAGES/gprof.mo 10,464 КиБ
            • /usr/share/locale/sv/LC_MESSAGES/ld.mo 55,071 КиБ
            • /usr/share/locale/sv/LC_MESSAGES/opcodes.mo 52,851 КиБ
            • /usr/share/locale/tr/LC_MESSAGES/bfd.mo 67,962 КиБ
            • /usr/share/locale/tr/LC_MESSAGES/binutils.mo 126,861 КиБ
            • /usr/share/locale/tr/LC_MESSAGES/gas.mo 248,881 КиБ
            • /usr/share/locale/tr/LC_MESSAGES/gprof.mo 10,746 КиБ
            • /usr/share/locale/tr/LC_MESSAGES/ld.mo 52,401 КиБ
            • /usr/share/locale/tr/LC_MESSAGES/opcodes.mo 15,779 КиБ
            • /usr/share/locale/uk/LC_MESSAGES/bfd.mo 306,356 КиБ
            • /usr/share/locale/uk/LC_MESSAGES/binutils.mo 406,44 КиБ
            • /usr/share/locale/uk/LC_MESSAGES/gas.mo 754,469 КиБ
            • /usr/share/locale/uk/LC_MESSAGES/gprof.mo 13,002 КиБ
            • /usr/share/locale/uk/LC_MESSAGES/ld.mo 222,812 КиБ
            • /usr/share/locale/uk/LC_MESSAGES/opcodes.mo 71,17 КиБ
            • /usr/share/locale/vi/LC_MESSAGES/bfd.mo 156,623 КиБ
            • /usr/share/locale/vi/LC_MESSAGES/binutils.mo 205,308 КиБ
            • /usr/share/locale/vi/LC_MESSAGES/gprof.mo 12,254 КиБ
            • /usr/share/locale/vi/LC_MESSAGES/ld.mo 60,896 КиБ
            • /usr/share/locale/vi/LC_MESSAGES/opcodes.mo 32,885 КиБ
            • /usr/share/locale/zh_CN/LC_MESSAGES/bfd.mo 17,487 КиБ
            • /usr/share/locale/zh_CN/LC_MESSAGES/binutils.mo 90,98 КиБ
            • /usr/share/locale/zh_CN/LC_MESSAGES/gas.mo 3,753 КиБ
            • /usr/share/locale/zh_CN/LC_MESSAGES/ld.mo 53,092 КиБ
            • /usr/share/locale/zh_CN/LC_MESSAGES/opcodes.mo 20,092 КиБ
            • /usr/share/locale/zh_TW/LC_MESSAGES/binutils.mo 85,807 КиБ
            • /usr/share/locale/zh_TW/LC_MESSAGES/ld.mo 53,338 КиБ
          • /usr/share/man/man1/addr2line.1.gz 3,602 КиБ
          • /usr/share/man/man1/ar.1.gz 7,052 КиБ
          • /usr/share/man/man1/as.1.gz 28,969 КиБ
          • /usr/share/man/man1/c++filt.1.gz 3,676 КиБ
          • /usr/share/man/man1/dlltool.1.gz 5,584 КиБ
          • /usr/share/man/man1/elfedit.1.gz 2,496 КиБ
          • /usr/share/man/man1/gprof.1.gz 7,728 КиБ
          • /usr/share/man/man1/gprofng-archive.1.gz 3,811 КиБ
          • /usr/share/man/man1/gprofng-collect-app.1.gz 3,943 КиБ
          • /usr/share/man/man1/gprofng-display-html.1.gz 3,066 КиБ
          • /usr/share/man/man1/gprofng-display-src.1.gz 2,293 КиБ
          • /usr/share/man/man1/gprofng-display-text.1.gz 4,26 КиБ
          • /usr/share/man/man1/gprofng.1.gz 3,121 КиБ
          • /usr/share/man/man1/ld.1.gz 46,221 КиБ
          • /usr/share/man/man1/nm.1.gz 6,916 КиБ
          • /usr/share/man/man1/objcopy.1.gz 13,866 КиБ
          • /usr/share/man/man1/objdump.1.gz 14,552 КиБ
          • /usr/share/man/man1/ranlib.1.gz 2,093 КиБ
          • /usr/share/man/man1/readelf.1.gz 8,307 КиБ
          • /usr/share/man/man1/size.1.gz 2,942 КиБ
          • /usr/share/man/man1/strings.1.gz 3,717 КиБ
          • /usr/share/man/man1/strip.1.gz 4,815 КиБ
          • /usr/share/man/man1/windmc.1.gz 2,87 КиБ
          • /usr/share/man/man1/windres.1.gz 3,693 КиБ
Документация (man-страницы)

STRIP(1)		     Инструменты разработки GNU		      STRIP(1)



NAME
       strip - удаление символов и других данных из объектных файлов

SYNOPSIS
       strip [-F bfdname |--target=bfdname]
	     [-I bfdname |--input-target=bfdname]
	     [-O bfdname |--output-target=bfdname]
	     [-s|--strip-all]
	     [-S|-g|-d|--strip-debug]
	     [--strip-dwo]
	     [-K symbolname|--keep-symbol=symbolname]
	     [-M|--merge-notes][--no-merge-notes]
	     [-N symbolname |--strip-symbol=symbolname]
	     [-w|--wildcard]
	     [-x|--discard-all] [-X |--discard-locals]
	     [-R sectionname |--remove-section=sectionname]
	     [--keep-section=sectionpattern]
	     [--remove-relocations=sectionpattern]
	     [--strip-section-headers]
	     [-o file] [-p|--preserve-dates]
	     [-D|--enable-deterministic-archives]
	     [-U|--disable-deterministic-archives]
	     [--keep-section-symbols]
	     [--keep-file-symbols]
	     [--only-keep-debug]
	     [-v |--verbose] [-V|--version]
	     [--help] [--info]
	     objfile...

DESCRIPTION
       Программа GNU strip удаляет все символы из объектных файлов objfile. Список
       объектных файлов может включать архивы. Должен быть указан хотя бы один
       объектный файл.

       strip модифицирует файлы, указанные в аргументах, а не создаёт
       модифицированные копии под другими именами.

OPTIONS
       -F bfdname
       --target=bfdname
	   Рассматривать исходный objfile как файл с форматом объектного кода
	   bfdname и перезаписывать его в том же формате.

       --help
	   Показать сводку опций для strip и выйти.

       --info
	   Вывести список всех доступных архитектур и форматов объектных файлов.

       -I bfdname
       --input-target=bfdname
	   Рассматривать исходный objfile как файл с форматом объектного кода
	   bfdname.

       -O bfdname
       --output-target=bfdname
	   Заменить objfile файлом в формате вывода bfdname.

       -R sectionname
       --remove-section=sectionname
	   Удалить любой раздел с именем sectionname из выходного файла, в
	   дополнение к разделам, которые иначе были бы удалены. Эта опция может
	   быть указана несколько раз. Обратите внимание, что использование этой
	   опции неподходящим образом может сделать выходной файл непригодным к
	   использованию. Символ подстановки * может быть указан в конце
	   sectionname. В этом случае будут удалены все разделы, начинающиеся с
	   sectionname.

	   Если первый символ sectionpattern — восклицательный знак (!) то
	   соответствующие разделы не будут удалены, даже если более раннее
	   использование --remove-section в той же командной строке могло бы
	   удалить их. Например:

		     --remove-section=.text.* --remove-section=!.text.foo

	   удалит все разделы, соответствующие шаблону '.text.*', но не удалит
	   раздел '.text.foo'.

       --keep-section=sectionpattern
	   При удалении разделов из выходного файла сохранять разделы, которые
	   соответствуют sectionpattern.

       --remove-relocations=sectionpattern
	   Удалить релокации из выходного файла для любого раздела, соответствующего
	   sectionpattern. Эта опция может быть указана несколько раз. Обратите
	   внимание, что использование этой опции неподходящим образом может сделать
	   выходной файл непригодным к использованию. Символы подстановки
	   принимаются в sectionpattern. Например:

		     --remove-relocations=.text.*

	   удалит релокации для всех разделов, соответствующих шаблону
	   '.text.*'.

	   Если первый символ sectionpattern — восклицательный знак (!) то
	   релокации для соответствующих разделов не будут удалены, даже если
	   более раннее использование --remove-relocations в той же командной
	   строке могло бы удалить их. Например:

		     --remove-relocations=.text.* --remove-relocations=!.text.foo

	   удалит все релокации для разделов, соответствующих шаблону
	   '.text.*', но не удалит релокации для раздела '.text.foo'.

       --strip-section-headers
	   Удалить заголовки разделов. Эта опция специфична для файлов ELF.
	   Подразумевает --strip-all и --merge-notes.

       -s
       --strip-all
	   Удалить все символы.

       -g
       -S
       -d
       --strip-debug
	   Удалить только отладочные символы.

       --strip-dwo
	   Удалить содержимое всех разделов DWARF .dwo, оставив остальные
	   отладочные разделы и все символы нетронутыми. См. описание этой опции
	   в разделе objcopy для дополнительной информации.

       --strip-unneeded
	   Удалить все символы, которые не нужны для обработки релокаций, в
	   дополнение к отладочным символам и разделам, удаляемым с помощью
	   --strip-debug.

       -K symbolname
       --keep-symbol=symbolname
	   При удалении символов сохранять символ symbolname, даже если он
	   обычно был бы удалён. Эта опция может быть указана несколько раз.

       -M
       --merge-notes
       --no-merge-notes
	   Для файлов ELF попытаться (или не попытаться) уменьшить размер
	   разделов типа SHT_NOTE, удаляя дублирующиеся заметки. По умолчанию
	   эта оптимизация выполняется, если не удаляется отладочная информация
	   или информация DWO.

       -N symbolname
       --strip-symbol=symbolname
	   Удалить символ symbolname из исходного файла. Эта опция может быть
	   указана несколько раз и может быть объединена с опциями strip,
	   отличными от -K.

       -o file
	   Поместить очищенный вывод в file, вместо замены существующего
	   файла. При использовании этого аргумента может быть указан только
	   один аргумент objfile.

       -p
       --preserve-dates
	   Сохранить даты доступа и модификации файла.

       -D
       --enable-deterministic-archives
	   Работать в детерминированном режиме. При копировании членов архива
	   и записи индекса архива использовать ноль для UID, GID, меток времени
	   и последовательных режимов файлов для всех файлов.

	   Если binutils был настроен с --enable-deterministic-archives, то
	   этот режим включён по умолчанию. Его можно отключить с помощью
	   опции -U, ниже.

       -U
       --disable-deterministic-archives
	   Не работать в детерминированном режиме. Это противоположность
	   опции -D: при копировании членов архива и записи индекса архива
	   использовать их фактические значения UID, GID, меток времени и
	   режимов файлов.

	   Это значение по умолчанию, если binutils был настроен с
	   --enable-deterministic-archives.

       -w
       --wildcard
	   Разрешить регулярные выражения в именах символов, используемых в
	   других опциях командной строки. Символы подстановки вопросительный
	   знак (?), звёздочка (*), обратная косая черта (\) и квадратные
	   скобки ([]) могут быть использованы в любом месте имени символа.
	   Если первый символ имени символа — восклицательный знак (!) то
	   смысл переключателя инвертируется для этого символа. Например:

		     -w -K !foo -K fo*

	   заставит strip сохранять только символы, начинающиеся с букв
	   "fo", но удалить символ "foo".

       -x
       --discard-all
	   Удалить не глобальные символы.

       -X
       --discard-locals
	   Удалить локальные символы, генерируемые компилятором. (Они обычно
	   начинаются с L или ..)

       --keep-section-symbols
	   При очистке файла, возможно с --strip-debug или --strip-unneeded,
	   сохранять любые символы, указывающие имена разделов, которые
	   иначе были бы удалены.

       --keep-file-symbols
	   При очистке файла, возможно с --strip-debug или --strip-unneeded,
	   сохранять любые символы, указывающие имена исходных файлов, которые
	   иначе были бы удалены.

       --only-keep-debug
	   Очистить файл, опустошив содержимое любых разделов, которые не
	   были бы удалены с помощью --strip-debug, и оставить отладочные
	   разделы нетронутыми. В файлах ELF это также сохраняет все разделы
	   заметок в выводе.

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

	   Цель — использовать эту опцию вместе с --add-gnu-debuglink для
	   создания двухкомпонентного исполняемого файла. Один — очищенный
	   бинарный файл, который будет занимать меньше места в ОЗУ и в
	   дистрибуции, а второй — файл с отладочной информацией, который
	   нужен только если требуется отладка. Предлагаемая процедура
	   создания этих файлов следующая:

	   1.<Слинкуйте исполняемый файл как обычно. Предполагая, что он называется>
	       "foo" тогда...

	   1.<Выполните "objcopy --only-keep-debug foo foo.dbg", чтобы>
	       создать файл, содержащий отладочную информацию.

	   1.<Выполните "objcopy --strip-debug foo", чтобы создать>
	       очищенный исполняемый файл.

	   1.<Выполните "objcopy --add-gnu-debuglink=foo.dbg foo">
	       чтобы добавить ссылку на отладочную информацию в очищенный
	       исполняемый файл.

	   Обратите внимание — выбор расширения ".dbg" для файла с
	   отладочной информацией произвольный. Также шаг "--only-keep-debug"
	   необязательный. Вы могли бы сделать это так:

	   1.<Слинкуйте исполняемый файл как обычно.>
	   1.<Скопируйте "foo" в "foo.full">
	   1.<Выполните "strip --strip-debug foo">
	   1.<Выполните "objcopy --add-gnu-debuglink=foo.full foo">

	   т.е., файл, на который указывает --add-gnu-debuglink, может быть
	   полным исполняемым файлом. Он не обязательно должен быть файлом,
	   созданным с помощью переключателя --only-keep-debug.

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

       -V
       --version
	   Показать номер версии strip.

       -v
       --verbose
	   Подробный вывод: перечислить все модифицированные объектные файлы. В
	   случае архивов strip -v перечисляет все члены архива.

       @file
	   Читать опции командной строки из file. Прочитанные опции вставляются
	   на место оригинальной опции @file. Если file не существует или не
	   может быть прочитан, опция будет обработана буквально, без удаления.

	   Опции в file разделены пробелами. Символ пробела может быть включён
	   в опцию путём заключения всей опции в одинарные или двойные кавычки.
	   Любые символы (включая обратную косую черту) могут быть включены путём
	   добавления перед ними обратной косой черты. Файл может сам содержать
	   дополнительные опции @file; любые такие опции будут обработаны
	   рекурсивно.

SEE ALSO
       разделы Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или модифицировать этот документ
       в соответствии с условиями Лицензии GNU Free Documentation License,
       версии 1.3 или любой более поздней версии, опубликованной Free Software
       Foundation; без Инвариантных Разделов, без Текстов на Обложке и без
       Текстов на Задней Обложке. Копия лицензии включена в раздел, озаглавленный
       "GNU Free Documentation License".



binutils-2.44			  2025-05-12			      STRIP(1)
STRIP(1)		     GNU Development Tools		      STRIP(1)



NAME
       strip - discard symbols and other data from object files

SYNOPSIS
       strip [-F bfdname |--target=bfdname]
	     [-I bfdname |--input-target=bfdname]
	     [-O bfdname |--output-target=bfdname]
	     [-s|--strip-all]
	     [-S|-g|-d|--strip-debug]
	     [--strip-dwo]
	     [-K symbolname|--keep-symbol=symbolname]
	     [-M|--merge-notes][--no-merge-notes]
	     [-N symbolname |--strip-symbol=symbolname]
	     [-w|--wildcard]
	     [-x|--discard-all] [-X |--discard-locals]
	     [-R sectionname |--remove-section=sectionname]
	     [--keep-section=sectionpattern]
	     [--remove-relocations=sectionpattern]
	     [--strip-section-headers]
	     [-o file] [-p|--preserve-dates]
	     [-D|--enable-deterministic-archives]
	     [-U|--disable-deterministic-archives]
	     [--keep-section-symbols]
	     [--keep-file-symbols]
	     [--only-keep-debug]
	     [-v |--verbose] [-V|--version]
	     [--help] [--info]
	     objfile...

DESCRIPTION
       GNU strip discards all symbols from object files objfile.  The list of
       object files may include archives.  At least one object file must be
       given.

       strip modifies the files named in its argument, rather than writing
       modified copies under different names.

OPTIONS
       -F bfdname
       --target=bfdname
	   Treat the original objfile as a file with the object code format
	   bfdname, and rewrite it in the same format.

       --help
	   Show a summary of the options to strip and exit.

       --info
	   Display a list showing all architectures and object formats
	   available.

       -I bfdname
       --input-target=bfdname
	   Treat the original objfile as a file with the object code format
	   bfdname.

       -O bfdname
       --output-target=bfdname
	   Replace objfile with a file in the output format bfdname.

       -R sectionname
       --remove-section=sectionname
	   Remove any section named sectionname from the output file, in
	   addition to whatever sections would otherwise be removed.  This
	   option may be given more than once.	Note that using this option
	   inappropriately may make the output file unusable.  The wildcard
	   character * may be given at the end of sectionname.	If so, then
	   any section starting with sectionname will be removed.

	   If the first character of sectionpattern is the exclamation point
	   (!) then matching sections will not be removed even if an earlier
	   use of --remove-section on the same command line would otherwise
	   remove it.  For example:

		     --remove-section=.text.* --remove-section=!.text.foo

	   will remove all sections matching the pattern '.text.*', but will
	   not remove the section '.text.foo'.

       --keep-section=sectionpattern
	   When removing sections from the output file, keep sections that
	   match sectionpattern.

       --remove-relocations=sectionpattern
	   Remove relocations from the output file for any section matching
	   sectionpattern.  This option may be given more than once.  Note
	   that using this option inappropriately may make the output file
	   unusable.  Wildcard characters are accepted in sectionpattern.  For
	   example:

		     --remove-relocations=.text.*

	   will remove the relocations for all sections matching the patter
	   '.text.*'.

	   If the first character of sectionpattern is the exclamation point
	   (!) then matching sections will not have their relocation removed
	   even if an earlier use of --remove-relocations on the same command
	   line would otherwise cause the relocations to be removed.  For
	   example:

		     --remove-relocations=.text.* --remove-relocations=!.text.foo

	   will remove all relocations for sections matching the pattern
	   '.text.*', but will not remove relocations for the section
	   '.text.foo'.

       --strip-section-headers
	   Strip section headers.  This option is specific to ELF files.
	   Implies --strip-all and --merge-notes.

       -s
       --strip-all
	   Remove all symbols.

       -g
       -S
       -d
       --strip-debug
	   Remove debugging symbols only.

       --strip-dwo
	   Remove the contents of all DWARF .dwo sections, leaving the
	   remaining debugging sections and all symbols intact.	 See the
	   description of this option in the objcopy section for more
	   information.

       --strip-unneeded
	   Remove all symbols that are not needed for relocation processing in
	   addition to debugging symbols and sections stripped by
	   --strip-debug.

       -K symbolname
       --keep-symbol=symbolname
	   When stripping symbols, keep symbol symbolname even if it would
	   normally be stripped.  This option may be given more than once.

       -M
       --merge-notes
       --no-merge-notes
	   For ELF files, attempt (or do not attempt) to reduce the size of
	   any SHT_NOTE type sections by removing duplicate notes.  The
	   default is to attempt this reduction unless stripping debug or DWO
	   information.

       -N symbolname
       --strip-symbol=symbolname
	   Remove symbol symbolname from the source file. This option may be
	   given more than once, and may be combined with strip options other
	   than -K.

       -o file
	   Put the stripped output in file, rather than replacing the existing
	   file.  When this argument is used, only one objfile argument may be
	   specified.

       -p
       --preserve-dates
	   Preserve the access and modification dates of the file.

       -D
       --enable-deterministic-archives
	   Operate in deterministic mode.  When copying archive members and
	   writing the archive index, use zero for UIDs, GIDs, timestamps, and
	   use consistent file modes for all files.

	   If binutils was configured with --enable-deterministic-archives,
	   then this mode is on by default.  It can be disabled with the -U
	   option, below.

       -U
       --disable-deterministic-archives
	   Do not operate in deterministic mode.  This is the inverse of the
	   -D option, above: when copying archive members and writing the
	   archive index, use their actual UID, GID, timestamp, and file mode
	   values.

	   This is the default unless binutils was configured with
	   --enable-deterministic-archives.

       -w
       --wildcard
	   Permit regular expressions in symbolnames used in other command
	   line options.  The question mark (?), asterisk (*), backslash (\)
	   and square brackets ([]) operators can be used anywhere in the
	   symbol name.	 If the first character of the symbol name is the
	   exclamation point (!) then the sense of the switch is reversed for
	   that symbol.	 For example:

		     -w -K !foo -K fo*

	   would cause strip to only keep symbols that start with the letters
	   "fo", but to discard the symbol "foo".

       -x
       --discard-all
	   Remove non-global symbols.

       -X
       --discard-locals
	   Remove compiler-generated local symbols.  (These usually start with
	   L or ..)

       --keep-section-symbols
	   When stripping a file, perhaps with --strip-debug or
	   --strip-unneeded, retain any symbols specifying section names,
	   which would otherwise get stripped.

       --keep-file-symbols
	   When stripping a file, perhaps with --strip-debug or
	   --strip-unneeded, retain any symbols specifying source file names,
	   which would otherwise get stripped.

       --only-keep-debug
	   Strip a file, emptying the contents of any sections that would not
	   be stripped by --strip-debug and leaving the debugging sections
	   intact.  In ELF files, this preserves all the note sections in the
	   output as well.

	   Note - the section headers of the stripped sections are preserved,
	   including their sizes, but the contents of the section are
	   discarded.  The section headers are preserved so that other tools
	   can match up the debuginfo file with the real executable, even if
	   that executable has been relocated to a different address space.

	   The intention is that this option will be used in conjunction with
	   --add-gnu-debuglink to create a two part executable.	 One a
	   stripped binary which will occupy less space in RAM and in a
	   distribution and the second a debugging information file which is
	   only needed if debugging abilities are required.  The suggested
	   procedure to create these files is as follows:

	   1.<Link the executable as normal.  Assuming that it is called>
	       "foo" then...

	   1.<Run "objcopy --only-keep-debug foo foo.dbg" to>
	       create a file containing the debugging info.

	   1.<Run "objcopy --strip-debug foo" to create a>
	       stripped executable.

	   1.<Run "objcopy --add-gnu-debuglink=foo.dbg foo">
	       to add a link to the debugging info into the stripped
	       executable.

	   Note---the choice of ".dbg" as an extension for the debug info file
	   is arbitrary.  Also the "--only-keep-debug" step is optional.  You
	   could instead do this:

	   1.<Link the executable as normal.>
	   1.<Copy "foo" to "foo.full">
	   1.<Run "strip --strip-debug foo">
	   1.<Run "objcopy --add-gnu-debuglink=foo.full foo">

	   i.e., the file pointed to by the --add-gnu-debuglink can be the
	   full executable.  It does not have to be a file created by the
	   --only-keep-debug switch.

	   Note---this switch is only intended for use on fully linked files.
	   It does not make sense to use it on object files where the
	   debugging information may be incomplete.  Besides the gnu_debuglink
	   feature currently only supports the presence of one filename
	   containing debugging information, not multiple filenames on a one-
	   per-object-file basis.

       -V
       --version
	   Show the version number for strip.

       -v
       --verbose
	   Verbose output: list all object files modified.  In the case of
	   archives, strip -v lists all members of the archive.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			      STRIP(1)

OBJCOPY(1)		     Инструменты разработки GNU		    OBJCOPY(1)



NAME
       objcopy - копировать и переводить объектные файлы

SYNOPSIS
       objcopy [-F bfdname|--target=bfdname]
	       [-I bfdname|--input-target=bfdname]
	       [-O bfdname|--output-target=bfdname]
	       [-B bfdarch|--binary-architecture=bfdarch]
	       [-S|--strip-all]
	       [-g|--strip-debug]
	       [--strip-unneeded]
	       [-K symbolname|--keep-symbol=symbolname]
	       [--keep-file-symbols]
	       [--keep-section-symbols]
	       [-N symbolname|--strip-symbol=symbolname]
	       [--strip-unneeded-symbol=symbolname]
	       [-G symbolname|--keep-global-symbol=symbolname]
	       [--localize-hidden]
	       [-L symbolname|--localize-symbol=symbolname]
	       [--globalize-symbol=symbolname]
	       [--globalize-symbols=filename]
	       [-W symbolname|--weaken-symbol=symbolname]
	       [-w|--wildcard]
	       [-x|--discard-all]
	       [-X|--discard-locals]
	       [-b byte|--byte=byte]
	       [-i [breadth]|--interleave[=breadth]]
	       [--interleave-width=width]
	       [-j sectionpattern|--only-section=sectionpattern]
	       [-R sectionpattern|--remove-section=sectionpattern]
	       [--keep-section=sectionpattern]
	       [--remove-relocations=sectionpattern]
	       [--strip-section-headers]
	       [-p|--preserve-dates]
	       [-D|--enable-deterministic-archives]
	       [-U|--disable-deterministic-archives]
	       [--debugging]
	       [--gap-fill=val]
	       [--pad-to=address]
	       [--set-start=val]
	       [--adjust-start=incr]
	       [--change-addresses=incr]
	       [--change-section-address sectionpattern{=,+,-}val]
	       [--change-section-lma sectionpattern{=,+,-}val]
	       [--change-section-vma sectionpattern{=,+,-}val]
	       [--change-warnings] [--no-change-warnings]
	       [--set-section-flags sectionpattern=flags]
	       [--set-section-alignment sectionpattern=align]
	       [--add-section sectionname=filename]
	       [--dump-section sectionname=filename]
	       [--update-section sectionname=filename]
	       [--rename-section oldname=newname[,flags]]
	       [--long-section-names {enable,disable,keep}]
	       [--change-leading-char] [--remove-leading-char]
	       [--reverse-bytes=num]
	       [--srec-len=ival] [--srec-forceS3]
	       [--redefine-sym old=new]
	       [--redefine-syms=filename]
	       [--weaken]
	       [--keep-symbols=filename]
	       [--strip-symbols=filename]
	       [--strip-unneeded-symbols=filename]
	       [--keep-global-symbols=filename]
	       [--localize-symbols=filename]
	       [--weaken-symbols=filename]
	       [--add-symbol name=[section:]value[,flags]]
	       [--alt-machine-code=index]
	       [--prefix-symbols=string]
	       [--prefix-sections=string]
	       [--prefix-alloc-sections=string]
	       [--add-gnu-debuglink=path-to-file]
	       [--only-keep-debug]
	       [--strip-dwo]
	       [--extract-dwo]
	       [--extract-symbol]
	       [--writable-text]
	       [--readonly-text]
	       [--pure]
	       [--impure]
	       [--file-alignment=num]
	       [--heap=reserve[,commit]]
	       [--image-base=address]
	       [--section-alignment=num]
	       [--stack=reserve[,commit]]
	       [--subsystem=which:major.minor]
	       [--compress-debug-sections]
	       [--decompress-debug-sections]
	       [--elf-stt-common=val]
	       [--merge-notes]
	       [--no-merge-notes]
	       [--verilog-data-width=val]
	       [-v|--verbose]
	       [-V|--version]
	       [--help] [--info]
	       infile [outfile]

DESCRIPTION
       Утилита GNU objcopy копирует содержимое объектного файла в другой. objcopy использует библиотеку GNU BFD для чтения и записи объектных файлов. Она может записывать файл назначения в формате, отличном от формата исходного объектного файла. Точное поведение objcopy управляется опциями командной строки. Обратите внимание, что objcopy должна уметь копировать полностью связанный файл между любыми двумя форматами. Однако копирование позиционируемого объектного файла между любыми двумя форматами может не работать так, как ожидается.

       objcopy создаёт временные файлы для выполнения переводов и удаляет их после. objcopy использует BFD для всей работы по переводу; у неё есть доступ ко всем форматам, описанным в BFD, и поэтому она может распознавать большинство форматов без явного указания.

       objcopy можно использовать для генерации S-records, указав целевой формат srec (например, используйте -O srec).

       objcopy можно использовать для генерации сырого бинарного файла, указав целевой формат binary (например, используйте -O binary). При генерации сырого бинарного файла objcopy в основном создаст дамп памяти содержимого входного объектного файла. Все символы и информация о релокациях будут отброшены. Дамп памяти начнётся с адреса загрузки самой низкой секции, скопированной в выходной файл.

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

       Обратите внимание — objcopy не может изменить порядок байтов в своих входных файлах. Если формат входных файлов имеет порядок байтов (некоторые форматы не имеют), objcopy может копировать входные файлы только в форматы файлов, которые имеют тот же порядок байтов или не имеют порядка байтов (например, srec). (Однако см. опцию --reverse-bytes.)

OPTIONS
       infile
       outfile
	   Входной и выходной файлы соответственно. Если outfile не указан, objcopy создаст временный файл и деструктивно переименует результат с именем infile.

       -I bfdname
       --input-target=bfdname
	   Рассматривать формат объекта исходного файла как bfdname, а не пытаться вывести его.

       -O bfdname
       --output-target=bfdname
	   Записывать выходной файл с использованием формата объекта bfdname.

       -F bfdname
       --target=bfdname
	   Использовать bfdname в качестве формата объекта как для входного, так и для выходного файла; т.е. просто перенести данные из источника в место назначения без перевода.

       -B bfdarch
       --binary-architecture=bfdarch
	   Полезно при преобразовании файла без архитектуры в объектный файл. В этом случае архитектуру вывода можно установить как bfdarch. Эта опция будет игнорироваться, если входной файл имеет известную bfdarch. Вы можете получить доступ к этим бинарным данным внутри программы, ссылаясь на специальные символы, создаваемые процессом преобразования. Эти символы называются _binary_objfile_start, _binary_objfile_end и _binary_objfile_size. Например, вы можете преобразовать файл изображения в объектный файл и затем получить к нему доступ в коде с помощью этих символов.

       -j sectionpattern
       --only-section=sectionpattern
	   Копировать только указанные секции из входного файла в выходной файл. Эта опция может быть указана несколько раз. Обратите внимание, что использование этой опции неподходящим образом может сделать выходной файл непригодным для использования. В sectionpattern допускаются символы подстановки.

	   Если первым символом sectionpattern является восклицательный знак (!), то соответствующие секции не будут скопированы, даже если более раннее использование --only-section в той же командной строке могло бы скопировать их. Например:

		     --only-section=.text.* --only-section=!.text.foo

	   скопирует все секции, соответствующие '.text.*', но не секцию '.text.foo'.

       -R sectionpattern
       --remove-section=sectionpattern
	   Удалить любые секции, соответствующие sectionpattern, из выходного файла. Эта опция может быть указана несколько раз. Обратите внимание, что использование этой опции неподходящим образом может сделать выходной файл непригодным для использования. В sectionpattern допускаются символы подстановки. Использование опций -j и -R вместе приводит к неопределённому поведению.

	   Если первым символом sectionpattern является восклицательный знак (!), то соответствующие секции не будут удалены, даже если более раннее использование --remove-section в той же командной строке могло бы удалить их. Например:

		     --remove-section=.text.* --remove-section=!.text.foo

	   удалит все секции, соответствующие шаблону '.text.*', но не удалит секцию '.text.foo'.

       --keep-section=sectionpattern
	   При удалении секций из выходного файла сохранять секции, соответствующие sectionpattern.

       --remove-relocations=sectionpattern
	   Удалить нединамические релокации из выходного файла для любой секции, соответствующей sectionpattern. Эта опция может быть указана несколько раз. Обратите внимание, что использование этой опции неподходящим образом может сделать выходной файл непригодным для использования, и попытка удалить динамическую секцию релокаций, такую как .rela.plt, из исполняемого файла или разделяемой библиотеки с --remove-relocations=.plt не сработает. В sectionpattern допускаются символы подстановки. Например:

		     --remove-relocations=.text.*

	   удалит релокации для всех секций, соответствующих шаблону '.text.*'.

	   Если первым символом sectionpattern является восклицательный знак (!), то соответствующие секции не будут иметь удалённых релокаций, даже если более раннее использование --remove-relocations в той же командной строке могло бы удалить их. Например:

		     --remove-relocations=.text.* --remove-relocations=!.text.foo

	   удалит все релокации для секций, соответствующих шаблону '.text.*', но не удалит релокации для секции '.text.foo'.

       --strip-section-headers
	   Удалить заголовки секций. Эта опция специфична для ELF-файлов. Подразумевает --strip-all и --merge-notes.

       -S
       --strip-all
	   Не копировать информацию о релокациях и символах из исходного файла. Также удаляет секции отладки.

       -g
       --strip-debug
	   Не копировать символы и секции отладки из исходного файла.

       --strip-unneeded
	   Удалить все символы, которые не нужны для обработки релокаций, помимо символов и секций отладки, удаляемых --strip-debug.

       -K symbolname
       --keep-symbol=symbolname
	   При удалении символов сохранять символ symbolname, даже если он обычно удаляется. Эта опция может быть указана несколько раз.

       -N symbolname
       --strip-symbol=symbolname
	   Не копировать символ symbolname из исходного файла. Эта опция может быть указана несколько раз.

       --strip-unneeded-symbol=symbolname
	   Не копировать символ symbolname из исходного файла, если он не нужен для релокации. Эта опция может быть указана несколько раз.

       -G symbolname
       --keep-global-symbol=symbolname
	   Сохранить только символ symbolname как глобальный. Сделать все другие символы локальными для файла, чтобы они не были видны извне. Эта опция может быть указана несколько раз. Обратите внимание: эта опция не может использоваться вместе с опциями --globalize-symbol или --globalize-symbols.

       --localize-hidden
	   В ELF-объекте пометить все символы с скрытой или внутренней видимостью как локальные. Эта опция применяется поверх опций локализации, специфичных для символов, таких как -L.

       -L symbolname
       --localize-symbol=symbolname
	   Преобразовать глобальный или слабый символ с именем symbolname в локальный символ, чтобы он не был виден извне. Эта опция может быть указана несколько раз. Обратите внимание — уникальные символы не преобразуются.

       -W symbolname
       --weaken-symbol=symbolname
	   Сделать символ symbolname слабым. Эта опция может быть указана несколько раз.

       --globalize-symbol=symbolname
	   Придать символу symbolname глобальную область видимости, чтобы он был видим извне файла, в котором он определён. Эта опция может быть указана несколько раз. Обратите внимание: эта опция не может использоваться вместе с опциями -G или --keep-global-symbol.

       -w
       --wildcard
	   Разрешить регулярные выражения в именах символов, используемых в других опциях командной строки. Операторы вопросительного знака (?), звёздочки (*), обратной косой черты (\) и квадратных скобок ([]) можно использовать в любом месте имени символа. Если первым символом имени символа является восклицательный знак (!), то смысл переключателя инвертируется для этого символа. Например:

		     -w -W !foo -W fo*

	   заставит objcopy ослабить все символы, начинающиеся с "fo", кроме символа "foo".

       -x
       --discard-all
	   Не копировать неглобальные символы из исходного файла.

       -X
       --discard-locals
	   Не копировать локальные символы, генерируемые компилятором. (Они обычно начинаются с L или ..)

       -b byte
       --byte=byte
	   Если чересстрочное переплетение включено с помощью опции --interleave, то начать диапазон байтов для сохранения с byte-го байта. byte может быть в диапазоне от 0 до breadth-1, где breadth — значение, указанное опцией --interleave.

       -i [breadth]
       --interleave[=breadth]
	   Копировать только диапазон из каждых breadth байтов. (Данные заголовка не затрагиваются). Выбрать, с какого байта в диапазоне начинается копирование, с помощью опции --byte. Выбрать ширину диапазона с помощью опции --interleave-width.

	   Эта опция полезна для создания файлов для программирования ROM. Она обычно используется с целевым форматом "srec". Обратите внимание, что objcopy выдаст предупреждение, если вы не укажете опцию --byte.

	   Значение breadth по умолчанию — 4, так что с --byte, установленным в 0, objcopy скопирует первый байт из каждых четырёх байтов из входного файла в выходной.

       --interleave-width=width
	   При использовании с опцией --interleave копировать width байтов за раз. Начало диапазона байтов для копирования устанавливается опцией --byte, а размер диапазона — опцией --interleave.

	   Значение по умолчанию для этой опции — 1. Значение width плюс значение byte, установленное опцией --byte, не должно превышать breadth, установленное опцией --interleave.

	   Эта опция может быть использована для создания образов для двух 16-битных флеш-памятей, чересстрочно переплетённых в 32-битной шине, путём передачи -b 0 -i 4 --interleave-width=2 и -b 2 -i 4 --interleave-width=2 двум командам objcopy. Если вход был '12345678', то выходы будут '1256' и '3478' соответственно.

       -p
       --preserve-dates
	   Установить даты доступа и модификации выходного файла такими же, как у входного файла.

	   Эта опция также копирует дату, хранящуюся в заголовке файла формата PE, если переменная окружения SOURCE_DATE_EPOCH не определена. Если она определена, то эта переменная будет использоваться как дата, хранящаяся в заголовке, интерпретируемая как количество секунд с эпохи Unix.

       -D
       --enable-deterministic-archives
	   Работать в детерминированном режиме. При копировании членов архива и записи индекса архива использовать ноль для UID, GID, временных меток и использовать последовательные режимы файлов для всех файлов.

	   Если binutils был настроен с --enable-deterministic-archives, то этот режим включён по умолчанию. Его можно отключить с помощью опции -U, ниже.

       -U
       --disable-deterministic-archives
	   Не работать в детерминированном режиме. Это обратное -D: при копировании членов архива и записи индекса архива использовать их фактические значения UID, GID, временных меток и режимов файлов.

	   Это значение по умолчанию, если binutils не был настроен с --enable-deterministic-archives.

       --debugging
	   Преобразовать информацию отладки, если возможно. Это не значение по умолчанию, потому что поддерживаются только определённые форматы отладки, и процесс преобразования может быть времязатратным.

       --gap-fill val
	   Заполнить пробелы между секциями значением val. Это применяется к адресу загрузки (LMA) секций. Это достигается путём увеличения размера секции с более низким адресом и заполнения созданного дополнительного пространства значением val.

       --pad-to address
	   Дополнить выходной файл до адреса загрузки address. Это достигается путём увеличения размера последней секции. Дополнительное пространство заполняется значением, указанным --gap-fill (по умолчанию ноль).

       --set-start val
	   Установить адрес начала (также известный как адрес входа) нового файла как val. Не все форматы объектных файлов поддерживают установку адреса начала.

       --change-start incr
       --adjust-start incr
	   Изменить адрес начала (также известный как адрес входа), добавив incr. Не все форматы объектных файлов поддерживают установку адреса начала.

       --change-addresses incr
       --adjust-vma incr
	   Изменить адреса VMA и LMA всех секций, а также адрес начала, добавив incr. Некоторые форматы объектных файлов не позволяют изменять адреса секций произвольно. Обратите внимание, что это не релокация секций; если программа ожидает, что секции будут загружены по определённому адресу, а эта опция используется для изменения секций так, чтобы они загружались по другому адресу, программа может не сработать.

       --change-section-address sectionpattern{=,+,-}val
       --adjust-section-vma sectionpattern{=,+,-}val
	   Установить или изменить адреса VMA и LMA любой секции, соответствующей sectionpattern. Если используется =, адрес секции устанавливается как val. В противном случае val добавляется к адресу секции или вычитается из него. См. комментарии под --change-addresses выше. Если sectionpattern не соответствует ни одной секции во входном файле, будет выдано предупреждение, если не используется --no-change-warnings.

       --change-section-lma sectionpattern{=,+,-}val
	   Установить или изменить адрес LMA любой секции, соответствующей sectionpattern. Адрес LMA — это адрес, по которому секция будет загружена в память при запуске программы. Обычно это то же самое, что и адрес VMA, который является адресом секции во время выполнения программы, но в некоторых системах, особенно где программа хранится в ROM, они могут отличаться. Если используется =, адрес секции устанавливается как val. В противном случае val добавляется к адресу секции или вычитается из него. См. комментарии под --change-addresses выше. Если sectionpattern не соответствует ни одной секции во входном файле, будет выдано предупреждение, если не используется --no-change-warnings.

       --change-section-vma sectionpattern{=,+,-}val
	   Установить или изменить адрес VMA любой секции, соответствующей sectionpattern. Адрес VMA — это адрес, по которому секция будет расположена после запуска выполнения программы. Обычно это то же самое, что и адрес LMA, который является адресом, по которому секция будет загружена в память, но в некоторых системах, особенно где программа хранится в ROM, они могут отличаться. Если используется =, адрес секции устанавливается как val. В противном случае val добавляется к адресу секции или вычитается из него. См. комментарии под --change-addresses выше. Если sectionpattern не соответствует ни одной секции во входном файле, будет выдано предупреждение, если не используется --no-change-warnings.

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

       --change-warnings
       --adjust-warnings
	   Если используется --change-section-address, --change-section-lma или --change-section-vma, и шаблон секции не соответствует ни одной секции, выдать предупреждение. Это значение по умолчанию.

       --no-change-warnings
       --no-adjust-warnings
	   Не выдавать предупреждение, если используется --change-section-address, --change-section-lma или --change-section-vma, даже если шаблон секции не соответствует ни одной секции.

       --set-section-flags sectionpattern=flags
	   Установить флаги для любой секции, соответствующей sectionpattern. Аргумент flags — это строка, разделённая запятыми, имён флагов. Распознаваемые имена — alloc, contents, load, noload, readonly, code, data, rom, exclude, share, debug и large. Вы можете установить флаг contents для секции, у которой нет содержимого, но бессмысленно сбрасывать флаг contents для секции, у которой есть содержимое — просто удалите секцию. Не все флаги имеют смысл для всех форматов объектных файлов. В частности, флаг share имеет смысл только для файлов формата COFF, а не для файлов формата ELF. Флаг large, специфичный для ELF x86-64, соответствует SHF_X86_64_LARGE.

       --set-section-alignment sectionpattern=align
	   Установить выравнивание для любой секции, соответствующей sectionpattern. align указывает выравнивание в байтах и должно быть степенью двойки, т.е. 1, 2, 4, 8 и т.д.

	   Обратите внимание — установка выравнивания секции не автоматически выровняет её адреса LMA или VMA. Если они также нуждаются в изменении, то должны быть использованы опции --change-section-lma и/или --change-section-vma. Также обратите внимание, что изменение VMA может вызвать проблемы в полностью связанных бинарных файлах, где может быть код, который ожидает, что содержимое секций будет расположено по их старому адресу.

       --add-section sectionname=filename
	   Добавить новую секцию с именем sectionname при копировании файла. Содержимое новой секции берётся из файла filename. Размер секции будет равен размеру файла. Эта опция работает только с форматами файлов, которые могут поддерживать секции с произвольными именами. Обратите внимание — может потребоваться использовать опцию --set-section-flags для установки атрибутов newly created секции.

       --dump-section sectionname=filename
	   Поместить содержимое секции с именем sectionname в файл filename, перезаписав любое содержимое, которое могло быть там ранее. Эта опция является обратной --add-section. Эта опция похожа на опцию --only-section, за исключением того, что она не создаёт отформатированный файл, а просто дампит содержимое как сырые бинарные данные, без применения каких-либо релокаций. Опция может быть указана несколько раз.

       --update-section sectionname=filename
	   Заменить существующее содержимое секции с именем sectionname на содержимое файла filename. Размер секции будет скорректирован до размера файла. Флаги секции для sectionname останутся неизменными. Для файлов формата ELF сопоставление секций сегментам также останется неизменным, что невозможно с помощью --remove-section, за которой следует --add-section. Опция может быть указана несколько раз.

	   Обратите внимание — возможно использовать --rename-section и --update-section для одновременного обновления и переименования секции из одной командной строки. В этом случае передайте исходное имя секции в --update-section и исходное и новое имя секции в --rename-section.

       --add-symbol name=[section:]value[,flags]
	   Добавить новый символ с именем name при копировании файла. Эта опция может быть указана несколько раз. Если секция указана, символ будет ассоциирован с ней и будет относительным к ней, в противном случае это будет символ ABS. Указание неопределённой секции приведёт к фатальной ошибке. Для значения проверки нет, оно будет взято как указано. Флаги символа могут быть указаны, и не все флаги будут иметь смысл для всех форматов объектных файлов. По умолчанию символ будет глобальным. Специальный флаг 'before=othersym' вставит новый символ перед указанным othersym, в противном случае символ(ы) будут добавлены в конец таблицы символов в порядке их появления.

       --rename-section oldname=newname[,flags]
	   Переименовать секцию из oldname в newname, при необходимости изменив флаги секции на flags. Это имеет преимущество перед использованием скрипта линкера для переименования, поскольку выход остаётся объектным файлом и не становится связанным исполняемым файлом. Эта опция принимает те же флаги, что и опция --set-section-flags.

	   Эта опция особенно полезна, когда формат входа — binary, поскольку это всегда создаст секцию с именем .data. Если, например, вы хотели вместо этого создать секцию с именем .rodata, содержащую бинарные данные, вы могли бы использовать следующую командную строку для достижения этого:

		     objcopy -I binary -O <output_format> -B <architecture> \
		      --rename-section .data=.rodata,alloc,load,readonly,data,contents \
		      <input_binary_file> <output_object_file>

       --long-section-names {enable,disable,keep}
	   Управляет обработкой длинных имён секций при обработке форматов "COFF" и "PE-COFF". Поведение по умолчанию, keep, заключается в сохранении длинных имён секций, если они присутствуют во входном файле. Опции enable и disable принудительно включают или отключают использование длинных имён секций в выходном объекте; при disable любые длинные имена секций во входном объекте будут усечены. Опция enable будет генерировать длинные имена секций только если они присутствуют во входных данных; это в основном то же самое, что и keep, но не определено, может ли опция enable принудительно создать пустую таблицу строк в выходном файле.

       --change-leading-char
	   Некоторые форматы объектных файлов используют специальные символы в начале символов. Наиболее распространённый такой символ — подчёркивание, которое компиляторы часто добавляют перед каждым символом. Эта опция говорит objcopy изменить начальный символ каждого символа при преобразовании между форматами объектных файлов. Если форматы объектных файлов используют один и тот же начальный символ, эта опция не имеет эффекта. В противном случае она добавит символ, удалит символ или изменит символ, в зависимости от ситуации.

       --remove-leading-char
	   Если первым символом глобального символа является специальный начальный символ, используемый форматом объектного файла, удалить этот символ. Наиболее распространённый начальный символ — подчёркивание. Эта опция удалит начальное подчёркивание из всех глобальных символов. Это может быть полезно, если вы хотите связать объекты разных форматов файлов с разными конвенциями имён символов. Это отличается от --change-leading-char, потому что всегда изменяет имя символа, когда это уместно, независимо от формата объектного файла выходного файла.

       --reverse-bytes=num
	   Обратить байты в секции с выходным содержимым. Длина секции должна быть чётно делимой на значение, указанное, чтобы обмен мог произойти. Обратное происходит перед выполнением чересстрочного переплетения.

	   Эта опция обычно используется при генерации образов ROM для проблемных целевых систем. Например, на некоторых целевых платах 32-битные слова, извлечённые из 8-битных ROM, собираются в порядке байтов little-endian независимо от порядка байтов CPU. В зависимости от модели программирования порядок байтов ROM может потребовать изменения.

	   Рассмотрите простой файл с секцией, содержащей следующие восемь байтов: 12345678.

	   Использование --reverse-bytes=2 для приведённого выше примера упорядочит байты в выходном файле как 21436587.

	   Использование --reverse-bytes=4 для приведённого выше примера упорядочит байты в выходном файле как 43218765.

	   Использование --reverse-bytes=2 для приведённого выше примера, за которым следует --reverse-bytes=4 для выходного файла, упорядочит байты во втором выходном файле как 34127856.

       --srec-len=ival
	   Имеет смысл только для вывода srec. Установить максимальную длину Srecords, которые производятся, равной ival. Эта длина охватывает поля адреса, данных и crc.

       --srec-forceS3
	   Имеет смысл только для вывода srec. Избегать генерации записей S1/S2, создавая только формат записей S3.

       --redefine-sym old=new
	   Изменить имя символа old на new. Это может быть полезно, когда вы пытаетесь связать два объекта вместе, у которых нет исходного кода, и есть коллизии имён.

       --redefine-syms=filename
	   Применить --redefine-sym к каждой паре символов "old new", перечисленной в файле filename. filename — это просто плоский файл с одной парой символов на строку. Комментарии строк могут быть введены символом хэша. Эта опция может быть указана несколько раз.

       --weaken
	   Сделать все глобальные символы в файле слабыми. Это может быть полезно при сборке объекта, который будет связан с другими объектами с помощью опции -R линкера. Эта опция эффективна только при использовании формата объектного файла, который поддерживает слабые символы.

       --keep-symbols=filename
	   Применить опцию --keep-symbol к каждому символу, перечисленному в файле filename. filename — это просто плоский файл с одним именем символа на строку. Комментарии строк могут быть введены символом хэша. Эта опция может быть указана несколько раз.

       --strip-symbols=filename
	   Применить опцию --strip-symbol к каждому символу, перечисленному в файле filename. filename — это просто плоский файл с одним именем символа на строку. Комментарии строк могут быть введены символом хэша. Эта опция может быть указана несколько раз.

       --strip-unneeded-symbols=filename
	   Применить опцию --strip-unneeded-symbol к каждому символу, перечисленному в файле filename. filename — это просто плоский файл с одним именем символа на строку. Комментарии строк могут быть введены символом хэша. Эта опция может быть указана несколько раз.

       --keep-global-symbols=filename
	   Применить опцию --keep-global-symbol к каждому символу, перечисленному в файле filename. filename — это просто плоский файл с одним именем символа на строку. Комментарии строк могут быть введены символом хэша. Эта опция может быть указана несколько раз.

       --localize-symbols=filename
	   Применить опцию --localize-symbol к каждому символу, перечисленному в файле filename. filename — это просто плоский файл с одним именем символа на строку. Комментарии строк могут быть введены символом хэша. Эта опция может быть указана несколько раз.

       --globalize-symbols=filename
	   Применить опцию --globalize-symbol к каждому символу, перечисленному в файле filename. filename — это просто плоский файл с одним именем символа на строку. Комментарии строк могут быть введены символом хэша. Эта опция может быть указана несколько раз. Обратите внимание: эта опция не может использоваться вместе с опциями -G или --keep-global-symbol.

       --weaken-symbols=filename
	   Применить опцию --weaken-symbol к каждому символу, перечисленному в файле filename. filename — это просто плоский файл с одним именем символа на строку. Комментарии строк могут быть введены символом хэша. Эта опция может быть указана несколько раз.

       --alt-machine-code=index
	   Если архитектура вывода имеет альтернативные машинные коды, использовать index-й код вместо кода по умолчанию. Это полезно в случае, если машине присвоен официальный код, а инструментальная цепочка принимает новый код, но другие приложения всё ещё зависят от использования исходного кода. Для архитектур на основе ELF, если альтернативный индекс не существует, значение трактуется как абсолютное число для хранения в поле e_machine заголовка ELF.

       --writable-text
	   Пометить выходной текст как записываемый. Эта опция не имеет смысла для всех форматов объектных файлов.

       --readonly-text
	   Сделать выходной текст защищённым от записи. Эта опция не имеет смысла для всех форматов объектных файлов.

       --pure
	   Пометить выходной файл как запрашиваемый по требованию. Эта опция не имеет смысла для всех форматов объектных файлов.

       --impure
	   Пометить выходной файл как нечистый. Эта опция не имеет смысла для всех форматов объектных файлов.

       --prefix-symbols=string
	   Добавить префикс string ко всем символам в выходном файле.

       --prefix-sections=string
	   Добавить префикс string ко всем именам секций в выходном файле.

       --prefix-alloc-sections=string
	   Добавить префикс string ко всем именам выделенных секций в выходном файле.

       --add-gnu-debuglink=path-to-file
	   Создать секцию .gnu_debuglink, которая содержит ссылку на path-to-file, и добавить её в выходной файл. Обратите внимание: файл по пути path-to-file должен существовать. Часть процесса добавления секции .gnu_debuglink включает вложение контрольной суммы содержимого файла отладочной информации в секцию.

	   Если файл отладочной информации строится в одном месте, но будет установлен позже в другом месте, то не используйте путь к установленному месту. Опция --add-gnu-debuglink не сработает, потому что установленный файл ещё не существует. Вместо этого поместите файл отладочной информации в текущий каталог и используйте опцию --add-gnu-debuglink без каких-либо компонентов каталога, как в этом примере:

		    objcopy --add-gnu-debuglink=foo.debug

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

	   "* Тот же каталог, что и исполняемый файл."
	   "* Подкаталог каталога, содержащего исполняемый файл,"
	       называемый .debug

	   "* Глобальный каталог отладки, такой как /usr/lib/debug."

	   Пока файл отладочной информации установлен в одно из этих мест перед запуском отладчика, всё должно работать правильно.

       --keep-section-symbols
	   При удалении файла, возможно с --strip-debug или --strip-unneeded, сохранять любые символы, указывающие имена секций, которые в противном случае будут удалены.

       --keep-file-symbols
	   При удалении файла, возможно с --strip-debug или --strip-unneeded, сохранять любые символы, указывающие имена исходных файлов, которые в противном случае будут удалены.

       --only-keep-debug
	   Удалить файл, удаляя содержимое любых секций, которые не будут удалены --strip-debug, и оставляя секции отладки нетронутыми. В ELF-файлах это сохраняет все секции заметок в выходе.

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

	   Цель — использовать эту опцию вместе с --add-gnu-debuglink для создания двухчастного исполняемого файла. Один — это очищенный бинарный файл, который будет занимать меньше места в RAM и в дистрибуции, а второй — файл отладочной информации, который нужен только если требуются возможности отладки. Предлагаемая процедура создания этих файлов следующая:

	   1.<Составьте исполняемый файл как обычно. Предполагая, что он называется>
	       "foo" then...

	   1.<Выполните "objcopy --only-keep-debug foo foo.dbg" для>
	       создания файла, содержащего информацию отладки.

	   1.<Выполните "objcopy --strip-debug foo" для создания>
	       очищенного исполняемого файла.

	   1.<Выполните "objcopy --add-gnu-debuglink=foo.dbg foo">
	       для добавления ссылки на информацию отладки в очищенный
	       исполняемый файл.

	   Обратите внимание — выбор ".dbg" в качестве расширения для файла отладочной информации произвольный. Также шаг "--only-keep-debug" необязателен. Вы могли бы вместо этого сделать это:

	   1.<Составьте исполняемый файл как обычно.>
	   1.<Скопируйте "foo" в "foo.full">
	   1.<Выполните "objcopy --strip-debug foo">
	   1.<Выполните "objcopy --add-gnu-debuglink=foo.full foo">

	   т.е. файл, на который указывает --add-gnu-debuglink, может быть полным исполняемым файлом. Он не обязательно должен быть файлом, созданным переключателем --only-keep-debug.

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

       --strip-dwo
	   Удалить содержимое всех секций DWARF .dwo, оставив остальные секции отладки и все символы нетронутыми. Эта опция предназначена для использования компилятором как часть опции -gsplit-dwarf, которая разделяет информацию отладки между .o-файлом и отдельным .dwo-файлом. Компилятор генерирует всю информацию отладки в одном файле, затем использует опцию --extract-dwo для копирования секций .dwo в .dwo-файл, а затем опцию --strip-dwo для удаления этих секций из исходного .o-файла.

       --extract-dwo
	   Извлечь содержимое всех секций DWARF .dwo. См. опцию --strip-dwo для получения дополнительной информации.

       --file-alignment num
	   Указать выравнивание файла. Секции в файле всегда будут начинаться по смещениям файла, которые являются кратными этому числу. Это значение по умолчанию — 512. [Эта опция специфична для целей PE.]

       --heap reserve
       --heap reserve,commit
	   Указать количество байтов памяти для резервирования (и, при необходимости, фиксации) для использования в качестве кучи для этой программы. [Эта опция специфична для целей PE.]

       --image-base value
	   Использовать value в качестве базового адреса вашей программы или dll. Это самый низкий адрес памяти, который будет использоваться при загрузке вашей программы или dll. Чтобы уменьшить необходимость релокации и улучшить производительность dll, каждая из них должна иметь уникальный базовый адрес и не пересекаться с другими dll. Значение по умолчанию — 0x400000 для исполняемых файлов и 0x10000000 для dll. [Эта опция специфична для целей PE.]

       --section-alignment num
	   [Эта опция специфична для целей PE.]

	   Устанавливает поле выравнивания секций в заголовке PE — если оно присутствует в бинарном файле. Секции в памяти всегда будут начинаться по адресам, которые являются кратными этому числу. Значение по умолчанию — 0x1000.

	   Обратите внимание — эта опция также установит поле выравнивания в флагах каждой секции.

	   Обратите внимание — если адреса LMA или VMA секции больше не выровнены, и эти адреса не были установлены с помощью опций --set-section-lma или --set-section-vma, и файл был полностью релокационирован, то будет выдано предупредительное сообщение. Тогда будет зависеть от пользователя решить, нужно ли обновлять LMA и VMA.

       --stack reserve
       --stack reserve,commit
	   Указать количество байтов памяти для резервирования (и, при необходимости, фиксации) для использования в качестве стека для этой программы. [Эта опция специфична для целей PE.]

       --subsystem which
       --subsystem which:major
       --subsystem which:major.minor
	   Указать подсистему, под которой будет выполняться ваша программа. Допустимые значения для which — "native", "windows", "console", "posix", "efi-app", "efi-bsd", "efi-rtd", "sal-rtd" и "xbox". Вы также можете опционально установить версию подсистемы. Числовые значения также принимаются для which. [Эта опция специфична для целей PE.]

       --extract-symbol
	   Сохранить флаги секций и символы файла, но удалить все данные секций. В частности, опция:

	   *<удаляет содержимое всех секций;>
	   *<устанавливает размер каждой секции в ноль; и>
	   *<устанавливает начальный адрес файла в ноль.>

	   Эта опция используется для создания .sym-файла для ядра VxWorks. Она также может быть полезным способом уменьшения размера входного файла линкера --just-symbols.

       --compress-debug-sections
	   Сжать секции DWARF отладки с помощью zlib с SHF_COMPRESSED из ELF ABI. Обратите внимание — если сжатие фактически сделает секцию больше, то она не сжимается.

       --compress-debug-sections=none
       --compress-debug-sections=zlib
       --compress-debug-sections=zlib-gnu
       --compress-debug-sections=zlib-gabi
       --compress-debug-sections=zstd
	   Для ELF-файлов эти опции управляют тем, как сжимаются секции DWARF отладки. --compress-debug-sections=none эквивалентно --decompress-debug-sections. --compress-debug-sections=zlib и --compress-debug-sections=zlib-gabi эквивалентны --compress-debug-sections. --compress-debug-sections=zlib-gnu сжимает секции DWARF отладки с помощью устаревшего формата zlib-gnu. Секции отладки переименовываются, чтобы начинаться с .zdebug. --compress-debug-sections=zstd сжимает секции DWARF отладки с помощью zstd. Обратите внимание — если сжатие фактически сделает секцию больше, то она не сжимается и не переименовывается.

       --decompress-debug-sections
	   Разжать секции DWARF отладки. Для секции .zdebug восстанавливается исходное имя.

       --elf-stt-common=yes
       --elf-stt-common=no
	   Для ELF-файлов эти опции управляют тем, должны ли общие символы быть преобразованы в тип "STT_COMMON" или "STT_OBJECT". --elf-stt-common=yes преобразует тип общего символа в "STT_COMMON". --elf-stt-common=no преобразует тип общего символа в "STT_OBJECT".

       --merge-notes
       --no-merge-notes
	   Для ELF-файлов попытаться (или не попытаться) уменьшить размер любых секций типа SHT_NOTE, удаляя дублирующиеся заметки.

       -V
       --version
	   Показать номер версии objcopy.

       --verilog-data-width=bytes
	   Для вывода Verilog эта опция управляет количеством байтов, преобразованных для каждого элемента выходных данных. Целевой ввод управляет порядком байтов преобразования.

       -v
       --verbose
	   Подробный вывод: перечислить все изменённые объектные файлы. В случае архивов objcopy -V перечисляет все члены архива.

       --help
	   Показать сводку опций для objcopy.

       --info
	   Отобразить список, показывающий все доступные архитектуры и форматы объектных файлов.

       @file
	   Читать опции командной строки из файла. Прочитанные опции вставляются на место оригинальной опции @file. Если файл не существует или не может быть прочитан, опция будет обработана буквально и не удалена.

	   Опции в файле разделены пробелами. Символ пробела можно включить в опцию, окружив всю опцию одиночными или двойными кавычками. Любые символы (включая обратную косую черту) можно включить, предваряя символ, который нужно включить, обратной косой чертой. Файл сам может содержать дополнительные опции @file; любые такие опции будут обработаны рекурсивно.

SEE ALSO
       ld(1), objdump(1), и записи Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ на условиях Лицензии GNU Free Documentation License, версии 1.3 или любой более поздней версии, опубликованной Free Software Foundation; без Инвариантных Разделов, без Текстов Обложки и без Текстов Задней Обложки. Копия лицензии включена в раздел, озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-05-12			    OBJCOPY(1)
OBJCOPY(1)		     GNU Development Tools		    OBJCOPY(1)



NAME
       objcopy - copy and translate object files

SYNOPSIS
       objcopy [-F bfdname|--target=bfdname]
	       [-I bfdname|--input-target=bfdname]
	       [-O bfdname|--output-target=bfdname]
	       [-B bfdarch|--binary-architecture=bfdarch]
	       [-S|--strip-all]
	       [-g|--strip-debug]
	       [--strip-unneeded]
	       [-K symbolname|--keep-symbol=symbolname]
	       [--keep-file-symbols]
	       [--keep-section-symbols]
	       [-N symbolname|--strip-symbol=symbolname]
	       [--strip-unneeded-symbol=symbolname]
	       [-G symbolname|--keep-global-symbol=symbolname]
	       [--localize-hidden]
	       [-L symbolname|--localize-symbol=symbolname]
	       [--globalize-symbol=symbolname]
	       [--globalize-symbols=filename]
	       [-W symbolname|--weaken-symbol=symbolname]
	       [-w|--wildcard]
	       [-x|--discard-all]
	       [-X|--discard-locals]
	       [-b byte|--byte=byte]
	       [-i [breadth]|--interleave[=breadth]]
	       [--interleave-width=width]
	       [-j sectionpattern|--only-section=sectionpattern]
	       [-R sectionpattern|--remove-section=sectionpattern]
	       [--keep-section=sectionpattern]
	       [--remove-relocations=sectionpattern]
	       [--strip-section-headers]
	       [-p|--preserve-dates]
	       [-D|--enable-deterministic-archives]
	       [-U|--disable-deterministic-archives]
	       [--debugging]
	       [--gap-fill=val]
	       [--pad-to=address]
	       [--set-start=val]
	       [--adjust-start=incr]
	       [--change-addresses=incr]
	       [--change-section-address sectionpattern{=,+,-}val]
	       [--change-section-lma sectionpattern{=,+,-}val]
	       [--change-section-vma sectionpattern{=,+,-}val]
	       [--change-warnings] [--no-change-warnings]
	       [--set-section-flags sectionpattern=flags]
	       [--set-section-alignment sectionpattern=align]
	       [--add-section sectionname=filename]
	       [--dump-section sectionname=filename]
	       [--update-section sectionname=filename]
	       [--rename-section oldname=newname[,flags]]
	       [--long-section-names {enable,disable,keep}]
	       [--change-leading-char] [--remove-leading-char]
	       [--reverse-bytes=num]
	       [--srec-len=ival] [--srec-forceS3]
	       [--redefine-sym old=new]
	       [--redefine-syms=filename]
	       [--weaken]
	       [--keep-symbols=filename]
	       [--strip-symbols=filename]
	       [--strip-unneeded-symbols=filename]
	       [--keep-global-symbols=filename]
	       [--localize-symbols=filename]
	       [--weaken-symbols=filename]
	       [--add-symbol name=[section:]value[,flags]]
	       [--alt-machine-code=index]
	       [--prefix-symbols=string]
	       [--prefix-sections=string]
	       [--prefix-alloc-sections=string]
	       [--add-gnu-debuglink=path-to-file]
	       [--only-keep-debug]
	       [--strip-dwo]
	       [--extract-dwo]
	       [--extract-symbol]
	       [--writable-text]
	       [--readonly-text]
	       [--pure]
	       [--impure]
	       [--file-alignment=num]
	       [--heap=reserve[,commit]]
	       [--image-base=address]
	       [--section-alignment=num]
	       [--stack=reserve[,commit]]
	       [--subsystem=which:major.minor]
	       [--compress-debug-sections]
	       [--decompress-debug-sections]
	       [--elf-stt-common=val]
	       [--merge-notes]
	       [--no-merge-notes]
	       [--verilog-data-width=val]
	       [-v|--verbose]
	       [-V|--version]
	       [--help] [--info]
	       infile [outfile]

DESCRIPTION
       The GNU objcopy utility copies the contents of an object file to
       another.	 objcopy uses the GNU BFD Library to read and write the object
       files.  It can write the destination object file in a format different
       from that of the source object file.  The exact behavior of objcopy is
       controlled by command-line options.  Note that objcopy should be able
       to copy a fully linked file between any two formats. However, copying a
       relocatable object file between any two formats may not work as
       expected.

       objcopy creates temporary files to do its translations and deletes them
       afterward.  objcopy uses BFD to do all its translation work; it has
       access to all the formats described in BFD and thus is able to
       recognize most formats without being told explicitly.

       objcopy can be used to generate S-records by using an output target of
       srec (e.g., use -O srec).

       objcopy can be used to generate a raw binary file by using an output
       target of binary (e.g., use -O binary).	When objcopy generates a raw
       binary file, it will essentially produce a memory dump of the contents
       of the input object file.  All symbols and relocation information will
       be discarded.  The memory dump will start at the load address of the
       lowest section copied into the output file.

       When generating an S-record or a raw binary file, it may be helpful to
       use -S to remove sections containing debugging information.  In some
       cases -R will be useful to remove sections which contain information
       that is not needed by the binary file.

       Note---objcopy is not able to change the endianness of its input files.
       If the input format has an endianness (some formats do not), objcopy
       can only copy the inputs into file formats that have the same
       endianness or which have no endianness (e.g., srec).  (However, see the
       --reverse-bytes option.)

OPTIONS
       infile
       outfile
	   The input and output files, respectively.  If you do not specify
	   outfile, objcopy creates a temporary file and destructively renames
	   the result with the name of infile.

       -I bfdname
       --input-target=bfdname
	   Consider the source file's object format to be bfdname, rather than
	   attempting to deduce it.

       -O bfdname
       --output-target=bfdname
	   Write the output file using the object format bfdname.

       -F bfdname
       --target=bfdname
	   Use bfdname as the object format for both the input and the output
	   file; i.e., simply transfer data from source to destination with no
	   translation.

       -B bfdarch
       --binary-architecture=bfdarch
	   Useful when transforming a architecture-less input file into an
	   object file.	 In this case the output architecture can be set to
	   bfdarch.  This option will be ignored if the input file has a known
	   bfdarch.  You can access this binary data inside a program by
	   referencing the special symbols that are created by the conversion
	   process.  These symbols are called _binary_objfile_start,
	   _binary_objfile_end and _binary_objfile_size.  e.g. you can
	   transform a picture file into an object file and then access it in
	   your code using these symbols.

       -j sectionpattern
       --only-section=sectionpattern
	   Copy only the indicated sections from the input file to the output
	   file.  This option may be given more than once.  Note that using
	   this option inappropriately may make the output file unusable.
	   Wildcard characters are accepted in sectionpattern.

	   If the first character of sectionpattern is the exclamation point
	   (!) then matching sections will not be copied, even if earlier use
	   of --only-section on the same command line would otherwise copy it.
	   For example:

		     --only-section=.text.* --only-section=!.text.foo

	   will copy all sectinos matching '.text.*' but not the section
	   '.text.foo'.

       -R sectionpattern
       --remove-section=sectionpattern
	   Remove any section matching sectionpattern from the output file.
	   This option may be given more than once.  Note that using this
	   option inappropriately may make the output file unusable.  Wildcard
	   characters are accepted in sectionpattern.  Using both the -j and
	   -R options together results in undefined behaviour.

	   If the first character of sectionpattern is the exclamation point
	   (!) then matching sections will not be removed even if an earlier
	   use of --remove-section on the same command line would otherwise
	   remove it.  For example:

		     --remove-section=.text.* --remove-section=!.text.foo

	   will remove all sections matching the pattern '.text.*', but will
	   not remove the section '.text.foo'.

       --keep-section=sectionpattern
	   When removing sections from the output file, keep sections that
	   match sectionpattern.

       --remove-relocations=sectionpattern
	   Remove non-dynamic relocations from the output file for any section
	   matching sectionpattern.  This option may be given more than once.
	   Note that using this option inappropriately may make the output
	   file unusable, and attempting to remove a dynamic relocation
	   section such as .rela.plt from an executable or shared library with
	   --remove-relocations=.plt will not work.  Wildcard characters are
	   accepted in sectionpattern.	For example:

		     --remove-relocations=.text.*

	   will remove the relocations for all sections matching the pattern
	   '.text.*'.

	   If the first character of sectionpattern is the exclamation point
	   (!) then matching sections will not have their relocation removed
	   even if an earlier use of --remove-relocations on the same command
	   line would otherwise cause the relocations to be removed.  For
	   example:

		     --remove-relocations=.text.* --remove-relocations=!.text.foo

	   will remove all relocations for sections matching the pattern
	   '.text.*', but will not remove relocations for the section
	   '.text.foo'.

       --strip-section-headers
	   Strip section header	  This option is specific to ELF files.
	   Implies --strip-all and --merge-notes.

       -S
       --strip-all
	   Do not copy relocation and symbol information from the source file.
	   Also deletes debug sections.

       -g
       --strip-debug
	   Do not copy debugging symbols or sections from the source file.

       --strip-unneeded
	   Remove all symbols that are not needed for relocation processing in
	   addition to debugging symbols and sections stripped by
	   --strip-debug.

       -K symbolname
       --keep-symbol=symbolname
	   When stripping symbols, keep symbol symbolname even if it would
	   normally be stripped.  This option may be given more than once.

       -N symbolname
       --strip-symbol=symbolname
	   Do not copy symbol symbolname from the source file.	This option
	   may be given more than once.

       --strip-unneeded-symbol=symbolname
	   Do not copy symbol symbolname from the source file unless it is
	   needed by a relocation.  This option may be given more than once.

       -G symbolname
       --keep-global-symbol=symbolname
	   Keep only symbol symbolname global.	Make all other symbols local
	   to the file, so that they are not visible externally.  This option
	   may be given more than once.	 Note: this option cannot be used in
	   conjunction with the --globalize-symbol or --globalize-symbols
	   options.

       --localize-hidden
	   In an ELF object, mark all symbols that have hidden or internal
	   visibility as local.	 This option applies on top of symbol-specific
	   localization options such as -L.

       -L symbolname
       --localize-symbol=symbolname
	   Convert a global or weak symbol called symbolname into a local
	   symbol, so that it is not visible externally.  This option may be
	   given more than once.  Note - unique symbols are not converted.

       -W symbolname
       --weaken-symbol=symbolname
	   Make symbol symbolname weak. This option may be given more than
	   once.

       --globalize-symbol=symbolname
	   Give symbol symbolname global scoping so that it is visible outside
	   of the file in which it is defined.	This option may be given more
	   than once.  Note: this option cannot be used in conjunction with
	   the -G or --keep-global-symbol options.

       -w
       --wildcard
	   Permit regular expressions in symbolnames used in other command
	   line options.  The question mark (?), asterisk (*), backslash (\)
	   and square brackets ([]) operators can be used anywhere in the
	   symbol name.	 If the first character of the symbol name is the
	   exclamation point (!) then the sense of the switch is reversed for
	   that symbol.	 For example:

		     -w -W !foo -W fo*

	   would cause objcopy to weaken all symbols that start with "fo"
	   except for the symbol "foo".

       -x
       --discard-all
	   Do not copy non-global symbols from the source file.

       -X
       --discard-locals
	   Do not copy compiler-generated local symbols.  (These usually start
	   with L or ..)

       -b byte
       --byte=byte
	   If interleaving has been enabled via the --interleave option then
	   start the range of bytes to keep at the byteth byte.	 byte can be
	   in the range from 0 to breadth-1, where breadth is the value given
	   by the --interleave option.

       -i [breadth]
       --interleave[=breadth]
	   Only copy a range out of every breadth bytes.  (Header data is not
	   affected).  Select which byte in the range begins the copy with the
	   --byte option.  Select the width of the range with the
	   --interleave-width option.

	   This option is useful for creating files to program ROM.  It is
	   typically used with an "srec" output target.	 Note that objcopy
	   will complain if you do not specify the --byte option as well.

	   The default interleave breadth is 4, so with --byte set to 0,
	   objcopy would copy the first byte out of every four bytes from the
	   input to the output.

       --interleave-width=width
	   When used with the --interleave option, copy width bytes at a time.
	   The start of the range of bytes to be copied is set by the --byte
	   option, and the extent of the range is set with the --interleave
	   option.

	   The default value for this option is 1.  The value of width plus
	   the byte value set by the --byte option must not exceed the
	   interleave breadth set by the --interleave option.

	   This option can be used to create images for two 16-bit flashes
	   interleaved in a 32-bit bus by passing -b 0 -i 4
	   --interleave-width=2 and -b 2 -i 4 --interleave-width=2 to two
	   objcopy commands.  If the input was '12345678' then the outputs
	   would be '1256' and '3478' respectively.

       -p
       --preserve-dates
	   Set the access and modification dates of the output file to be the
	   same as those of the input file.

	   This option also copies the date stored in a PE format file's
	   header, unless the SOURCE_DATE_EPOCH environment variable is
	   defined.  If it is defined then this variable will be used as the
	   date stored in the header, interpreted as the number of seconds
	   since the Unix epoch.

       -D
       --enable-deterministic-archives
	   Operate in deterministic mode.  When copying archive members and
	   writing the archive index, use zero for UIDs, GIDs, timestamps, and
	   use consistent file modes for all files.

	   If binutils was configured with --enable-deterministic-archives,
	   then this mode is on by default.  It can be disabled with the -U
	   option, below.

       -U
       --disable-deterministic-archives
	   Do not operate in deterministic mode.  This is the inverse of the
	   -D option, above: when copying archive members and writing the
	   archive index, use their actual UID, GID, timestamp, and file mode
	   values.

	   This is the default unless binutils was configured with
	   --enable-deterministic-archives.

       --debugging
	   Convert debugging information, if possible.	This is not the
	   default because only certain debugging formats are supported, and
	   the conversion process can be time consuming.

       --gap-fill val
	   Fill gaps between sections with val.	 This operation applies to the
	   load address (LMA) of the sections.	It is done by increasing the
	   size of the section with the lower address, and filling in the
	   extra space created with val.

       --pad-to address
	   Pad the output file up to the load address address.	This is done
	   by increasing the size of the last section.	The extra space is
	   filled in with the value specified by --gap-fill (default zero).

       --set-start val
	   Set the start address (also known as the entry address) of the new
	   file to val.	 Not all object file formats support setting the start
	   address.

       --change-start incr
       --adjust-start incr
	   Change the start address (also known as the entry address) by
	   adding incr.	 Not all object file formats support setting the start
	   address.

       --change-addresses incr
       --adjust-vma incr
	   Change the VMA and LMA addresses of all sections, as well as the
	   start address, by adding incr.  Some object file formats do not
	   permit section addresses to be changed arbitrarily.	Note that this
	   does not relocate the sections; if the program expects sections to
	   be loaded at a certain address, and this option is used to change
	   the sections such that they are loaded at a different address, the
	   program may fail.

       --change-section-address sectionpattern{=,+,-}val
       --adjust-section-vma sectionpattern{=,+,-}val
	   Set or change both the VMA address and the LMA address of any
	   section matching sectionpattern.  If = is used, the section address
	   is set to val.  Otherwise, val is added to or subtracted from the
	   section address.  See the comments under --change-addresses, above.
	   If sectionpattern does not match any sections in the input file, a
	   warning will be issued, unless --no-change-warnings is used.

       --change-section-lma sectionpattern{=,+,-}val
	   Set or change the LMA address of any sections matching
	   sectionpattern.  The LMA address is the address where the section
	   will be loaded into memory at program load time.  Normally this is
	   the same as the VMA address, which is the address of the section at
	   program run time, but on some systems, especially those where a
	   program is held in ROM, the two can be different.  If = is used,
	   the section address is set to val.  Otherwise, val is added to or
	   subtracted from the section address.	 See the comments under
	   --change-addresses, above.  If sectionpattern does not match any
	   sections in the input file, a warning will be issued, unless
	   --no-change-warnings is used.

       --change-section-vma sectionpattern{=,+,-}val
	   Set or change the VMA address of any section matching
	   sectionpattern.  The VMA address is the address where the section
	   will be located once the program has started executing.  Normally
	   this is the same as the LMA address, which is the address where the
	   section will be loaded into memory, but on some systems, especially
	   those where a program is held in ROM, the two can be different.  If
	   = is used, the section address is set to val.  Otherwise, val is
	   added to or subtracted from the section address.  See the comments
	   under --change-addresses, above.  If sectionpattern does not match
	   any sections in the input file, a warning will be issued, unless
	   --no-change-warnings is used.

	   Note - changing the VMA of sections in a fully linked binary can be
	   dangerous since there may be code that expects the sections to be
	   located at their old address.

       --change-warnings
       --adjust-warnings
	   If --change-section-address or --change-section-lma or
	   --change-section-vma is used, and the section pattern does not
	   match any sections, issue a warning.	 This is the default.

       --no-change-warnings
       --no-adjust-warnings
	   Do not issue a warning if --change-section-address or
	   --adjust-section-lma or --adjust-section-vma is used, even if the
	   section pattern does not match any sections.

       --set-section-flags sectionpattern=flags
	   Set the flags for any sections matching sectionpattern.  The flags
	   argument is a comma separated string of flag names.	The recognized
	   names are alloc, contents, load, noload, readonly, code, data, rom,
	   exclude, share, debug, and large.  You can set the contents flag
	   for a section which does not have contents, but it is not
	   meaningful to clear the contents flag of a section which does have
	   contents--just remove the section instead.  Not all flags are
	   meaningful for all object file formats.  In particular the share
	   flag is only meaningful for COFF format files and not for ELF
	   format files.  The ELF x86-64 specific flag large corresponds to
	   SHF_X86_64_LARGE.

       --set-section-alignment sectionpattern=align
	   Set the alignment for any sections matching sectionpattern.	align
	   specifies the alignment in bytes and must be a power of two, i.e.
	   1, 2, 4, 8....

	   Note - setting a section's alignment will not automatically align
	   its LMA or VMA addresses.  If those need to be changed as well then
	   the --change-section-lma and/or --change-section-vma options should
	   be used.  Also note that changing VMAs can cause problems in fully
	   linked binaries where there may be code that expects the contents
	   of the sections to be located at their old address.

       --add-section sectionname=filename
	   Add a new section named sectionname while copying the file.	The
	   contents of the new section are taken from the file filename.  The
	   size of the section will be the size of the file.  This option only
	   works on file formats which can support sections with arbitrary
	   names.  Note - it may be necessary to use the --set-section-flags
	   option to set the attributes of the newly created section.

       --dump-section sectionname=filename
	   Place the contents of section named sectionname into the file
	   filename, overwriting any contents that may have been there
	   previously.	This option is the inverse of --add-section.  This
	   option is similar to the --only-section option except that it does
	   not create a formatted file, it just dumps the contents as raw
	   binary data, without applying any relocations.  The option can be
	   specified more than once.

       --update-section sectionname=filename
	   Replace the existing contents of a section named sectionname with
	   the contents of file filename.  The size of the section will be
	   adjusted to the size of the file.  The section flags for
	   sectionname will be unchanged.  For ELF format files the section to
	   segment mapping will also remain unchanged, something which is not
	   possible using --remove-section followed by --add-section.  The
	   option can be specified more than once.

	   Note - it is possible to use --rename-section and --update-section
	   to both update and rename a section from one command line.  In this
	   case, pass the original section name to --update-section, and the
	   original and new section names to --rename-section.

       --add-symbol name=[section:]value[,flags]
	   Add a new symbol named name while copying the file.	This option
	   may be specified multiple times.  If the section is given, the
	   symbol will be associated with and relative to that section,
	   otherwise it will be an ABS symbol.	Specifying an undefined
	   section will result in a fatal error.  There is no check for the
	   value, it will be taken as specified.  Symbol flags can be
	   specified and not all flags will be meaningful for all object file
	   formats.  By default, the symbol will be global.  The special flag
	   'before=othersym' will insert the new symbol in front of the
	   specified othersym, otherwise the symbol(s) will be added at the
	   end of the symbol table in the order they appear.

       --rename-section oldname=newname[,flags]
	   Rename a section from oldname to newname, optionally changing the
	   section's flags to flags in the process.  This has the advantage
	   over using a linker script to perform the rename in that the output
	   stays as an object file and does not become a linked executable.
	   This option accepts the same set of flags as the
	   --set-section-flags option.

	   This option is particularly helpful when the input format is
	   binary, since this will always create a section called .data.  If
	   for example, you wanted instead to create a section called .rodata
	   containing binary data you could use the following command line to
	   achieve it:

		     objcopy -I binary -O <output_format> -B <architecture> \
		      --rename-section .data=.rodata,alloc,load,readonly,data,contents \
		      <input_binary_file> <output_object_file>

       --long-section-names {enable,disable,keep}
	   Controls the handling of long section names when processing "COFF"
	   and "PE-COFF" object formats.  The default behaviour, keep, is to
	   preserve long section names if any are present in the input file.
	   The enable and disable options forcibly enable or disable the use
	   of long section names in the output object; when disable is in
	   effect, any long section names in the input object will be
	   truncated.  The enable option will only emit long section names if
	   any are present in the inputs; this is mostly the same as keep, but
	   it is left undefined whether the enable option might force the
	   creation of an empty string table in the output file.

       --change-leading-char
	   Some object file formats use special characters at the start of
	   symbols.  The most common such character is underscore, which
	   compilers often add before every symbol.  This option tells objcopy
	   to change the leading character of every symbol when it converts
	   between object file formats.	 If the object file formats use the
	   same leading character, this option has no effect.  Otherwise, it
	   will add a character, or remove a character, or change a character,
	   as appropriate.

       --remove-leading-char
	   If the first character of a global symbol is a special symbol
	   leading character used by the object file format, remove the
	   character.  The most common symbol leading character is underscore.
	   This option will remove a leading underscore from all global
	   symbols.  This can be useful if you want to link together objects
	   of different file formats with different conventions for symbol
	   names.  This is different from --change-leading-char because it
	   always changes the symbol name when appropriate, regardless of the
	   object file format of the output file.

       --reverse-bytes=num
	   Reverse the bytes in a section with output contents.	 A section
	   length must be evenly divisible by the value given in order for the
	   swap to be able to take place. Reversing takes place before the
	   interleaving is performed.

	   This option is used typically in generating ROM images for
	   problematic target systems.	For example, on some target boards,
	   the 32-bit words fetched from 8-bit ROMs are re-assembled in
	   little-endian byte order regardless of the CPU byte order.
	   Depending on the programming model, the endianness of the ROM may
	   need to be modified.

	   Consider a simple file with a section containing the following
	   eight bytes:	 12345678.

	   Using --reverse-bytes=2 for the above example, the bytes in the
	   output file would be ordered 21436587.

	   Using --reverse-bytes=4 for the above example, the bytes in the
	   output file would be ordered 43218765.

	   By using --reverse-bytes=2 for the above example, followed by
	   --reverse-bytes=4 on the output file, the bytes in the second
	   output file would be ordered 34127856.

       --srec-len=ival
	   Meaningful only for srec output.  Set the maximum length of the
	   Srecords being produced to ival.  This length covers both address,
	   data and crc fields.

       --srec-forceS3
	   Meaningful only for srec output.  Avoid generation of S1/S2
	   records, creating S3-only record format.

       --redefine-sym old=new
	   Change the name of a symbol old, to new.  This can be useful when
	   one is trying link two things together for which you have no
	   source, and there are name collisions.

       --redefine-syms=filename
	   Apply --redefine-sym to each symbol pair "old new" listed in the
	   file filename.  filename is simply a flat file, with one symbol
	   pair per line.  Line comments may be introduced by the hash
	   character.  This option may be given more than once.

       --weaken
	   Change all global symbols in the file to be weak.  This can be
	   useful when building an object which will be linked against other
	   objects using the -R option to the linker.  This option is only
	   effective when using an object file format which supports weak
	   symbols.

       --keep-symbols=filename
	   Apply --keep-symbol option to each symbol listed in the file
	   filename.  filename is simply a flat file, with one symbol name per
	   line.  Line comments may be introduced by the hash character.  This
	   option may be given more than once.

       --strip-symbols=filename
	   Apply --strip-symbol option to each symbol listed in the file
	   filename.  filename is simply a flat file, with one symbol name per
	   line.  Line comments may be introduced by the hash character.  This
	   option may be given more than once.

       --strip-unneeded-symbols=filename
	   Apply --strip-unneeded-symbol option to each symbol listed in the
	   file filename.  filename is simply a flat file, with one symbol
	   name per line.  Line comments may be introduced by the hash
	   character.  This option may be given more than once.

       --keep-global-symbols=filename
	   Apply --keep-global-symbol option to each symbol listed in the file
	   filename.  filename is simply a flat file, with one symbol name per
	   line.  Line comments may be introduced by the hash character.  This
	   option may be given more than once.

       --localize-symbols=filename
	   Apply --localize-symbol option to each symbol listed in the file
	   filename.  filename is simply a flat file, with one symbol name per
	   line.  Line comments may be introduced by the hash character.  This
	   option may be given more than once.

       --globalize-symbols=filename
	   Apply --globalize-symbol option to each symbol listed in the file
	   filename.  filename is simply a flat file, with one symbol name per
	   line.  Line comments may be introduced by the hash character.  This
	   option may be given more than once.	Note: this option cannot be
	   used in conjunction with the -G or --keep-global-symbol options.

       --weaken-symbols=filename
	   Apply --weaken-symbol option to each symbol listed in the file
	   filename.  filename is simply a flat file, with one symbol name per
	   line.  Line comments may be introduced by the hash character.  This
	   option may be given more than once.

       --alt-machine-code=index
	   If the output architecture has alternate machine codes, use the
	   indexth code instead of the default one.  This is useful in case a
	   machine is assigned an official code and the tool-chain adopts the
	   new code, but other applications still depend on the original code
	   being used.	For ELF based architectures if the index alternative
	   does not exist then the value is treated as an absolute number to
	   be stored in the e_machine field of the ELF header.

       --writable-text
	   Mark the output text as writable.  This option isn't meaningful for
	   all object file formats.

       --readonly-text
	   Make the output text write protected.  This option isn't meaningful
	   for all object file formats.

       --pure
	   Mark the output file as demand paged.  This option isn't meaningful
	   for all object file formats.

       --impure
	   Mark the output file as impure.  This option isn't meaningful for
	   all object file formats.

       --prefix-symbols=string
	   Prefix all symbols in the output file with string.

       --prefix-sections=string
	   Prefix all section names in the output file with string.

       --prefix-alloc-sections=string
	   Prefix all the names of all allocated sections in the output file
	   with string.

       --add-gnu-debuglink=path-to-file
	   Creates a .gnu_debuglink section which contains a reference to
	   path-to-file and adds it to the output file.	 Note: the file at
	   path-to-file must exist.  Part of the process of adding the
	   .gnu_debuglink section involves embedding a checksum of the
	   contents of the debug info file into the section.

	   If the debug info file is built in one location but it is going to
	   be installed at a later time into a different location then do not
	   use the path to the installed location.  The --add-gnu-debuglink
	   option will fail because the installed file does not exist yet.
	   Instead put the debug info file in the current directory and use
	   the --add-gnu-debuglink option without any directory components,
	   like this:

		    objcopy --add-gnu-debuglink=foo.debug

	   At debug time the debugger will attempt to look for the separate
	   debug info file in a set of known locations.	 The exact set of
	   these locations varies depending upon the distribution being used,
	   but it typically includes:

	   "* The same directory as the executable."
	   "* A sub-directory of the directory containing the executable"
	       called .debug

	   "* A global debug directory such as /usr/lib/debug."

	   As long as the debug info file has been installed into one of these
	   locations before the debugger is run everything should work
	   correctly.

       --keep-section-symbols
	   When stripping a file, perhaps with --strip-debug or
	   --strip-unneeded, retain any symbols specifying section names,
	   which would otherwise get stripped.

       --keep-file-symbols
	   When stripping a file, perhaps with --strip-debug or
	   --strip-unneeded, retain any symbols specifying source file names,
	   which would otherwise get stripped.

       --only-keep-debug
	   Strip a file, removing contents of any sections that would not be
	   stripped by --strip-debug and leaving the debugging sections
	   intact.  In ELF files, this preserves all note sections in the
	   output.

	   Note - the section headers of the stripped sections are preserved,
	   including their sizes, but the contents of the section are
	   discarded.  The section headers are preserved so that other tools
	   can match up the debuginfo file with the real executable, even if
	   that executable has been relocated to a different address space.

	   The intention is that this option will be used in conjunction with
	   --add-gnu-debuglink to create a two part executable.	 One a
	   stripped binary which will occupy less space in RAM and in a
	   distribution and the second a debugging information file which is
	   only needed if debugging abilities are required.  The suggested
	   procedure to create these files is as follows:

	   1.<Link the executable as normal.  Assuming that it is called>
	       "foo" then...

	   1.<Run "objcopy --only-keep-debug foo foo.dbg" to>
	       create a file containing the debugging info.

	   1.<Run "objcopy --strip-debug foo" to create a>
	       stripped executable.

	   1.<Run "objcopy --add-gnu-debuglink=foo.dbg foo">
	       to add a link to the debugging info into the stripped
	       executable.

	   Note---the choice of ".dbg" as an extension for the debug info file
	   is arbitrary.  Also the "--only-keep-debug" step is optional.  You
	   could instead do this:

	   1.<Link the executable as normal.>
	   1.<Copy "foo" to  "foo.full">
	   1.<Run "objcopy --strip-debug foo">
	   1.<Run "objcopy --add-gnu-debuglink=foo.full foo">

	   i.e., the file pointed to by the --add-gnu-debuglink can be the
	   full executable.  It does not have to be a file created by the
	   --only-keep-debug switch.

	   Note---this switch is only intended for use on fully linked files.
	   It does not make sense to use it on object files where the
	   debugging information may be incomplete.  Besides the gnu_debuglink
	   feature currently only supports the presence of one filename
	   containing debugging information, not multiple filenames on a one-
	   per-object-file basis.

       --strip-dwo
	   Remove the contents of all DWARF .dwo sections, leaving the
	   remaining debugging sections and all symbols intact.	 This option
	   is intended for use by the compiler as part of the -gsplit-dwarf
	   option, which splits debug information between the .o file and a
	   separate .dwo file.	The compiler generates all debug information
	   in the same file, then uses the --extract-dwo option to copy the
	   .dwo sections to the .dwo file, then the --strip-dwo option to
	   remove those sections from the original .o file.

       --extract-dwo
	   Extract the contents of all DWARF .dwo sections.  See the
	   --strip-dwo option for more information.

       --file-alignment num
	   Specify the file alignment.	Sections in the file will always begin
	   at file offsets which are multiples of this number.	This defaults
	   to 512.  [This option is specific to PE targets.]

       --heap reserve
       --heap reserve,commit
	   Specify the number of bytes of memory to reserve (and optionally
	   commit) to be used as heap for this program.	 [This option is
	   specific to PE targets.]

       --image-base value
	   Use value as the base address of your program or dll.  This is the
	   lowest memory location that will be used when your program or dll
	   is loaded.  To reduce the need to relocate and improve performance
	   of your dlls, each should have a unique base address and not
	   overlap any other dlls.  The default is 0x400000 for executables,
	   and 0x10000000 for dlls.  [This option is specific to PE targets.]

       --section-alignment num
	   [This option is specific to PE targets.]

	   Sets the section alignment field in the PE header - if one is
	   present in the binary.  Sections in memory will always begin at
	   addresses which are a multiple of this number.  Defaults to 0x1000.

	   Note - this option will also set the alignment field in each
	   section's flags.

	   Note - if a section's LMA or VMA addresses are no longer aligned,
	   and those addresses have not been set via the --set-section-lma or
	   --set-section-vma options, and the file has been fully relocated
	   then a warning message will be issued.  It will then be up to the
	   user to decide if the LMA and VMA need updating.

       --stack reserve
       --stack reserve,commit
	   Specify the number of bytes of memory to reserve (and optionally
	   commit) to be used as stack for this program.  [This option is
	   specific to PE targets.]

       --subsystem which
       --subsystem which:major
       --subsystem which:major.minor
	   Specifies the subsystem under which your program will execute.  The
	   legal values for which are "native", "windows", "console", "posix",
	   "efi-app", "efi-bsd", "efi-rtd", "sal-rtd", and "xbox".  You may
	   optionally set the subsystem version also.  Numeric values are also
	   accepted for which.	[This option is specific to PE targets.]

       --extract-symbol
	   Keep the file's section flags and symbols but remove all section
	   data.  Specifically, the option:

	   *<removes the contents of all sections;>
	   *<sets the size of every section to zero; and>
	   *<sets the file's start address to zero.>

	   This option is used to build a .sym file for a VxWorks kernel.  It
	   can also be a useful way of reducing the size of a --just-symbols
	   linker input file.

       --compress-debug-sections
	   Compress DWARF debug sections using zlib with SHF_COMPRESSED from
	   the ELF ABI.	 Note - if compression would actually make a section
	   larger, then it is not compressed.

       --compress-debug-sections=none
       --compress-debug-sections=zlib
       --compress-debug-sections=zlib-gnu
       --compress-debug-sections=zlib-gabi
       --compress-debug-sections=zstd
	   For ELF files, these options control how DWARF debug sections are
	   compressed.	--compress-debug-sections=none is equivalent to
	   --decompress-debug-sections.	 --compress-debug-sections=zlib and
	   --compress-debug-sections=zlib-gabi are equivalent to
	   --compress-debug-sections.  --compress-debug-sections=zlib-gnu
	   compresses DWARF debug sections using the obsoleted zlib-gnu
	   format.  The debug sections are renamed to begin with .zdebug.
	   --compress-debug-sections=zstd compresses DWARF debug sections
	   using zstd.	Note - if compression would actually make a section
	   larger, then it is not compressed nor renamed.

       --decompress-debug-sections
	   Decompress DWARF debug sections.  For a .zdebug section, the
	   original name is restored.

       --elf-stt-common=yes
       --elf-stt-common=no
	   For ELF files, these options control whether common symbols should
	   be converted to the "STT_COMMON" or "STT_OBJECT" type.
	   --elf-stt-common=yes converts common symbol type to "STT_COMMON".
	   --elf-stt-common=no converts common symbol type to "STT_OBJECT".

       --merge-notes
       --no-merge-notes
	   For ELF files, attempt (or do not attempt) to reduce the size of
	   any SHT_NOTE type sections by removing duplicate notes.

       -V
       --version
	   Show the version number of objcopy.

       --verilog-data-width=bytes
	   For Verilog output, this options controls the number of bytes
	   converted for each output data element.  The input target controls
	   the endianness of the conversion.

       -v
       --verbose
	   Verbose output: list all object files modified.  In the case of
	   archives, objcopy -V lists all members of the archive.

       --help
	   Show a summary of the options to objcopy.

       --info
	   Display a list showing all architectures and object formats
	   available.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       ld(1), objdump(1), and the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    OBJCOPY(1)

C++FILT(1)		     Инструменты разработки GNU		    C++FILT(1)



NAME
       c++filt - деменглинг символов C++ и Java

SYNOPSIS
       c++filt [-_|--strip-underscore]
	       [-n|--no-strip-underscore]
	       [-p|--no-params]
	       [-t|--types]
	       [-i|--no-verbose]
	       [-r|--no-recurse-limit]
	       [-R|--recurse-limit]
	       [-s format|--format=format]
	       [--help]  [--version]  [symbol...]

DESCRIPTION
       Языки C++ и Java предоставляют перегрузку функций, что означает,
       что вы можете писать много функций с одним и тем же именем, при
       условии, что каждая функция принимает параметры разных типов. Чтобы
       различать эти функции с похожими именами, C++ и Java кодируют их
       в низкоуровневое имя ассемблера, которое уникально идентифицирует
       каждую версию. Этот процесс известен как mangling. Программа
       c++filt [1] выполняет обратное отображение: она декодирует
       (demangles) низкоуровневые имена в имена уровня пользователя,
       чтобы их можно было читать.

       Каждое буквенно-цифровое слово (состоящее из букв, цифр,
       подчеркиваний, долларовых знаков или точек), встречающееся во
       входных данных, может быть замаскированным именем. Если имя
       декодируется в имя C++, то в выводе оно заменяется на имя C++,
       в противном случае выводится исходное слово. Таким образом вы
       можете пропустить весь исходный файл ассемблера, содержащий
       замаскированные имена, через c++filt и увидеть тот же файл с
       демаскированными именами.

       Вы также можете использовать c++filt для расшифровки отдельных
       символов, передавая их в командной строке:

	       c++filt <symbol>

       Если аргументы символов не указаны, c++filt читает имена символов
       из стандартного ввода. Все результаты выводятся в стандартный
       вывод. Разница между чтением имен из командной строки и чтением
       из стандартного ввода заключается в том, что аргументы командной
       строки предполагаются как замаскированные имена, и не выполняется
       проверка для их разделения от окружающего текста. Таким образом,
       например:

	       c++filt -n _Z1fv

       сработает и демаскирует имя в "f()", в то время как:

	       c++filt -n _Z1fv,

       не сработает. (Обратите внимание на дополнительную запятую в конце
       замаскированного имени, которая делает его недействительным).
       Однако эта команда сработает:

	       echo _Z1fv, | c++filt -n

       и выведет "f(),", то есть демаскированное имя, за которым следует
       запятая. Это поведение обусловлено тем, что при чтении имен из
       стандартного ввода предполагается, что они могут быть частью
       файла исходного кода ассемблера, где после замаскированного имени
       могут быть дополнительные, посторонние символы. Например:

		   .type   _Z1fv, @function

OPTIONS
       -_
       --strip-underscore
	   На некоторых системах компиляторы C и C++ ставят подчеркивание
	   перед каждым именем. Например, имя C "foo" получает низкоуровневое
	   имя "_foo". Эта опция удаляет начальное подчеркивание. Удаляет ли
	   c++filt подчеркивание по умолчанию, зависит от цели.

       -n
       --no-strip-underscore
	   Не удалять начальное подчеркивание.

       -p
       --no-params
	   При демаскировании имени функции не отображать типы параметров
	   функции.

       -t
       --types
	   Пытаться демаскировать типы, а также имена функций. Это по
	   умолчанию отключено, поскольку замаскированные типы обычно
	   используются только внутри компилятора, и их можно спутать с
	   немаскированными именами. Например, функция под названием "a",
	   рассматриваемая как замаскированное имя типа, будет демаскирована
	   как "signed char".

       -i
       --no-verbose
	   Не включать детали реализации (если они есть) в демаскированный
	   вывод.

       -r
       --no-recurse-limit
       -R
       --recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Включает или отключает ограничение на количество рекурсии при
	   демаскировании строк. Поскольку форматы маскировки имен позволяют
	   бесконечный уровень рекурсии, возможно создать строки, декодирование
	   которых исчерпает объем стека, доступного на хост-машине, вызывая
	   ошибку памяти. Ограничение пытается предотвратить это, ограничивая
	   рекурсию 2048 уровнями вложенности.

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

	   Опция -r является синонимом для --no-recurse-limit. Опция -R
	   является синонимом для --recurse-limit.

       -s format
       --format=format
	   c++filt может декодировать различные методы маскировки, используемые
	   разными компиляторами. Аргумент этой опции выбирает, какой метод
	   использовать:

	   "auto"
	       Автоматический выбор на основе исполняемого файла (метод по
	       умолчанию)

	   "gnu"
	       Используемый компилятором GNU C++ (g++)

	   "lucid"
	       Используемый компилятором Lucid (lcc)

	   "arm"
	       Указанный в Annotated Reference Manual C++

	   "hp"
	       Используемый компилятором HP (aCC)

	   "edg"
	       Используемый компилятором EDG

	   "gnu-v3"
	       Используемый компилятором GNU C++ (g++) с ABI V3.

	   "java"
	       Используемый компилятором GNU Java (gcj)

	   "gnat"
	       Используемый компилятором GNU Ada (GNAT).

       --help
	   Вывести сводку опций c++filt и выйти.

       --version
	   Вывести номер версии c++filt и выйти.

       @file
	   Читать опции командной строки из файла. Опции, прочитанные из
	   файла, вставляются на место оригинальной опции @file. Если файл
	   не существует или не может быть прочитан, опция будет обработана
	   буквально, без удаления.

	   Опции в файле разделены пробелами. Пробельный символ может быть
	   включен в опцию, если вся опция окружена одинарными или двойными
	   кавычками. Любые символы (включая обратную косую черту) могут быть
	   включены, если перед ними поставить обратную косую черту. Файл
	   может сам содержать дополнительные опции @file; такие опции будут
	   обработаны рекурсивно.

FOOTNOTES
       1.  В MS-DOS символы "+" не допускаются в именах файлов, поэтому на
	   MS-DOS эта программа называется CXXFILT.

SEE ALSO
       записи Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ
       в соответствии с условиями Лицензии GNU Free Documentation License,
       версии 1.3 или любой более поздней версии, опубликованной Free
       Software Foundation; без Инвариантных Разделов, без Текстов на
       Обложке и без Текстов на Задней Обложке. Копия лицензии включена в
       раздел, озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-05-12			    C++FILT(1)
C++FILT(1)		     GNU Development Tools		    C++FILT(1)



NAME
       c++filt - demangle C++ and Java symbols

SYNOPSIS
       c++filt [-_|--strip-underscore]
	       [-n|--no-strip-underscore]
	       [-p|--no-params]
	       [-t|--types]
	       [-i|--no-verbose]
	       [-r|--no-recurse-limit]
	       [-R|--recurse-limit]
	       [-s format|--format=format]
	       [--help]	 [--version]  [symbol...]

DESCRIPTION
       The C++ and Java languages provide function overloading, which means
       that you can write many functions with the same name, providing that
       each function takes parameters of different types.  In order to be able
       to distinguish these similarly named functions C++ and Java encode them
       into a low-level assembler name which uniquely identifies each
       different version.  This process is known as mangling. The c++filt [1]
       program does the inverse mapping: it decodes (demangles) low-level
       names into user-level names so that they can be read.

       Every alphanumeric word (consisting of letters, digits, underscores,
       dollars, or periods) seen in the input is a potential mangled name.  If
       the name decodes into a C++ name, the C++ name replaces the low-level
       name in the output, otherwise the original word is output.  In this way
       you can pass an entire assembler source file, containing mangled names,
       through c++filt and see the same source file containing demangled
       names.

       You can also use c++filt to decipher individual symbols by passing them
       on the command line:

	       c++filt <symbol>

       If no symbol arguments are given, c++filt reads symbol names from the
       standard input instead.	All the results are printed on the standard
       output.	The difference between reading names from the command line
       versus reading names from the standard input is that command-line
       arguments are expected to be just mangled names and no checking is
       performed to separate them from surrounding text.  Thus for example:

	       c++filt -n _Z1fv

       will work and demangle the name to "f()" whereas:

	       c++filt -n _Z1fv,

       will not work.  (Note the extra comma at the end of the mangled name
       which makes it invalid).	 This command however will work:

	       echo _Z1fv, | c++filt -n

       and will display "f(),", i.e., the demangled name followed by a
       trailing comma.	This behaviour is because when the names are read from
       the standard input it is expected that they might be part of an
       assembler source file where there might be extra, extraneous characters
       trailing after a mangled name.  For example:

		   .type   _Z1fv, @function

OPTIONS
       -_
       --strip-underscore
	   On some systems, both the C and C++ compilers put an underscore in
	   front of every name.	 For example, the C name "foo" gets the low-
	   level name "_foo".  This option removes the initial underscore.
	   Whether c++filt removes the underscore by default is target
	   dependent.

       -n
       --no-strip-underscore
	   Do not remove the initial underscore.

       -p
       --no-params
	   When demangling the name of a function, do not display the types of
	   the function's parameters.

       -t
       --types
	   Attempt to demangle types as well as function names.	 This is
	   disabled by default since mangled types are normally only used
	   internally in the compiler, and they can be confused with non-
	   mangled names.  For example, a function called "a" treated as a
	   mangled type name would be demangled to "signed char".

       -i
       --no-verbose
	   Do not include implementation details (if any) in the demangled
	   output.

       -r
       -R
       --recurse-limit
       --no-recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Enables or disables a limit on the amount of recursion performed
	   whilst demangling strings.  Since the name mangling formats allow
	   for an infinite level of recursion it is possible to create strings
	   whose decoding will exhaust the amount of stack space available on
	   the host machine, triggering a memory fault.	 The limit tries to
	   prevent this from happening by restricting recursion to 2048 levels
	   of nesting.

	   The default is for this limit to be enabled, but disabling it may
	   be necessary in order to demangle truly complicated names.  Note
	   however that if the recursion limit is disabled then stack
	   exhaustion is possible and any bug reports about such an event will
	   be rejected.

	   The -r option is a synonym for the --no-recurse-limit option.  The
	   -R option is a synonym for the --recurse-limit option.

       -s format
       --format=format
	   c++filt can decode various methods of mangling, used by different
	   compilers.  The argument to this option selects which method it
	   uses:

	   "auto"
	       Automatic selection based on executable (the default method)

	   "gnu"
	       the one used by the GNU C++ compiler (g++)

	   "lucid"
	       the one used by the Lucid compiler (lcc)

	   "arm"
	       the one specified by the C++ Annotated Reference Manual

	   "hp"
	       the one used by the HP compiler (aCC)

	   "edg"
	       the one used by the EDG compiler

	   "gnu-v3"
	       the one used by the GNU C++ compiler (g++) with the V3 ABI.

	   "java"
	       the one used by the GNU Java compiler (gcj)

	   "gnat"
	       the one used by the GNU Ada compiler (GNAT).

       --help
	   Print a summary of the options to c++filt and exit.

       --version
	   Print the version number of c++filt and exit.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

FOOTNOTES
       1.  MS-DOS does not allow "+" characters in file names, so on MS-DOS
	   this program is named CXXFILT.

SEE ALSO
       the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    C++FILT(1)

GPROFNG-ARCHIVE(1)		 Команды пользователя		   GPROFNG-ARCHIVE(1)



NAME
       gprofng-archive - Архивация данных эксперимента gprofng

SYNOPSIS
       gprofng archive [option(s)] experiment

DESCRIPTION
       Архивация связанных бинарных файлов приложения и исходных файлов в
       эксперименте gprofng для создания самодостаточного и переносимого
       эксперимента.

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

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

OPTIONS
       --version
	   Вывести номер версии и выйти.

       --help
	   Вывести информацию об использовании и выйти.

       -a {off | on | ldobjects | src | usedldobjects | used[src]}
	   Указать архивацию бинарных файлов и других файлов.  Помимо
	   отключения этой функции (off) или включения архивации всех
	   loadobjects и исходных файлов (on), другие варианты поддерживают
	   более точный выбор.

	   Все эти варианты включают архивацию, но ключевое слово управляет
	   тем, что именно выбрано: все load objects (ldobjects), все исходные
	   файлы (src), loadobjects, связанные с программным счётчиком
	   (usedldobjects), или исходные файлы, связанные с программным
	   счётчиком (used[src]).  По умолчанию используется -a ldobjects.

       -d path
	   Путь — это абсолютный путь к общему архиву, который является
	   каталогом, содержащим архивированные файлы.  Если каталог не
	   существует, он будет создан.  Файлы сохраняются в каталоге общего
	   архива, и в архиве эксперимента создаётся символическая ссылка.

       -F  Принудительное выполнение записи или перезаписи файлов .archive.
	   Все архивированные файлы будут удалены и пересозданы, за
	   исключением случаев, когда используются опции -n или -m, или если
	   эксперимент является подэкспериментом.

       -m regex
	   Архивировать только те исходные, объектные и файлы отладочной
	   информации, полное имя пути которых соответствует данной
	   регулярному выражению POSIX.

       -n  Архивировать только указанный эксперимент, не архивируя его
	   потомков.

       -q  Не выводить никаких предупреждений в stderr.  Предупреждения
	   включаются в файл .archive в каталоге эксперимента.  Они отображаются
	   в выводе команды gprofng display text.

       -r path
	   Эта опция указывает местоположение общего архива.  Значение —
	   относительный путь к общему архиву, который является каталогом,
	   содержащим архивированные файлы.  Если каталог не существует, он
	   будет создан.  Файлы сохраняются в каталоге общего архива, и в
	   архиве эксперимента создаётся символическая ссылка.

       -s selection
	   Указать архивацию исходных файлов.  Допустимые значения для
	   selection:

	   no  Не архивировать никаких исходных файлов.

	   all Архивировать все исходные и объектные файлы, которые можно
	       найти.

	   used[src]
	       Архивировать исходные и объектные файлы для функций, против
	       которых были записаны данные в эксперименте, и которые можно
	       найти.

	   По умолчанию исходные файлы приложения не архивируются в
	   эксперимент.  Если используются опции -s all или -s used, исходные
	   и объектные файлы архивируются.  Эти опции также обеспечивают
	   наличие исходных файлов в эксперименте, даже если оригинальные
	   исходные файлы были изменены или стали недоступны.

	   В случае, если архивируемые файлы не удаётся найти, используйте
	   команды addpath или pathmap, или обе, в файле .er.rc для указания
	   местоположения отсутствующих файлов.

NOTES
       -   Архивация бинарных файлов приложения — По умолчанию бинарные
	   файлы архивируются автоматически при создании эксперимента.
	   Однако архивация не происходит в одном или нескольких из
	   следующих случаев:

	   •   Если профилируемое приложение завершается до нормального
	       выхода.

	   •   Если профилируется запущенный процесс.

	   •   Если архивация явно отключена при профилировании.  Например,
	       с помощью опции -a off в gprofng collect app.

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

	   Архивация данных эксперимента во время процесса сбора данных может
	   быть довольно затратной.  Особенно если эксперимент имеет много
	   потомков процессов.  В таких случаях более эффективная стратегия —
	   использовать опцию -a off при сборе данных.  После завершения
	   сбора данных можно архивировать с помощью опции -s all.  Это
	   сохранит все исполняемые файлы и исходные файлы в эксперименте.

	   Если во время архивации появляется сообщение об ошибке, что
	   исполняемый файл или исходный файл не найден, команду addpath для
	   добавления пути к отсутствующим файлам можно включить в файл
	   .er.rc.  После добавления этой команды снова архивируйте
	   эксперимент.  Архивацию можно повторять столько раз, сколько
	   необходимо, чтобы архивировать все файлы.

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

	   Некоторые приложения Java хранят разделяемые объекты в файлах jar.
	   По умолчанию такие разделяемые объекты не архивируются
	   автоматически.  Чтобы архивировать разделяемые объекты, содержащиеся
	   в файлах jar, убедитесь, что команда addpath включена в файл
	   .er.rc.  Команда addpath должна указывать путь к файлу jar,
	   включая сам файл jar.  Файл .er.rc должен быть сохранён в домашнем
	   каталоге пользователя или в каталоге родителя эксперимента.

       -   Архивация исходных файлов приложения — По умолчанию исходные
	   файлы приложения не архивируются в эксперименте.  Выполните
	   команду gprofng archive с опцией -s all или -s used для каждого
	   эксперимента, чтобы сохранить исходные файлы в эксперименте.

       -   Автоматическая архивация исходных файлов — Переменная окружения
	   GPROFNG_ARCHIVE может быть установлена для автоматической
	   архивации исходных файлов после завершения эксперимента.  Эта
	   переменная окружения может содержать аргументы -s и -m, как пары
	   аргументов и опций, разделённые одним или несколькими пробелами.

	   Если на командной строке появляется более одного аргумента -s,
	   последний имеет приоритет.  Если -s передаётся на командной строке
	   и устанавливается переменной окружения, опция из переменной
	   окружения имеет приоритет.

	   Обратите внимание, что в случае, если автоматическая архивация
	   исходных файлов во время сбора данных была включена с помощью
	   переменной GPROFNG_ARCHIVE или опций -a src или -a usedsrc, рекомендуется
	   подтвердить, что исходные файлы были правильно разрешены, выполнив
	   команду gprofng archive -s all или gprofng archive -s used.

       -   Опции -d и -r являются взаимоисключающими.

       -   При использовании опции -d или -r переменная окружения
	   GPROFNG_ARCHIVE_COMMON_DIR может быть использована для указания
	   местоположения общего архива.  Это может быть очень удобно при
	   использовании скрипта для профилирования приложений.

       -   Если на командной строке или в переменной окружения указано более
	   одного опции -s, указанная опция для всех должна быть одинаковой.
	   В противном случае gprofng archive завершается с ошибкой.

       -   Этот инструмент не работает с экспериментами, записанными с
	   помощью более ранних версий инструментов.  Если он вызван для
	   таких экспериментов, выводится предупреждение.  Используйте версию
	   gprofng archive из того же выпуска, с которым был записан
	   эксперимент.

SEE ALSO
       gprofng(1), gprofng-collect-app(1), gprofng-display-html(1),
       gprofng-display-src(1), gprofng-display-text(1)

       Руководство пользователя для gprofng поддерживается как руководство
       в формате Texinfo.  Если программы info и gprofng правильно
       установлены, команда info gprofng должна предоставить доступ к
       этому документу.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ
       на условиях Лицензии GNU Free Documentation License, версии 1.3 или
       любой более поздней версии, опубликованной Free Software Foundation;
       без Инвариантных Разделов, без Текстов на Обложке и без Текстов на
       Задней Обложке.  Копия лицензии включена в раздел, озаглавленный
       "GNU Free Documentation License".



binutils-2.44			  2025-02-02		    GPROFNG-ARCHIVE(1)
GPROFNG-ARCHIVE(1)		 User Commands		    GPROFNG-ARCHIVE(1)



NAME
       gprofng-archive - Archive gprofng experiment data

SYNOPSIS
       gprofng archive [option(s)] experiment

DESCRIPTION
       Archive the associated application binaries and source files in a
       gprofng experiment to make it self contained and portable.

       By default, the binaries are archived as part of the data collection,
       but the application source files are not archived.  Use this tool to
       change this and afterwards archive additional components.

       This tool has to be executed on the same system where the profiling
       data was recorded.

OPTIONS
       --version
	   Print the version number and exit.

       --help
	   Print usage information and exit.

       -a {off | on | ldobjects | src | usedldobjects | used[src]}
	   Specify archiving of binaries and other files.  In addition to
	   disable this feature (off), or enable archiving of all loadobjects
	   and sources (on), the other choices support a more refined
	   selection.

	   All of these choices enable archiving, but the keyword controls
	   what exactly is selected: all load objects (ldobjects), all source
	   files (src), the loadobjects associated with a program counter
	   (usedldobjects), or the source files associated with a program
	   counter (used[src]).	 The default is -a ldobjects.

       -d path
	   The path is the absolute path to a common archive, which is a
	   directory that contains archived files.  If the directory does not
	   exist, then it will be created.  Files are saved in the common
	   archive directory, and a symbolic link is created in the experiment
	   archive.

       -F  Force writing, or rewriting of .archive files.  All archived files
	   will be removed and recreated, except if the -n or -m option is
	   used, or if the experiment is a subexperiment.

       -m regex
	   Archive only those source, object, and debug info files whose full
	   path name matches the given POSIX compliant regex regular
	   expression.

       -n  Archive the named experiment only, not any of its descendants.

       -q  Do not write any warnings to stderr.	 Warnings are incorporated
	   into the .archive file in the experiment directory.	They are shown
	   in the output of the gprofng display text command.

       -r path
	   This option specifies the location of a common archive.  The value
	   is the relative path to a common archive, which is a directory that
	   contains archived files.  If the directory does not exist, then it
	   will be created.  Files are saved in the common archive directory,
	   and a symbolic link is created in the experiment archive.

       -s selection
	   Specify archiving of source files.  The allowed values for
	   selection are:

	   no  Do not archive any source files.

	   all Archive all source and object files that can be found.

	   used[src]
	       Archive source and object files for functions against which
	       data was recorded in the experiment, and that can be found.

	   By default, application source files are not archived into the
	   experiment.	If the -s all, or -s used option is used, sources and
	   object files are archived.  These options also ensure that source
	   files are available in the experiment, even if the original source
	   files have been modified, or are inaccessible afterwards.

	   In case archive files cannot be found, use the addpath, or pathmap
	   command, or both, in an .er.rc file to specify the location of the
	   missing file(s).

NOTES
       -   Archiving of application binaries - By default, binaries are
	   archived automatically when an experiment is created.  However,
	   archiving does not occur in one or more of the following
	   circumstances:

	   •   If the profiled application is terminated before it exits
	       normally.

	   •   If a running process is profiled.

	   •   If archiving is explicitly disabled when profiling.  For
	       example by using the -a off option on gprofng collect app.

	   In these cases, gprofng archive must be run manually and on the
	   same machine where the profiling data was recorded.

	   Archiving of experiment data during the data collection process can
	   be quite expensive.	Especially if the experiment has many
	   descendant processes.  In such cases, a more efficient strategy is
	   to use the -a off option when collecting the data.  Once the
	   collection has completed, the data can be archived using the -s all
	   option.  This saves all executables and source files in the
	   experiment.

	   If during the archiving there is an error message that an
	   executable, or source file cannot be found, the addpath command to
	   add the path to the missing file(s) can be included in the .er.rc
	   file.  After this command has been added, archive the experiment
	   again.  The archiving archiving can be repeated as many times as
	   necessary to archive all files.

	   Archiving should be done on the same system as was used to collect
	   the experiment.  If some files cannot be accessed from this system
	   (e.g.  sources or object files), then additional archiving can be
	   done using another system that can access them.  For example, the
	   system where the application was built.

	   Some Java applications store shared objects in jar files.  By
	   default, such shared objects are not automatically archived.	 To
	   archive shared objects contained in jar files, make sure to include
	   the addpath command in an .er.rc file.  The addpath command should
	   give the path to the jar file, including the jar file itself.  The
	   .er.rc file should be saved in the user home directory, or
	   experiment parent directory.

       -   Archiving of application sources - By default, application source
	   files are not archived in the experiment.  Execute the gprofng
	   archive command with the -s all, or -s used option on each
	   experiment to store source files in the experiment.

       -   Automatic archiving of application sources - Environment variable
	   GPROFNG_ARCHIVE may be set to automatically archive sources when
	   the experiment has completed.  This environment variable can
	   contain -s and -m arguments, as pairs of argument and options,
	   separated by one or more blanks.

	   If more than one -s argument appears on the command line, the last
	   one prevails.  If -s is both passed on the command line, and set by
	   the environment variable, the option from the environment variable
	   prevails.

	   Note that in case automatic source archiving during data collection
	   has been enabled using either the GPROFNG_ARCHIVE variable, or the
	   -a src, or -a usedsrc option, it is recommended to confirm that
	   source files have been correctly resolved by executing the gprofng
	   archive -s all, or gprofng archive -s used command.

       -   The -d and -r options are mutually exclusive.

       -   When using the -d or -r option, environment variable
	   GPROFNG_ARCHIVE_COMMON_DIR can be used to specify the location of
	   the common archive.	This can be very convenient when using a
	   script to profile applications.

       -   If more than one -s option is given on the command line, or
	   specified in the environment variable, the specified option for all
	   must be the same.  If not, gprofng archive exits with an error.

       -   This tool does not work on experiments recorded with earlier
	   versions of the tools.  If invoked on such experiments, a warning
	   is printed.	Use the version of gprofng archive from the same
	   release with which the experiment was recorded.

SEE ALSO
       gprofng(1), gprofng-collect-app(1), gprofng-display-html(1),
       gprofng-display-src(1), gprofng-display-text(1)

       The user guide for gprofng is maintained as a Texinfo manual.  If the
       info and gprofng programs are correctly installed, the command info
       gprofng should give access to this document.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02		    GPROFNG-ARCHIVE(1)

AR(1)			     Инструменты разработки GNU			 AR(1)



NAME
       ar - создание, модификация и извлечение из архивов

SYNOPSIS
       ar [-X32_64] [-]p[mod] [--plugin name] [--target bfdname] [--output
       dirname] [--record-libdeps libdeps] [--thin] [relpos] [count] archive
       [member...]

DESCRIPTION
       Программа GNU ar создаёт, модифицирует и извлекает файлы из архивов. Архив
       представляет собой один файл, содержащий коллекцию других файлов в структуре,
       которая позволяет извлечь исходные отдельные файлы (называемые членами архива).

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

       GNU ar может поддерживать архивы, чьи члены имеют имена любой длины;
       однако, в зависимости от конфигурации ar на вашей системе, может быть
       наложен лимит на длину имени члена для совместимости с форматами архивов,
       поддерживаемыми другими инструментами. Если такой лимит существует, он часто
       составляет 15 символов (типично для форматов, связанных с a.out) или 16
       символов (типично для форматов, связанных с coff).

       ar считается утилитой для бинарных файлов, поскольку архивы такого рода
       чаще всего используются как библиотеки, содержащие часто используемые
       подпрограммы. Поскольку библиотеки часто зависят от других библиотек, ar может
       также записывать зависимости библиотеки, если указан параметр --record-libdeps.

       ar создаёт индекс символов, определённых в релокационных модулях объектов
       в архиве, если вы укажете модификатор s. После создания этот индекс
       обновляется в архиве при любом изменении его содержимого (кроме операции
       обновления q). Архив с таким индексом ускоряет связывание с библиотекой и
       позволяет подпрограммам в библиотеке вызывать друг друга без учёта их
       размещения в архиве.

       Вы можете использовать nm -s или nm --print-armap для вывода этого индексного
       таблицы. Если в архиве отсутствует таблица, то другую форму ar, называемую
       ranlib, можно использовать для добавления только таблицы.

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

       Архив может быть либо тонким, либо обычным. Он не может быть обоими
       одновременно. После создания формата архива изменить нельзя, не удалив его
       сначала и не создав новый на его месте.

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

       Пути к элементам архива хранятся относительно самого архива.

       GNU ar предназначен для совместимости с двумя разными возможностями. Вы
       можете управлять его работой с помощью опций командной строки, как в разных
       вариантах ar в системах Unix; или, если вы укажете единственную опцию
       командной строки -M, вы можете управлять им с помощью скрипта, подаваемого
       через стандартный ввод, как в программе "librarian" от MRI.

OPTIONS
       GNU ar позволяет смешивать код операции p и флаги модификаторов mod в
       любом порядке в первом аргументе командной строки.

       Если желаете, вы можете начать первый аргумент командной строки с тире.

       Ключ p определяет, какую операцию выполнить; это может быть любая из
       следующих, но вы должны указать только одну из них:

       d   Удалить модули из архива. Укажите имена модулей для удаления как
	   member...; архив остаётся неизменным, если вы не укажете файлы
	   для удаления.

	   Если указан модификатор v, ar перечисляет каждый модуль по мере
	   его удаления.

       m   Используйте эту операцию для перемещения членов в архиве.

	   Порядок членов в архиве может повлиять на связывание программ с
	   помощью библиотеки, если символ определён в более чем одном члене.

	   Если модификаторы не используются с "m", любые члены, которые вы
	   укажете в аргументах member, перемещаются в конец архива; вы можете
	   использовать модификаторы a, b или i, чтобы переместить их в
	   указанное место вместо этого.

       p   Вывести указанных членов архива в стандартный вывод. Если указан
	   модификатор v, показать имя члена перед копированием его содержимого
	   в стандартный вывод.

	   Если вы не укажете аргументы member, все файлы в архиве будут
	   выведены.

       q   Быстрое добавление; Исторически, добавить файлы member... в конец
	   архива, без проверки на замену.

	   Модификаторы a, b и i не влияют на эту операцию; новые члены
	   всегда размещаются в конце архива.

	   Модификатор v заставляет ar перечислять каждый файл по мере
	   добавления.

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

	   Примечание - GNU ar рассматривает команду qs как синоним для r -
	   замена уже существующих файлов в архиве и добавление новых в конец.

       r   Вставить файлы member... в архив (с заменой). Эта операция отличается
	   от q в том, что любые ранее существующие члены удаляются, если
	   их имена совпадают с добавляемыми.

	   Если один из файлов, указанных в member..., не существует, ar
	   отобразит сообщение об ошибке и оставит неизменёнными любые
	   существующие члены архива с этим именем.

	   По умолчанию, новые члены добавляются в конец файла; но вы можете
	   использовать один из модификаторов a, b или i, чтобы запросить
	   размещение относительно существующего члена.

	   Модификатор v в сочетании с этой операцией вызывает вывод строки
	   для каждого вставленного файла, вместе с одной из букв a или r,
	   чтобы указать, был ли файл добавлен (старый член не удалён) или
	   заменён.

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

       t   Отобразить таблицу, перечисляющую содержимое архива или тех файлов,
	   которые указаны в member... и присутствуют в архиве.
	   Нормально отображаются только имена членов, но если указан
	   модификатор O, то также отображаются соответствующие смещения
	   членов. Наконец, чтобы увидеть режимы (права доступа), временную
	   метку, владельца, группу и размер, следует включить модификатор v.

	   Если вы не укажете member, все файлы в архиве будут перечислены.

	   Если в архиве есть более одного файла с одинаковым именем (скажем,
	   fie) в архиве (скажем, b.a), ar t b.a fie перечислит только первый
	   экземпляр; чтобы увидеть все, вы должны запросить полный список -
	   в нашем примере, ar t b.a.

       x   Извлечь члены (с именами member) из архива. Вы можете использовать
	   модификатор v с этой операцией, чтобы ar перечислял каждое имя
	   по мере извлечения.

	   Если вы не укажете member, все файлы в архиве будут извлечены.

	   Файлы нельзя извлечь из тонкого архива, и есть ограничения на
	   извлечение из архивов, созданных с P: Пути не должны быть абсолютными,
	   не должны содержать "..", и любые поддиректории в путях должны
	   существовать. Если вы хотите избежать этих ограничений, используйте
	   опцию --output для указания выходной директории.

       Несколько модификаторов (mod) могут сразу следовать за ключом p, чтобы
       указать вариации поведения операции:

       a   Добавить новые файлы после существующего члена архива. Если вы используете
	   модификатор a, имя существующего члена архива должно быть
	   указано как аргумент relpos перед указанием архива.

       b   Добавить новые файлы перед существующим членом архива. Если вы используете
	   модификатор b, имя существующего члена архива должно быть
	   указано как аргумент relpos перед указанием архива. (то же, что и i).

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

       D   Работать в детерминированном режиме. При добавлении файлов и индекса
	   архива используйте ноль для UIDs, GIDs, временных меток и
	   последовательные режимы файлов для всех файлов. Когда эта опция
	   используется, если ar используется с одинаковыми опциями и
	   одинаковыми входными файлами, несколько запусков создадут одинаковые
	   выходные файлы независимо от владельцев, групп, режимов файлов
	   или временных меток входных файлов.

	   Если binutils был настроен с --enable-deterministic-archives,
	   то этот режим включён по умолчанию. Его можно отключить с помощью
	   модификатора U ниже.

       f   Обрезать имена в архиве. GNU ar обычно разрешает имена файлов любой
	   длины. Это приведёт к созданию архивов, которые не совместимы
	   с родной программой ar на некоторых системах. Если это вызывает
	   беспокойство, модификатор f можно использовать для обрезания имён
	   файлов при помещении их в архив.

       i   Вставить новые файлы перед существующим членом архива. Если вы используете
	   модификатор i, имя существующего члена архива должно быть
	   указано как аргумент relpos перед указанием архива. (то же, что и b).

       l   Указать зависимости этой библиотеки. Зависимости должны немедленно
	   следовать за этим символом опции, должны использовать тот же
	   синтаксис, что и командная строка линкера, и должны быть указаны
	   в одном аргументе. Т.е., если несколько элементов нужны, их нужно
	   заключить в кавычки, чтобы сформировать один аргумент командной
	   строки. Например: l "-L/usr/local/lib -lmydep1 -lmydep2"

       N   Использовать параметр count. Это используется, если в архиве несколько
	   записей с одинаковым именем. Извлечь или удалить экземпляр count
	   с данным именем из архива.

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

       O   Отобразить смещения членов внутри архива. Используйте вместе с опцией t.

       P   Использовать полный путь при сопоставлении или хранении имён в архиве.
	   Архивы, созданные с полными путями, не соответствуют POSIX,
	   и поэтому могут не работать с инструментами, кроме актуальных
	   инструментов GNU. Модификация таких архивов с помощью GNU ar без
	   использования P удалит полные пути, если архив не является тонким.
	   Обратите внимание, что P может быть полезен при добавлении файлов
	   в тонкий архив, поскольку r без P игнорирует путь при выборе,
	   какой элемент заменить. Таким образом

		   ar rcST archive.a subdir/file1 subdir/file2 file1

	   приведёт к замене первого "subdir/file1" на "file1" из текущей
	   директории. Добавление P предотвратит эту замену.

       s   Записать индекс файлов объектов в архив или обновить существующий,
	   даже если в архиве нет других изменений. Вы можете использовать
	   этот флаг модификатора как с любой операцией, так и отдельно.
	   Запуск ar s на архиве эквивалентен запуску ranlib на нём.

       S   Не генерировать таблицу символов архива. Это может ускорить создание
	   большой библиотеки в несколько шагов. Получившийся архив нельзя
	   использовать с линкером. Чтобы создать таблицу символов, вы должны
	   исключить модификатор S в последнем запуске ar или запустить ranlib
	   на архиве.

       T   Устаревший синоним для --thin. T не рекомендуется, потому что в многих
	   реализациях ar T имеет другое значение, как указано в X/Open
	   System Interface.

       u   Нормально ar r... вставляет все перечисленные файлы в архив. Если вы
	   хотите вставить только те из перечисленных файлов, которые новее
	   существующих членов с теми же именами, используйте этот модификатор.
	   Модификатор u разрешается только для операции r (замена). В
	   частности, комбинация qu не разрешается, поскольку проверка
	   временных меток устранит любое преимущество в скорости от операции q.

	   Примечание - если архив был создан в детерминированном режиме, напр.
	   с использованием модификатора D, то замена всегда произойдёт и
	   модификатор u будет неэффективным.

       U   Не работать в детерминированном режиме. Это обратное модификатору D,
	   выше: добавленные файлы и индекс архива получат фактические значения
	   UID, GID, временных меток и режимов файлов.

	   Это значение по умолчанию, если binutils был настроен без
	   --enable-deterministic-archives.

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

       V   Этот модификатор показывает номер версии ar.

       Программа ar также поддерживает некоторые опции командной строки, которые
       не являются ни модификаторами, ни действиями, но которые изменяют её
       поведение определённым образом:

       --help
	   Отобразить список поддерживаемых опций командной строки ar и выйти.

       --version
	   Отобразить информацию о версии ar и выйти.

       -X32_64
	   ar игнорирует начальную опцию, написанную как -X32_64, для
	   совместимости с AIX. Поведение, производимое этой опцией, является
	   значением по умолчанию для GNU ar. ar не поддерживает другие опции -X;
	   в частности, он не поддерживает -X32, которая является значением
	   по умолчанию для ar AIX.

       --plugin name
	   Опциональный ключ командной строки --plugin name заставляет ar
	   загрузить плагин с именем name, который добавляет поддержку
	   дополнительных форматов файлов, включая файлы объектов с
	   информацией оптимизации во время связывания.

	   Эта опция доступна только если инструментарий был построен с
	   включённой поддержкой плагинов.

	   Если --plugin не предоставлен, но поддержка плагинов включена,
	   то ar перебирает файлы в ${libdir}/bfd-plugins в алфавитном порядке,
	   и первый плагин, который заявляет о файле объекта, используется.

	   Пожалуйста, обратите внимание, что этот каталог поиска плагинов
	   не тот, который используется опцией ld -plugin. Чтобы заставить ar
	   использовать плагин линкера, его нужно скопировать в каталог
	   ${libdir}/bfd-plugins. Для компиляций на основе GCC плагин линкера
	   называется liblto_plugin.so.0.0.0. Для компиляций на основе Clang
	   он называется LLVMgold.so. Плагин GCC всегда обратно совместим
	   с более ранними версиями, так что достаточно скопировать
	   последнюю.

       --target target
	   Опциональный ключ командной строки --target bfdname указывает,
	   что члены архива находятся в формате кода объектов, отличном от
	   формата по умолчанию вашей системы. См.

       --output dirname
	   Опция --output может использоваться для указания пути к директории,
	   в которую должны извлекаться члены архива. Если эта опция не
	   указана, будет использована текущая директория.

	   Примечание - наличие этой опции подразумевает операцию извлечения x,
	   но опция всё равно должна быть включена в командной строке.

       --record-libdeps libdeps
	   Опция --record-libdeps идентична модификатору l, просто в длинной форме.

       --thin
	   Сделать указанный архив тонким архивом. Если он уже существует
	   и является обычным архивом, существующие члены должны быть
	   доступны в той же директории, что и archive.

       @file
	   Читать опции командной строки из файла. Прочитанные опции
	   вставляются на место оригинальной опции @file. Если файл не
	   существует или не может быть прочитан, опция будет обработана
	   буквально, без удаления.

	   Опции в файле разделяются пробелами. Пробельный символ может быть
	   включён в опцию путём заключения всей опции в одинарные или
	   двойные кавычки. Любые символы (включая обратный слэш) могут быть
	   включены путём добавления обратного слэша перед символом для
	   включения. Файл может сам содержать дополнительные опции @file;
	   любые такие опции будут обработаны рекурсивно.

SEE ALSO
       nm(1), ranlib(1) и записи Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или модифицировать этот документ
       в соответствии с условиями GNU Free Documentation License, Version 1.3 или
       любой более поздней версии, опубликованной Free Software Foundation; без
       Инвариантных Разделов, без Текстов на Обложке и без Текстов на Задней
       Обложке. Копия лицензии включена в раздел, озаглавленный "GNU Free
       Documentation License".



binutils-2.44			  2025-05-12				 AR(1)
AR(1)			     GNU Development Tools			 AR(1)



NAME
       ar - create, modify, and extract from archives

SYNOPSIS
       ar [-X32_64] [-]p[mod] [--plugin name] [--target bfdname] [--output
       dirname] [--record-libdeps libdeps] [--thin] [relpos] [count] archive
       [member...]

DESCRIPTION
       The GNU ar program creates, modifies, and extracts from archives.  An
       archive is a single file holding a collection of other files in a
       structure that makes it possible to retrieve the original individual
       files (called members of the archive).

       The original files' contents, mode (permissions), timestamp, owner, and
       group are preserved in the archive, and can be restored on extraction.

       GNU ar can maintain archives whose members have names of any length;
       however, depending on how ar is configured on your system, a limit on
       member-name length may be imposed for compatibility with archive
       formats maintained with other tools.  If it exists, the limit is often
       15 characters (typical of formats related to a.out) or 16 characters
       (typical of formats related to coff).

       ar is considered a binary utility because archives of this sort are
       most often used as libraries holding commonly needed subroutines.
       Since libraries often will depend on other libraries, ar can also
       record the dependencies of a library when the --record-libdeps option
       is specified.

       ar creates an index to the symbols defined in relocatable object
       modules in the archive when you specify the modifier s.	Once created,
       this index is updated in the archive whenever ar makes a change to its
       contents (save for the q update operation).  An archive with such an
       index speeds up linking to the library, and allows routines in the
       library to call each other without regard to their placement in the
       archive.

       You may use nm -s or nm --print-armap to list this index table.	If an
       archive lacks the table, another form of ar called ranlib can be used
       to add just the table.

       GNU ar can optionally create a thin archive, which contains a symbol
       index and references to the original copies of the member files of the
       archive.	 This is useful for building libraries for use within a local
       build tree, where the relocatable objects are expected to remain
       available, and copying the contents of each object would only waste
       time and space.

       An archive can either be thin or it can be normal.  It cannot be both
       at the same time.  Once an archive is created its format cannot be
       changed without first deleting it and then creating a new archive in
       its place.

       Thin archives are also flattened, so that adding one thin archive to
       another thin archive does not nest it, as would happen with a normal
       archive.	 Instead the elements of the first archive are added
       individually to the second archive.

       The paths to the elements of the archive are stored relative to the
       archive itself.

       GNU ar is designed to be compatible with two different facilities.  You
       can control its activity using command-line options, like the different
       varieties of ar on Unix systems; or, if you specify the single command-
       line option -M, you can control it with a script supplied via standard
       input, like the MRI "librarian" program.

OPTIONS
       GNU ar allows you to mix the operation code p and modifier flags mod in
       any order, within the first command-line argument.

       If you wish, you may begin the first command-line argument with a dash.

       The p keyletter specifies what operation to execute; it may be any of
       the following, but you must specify only one of them:

       d   Delete modules from the archive.  Specify the names of modules to
	   be deleted as member...; the archive is untouched if you specify no
	   files to delete.

	   If you specify the v modifier, ar lists each module as it is
	   deleted.

       m   Use this operation to move members in an archive.

	   The ordering of members in an archive can make a difference in how
	   programs are linked using the library, if a symbol is defined in
	   more than one member.

	   If no modifiers are used with "m", any members you name in the
	   member arguments are moved to the end of the archive; you can use
	   the a, b, or i modifiers to move them to a specified place instead.

       p   Print the specified members of the archive, to the standard output
	   file.  If the v modifier is specified, show the member name before
	   copying its contents to standard output.

	   If you specify no member arguments, all the files in the archive
	   are printed.

       q   Quick append; Historically, add the files member... to the end of
	   archive, without checking for replacement.

	   The modifiers a, b, and i do not affect this operation; new members
	   are always placed at the end of the archive.

	   The modifier v makes ar list each file as it is appended.

	   Since the point of this operation is speed, implementations of ar
	   have the option of not updating the archive's symbol table if one
	   exists.  Too many different systems however assume that symbol
	   tables are always up-to-date, so GNU ar will rebuild the table even
	   with a quick append.

	   Note - GNU ar treats the command qs as a synonym for r - replacing
	   already existing files in the archive and appending new ones at the
	   end.

       r   Insert the files member... into archive (with replacement). This
	   operation differs from q in that any previously existing members
	   are deleted if their names match those being added.

	   If one of the files named in member... does not exist, ar displays
	   an error message, and leaves undisturbed any existing members of
	   the archive matching that name.

	   By default, new members are added at the end of the file; but you
	   may use one of the modifiers a, b, or i to request placement
	   relative to some existing member.

	   The modifier v used with this operation elicits a line of output
	   for each file inserted, along with one of the letters a or r to
	   indicate whether the file was appended (no old member deleted) or
	   replaced.

       s   Add an index to the archive, or update it if it already exists.
	   Note this command is an exception to the rule that there can only
	   be one command letter, as it is possible to use it as either a
	   command or a modifier.  In either case it does the same thing.

       t   Display a table listing the contents of archive, or those of the
	   files listed in member... that are present in the archive.
	   Normally only the member name is shown, but if the modifier O is
	   specified, then the corresponding offset of the member is also
	   displayed.  Finally, in order to see the modes (permissions),
	   timestamp, owner, group, and size the v modifier should be
	   included.

	   If you do not specify a member, all files in the archive are
	   listed.

	   If there is more than one file with the same name (say, fie) in an
	   archive (say b.a), ar t b.a fie lists only the first instance; to
	   see them all, you must ask for a complete listing---in our example,
	   ar t b.a.

       x   Extract members (named member) from the archive.  You can use the v
	   modifier with this operation, to request that ar list each name as
	   it extracts it.

	   If you do not specify a member, all files in the archive are
	   extracted.

	   Files cannot be extracted from a thin archive, and there are
	   restrictions on extracting from archives created with P: The paths
	   must not be absolute, may not contain "..", and any subdirectories
	   in the paths must exist.  If it is desired to avoid these
	   restrictions then used the --output option to specify an output
	   directory.

       A number of modifiers (mod) may immediately follow the p keyletter, to
       specify variations on an operation's behavior:

       a   Add new files after an existing member of the archive.  If you use
	   the modifier a, the name of an existing archive member must be
	   present as the relpos argument, before the archive specification.

       b   Add new files before an existing member of the archive.  If you use
	   the modifier b, the name of an existing archive member must be
	   present as the relpos argument, before the archive specification.
	   (same as i).

       c   Create the archive.	The specified archive is always created if it
	   did not exist, when you request an update.  But a warning is issued
	   unless you specify in advance that you expect to create it, by
	   using this modifier.

       D   Operate in deterministic mode.  When adding files and the archive
	   index use zero for UIDs, GIDs, timestamps, and use consistent file
	   modes for all files.	 When this option is used, if ar is used with
	   identical options and identical input files, multiple runs will
	   create identical output files regardless of the input files'
	   owners, groups, file modes, or modification times.

	   If binutils was configured with --enable-deterministic-archives,
	   then this mode is on by default.  It can be disabled with the U
	   modifier, below.

       f   Truncate names in the archive.  GNU ar will normally permit file
	   names of any length.	 This will cause it to create archives which
	   are not compatible with the native ar program on some systems.  If
	   this is a concern, the f modifier may be used to truncate file
	   names when putting them in the archive.

       i   Insert new files before an existing member of the archive.  If you
	   use the modifier i, the name of an existing archive member must be
	   present as the relpos argument, before the archive specification.
	   (same as b).

       l   Specify dependencies of this library.  The dependencies must
	   immediately follow this option character, must use the same syntax
	   as the linker command line, and must be specified within a single
	   argument.  I.e., if multiple items are needed, they must be quoted
	   to form a single command line argument.  For example l
	   "-L/usr/local/lib -lmydep1 -lmydep2"

       N   Uses the count parameter.  This is used if there are multiple
	   entries in the archive with the same name.  Extract or delete
	   instance count of the given name from the archive.

       o   Preserve the original dates of members when extracting them.	 If
	   you do not specify this modifier, files extracted from the archive
	   are stamped with the time of extraction.

       O   Display member offsets inside the archive. Use together with the t
	   option.

       P   Use the full path name when matching or storing names in the
	   archive.  Archives created with full path names are not POSIX
	   compliant, and thus may not work with tools other than up to date
	   GNU tools.  Modifying such archives with GNU ar without using P
	   will remove the full path names unless the archive is a thin
	   archive.  Note that P may be useful when adding files to a thin
	   archive since r without P ignores the path when choosing which
	   element to replace.	Thus

		   ar rcST archive.a subdir/file1 subdir/file2 file1

	   will result in the first "subdir/file1" being replaced with "file1"
	   from the current directory.	Adding P will prevent this
	   replacement.

       s   Write an object-file index into the archive, or update an existing
	   one, even if no other change is made to the archive.	 You may use
	   this modifier flag either with any operation, or alone.  Running ar
	   s on an archive is equivalent to running ranlib on it.

       S   Do not generate an archive symbol table.  This can speed up
	   building a large library in several steps.  The resulting archive
	   can not be used with the linker.  In order to build a symbol table,
	   you must omit the S modifier on the last execution of ar, or you
	   must run ranlib on the archive.

       T   Deprecated alias for --thin.	 T is not recommended because in many
	   ar implementations T has a different meaning, as specified by
	   X/Open System Interface.

       u   Normally, ar r... inserts all files listed into the archive.	 If
	   you would like to insert only those of the files you list that are
	   newer than existing members of the same names, use this modifier.
	   The u modifier is allowed only for the operation r (replace).  In
	   particular, the combination qu is not allowed, since checking the
	   timestamps would lose any speed advantage from the operation q.

	   Note - if an archive has been created in a deterministic manner, eg
	   via the use of the D modifier, then replacement will always happen
	   and the u modifier will be ineffective.

       U   Do not operate in deterministic mode.  This is the inverse of the D
	   modifier, above: added files and the archive index will get their
	   actual UID, GID, timestamp, and file mode values.

	   This is the default unless binutils was configured with
	   --enable-deterministic-archives.

       v   This modifier requests the verbose version of an operation.	Many
	   operations display additional information, such as filenames
	   processed, when the modifier v is appended.

       V   This modifier shows the version number of ar.

       The ar program also supports some command-line options which are
       neither modifiers nor actions, but which do change its behaviour in
       specific ways:

       --help
	   Displays the list of command-line options supported by ar and then
	   exits.

       --version
	   Displays the version information of ar and then exits.

       -X32_64
	   ar ignores an initial option spelled -X32_64, for compatibility
	   with AIX.  The behaviour produced by this option is the default for
	   GNU ar.  ar does not support any of the other -X options; in
	   particular, it does not support -X32 which is the default for AIX
	   ar.

       --plugin name
	   The optional command-line switch --plugin name causes ar to load
	   the plugin called name which adds support for more file formats,
	   including object files with link-time optimization information.

	   This option is only available if the toolchain has been built with
	   plugin support enabled.

	   If --plugin is not provided, but plugin support has been enabled
	   then ar iterates over the files in ${libdir}/bfd-plugins in
	   alphabetic order and the first plugin that claims the object in
	   question is used.

	   Please note that this plugin search directory is not the one used
	   by ld's -plugin option.  In order to make ar use the	 linker plugin
	   it must be copied into the ${libdir}/bfd-plugins directory.	For
	   GCC based compilations the linker plugin is called
	   liblto_plugin.so.0.0.0.  For Clang based compilations it is called
	   LLVMgold.so.	 The GCC plugin is always backwards compatible with
	   earlier versions, so it is sufficient to just copy the newest one.

       --target target
	   The optional command-line switch --target bfdname specifies that
	   the archive members are in an object code format different from
	   your system's default format.  See

       --output dirname
	   The --output option can be used to specify a path to a directory
	   into which archive members should be extracted.  If this option is
	   not specified then the current directory will be used.

	   Note - although the presence of this option does imply a x
	   extraction operation that option must still be included on the
	   command line.

       --record-libdeps libdeps
	   The --record-libdeps option is identical to the l modifier, just
	   handled in long form.

       --thin
	   Make the specified archive a thin archive.  If it already exists
	   and is a regular archive, the existing members must be present in
	   the same directory as archive.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       nm(1), ranlib(1), and the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12				 AR(1)

GPROFNG-COLLECT-APP(1)		 Команды пользователя		GPROFNG-COLLECT-APP(1)



NAME
       gprofng-collect-app - Сбор данных производительности для целевого приложения

SYNOPSIS
       gprofng collect app [option(s)] target [target-option(s)]

DESCRIPTION
       Сбор данных производительности на целевой программе. Кроме выборки Program
       Counter (PC), поддерживаются аппаратные счетчики событий и различные опции
       трассировки.

       Например, эта команда собирает данные производительности для исполняемого
       файла с именем a.out и сохраняет собранные данные в каталоге эксперимента
       с именем example.er.

	       $ gprofng collect app -o example.er ./a.out

OPTIONS
       --version
	   Вывести номер версии и выйти.

       --help
	   Вывести информацию об использовании и выйти.

       -v, --verbose
	   По умолчанию режим подробного вывода отключен. Эта опция включает его.

       -p {off | on | lo[w] | hi[gh] | <value>}
	   Отключить (off) или включить (on) профилирование по часам с использованием
	   значения выборки по умолчанию, или включить профилирование по часам
	   неявно путем установки гранулярности выборки (lo[w], hi[gh] или
	   конкретное значение в мс). По умолчанию профилирование по часам включено (-p on).

       -h <ctr_def>[,<ctr_def>]
	   Включить профилирование аппаратных счетчиков событий и выбрать один или
	   несколько счетчиков. Чтобы увидеть поддерживаемые счетчики на этой системе,
	   используйте опцию -h без других аргументов.

       -o <exp_name>
	   Указать имя каталога эксперимента. Имя должно заканчиваться на .er и может
	   содержать абсолютный путь (например, /tmp/experiment.er). Существующий
	   эксперимент с таким же именем не будет перезаписан.

       -O <exp_name>
	   Это то же самое, что и опция -o, но в отличие от нее, она без предупреждения
	   перезаписывает существующий каталог эксперимента с таким же именем.

       -C <comment_string>
	   Добавить до 10 строк комментариев к эксперименту. Эти комментарии
	   появляются в разделе заметок заголовка и могут быть получены с помощью
	   команды gprofng display text с опцией -header.

       -j {on | off | <path>}
	   Управляет профилированием Java, когда цель - это виртуальная машина JVM.
	   Допустимые значения для этой опции:

	   on  Записывать данные профилирования для виртуальной машины JVM и
	       распознавать методы, скомпилированные виртуальной машиной Java HotSpot.
	       Также записывать стек вызовов Java.

	   off Не записывать данные профилирования Java. Данные профилирования для
	       стеков вызовов нативного кода все равно записываются.

	   <path>
	       Записывать данные профилирования для JVM и использовать JVM,
	       установленную в <path>.

	   По умолчанию -j on.

       -J <jvm-option(s)>
	   Указывает одну или несколько дополнительных опций, которые будут переданы
	   используемой JVM. Список jvm-option(s) должен быть заключен в кавычки,
	   если он содержит более одной опции. Элементы списка должны быть разделены
	   пробелами или табуляциями. Каждый элемент передается как отдельная опция
	   JVM. Обратите внимание, что эта опция подразумевает -j on.

       -t <duration>[m|s]
	   Собирать данные в течение указанной длительности. Длительность может быть
	   одним числом, за которым может следовать m для указания минут или s для
	   указания секунд (по умолчанию).

	   Длительность также может состоять из двух чисел, разделенных знаком минус
	   (-). Если дано одно число, данные собираются с начала запуска до указанного
	   времени. Если дано два числа, данные собираются с первого времени до
	   второго. В случае, если второе время равно нулю, данные собираются до конца
	   запуска. Если дано два ненулевых числа, первое должно быть меньше второго.

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

       -F {off|on|=regex}
	   Управляет тем, должны ли данные для дочерних процессов записываться.
	   Чтобы отключить/включить эту функцию, используйте off/on. Используйте =regex,
	   чтобы записывать данные для процессов, чье имя исполняемого файла
	   соответствует регулярному выражению. Используется только базовое имя
	   исполняемого файла, а не полный путь. Если используются пробелы или
	   символы, интерпретируемые оболочкой, заключите регулярное выражение
	   в одинарные кавычки. По умолчанию -F on.

       -a {off|on|ldobjects|src|usedldobjects|usedsrc}
	   Указать архивирование бинарных файлов и других файлов. Кроме отключения
	   этой функции (off) или включения архивирования всех loadobjects и
	   источников (on), другие опции поддерживают более точный выбор.

	   Все эти опции включают архивирование, но ключевое слово управляет тем,
	   что именно выбрано: все объекты загрузки (ldobjects), все исходные файлы
	   (src), объекты загрузки, связанные с программным счетчиком (usedldobjects),
	   или исходные файлы, связанные с программным счетчиком (usedsrc).
	   По умолчанию -a ldobjects.

       -S {off|on|<seconds>}
	   Отключить (off) или включить (on) периодический сбор выборок использования
	   ресурсов процесса. По умолчанию выборки происходят каждую секунду.
	   Используйте опцию <seconds>, чтобы изменить это. По умолчанию -S on.

       -y <signal>[,r]
	   Управляет записью данных с сигналом, названным <signal>, называемым
	   сигналом паузы-восстановления. Когда данный сигнал доставляется процессу,
	   переключается между состояниями паузы (данные не записываются) и
	   восстановления (данные записываются).

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

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

       -l <signal>
	   Указать сигнал, который вызовет выборку использования ресурсов процесса.
	   Когда названный <signal> доставляется процессу, записывается выборка.

	   Сигнал можно указать с полным именем, без начальных букв "SIG", или
	   с номером сигнала. Обратите внимание, что команда kill может быть
	   использована для доставки сигнала.

	   Если используются обе опции -l и -y, сигнал должен быть разным.

       -s <option>[,<API>]
	   Включить трассировку ожидания синхронизации, где <option> используется
	   для определения деталей трассировки (on, off, <threshold> или all).
	   API выбирается через настройку для <API>: n выбирает нативное/Pthreads,
	   j выбирает Java, а nj выбирает оба. По умолчанию -s off.

       -H {off|on}
	   Отключить (off) или включить (on) трассировку кучи. По умолчанию -H off.

       -i {off|on}
	   Отключить (off) или включить (on) трассировку ввода/вывод. По умолчанию -i off.

NOTES
       Любое исполняемое в формате ELF (Executable and Linkable Format) может
       использоваться для профилирования с gprofng. Если доступна информация
       отладки, gprofng может предоставить больше деталей, но это не обязательно.

SEE ALSO
       gprofng(1), gprofng-archive(1), gprofng-display-html(1),
       gprofng-display-src(1), gprofng-display-text(1)

       Руководство пользователя для gprofng поддерживается как руководство в формате
       Texinfo. Если программы info и gprofng правильно установлены, команда info
       gprofng должна предоставить доступ к этому документу.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ в
       соответствии с условиями Лицензии GNU Free Documentation License,
       версии 1.3 или любой более поздней версии, опубликованной Free Software
       Foundation; без Инвариантных Разделов, без Текстов Обложки и без Текстов
       Задней Обложки. Копия лицензии включена в раздел, озаглавленный "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02		GPROFNG-COLLECT-APP(1)
GPROFNG-COLLECT-APP(1)		 User Commands		GPROFNG-COLLECT-APP(1)



NAME
       gprofng-collect-app - Collect performance data for the target
       application

SYNOPSIS
       gprofng collect app [option(s)] target [target-option(s)]

DESCRIPTION
       Collect performance data on the target program.	In addition to Program
       Counter (PC) sampling, hardware event counters and various tracing
       options are supported.

       For example, this command collects performance data for an executable
       called a.out and stores the data collected in an experiment directory
       with the name example.er.

	       $ gprofng collect app -o example.er ./a.out

OPTIONS
       --version
	   Print the version number and exit.

       --help
	   Print usage information and exit.

       -v, --verbose
	   By default, verbose mode is disabled.  This option enables it.

       -p {off | on | lo[w] | hi[gh] | <value>}
	   Disable (off) or enable (on) clock profiling using a default
	   sampling granularity, or enable clock profiling implicitly by
	   setting the sampling granularity (lo[w], hi[gh], or a specific
	   value in ms).  By default, clock profiling is enabled (-p on).

       -h <ctr_def>[,<ctr_def>]
	   Enable hardware event counter profiling and select one or more
	   counter(s).	To see the supported counters on this system, use the
	   -h option without other arguments.

       -o <exp_name>
	   Specify the name for the experiment directory.  The name has to end
	   with .er and may contain an absolute path (e.g.
	   /tmp/experiment.er).	 An existing experiment with the same name
	   will not be overwritten.

       -O <exp_name>
	   This is the same as the -o option, but unlike this option, silently
	   overwrites an existing experiment directory with the same name.

       -C <comment_string>
	   Add up to 10 comment strings to the experiment.  These comments
	   appear in the notes section of the header and can be retrieved with
	   the gprofng display text command using the -header option.

       -j {on | off | <path>}
	   Controls Java profiling when the target is a JVM machine.  The
	   allowed values for this option are:

	   on  Record profiling data for the JVM machine, and recognize
	       methods compiled by the Java HotSpot virtual machine.  Also
	       record Java call stacks.

	   off Do not record Java profiling data.  Profiling data for native
	       call stacks is still recorded.

	   <path>
	       Records profiling data for the JVM, and use the JVM as
	       installed in <path>.

	   The default is -j on.

       -J <jvm-option(s)>
	   Specifies one or more additional options to be passed to the JVM
	   used.  The jvm-option(s) list must be enclosed in quotation marks
	   if it contains more than one option.	 The items in the list need to
	   be separated by spaces or tabs.  Each item is passed as a separate
	   option to the JVM.  Note that this option implies -j on.

       -t <duration>[m|s]
	   Collects data for the specified duration.  The duration can be a
	   single number, optionally followed by either m to specify minutes,
	   or s to specify seconds, which is the default.

	   The duration can also consists of two numbers separated by a minus
	   (-) sign.  If a single number is given, data is collected from the
	   start of the run until the given time.  If two numbers are given,
	   data is collected from the first time to the second.	 In case the
	   second time is zero, data is collected until the end of the run.
	   If two non-zero numbers are given, the first must be less than the
	   second.

       -n  This is used for a dry run.	Several run-time settings are
	   displayed, but the target is not executed and no performance data
	   is collected.

       -F {off|on|=regex}
	   Control whether descendant processes should have their data
	   recorded.  To disable/enable this feature, use off/on.  Use =regex
	   to record data on those processes whose executable name matches the
	   regular expression.	Only the basename of the executable is used,
	   not the full path.  If spaces or characters interpreted by the
	   shell are used, enclose the regex in single quotes.	The default is
	   -F on.

       -a {off|on|ldobjects|src|usedldobjects|usedsrc}
	   Specify archiving of binaries and other files.  In addition to
	   disable this feature (off), or enable archiving off all loadobjects
	   and sources (on), the other options support a more refined
	   selection.

	   All of these options enable archiving, but the keyword controls
	   what exactly is selected: all load objects (ldobjects), all source
	   files (src), the loadobjects asscoiated with a program counter
	   (usedldobjects), or the source files associated with a program
	   counter (usedsrc).  The default is -a ldobjects.

       -S {off|on|<seconds>}
	   Disable (off), or enable (on) periodic sampling of process-wide
	   resource utilization.  By default, sampling occurs every second.
	   Use the <seconds> option to change this.  The default is -S on.

       -y <signal>[,r]
	   Controls recording of data with the signal named <signal>, referred
	   to as the pause-resume signal.  Whenever the given signal is
	   delivered to the process, switch between paused (no data is
	   recorded) and resumed (data is recorded) states.

	   By default, data collection begins in the paused state.  If the
	   optional r is given, data collection begins in the resumed state
	   and data collection begins immediately.

	   SIGUSR1 or SIGUSR2 are recommended for this use, but any signal
	   that is not used by the target can be used.

       -l <signal>
	   Specify a signal that will trigger a sample of process-wide
	   resource utilization.  When the named <signal> is delivered to the
	   process, a sample is recorded.

	   The signal can be specified using the full name, without the
	   initial letters "SIG", or the signal number.	 Note that the kill
	   command can be used to deliver a signal.

	   If both the -l and -y options are used, the signal must be
	   different.

       -s <option>[,<API>]
	   Enable synchronization wait tracing, where <option> is used to
	   define the specifics of the tracing (on, off, <threshold>, or all).
	   The API is selected through the setting for <API>: n selects
	   native/Pthreads, j selects Java, and nj selects both.  The default
	   is -s off.

       -H {off|on}
	   Disable (off), or enable (on) heap tracing.	The default is -H off.

       -i {off|on}
	   Disable (off), or enable (on) I/O tracing.  The default is -i off.

NOTES
       Any executable in the ELF (Executable and Linkable Format) object
       format can be used for profiling with gprofng.  If debug information is
       available, gprofng can provide more details, but this is not a
       requirement.

SEE ALSO
       gprofng(1), gprofng-archive(1), gprofng-display-html(1),
       gprofng-display-src(1), gprofng-display-text(1)

       The user guide for gprofng is maintained as a Texinfo manual.  If the
       info and gprofng programs are correctly installed, the command info
       gprofng should give access to this document.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02		GPROFNG-COLLECT-APP(1)

READELF(1)		     Инструменты разработки GNU		    READELF(1)



NAME
       readelf - отображение информации об ELF-файлах

SYNOPSIS
       readelf [-a|--all]
	       [-h|--file-header]
	       [-l|--program-headers|--segments]
	       [-S|--section-headers|--sections]
	       [-g|--section-groups]
	       [-t|--section-details]
	       [-e|--headers]
	       [-s|--syms|--symbols]
	       [--dyn-syms|--lto-syms]
	       [--sym-base=[0|8|10|16]]
	       [--demangle=style|--no-demangle]
	       [--quiet]
	       [--recurse-limit|--no-recurse-limit]
	       [-U method|--unicode=method]
	       [-X|--extra-sym-info|--no-extra-sym-info]
	       [-n|--notes]
	       [-r|--relocs]
	       [-u|--unwind]
	       [-d|--dynamic]
	       [-V|--version-info]
	       [-A|--arch-specific]
	       [-D|--use-dynamic]
	       [-L|--lint|--enable-checks]
	       [-x <number or name>|--hex-dump=<number or name>]
	       [-p <number or name>|--string-dump=<number or name>]
	       [-R <number or name>|--relocated-dump=<number or name>]
	       [-j <number or name>|--display-section=<number or name>]
	       [-z|--decompress]
	       [-c|--archive-index]
	       [-w[lLiaprmfFsoORtUuTgAck]|
		--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links]]
	       [-wK|--debug-dump=follow-links]
	       [-wN|--debug-dump=no-follow-links]
	       [-wD|--debug-dump=use-debuginfod]
	       [-wE|--debug-dump=do-not-use-debuginfod]
	       [-P|--process-links]
	       [--dwarf-depth=n]
	       [--dwarf-start=n]
	       [--ctf=section]
	       [--ctf-parent=section]
	       [--ctf-symbols=section]
	       [--ctf-strings=section]
	       [--sframe=section]
	       [-I|--histogram]
	       [-v|--version]
	       [-W|--wide]
	       [-T|--silent-truncation]
	       [-H|--help]
	       elffile...

DESCRIPTION
       readelf отображает информацию об одном или нескольких объектах в формате ELF.
       Опции управляют тем, какую именно информацию отображать.

       elffile... являются объектами для анализа. Поддерживаются 32-разрядные и 64-разрядные ELF-файлы,
       а также архивы, содержащие ELF-файлы.

       Эта программа выполняет функцию, аналогичную objdump, но углубляется в детали и существует независимо от библиотеки BFD,
       поэтому, если в BFD есть ошибка, readelf на неё не повлияет.

OPTIONS
       Длинные и короткие формы опций, показанные здесь как альтернативы, эквивалентны. Должен быть указан хотя бы один вариант,
       кроме -v или -H.

       -a
       --all
	   Эквивалентно указанию --file-header, --program-headers,
	   --sections, --symbols, --relocs, --dynamic, --notes,
	   --version-info, --arch-specific, --unwind, --section-groups и
	   --histogram.

	   Примечание: эта опция сама по себе не включает --use-dynamic, поэтому, если эта опция не указана в командной строке,
	   динамические символы и динамические релокации не будут отображаться.

       -h
       --file-header
	   Отображает информацию, содержащуюся в заголовке ELF в начале файла.

       -l
       --program-headers
       --segments
	   Отображает информацию, содержащующуюся в заголовках сегментов файла,
	   если они есть.

       --quiet
	   Подавляет диагностику "no symbols".

       -S
       --sections
       --section-headers
	   Отображает информацию, содержащующуюся в заголовках разделов файла,
	   если они есть.

       -g
       --section-groups
	   Отображает информацию, содержащующуюся в группах разделов файла, если
	   они есть.

       -t
       --section-details
	   Отображает подробную информацию о разделах. Включает -S.

       -s
       --symbols
       --syms
	   Отображает записи в разделе таблицы символов файла, если он есть.
	   Если у символа есть информация о версии, она также отображается.
	   Строка версии отображается как суффикс к имени символа, предшествуемый символом @.
	   Например, foo@VER_1. Если версия является версией по умолчанию для разрешения
	   не versioning ссылок на символ, то она отображается как суффикс, предшествуемый двумя символами @.
	   Например, foo@@VER_2.

       --dyn-syms
	   Отображает записи в разделе динамической таблицы символов файла,
	   если он есть. Формат вывода такой же, как у опции --syms.

       --lto-syms
	   Отображает содержимое любых таблиц символов LTO в файле.

       --sym-base=[0|8|10|16]
	   Принудительно использует указанную базу для поля размера в таблице символов.
	   Любые нераспознанные опции будут рассматриваться как 0. --sym-base=0
	   представляет значение по умолчанию и прежнее поведение. Это выведет
	   размеры как десятичные для чисел меньше 100000. Для размеров 100000
	   и больше будет использоваться шестнадцатеричная нотация с префиксом 0x.
	   --sym-base=8 выдаст размеры символов в восьмеричной системе. --sym-base=10
	   всегда выдаст размеры символов в десятичной системе. --sym-base=16
	   всегда выдаст размеры символов в шестнадцатеричной системе с префиксом 0x.

       -C
       --demangle[=style]
	   Декодирует (деменглирует) низкоуровневые имена символов в пользовательские имена.
	   Это делает имена функций C++ читаемыми. Разные компиляторы имеют разные стили менглинга.
	   Опциональный аргумент стиля деменглинга может быть использован для выбора подходящего стиля для вашего
	   компилятора.

       --no-demangle
	   Не деменглировать низкоуровневые имена символов. Это значение по умолчанию.

       --recurse-limit
       --no-recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Включает или отключает ограничение на количество рекурсии при деменглинге строк.
	   Поскольку форматы именования позволяют бесконечный уровень рекурсии, возможно создать строки,
	   декодирование которых исчерпает пространство стека на хост-машине, вызвав ошибку памяти.
	   Ограничение пытается предотвратить это, ограничивая рекурсию до 2048 уровней вложенности.

	   Значение по умолчанию - включено, но отключение может быть необходимым для деменглинга действительно сложных имён.
	   Однако, если ограничение рекурсии отключено, возможно исчерпание стека, и любые отчёты об ошибках
	   такого события будут отклонены.

       -U [d|i|l|e|x|h]
       --unicode=[default|invalid|locale|escape|hex|highlight]
	   Управляет отображением не-ASCII символов в именах идентификаторов.
	   Значение по умолчанию (--unicode=locale или --unicode=default) - treats them as multibyte characters and display them in the current
	   locale.  All other versions of this option treat the bytes as UTF-8
	   encoded values and attempt to interpret them.  If they cannot be
	   interpreted or if the --unicode=invalid option is used then they
	   are displayed as a sequence of hex bytes, enclosed in curly
	   parentheses characters.

	   Using the --unicode=escape option will display the characters as
	   unicode escape sequences (\uxxxx).  Using the --unicode=hex will
	   display the characters as hex byte sequences enclosed between angle
	   brackets.

	   Using the --unicode=highlight will display the characters as
	   unicode escape sequences but it will also highlighted them in red,
	   assuming that colouring is supported by the output device.  The
	   colouring is intended to draw attention to the presence of unicode
	   sequences when they might not be expected.

       -X
       --extra-sym-info
	   When displaying details of symbols, include extra information not
	   normally presented.  Currently this just adds the name of the
	   section referenced by the symbol's index field, if there is one.
	   In the future more information may be displayed when this option is
	   enabled.

	   Enabling this option effectively enables the --wide option as well,
	   at least when displaying symbol information.

       --no-extra-sym-info
	   Disables the effect of the --extra-sym-info option.  This is the
	   default.

       -e
       --headers
	   Display all the headers in the file.  Equivalent to -h -l -S.

       -n
       --notes
	   Displays the contents of the NOTE segments and/or sections, if any.

       -r
       --relocs
	   Displays the contents of the file's relocation section, if it has
	   one.

       -u
       --unwind
	   Displays the contents of the file's unwind section, if it has one.
	   Only the unwind sections for IA64 ELF files, as well as ARM unwind
	   tables (".ARM.exidx" / ".ARM.extab") are currently supported.  If
	   support is not yet implemented for your architecture you could try
	   dumping the contents of the .eh_frames section using the
	   --debug-dump=frames or --debug-dump=frames-interp options.

       -d
       --dynamic
	   Displays the contents of the file's dynamic section, if it has one.

       -V
       --version-info
	   Displays the contents of the version sections in the file, it they
	   exist.

       -A
       --arch-specific
	   Displays architecture-specific information in the file, if there is
	   any.

       -D
       --use-dynamic
	   When displaying symbols, this option makes readelf use the symbol
	   hash tables in the file's dynamic section, rather than the symbol
	   table sections.

	   When displaying relocations, this option makes readelf display the
	   dynamic relocations rather than the static relocations.

       -L
       --lint
       --enable-checks
	   Displays warning messages about possible problems with the file(s)
	   being examined.  If used on its own then all of the contents of the
	   file(s) will be examined.  If used with one of the dumping options
	   then the warning messages will only be produced for the things
	   being displayed.

       -x <number or name>
       --hex-dump=<number or name>
	   Displays the contents of the indicated section as a hexadecimal
	   bytes.  A number identifies a particular section by index in the
	   section table; any other string identifies all sections with that
	   name in the object file.  This option can be repeated multiple
	   times on the command line in order to request multiple hex dumps.

       -R <number or name>
       --relocated-dump=<number or name>
	   Displays the contents of the indicated section as a hexadecimal
	   bytes.  A number identifies a particular section by index in the
	   section table; any other string identifies all sections with that
	   name in the object file.  The contents of the section will be
	   relocated before they are displayed.  This option can be repeated
	   multiple times on the command line in order to request multiple
	   relocated dumps.

       -p <number or name>
       --string-dump=<number or name>
	   Displays the contents of the indicated section as printable
	   strings.  A number identifies a particular section by index in the
	   section table; any other string identifies all sections with that
	   name in the object file.  This option can be repeated multiple
	   times on the command line in order to request multiple string
	   dumps.

       -j <number or name>
       --display-section
	   Displays the contents of the indicated section according to its
	   section header type.  Sections containing relocations will be
	   displayed as if the --relocations option had been used, sections
	   contains symbols will be displayed as if the --syms option had been
	   used and so on.

	   A number identifies a particular section by index in the section
	   table; any other string identifies all sections with that name in
	   the input file(s).

	   This option can be repeated multiple times on the command line in
	   order to request multiple section dumps.

       -z
       --decompress
	   Requests that the section(s) being dumped by x, R or p options are
	   decompressed before being displayed.  If the section(s) are not
	   compressed then they are displayed as is.

       -c
       --archive-index
	   Displays the file symbol index information contained in the header
	   part of binary archives.  Performs the same function as the t
	   command to ar, but without using the BFD library.

       -w[lLiaprmfFsoORtUuTgAckK]
       --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]
	   Displays the contents of the DWARF debug sections in the file, if
	   any are present.  Compressed debug sections are automatically
	   decompressed (temporarily) before they are displayed.  If one or
	   more of the optional letters or words follows the switch then only
	   those type(s) of data will be dumped.  The letters and words refer
	   to the following information:

	   "a"
	   "=abbrev"
	       Displays the contents of the .debug_abbrev section.

	   "A"
	   "=addr"
	       Displays the contents of the .debug_addr section.

	   "c"
	   "=cu_index"
	       Displays the contents of the .debug_cu_index and/or
	       .debug_tu_index sections.

	   "f"
	   "=frames"
	       Display the raw contents of a .debug_frame section.

	   "F"
	   "=frames-interp"
	       Display the interpreted contents of a .debug_frame section.

	   "g"
	   "=gdb_index"
	       Displays the contents of the .gdb_index and/or .debug_names
	       sections.

	   "i"
	   "=info"
	       Displays the contents of the .debug_info section.  Note: the
	       output from this option can also be restricted by the use of
	       the --dwarf-depth and --dwarf-start options.

	   "k"
	   "=links"
	       Displays the contents of the .gnu_debuglink, .gnu_debugaltlink
	       and .debug_sup sections, if any of them are present.  Also
	       displays any links to separate dwarf object files (dwo), if
	       they are specified by the DW_AT_GNU_dwo_name or DW_AT_dwo_name
	       attributes in the .debug_info section.

	   "K"
	   "=follow-links"
	       Display the contents of any selected debug sections that are
	       found in linked, separate debug info file(s).  This can result
	       in multiple versions of the same debug section being displayed
	       if it exists in more than one file.

	       In addition, when displaying DWARF attributes, if a form is
	       found that references the separate debug info file, then the
	       referenced contents will also be displayed.

	       Note - in some distributions this option is enabled by default.
	       It can be disabled via the N debug option.  The default can be
	       chosen when configuring the binutils via the
	       --enable-follow-debug-links=yes or
	       --enable-follow-debug-links=no options.	If these are not used
	       then the default is to enable the following of debug links.

	       Note - if support for the debuginfod protocol was enabled when
	       the binutils were built then this option will also include an
	       attempt to contact any debuginfod servers mentioned in the
	       DEBUGINFOD_URLS environment variable.  This could take some
	       time to resolve.  This behaviour can be disabled via the
	       =do-not-use-debuginfod debug option.

	   "N"
	   "=no-follow-links"
	       Disables the following of links to separate debug info files.

	   "D"
	   "=use-debuginfod"
	       Enables contacting debuginfod servers if there is a need to
	       follow debug links.  This is the default behaviour.

	   "E"
	   "=do-not-use-debuginfod"
	       Disables contacting debuginfod servers when there is a need to
	       follow debug links.

	   "l"
	   "=rawline"
	       Displays the contents of the .debug_line section in a raw
	       format.

	   "L"
	   "=decodedline"
	       Displays the interpreted contents of the .debug_line section.

	   "m"
	   "=macro"
	       Displays the contents of the .debug_macro and/or .debug_macinfo
	       sections.

	   "o"
	   "=loc"
	       Displays the contents of the .debug_loc and/or .debug_loclists
	       sections.

	   "O"
	   "=str-offsets"
	       Displays the contents of the .debug_str_offsets section.

	   "p"
	   "=pubnames"
	       Displays the contents of the .debug_pubnames and/or
	       .debug_gnu_pubnames sections.

	   "r"
	   "=aranges"
	       Displays the contents of the .debug_aranges section.

	   "R"
	   "=Ranges"
	       Displays the contents of the .debug_ranges and/or
	       .debug_rnglists sections.

	   "s"
	   "=str"
	       Displays the contents of the .debug_str, .debug_line_str and/or
	       .debug_str_offsets sections.

	   "t"
	   "=pubtype"
	       Displays the contents of the .debug_pubtypes and/or
	       .debug_gnu_pubtypes sections.

	   "T"
	   "=trace_aranges"
	       Displays the contents of the .trace_aranges section.

	   "u"
	   "=trace_abbrev"
	       Displays the contents of the .trace_abbrev section.

	   "U"
	   "=trace_info"
	       Displays the contents of the .trace_info section.

	   Note: displaying the contents of .debug_static_funcs,
	   .debug_static_vars and debug_weaknames sections is not currently
	   supported.

       --dwarf-depth=n
	   Limit the dump of the ".debug_info" section to n children.  This is
	   only useful with --debug-dump=info.	The default is to print all
	   DIEs; the special value 0 for n will also have this effect.

	   With a non-zero value for n, DIEs at or deeper than n levels will
	   not be printed.  The range for n is zero-based.

       --dwarf-start=n
	   Print only DIEs beginning with the DIE numbered n.  This is only
	   useful with --debug-dump=info.

	   If specified, this option will suppress printing of any header
	   information and all DIEs before the DIE numbered n.  Only siblings
	   and children of the specified DIE will be printed.

	   This can be used in conjunction with --dwarf-depth.

       -P
       --process-links
	   Display the contents of non-debug sections found in separate
	   debuginfo files that are linked to the main file.  This option
	   automatically implies the -wK option, and only sections requested
	   by other command line options will be displayed.

       --ctf[=section]
	   Display the contents of the specified CTF section.  CTF sections
	   themselves contain many subsections, all of which are displayed in
	   order.

	   By default, display the name of the section named .ctf, which is
	   the name emitted by ld.

       --ctf-parent=member
	   If the CTF section contains ambiguously-defined types, it will
	   consist of an archive of many CTF dictionaries, all inheriting from
	   one dictionary containing unambiguous types.  This member is by
	   default named .ctf, like the section containing it, but it is
	   possible to change this name using the
	   "ctf_link_set_memb_name_changer" function at link time.  When
	   looking at CTF archives that have been created by a linker that
	   uses the name changer to rename the parent archive member,
	   --ctf-parent can be used to specify the name used for the parent.

       --ctf-parent-section=section
	   This option lets you pick a completely different section for the
	   CTF parent dictionary containing unambiguous types than for the
	   child dictionaries that contain the ambiguous remainder.  The
	   linker does not emit ELF objects structured like this, but some
	   third-party linkers may.  It's also convenient to inspect CTF
	   written out as multiple raw files to compose them with objcopy,
	   which can put them in different ELF sections but not in different
	   members of a single CTF dict.

       --ctf-symbols=section
       --ctf-strings=section
	   Specify the name of another section from which the CTF file can
	   inherit strings and symbols.  By default, the ".symtab" and its
	   linked string table are used.

	   If either of --ctf-symbols or --ctf-strings is specified, the other
	   must be specified as well.

       -I
       --histogram
	   Display a histogram of bucket list lengths when displaying the
	   contents of the symbol tables.

       -v
       --version
	   Display the version number of readelf.

       -W
       --wide
	   Don't break output lines to fit into 80 columns. By default readelf
	   breaks section header and segment listing lines for 64-bit ELF
	   files, so that they fit into 80 columns. This option causes readelf
	   to print each section header resp. each segment one a single line,
	   which is far more readable on terminals wider than 80 columns.

       -T
       --silent-truncation
	   Normally when readelf is displaying a symbol name, and it has to
	   truncate the name to fit into an 80 column display, it will add a
	   suffix of "[...]" to the name.  This command line option disables
	   this behaviour, allowing 5 more characters of the name to be
	   displayed and restoring the old behaviour of readelf (prior to
	   release 2.35).

       -H
       --help
	   Display the command-line options understood by readelf.

       @file
	   Read command-line options from file.  The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.  A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       objdump(1), и записи Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    READELF(1)
READELF(1)		     GNU Development Tools		    READELF(1)



NAME
       readelf - display information about ELF files

SYNOPSIS
       readelf [-a|--all]
	       [-h|--file-header]
	       [-l|--program-headers|--segments]
	       [-S|--section-headers|--sections]
	       [-g|--section-groups]
	       [-t|--section-details]
	       [-e|--headers]
	       [-s|--syms|--symbols]
	       [--dyn-syms|--lto-syms]
	       [--sym-base=[0|8|10|16]]
	       [--demangle=style|--no-demangle]
	       [--quiet]
	       [--recurse-limit|--no-recurse-limit]
	       [-U method|--unicode=method]
	       [-X|--extra-sym-info|--no-extra-sym-info]
	       [-n|--notes]
	       [-r|--relocs]
	       [-u|--unwind]
	       [-d|--dynamic]
	       [-V|--version-info]
	       [-A|--arch-specific]
	       [-D|--use-dynamic]
	       [-L|--lint|--enable-checks]
	       [-x <number or name>|--hex-dump=<number or name>]
	       [-p <number or name>|--string-dump=<number or name>]
	       [-R <number or name>|--relocated-dump=<number or name>]
	       [-j <number or name>|--display-section=<number or name>]
	       [-z|--decompress]
	       [-c|--archive-index]
	       [-w[lLiaprmfFsoORtUuTgAck]|
		--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links]]
	       [-wK|--debug-dump=follow-links]
	       [-wN|--debug-dump=no-follow-links]
	       [-wD|--debug-dump=use-debuginfod]
	       [-wE|--debug-dump=do-not-use-debuginfod]
	       [-P|--process-links]
	       [--dwarf-depth=n]
	       [--dwarf-start=n]
	       [--ctf=section]
	       [--ctf-parent=section]
	       [--ctf-symbols=section]
	       [--ctf-strings=section]
	       [--sframe=section]
	       [-I|--histogram]
	       [-v|--version]
	       [-W|--wide]
	       [-T|--silent-truncation]
	       [-H|--help]
	       elffile...

DESCRIPTION
       readelf displays information about one or more ELF format object files.
       The options control what particular information to display.

       elffile... are the object files to be examined.	32-bit and 64-bit ELF
       files are supported, as are archives containing ELF files.

       This program performs a similar function to objdump but it goes into
       more detail and it exists independently of the BFD library, so if there
       is a bug in BFD then readelf will not be affected.

OPTIONS
       The long and short forms of options, shown here as alternatives, are
       equivalent.  At least one option besides -v or -H must be given.

       -a
       --all
	   Equivalent to specifying --file-header, --program-headers,
	   --sections, --symbols, --relocs, --dynamic, --notes,
	   --version-info, --arch-specific, --unwind, --section-groups and
	   --histogram.

	   Note - this option does not enable --use-dynamic itself, so if that
	   option is not present on the command line then dynamic symbols and
	   dynamic relocs will not be displayed.

       -h
       --file-header
	   Displays the information contained in the ELF header at the start
	   of the file.

       -l
       --program-headers
       --segments
	   Displays the information contained in the file's segment headers,
	   if it has any.

       --quiet
	   Suppress "no symbols" diagnostic.

       -S
       --sections
       --section-headers
	   Displays the information contained in the file's section headers,
	   if it has any.

       -g
       --section-groups
	   Displays the information contained in the file's section groups, if
	   it has any.

       -t
       --section-details
	   Displays the detailed section information. Implies -S.

       -s
       --symbols
       --syms
	   Displays the entries in symbol table section of the file, if it has
	   one.	 If a symbol has version information associated with it then
	   this is displayed as well.  The version string is displayed as a
	   suffix to the symbol name, preceded by an @ character.  For example
	   foo@VER_1.  If the version is the default version to be used when
	   resolving unversioned references to the symbol then it is displayed
	   as a suffix preceded by two @ characters.  For example foo@@VER_2.

       --dyn-syms
	   Displays the entries in dynamic symbol table section of the file,
	   if it has one.  The output format is the same as the format used by
	   the --syms option.

       --lto-syms
	   Displays the contents of any LTO symbol tables in the file.

       --sym-base=[0|8|10|16]
	   Forces the size field of the symbol table to use the given base.
	   Any unrecognized options will be treated as 0.  --sym-base=0
	   represents the default and legacy behaviour.	 This will output
	   sizes as decimal for numbers less than 100000.  For sizes 100000
	   and greater hexadecimal notation will be used with a 0x prefix.
	   --sym-base=8 will give the symbol sizes in octal.  --sym-base=10
	   will always give the symbol sizes in decimal.  --sym-base=16 will
	   always give the symbol sizes in hexadecimal with a 0x prefix.

       -C
       --demangle[=style]
	   Decode (demangle) low-level symbol names into user-level names.
	   This makes C++ function names readable.  Different compilers have
	   different mangling styles.  The optional demangling style argument
	   can be used to choose an appropriate demangling style for your
	   compiler.

       --no-demangle
	   Do not demangle low-level symbol names.  This is the default.

       --recurse-limit
       --no-recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Enables or disables a limit on the amount of recursion performed
	   whilst demangling strings.  Since the name mangling formats allow
	   for an infinite level of recursion it is possible to create strings
	   whose decoding will exhaust the amount of stack space available on
	   the host machine, triggering a memory fault.	 The limit tries to
	   prevent this from happening by restricting recursion to 2048 levels
	   of nesting.

	   The default is for this limit to be enabled, but disabling it may
	   be necessary in order to demangle truly complicated names.  Note
	   however that if the recursion limit is disabled then stack
	   exhaustion is possible and any bug reports about such an event will
	   be rejected.

       -U [d|i|l|e|x|h]
       --unicode=[default|invalid|locale|escape|hex|highlight]
	   Controls the display of non-ASCII characters in identifier names.
	   The default (--unicode=locale or --unicode=default) is to treat
	   them as multibyte characters and display them in the current
	   locale.  All other versions of this option treat the bytes as UTF-8
	   encoded values and attempt to interpret them.  If they cannot be
	   interpreted or if the --unicode=invalid option is used then they
	   are displayed as a sequence of hex bytes, encloses in curly
	   parethesis characters.

	   Using the --unicode=escape option will display the characters as as
	   unicode escape sequences (\uxxxx).  Using the --unicode=hex will
	   display the characters as hex byte sequences enclosed between angle
	   brackets.

	   Using the --unicode=highlight will display the characters as
	   unicode escape sequences but it will also highlighted them in red,
	   assuming that colouring is supported by the output device.  The
	   colouring is intended to draw attention to the presence of unicode
	   sequences when they might not be expected.

       -X
       --extra-sym-info
	   When displaying details of symbols, include extra information not
	   normally presented.	Currently this just adds the name of the
	   section referenced by the symbol's index field, if there is one.
	   In the future more information may be displayed when this option is
	   enabled.

	   Enabling this option effectively enables the --wide option as well,
	   at least when displaying symbol information.

       --no-extra-sym-info
	   Disables the effect of the --extra-sym-info option.	This is the
	   default.

       -e
       --headers
	   Display all the headers in the file.	 Equivalent to -h -l -S.

       -n
       --notes
	   Displays the contents of the NOTE segments and/or sections, if any.

       -r
       --relocs
	   Displays the contents of the file's relocation section, if it has
	   one.

       -u
       --unwind
	   Displays the contents of the file's unwind section, if it has one.
	   Only the unwind sections for IA64 ELF files, as well as ARM unwind
	   tables (".ARM.exidx" / ".ARM.extab") are currently supported.  If
	   support is not yet implemented for your architecture you could try
	   dumping the contents of the .eh_frames section using the
	   --debug-dump=frames or --debug-dump=frames-interp options.

       -d
       --dynamic
	   Displays the contents of the file's dynamic section, if it has one.

       -V
       --version-info
	   Displays the contents of the version sections in the file, it they
	   exist.

       -A
       --arch-specific
	   Displays architecture-specific information in the file, if there is
	   any.

       -D
       --use-dynamic
	   When displaying symbols, this option makes readelf use the symbol
	   hash tables in the file's dynamic section, rather than the symbol
	   table sections.

	   When displaying relocations, this option makes readelf display the
	   dynamic relocations rather than the static relocations.

       -L
       --lint
       --enable-checks
	   Displays warning messages about possible problems with the file(s)
	   being examined.  If used on its own then all of the contents of the
	   file(s) will be examined.  If used with one of the dumping options
	   then the warning messages will only be produced for the things
	   being displayed.

       -x <number or name>
       --hex-dump=<number or name>
	   Displays the contents of the indicated section as a hexadecimal
	   bytes.  A number identifies a particular section by index in the
	   section table; any other string identifies all sections with that
	   name in the object file.  This option can be repeated multiple
	   times on the command line in order to request multiple hex dumps.

       -R <number or name>
       --relocated-dump=<number or name>
	   Displays the contents of the indicated section as a hexadecimal
	   bytes.  A number identifies a particular section by index in the
	   section table; any other string identifies all sections with that
	   name in the object file.  The contents of the section will be
	   relocated before they are displayed.	 This option can be repeated
	   multiple times on the command line in order to request multiple
	   relocated dumps.

       -p <number or name>
       --string-dump=<number or name>
	   Displays the contents of the indicated section as printable
	   strings.  A number identifies a particular section by index in the
	   section table; any other string identifies all sections with that
	   name in the object file.  This option can be repeated multiple
	   times on the command line in order to request multiple string
	   dumps.

       -j <number or name>
       --display-section
	   Displays the contents of the indicated section according to its
	   section header type.	 Sections containing relocations will be
	   displayed as if the --relocations option had been used, sections
	   contains symbols will be displayed as if the --syms option had been
	   used and so on.

	   A number identifies a particular section by index in the section
	   table; any other string identifies all sections with that name in
	   the input file(s).

	   This option can be repeated multiple times on the command line in
	   order to request multiple section dumps.

       -z
       --decompress
	   Requests that the section(s) being dumped by x, R or p options are
	   decompressed before being displayed.	 If the section(s) are not
	   compressed then they are displayed as is.

       -c
       --archive-index
	   Displays the file symbol index information contained in the header
	   part of binary archives.  Performs the same function as the t
	   command to ar, but without using the BFD library.

       -w[lLiaprmfFsOoRtUuTgAckK]
       --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]
	   Displays the contents of the DWARF debug sections in the file, if
	   any are present.  Compressed debug sections are automatically
	   decompressed (temporarily) before they are displayed.  If one or
	   more of the optional letters or words follows the switch then only
	   those type(s) of data will be dumped.  The letters and words refer
	   to the following information:

	   "a"
	   "=abbrev"
	       Displays the contents of the .debug_abbrev section.

	   "A"
	   "=addr"
	       Displays the contents of the .debug_addr section.

	   "c"
	   "=cu_index"
	       Displays the contents of the .debug_cu_index and/or
	       .debug_tu_index sections.

	   "f"
	   "=frames"
	       Display the raw contents of a .debug_frame section.

	   "F"
	   "=frames-interp"
	       Display the interpreted contents of a .debug_frame section.

	   "g"
	   "=gdb_index"
	       Displays the contents of the .gdb_index and/or .debug_names
	       sections.

	   "i"
	   "=info"
	       Displays the contents of the .debug_info section.  Note: the
	       output from this option can also be restricted by the use of
	       the --dwarf-depth and --dwarf-start options.

	   "k"
	   "=links"
	       Displays the contents of the .gnu_debuglink, .gnu_debugaltlink
	       and .debug_sup sections, if any of them are present.  Also
	       displays any links to separate dwarf object files (dwo), if
	       they are specified by the DW_AT_GNU_dwo_name or DW_AT_dwo_name
	       attributes in the .debug_info section.

	   "K"
	   "=follow-links"
	       Display the contents of any selected debug sections that are
	       found in linked, separate debug info file(s).  This can result
	       in multiple versions of the same debug section being displayed
	       if it exists in more than one file.

	       In addition, when displaying DWARF attributes, if a form is
	       found that references the separate debug info file, then the
	       referenced contents will also be displayed.

	       Note - in some distributions this option is enabled by default.
	       It can be disabled via the N debug option.  The default can be
	       chosen when configuring the binutils via the
	       --enable-follow-debug-links=yes or
	       --enable-follow-debug-links=no options.	If these are not used
	       then the default is to enable the following of debug links.

	       Note - if support for the debuginfod protocol was enabled when
	       the binutils were built then this option will also include an
	       attempt to contact any debuginfod servers mentioned in the
	       DEBUGINFOD_URLS environment variable.  This could take some
	       time to resolve.	 This behaviour can be disabled via the
	       =do-not-use-debuginfod debug option.

	   "N"
	   "=no-follow-links"
	       Disables the following of links to separate debug info files.

	   "D"
	   "=use-debuginfod"
	       Enables contacting debuginfod servers if there is a need to
	       follow debug links.  This is the default behaviour.

	   "E"
	   "=do-not-use-debuginfod"
	       Disables contacting debuginfod servers when there is a need to
	       follow debug links.

	   "l"
	   "=rawline"
	       Displays the contents of the .debug_line section in a raw
	       format.

	   "L"
	   "=decodedline"
	       Displays the interpreted contents of the .debug_line section.

	   "m"
	   "=macro"
	       Displays the contents of the .debug_macro and/or .debug_macinfo
	       sections.

	   "o"
	   "=loc"
	       Displays the contents of the .debug_loc and/or .debug_loclists
	       sections.

	   "O"
	   "=str-offsets"
	       Displays the contents of the .debug_str_offsets section.

	   "p"
	   "=pubnames"
	       Displays the contents of the .debug_pubnames and/or
	       .debug_gnu_pubnames sections.

	   "r"
	   "=aranges"
	       Displays the contents of the .debug_aranges section.

	   "R"
	   "=Ranges"
	       Displays the contents of the .debug_ranges and/or
	       .debug_rnglists sections.

	   "s"
	   "=str"
	       Displays the contents of the .debug_str, .debug_line_str and/or
	       .debug_str_offsets sections.

	   "t"
	   "=pubtype"
	       Displays the contents of the .debug_pubtypes and/or
	       .debug_gnu_pubtypes sections.

	   "T"
	   "=trace_aranges"
	       Displays the contents of the .trace_aranges section.

	   "u"
	   "=trace_abbrev"
	       Displays the contents of the .trace_abbrev section.

	   "U"
	   "=trace_info"
	       Displays the contents of the .trace_info section.

	   Note: displaying the contents of .debug_static_funcs,
	   .debug_static_vars and debug_weaknames sections is not currently
	   supported.

       --dwarf-depth=n
	   Limit the dump of the ".debug_info" section to n children.  This is
	   only useful with --debug-dump=info.	The default is to print all
	   DIEs; the special value 0 for n will also have this effect.

	   With a non-zero value for n, DIEs at or deeper than n levels will
	   not be printed.  The range for n is zero-based.

       --dwarf-start=n
	   Print only DIEs beginning with the DIE numbered n.  This is only
	   useful with --debug-dump=info.

	   If specified, this option will suppress printing of any header
	   information and all DIEs before the DIE numbered n.	Only siblings
	   and children of the specified DIE will be printed.

	   This can be used in conjunction with --dwarf-depth.

       -P
       --process-links
	   Display the contents of non-debug sections found in separate
	   debuginfo files that are linked to the main file.  This option
	   automatically implies the -wK option, and only sections requested
	   by other command line options will be displayed.

       --ctf[=section]
	   Display the contents of the specified CTF section.  CTF sections
	   themselves contain many subsections, all of which are displayed in
	   order.

	   By default, display the name of the section named .ctf, which is
	   the name emitted by ld.

       --ctf-parent=member
	   If the CTF section contains ambiguously-defined types, it will
	   consist of an archive of many CTF dictionaries, all inheriting from
	   one dictionary containing unambiguous types.	 This member is by
	   default named .ctf, like the section containing it, but it is
	   possible to change this name using the
	   "ctf_link_set_memb_name_changer" function at link time.  When
	   looking at CTF archives that have been created by a linker that
	   uses the name changer to rename the parent archive member,
	   --ctf-parent can be used to specify the name used for the parent.

       --ctf-parent-section=section
	   This option lets you pick a completely different section for the
	   CTF parent dictionary containing unambiguous types than for the
	   child dictionaries that contain the ambiguous remainder.  The
	   linker does not emit ELF objects structured like this, but some
	   third-party linkers may.  It's also convenient to inspect CTF
	   written out as multiple raw files to compose them with objcopy,
	   which can put them in different ELF sections but not in different
	   members of a single CTF dict.

       --ctf-symbols=section
       --ctf-strings=section
	   Specify the name of another section from which the CTF file can
	   inherit strings and symbols.	 By default, the ".symtab" and its
	   linked string table are used.

	   If either of --ctf-symbols or --ctf-strings is specified, the other
	   must be specified as well.

       -I
       --histogram
	   Display a histogram of bucket list lengths when displaying the
	   contents of the symbol tables.

       -v
       --version
	   Display the version number of readelf.

       -W
       --wide
	   Don't break output lines to fit into 80 columns. By default readelf
	   breaks section header and segment listing lines for 64-bit ELF
	   files, so that they fit into 80 columns. This option causes readelf
	   to print each section header resp. each segment one a single line,
	   which is far more readable on terminals wider than 80 columns.

       -T
       --silent-truncation
	   Normally when readelf is displaying a symbol name, and it has to
	   truncate the name to fit into an 80 column display, it will add a
	   suffix of "[...]" to the name.  This command line option disables
	   this behaviour, allowing 5 more characters of the name to be
	   displayed and restoring the old behaviour of readelf (prior to
	   release 2.35).

       -H
       --help
	   Display the command-line options understood by readelf.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       objdump(1), and the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    READELF(1)

RANLIB(1)		     Инструменты разработки GNU		     RANLIB(1)



NAME
       ranlib - сгенерировать индекс для архива

SYNOPSIS
       ranlib [--plugin name] [-DhHvVt] archive

DESCRIPTION
       ranlib генерирует индекс содержимого архива и хранит его в архиве. Индекс перечисляет каждый символ, определяемый членом архива, который является релокуруемым объектным файлом.

       Вы можете использовать nm -s или nm --print-armap для вывода этого индекса.

       Архив с таким индексом ускоряет связывание с библиотекой и позволяет рутинам в библиотеке вызывать друг друга без учета их размещения в архиве.

       Программа GNU ranlib является другой формой GNU ar; запуск ranlib полностью эквивалентен выполнению ar -s.

OPTIONS
       -h
       -H
       --help
	   Показать информацию об использовании ranlib.

       -v
       -V
       --version
	   Показать номер версии ranlib.

       -D  Работать в детерминированном режиме.  Заголовок члена архива с картой символов будет показывать ноль для UID, GID и временной метки.  При использовании этой опции несколько запусков произведут одинаковые выходные файлы.

	   Если binutils был настроен с опцией --enable-deterministic-archives,
	   то этот режим включен по умолчанию.  Его можно отключить с помощью опции -U, описанной ниже.

       -t  Обновить временную метку карты символов архива.

       -U  Не работать в детерминированном режиме.  Это обратное к опции -D, описанной выше: индекс архива получит реальные значения UID, GID, временной метки и режима файла.

	   Если binutils был настроен без опции --enable-deterministic-archives,
	   то этот режим включен по умолчанию.

       @file
	   Прочитать параметры командной строки из файла.  Прочитанные параметры вставляются на место оригинальной опции @file.  Если файл не существует или не может быть прочитан, опция будет обработана буквально, без удаления.

	   Параметры в файле разделены пробелами.  Пробельный символ может быть включен в параметр, если весь параметр заключить в одинарные или двойные кавычки.  Любые символы (включая обратный слеш) могут быть включены путем добавления перед ними обратного слеша.  Файл может сам содержать дополнительные опции @file; такие опции будут обработаны рекурсивно.

SEE ALSO
       ar(1), nm(1) и записи Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			     RANLIB(1)
RANLIB(1)		     GNU Development Tools		     RANLIB(1)



NAME
       ranlib - generate an index to an archive

SYNOPSIS
       ranlib [--plugin name] [-DhHvVt] archive

DESCRIPTION
       ranlib generates an index to the contents of an archive and stores it
       in the archive.	The index lists each symbol defined by a member of an
       archive that is a relocatable object file.

       You may use nm -s or nm --print-armap to list this index.

       An archive with such an index speeds up linking to the library and
       allows routines in the library to call each other without regard to
       their placement in the archive.

       The GNU ranlib program is another form of GNU ar; running ranlib is
       completely equivalent to executing ar -s.

OPTIONS
       -h
       -H
       --help
	   Show usage information for ranlib.

       -v
       -V
       --version
	   Show the version number of ranlib.

       -D  Operate in deterministic mode.  The symbol map archive member's
	   header will show zero for the UID, GID, and timestamp.  When this
	   option is used, multiple runs will produce identical output files.

	   If binutils was configured with --enable-deterministic-archives,
	   then this mode is on by default.  It can be disabled with the -U
	   option, described below.

       -t  Update the timestamp of the symbol map of an archive.

       -U  Do not operate in deterministic mode.  This is the inverse of the
	   -D option, above: the archive index will get actual UID, GID,
	   timestamp, and file mode values.

	   If binutils was configured without --enable-deterministic-archives,
	   then this mode is on by default.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       ar(1), nm(1), and the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			     RANLIB(1)

GPROFNG(1)			 User Commands			    GPROFNG(1)



NAME
       gprofng - Инструмент профилирования приложений следующего поколения GNU

SYNOPSIS
       gprofng [option(s)] action [qualifier] [option(s)] target [options]

DESCRIPTION
       Это драйвер для набора инструментов gprofng для сбора и анализа данных производительности.

       Драйвер выполняет указанное действие. Примером действия является collect для сбора данных производительности. В зависимости от действия, может потребоваться квалификатор для дальнейшего определения команды. Последним элементом является цель, к которой применяется команда.

       Есть три места, где поддерживаются опции. Драйвер поддерживает опции. Их можно найти ниже. Действие, возможно, в сочетании с квалификатором, также поддерживает опции. Описание этих опций можно найти в man-странице для команды. Любые опции, необходимые для выполнения команды цели, должны следовать за именем цели.

       Например, для сбора данных производительности для приложения под названием a.out и хранения результатов в каталоге эксперимента mydata.er, может быть использована следующая команда:

	       $ gprofng collect app -o mydata.er a.out -t 2

       В этом примере, действие - collect, квалификатор - app, единственный аргумент команды - "-o mydata.er", а цель - a.out. Команда цели вызывается с опцией -t 2.

       Если gprofng выполняется без каких-либо дополнительных опций, действий или цели, выводится обзор использования.

OPTIONS
       --version
	   Вывести номер версии и выйти.

       --help
	   Вывести информацию об использовании и выйти.

ENVIRONMENT
       Поддерживаются следующие переменные окружения:

       GPROFNG_MAX_CALL_STACK_DEPTH
	   Установить глубину стека вызовов (по умолчанию 256).

       GPROFNG_USE_JAVA_OPTIONS
	   Может быть установлено при профилировании приложения C/C++, которое использует dlopen() для выполнения кода Java.

       GPROFNG_ALLOW_CORE_DUMP
	   Установить эту переменную, чтобы разрешить генерацию файла core; в противном случае создаётся отчёт об ошибке в /tmp.

       GPROFNG_ARCHIVE
	   Использовать эту переменную для определения настроек автоматического архивирования при завершении записи эксперимента.

       GPROFNG_ARCHIVE_COMMON_DIR
	   Установить эту переменную на расположение общего архива.

       GPROFNG_JAVA_MAX_CALL_STACK_DEPTH
	   Установить глубину стека вызовов Java; по умолчанию 256; установить в 0, чтобы отключить захват стеков вызовов.

       GPROFNG_JAVA_NATIVE_MAX_CALL_STACK_DEPTH
	   Установить глубину стека вызовов нативных Java; по умолчанию 256; установить в 0, чтобы отключить захват стеков вызовов (стековые вызовы JNI и ассемблера не захватываются).

       GPROFNG_SYSCONFDIR
	   Установить путь к файлу конфигурации gprofng.rc. По умолчанию этот файл размещается в подкаталоге etc директории установки binutils. В случае использования RPM для установки, этот файл находится в директории /etc.

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

	   В противном случае, инструменты gprofng display text, gprofng display src и gprofng archive не смогут найти этот файл.

NOTES
       Драйвер gprofng поддерживает следующие команды.

       Сбор данных производительности:

       "gprofng collect app"
	   Собрать данные производительности приложения.

       Отображение результатов производительности:

       "gprofng display text"
	   Отобразить данные производительности в формате ASCII.

       "gprofng display html"
	   Сгенерировать HTML-файл из одного или нескольких экспериментов.

       "gprofng display gui"
	   Запустить графический интерфейс. Обратите внимание, что этот инструмент не доступен по умолчанию и нуждается в отдельной установке.

       Разные команды:

       "gprofng display src"
	   Отобразить исходный код или дизассемблированный код с аннотациями компилятора.

       "gprofng archive"
	   Включить бинарники и исходный код в каталог эксперимента.

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

       Графический интерфейс gprofng - это необязательный инструмент, который предоставляет графический интерфейс для "gprofng". Он простой в использовании и поддерживает множество видов данных производительности. Для тех, кто интересуется этим GUI, мы рекомендуем поискать "gprofng-gui", как получить, установить и использовать его.

SEE ALSO
       gprofng-archive(1), gprofng-collect-app(1), gprofng-display-html(1),
       gprofng-display-src(1), gprofng-display-text(1)

       Каждая команда gprofng также поддерживает опцию --help. Это перечисляет опции и краткое описание для каждой опции.

       Например, это отобразит опции, поддерживаемые командой gprofng collect app:

	       $ gprofng collect app --help

       Руководство пользователя для gprofng поддерживается как руководство Texinfo. Если программы info и gprofng правильно установлены, команда info gprofng должна предоставить доступ к этому документу.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или модифицировать этот документ на условиях Лицензии GNU Free Documentation License, версии 1.3 или любой более поздней версии, опубликованной Free Software Foundation; без Инвариантных Разделов, без Текстов на Обложке и без Текстов на Задней Обложке. Копия лицензии включена в раздел, озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-02-02			    GPROFNG(1)
GPROFNG(1)			 User Commands			    GPROFNG(1)



NAME
       gprofng - The next generation GNU application profiling tool

SYNOPSIS
       gprofng [option(s)] action [qualifier] [option(s)] target [options]

DESCRIPTION
       This is the driver for the gprofng tools suite to gather and analyze
       performance data.

       The driver executes the action specified.  An example of an action is
       collect to collect performance data.  Depending on the action, a
       qualifier may be needed to further define the command.  The last item
       is the target that the command applies to.

       There are three places where options are supported.  The driver
       supports options.  These can be found below.  The action, possibly in
       combination with the qualifier also supports options.  A description of
       these can be found in the man page for the command.  Any options needed
       to execute the target command should follow the target name.

       For example, to collect performance data for an application called
       a.out and store the results in experiment directory mydata.er, the
       following command may be used:

	       $ gprofng collect app -o mydata.er a.out -t 2

       In this example, the action is collect, the qualifier is app, the
       single argument to the command is "-o mydata.er" and the target is
       a.out.  The target command is invoked with the -t 2 option.

       If gprofng is executed without any additional option, action, or
       target, a usage overview is printed.

OPTIONS
       --version
	   Print the version number and exit.

       --help
	   Print usage information and exit.

ENVIRONMENT
       The following environment variables are supported:

       GPROFNG_MAX_CALL_STACK_DEPTH
	   Set the depth of the call stack (default is 256).

       GPROFNG_USE_JAVA_OPTIONS
	   May be set when profiling a C/C++ application that uses dlopen() to
	   execute Java code.

       GPROFNG_ALLOW_CORE_DUMP
	   Set this variable to allow a core file to be generated; otherwise
	   an error report is created on /tmp.

       GPROFNG_ARCHIVE
	   Use this variable to define the settings for automatic archiving
	   upon experiment recording completion.

       GPROFNG_ARCHIVE_COMMON_DIR
	   Set this variable to the location of the common archive.

       GPROFNG_JAVA_MAX_CALL_STACK_DEPTH
	   Set the depth of the Java call stack; the default is 256; set to 0
	   to disable capturing of call stacks.

       GPROFNG_JAVA_NATIVE_MAX_CALL_STACK_DEPTH
	   Set the depth of the Java native call stack; the default is 256;
	   set to 0 to disable capturing of call stacks (JNI and assembly call
	   stacks are not captured).

       GPROFNG_SYSCONFDIR
	   Set the path to the gprofng.rc configuration file.  By default,
	   this file is placed in the etc subdirectory of the binutils
	   installation directory.  In case an RPM has been used for the
	   installation, this file is in directory /etc.

	   When building and installing from the source, the user can set the
	   path to this configuration file to a non-default location.  If this
	   is the case, the user may set the "GPROFNG_SYSCONFDIR" environment
	   variable to point to this location.

	   Otherwise, the gprofng display text, gprofng display src, and
	   gprofng archive tools cannot find this file.

NOTES
       The gprofng driver supports the following commands.

       Collect performance data:

       "gprofng collect app"
	   Collect application performance data.

       Display the performance results:

       "gprofng display text"
	   Display the performance data in ASCII format.

       "gprofng display html"
	   Generate an HTML file from one or more experiments.

       "gprofng display gui"
	   Start the GUI.  Note that this tool is not available by default and
	   needs to be installed seperately.

       Miscellaneous commands:

       "gprofng display src"
	   Display source or disassembly with compiler annotations.

       "gprofng archive"
	   Include binaries and source code in an experiment directory.

       It is also possible to invoke the lower level commands directly, but
       since these are subject to change, in particular the options, we
       recommend to use the driver.

       The gprofng GUI is an optional tool that provides a graphical interface
       for "gprofng".  It is easy to use and supports many views into the
       performance data.  For those interested in this GUI, we recommend to
       search for "gprofng-gui" how to obtain, install and use it.

SEE ALSO
       gprofng-archive(1), gprofng-collect-app(1), gprofng-display-html(1),
       gprofng-display-src(1), gprofng-display-text(1)

       Each gprofng command also supports the --help option.  This lists the
       options and a short description for each option.

       For example this displays the options supported on the gprofng collect
       app command:

	       $ gprofng collect app --help

       The user guide for gprofng is maintained as a Texinfo manual.  If the
       info and gprofng programs are correctly installed, the command info
       gprofng should give access to this document.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02			    GPROFNG(1)

STRINGS(1)		     Инструменты разработки GNU		    STRINGS(1)



NAME
       strings - выводит последовательности печатаемых символов в файлах

SYNOPSIS
       strings [-afovV] [-min-len]
	       [-n min-len] [--bytes=min-len]
	       [-t radix] [--radix=radix]
	       [-e encoding] [--encoding=encoding]
	       [-U method] [--unicode=method]
	       [-] [--all] [--print-file-name]
	       [-T bfdname] [--target=bfdname]
	       [-w] [--include-all-whitespace]
	       [-s] [--output-separator sep_string]
	       [--help] [--version] file...

DESCRIPTION
       Для каждого указанного файла GNU strings выводит последовательности
       печатаемых символов, которые имеют длину не менее 4 символов (или
       указанное число с помощью опций ниже) и за которыми следует непечатаемый
       символ.

       В зависимости от конфигурации программы strings по умолчанию она может
       выводить все найденные последовательности печатаемых символов в каждом
       файле или только те, которые находятся в загружаемых, инициализированных
       разделах данных. Если тип файла не распознаётся или strings читает из
       stdin, то она всегда выводит все найденные последовательности
       печатаемых символов.

       Для обеспечения обратной совместимости любой файл, указанный после
       командной строки с опцией "-", будет сканироваться полностью,
       независимо от наличия опции -d.

       strings в основном полезна для определения содержимого нефайловых
       текстовых файлов.

OPTIONS
       -a
       --all
       -   Просканировать весь файл, независимо от того, какие разделы он
	   содержит или загружаются ли эти разделы и инициализированы. Обычно
	   это поведение по умолчанию, но strings можно настроить так, чтобы
	   по умолчанию использовалась опция -d.

	   Опция - зависит от позиции и заставляет strings выполнять полное
	   сканирование любого файла, упомянутого после - в командной строке,
	   даже если указана опция -d.

       -d
       --data
	   Выводить строки только из инициализированных, загружаемых разделов
	   данных в файле. Это может уменьшить количество мусора в выводе, но
	   также подвергает программу strings возможным уязвимостям в
	   библиотеке BFD, используемой для сканирования и загрузки разделов.
	   Strings можно настроить так, чтобы эта опция была поведением по
	   умолчанию. В таких случаях опция -a может быть использована для
	   избежания использования библиотеки BFD и вместо этого вывести все
	   найденные строки в файле.

       -f
       --print-file-name
	   Выводить имя файла перед каждой строкой.

       --help
	   Вывести сводку использования программы на стандартный вывод и выйти.

       -min-len
       -n min-len
       --bytes=min-len
	   Выводить последовательности отображаемых символов, которые имеют
	   длину не менее min-len символов. Если не указано, используется
	   значение по умолчанию в 4 символа. Разница между отображаемыми и
	   неотображаемыми символами зависит от настроек опций -e и -U.
	   Последовательности всегда завершаются управляющими символами, такими
	   как перевод строки и возврат каретки, но не символом табуляции.

       -o  Как -t o. В некоторых других версиях strings опция -o действует как
	   -t d. Поскольку мы не можем быть совместимыми с обоими вариантами,
	   мы просто выбрали один.

       -t radix
       --radix=radix
	   Выводить смещение в файле перед каждой строкой. Один символ в
	   аргументе определяет систему счисления смещения — o для восьмеричной,
	   x для шестнадцатеричной или d для десятичной.

       -e encoding
       --encoding=encoding
	   Выбрать кодировку символов для строк, которые нужно найти.
	   Возможные значения для encoding: s = одиночные 7-битовые байты
	   (по умолчанию), S = одиночные 8-битовые байты, b = 16-битовые
	   bigendian, l = 16-битовые littleendian, B = 32-битовые bigendian,
	   L = 32-битовые littleendian. Полезно для поиска строк с широкими
	   символами. (l и b применяются, например, к кодировкам Unicode
	   UTF-16/UCS-2).

       -U [d|i|l|e|x|h]
       --unicode=[default|invalid|locale|escape|hex|highlight]
	   Управляет отображением многобайтовых символов, закодированных в
	   UTF-8, в строках. Значение по умолчанию (--unicode=default) — не
	   давать им специального обращения и полагаться на настройку опции
	   --encoding. Другие значения этой опции автоматически включают
	   --encoding=S.

	   Опция --unicode=invalid рассматривает их как неграфические символы
	   и, следовательно, не часть допустимой строки. Все остальные опции
	   рассматривают их как допустимые символы строк.

	   Опция --unicode=locale отображает их в текущей локали, которая может
	   или не может поддерживать кодировку UTF-8. Опция --unicode=hex
	   отображает их как последовательности шестнадцатеричных байтов в
	   угловых скобках <>. Опция --unicode=escape отображает их как
	   последовательности экранирования (\uxxxx), а опция
	   --unicode=highlight отображает их как последовательности
	   экранирования, выделенные красным цветом (если это поддерживается
	   устройством вывода). Цветовое выделение предназначено для привлечения
	   внимания к наличию последовательностей Unicode, где они могут не
	   ожидаться.

       -T bfdname
       --target=bfdname
	   Указать формат объектного кода, отличный от формата по умолчанию
	   вашей системы.

       -v
       -V
       --version
	   Вывести номер версии программы на стандартный вывод и выйти.

       -w
       --include-all-whitespace
	   По умолчанию символы табуляции и пробела включаются в отображаемые
	   строки, но другие символы пробела, такие как переводы строки и
	   возвраты каретки, не включаются. Опция -w изменяет это так, чтобы
	   все символы пробела считались частью строки.

       -s
       --output-separator
	   По умолчанию строки вывода разделяются новой строкой. Эта опция
	   позволяет указать любую строку для использования в качестве
	   разделителя записей вывода. Полезно с --include-all-whitespace, где
	   строки могут содержать переводы строк внутри.

       @file
	   Читать опции командной строки из файла. Прочитанные опции
	   вставляются на место оригинальной опции @file. Если файл не существует
	   или не может быть прочитан, опция будет обработана буквально, без
	   удаления.

	   Опции в файле разделяются пробелами. Символ пробела можно включить
	   в опцию, окружив всю опцию одиночными или двойными кавычками. Любые
	   символы (включая обратную косую черту) можно включить, предваряя
	   символ, который нужно включить, обратной косой чертой. Файл может
	   сам содержать дополнительные опции @file; такие опции будут
	   обработаны рекурсивно.

SEE ALSO
       ar(1), nm(1), objdump(1), ranlib(1), readelf(1) и разделы Info для
       binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ
       на условиях Лицензии GNU Free Documentation License, версии 1.3 или
       любой более поздней версии, опубликованной Free Software Foundation;
       без Инвариантных Разделов, без Текстов на Обложке и без Текстов на
       Задней Обложке. Копия лицензии включена в раздел, озаглавленный "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    STRINGS(1)
STRINGS(1)		     GNU Development Tools		    STRINGS(1)



NAME
       strings - print the sequences of printable characters in files

SYNOPSIS
       strings [-afovV] [-min-len]
	       [-n min-len] [--bytes=min-len]
	       [-t radix] [--radix=radix]
	       [-e encoding] [--encoding=encoding]
	       [-U method] [--unicode=method]
	       [-] [--all] [--print-file-name]
	       [-T bfdname] [--target=bfdname]
	       [-w] [--include-all-whitespace]
	       [-s] [--output-separator sep_string]
	       [--help] [--version] file...

DESCRIPTION
       For each file given, GNU strings prints the printable character
       sequences that are at least 4 characters long (or the number given with
       the options below) and are followed by an unprintable character.

       Depending upon how the strings program was configured it will default
       to either displaying all the printable sequences that it can find in
       each file, or only those sequences that are in loadable, initialized
       data sections.  If the file type is unrecognizable, or if strings is
       reading from stdin then it will always display all of the printable
       sequences that it can find.

       For backwards compatibility any file that occurs after a command-line
       option of just - will also be scanned in full, regardless of the
       presence of any -d option.

       strings is mainly useful for determining the contents of non-text
       files.

OPTIONS
       -a
       --all
       -   Scan the whole file, regardless of what sections it contains or
	   whether those sections are loaded or initialized.  Normally this is
	   the default behaviour, but strings can be configured so that the -d
	   is the default instead.

	   The - option is position dependent and forces strings to perform
	   full scans of any file that is mentioned after the - on the command
	   line, even if the -d option has been specified.

       -d
       --data
	   Only print strings from initialized, loaded data sections in the
	   file.  This may reduce the amount of garbage in the output, but it
	   also exposes the strings program to any security flaws that may be
	   present in the BFD library used to scan and load sections.  Strings
	   can be configured so that this option is the default behaviour.  In
	   such cases the -a option can be used to avoid using the BFD library
	   and instead just print all of the strings found in the file.

       -f
       --print-file-name
	   Print the name of the file before each string.

       --help
	   Print a summary of the program usage on the standard output and
	   exit.

       -min-len
       -n min-len
       --bytes=min-len
	   Print sequences of displayable characters that are at least min-len
	   characters long.  If not specified a default minimum length of 4 is
	   used.  The distinction between displayable and non-displayable
	   characters depends upon the setting of the -e and -U options.
	   Sequences are always terminated at control characters such as new-
	   line and carriage-return, but not the tab character.

       -o  Like -t o.  Some other versions of strings have -o act like -t d
	   instead.  Since we can not be compatible with both ways, we simply
	   chose one.

       -t radix
       --radix=radix
	   Print the offset within the file before each string.	 The single
	   character argument specifies the radix of the offset---o for octal,
	   x for hexadecimal, or d for decimal.

       -e encoding
       --encoding=encoding
	   Select the character encoding of the strings that are to be found.
	   Possible values for encoding are: s = single-7-bit-byte characters
	   (default), S = single-8-bit-byte characters, b = 16-bit bigendian,
	   l = 16-bit littleendian, B = 32-bit bigendian, L = 32-bit
	   littleendian.  Useful for finding wide character strings. (l and b
	   apply to, for example, Unicode UTF-16/UCS-2 encodings).

       -U [d|i|l|e|x|h]
       --unicode=[default|invalid|locale|escape|hex|highlight]
	   Controls the display of UTF-8 encoded multibyte characters in
	   strings.  The default (--unicode=default) is to give them no
	   special treatment, and instead rely upon the setting of the
	   --encoding option.  The other values for this option automatically
	   enable --encoding=S.

	   The --unicode=invalid option treats them as non-graphic characters
	   and hence not part of a valid string.  All the remaining options
	   treat them as valid string characters.

	   The --unicode=locale option displays them in the current locale,
	   which may or may not support UTF-8 encoding.	 The --unicode=hex
	   option displays them as hex byte sequences enclosed between <>
	   characters.	The --unicode=escape option displays them as escape
	   sequences (\uxxxx) and the --unicode=highlight option displays them
	   as escape sequences highlighted in red (if supported by the output
	   device).  The colouring is intended to draw attention to the
	   presence of unicode sequences where they might not be expected.

       -T bfdname
       --target=bfdname
	   Specify an object code format other than your system's default
	   format.

       -v
       -V
       --version
	   Print the program version number on the standard output and exit.

       -w
       --include-all-whitespace
	   By default tab and space characters are included in the strings
	   that are displayed, but other whitespace characters, such a
	   newlines and carriage returns, are not.  The -w option changes this
	   so that all whitespace characters are considered to be part of a
	   string.

       -s
       --output-separator
	   By default, output strings are delimited by a new-line. This option
	   allows you to supply any string to be used as the output record
	   separator.  Useful with --include-all-whitespace where strings may
	   contain new-lines internally.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       ar(1), nm(1), objdump(1), ranlib(1), readelf(1) and the Info entries
       for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    STRINGS(1)

NM(1)			     GNU Development Tools			 NM(1)



NAME
       nm - вывести список символов из объектных файлов

SYNOPSIS
       nm [-A|-o|--print-file-name]
	  [-a|--debug-syms]
	  [-B|--format=bsd]
	  [-C|--demangle[=style]]
	  [-D|--dynamic]
	  [-fformat|--format=format]
	  [-g|--extern-only]
	  [-h|--help]
	  [--ifunc-chars=CHARS]
	  [-j|--format=just-symbols]
	  [-l|--line-numbers] [--inlines]
	  [-n|-v|--numeric-sort]
	  [-P|--portability]
	  [-p|--no-sort]
	  [-r|--reverse-sort]
	  [-S|--print-size]
	  [-s|--print-armap]
	  [-t radix|--radix=radix]
	  [-u|--undefined-only]
	  [-U|--defined-only]
	  [-V|--version]
	  [-W|--no-weak]
	  [-X 32_64]
	  [--no-demangle]
	  [--no-recurse-limit|--recurse-limit]
	  [--plugin name]
	  [--size-sort]
	  [--special-syms]
	  [--synthetic]
	  [--target=bfdname]
	  [--unicode=method]
	  [--with-symbol-versions]
	  [--without-symbol-versions]
	  [objfile...]

DESCRIPTION
       GNU nm выводит список символов из объектных файлов objfile.... Если объектные файлы не указаны в аргументах, nm предполагает файл a.out.

       Для каждого символа nm показывает:

       •   Значение символа в системе счисления, выбранной опциями (см. ниже), или в шестнадцатеричной системе по умолчанию.

       •   Тип символа. Используются как минимум следующие типы; другие также могут использоваться в зависимости от формата объектного файла. Если тип в нижнем регистре, символ обычно локальный; если в верхнем регистре, символ глобальный (внешний). Однако есть несколько символов в нижнем регистре, которые отображаются для специальных глобальных символов ("u", "v" и "w").

	   "A" Значение символа абсолютное и не будет изменено при дальнейшей связывании.

	   "B"
	   "b" Символ находится в секции BSS данных. Эта секция обычно содержит данные, инициализированные нулями или неинициализированные, хотя точное поведение зависит от системы.

	   "C"
	   "c" Символ является общим. Общие символы представляют неинициализированные данные. При связывании несколько общих символов с одинаковым именем могут появиться. Если символ определён где-либо, общие символы рассматриваются как неопределённые ссылки. Символ в нижнем регистре "c" используется, когда символ находится в специальной секции для малых общих символов.

	   "D"
	   "d" Символ находится в секции инициализированных данных.

	   "G"
	   "g" Символ находится в секции инициализированных данных для малых объектов. Некоторые форматы объектных файлов позволяют более эффективный доступ к малым объектам данных, таким как глобальная переменная int по сравнению с большим глобальным массивом.

	   "i" Для файлов в формате PE это указывает, что символ находится в секции, специфичной для реализации DLL.

	       Для файлов в формате ELF это указывает, что символ является косвенной функцией. Это расширение GNU для стандартного набора типов символов ELF. Оно обозначает символ, который, если на него ссылается релокация, не оценивается по своему адресу, а вместо этого должен быть вызван во время выполнения. Выполнение во время выполнения затем вернёт значение, которое будет использоваться в релокации.

	       Примечание: фактическое отображение символов GNU косвенных функций управляется опцией командной строки --ifunc-chars. Если эта опция предоставлена, первый символ в строке будет использоваться для глобальных косвенных символов функций. Если строка содержит второй символ, он будет использоваться для локальных косвенных символов функций.

	   "I" Символ является косвенной ссылкой на другой символ.

	   "N" Символ является символом отладки.

	   "n" Символ находится в секции, которая не является секцией данных, кода или отладки, и доступна только для чтения.

	   "p" Символ находится в секции размотки стека.

	   "R"
	   "r" Символ находится в секции данных только для чтения.

	   "S"
	   "s" Символ находится в секции неинициализированных или инициализированных нулями данных для малых объектов.

	   "T"
	   "t" Символ находится в секции текста (кода).

	   "U" Символ неопределённый.

	   "u" Символ является уникальным глобальным символом. Это расширение GNU для стандартного набора связей символов ELF. Для такого символа динамический линкер обеспечит, чтобы в целом процессе был использован только один символ с этим именем и типом.

	   "V"
	   "v" Символ является слабым объектом. Когда слабый определённый символ связывается с нормальным определённым символом, используется нормальный определённый символ без ошибок. Когда слабый неопределённый символ связывается и символ не определён, значение слабого символа становится нулевым без ошибок. На некоторых системах верхний регистр указывает, что указано значение по умолчанию.

	   "W"
	   "w" Символ является слабым символом, который не был специально помечен как слабый объектный символ. Когда слабый определённый символ связывается с нормальным определённым символом, используется нормальный определённый символ без ошибок. Когда слабый неопределённый символ связывается и символ не определён, значение символа определяется в зависимости от системы без ошибок. На некоторых системах верхний регистр указывает, что указано значение по умолчанию.

	   "-" Символ является символом stabs в объектном файле a.out. В этом случае следующие выводимые значения — это поле stabs other, поле stabs desc и тип stab. Символы stabs используются для хранения информации отладки.

	   "?" Тип символа неизвестен или специфичен для формата объектного файла.

       •   Имя символа. Если символ имеет связанную с ним информацию о версии, то информация о версии также отображается. Если версионированный символ неопределённый или скрытый от линкера, строка версии отображается как суффикс к имени символа, предшествуемый символом @. Например, foo@VER_1. Если версия является версией по умолчанию, которая используется при разрешении неверсионированных ссылок на символ, то она отображается как суффикс, предшествуемый двумя символами @. Например, foo@@VER_2.

OPTIONS
       Длинные и короткие формы опций, показанные здесь как альтернативы, эквивалентны.

       -A
       -o
       --print-file-name
	   Предшествовать каждому символу именем входного файла (или члена архива), в котором он был найден, вместо того, чтобы указывать входной файл один раз перед всеми его символами.

       -a
       --debug-syms
	   Отображать все символы, включая символы только для отладчика; обычно они не перечисляются.

       -B  То же, что и --format=bsd (для совместимости с nm MIPS).

       -C
       --demangle[=style]
	   Декодировать (разманглировать) низкоуровневые имена символов в пользовательские имена. Кроме удаления начального подчёркивания, добавленного системой, это делает читаемыми имена функций C++. Разные компиляторы имеют разные стили манглинга. Опциональный аргумент стиля разманглинга можно использовать для выбора подходящего стиля разманглинга для вашего компилятора.

       --no-demangle
	   Не разманглировать низкоуровневые имена символов. Это значение по умолчанию.

       --recurse-limit
       --no-recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Включить или отключить ограничение на количество рекурсии при разманглировании строк. Поскольку форматы именования позволяют бесконечный уровень рекурсии, возможно создать строки, декодирование которых истощит пространство стека на хост-машине, вызвав ошибку памяти. Ограничение пытается предотвратить это, ограничивая рекурсию 2048 уровнями вложенности.

	   По умолчанию это ограничение включено, но отключение может быть необходимым для разманглирования действительно сложных имён. Обратите внимание, однако, что если ограничение рекурсии отключено, возможно истощение стека, и любые отчёты об ошибках такого события будут отклонены.

       -D
       --dynamic
	   Отображать динамические символы вместо нормальных символов. Это имеет смысл только для динамических объектов, таких как определённые типы разделяемых библиотек.

       -f format
       --format=format
	   Использовать формат вывода format, который может быть "bsd", "sysv", "posix" или "just-symbols". По умолчанию "bsd". Только первый символ format значим; он может быть как в верхнем, так и в нижнем регистре.

       -g
       --extern-only
	   Отображать только внешние символы.

       -h
       --help
	   Показать сводку опций nm и выйти.

       --ifunc-chars=CHARS
	   При отображении символов GNU косвенных функций nm по умолчанию использует символ "i" как для локальных, так и для глобальных косвенных функций. Опция --ifunc-chars позволяет пользователю указать строку, содержащую один или два символа. Первый символ будет использоваться для глобальных косвенных символов функций, а второй, если он присутствует, — для локальных косвенных символов функций.

       j   То же, что и --format=just-symbols.

       -l
       --line-numbers
	   Для каждого символа использовать информацию отладки для поиска имени файла и номера строки. Для определённого символа искать номер строки адреса символа. Для неопределённого символа искать номер строки записи релокации, которая ссылается на символ. Если информация о номере строки найдена, вывести её после другой информации о символе.

       --inlines
	   Когда опция -l активна, если адрес принадлежит функции, которая была встроенной, эта опция заставляет вывести информацию источника для всех включающих областей до первой невыстроенной функции. Например, если "main" встроена "callee1", которая встроена "callee2", и адрес из "callee2", то информация источника для "callee1" и "main" также будет выведена.

       -n
       -v
       --numeric-sort
	   Сортировать символы численно по их адресам, а не алфавитно по их именам.

       -p
       --no-sort
	   Не сортировать символы в каком-либо порядке; выводить их в порядке обнаружения.

       -P
       --portability
	   Использовать стандартный формат вывода POSIX.2 вместо формата по умолчанию. Эквивалентно -f posix.

       -r
       --reverse-sort
	   Обратить порядок сортировки (независимо от того, численная или алфавитная); пусть последние идут первыми.

       -S
       --print-size
	   Выводить как значение, так и размер определённых символов для стиля вывода "bsd". Эта опция не имеет эффекта для форматов объектных файлов, которые не записывают размеры символов, если не используется --size-sort, в этом случае отображается рассчитанный размер.

       -s
       --print-armap
	   При выводе символов из членов архива включать индекс: отображение (хранящееся в архиве ar или ranlib), указывающее, какие модули содержат определения для каких имён.

       -t radix
       --radix=radix
	   Использовать radix в качестве системы счисления для вывода значений символов. Она должна быть d для десятичной, o для восьмеричной или x для шестнадцатеричной.

       -u
       --undefined-only
	   Выводить только неопределённые символы (те, которые внешние для каждого объектного файла). По умолчанию выводятся как определённые, так и неопределённые символы.

       -U
       --defined-only
	   Выводить только определённые символы для каждого объектного файла. По умолчанию выводятся как определённые, так и неопределённые символы.

       -V
       --version
	   Показать номер версии nm и выйти.

       -X  Эта опция игнорируется для совместимости с версией nm AIX. Она принимает один параметр, который должен быть строкой 32_64. Режим по умолчанию для nm AIX соответствует -X 32, который не поддерживается GNU nm.

       --plugin name
	   Загрузить плагин с именем name для добавления поддержки дополнительных типов целей. Эта опция доступна только если инструментарий был построен с включённой поддержкой плагинов.

	   Если --plugin не предоставлен, но поддержка плагинов включена, то nm перебирает файлы в ${libdir}/bfd-plugins в алфавитном порядке, и первый плагин, который заявляет о объекте, используется.

	   Пожалуйста, обратите внимание, что этот каталог поиска плагинов не тот, который используется опцией ld -plugin. Чтобы заставить nm использовать плагин линкера, его нужно скопировать в каталог ${libdir}/bfd-plugins. Для компиляций на основе GCC плагин линкера называется liblto_plugin.so.0.0.0. Для компиляций на основе Clang он называется LLVMgold.so. Плагин GCC всегда обратно совместим с более ранними версиями, так что достаточно скопировать последнюю.

       --size-sort
	   Сортировать символы по размеру. Для объектов ELF размеры символов читаются из ELF; для других типов объектов размеры символов вычисляются как разница между значением символа и значением символа с следующим большим значением. Если используется формат вывода "bsd", размер символа выводится вместо значения, и для вывода обоих размера и значения нужно использовать -S.

	   Примечание: эта опция не работает, если включена --undefined-only, так как неопределённые символы не имеют размера.

       --special-syms
	   Выводить символы, которые имеют специальное значение, специфичное для цели. Эти символы обычно используются целью для какой-то специальной обработки и обычно не полезны, если включены в нормальные списки символов. Например, для целей ARM эта опция пропустит символы отображения, используемые для обозначения переходов между кодом ARM, кодом THUMB и данными.

       --synthetic
	   Включить синтетические символы в вывод. Это специальные символы, созданные линкером для различных целей. По умолчанию они не показываются, поскольку не являются частью исходного кода двоичного файла.

       --unicode=[default|invalid|locale|escape|hex|highlight]
	   Управляет отображением многобайтовых символов, закодированных в UTF-8, в строках. Значение по умолчанию (--unicode=default) — не давать им специального лечения. Опция --unicode=locale отображает последовательность в текущей локали, которая может или не может их поддерживать. Опции --unicode=hex и --unicode=invalid отображаются как последовательности шестнадцатеричных байтов, заключённые в угловые скобки или фигурные скобки.

	   Опция --unicode=escape отображает их как escape-последовательности (\uxxxx), а опция --unicode=highlight — как escape-последовательности, выделенные красным (если устройство вывода это поддерживает). Цветовое выделение предназначено для привлечения внимания к наличию последовательностей unicode, где они могут быть не ожидаемы.

       -W
       --no-weak
	   Не отображать слабые символы.

       --with-symbol-versions
       --without-symbol-versions
	   Включить или отключить отображение информации о версии символа. Строка версии отображается как суффикс к имени символа, предшествуемый символом @. Например, foo@VER_1. Если версия является версией по умолчанию, которая используется при разрешении неверсионированных ссылок на символ, то она отображается как суффикс, предшествуемый двумя символами @. Например, foo@@VER_2. По умолчанию информация о версии символа отображается.

       --target=bfdname
	   Указать формат кода объекта, отличный от формата по умолчанию вашей системы.

       @file
	   Читать опции командной строки из файла. Прочитанные опции вставляются на место оригинальной опции @file. Если файл не существует или не может быть прочитан, опция будет рассматриваться буквально и не удалена.

	   Опции в файле разделены пробелами. Пробельный символ можно включить в опцию, окружив всю опцию одиночными или двойными кавычками. Любые символы (включая обратный слэш) можно включить, предваряя символ, который нужно включить, обратным слэшем. Файл может сам содержать дополнительные опции @file; такие опции будут обработаны рекурсивно.

SEE ALSO
       ar(1), objdump(1), ranlib(1), и записи Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12				 NM(1)
NM(1)			     GNU Development Tools			 NM(1)



NAME
       nm - list symbols from object files

SYNOPSIS
       nm [-A|-o|--print-file-name]
	  [-a|--debug-syms]
	  [-B|--format=bsd]
	  [-C|--demangle[=style]]
	  [-D|--dynamic]
	  [-fformat|--format=format]
	  [-g|--extern-only]
	  [-h|--help]
	  [--ifunc-chars=CHARS]
	  [-j|--format=just-symbols]
	  [-l|--line-numbers] [--inlines]
	  [-n|-v|--numeric-sort]
	  [-P|--portability]
	  [-p|--no-sort]
	  [-r|--reverse-sort]
	  [-S|--print-size]
	  [-s|--print-armap]
	  [-t radix|--radix=radix]
	  [-u|--undefined-only]
	  [-U|--defined-only]
	  [-V|--version]
	  [-W|--no-weak]
	  [-X 32_64]
	  [--no-demangle]
	  [--no-recurse-limit|--recurse-limit]]
	  [--plugin name]
	  [--size-sort]
	  [--special-syms]
	  [--synthetic]
	  [--target=bfdname]
	  [--unicode=method]
	  [--with-symbol-versions]
	  [--without-symbol-versions]
	  [objfile...]

DESCRIPTION
       GNU nm lists the symbols from object files objfile....  If no object
       files are listed as arguments, nm assumes the file a.out.

       For each symbol, nm shows:

       •   The symbol value, in the radix selected by options (see below), or
	   hexadecimal by default.

       •   The symbol type.  At least the following types are used; others
	   are, as well, depending on the object file format.  If lowercase,
	   the symbol is usually local; if uppercase, the symbol is global
	   (external).	There are however a few lowercase symbols that are
	   shown for special global symbols ("u", "v" and "w").

	   "A" The symbol's value is absolute, and will not be changed by
	       further linking.

	   "B"
	   "b" The symbol is in the BSS data section.  This section typically
	       contains zero-initialized or uninitialized data, although the
	       exact behavior is system dependent.

	   "C"
	   "c" The symbol is common.  Common symbols are uninitialized data.
	       When linking, multiple common symbols may appear with the same
	       name.  If the symbol is defined anywhere, the common symbols
	       are treated as undefined references.  The lower case c
	       character is used when the symbol is in a special section for
	       small commons.

	   "D"
	   "d" The symbol is in the initialized data section.

	   "G"
	   "g" The symbol is in an initialized data section for small objects.
	       Some object file formats permit more efficient access to small
	       data objects, such as a global int variable as opposed to a
	       large global array.

	   "i" For PE format files this indicates that the symbol is in a
	       section specific to the implementation of DLLs.

	       For ELF format files this indicates that the symbol is an
	       indirect function.  This is a GNU extension to the standard set
	       of ELF symbol types.  It indicates a symbol which if referenced
	       by a relocation does not evaluate to its address, but instead
	       must be invoked at runtime.  The runtime execution will then
	       return the value to be used in the relocation.

	       Note - the actual symbols display for GNU indirect symbols is
	       controlled by the --ifunc-chars command line option.  If this
	       option has been provided then the first character in the string
	       will be used for global indirect function symbols.  If the
	       string contains a second character then that will be used for
	       local indirect function symbols.

	   "I" The symbol is an indirect reference to another symbol.

	   "N" The symbol is a debugging symbol.

	   "n" The symbol is in a non-data, non-code, non-debug read-only
	       section.

	   "p" The symbol is in a stack unwind section.

	   "R"
	   "r" The symbol is in a read only data section.

	   "S"
	   "s" The symbol is in an uninitialized or zero-initialized data
	       section for small objects.

	   "T"
	   "t" The symbol is in the text (code) section.

	   "U" The symbol is undefined.

	   "u" The symbol is a unique global symbol.  This is a GNU extension
	       to the standard set of ELF symbol bindings.  For such a symbol
	       the dynamic linker will make sure that in the entire process
	       there is just one symbol with this name and type in use.

	   "V"
	   "v" The symbol is a weak object.  When a weak defined symbol is
	       linked with a normal defined symbol, the normal defined symbol
	       is used with no error.  When a weak undefined symbol is linked
	       and the symbol is not defined, the value of the weak symbol
	       becomes zero with no error.  On some systems, uppercase
	       indicates that a default value has been specified.

	   "W"
	   "w" The symbol is a weak symbol that has not been specifically
	       tagged as a weak object symbol.	When a weak defined symbol is
	       linked with a normal defined symbol, the normal defined symbol
	       is used with no error.  When a weak undefined symbol is linked
	       and the symbol is not defined, the value of the symbol is
	       determined in a system-specific manner without error.  On some
	       systems, uppercase indicates that a default value has been
	       specified.

	   "-" The symbol is a stabs symbol in an a.out object file.  In this
	       case, the next values printed are the stabs other field, the
	       stabs desc field, and the stab type.  Stabs symbols are used to
	       hold debugging information.

	   "?" The symbol type is unknown, or object file format specific.

       •   The symbol name.  If a symbol has version information associated
	   with it, then the version information is displayed as well.	If the
	   versioned symbol is undefined or hidden from linker, the version
	   string is displayed as a suffix to the symbol name, preceded by an
	   @ character.	 For example foo@VER_1.	 If the version is the default
	   version to be used when resolving unversioned references to the
	   symbol, then it is displayed as a suffix preceded by two @
	   characters.	For example foo@@VER_2.

OPTIONS
       The long and short forms of options, shown here as alternatives, are
       equivalent.

       -A
       -o
       --print-file-name
	   Precede each symbol by the name of the input file (or archive
	   member) in which it was found, rather than identifying the input
	   file once only, before all of its symbols.

       -a
       --debug-syms
	   Display all symbols, even debugger-only symbols; normally these are
	   not listed.

       -B  The same as --format=bsd (for compatibility with the MIPS nm).

       -C
       --demangle[=style]
	   Decode (demangle) low-level symbol names into user-level names.
	   Besides removing any initial underscore prepended by the system,
	   this makes C++ function names readable. Different compilers have
	   different mangling styles. The optional demangling style argument
	   can be used to choose an appropriate demangling style for your
	   compiler.

       --no-demangle
	   Do not demangle low-level symbol names.  This is the default.

       --recurse-limit
       --no-recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Enables or disables a limit on the amount of recursion performed
	   whilst demangling strings.  Since the name mangling formats allow
	   for an infinite level of recursion it is possible to create strings
	   whose decoding will exhaust the amount of stack space available on
	   the host machine, triggering a memory fault.	 The limit tries to
	   prevent this from happening by restricting recursion to 2048 levels
	   of nesting.

	   The default is for this limit to be enabled, but disabling it may
	   be necessary in order to demangle truly complicated names.  Note
	   however that if the recursion limit is disabled then stack
	   exhaustion is possible and any bug reports about such an event will
	   be rejected.

       -D
       --dynamic
	   Display the dynamic symbols rather than the normal symbols.	This
	   is only meaningful for dynamic objects, such as certain types of
	   shared libraries.

       -f format
       --format=format
	   Use the output format format, which can be "bsd", "sysv", "posix"
	   or "just-symbols".  The default is "bsd".  Only the first character
	   of format is significant; it can be either upper or lower case.

       -g
       --extern-only
	   Display only external symbols.

       -h
       --help
	   Show a summary of the options to nm and exit.

       --ifunc-chars=CHARS
	   When display GNU indirect function symbols nm will default to using
	   the "i" character for both local indirect functions and global
	   indirect functions.	The --ifunc-chars option allows the user to
	   specify a string containing one or two characters. The first
	   character will be used for global indirect function symbols and the
	   second character, if present, will be used for local indirect
	   function symbols.

       j   The same as --format=just-symbols.

       -l
       --line-numbers
	   For each symbol, use debugging information to try to find a
	   filename and line number.  For a defined symbol, look for the line
	   number of the address of the symbol.	 For an undefined symbol, look
	   for the line number of a relocation entry which refers to the
	   symbol.  If line number information can be found, print it after
	   the other symbol information.

       --inlines
	   When option -l is active, if the address belongs to a function that
	   was inlined, then this option causes the source information for all
	   enclosing scopes back to the first non-inlined function to be
	   printed as well.  For example, if "main" inlines "callee1" which
	   inlines "callee2", and address is from "callee2", the source
	   information for "callee1" and "main" will also be printed.

       -n
       -v
       --numeric-sort
	   Sort symbols numerically by their addresses, rather than
	   alphabetically by their names.

       -p
       --no-sort
	   Do not bother to sort the symbols in any order; print them in the
	   order encountered.

       -P
       --portability
	   Use the POSIX.2 standard output format instead of the default
	   format.  Equivalent to -f posix.

       -r
       --reverse-sort
	   Reverse the order of the sort (whether numeric or alphabetic); let
	   the last come first.

       -S
       --print-size
	   Print both value and size of defined symbols for the "bsd" output
	   style.  This option has no effect for object formats that do not
	   record symbol sizes, unless --size-sort is also used in which case
	   a calculated size is displayed.

       -s
       --print-armap
	   When listing symbols from archive members, include the index: a
	   mapping (stored in the archive by ar or ranlib) of which modules
	   contain definitions for which names.

       -t radix
       --radix=radix
	   Use radix as the radix for printing the symbol values.  It must be
	   d for decimal, o for octal, or x for hexadecimal.

       -u
       --undefined-only
	   Display only undefined symbols (those external to each object
	   file).  By default both defined and undefined symbols are
	   displayed.

       -U
       --defined-only
	   Display only defined symbols for each object file.  By default both
	   defined and undefined symbols are displayed.

       -V
       --version
	   Show the version number of nm and exit.

       -X  This option is ignored for compatibility with the AIX version of
	   nm.	It takes one parameter which must be the string 32_64.	The
	   default mode of AIX nm corresponds to -X 32, which is not supported
	   by GNU nm.

       --plugin name
	   Load the plugin called name to add support for extra target types.
	   This option is only available if the toolchain has been built with
	   plugin support enabled.

	   If --plugin is not provided, but plugin support has been enabled
	   then nm iterates over the files in ${libdir}/bfd-plugins in
	   alphabetic order and the first plugin that claims the object in
	   question is used.

	   Please note that this plugin search directory is not the one used
	   by ld's -plugin option.  In order to make nm use the	 linker plugin
	   it must be copied into the ${libdir}/bfd-plugins directory.	For
	   GCC based compilations the linker plugin is called
	   liblto_plugin.so.0.0.0.  For Clang based compilations it is called
	   LLVMgold.so.	 The GCC plugin is always backwards compatible with
	   earlier versions, so it is sufficient to just copy the newest one.

       --size-sort
	   Sort symbols by size.  For ELF objects symbol sizes are read from
	   the ELF, for other object types the symbol sizes are computed as
	   the difference between the value of the symbol and the value of the
	   symbol with the next higher value.  If the "bsd" output format is
	   used the size of the symbol is printed, rather than the value, and
	   -S must be used in order both size and value to be printed.

	   Note - this option does not work if --undefined-only has been
	   enabled as undefined symbols have no size.

       --special-syms
	   Display symbols which have a target-specific special meaning.
	   These symbols are usually used by the target for some special
	   processing and are not normally helpful when included in the normal
	   symbol lists.  For example for ARM targets this option would skip
	   the mapping symbols used to mark transitions between ARM code,
	   THUMB code and data.

       --synthetic
	   Include synthetic symbols in the output.  These are special symbols
	   created by the linker for various purposes.	They are not shown by
	   default since they are not part of the binary's original source
	   code.

       --unicode=[default|invalid|locale|escape|hex|highlight]
	   Controls the display of UTF-8 encoded multibyte characters in
	   strings.  The default (--unicode=default) is to give them no
	   special treatment.  The --unicode=locale option displays the
	   sequence in the current locale, which may or may not support them.
	   The options --unicode=hex and --unicode=invalid display them as hex
	   byte sequences enclosed by either angle brackets or curly braces.

	   The --unicode=escape option displays them as escape sequences
	   (\uxxxx) and the --unicode=highlight option displays them as escape
	   sequences highlighted in red (if supported by the output device).
	   The colouring is intended to draw attention to the presence of
	   unicode sequences where they might not be expected.

       -W
       --no-weak
	   Do not display weak symbols.

       --with-symbol-versions
       --without-symbol-versions
	   Enables or disables the display of symbol version information.  The
	   version string is displayed as a suffix to the symbol name,
	   preceded by an @ character.	For example foo@VER_1.	If the version
	   is the default version to be used when resolving unversioned
	   references to the symbol then it is displayed as a suffix preceded
	   by two @ characters.	 For example foo@@VER_2.  By default, symbol
	   version information is displayed.

       --target=bfdname
	   Specify an object code format other than your system's default
	   format.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       ar(1), objdump(1), ranlib(1), and the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12				 NM(1)

GPROF(1)			      GNU			      GPROF(1)



NAME
       gprof - отображение данных профиля графа вызовов

SYNOPSIS
       gprof [ -[abcDhilLrsTvwxyz] ] [ -[ABCeEfFJnNOpPqQRStZ][name] ]
	[ -I dirs ] [ -d[num] ] [ -k from/to ]
	[ -m min-count ] [ -R map_file ] [ -t table-length ]
	[ --[no-]annotated-source[=name] ]
	[ --[no-]exec-counts[=name] ]
	[ --[no-]flat-profile[=name] ] [ --[no-]graph[=name] ]
	[ --[no-]time=name] [ --all-lines ] [ --brief ]
	[ --debug[=level] ] [ --function-ordering ]
	[ --file-ordering map_file ] [ --directory-path=dirs ]
	[ --display-unused-functions ] [ --file-format=name ]
	[ --file-info ] [ --help ] [ --line ] [ --inline-file-names ]
	[ --min-count=n ] [ --no-static ] [ --print-path ]
	[ --separate-files ] [ --static-call-graph ] [ --sum ]
	[ --table-length=len ] [ --traditional ] [ --version ]
	[ --width=n ] [ --ignore-non-functions ]
	[ --demangle[=STYLE] ] [ --no-demangle ]
	[--external-symbol-table=name]
	[ image-file ] [ profile-file ... ]

DESCRIPTION
       "gprof" создаёт профиль выполнения программ на C, Pascal или Fortran77.
       В профиль каждой вызывающей функции включается эффект вызванных рутин.
       Данные профиля берутся из файла профиля графа вызовов (по умолчанию gmon.out),
       который создаётся программами, скомпилированными с опцией -pg компиляторов
       "cc", "pc" и "f77". Опция -pg также связывает версии библиотечных рутин,
       скомпилированных для профилирования. "Gprof" читает указанный объектный файл
       (по умолчанию "a.out") и устанавливает связь между его таблицей символов
       и профилем графа вызовов из gmon.out. Если указано несколько файлов профиля,
       вывод "gprof" показывает сумму информации профиля из указанных файлов.

       "Gprof" вычисляет количество времени, потраченного в каждой рутине. Затем
       это время распространяется по рёбрам графа вызовов. Выявляются циклы,
       и вызовы в цикл распределяют время цикла.

       Доступно несколько форм вывода анализа.

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

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

       Аннотированный листинг исходного кода — это копия исходного кода программы,
       помеченная количеством раз, когда каждая строка программы выполнялась.

OPTIONS
       Эти опции определяют, какой из нескольких форматов вывода должен
       производить "gprof".

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

       Указание любой из этих опций переопределяет значение по умолчанию (-p -q),
       которое печатает плоский профиль и анализ графа вызовов для всех функций.

       "-A[symspec]"
       "--annotated-source[=symspec]"
	   Опция -A заставляет "gprof" печатать аннотированный исходный код.
	   Если указан symspec, выводить только для совпадающих символов.

       "-b"
       "--brief"
	   Если указана опция -b, "gprof" не печатает подробные описания,
	   которые пытаются объяснить значение всех полей в таблицах.
	   Это полезно, если вы намерены распечатать вывод или устали видеть
	   эти описания.

       "-B"
	   Опция -B заставляет "gprof" печатать анализ графа вызовов.

       "-C[symspec]"
       "--exec-counts[=symspec]"
	   Опция -C заставляет "gprof" печатать подсчёт функций и количество
	   раз, когда каждая была вызвана. Если указан symspec, выводить
	   подсчёт только для совпадающих символов.

	   Если файл данных профиля содержит записи о счётчике базовых блоков,
	   указание опции -l вместе с -C приведёт к подсчёту и отображению
	   количества выполнений базовых блоков.

       "-i"
       "--file-info"
	   Опция -i заставляет "gprof" отображать сводную информацию о
	   файле(ах) данных профиля и затем выйти. Выводится количество
	   записей гистограммы, графа вызовов и счётчика базовых блоков.

       "-I dirs"
       "--directory-path=dirs"
	   Опция -I указывает список каталогов поиска, в которых следует
	   искать исходные файлы. Переменная окружения GPROF_PATH также
	   может использоваться для передачи этой информации. Используется
	   в основном для вывода аннотированного исходного кода.

       "-J[symspec]"
       "--no-annotated-source[=symspec]"
	   Опция -J заставляет "gprof" не печатать аннотированный исходный
	   код. Если указан symspec, "gprof" печатает аннотированный исходный
	   код, но исключает совпадающие символы.

       "-L"
       "--print-path"
	   Обычно имена исходных файлов печатаются без компонента пути.
	   Опция -L заставляет "gprof" печатать полный путь к именам
	   исходных файлов, который определяется из информации отладки
	   символов в файле образа и является относительным к каталогу,
	   в котором был вызван компилятор.

       "-p[symspec]"
       "--flat-profile[=symspec]"
	   Опция -p заставляет "gprof" печатать плоский профиль. Если
	   указан symspec, печатать плоский профиль только для совпадающих
	   символов.

       "-P[symspec]"
       "--no-flat-profile[=symspec]"
	   Опция -P заставляет "gprof" подавлять печать плоского профиля.
	   Если указан symspec, "gprof" печатает плоский профиль, но
	   исключает совпадающие символы.

       "-q[symspec]"
       "--graph[=symspec]"
	   Опция -q заставляет "gprof" печатать анализ графа вызовов.
	   Если указан symspec, печатать граф вызовов только для
	   совпадающих символов и их потомков.

       "-Q[symspec]"
       "--no-graph[=symspec]"
	   Опция -Q заставляет "gprof" подавлять печать графа вызовов.
	   Если указан symspec, "gprof" печатает граф вызовов, но
	   исключает совпадающие символы.

       "-t"
       "--table-length=num"
	   Опция -t заставляет перечислять num наиболее активных строк
	   исходного кода в каждом файле исходного кода при включённой
	   аннотации исходного кода. Значение по умолчанию — 10.

       "-y"
       "--separate-files"
	   Эта опция влияет только на вывод аннотированного исходного кода.
	   Обычно "gprof" печатает аннотированные файлы исходного кода
	   в стандартный вывод. Если указана эта опция, аннотированный
	   исходный код для файла с именем path/filename генерируется
	   в файле filename-ann. Если файловая система усекает filename-ann
	   так, что она перезаписывает оригинальное filename, "gprof"
	   генерирует аннотированный исходный код в файле filename.ann
	   вместо этого (если оригинальное имя файла имеет расширение,
	   это расширение заменяется на .ann).

       "-Z[symspec]"
       "--no-exec-counts[=symspec]"
	   Опция -Z заставляет "gprof" не печатать подсчёт функций и
	   количества раз, когда каждая была вызвана. Если указан symspec,
	   печатать подсчёт, но исключить совпадающие символы.

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

	   Точные детали, как заставить компоновщик размещать функции
	   в определённом порядке, зависят от системы и выходят за рамки
	   этого руководства.

       "-R map_file"
       "--file-ordering map_file"
	   Опция --file-ordering заставляет "gprof" печатать предложенный
	   порядок связи .o-файлов для программы на основе данных профиля.
	   Эта опция предлагает порядок, который может улучшить поведение
	   подкачки, TLB и кэша для программы на системах, которые не
	   поддерживают произвольный порядок функций в исполняемом файле.

	   Использование аргумента -a настоятельно рекомендуется с этой
	   опцией.

	   Аргумент map_file — это путь к файлу, который предоставляет
	   отображения имён функций на объектные файлы. Формат файла
	   похож на вывод программы "nm".

		   c-parse.o:00000000 T yyparse
		   c-parse.o:00000004 C yyerrflag
		   c-lang.o:00000000 T maybe_objc_method_name
		   c-lang.o:00000000 T print_lang_statistics
		   c-lang.o:00000000 T recognize_objc_keyword
		   c-decl.o:00000000 T print_lang_identifier
		   c-decl.o:00000000 T print_lang_type
		   ...

	   Чтобы создать map_file с помощью GNU "nm", введите команду
	   вроде "nm --extern-only --defined-only -v --print-file-name
	   program-name".

       "-T"
       "--traditional"
	   Опция -T заставляет "gprof" печатать вывод в "традиционном"
	   стиле BSD.

       "-w width"
       "--width=width"
	   Устанавливает ширину строк вывода в width. В настоящее время
	   используется только при печати индекса функций в нижней части
	   графа вызовов.

       "-x"
       "--all-lines"
	   Эта опция влияет только на вывод аннотированного исходного кода.
	   По умолчанию аннотируются только строки в начале базового блока.
	   Если указана эта опция, каждая строка в базовом блоке аннотируется
	   путём повторения аннотации для первой строки. Это поведение
	   похоже на "tcov" с опцией -a.

       "--demangle[=style]"
       "--no-demangle"
	   Эти опции управляют тем, должны ли имена символов C++ демангловаться
	   при печати вывода. Значение по умолчанию — демангловать символы.
	   Опция "--no-demangle" может быть использована для отключения
	   деманглинга. Разные компиляторы имеют разные стили манглинга.
	   Необязательный аргумент стиля деманглинга можно использовать,
	   чтобы выбрать подходящий стиль деманглинга для вашего компилятора.

   Analysis Options
       "-a"
       "--no-static"
	   Опция -a заставляет "gprof" подавлять печать статически
	   объявленных (приватных) функций. (Это функции, имена которых
	   не перечислены как глобальные и которые не видны за пределами
	   файла/функции/блока, где они определены.) Время, потраченное
	   в этих функциях, вызовы к ним и от них и т.д., будут отнесены
	   к функции, которая была загружена непосредственно перед ней
	   в исполняемом файле. Эта опция влияет как на плоский профиль,
	   так и на граф вызовов.

       "-c"
       "--static-call-graph"
	   Опция -c заставляет граф вызовов программы дополняться эвристикой,
	   которая осматривает пространство текста объектного файла и
	   идентифицирует вызовы функций в двоичном машинном коде. Поскольку
	   обычные записи графа вызовов генерируются только при входе
	   в функции, эта опция идентифицирует потомков, которые могли
	   быть вызваны, но никогда не были. Вызовы функций, которые не
	   были скомпилированы с включённым профилированием, также
	   идентифицируются, но только если в таблице символов есть
	   записи для них. Вызовы рутин динамической библиотеки обычно
	   не обнаруживаются этой опцией. Родители или потомки,
	   идентифицированные с помощью этой эвристики, указываются
	   в графе вызовов с количеством вызовов 0.

       "-D"
       "--ignore-non-functions"
	   Опция -D заставляет "gprof" игнорировать символы, которые не
	   известны как функции. Эта опция даст более точные данные профиля
	   на системах, где она поддерживается (например, Solaris и HPUX).

       "-k from/to"
	   Опция -k позволяет удалить из графа вызовов любые дуги от
	   символов, совпадающих с symspec from, к тем, которые совпадают
	   с symspec to.

       "-l"
       "--line"
	   Опция -l включает профилирование по строкам, что заставляет
	   попадания гистограммы начисляться на отдельные строки исходного
	   кода, а не на функции. Эта функция работает только с программами,
	   скомпилированными более старыми версиями компилятора "gcc".
	   Новые версии "gcc" предназначены для работы с инструментом
	   "gcov".

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

       "--inline-file-names"
	   Эта опция заставляет "gprof" печатать исходный файл после
	   каждого символа как в плоском профиле, так и в графе вызовов.
	   Полный путь к файлу печатается, если используется с опцией -L.

       "-m num"
       "--min-count=num"
	   Эта опция влияет только на вывод счёта выполнения. Символы,
	   которые выполнялись менее num раз, подавляются.

       "-nsymspec"
       "--time=symspec"
	   Опция -n заставляет "gprof" в анализе графа вызовов распространять
	   время только для символов, совпадающих с symspec.

       "-Nsymspec"
       "--no-time=symspec"
	   Опция -n заставляет "gprof" в анализе графа вызовов не распространять
	   время для символов, совпадающих с symspec.

       "-Sfilename"
       "--external-symbol-table=filename"
	   Опция -S заставляет "gprof" читать внешнюю таблицу символов,
	   такую как /proc/kallsyms, вместо чтения таблицы символов из
	   указанного объектного файла (по умолчанию "a.out"). Это полезно
	   для профилирования модулей ядра.

       "-z"
       "--display-unused-functions"
	   Если указана опция -z, "gprof" упомянет все функции в плоском
	   профиле, даже те, которые никогда не вызывались и в которых
	   не было потрачено времени. Это полезно в сочетании с опцией -c
	   для обнаружения рутин, которые никогда не вызывались.

   Miscellaneous Options
       "-d[num]"
       "--debug[=num]"
	   Опция -d num указывает опции отладки. Если num не указан,
	   включается вся отладка.

       "-h"
       "--help"
	   Опция -h печатает справку по командной строке.

       "-Oname"
       "--file-format=name"
	   Выбирает формат файлов данных профиля. Поддерживаемые форматы:
	   auto (по умолчанию), bsd, 4.4bsd, magic и prof (ещё не поддерживается).

       "-s"
       "--sum"
	   Опция -s заставляет "gprof" суммировать информацию в файлах
	   данных профиля, которые он прочитал, и записать файл данных
	   профиля с именем gmon.sum, который содержит всю информацию
	   из файлов данных профиля, прочитанных "gprof". Файл gmon.sum
	   может быть одним из указанных входных файлов; эффект этого
	   — объединение данных из других входных файлов в gmon.sum.

	   В конечном итоге вы можете запустить "gprof" снова без -s,
	   чтобы проанализировать накопленные данные в файле gmon.sum.

       "-v"
       "--version"
	   Флаг -v заставляет "gprof" печатать текущий номер версии и
	   затем выйти.

   Deprecated Options
       Эти опции были заменены более новыми версиями, которые используют symspecs.

       "-e function_name"
	   Опция -e function сообщает "gprof" не печатать информацию о
	   функции function_name (и её потомках...) в графе вызовов.
	   Функция всё равно будет перечислена как потомок любых функций,
	   которые вызывают её, но её индексный номер будет показан как
	   [not printed]. Можно указать несколько опций -e; только одно
	   function_name может быть указано с каждой опцией -e.

       "-E function_name"
	   Опция "-E function" работает как опция "-e", но время, потраченное
	   в функции (и потомках, которые не вызывались из других мест),
	   не будет использоваться для вычисления процентов времени для
	   графа вызовов. Можно указать несколько опций -E; только одно
	   function_name может быть указано с каждой опцией -E.

       "-f function_name"
	   Опция -f function заставляет "gprof" ограничить граф вызовов
	   функцией function_name и её потомками (и их потомками...).
	   Можно указать несколько опций -f; только одно function_name
	   может быть указано с каждой опцией -f.

       "-F function_name"
	   Опция -F function работает как опция "-f", но только время,
	   потраченное в функции и её потомках (и их потомках...), будет
	   использоваться для определения общего времени и процентов времени
	   для графа вызовов. Можно указать несколько опций -F; только одно
	   function_name может быть указано с каждой опцией -F. Опция -F
	   переопределяет опцию -E.

FILES
       "a.out"
	   таблица имён и пространство текста.

       "gmon.out"
	   динамический граф вызовов и профиль.

       "gmon.sum"
	   суммированный динамический граф вызовов и профиль.

BUGS
       Гранулярность выборки показывается, но остаётся статистической в лучшем
       случае. Мы предполагаем, что время для каждого выполнения функции может
       быть выражено как общее время для функции, делённое на количество раз,
       когда функция вызывалась. Таким образом, время, распространяемое по дугам
       графа вызовов к родителям функции, прямо пропорционально количеству раз,
       когда эта дуга была пройдена.

       Родители, которые сами не профилируются, будут иметь время своих
       профилируемых потомков, распространяемое на них, но в списке графа
       вызовов они будут выглядеть как спонтанно вызванные и не будут иметь
       своё время, распространяемое дальше. Аналогично, перехватчики сигналов,
       даже если они профилируются, будут выглядеть как спонтанные (хотя по
       более сложным причинам). Любые профилируемые потомки перехватчиков
       сигналов должны иметь своё время, распространяемое правильно, если только
       перехватчик сигнала не был вызван во время выполнения рутины профилирования,
       в таком случае всё потеряно.

       Профилируемая программа должна вызвать "exit"(2) или вернуться нормально,
       чтобы информация профиля была сохранена в файле gmon.out.

SEE ALSO
       monitor(3), profil(2), cc(1), prof(1), и раздел Info для gprof.

       "An Execution Profiler for Modular Programs" (Профилировщик выполнения
       для модульных программ), S. Graham, P. Kessler, M. McKusick;
       Software - Practice and Experience, Vol. 13, pp. 671-685, 1983.

       "gprof: A Call Graph Execution Profiler" (gprof: Профилировщик выполнения
       графа вызовов), S. Graham, P. Kessler, M. McKusick; Proceedings of the
       SIGPLAN '82 Symposium on Compiler Construction, SIGPLAN Notices,
       Vol. 17, No. 6, pp. 120-126, June 1982.

COPYRIGHT
       Copyright (c) 1988-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02			      GPROF(1)
GPROF(1)			      GNU			      GPROF(1)



NAME
       gprof - display call graph profile data

SYNOPSIS
       gprof [ -[abcDhilLrsTvwxyz] ] [ -[ABCeEfFJnNOpPqQRStZ][name] ]
	[ -I dirs ] [ -d[num] ] [ -k from/to ]
	[ -m min-count ] [ -R map_file ] [ -t table-length ]
	[ --[no-]annotated-source[=name] ]
	[ --[no-]exec-counts[=name] ]
	[ --[no-]flat-profile[=name] ] [ --[no-]graph[=name] ]
	[ --[no-]time=name] [ --all-lines ] [ --brief ]
	[ --debug[=level] ] [ --function-ordering ]
	[ --file-ordering map_file ] [ --directory-path=dirs ]
	[ --display-unused-functions ] [ --file-format=name ]
	[ --file-info ] [ --help ] [ --line ] [ --inline-file-names ]
	[ --min-count=n ] [ --no-static ] [ --print-path ]
	[ --separate-files ] [ --static-call-graph ] [ --sum ]
	[ --table-length=len ] [ --traditional ] [ --version ]
	[ --width=n ] [ --ignore-non-functions ]
	[ --demangle[=STYLE] ] [ --no-demangle ]
	[--external-symbol-table=name]
	[ image-file ] [ profile-file ... ]

DESCRIPTION
       "gprof" produces an execution profile of C, Pascal, or Fortran77
       programs.  The effect of called routines is incorporated in the profile
       of each caller.	The profile data is taken from the call graph profile
       file (gmon.out default) which is created by programs that are compiled
       with the -pg option of "cc", "pc", and "f77".  The -pg option also
       links in versions of the library routines that are compiled for
       profiling.  "Gprof" reads the given object file (the default is
       "a.out") and establishes the relation between its symbol table and the
       call graph profile from gmon.out.  If more than one profile file is
       specified, the "gprof" output shows the sum of the profile information
       in the given profile files.

       "Gprof" calculates the amount of time spent in each routine.  Next,
       these times are propagated along the edges of the call graph.  Cycles
       are discovered, and calls into a cycle are made to share the time of
       the cycle.

       Several forms of output are available from the analysis.

       The flat profile shows how much time your program spent in each
       function, and how many times that function was called.  If you simply
       want to know which functions burn most of the cycles, it is stated
       concisely here.

       The call graph shows, for each function, which functions called it,
       which other functions it called, and how many times.  There is also an
       estimate of how much time was spent in the subroutines of each
       function.  This can suggest places where you might try to eliminate
       function calls that use a lot of time.

       The annotated source listing is a copy of the program's source code,
       labeled with the number of times each line of the program was executed.

OPTIONS
       These options specify which of several output formats "gprof" should
       produce.

       Many of these options take an optional symspec to specify functions to
       be included or excluded.	 These options can be specified multiple
       times, with different symspecs, to include or exclude sets of symbols.

       Specifying any of these options overrides the default (-p -q), which
       prints a flat profile and call graph analysis for all functions.

       "-A[symspec]"
       "--annotated-source[=symspec]"
	   The -A option causes "gprof" to print annotated source code.	 If
	   symspec is specified, print output only for matching symbols.

       "-b"
       "--brief"
	   If the -b option is given, "gprof" doesn't print the verbose blurbs
	   that try to explain the meaning of all of the fields in the tables.
	   This is useful if you intend to print out the output, or are tired
	   of seeing the blurbs.

       "-B"
	   The -B option causes "gprof" to print the call graph analysis.

       "-C[symspec]"
       "--exec-counts[=symspec]"
	   The -C option causes "gprof" to print a tally of functions and the
	   number of times each was called.  If symspec is specified, print
	   tally only for matching symbols.

	   If the profile data file contains basic-block count records,
	   specifying the -l option, along with -C, will cause basic-block
	   execution counts to be tallied and displayed.

       "-i"
       "--file-info"
	   The -i option causes "gprof" to display summary information about
	   the profile data file(s) and then exit.  The number of histogram,
	   call graph, and basic-block count records is displayed.

       "-I dirs"
       "--directory-path=dirs"
	   The -I option specifies a list of search directories in which to
	   find source files.  Environment variable GPROF_PATH can also be
	   used to convey this information.  Used mostly for annotated source
	   output.

       "-J[symspec]"
       "--no-annotated-source[=symspec]"
	   The -J option causes "gprof" not to print annotated source code.
	   If symspec is specified, "gprof" prints annotated source, but
	   excludes matching symbols.

       "-L"
       "--print-path"
	   Normally, source filenames are printed with the path component
	   suppressed.	The -L option causes "gprof" to print the full
	   pathname of source filenames, which is determined from symbolic
	   debugging information in the image file and is relative to the
	   directory in which the compiler was invoked.

       "-p[symspec]"
       "--flat-profile[=symspec]"
	   The -p option causes "gprof" to print a flat profile.  If symspec
	   is specified, print flat profile only for matching symbols.

       "-P[symspec]"
       "--no-flat-profile[=symspec]"
	   The -P option causes "gprof" to suppress printing a flat profile.
	   If symspec is specified, "gprof" prints a flat profile, but
	   excludes matching symbols.

       "-q[symspec]"
       "--graph[=symspec]"
	   The -q option causes "gprof" to print the call graph analysis.  If
	   symspec is specified, print call graph only for matching symbols
	   and their children.

       "-Q[symspec]"
       "--no-graph[=symspec]"
	   The -Q option causes "gprof" to suppress printing the call graph.
	   If symspec is specified, "gprof" prints a call graph, but excludes
	   matching symbols.

       "-t"
       "--table-length=num"
	   The -t option causes the num most active source lines in each
	   source file to be listed when source annotation is enabled.	The
	   default is 10.

       "-y"
       "--separate-files"
	   This option affects annotated source output only.  Normally,
	   "gprof" prints annotated source files to standard-output.  If this
	   option is specified, annotated source for a file named
	   path/filename is generated in the file filename-ann.	 If the
	   underlying file system would truncate filename-ann so that it
	   overwrites the original filename, "gprof" generates annotated
	   source in the file filename.ann instead (if the original file name
	   has an extension, that extension is replaced with .ann).

       "-Z[symspec]"
       "--no-exec-counts[=symspec]"
	   The -Z option causes "gprof" not to print a tally of functions and
	   the number of times each was called.	 If symspec is specified,
	   print tally, but exclude matching symbols.

       "-r"
       "--function-ordering"
	   The --function-ordering option causes "gprof" to print a suggested
	   function ordering for the program based on profiling data.  This
	   option suggests an ordering which may improve paging, tlb and cache
	   behavior for the program on systems which support arbitrary
	   ordering of functions in an executable.

	   The exact details of how to force the linker to place functions in
	   a particular order is system dependent and out of the scope of this
	   manual.

       "-R map_file"
       "--file-ordering map_file"
	   The --file-ordering option causes "gprof" to print a suggested .o
	   link line ordering for the program based on profiling data.	This
	   option suggests an ordering which may improve paging, tlb and cache
	   behavior for the program on systems which do not support arbitrary
	   ordering of functions in an executable.

	   Use of the -a argument is highly recommended with this option.

	   The map_file argument is a pathname to a file which provides
	   function name to object file mappings.  The format of the file is
	   similar to the output of the program "nm".

		   c-parse.o:00000000 T yyparse
		   c-parse.o:00000004 C yyerrflag
		   c-lang.o:00000000 T maybe_objc_method_name
		   c-lang.o:00000000 T print_lang_statistics
		   c-lang.o:00000000 T recognize_objc_keyword
		   c-decl.o:00000000 T print_lang_identifier
		   c-decl.o:00000000 T print_lang_type
		   ...

	   To create a map_file with GNU "nm", type a command like "nm
	   --extern-only --defined-only -v --print-file-name program-name".

       "-T"
       "--traditional"
	   The -T option causes "gprof" to print its output in "traditional"
	   BSD style.

       "-w width"
       "--width=width"
	   Sets width of output lines to width.	 Currently only used when
	   printing the function index at the bottom of the call graph.

       "-x"
       "--all-lines"
	   This option affects annotated source output only.  By default, only
	   the lines at the beginning of a basic-block are annotated.  If this
	   option is specified, every line in a basic-block is annotated by
	   repeating the annotation for the first line.	 This behavior is
	   similar to "tcov"'s -a.

       "--demangle[=style]"
       "--no-demangle"
	   These options control whether C++ symbol names should be demangled
	   when printing output.  The default is to demangle symbols.  The
	   "--no-demangle" option may be used to turn off demangling.
	   Different compilers have different mangling styles.	The optional
	   demangling style argument can be used to choose an appropriate
	   demangling style for your compiler.

   Analysis Options
       "-a"
       "--no-static"
	   The -a option causes "gprof" to suppress the printing of statically
	   declared (private) functions.  (These are functions whose names are
	   not listed as global, and which are not visible outside the
	   file/function/block where they were defined.)  Time spent in these
	   functions, calls to/from them, etc., will all be attributed to the
	   function that was loaded directly before it in the executable file.
	   This option affects both the flat profile and the call graph.

       "-c"
       "--static-call-graph"
	   The -c option causes the call graph of the program to be augmented
	   by a heuristic which examines the text space of the object file and
	   identifies function calls in the binary machine code.  Since normal
	   call graph records are only generated when functions are entered,
	   this option identifies children that could have been called, but
	   never were.	Calls to functions that were not compiled with
	   profiling enabled are also identified, but only if symbol table
	   entries are present for them.  Calls to dynamic library routines
	   are typically not found by this option.  Parents or children
	   identified via this heuristic are indicated in the call graph with
	   call counts of 0.

       "-D"
       "--ignore-non-functions"
	   The -D option causes "gprof" to ignore symbols which are not known
	   to be functions.  This option will give more accurate profile data
	   on systems where it is supported (Solaris and HPUX for example).

       "-k from/to"
	   The -k option allows you to delete from the call graph any arcs
	   from symbols matching symspec from to those matching symspec to.

       "-l"
       "--line"
	   The -l option enables line-by-line profiling, which causes
	   histogram hits to be charged to individual source code lines,
	   instead of functions.  This feature only works with programs
	   compiled by older versions of the "gcc" compiler.  Newer versions
	   of "gcc" are designed to work with the "gcov" tool instead.

	   If the program was compiled with basic-block counting enabled, this
	   option will also identify how many times each line of code was
	   executed.  While line-by-line profiling can help isolate where in a
	   large function a program is spending its time, it also
	   significantly increases the running time of "gprof", and magnifies
	   statistical inaccuracies.

       "--inline-file-names"
	   This option causes "gprof" to print the source file after each
	   symbol in both the flat profile and the call graph. The full path
	   to the file is printed if used with the -L option.

       "-m num"
       "--min-count=num"
	   This option affects execution count output only.  Symbols that are
	   executed less than num times are suppressed.

       "-nsymspec"
       "--time=symspec"
	   The -n option causes "gprof", in its call graph analysis, to only
	   propagate times for symbols matching symspec.

       "-Nsymspec"
       "--no-time=symspec"
	   The -n option causes "gprof", in its call graph analysis, not to
	   propagate times for symbols matching symspec.

       "-Sfilename"
       "--external-symbol-table=filename"
	   The -S option causes "gprof" to read an external symbol table file,
	   such as /proc/kallsyms, rather than read the symbol table from the
	   given object file (the default is "a.out"). This is useful for
	   profiling kernel modules.

       "-z"
       "--display-unused-functions"
	   If you give the -z option, "gprof" will mention all functions in
	   the flat profile, even those that were never called, and that had
	   no time spent in them.  This is useful in conjunction with the -c
	   option for discovering which routines were never called.

   Miscellaneous Options
       "-d[num]"
       "--debug[=num]"
	   The -d num option specifies debugging options.  If num is not
	   specified, enable all debugging.

       "-h"
       "--help"
	   The -h option prints command line usage.

       "-Oname"
       "--file-format=name"
	   Selects the format of the profile data files.  Recognized formats
	   are auto (the default), bsd, 4.4bsd, magic, and prof (not yet
	   supported).

       "-s"
       "--sum"
	   The -s option causes "gprof" to summarize the information in the
	   profile data files it read in, and write out a profile data file
	   called gmon.sum, which contains all the information from the
	   profile data files that "gprof" read in.  The file gmon.sum may be
	   one of the specified input files; the effect of this is to merge
	   the data in the other input files into gmon.sum.

	   Eventually you can run "gprof" again without -s to analyze the
	   cumulative data in the file gmon.sum.

       "-v"
       "--version"
	   The -v flag causes "gprof" to print the current version number, and
	   then exit.

   Deprecated Options
       These options have been replaced with newer versions that use symspecs.

       "-e function_name"
	   The -e function option tells "gprof" to not print information about
	   the function function_name (and its children...) in the call graph.
	   The function will still be listed as a child of any functions that
	   call it, but its index number will be shown as [not printed].  More
	   than one -e option may be given; only one function_name may be
	   indicated with each -e option.

       "-E function_name"
	   The "-E function" option works like the "-e" option, but time spent
	   in the function (and children who were not called from anywhere
	   else), will not be used to compute the percentages-of-time for the
	   call graph.	More than one -E option may be given; only one
	   function_name may be indicated with each -E option.

       "-f function_name"
	   The -f function option causes "gprof" to limit the call graph to
	   the function function_name and its children (and their
	   children...).  More than one -f option may be given; only one
	   function_name may be indicated with each -f option.

       "-F function_name"
	   The -F function option works like the "-f" option, but only time
	   spent in the function and its children (and their children...) will
	   be used to determine total-time and percentages-of-time for the
	   call graph.	More than one -F option may be given; only one
	   function_name may be indicated with each -F option.	The -F option
	   overrides the -E option.

FILES
       "a.out"
	   the namelist and text space.

       "gmon.out"
	   dynamic call graph and profile.

       "gmon.sum"
	   summarized dynamic call graph and profile.

BUGS
       The granularity of the sampling is shown, but remains statistical at
       best.  We assume that the time for each execution of a function can be
       expressed by the total time for the function divided by the number of
       times the function is called.  Thus the time propagated along the call
       graph arcs to the function's parents is directly proportional to the
       number of times that arc is traversed.

       Parents that are not themselves profiled will have the time of their
       profiled children propagated to them, but they will appear to be
       spontaneously invoked in the call graph listing, and will not have
       their time propagated further.  Similarly, signal catchers, even though
       profiled, will appear to be spontaneous (although for more obscure
       reasons).  Any profiled children of signal catchers should have their
       times propagated properly, unless the signal catcher was invoked during
       the execution of the profiling routine, in which case all is lost.

       The profiled program must call "exit"(2) or return normally for the
       profiling information to be saved in the gmon.out file.

SEE ALSO
       monitor(3), profil(2), cc(1), prof(1), and the Info entry for gprof.

       "An Execution Profiler for Modular Programs", by S. Graham, P. Kessler,
       M. McKusick; Software - Practice and Experience, Vol. 13, pp. 671-685,
       1983.

       "gprof: A Call Graph Execution Profiler", by S. Graham, P. Kessler, M.
       McKusick; Proceedings of the SIGPLAN '82 Symposium on Compiler
       Construction, SIGPLAN Notices, Vol. 17, No  6, pp. 120-126, June 1982.

COPYRIGHT
       Copyright (c) 1988-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02			      GPROF(1)

DLLTOOL(1)		     Инструменты разработки GNU		    DLLTOOL(1)



NAME
       dlltool - создать файлы, необходимые для сборки и использования DLL

SYNOPSIS
       dlltool [-d|--input-def def-файл]
	       [-b|--base-file base-файл]
	       [-e|--output-exp exports-файл]
	       [-z|--output-def def-файл]
	       [-l|--output-lib library-файл]
	       [-y|--output-delaylib library-файл]
	       [--export-all-symbols] [--no-export-all-symbols]
	       [--exclude-symbols список]
	       [--no-default-excludes]
	       [-S|--as путь-к-ассемблеру] [-f|--as-flags опции]
	       [-D|--dllname имя] [-m|--machine машина]
	       [-a|--add-indirect]
	       [-U|--add-underscore] [--add-stdcall-underscore]
	       [-k|--kill-at] [-A|--add-stdcall-alias]
	       [-p|--ext-prefix-alias префикс]
	       [-x|--no-idata4] [-c|--no-idata5]
	       [--use-nul-prefixed-import-tables]
	       [-I|--identify library-файл] [--identify-strict]
	       [-i|--interwork]
	       [-n|--nodelete] [-t|--temp-prefix префикс]
	       [-v|--verbose]
	       [-h|--help] [-V|--version]
	       [--no-leading-underscore] [--leading-underscore]
	       [--deterministic-libraries] [--non-deterministic-libraries]
	       [object-файл ...]

DESCRIPTION
       dlltool читает свои входные данные, которые могут приходить из опций -d и -b, а также из object-файлов, указанных в командной строке. Затем он обрабатывает эти входные данные и, если указана опция -e, создаёт файл экспортов. Если указана опция -l, создаётся library-файл, а если указана опция -z, создаётся def-файл. Любые или все из опций -e, -l и -z могут быть указаны в одном вызове dlltool.

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

       Первый файл — это .def-файл, который указывает, какие функции экспортируются из DLL, какие функции импортирует DLL и так далее. Это текстовый файл, и его можно создать вручную, или dlltool может создать его с помощью опции -z. В этом случае dlltool сканирует object-файлы, указанные в командной строке, в поисках функций, специально помеченных как экспортируемые, и добавляет записи для них в .def-файл.

       Чтобы пометить функцию как экспортируемую из DLL, в ней должна быть запись -export:<имя_функции> в секции .drectve object-файла. Это можно сделать в C с помощью оператора asm():

		 asm (".section .drectve");
		 asm (".ascii "-export:my_func"");

		 int my_func (void) { ... }

       Второй файл, необходимый для создания DLL, — это файл экспортов. Этот файл связывается с object-файлами, составляющими тело DLL, и обрабатывает интерфейс между DLL и внешним миром. Это двоичный файл, и его можно создать, указав опцию -e для dlltool при создании или чтении .def-файла.

       Третий файл, необходимый для создания DLL, — это library-файл, с которым программы будут связываться для доступа к функциям в DLL (библиотека импорта). Этот файл можно создать, указав опцию -l для dlltool при создании или чтении .def-файла.

       Если указана опция -y, dlltool генерирует delay-import library, которую можно использовать вместо обычной библиотеки импорта, чтобы программа связывалась с DLL только при первом вызове импортированной функции. Получившийся исполняемый файл должен быть связан со статической библиотекой delayimp, содержащей __delayLoadHelper2(), которая, в свою очередь, импортирует LoadLibraryA и GetProcAddress из kernel32.

       dlltool создаёт library-файл вручную, но для создания файла экспортов он создаёт временные файлы с инструкциями ассемблера, а затем собирает их. Опция командной строки -S может использоваться для указания пути к ассемблеру, который будет использоваться dlltool, а опция -f — для передачи конкретных флагов этому ассемблеру. Опция -n может использоваться, чтобы предотвратить удаление dlltool временных файлов ассемблера после завершения, а если -n указана дважды, это предотвратит удаление временных object-файлов, используемых для создания library-файла.

       Вот пример создания DLL из исходного файла dll.c и создания программы (из object-файла program.o), которая использует эту DLL:

		 gcc -c dll.c
		 dlltool -e exports.o -l dll.lib dll.o
		 gcc dll.o exports.o -o dll.dll
		 gcc program.o dll.lib -o program

       dlltool также может использоваться для запроса существующей библиотеки импорта, чтобы определить имя связанной с ней DLL. См. описание опции -I или --identify.

OPTIONS
       Опции командной строки имеют следующее значение:

       -d имя_файла
       --input-def имя_файла
	   Указывает имя .def-файла, который будет прочитан и обработан.

       -b имя_файла
       --base-file имя_файла
	   Указывает имя base-файла, который будет прочитан и обработан. Содержимое этого файла будет добавлено в секцию релокаций в файле экспортов, созданном dlltool.

       -e имя_файла
       --output-exp имя_файла
	   Указывает имя файла экспортов, который будет создан dlltool.

       -z имя_файла
       --output-def имя_файла
	   Указывает имя .def-файла, который будет создан dlltool.

       -l имя_файла
       --output-lib имя_файла
	   Указывает имя library-файла, который будет создан dlltool.

       -y имя_файла
       --output-delaylib имя_файла
	   Указывает имя файла delay-import library, который будет создан dlltool.

       --deterministic-libraries
       --non-deterministic-libraries
	   При создании выходных библиотек в ответ на опции --output-lib или --output-delaylib использовать значение нуля для любых временных меток, идентификаторов пользователей и групп (--deterministic-libraries) или фактические временные метки, идентификаторы пользователей и групп (--non-deterministic-libraries).

       --export-all-symbols
	   Рассматривать все глобальные и слабые определённые символы, найденные во входных object-файлах, как символы для экспорта. Есть небольшой список символов, которые не экспортируются по умолчанию; см. опцию --no-default-excludes. Вы можете добавить символы в список для неэкспорта с помощью опции --exclude-symbols.

       --no-export-all-symbols
	   Экспортировать только символы, явно указанные в входном .def-файле или в секциях .drectve во входных object-файлах. Это поведение по умолчанию. Секции .drectve создаются атрибутами dllexport в исходном коде.

       --exclude-symbols список
	   Не экспортировать символы из списка. Это список имён символов, разделённых запятыми или двоеточиями. Имена символов не должны содержать начального подчёркивания. Это имеет смысл только при использовании --export-all-symbols.

       --no-default-excludes
	   Когда используется --export-all-symbols, по умолчанию оно избегает экспорта определённых специальных символов. Текущий список символов для избежания экспорта: DllMain@12, DllEntryPoint@0, impure_ptr. Вы можете использовать опцию --no-default-excludes, чтобы всё равно экспортировать эти специальные символы. Это имеет смысл только при использовании --export-all-symbols.

       -S путь
       --as путь
	   Указывает путь, включая имя файла, ассемблера, который будет использоваться для создания файла экспортов.

       -f опции
       --as-flags опции
	   Указывает любые конкретные опции командной строки, которые будут переданы ассемблеру при сборке файла экспортов. Эта опция работает даже если не используется -S. Эта опция принимает только один аргумент, и если она встречается более одного раза в командной строке, более поздние вхождения перезапишут предыдущие. Таким образом, если необходимо передать несколько опций ассемблеру, их следует заключить в двойные кавычки.

       -D имя
       --dll-name имя
	   Указывает имя, которое будет сохранено в .def-файле как имя DLL при использовании опции -e. Если эта опция отсутствует, то имя файла, указанное в опции -e, будет использовано как имя DLL.

       -m машина
       --machine машина
	   Указывает тип машины, для которой должна быть собрана library. dlltool имеет встроенный тип по умолчанию, в зависимости от того, как он был создан, но эта опция может переопределить его. Это обычно полезно только при создании DLL для процессора ARM, когда содержимое DLL фактически закодировано с использованием инструкций Thumb.

       -a
       --add-indirect
	   Указывает, что при создании файла экспортов dlltool должен добавить секцию, которая позволяет ссылаться на экспортируемые функции без использования библиотеки импорта. Что бы это ни значило!

       -U
       --add-underscore
	   Указывает, что при создании файла экспортов dlltool должен добавлять подчёркивание в начало имён всех экспортируемых символов.

       --no-leading-underscore
       --leading-underscore
	   Указывает, должны ли стандартные символы принудительно предваряться подчёркиванием или нет.

       --add-stdcall-underscore
	   Указывает, что при создании файла экспортов dlltool должен добавлять подчёркивание в начало имён экспортируемых stdcall-функций. Имена переменных и не-stdcall-функций не изменяются. Эта опция полезна при создании импортных библиотек, совместимых с GNU, для сторонних DLL, которые были собраны с использованием инструментов MS-Windows.

       -k
       --kill-at
	   Указывает, что суффиксы @<число> должны быть omitted из имён stdcall-функций, которые будут импортированы из DLL. Это полезно при создании библиотеки импорта для DLL, которая экспортирует stdcall-функции, но без обычного суффикса @<число> в имени символа.

	   Это не изменяет именование символов, предоставляемых библиотекой импорта программам, связанным с ней, а только записи в таблице импорта (т.е. секция .idata).

       -A
       --add-stdcall-alias
	   Указывает, что при создании файла экспортов dlltool должен добавлять псевдонимы для stdcall-символов без @<число> в дополнение к символам с @<число>.

       -p
       --ext-prefix-alias префикс
	   Заставляет dlltool создавать внешние псевдонимы для всех импортов DLL с указанным префиксом. Псевдонимы создаются для как внешних, так и импортных символов без начального подчёркивания.

       -x
       --no-idata4
	   Указывает, что при создании файлов экспортов и library dlltool должен пропускать секцию ".idata4". Это для совместимости с определёнными операционными системами.

       --use-nul-prefixed-import-tables
	   Указывает, что при создании файлов экспортов и library dlltool должен предварять ".idata4" и ".idata5" нулевым элементом. Это эмулирует старый способ генерации импортных библиотек "dlltool" от GNU. По умолчанию эта опция отключена.

       -c
       --no-idata5
	   Указывает, что при создании файлов экспортов и library dlltool должен пропускать секцию ".idata5". Это для совместимости с определёнными операционными системами.

       -I имя_файла
       --identify имя_файла
	   Указывает, что dlltool должен проверить библиотеку импорта, указанную в имени_файла, и вывести на "stdout" имя(я) связанной(ых) DLL(ы). Это может выполняться в дополнение к любым другим операциям, указанным другими опциями и аргументами. dlltool завершается с ошибкой, если библиотека импорта не существует или не является библиотекой импорта. См. также --identify-strict.

       --identify-strict
	   Изменяет поведение опции --identify так, что выводится ошибка, если имя_файла связано более чем с одной DLL.

       -i
       --interwork
	   Указывает, что dlltool должен помечать object в library-файле и файле экспортов, которые он производит, как поддерживающие взаимодействие между кодом ARM и Thumb.

       -n
       --nodelete
	   Заставляет dlltool сохранять временные файлы ассемблера, которые он использовал для создания файла экспортов. Если эта опция указана повторно, dlltool также сохранит временные object-файлы, которые он использует для создания library-файла.

       -t префикс
       --temp-prefix префикс
	   Заставляет dlltool использовать префикс при формировании имён временных файлов ассемблера и object. По умолчанию префикс временного файла генерируется из PID.

       -v
       --verbose
	   Заставляет dlltool описывать, что он делает.

       -h
       --help
	   Выводит список опций командной строки и выходит.

       -V
       --version
	   Выводит номер версии dlltool и выходит.

       @file
	   Читает опции командной строки из file. Прочитанные опции вставляются на место оригинальной опции @file. Если file не существует или не может быть прочитан, опция будет обработана буквально, без удаления.

	   Опции в file разделяются пробелами. Пробельный символ может быть включён в опцию, если вся опция заключена в одинарные или двойные кавычки. Любые символы (включая обратный слеш) могут быть включены путём добавления перед ними обратного слеша. Файл может сам содержать дополнительные опции @file; такие опции будут обработаны рекурсивно.

SEE ALSO
       Страницы Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или модифицировать этот документ в соответствии с условиями Лицензии GNU Free Documentation License, версии 1.3 или любой более поздней версии, опубликованной Free Software Foundation; без Неизменяемых Разделов, без Текстов Обложки и без Текстов Задней Обложки. Копия лицензии включена в раздел, озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-05-12			    DLLTOOL(1)
DLLTOOL(1)		     GNU Development Tools		    DLLTOOL(1)



NAME
       dlltool - create files needed to build and use DLLs

SYNOPSIS
       dlltool [-d|--input-def def-file-name]
	       [-b|--base-file base-file-name]
	       [-e|--output-exp exports-file-name]
	       [-z|--output-def def-file-name]
	       [-l|--output-lib library-file-name]
	       [-y|--output-delaylib library-file-name]
	       [--export-all-symbols] [--no-export-all-symbols]
	       [--exclude-symbols list]
	       [--no-default-excludes]
	       [-S|--as path-to-assembler] [-f|--as-flags options]
	       [-D|--dllname name] [-m|--machine machine]
	       [-a|--add-indirect]
	       [-U|--add-underscore] [--add-stdcall-underscore]
	       [-k|--kill-at] [-A|--add-stdcall-alias]
	       [-p|--ext-prefix-alias prefix]
	       [-x|--no-idata4] [-c|--no-idata5]
	       [--use-nul-prefixed-import-tables]
	       [-I|--identify library-file-name] [--identify-strict]
	       [-i|--interwork]
	       [-n|--nodelete] [-t|--temp-prefix prefix]
	       [-v|--verbose]
	       [-h|--help] [-V|--version]
	       [--no-leading-underscore] [--leading-underscore]
	       [--deterministic-libraries] [--non-deterministic-libraries]
	       [object-file ...]

DESCRIPTION
       dlltool reads its inputs, which can come from the -d and -b options as
       well as object files specified on the command line.  It then processes
       these inputs and if the -e option has been specified it creates a
       exports file.  If the -l option has been specified it creates a library
       file and if the -z option has been specified it creates a def file.
       Any or all of the -e, -l and -z options can be present in one
       invocation of dlltool.

       When creating a DLL, along with the source for the DLL, it is necessary
       to have three other files.  dlltool can help with the creation of these
       files.

       The first file is a .def file which specifies which functions are
       exported from the DLL, which functions the DLL imports, and so on.
       This is a text file and can be created by hand, or dlltool can be used
       to create it using the -z option.  In this case dlltool will scan the
       object files specified on its command line looking for those functions
       which have been specially marked as being exported and put entries for
       them in the .def file it creates.

       In order to mark a function as being exported from a DLL, it needs to
       have an -export:<name_of_function> entry in the .drectve section of the
       object file.  This can be done in C by using the asm() operator:

		 asm (".section .drectve");
		 asm (".ascii \"-export:my_func\"");

		 int my_func (void) { ... }

       The second file needed for DLL creation is an exports file.  This file
       is linked with the object files that make up the body of the DLL and it
       handles the interface between the DLL and the outside world.  This is a
       binary file and it can be created by giving the -e option to dlltool
       when it is creating or reading in a .def file.

       The third file needed for DLL creation is the library file that
       programs will link with in order to access the functions in the DLL (an
       `import library').  This file can be created by giving the -l option to
       dlltool when it is creating or reading in a .def file.

       If the -y option is specified, dlltool generates a delay-import library
       that can be used instead of the normal import library to allow a
       program to link to the dll only as soon as an imported function is
       called for the first time. The resulting executable will need to be
       linked to the static delayimp library containing __delayLoadHelper2(),
       which in turn will import LoadLibraryA and GetProcAddress from
       kernel32.

       dlltool builds the library file by hand, but it builds the exports file
       by creating temporary files containing assembler statements and then
       assembling these.  The -S command-line option can be used to specify
       the path to the assembler that dlltool will use, and the -f option can
       be used to pass specific flags to that assembler.  The -n can be used
       to prevent dlltool from deleting these temporary assembler files when
       it is done, and if -n is specified twice then this will prevent dlltool
       from deleting the temporary object files it used to build the library.

       Here is an example of creating a DLL from a source file dll.c and also
       creating a program (from an object file called program.o) that uses
       that DLL:

		 gcc -c dll.c
		 dlltool -e exports.o -l dll.lib dll.o
		 gcc dll.o exports.o -o dll.dll
		 gcc program.o dll.lib -o program

       dlltool may also be used to query an existing import library to
       determine the name of the DLL to which it is associated.	 See the
       description of the -I or --identify option.

OPTIONS
       The command-line options have the following meanings:

       -d filename
       --input-def filename
	   Specifies the name of a .def file to be read in and processed.

       -b filename
       --base-file filename
	   Specifies the name of a base file to be read in and processed.  The
	   contents of this file will be added to the relocation section in
	   the exports file generated by dlltool.

       -e filename
       --output-exp filename
	   Specifies the name of the export file to be created by dlltool.

       -z filename
       --output-def filename
	   Specifies the name of the .def file to be created by dlltool.

       -l filename
       --output-lib filename
	   Specifies the name of the library file to be created by dlltool.

       -y filename
       --output-delaylib filename
	   Specifies the name of the delay-import library file to be created
	   by dlltool.

       --deterministic-libraries
       --non-deterministic-libraries
	   When creating output libraries in response to either the
	   --output-lib or --output-delaylib options either use the value of
	   zero for any timestamps, user ids and group ids created
	   (--deterministic-libraries) or the actual timestamps, user ids and
	   group ids (--non-deterministic-libraries).

       --export-all-symbols
	   Treat all global and weak defined symbols found in the input object
	   files as symbols to be exported.  There is a small list of symbols
	   which are not exported by default; see the --no-default-excludes
	   option.  You may add to the list of symbols to not export by using
	   the --exclude-symbols option.

       --no-export-all-symbols
	   Only export symbols explicitly listed in an input .def file or in
	   .drectve sections in the input object files.	 This is the default
	   behaviour.  The .drectve sections are created by dllexport
	   attributes in the source code.

       --exclude-symbols list
	   Do not export the symbols in list.  This is a list of symbol names
	   separated by comma or colon characters.  The symbol names should
	   not contain a leading underscore.  This is only meaningful when
	   --export-all-symbols is used.

       --no-default-excludes
	   When --export-all-symbols is used, it will by default avoid
	   exporting certain special symbols.  The current list of symbols to
	   avoid exporting is DllMain@12, DllEntryPoint@0, impure_ptr.	You
	   may use the --no-default-excludes option to go ahead and export
	   these special symbols.  This is only meaningful when
	   --export-all-symbols is used.

       -S path
       --as path
	   Specifies the path, including the filename, of the assembler to be
	   used to create the exports file.

       -f options
       --as-flags options
	   Specifies any specific command-line options to be passed to the
	   assembler when building the exports file.  This option will work
	   even if the -S option is not used.  This option only takes one
	   argument, and if it occurs more than once on the command line, then
	   later occurrences will override earlier occurrences.	 So if it is
	   necessary to pass multiple options to the assembler they should be
	   enclosed in double quotes.

       -D name
       --dll-name name
	   Specifies the name to be stored in the .def file as the name of the
	   DLL when the -e option is used.  If this option is not present,
	   then the filename given to the -e option will be used as the name
	   of the DLL.

       -m machine
       -machine machine
	   Specifies the type of machine for which the library file should be
	   built.  dlltool has a built in default type, depending upon how it
	   was created, but this option can be used to override that.  This is
	   normally only useful when creating DLLs for an ARM processor, when
	   the contents of the DLL are actually encode using Thumb
	   instructions.

       -a
       --add-indirect
	   Specifies that when dlltool is creating the exports file it should
	   add a section which allows the exported functions to be referenced
	   without using the import library.  Whatever the hell that means!

       -U
       --add-underscore
	   Specifies that when dlltool is creating the exports file it should
	   prepend an underscore to the names of all exported symbols.

       --no-leading-underscore
       --leading-underscore
	   Specifies whether standard symbol should be forced to be prefixed,
	   or not.

       --add-stdcall-underscore
	   Specifies that when dlltool is creating the exports file it should
	   prepend an underscore to the names of exported stdcall functions.
	   Variable names and non-stdcall function names are not modified.
	   This option is useful when creating GNU-compatible import libs for
	   third party DLLs that were built with MS-Windows tools.

       -k
       --kill-at
	   Specifies that @<number> suffixes should be omitted from the names
	   of stdcall functions that will be imported from the DLL.  This is
	   useful when creating an import library for a DLL which exports
	   stdcall functions but without the usual @<number> symbol name
	   suffix.

	   This does not change the naming of symbols provided by the import
	   library to programs linked against it, but only the entries in the
	   import table (ie the .idata section).

       -A
       --add-stdcall-alias
	   Specifies that when dlltool is creating the exports file it should
	   add aliases for stdcall symbols without @ <number> in addition to
	   the symbols with @ <number>.

       -p
       --ext-prefix-alias prefix
	   Causes dlltool to create external aliases for all DLL imports with
	   the specified prefix.  The aliases are created for both external
	   and import symbols with no leading underscore.

       -x
       --no-idata4
	   Specifies that when dlltool is creating the exports and library
	   files it should omit the ".idata4" section.	This is for
	   compatibility with certain operating systems.

       --use-nul-prefixed-import-tables
	   Specifies that when dlltool is creating the exports and library
	   files it should prefix the ".idata4" and ".idata5" by zero an
	   element. This emulates old gnu import library generation of
	   "dlltool". By default this option is turned off.

       -c
       --no-idata5
	   Specifies that when dlltool is creating the exports and library
	   files it should omit the ".idata5" section.	This is for
	   compatibility with certain operating systems.

       -I filename
       --identify filename
	   Specifies that dlltool should inspect the import library indicated
	   by filename and report, on "stdout", the name(s) of the associated
	   DLL(s).  This can be performed in addition to any other operations
	   indicated by the other options and arguments.  dlltool fails if the
	   import library does not exist or is not actually an import library.
	   See also --identify-strict.

       --identify-strict
	   Modifies the behavior of the --identify option, such that an error
	   is reported if filename is associated with more than one DLL.

       -i
       --interwork
	   Specifies that dlltool should mark the objects in the library file
	   and exports file that it produces as supporting interworking
	   between ARM and Thumb code.

       -n
       --nodelete
	   Makes dlltool preserve the temporary assembler files it used to
	   create the exports file.  If this option is repeated then dlltool
	   will also preserve the temporary object files it uses to create the
	   library file.

       -t prefix
       --temp-prefix prefix
	   Makes dlltool use prefix when constructing the names of temporary
	   assembler and object files.	By default, the temp file prefix is
	   generated from the pid.

       -v
       --verbose
	   Make dlltool describe what it is doing.

       -h
       --help
	   Displays a list of command-line options and then exits.

       -V
       --version
	   Displays dlltool's version number and then exits.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       The Info pages for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    DLLTOOL(1)

SIZE(1)			     Инструменты разработки GNU		       SIZE(1)



NAME
       size - список размеров разделов и общего размера бинарных файлов

SYNOPSIS
       size [-A|-B|-G|--format=compatibility]
	    [--help]
	    [-d|-o|-x|--radix=number]
	    [--common]
	    [-t|--totals]
	    [--target=bfdname] [-V|--version]
	    [-f]
	    [objfile...]

DESCRIPTION
       Утилита GNU size выводит размеры разделов и общий размер для каждого
       из бинарных файлов objfile из списка аргументов. По умолчанию, для
       каждого файла или каждого модуля, если файл является архивом,
       генерируется одна строка вывода.

       objfile... — это файлы, которые нужно проверить. Если ни один не
       указан, будет использован файл "a.out".

OPTIONS
       Параметры командной строки имеют следующее значение:

       -A
       -B
       -G
       --format=compatibility
	   Используя один из этих параметров, вы можете выбрать, будет ли
	   вывод от GNU size похож на вывод от size System V (используя -A, или
	   --format=sysv), или на вывод от size Berkeley (используя -B, или
	   --format=berkeley). Значение по умолчанию — формат в одну строку,
	   похожий на Berkeley. Кроме того, вы можете выбрать формат вывода GNU
	   (используя -G, или --format=gnu), это похоже на формат вывода
	   Berkeley, но размеры подсчитываются по-другому.

	   Вот пример формата вывода Berkeley (по умолчанию):

		   $ size --format=Berkeley ranlib size
		      text    data     bss     dec     hex filename
		    294880   81920   11592  388392   5ed28 ranlib
		    294880   81920   11888  388688   5ee50 size

	   В стиле вывода Berkeley только для чтения данные учитываются в
	   столбце "text", а не в "data", столбцы "dec" и "hex" отображаются
	   как сумма столбцов "text", "data" и "bss" в десятичной и
	   шестнадцатеричной системе соответственно.

	   В формате GNU только для чтения данные учитываются в столбце "data",
	   а не в "text", и сумма столбцов "text", "data" и "bss" отображается
	   только один раз, в столбце "total". Параметр --radix можно
	   использовать для изменения основания числа для всех столбцов. Вот те
	   же данные, отображаемые в соглашениях GNU:

		   $ size --format=GNU ranlib size
			 text	    data	bss	 total filename
		       279880	   96920      11592	388392 ranlib
		       279880	   96920      11888	388688 size

	   Это те же данные, но отображаемые ближе к соглашениям System V:

		   $ size --format=SysV ranlib size
		   ranlib  :
		   section	   size		addr
		   .text	 294880		8192
		   .data	  81920	      303104
		   .bss		  11592	      385024
		   Total	 388392


		   size	 :
		   section	   size		addr
		   .text	 294880		8192
		   .data	  81920	      303104
		   .bss		  11888	      385024
		   Total	 388688

       --help
       -h
       -H
       -?  Показать сводку допустимых аргументов и параметров.

       -d
       -o
       -x
       --radix=number
	   Используя один из этих параметров, вы можете управлять тем, будет
	   ли размер каждого раздела указан в десятичной системе (-d, или
	   --radix=10); восьмеричной (-o, или --radix=8); или шестнадцатеричной
	   (-x, или --radix=16). В --radix=number поддерживаются только три
	   значения (8, 10, 16). Общий размер всегда указывается в двух
	   системах: десятичной и шестнадцатеричной для вывода -d или -x, или
	   восьмеричной и шестнадцатеричной, если используется -o.

       --common
	   Выводить общий размер общих символов в каждом файле. При
	   использовании формата Berkeley или GNU они включаются в размер bss.

       -t
       --totals
	   Показывать итоги для всех перечисленных объектов (только для
	   режима формата Berkeley или GNU).

       --target=bfdname
	   Указать, что формат объектного кода для objfile — bfdname. Этот
	   параметр может быть не нужен; size может автоматически распознавать
	   многие форматы.

       -v
       -V
       --version
	   Вывести номер версии size.

       -f  Игнорируется. Этот параметр используется в других версиях
	   программы size, но не поддерживается в версии GNU Binutils.

       @file
	   Читать параметры командной строки из файла. Прочитанные параметры
	   вставляются на место оригинального параметра @file. Если файл не
	   существует или не может быть прочитан, параметр будет обработан
	   буквально, без удаления.

	   Параметры в файле разделяются пробелами. Пробельный символ можно
	   включить в параметр, заключая весь параметр в одинарные или
	   двойные кавычки. Любые символы (включая обратную косую черту) можно
	   включить, предваряя символ обратной косой чертой. Файл может
	   содержать дополнительные параметры @file; такие параметры будут
	   обработаны рекурсивно.

SEE ALSO
       ar(1), objdump(1), readelf(1), и разделы Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			       SIZE(1)
SIZE(1)			     GNU Development Tools		       SIZE(1)



NAME
       size - list section sizes and total size of binary files

SYNOPSIS
       size [-A|-B|-G|--format=compatibility]
	    [--help]
	    [-d|-o|-x|--radix=number]
	    [--common]
	    [-t|--totals]
	    [--target=bfdname] [-V|--version]
	    [-f]
	    [objfile...]

DESCRIPTION
       The GNU size utility lists the section sizes and the total size for
       each of the binary files objfile on its argument list.  By default, one
       line of output is generated for each file or each module if the file is
       an archive.

       objfile... are the files to be examined.	 If none are specified, the
       file "a.out" will be used instead.

OPTIONS
       The command-line options have the following meanings:

       -A
       -B
       -G
       --format=compatibility
	   Using one of these options, you can choose whether the output from
	   GNU size resembles output from System V size (using -A, or
	   --format=sysv), or Berkeley size (using -B, or --format=berkeley).
	   The default is the one-line format similar to Berkeley's.
	   Alternatively, you can choose the GNU format output (using -G, or
	   --format=gnu), this is similar to Berkeley's output format, but
	   sizes are counted differently.

	   Here is an example of the Berkeley (default) format of output from
	   size:

		   $ size --format=Berkeley ranlib size
		      text    data     bss     dec     hex filename
		    294880   81920   11592  388392   5ed28 ranlib
		    294880   81920   11888  388688   5ee50 size

	   The Berkeley style output counts read only data in the "text"
	   column, not in the "data" column, the "dec" and "hex" columns both
	   display the sum of the "text", "data", and "bss" columns in decimal
	   and hexadecimal respectively.

	   The GNU format counts read only data in the "data" column, not the
	   "text" column, and only displays the sum of the "text", "data", and
	   "bss" columns once, in the "total" column.  The --radix option can
	   be used to change the number base for all columns.  Here is the
	   same data displayed with GNU conventions:

		   $ size --format=GNU ranlib size
			 text	    data	bss	 total filename
		       279880	   96920      11592	388392 ranlib
		       279880	   96920      11888	388688 size

	   This is the same data, but displayed closer to System V
	   conventions:

		   $ size --format=SysV ranlib size
		   ranlib  :
		   section	   size		addr
		   .text	 294880		8192
		   .data	  81920	      303104
		   .bss		  11592	      385024
		   Total	 388392


		   size	 :
		   section	   size		addr
		   .text	 294880		8192
		   .data	  81920	      303104
		   .bss		  11888	      385024
		   Total	 388688

       --help
       -h
       -H
       -?  Show a summary of acceptable arguments and options.

       -d
       -o
       -x
       --radix=number
	   Using one of these options, you can control whether the size of
	   each section is given in decimal (-d, or --radix=10); octal (-o, or
	   --radix=8); or hexadecimal (-x, or --radix=16).  In --radix=number,
	   only the three values (8, 10, 16) are supported.  The total size is
	   always given in two radices; decimal and hexadecimal for -d or -x
	   output, or octal and hexadecimal if you're using -o.

       --common
	   Print total size of common symbols in each file.  When using
	   Berkeley or GNU format these are included in the bss size.

       -t
       --totals
	   Show totals of all objects listed (Berkeley or GNU format mode
	   only).

       --target=bfdname
	   Specify that the object-code format for objfile is bfdname.	This
	   option may not be necessary; size can automatically recognize many
	   formats.

       -v
       -V
       --version
	   Display the version number of size.

       -f  Ignored.  This option is used by other versions of the size
	   program, but it is not supported by the GNU Binutils version.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       ar(1), objdump(1), readelf(1), and the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			       SIZE(1)

WINDRES(1)		     Инструменты разработки GNU		    WINDRES(1)



NAME
       windres - манипулирование ресурсами Windows

SYNOPSIS
       windres [options] [input-file] [output-file]

DESCRIPTION
       windres читает ресурсы из входного файла и копирует их в выходной файл.  Каждый файл может быть в одном из трёх форматов:

       "rc"
	   Текстовый формат, читаемый Компилятором Ресурсов.

       "res"
	   Двоичный формат, генерируемый Компилятором Ресурсов.

       "coff"
	   COFF-объект или исполняемый файл.

       Точное описание этих различных форматов доступно в документации от Microsoft.

       Когда windres преобразует из формата "rc" в формат "res", он действует как Компилятор Ресурсов Windows.  Когда windres преобразует из формата "res" в формат "coff", он действует как программа Windows "CVTRES".

       Когда windres генерирует файл "rc", вывод похож, но не идентичен формату, ожидаемому для входа.  Когда входной файл "rc" ссылается на внешнее имя файла, выходной файл "rc" вместо этого включит содержимое файла.

       Если формат входа или выхода не указан, windres угадает на основе имени файла или, для входного файла, содержимого файла.  Файл с расширением .rc будет рассматриваться как файл "rc", файл с расширением .res будет рассматриваться как файл "res", а файл с расширением .o или .exe будет рассматриваться как файл "coff".

       Если выходной файл не указан, windres выведет ресурсы в формате "rc" в стандартный вывод.

       Обычное использование заключается в том, чтобы написать файл "rc", использовать windres для преобразования его в файл COFF-объекта, а затем связать файл COFF с вашим приложением.  Это сделает ресурсы, описанные в файле "rc", доступными для Windows.

OPTIONS
       -i filename
       --input filename
	   Имя входного файла.  Если эта опция не используется, то windres использует первый аргумент, не являющийся опцией, как имя входного файла.  Если нет аргументов, не являющихся опциями, то windres будет читать из стандартного ввода.  windres не может читать файл COFF из стандартного ввода.

       -o filename
       --output filename
	   Имя выходного файла.  Если эта опция не используется, то windres использует первый аргумент, не являющийся опцией, после любого, использованного для имени входного файла, как имя выходного файла.  Если нет аргументов, не являющихся опциями, то windres будет писать в стандартный вывод.  windres не может писать файл COFF в стандартный вывод.  Обратите внимание, для совместимости с rc опция -fo также принимается, но её использование не рекомендуется.

       -J format
       --input-format format
	   Формат входа для чтения.  format может быть res, rc или coff.  Если формат входа не указан, windres угадает, как описано выше.

       -O format
       --output-format format
	   Формат выхода для генерации.  format может быть res, rc или coff.  Если формат выхода не указан, windres угадает, как описано выше.

       -F target
       --target target
	   Укажите формат BFD для использования с файлом COFF как входом или выходом.  Это имя цели BFD; вы можете использовать опцию --help, чтобы увидеть список поддерживаемых целей.  Нормально windres использует формат по умолчанию, который является первым в списке, выводимом опцией --help.

       --preprocessor program
	   Когда windres читает файл "rc", он сначала пропускает его через препроцессор C.  Эта опция может быть использована для указания препроцессора.  Препроцессор по умолчанию - "gcc".

       --preprocessor-arg option
	   Когда windres читает файл "rc", он сначала пропускает его через препроцессор C.  Эта опция может быть использована для указания дополнительного текста, передаваемого препроцессору в его командной строке.  Эта опция может быть использована несколько раз для добавления нескольких опций в командную строку препроцессора.  Если опция --preprocessor не указана, то будет использован набор опций препроцессора по умолчанию, с любыми опциями --preprocessor-arg, размещаемыми после них на командной строке.  Эти опции по умолчанию - "-E", "-xc-header" и "-DRC_INVOKED".

       -I directory
       --include-dir directory
	   Укажите каталог включений для использования при чтении файла "rc".  windres передаст это препроцессору как опцию -I.  windres также будет искать в этом каталоге при поиске файлов, указанных в файле "rc".  Если аргумент, переданный этой команде, соответствует одному из поддерживаемых форматов (как описано в опции -J), будет выдано предупреждение об устаревшем использовании, и поведение будет таким же, как у опции -J.  Новые программы не должны использовать это поведение.  Если каталог совпадает с форматом, просто добавьте перед ним ./, чтобы отключить обратную совместимость.

       -D target
       --define sym[=val]
	   Укажите опцию -D для передачи препроцессору при чтении файла "rc".

       -U target
       --undefine sym
	   Укажите опцию -U для передачи препроцессору при чтении файла "rc".

       -r  Игнорируется для совместимости с rc.

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

       -c val
       --codepage val
	   Укажите кодовую страницу по умолчанию для использования при чтении файла "rc".  val должен быть шестнадцатеричным числом, начинающимся с 0x, или десятичным кодом кодовой страницы.  Допустимый диапазон - от нуля до 0xffff, но допустимость кодовой страницы зависит от хоста и конфигурации.

       -l val
       --language val
	   Укажите язык по умолчанию для использования при чтении файла "rc".  val должен быть шестнадцатеричным кодом языка.  Нижние восемь бит - это язык, а верхние восемь бит - подязык.

       --use-temp-file
	   Использовать временный файл вместо popen для чтения вывода препроцессора.  Используйте эту опцию, если реализация popen на хосте имеет ошибки (например, в определённых неанглийских версиях Windows 95 и Windows 98 известно, что popen имеет ошибки, где вывод вместо этого уходит в консоль).

       --no-use-temp-file
	   Использовать popen, а не временный файл, для чтения вывода препроцессора.  Это поведение по умолчанию.

       -h
       --help
	   Выводит сводку использования.

       -V
       --version
	   Выводит номер версии windres.

       --yydebug
	   Если windres скомпилирован с "YYDEBUG", определённым как 1, это включит отладку парсера.

       @file
	   Читать опции командной строки из файла.  Прочитанные опции вставляются на место оригинальной опции @file.  Если файл не существует или не может быть прочитан, опция будет обработана буквально, без удаления.

	   Опции в файле разделяются пробелами.  Пробельный символ может быть включён в опцию, если окружить всю опцию в одинарные или двойные кавычки.  Любые символы (включая обратную косую черту) могут быть включены путём добавления перед ними обратной косой черты.  Файл может сам содержать дополнительные опции @file; такие опции будут обработаны рекурсивно.

SEE ALSO
       записи Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    WINDRES(1)
WINDRES(1)		     GNU Development Tools		    WINDRES(1)



NAME
       windres - manipulate Windows resources

SYNOPSIS
       windres [options] [input-file] [output-file]

DESCRIPTION
       windres reads resources from an input file and copies them into an
       output file.  Either file may be in one of three formats:

       "rc"
	   A text format read by the Resource Compiler.

       "res"
	   A binary format generated by the Resource Compiler.

       "coff"
	   A COFF object or executable.

       The exact description of these different formats is available in
       documentation from Microsoft.

       When windres converts from the "rc" format to the "res" format, it is
       acting like the Windows Resource Compiler.  When windres converts from
       the "res" format to the "coff" format, it is acting like the Windows
       "CVTRES" program.

       When windres generates an "rc" file, the output is similar but not
       identical to the format expected for the input.	When an input "rc"
       file refers to an external filename, an output "rc" file will instead
       include the file contents.

       If the input or output format is not specified, windres will guess
       based on the file name, or, for the input file, the file contents.  A
       file with an extension of .rc will be treated as an "rc" file, a file
       with an extension of .res will be treated as a "res" file, and a file
       with an extension of .o or .exe will be treated as a "coff" file.

       If no output file is specified, windres will print the resources in
       "rc" format to standard output.

       The normal use is for you to write an "rc" file, use windres to convert
       it to a COFF object file, and then link the COFF file into your
       application.  This will make the resources described in the "rc" file
       available to Windows.

OPTIONS
       -i filename
       --input filename
	   The name of the input file.	If this option is not used, then
	   windres will use the first non-option argument as the input file
	   name.  If there are no non-option arguments, then windres will read
	   from standard input.	 windres can not read a COFF file from
	   standard input.

       -o filename
       --output filename
	   The name of the output file.	 If this option is not used, then
	   windres will use the first non-option argument, after any used for
	   the input file name, as the output file name.  If there is no non-
	   option argument, then windres will write to standard output.
	   windres can not write a COFF file to standard output.  Note, for
	   compatibility with rc the option -fo is also accepted, but its use
	   is not recommended.

       -J format
       --input-format format
	   The input format to read.  format may be res, rc, or coff.  If no
	   input format is specified, windres will guess, as described above.

       -O format
       --output-format format
	   The output format to generate.  format may be res, rc, or coff.  If
	   no output format is specified, windres will guess, as described
	   above.

       -F target
       --target target
	   Specify the BFD format to use for a COFF file as input or output.
	   This is a BFD target name; you can use the --help option to see a
	   list of supported targets.  Normally windres will use the default
	   format, which is the first one listed by the --help option.

       --preprocessor program
	   When windres reads an "rc" file, it runs it through the C
	   preprocessor first.	This option may be used to specify the
	   preprocessor to use.	 The default preprocessor is "gcc".

       --preprocessor-arg option
	   When windres reads an "rc" file, it runs it through the C
	   preprocessor first.	This option may be used to specify additional
	   text to be passed to preprocessor on its command line.  This option
	   can be used multiple times to add multiple options to the
	   preprocessor command line.  If the --preprocessor option has not
	   been specified then a default set of preprocessor arguments will be
	   used, with any --preprocessor-arg options being placed after them
	   on the command line.	 These default arguments are "-E",
	   "-xc-header" and "-DRC_INVOKED".

       -I directory
       --include-dir directory
	   Specify an include directory to use when reading an "rc" file.
	   windres will pass this to the preprocessor as an -I option.
	   windres will also search this directory when looking for files
	   named in the "rc" file.  If the argument passed to this command
	   matches any of the supported formats (as described in the -J
	   option), it will issue a deprecation warning, and behave just like
	   the -J option.  New programs should not use this behaviour.	If a
	   directory happens to match a format, simple prefix it with ./ to
	   disable the backward compatibility.

       -D target
       --define sym[=val]
	   Specify a -D option to pass to the preprocessor when reading an
	   "rc" file.

       -U target
       --undefine sym
	   Specify a -U option to pass to the preprocessor when reading an
	   "rc" file.

       -r  Ignored for compatibility with rc.

       -v  Enable verbose mode.	 This tells you what the preprocessor is if
	   you didn't specify one.

       -c val
       --codepage val
	   Specify the default codepage to use when reading an "rc" file.  val
	   should be a hexadecimal prefixed by 0x or decimal codepage code.
	   The valid range is from zero up to 0xffff, but the validity of the
	   codepage is host and configuration dependent.

       -l val
       --language val
	   Specify the default language to use when reading an "rc" file.  val
	   should be a hexadecimal language code.  The low eight bits are the
	   language, and the high eight bits are the sublanguage.

       --use-temp-file
	   Use a temporary file to instead of using popen to read the output
	   of the preprocessor. Use this option if the popen implementation is
	   buggy on the host (eg., certain non-English language versions of
	   Windows 95 and Windows 98 are known to have buggy popen where the
	   output will instead go the console).

       --no-use-temp-file
	   Use popen, not a temporary file, to read the output of the
	   preprocessor.  This is the default behaviour.

       -h
       --help
	   Prints a usage summary.

       -V
       --version
	   Prints the version number for windres.

       --yydebug
	   If windres is compiled with "YYDEBUG" defined as 1, this will turn
	   on parser debugging.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    WINDRES(1)

GPROFNG-DISPLAY-HTML(1)		 User Commands	       GPROFNG-DISPLAY-HTML(1)



NAME
       gprofng-display-html - Генерация структуры каталога на основе HTML для просмотра профилей

SYNOPSIS
       gprofng display html [option(s)] experiment(s)

DESCRIPTION
       Обрабатывает один или несколько экспериментов для генерации каталога, содержащего файл index.html, который может быть использован для просмотра данных эксперимента.

OPTIONS
       --version
	   Вывести номер версии и выйти.

       --help
	   Вывести информацию об использовании и выйти.

       --verbose
	   Включить режим подробного вывода для показа диагностических сообщений о обработке данных. По умолчанию режим подробного вывода отключен.

       -d [db-vol-size], --debug[=db-vol-size]
	   Управлять выводом информации отладки во время выполнения для помощи в устранении неисправностей или дальнейшей разработке этого инструмента.

	   Параметр db-vol-size управляет объемом вывода и может быть одним из значений: s, S, m, M, l, L, xl или XL. Если db-vol-size не установлен, выводится умеренное количество информации. Это эквивалентно выбору s или S. Объем данных увеличивается по мере роста размера. Обратите внимание, что в настоящее время l/L эквивалентно xl/XL, но это может измениться в будущих обновлениях. По умолчанию режим отладки отключен.

       --highlight-percentage=value
	   Установить процентное значение в интервале [0,100] для выделения и цветового кодирования строк исходного кода, а также инструкций, которые находятся в пределах этого процента от максимального значения метрики. По умолчанию значение составляет 90 (%). Значение ноль отключает эту функцию.

       -o dirname, --output=dirname
	   Использовать dirname в качестве имени каталога для хранения результатов. В отсутствие этой опции по умолчанию используется имя display.<n>.html. Этот каталог создается в текущем каталоге. Число <n> — это первый положительный целочисленный номер, не используемый в этой схеме именования. Существующий каталог с таким же именем не перезаписывается. Если каталог уже существует, выводится сообщение об ошибке и инструмент завершает работу.

       -O dirname, --overwrite=dirname
	   Использовать dirname в качестве имени каталога для хранения результатов. В отсутствие этой опции по умолчанию используется имя display.<n>.html. Этот каталог создается в текущем каталоге. Число <n> — это первый положительный целочисленный номер, не используемый в этой схеме именования. Существующий каталог с таким же именем тихо перезаписывается.

       -q,  --quiet
	   Отключить вывод всех предупреждений, сообщений отладки, подробных сообщений и любых других. Если включено, настройки для verbose и debug принимаются, но игнорируются. С этой опцией на экран выводится только информация об ошибках. По умолчанию режим тихой работы отключен.

       --nowarnings
	   Отключить вывод сообщений предупреждений в stdout. По умолчанию сообщения предупреждений выводятся.

NOTES
       -   Опции и значения чувствительны к регистру.

       -   В этом выпуске синтаксис опций был изменен для большей совместимости с другими инструментами и командами.

	   Опции, которые ранее имели только значения on или off, теперь действуют как переключатели. Опция отменяет значение по умолчанию. Например, по умолчанию режим verbose отключен. Он включается с помощью опции --verbose.

	   Длинные опции, начинающиеся с "--", которые требуют значения, ожидают знак "=" между опцией и значением.

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

	   Для помощи в переходе выводится предупреждающее сообщение, если используется устаревший синтаксис, значение или оба.

       -   Опция -hp все еще принимается, но будет устаревшей в будущей версии. Используйте опцию --highlight-percentage вместо нее.

       -   При установке имени каталога для хранения файлов HTML убедитесь, что umask установлен на правильные разрешения доступа.

       -   Независимо от настройки сообщений предупреждений, если есть предупреждения, они доступны через основную страницу index.html.

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

SEE ALSO
       gprofng(1), gprofng-archive(1), gprofng-collect-app(1),
       gprofng-display-src(1), gprofng-display-text(1)

       Руководство пользователя для gprofng поддерживается в виде руководства Texinfo. Если программы info и gprofng установлены правильно, команда info gprofng должна предоставить доступ к этому документу.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ на условиях Лицензии GNU Free Documentation License, версии 1.3 или любой более поздней версии, опубликованной Free Software Foundation; без Инвариантных Разделов, без Текстов на Обложке и без Текстов на Задней Обложке. Копия лицензии включена в раздел, озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-02-02	       GPROFNG-DISPLAY-HTML(1)
GPROFNG-DISPLAY-HTML(1)		 User Commands	       GPROFNG-DISPLAY-HTML(1)



NAME
       gprofng-display-html - Generate an HTML based directory structure to
       browse the profiles

SYNOPSIS
       gprofng display html [option(s)] experiment(s)

DESCRIPTION
       Process one or more experiments to generate a directory containing the
       index.html file that may be used to browse the experiment data.

OPTIONS
       --version
	   Print the version number and exit.

       --help
	   Print usage information and exit.

       --verbose
	   Enable verbose mode to show diagnostic messages about the
	   processing of the data.  By default verbose mode is disabled.

       -d [db-vol-size], --debug[=db-vol-size]
	   Control the printing of run time debug information to assist with
	   the troubleshooting, or further development of this tool.

	   The db-vol-size parameter controls the output volume and is one
	   from the list s, S, m, M, l, L, xl, or XL.  If db-vol-size is not
	   set, a modest amount of information is printed.  This is equivalent
	   to select s, or S.  The volume of data goes up as the size
	   increases.  Note that currently l/L is equivalent to xl/XL, but
	   this is expected to change in future updates.  By default debug
	   mode is disabled.

       --highlight-percentage=value
	   Set a percentage value in the interval [0,100] to select and color
	   code source lines, as well as instructions, that are within this
	   percentage of the maximum metric value(s).  The default is 90 (%).
	   A value of zero disables this feature.

       -o dirname, --output=dirname
	   Use dirname as the directory name to store the results in.  In
	   absence of this option, the default name is display.<n>.html.  This
	   directory is created in the current directory.  The number <n> is
	   the first positive integer number not in use in this naming scheme.
	   An existing directory with the same name is not overwritten.	 In
	   case the directory exists already, an error message is printed and
	   the tool terminates.

       -O dirname, --overwrite=dirname
	   Use dirname as the directory name to store the results in.  In
	   absence of this option, the default name is display.<n>.html.  This
	   directory is created in the current directory.  The number <n> is
	   the first positive integer number not in use in this naming scheme.
	   An existing directory with the same name is silently overwritten.

       -q,  --quiet
	   Disable the display of all warning, debug, verbose and any other
	   messages.  If enabled, the settings for verbose and debug are
	   accepted, but ignored.  With this option, there is no screen
	   output, other than errors.  By default quiet mode is disabled.

       --nowarnings
	   Disable the printing of warning messages on stdout.	By default
	   warning messages are printed.

NOTES
       -   The options and values are case sensitive.

       -   In this release, the option syntax has changed to be more compliant
	   with other tools and commands.

	   The options that used to have an on or off value only, now act as a
	   switch.  The option negates the default setting.  For example, by
	   default, verbose mode is disabled.  It is enabled by using the
	   --verbose option.

	   The long options, those starting with "--", that require a value,
	   expect the "=" sign between the option and the value.

	   While the previous syntax and choices are accepted still, we
	   strongly recommend to change the usage of the options according to
	   the new syntax and values.  At some point, these legacy settings
	   may no longer be accepted.

	   To assist with the transition, a warning message is shown if the
	   legacy syntax, or value, or both, are used.

       -   The -hp option is still accepted, but it will be deprecated in a
	   future release.  Use the --highlight-percentage option instead.

       -   When setting a directory name for the HTML files to be stored in,
	   make sure that umask is set to the correct access permissions.

       -   Regardless of the setting for the warning messages, if there are
	   warnings, they are accessible through the main index.html page.

       -   The tool tries to accumulate as many warnings and errors as
	   possible, before taking action.  In this way, it is easier to
	   address multiple issues at once.  As a result of this approach, it
	   may be that the messages do not show immediately.  In particular,
	   warnings are shown towards the end of the execution, but one or
	   more errors will terminate execution before the processing begins.

SEE ALSO
       gprofng(1), gprofng-archive(1), gprofng-collect-app(1),
       gprofng-display-src(1), gprofng-display-text(1)

       The user guide for gprofng is maintained as a Texinfo manual.  If the
       info and gprofng programs are correctly installed, the command info
       gprofng should give access to this document.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02	       GPROFNG-DISPLAY-HTML(1)

OBJDUMP(1)		     Инструменты разработки GNU		    OBJDUMP(1)



NAME
       objdump - отображение информации из объектных файлов

SYNOPSIS
       objdump [-a|--archive-headers]
	       [-b bfdname|--target=bfdname]
	       [-C|--demangle[=style] ]
	       [-d|--disassemble[=symbol]]
	       [-D|--disassemble-all]
	       [-z|--disassemble-zeroes]
	       [-EB|-EL|--endian={big | little }]
	       [-f|--file-headers]
	       [-F|--file-offsets]
	       [--file-start-context]
	       [-g|--debugging]
	       [-e|--debugging-tags]
	       [-h|--section-headers|--headers]
	       [-i|--info]
	       [-j section|--section=section]
	       [-l|--line-numbers]
	       [-S|--source]
	       [--source-comment[=text]]
	       [-m machine|--architecture=machine]
	       [-M options|--disassembler-options=options]
	       [-p|--private-headers]
	       [-P options|--private=options]
	       [-r|--reloc]
	       [-R|--dynamic-reloc]
	       [-s|--full-contents]
	       [-Z|--decompress]
	       [-W[lLiaprmfFsoORtUuTgAck]|
		--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links]]
	       [-WK|--dwarf=follow-links]
	       [-WN|--dwarf=no-follow-links]
	       [-wD|--dwarf=use-debuginfod]
	       [-wE|--dwarf=do-not-use-debuginfod]
	       [-L|--process-links]
	       [--ctf=section]
	       [--sframe=section]
	       [-G|--stabs]
	       [-t|--syms]
	       [-T|--dynamic-syms]
	       [-x|--all-headers]
	       [-w|--wide]
	       [--start-address=address]
	       [--stop-address=address]
	       [--no-addresses]
	       [--prefix-addresses]
	       [--[no-]show-raw-insn]
	       [--adjust-vma=offset]
	       [--show-all-symbols]
	       [--dwarf-depth=n]
	       [--dwarf-start=n]
	       [--ctf-parent=section]
	       [--no-recurse-limit|--recurse-limit]
	       [--special-syms]
	       [--prefix=prefix]
	       [--prefix-strip=level]
	       [--insn-width=width]
	       [--visualize-jumps[=color|=extended-color|=off]
	       [--disassembler-color=[off|terminal|on|extended]
	       [-U method] [--unicode=method]
	       [-V|--version]
	       [-H|--help]
	       objfile...

DESCRIPTION
       objdump отображает информацию об одном или нескольких объектных файлах. Опции управляют тем, какую именно информацию отображать. Эта информация в основном полезна для программистов, работающих с инструментами компиляции, в отличие от программистов, которые просто хотят скомпилировать и запустить свою программу.

       objfile... — это объектные файлы, которые нужно проверить. При указании архивов objdump показывает информацию о каждом объекте внутри архива.

OPTIONS
       Длинные и короткие формы опций, показанные здесь как альтернативы, эквивалентны. Должна быть указана хотя бы одна опция из списка -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x.

       -a
       --archive-headers
	   Если любой из файлов objfile является архивом, отобразить информацию заголовка архива (в формате, похожем на ls -l). Помимо информации, которую можно перечислить с помощью ar tv, objdump -a показывает формат объектного файла для каждого члена архива.

       --adjust-vma=offset
	   При выводе информации сначала добавьте offset ко всем адресам разделов. Это полезно, если адреса разделов не соответствуют таблице символов, что может произойти при размещении разделов по конкретным адресам в формате, который не может представлять адреса разделов, например a.out.

       -b bfdname
       --target=bfdname
	   Укажите формат объектного кода для объектных файлов как bfdname. Эта опция может быть не нужна; objdump может автоматически распознавать многие форматы.

	   Например,

		   objdump -b oasys -m vax -h fu.o

	   отображает сводную информацию из заголовков разделов (-h) файла fu.o, который явно идентифицирован (-m) как объектный файл VAX в формате, производимом компиляторами Oasys. Вы можете перечислить доступные форматы с помощью опции -i.

       -C
       --demangle[=style]
	   Декодируйте (разъединьте) низкоуровневые имена символов в пользовательские имена. Помимо удаления начального подчеркивания, добавленного системой, это делает читаемыми имена функций C++. Разные компиляторы имеют разные стили пометки. Опциональный аргумент стиля разъединения можно использовать для выбора подходящего стиля пометки для вашего компилятора.

       --recurse-limit
       --no-recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Включает или отключает ограничение на количество рекурсии при разъединении строк. Поскольку форматы пометки имен позволяют бесконечный уровень рекурсии, возможно создать строки, декодирование которых исчерпает объем доступного стека на хост-машине, вызывая ошибку памяти. Ограничение пытается предотвратить это, ограничивая рекурсию до 2048 уровней вложенности.

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

       -g
       --debugging
	   Отобразить информацию отладки. Это пытается разобрать информацию в формате отладки STABS, хранящуюся в файле, и вывести её в синтаксисе, похожем на C. Если отладочная информация STABS не найдена, эта опция переключается на опцию -W для вывода любой информации DWARF в файле.

       -e
       --debugging-tags
	   Как -g, но информация генерируется в формате, совместимом с инструментом ctags.

       -d
       --disassemble
       --disassemble=symbol
	   Отобразить мнемоники ассемблера для машинных инструкций из входного файла. Эта опция разбирает только те разделы, которые ожидаются содержащими инструкции. Если указан опциональный аргумент symbol, то отобразить мнемоники, начиная с symbol. Если symbol — имя функции, то разбор остановится в конце функции; в противном случае он остановится на следующем символе. Если совпадений для symbol нет, ничего не будет отображено.

	   Обратите внимание: если опция --dwarf=follow-links включена, то таблицы символов в связанных файлах отладочной информации будут прочитаны и использованы при разборе.

       -D
       --disassemble-all
	   Как -d, но разобрать содержимое всех непустых ненулевых разделов, а не только тех, которые ожидаются содержащими инструкции. Опция -j может использоваться для выбора конкретных разделов.

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

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

	   Обратите внимание: если опция --dwarf=follow-links включена, то таблицы символов в связанных файлах отладочной информации будут прочитаны и использованы при разборе.

       --no-addresses
	   При разборе не выводить адреса на каждой строке или для символов и смещений релокаций. В сочетании с --no-show-raw-insn это может быть полезно для сравнения вывода компилятора.

       --prefix-addresses
	   При разборе выводить полный адрес на каждой строке. Это старый формат разбора.

       -EB
       -EL
       --endian={big|little}
	   Укажите порядок байт объектных файлов. Это влияет только на разбор. Это может быть полезно при разборе формата файлов, который не описывает информацию о порядке байт, например S-records.

       -f
       --file-headers
	   Отобразить сводную информацию из общего заголовка каждого из файлов objfile.

       -F
       --file-offsets
	   При разборе разделов, когда отображается символ, также отобразить смещение файла региона данных, который будет выведен. Если пропускаются нули, то при возобновлении разбора сообщите пользователю, сколько нулей было пропущено, и смещение файла места, откуда разбор возобновляется. При выводе разделов отобразить смещение файла места, откуда начинается вывод.

       --file-start-context
	   Укажите, что при отображении чересстрочного исходного кода/разбора (предполагается -S) из файла, который еще не отображался, расширить контекст до начала файла.

       -h
       --section-headers
       --headers
	   Отобразить сводную информацию из заголовков разделов объектного файла.

	   Сегменты файлов могут быть перемещены в нестандартные адреса, например, с помощью опций -Ttext, -Tdata или -Tbss для ld. Однако некоторые форматы объектных файлов, такие как a.out, не хранят начальный адрес сегментов файла. В таких ситуациях, хотя ld перемещает разделы правильно, использование objdump -h для перечисления заголовков разделов файла не может показать правильные адреса. Вместо этого оно показывает обычные адреса, которые подразумеваются для цели.

	   Обратите внимание, в некоторых случаях раздел может иметь как атрибут READONLY, так и NOREAD. В таких случаях атрибут NOREAD имеет приоритет, но objdump сообщит о обоих, поскольку точная установка бит флага может быть важной.

       -H
       --help
	   Вывести сводку опций objdump и выйти.

       -i
       --info
	   Отобразить список всех доступных архитектур и форматов объектных файлов для указания с -b или -m.

       -j name
       --section=name
	   Отобразить информацию для раздела name. Эта опция может быть указана несколько раз.

       -L
       --process-links
	   Отобразить содержимое ненулевых разделов, найденных в отдельных файлах отладочной информации, которые связаны с основным файлом. Эта опция автоматически подразумевает опцию -WK, и будут отображаться только разделы, запрошенные другими опциями командной строки.

       -l
       --line-numbers
	   Помечать вывод (с помощью информации отладки) именем файла и номерами строк исходного кода, соответствующими объектному коду или релокациям. Полезно только с -d, -D или -r.

       -m machine
       --architecture=machine
	   Укажите архитектуру для использования при разборе объектных файлов. Это может быть полезно при разборе объектных файлов, которые не описывают информацию об архитектуре, таких как S-records. Вы можете перечислить доступные архитектуры с помощью опции -i.

	   Для большинства архитектур можно указать имя архитектуры и имя машины, разделенные двоеточием. Например, foo:bar относится к типу машины bar в архитектуре foo. Это может быть полезно, если objdump настроен на поддержку нескольких архитектур.

	   Если цель — архитектура ARM, эта опция имеет дополнительный эффект. Она ограничивает разбор только теми инструкциями, которые поддерживаются архитектурой, указанной в machine. Если необходимо использовать эту опцию, потому что входной файл не содержит информации об архитектуре, но также желательно разобрать все инструкции, используйте -marm.

       -M options
       --disassembler-options=options
	   Передать целевой информации дизассемблеру. Поддерживается только для некоторых целей. Если необходимо указать несколько опций дизассемблера, можно использовать несколько опций -M или объединить их в список, разделенный запятыми.

	   Для ARC dsp управляет выводом инструкций DSP, spfp выбирает вывод инструкций FPX одинарной точности, dpfp выбирает вывод инструкций FPX двойной точности, quarkse_em выбирает вывод специальных инструкций QuarkSE-EM, fpuda выбирает вывод инструкций помощи двойной точности, fpus выбирает вывод инструкций FPU одинарной точности, в то время как fpud выбирает вывод инструкций FPU двойной точности. Кроме того, можно выбрать вывод всех непосредственных значений в шестнадцатеричном формате с помощью hex. По умолчанию короткие непосредственные значения выводятся в десятичном представлении, в то время как длинные значения выводятся как шестнадцатеричные.

	   cpu=... позволяет навязать определенную ISA при разборе инструкций, переопределяя значение -m или то, что указано в ELF-файле. Это может быть полезно для выбора ISA ARC EM или HS, поскольку архитектура одинакова для них, и дизассемблер полагается на частные данные заголовка ELF для решения, является ли код для EM или HS. Эта опция может быть указана несколько раз — будет использоваться только последнее значение. Допустимые значения такие же, как для опции ассемблера -mcpu=... .

	   Если цель — архитектура ARM, эта опция может использоваться для выбора набора имен регистров, используемого во время дизассемблера. Указание -M reg-names-std (по умолчанию) выберет имена регистров, как в документации по набору инструкций ARM, но с регистром 13, называемым 'sp', регистром 14 — 'lr' и регистром 15 — 'pc'. Указание -M reg-names-apcs выберет набор имен, используемый в стандарте вызова процедур ARM, в то время как указание -M reg-names-raw будет использовать r, за которым следует номер регистра.

	   Существуют также два варианта набора имен APCS, включенные с -M reg-names-atpcs и -M reg-names-special-atpcs, которые используют соглашения именования стандарта вызова процедур ARM/Thumb. (Либо с обычными именами регистров, либо со специальными именами регистров).

	   Эта опция также может использоваться для архитектур ARM, чтобы заставить дизассемблер интерпретировать все инструкции как инструкции Thumb с помощью переключателя --disassembler-options=force-thumb. Это может быть полезно при попытке разобрать код Thumb, произведенный другими компиляторами.

	   Для целей AArch64 этот переключатель может использоваться для установки, отображать ли инструкции как наиболее общие инструкции с опцией -M no-aliases или генерировать ли заметки об инструкциях как комментарии в разборе с -M notes.

	   Для x86 некоторые опции дублируют функции переключателя -m, но позволяют более точный контроль.

	   "x86-64"
	   "i386"
	   "i8086"
	       Выбрать разбор для указанной архитектуры.

	   "intel"
	   "att"
	       Выбрать режим синтаксиса intel или режим синтаксиса AT&T.

	   "amd64"
	   "intel64"
	       Выбрать ISA AMD64 или ISA Intel64.

	   "intel-mnemonic"
	   "att-mnemonic"
	       Выбрать режим мнемоники intel или режим мнемоники AT&T. Примечание: "intel-mnemonic" подразумевает "intel", а "att-mnemonic" подразумевает "att".

	   "addr64"
	   "addr32"
	   "addr16"
	   "data32"
	   "data16"
	       Укажите размер адреса и размер операнда по умолчанию. Эти пять опций будут переопределены, если "x86-64", "i386" или "i8086" появятся позже в строке опций.

	   "suffix"
	       В режиме AT&T и также для ограниченного набора инструкций в режиме Intel instructs дизассемблер выводить суффикс мнемоники даже когда суффикс может быть выведен из операндов или, для определенных инструкций, из значений по умолчанию режима выполнения.

	   Для PowerPC аргумент -M raw выбирает разбор аппаратных инструкций, а не псевдонимов. Например, вы увидите "rlwinm" вместо "clrlwi", и "addi" вместо "li". Все аргументы -m для gas, которые выбирают CPU, поддерживаются. Это: 403, 405, 440, 464, 476, 601, 603, 604, 620, 7400, 7410, 7450, 7455, 750cl, 821, 850, 860, a2, booke, booke32, cell, com, e200z2, e200z4, e300, e500, e500mc, e500mc64, e500x2, e5500, e6500, efs, power4, power5, power6, power7, power8, power9, power10, power11, ppc, ppc32, ppc64, ppc64bridge, ppcps, pwr, pwr2, pwr4, pwr5, pwr5x, pwr6, pwr7, pwr8, pwr9, pwr10, pwr11, pwrx, titan, vle, и future. 32 и 64 модифицируют выбор CPU по умолчанию или предыдущий, отключая и включая инструкции 64-бит соответственно. Кроме того, altivec, any, lsp, htm, vsx, spe и spe2 добавляют возможности к предыдущему или последующему выбору CPU. any разберет любую опкоду, известную binutils, но в случаях, когда опкода имеет два разных значения или разные аргументы, вы можете не увидеть ожидаемый разбор. Если вы разберете без выбора CPU, по умолчанию будет выбрано из информации, полученной BFD из заголовков объектных файлов, но результат снова может быть не таким, как ожидалось.

	   Для MIPS эта опция управляет выводом имен мнемоник инструкций и имен регистров в разобраных инструкциях. Можно указать несколько выборов из следующих как строку, разделенную запятыми, и недопустимые опции игнорируются:

	   "no-aliases"
	       Выводить "сырую" мнемонику инструкции вместо некоторой мнемоники псевдоинструкции. Т.е., выводить 'daddu' или 'or' вместо 'move', 'sll' вместо 'nop' и т.д.

	   "msa"
	       Разобрать инструкции MSA.

	   "virt"
	       Разобрать инструкции виртуализации ASE.

	   "xpa"
	       Разобрать инструкции ASE расширенного физического адреса (XPA).

	   "gpr-names=ABI"
	       Выводить имена GPR (общие регистры) в соответствии с указанным ABI. По умолчанию имена GPR выбираются в соответствии с ABI двоичного файла, который разбирается.

	   "fpr-names=ABI"
	       Выводить имена FPR (регистры с плавающей точкой) в соответствии с указанным ABI. По умолчанию выводятся номера FPR, а не имена.

	   "cp0-names=ARCH"
	       Выводить имена регистров CP0 (системный сопроцессор; сопроцессор 0) в соответствии с CPU или архитектурой, указанной в ARCH. По умолчанию имена регистров CP0 выбираются в соответствии с архитектурой и CPU двоичного файла, который разбирается.

	   "hwr-names=ARCH"
	       Выводить имена регистров HWR (аппаратный регистр, используемый инструкцией "rdhwr") в соответствии с CPU или архитектурой, указанной в ARCH. По умолчанию имена HWR выбираются в соответствии с архитектурой и CPU двоичного файла, который разбирается.

	   "reg-names=ABI"
	       Выводить имена GPR и FPR в соответствии с выбранным ABI.

	   "reg-names=ARCH"
	       Выводить имена регистров, специфичные для CPU (имена регистров CP0 и HWR), в соответствии с выбранной CPU или архитектурой.

	   Для любой из перечисленных выше опций ABI или ARCH можно указать как числовое значение, чтобы выводились числа вместо имен для выбранных типов регистров. Вы можете перечислить доступные значения ABI и ARCH с помощью опции --help.

	   Для VAX вы можете указывать адреса входа в функцию с -M entry:0xf00ba. Вы можете использовать это несколько раз, чтобы правильно разобрать двоичные файлы VAX, которые не содержат таблиц символов (как дампы ROM). В этих случаях маска входа в функцию в противном случае будет декодирована как инструкции VAX, что, вероятно, приведет к неправильному разбору остальной части функции.

       -p
       --private-headers
	   Вывести информацию, специфичную для формата объектного файла. Точная выводимая информация зависит от формата объектного файла. Для некоторых форматов объектных файлов дополнительная информация не выводится.

       -P options
       --private=options
	   Вывести информацию, специфичную для формата объектного файла. Аргумент options — список, разделенный запятыми, который зависит от формата (списки опций отображаются с помощью справки).

	   Для XCOFF доступные опции:

	   "header"
	   "aout"
	   "sections"
	   "syms"
	   "relocs"
	   "lineno,"
	   "loader"
	   "except"
	   "typchk"
	   "traceback"
	   "toc"
	   "ldinfo"

	   Для PE доступные опции:

	   "header"
	   "sections"

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

       -r
       --reloc
	   Вывести записи релокаций файла. Если используется с -d или -D, релокации выводятся вперемешку с разбором.

       -R
       --dynamic-reloc
	   Вывести динамические записи релокаций файла. Это имеет смысл только для динамических объектов, таких как определенные типы разделяемых библиотек. Как для -r, если используется с -d или -D, релокации выводятся вперемешку с разбором.

       -s
       --full-contents
	   Вывести полное содержимое разделов, часто используется в сочетании с -j для запроса конкретных разделов. По умолчанию отображаются все непустые ненулевые разделы. По умолчанию любой сжатый раздел будет отображаться в сжатом виде. Чтобы увидеть содержимое в разжатом виде, добавьте опцию -Z к командной строке.

       -S
       --source
	   Отобразить исходный код, перемешанный с разбором, если возможно. Подразумевает -d.

       --show-all-symbols
	   При разборе отображать все символы, которые соответствуют данному адресу, а не только первый.

       --source-comment[=txt]
	   Как опция -S, но все строки исходного кода отображаются с префиксом txt. Обычно txt будет строкой комментария, которая может использоваться для отличия кода ассемблера от кода исходного кода. Если txt не указано, будет использоваться строка по умолчанию "# " (хеш, за которым следует пробел).

       --prefix=prefix
	   Укажите префикс для добавления к абсолютным путям при использовании с -S.

       --prefix-strip=level
	   Укажите, сколько начальных имен каталогов удалить из жестко заданных абсолютных путей. Это не имеет эффекта без --prefix=prefix.

       --show-raw-insn
	   При разборе инструкций выводить инструкцию в шестнадцатеричном формате, а также в символическом виде. Это значение по умолчанию, кроме случаев, когда используется --prefix-addresses.

       --no-show-raw-insn
	   При разборе инструкций не выводить байты инструкции. Это значение по умолчанию, когда используется --prefix-addresses.

       --insn-width=width
	   Выводить width байт в одной строке при разборе инструкций.

       --visualize-jumps[=color|=extended-color|=off]
	   Визуализировать прыжки, которые остаются внутри функции, рисуя ASCII-арт между начальным и целевым адресами. Опциональный аргумент =color добавляет цвет к выводу с помощью простых цветов терминала. В качестве альтернативы аргумент =extended-color добавит цвет с помощью 8-битных цветов, но они могут не работать на всех терминалах.

	   Если необходимо отключить опцию visualize-jumps после того, как она была ранее включена, используйте visualize-jumps=off.

       --disassembler-color=off
       --disassembler-color=terminal
       --disassembler-color=on|color|colour
       --disassembler-color=extened|extended-color|extened-colour
	   Включает или отключает использование цветного подсветки синтаксиса в выводе разбора. Поведение по умолчанию определяется опцией конфигурации. Обратите внимание, не все архитектуры поддерживают цветную подсветку синтаксиса, и в зависимости от используемого терминала цветной вывод может быть нечитаемым.

	   Аргумент on добавляет цвета с помощью простых цветов терминала.

	   Аргумент terminal делает то же самое, но только если устройство вывода — терминал.

	   Аргумент extended-color похож на аргумент on, но он использует 8-битные цвета. Они могут не работать на всех терминалах.

	   Аргумент off отключает цветной разбор.

       -W[lLiaprmfFsoORtUuTgAckK]
       --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]
	   Выводит содержимое разделов отладки DWARF в файле, если они присутствуют. Сжатые разделы отладки автоматически разжимаются (временно) перед отображением. Если за переключателем следует одна или несколько опциональных букв или слов, то будут выведены только эти типы данных. Буквы и слова относятся к следующей информации:

	   "a"
	   "=abbrev"
	       Выводит содержимое раздела .debug_abbrev.

	   "A"
	   "=addr"
	       Выводит содержимое раздела .debug_addr.

	   "c"
	   "=cu_index"
	       Выводит содержимое разделов .debug_cu_index и/или .debug_tu_index.

	   "f"
	   "=frames"
	       Выводит сырое содержимое раздела .debug_frame.

	   "F"
	   "=frames-interp"
	       Выводит интерпретированное содержимое раздела .debug_frame.

	   "g"
	   "=gdb_index"
	       Выводит содержимое разделов .gdb_index и/или .debug_names.

	   "i"
	   "=info"
	       Выводит содержимое раздела .debug_info. Примечание: вывод этой опции также может быть ограничен с помощью опций --dwarf-depth и --dwarf-start.

	   "k"
	   "=links"
	       Выводит содержимое разделов .gnu_debuglink, .gnu_debugaltlink и .debug_sup, если они присутствуют. Также выводит любые ссылки на отдельные объектные файлы dwarf (dwo), если они указаны атрибутами DW_AT_GNU_dwo_name или DW_AT_dwo_name в разделе .debug_info.

	   "K"
	   "=follow-links"
	       Выводит содержимое любых выбранных разделов отладки, найденных в связанных отдельных файлах отладочной информации. Это может привести к нескольким версиям одного и того же раздела отладки, если он существует в нескольких файлах.

	       Кроме того, при выводе атрибутов DWARF, если найдена форма, которая ссылается на отдельный файл отладочной информации, то ссылочное содержимое также будет отображено.

	       Примечание — в некоторых дистрибутивах эта опция включена по умолчанию. Её можно отключить через опцию отладки N. Значение по умолчанию можно выбрать при конфигурировании binutils с опциями --enable-follow-debug-links=yes или --enable-follow-debug-links=no. Если они не используются, то по умолчанию включено следование отладочных ссылок.

	       Примечание — если поддержка протокола debuginfod была включена при сборке binutils, то эта опция также включает попытку связаться с серверами debuginfod, упомянутыми в переменной среды DEBUGINFOD_URLS. Это может занять некоторое время. Это поведение можно отключить через опцию отладки =do-not-use-debuginfod.

	   "N"
	   "=no-follow-links"
	       Отключает следование ссылкам на отдельные файлы отладочной информации.

	   "D"
	   "=use-debuginfod"
	       Включает связь с серверами debuginfod, если нужно следовать отладочным ссылкам. Это поведение по умолчанию.

	   "E"
	   "=do-not-use-debuginfod"
	       Отключает связь с серверами debuginfod, когда нужно следовать отладочным ссылкам.

	   "l"
	   "=rawline"
	       Выводит содержимое раздела .debug_line в сыром формате.

	   "L"
	   "=decodedline"
	       Выводит интерпретированное содержимое раздела .debug_line.

	   "m"
	   "=macro"
	       Выводит содержимое разделов .debug_macro и/или .debug_macinfo.

	   "o"
	   "=loc"
	       Выводит содержимое разделов .debug_loc и/или .debug_loclists.

	   "O"
	   "=str-offsets"
	       Выводит содержимое раздела .debug_str_offsets.

	   "p"
	   "=pubnames"
	       Выводит содержимое разделов .debug_pubnames и/или .debug_gnu_pubnames.

	   "r"
	   "=aranges"
	       Выводит содержимое раздела .debug_aranges.

	   "R"
	   "=Ranges"
	       Выводит содержимое разделов .debug_ranges и/или .debug_rnglists.

	   "s"
	   "=str"
	       Выводит содержимое разделов .debug_str, .debug_line_str и/или .debug_str_offsets.

	   "t"
	   "=pubtype"
	       Выводит содержимое разделов .debug_pubtypes и/или .debug_gnu_pubtypes.

	   "T"
	   "=trace_aranges"
	       Выводит содержимое раздела .trace_aranges.

	   "u"
	   "=trace_abbrev"
	       Выводит содержимое раздела .trace_abbrev.

	   "U"
	   "=trace_info"
	       Выводит содержимое раздела .trace_info.

	   Примечание: вывод содержимого разделов .debug_static_funcs, .debug_static_vars и debug_weaknames в настоящее время не поддерживается.

       --dwarf-depth=n
	   Ограничить вывод раздела ".debug_info" n детьми. Это полезно только с --debug-dump=info. Значение по умолчанию — выводить все DIE; специальное значение 0 для n также будет иметь этот эффект.

	   С ненулевым значением n DIE на уровне n или глубже не будут выводиться. Диапазон для n основан на нуле.

       --dwarf-start=n
	   Выводить только DIE, начинающиеся с DIE под номером n. Это полезно только с --debug-dump=info.

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

	   Это можно использовать в сочетании с --dwarf-depth.

       --dwarf-check
	   Включить дополнительные проверки на согласованность информации Dwarf.

       --ctf[=section]
	   Вывести содержимое указанного раздела CTF. Разделы CTF сами по себе содержат много подразделов, все из которых выводятся в порядке.

	   По умолчанию выводить имя раздела .ctf, которое является именем, издаваемым ld.

       --ctf-parent=member
	   Если раздел CTF содержит неоднозначно определенные типы, он будет состоять из архива многих словарей CTF, все из которых наследуют от одного словаря, содержащего неоднозначные типы. Этот член по умолчанию называется .ctf, как и раздел, содержащий его, но возможно изменить это имя с помощью функции "ctf_link_set_memb_name_changer" во время связывания. При просмотре архивов CTF, созданных компоновщиком, который использует переименователь имени для переименования члена родительского архива, --ctf-parent можно использовать для указания имени, используемого для родителя.

       --ctf-parent-section=section
	   Эта опция позволяет выбрать совершенно другой раздел для словаря CTF родителя, содержащего неоднозначные типы, чем для дочерних словарей, которые содержат неоднозначные остатки. Компилятор не генерирует объекты ELF, структурированные таким образом, но некоторые сторонние компоновщики могут. Это также удобно для инспектирования CTF, записанного как несколько необработанных файлов, чтобы составить их с помощью objcopy, который может поместить их в разные разделы ELF, но не в разные члены одного словаря CTF.

       --sframe[=section]
	   Вывести содержимое указанного раздела SFrame.

	   По умолчанию выводить имя раздела .sframe, которое является именем, издаваемым ld.

       -G
       --stabs
	   Вывести полное содержимое любых запрошенных разделов. Вывести содержимое разделов .stab, .stab.index и .stab.excl из ELF-файла. Это полезно только на системах (таких как Solaris 2.0), в которых записи таблицы символов отладки ".stab" хранятся в разделе ELF. В большинстве других форматов файлов записи таблицы символов отладки чередуются с записями таблицы связывания и видны в выводе --syms.

       --start-address=address
	   Начать вывод данных с указанного адреса. Это влияет на вывод опций -d, -r и -s.

       --stop-address=address
	   Остановить вывод данных на указанном адресе. Это влияет на вывод опций -d, -r и -s.

       -t
       --syms
	   Вывести записи таблицы символов файла. Это похоже на информацию, предоставляемую программой nm, хотя формат вывода отличается. Формат вывода зависит от формата выводимого файла, но есть два основных типа. Один выглядит так:

		   [  4](sec  3)(fl 0x00)(ty   0)(scl	3) (nx 1) 0x00000000 .bss
		   [  6](sec  1)(fl 0x00)(ty   0)(scl	2) (nx 0) 0x00000000 fred

	   где число в квадратных скобках — номер записи в таблице символов, номер sec — номер раздела, значение fl — биты флага символа, номер ty — тип символа, номер scl — класс хранения символа, а значение nx — количество вспомогательных записей, связанных с символом. Последние два поля — значение символа и его имя.

	   Другой распространенный формат вывода, обычно видимый с файлами на основе ELF, выглядит так:

		   00000000 l	 d  .bss   00000000 .bss
		   00000000 g	    .text  00000000 fred

	   Здесь первое число — значение символа (иногда называемое его адресом). Следующее поле на самом деле является набором символов и пробелов, указывающих биты флага, установленные для символа. Эти символы описаны ниже. Далее следует раздел, с которым связан символ, или *ABS*, если раздел абсолютный (т.е. не связан ни с каким разделом), или *UND*, если раздел ссылается в выводимом файле, но не определен там.

	   После имени раздела следует другое поле, число, которое для общих символов является выравниванием, а для других символов — размером. Наконец, выводится имя символа.

	   Символы флага разделены на 7 групп, как следует:

	   "l"
	   "g"
	   "u"
	   "!" Символ является локальным (l), глобальным (g), уникально глобальным (u), ни глобальным, ни локальным (пробел) или и глобальным, и локальным (!). Символ может быть ни локальным, ни глобальным по разным причинам, например, потому что он используется для отладки, но это, вероятно, указывает на ошибку, если он когда-либо и глобальный, и локальный. Уникально глобальные символы — это расширение GNU стандартного набора связей символов ELF. Для такого символа динамический компоновщик убедится, что во всем процессе используется только один символ с этим именем и типом.

	   "w" Символ слабый (w) или сильный (пробел).

	   "C" Символ обозначает конструктор (C) или обычный символ (пробел).

	   "W" Символ является предупреждением (W) или обычным символом (пробел). Имя символа предупреждения — сообщение, которое будет отображаться, если символ, следующий за символом предупреждения, когда-либо будет ссылаться.

	   "I"
	   "i" Символ является косвенной ссылкой на другой символ (I), функцией, подлежащей оценке во время обработки релокаций (i), или обычным символом (пробел).

	   "d"
	   "D" Символ является символом отладки (d) или динамическим символом (D) или обычным символом (пробел).

	   "F"
	   "f"
	   "O" Символ является именем функции (F) или файла (f) или объекта (O) или просто обычным символом (пробел).

       -T
       --dynamic-syms
	   Вывести записи динамической таблицы символов файла. Это имеет смысл только для динамических объектов, таких как определенные типы разделяемых библиотек. Это похоже на информацию, предоставляемую программой nm с опцией -D (--dynamic).

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

       --special-syms
	   При выводе символов включать те, которые цель считает специальными каким-то образом и которые обычно не представляют интереса для пользователя.

       -U [d|i|l|e|x|h]
       --unicode=[default|invalid|locale|escape|hex|highlight]
	   Управляет отображением многобайтовых символов, закодированных в UTF-8, в строках. Значение по умолчанию (--unicode=default) — не давать им специального лечения. Опция --unicode=locale отображает последовательность в текущей локали, которая может или не может их поддерживать. Опции --unicode=hex и --unicode=invalid отображаются как последовательности шестнадцатеричных байтов в угловых скобках или фигурных скобках.

	   Опция --unicode=escape отображает их как последовательности экранирования (\uxxxx), а опция --unicode=highlight отображает их как последовательности экранирования, выделенные красным (если это поддерживается устройством вывода). Цветовое выделение предназначено для привлечения внимания к наличию последовательностей unicode, где они могут не ожидаться.

       -V
       --version
	   Вывести номер версии objdump и выйти.

       -x
       --all-headers
	   Вывести всю доступную информацию заголовка, включая таблицу символов и записи релокаций. Использование -x эквивалентно указанию всех -a -f -h -p -r -t.

       -w
       --wide
	   Форматировать некоторые строки для устройств вывода, имеющих более 80 столбцов. Также не укорачивать имена символов при их отображении.

       -z
       --disassemble-zeroes
	   Обычно вывод разбора пропускает блоки нулей. Эта опция направляет дизассемблер разобрать эти блоки, как и любые другие данные.

       -Z
       --decompress
	   Опция -Z предназначена для использования в сочетании с опцией -s. Она instructs objdump разжать любые сжатые разделы перед отображением их содержимого.

       @file
	   Читать опции командной строки из файла. Прочитанные опции вставляются на место оригинальной опции @file. Если файл не существует или не может быть прочитан, опция будет рассматриваться буквально и не удаляться.

	   Опции в файле разделены пробелами. Символ пробела можно включить в опцию, заключая всю опцию в одинарные или двойные кавычки. Любые символы (включая обратную косую черту) можно включить, предваряя символ, который нужно включить, обратной косой чертой. Файл сам может содержать дополнительные опции @file; любые такие опции будут обработаны рекурсивно.

SEE ALSO
       nm(1), readelf(1), и записи Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или модифицировать этот документ на условиях Лицензии GNU Free Documentation License, версии 1.3 или любой более поздней версии, опубликованной Free Software Foundation; без Инвариантных Разделов, без Текстов на Обложке и без Текстов на Задней Обложке. Копия лицензии включена в раздел, озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-05-12			    OBJDUMP(1)
OBJDUMP(1)		     GNU Development Tools		    OBJDUMP(1)



NAME
       objdump - display information from object files

SYNOPSIS
       objdump [-a|--archive-headers]
	       [-b bfdname|--target=bfdname]
	       [-C|--demangle[=style] ]
	       [-d|--disassemble[=symbol]]
	       [-D|--disassemble-all]
	       [-z|--disassemble-zeroes]
	       [-EB|-EL|--endian={big | little }]
	       [-f|--file-headers]
	       [-F|--file-offsets]
	       [--file-start-context]
	       [-g|--debugging]
	       [-e|--debugging-tags]
	       [-h|--section-headers|--headers]
	       [-i|--info]
	       [-j section|--section=section]
	       [-l|--line-numbers]
	       [-S|--source]
	       [--source-comment[=text]]
	       [-m machine|--architecture=machine]
	       [-M options|--disassembler-options=options]
	       [-p|--private-headers]
	       [-P options|--private=options]
	       [-r|--reloc]
	       [-R|--dynamic-reloc]
	       [-s|--full-contents]
	       [-Z|--decompress]
	       [-W[lLiaprmfFsoORtUuTgAck]|
		--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links]]
	       [-WK|--dwarf=follow-links]
	       [-WN|--dwarf=no-follow-links]
	       [-wD|--dwarf=use-debuginfod]
	       [-wE|--dwarf=do-not-use-debuginfod]
	       [-L|--process-links]
	       [--ctf=section]
	       [--sframe=section]
	       [-G|--stabs]
	       [-t|--syms]
	       [-T|--dynamic-syms]
	       [-x|--all-headers]
	       [-w|--wide]
	       [--start-address=address]
	       [--stop-address=address]
	       [--no-addresses]
	       [--prefix-addresses]
	       [--[no-]show-raw-insn]
	       [--adjust-vma=offset]
	       [--show-all-symbols]
	       [--dwarf-depth=n]
	       [--dwarf-start=n]
	       [--ctf-parent=section]
	       [--no-recurse-limit|--recurse-limit]
	       [--special-syms]
	       [--prefix=prefix]
	       [--prefix-strip=level]
	       [--insn-width=width]
	       [--visualize-jumps[=color|=extended-color|=off]
	       [--disassembler-color=[off|terminal|on|extended]
	       [-U method] [--unicode=method]
	       [-V|--version]
	       [-H|--help]
	       objfile...

DESCRIPTION
       objdump displays information about one or more object files.  The
       options control what particular information to display.	This
       information is mostly useful to programmers who are working on the
       compilation tools, as opposed to programmers who just want their
       program to compile and work.

       objfile... are the object files to be examined.	When you specify
       archives, objdump shows information on each of the member object files.

OPTIONS
       The long and short forms of options, shown here as alternatives, are
       equivalent.  At least one option from the list
       -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x must be given.

       -a
       --archive-header
	   If any of the objfile files are archives, display the archive
	   header information (in a format similar to ls -l).  Besides the
	   information you could list with ar tv, objdump -a shows the object
	   file format of each archive member.

       --adjust-vma=offset
	   When dumping information, first add offset to all the section
	   addresses.  This is useful if the section addresses do not
	   correspond to the symbol table, which can happen when putting
	   sections at particular addresses when using a format which can not
	   represent section addresses, such as a.out.

       -b bfdname
       --target=bfdname
	   Specify that the object-code format for the object files is
	   bfdname.  This option may not be necessary; objdump can
	   automatically recognize many formats.

	   For example,

		   objdump -b oasys -m vax -h fu.o

	   displays summary information from the section headers (-h) of fu.o,
	   which is explicitly identified (-m) as a VAX object file in the
	   format produced by Oasys compilers.	You can list the formats
	   available with the -i option.

       -C
       --demangle[=style]
	   Decode (demangle) low-level symbol names into user-level names.
	   Besides removing any initial underscore prepended by the system,
	   this makes C++ function names readable.  Different compilers have
	   different mangling styles. The optional demangling style argument
	   can be used to choose an appropriate demangling style for your
	   compiler.

       --recurse-limit
       --no-recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Enables or disables a limit on the amount of recursion performed
	   whilst demangling strings.  Since the name mangling formats allow
	   for an infinite level of recursion it is possible to create strings
	   whose decoding will exhaust the amount of stack space available on
	   the host machine, triggering a memory fault.	 The limit tries to
	   prevent this from happening by restricting recursion to 2048 levels
	   of nesting.

	   The default is for this limit to be enabled, but disabling it may
	   be necessary in order to demangle truly complicated names.  Note
	   however that if the recursion limit is disabled then stack
	   exhaustion is possible and any bug reports about such an event will
	   be rejected.

       -g
       --debugging
	   Display debugging information.  This attempts to parse STABS
	   debugging format information stored in the file and print it out
	   using a C like syntax.  If no STABS debugging was found this option
	   falls back on the -W option to print any DWARF information in the
	   file.

       -e
       --debugging-tags
	   Like -g, but the information is generated in a format compatible
	   with ctags tool.

       -d
       --disassemble
       --disassemble=symbol
	   Display the assembler mnemonics for the machine instructions from
	   the input file.  This option only disassembles those sections which
	   are expected to contain instructions.  If the optional symbol
	   argument is given, then display the assembler mnemonics starting at
	   symbol.  If symbol is a function name then disassembly will stop at
	   the end of the function, otherwise it will stop when the next
	   symbol is encountered.  If there are no matches for symbol then
	   nothing will be displayed.

	   Note if the --dwarf=follow-links option is enabled then any symbol
	   tables in linked debug info files will be read in and used when
	   disassembling.

       -D
       --disassemble-all
	   Like -d, but disassemble the contents of all non-empty non-bss
	   sections, not just those expected to contain instructions.  -j may
	   be used to select specific sections.

	   This option also has a subtle effect on the disassembly of
	   instructions in code sections.  When option -d is in effect objdump
	   will assume that any symbols present in a code section occur on the
	   boundary between instructions and it will refuse to disassemble
	   across such a boundary.  When option -D is in effect however this
	   assumption is supressed.  This means that it is possible for the
	   output of -d and -D to differ if, for example, data is stored in
	   code sections.

	   If the target is an ARM architecture this switch also has the
	   effect of forcing the disassembler to decode pieces of data found
	   in code sections as if they were instructions.

	   Note if the --dwarf=follow-links option is enabled then any symbol
	   tables in linked debug info files will be read in and used when
	   disassembling.

       --no-addresses
	   When disassembling, don't print addresses on each line or for
	   symbols and relocation offsets.  In combination with
	   --no-show-raw-insn this may be useful for comparing compiler
	   output.

       --prefix-addresses
	   When disassembling, print the complete address on each line.	 This
	   is the older disassembly format.

       -EB
       -EL
       --endian={big|little}
	   Specify the endianness of the object files.	This only affects
	   disassembly.	 This can be useful when disassembling a file format
	   which does not describe endianness information, such as S-records.

       -f
       --file-headers
	   Display summary information from the overall header of each of the
	   objfile files.

       -F
       --file-offsets
	   When disassembling sections, whenever a symbol is displayed, also
	   display the file offset of the region of data that is about to be
	   dumped.  If zeroes are being skipped, then when disassembly
	   resumes, tell the user how many zeroes were skipped and the file
	   offset of the location from where the disassembly resumes.  When
	   dumping sections, display the file offset of the location from
	   where the dump starts.

       --file-start-context
	   Specify that when displaying interlisted source code/disassembly
	   (assumes -S) from a file that has not yet been displayed, extend
	   the context to the start of the file.

       -h
       --section-headers
       --headers
	   Display summary information from the section headers of the object
	   file.

	   File segments may be relocated to nonstandard addresses, for
	   example by using the -Ttext, -Tdata, or -Tbss options to ld.
	   However, some object file formats, such as a.out, do not store the
	   starting address of the file segments.  In those situations,
	   although ld relocates the sections correctly, using objdump -h to
	   list the file section headers cannot show the correct addresses.
	   Instead, it shows the usual addresses, which are implicit for the
	   target.

	   Note, in some cases it is possible for a section to have both the
	   READONLY and the NOREAD attributes set.  In such cases the NOREAD
	   attribute takes precedence, but objdump will report both since the
	   exact setting of the flag bits might be important.

       -H
       --help
	   Print a summary of the options to objdump and exit.

       -i
       --info
	   Display a list showing all architectures and object formats
	   available for specification with -b or -m.

       -j name
       --section=name
	   Display information for section name.  This option may be specified
	   multiple times.

       -L
       --process-links
	   Display the contents of non-debug sections found in separate
	   debuginfo files that are linked to the main file.  This option
	   automatically implies the -WK option, and only sections requested
	   by other command line options will be displayed.

       -l
       --line-numbers
	   Label the display (using debugging information) with the filename
	   and source line numbers corresponding to the object code or relocs
	   shown.  Only useful with -d, -D, or -r.

       -m machine
       --architecture=machine
	   Specify the architecture to use when disassembling object files.
	   This can be useful when disassembling object files which do not
	   describe architecture information, such as S-records.  You can list
	   the available architectures with the -i option.

	   For most architectures it is possible to supply an architecture
	   name and a machine name, separated by a colon.  For example foo:bar
	   would refer to the bar machine type in the foo architecture.	 This
	   can be helpful if objdump has been configured to support multiple
	   architectures.

	   If the target is an ARM architecture then this switch has an
	   additional effect.  It restricts the disassembly to only those
	   instructions supported by the architecture specified by machine.
	   If it is necessary to use this switch because the input file does
	   not contain any architecture information, but it is also desired to
	   disassemble all the instructions use -marm.

       -M options
       --disassembler-options=options
	   Pass target specific information to the disassembler.  Only
	   supported on some targets.  If it is necessary to specify more than
	   one disassembler option then multiple -M options can be used or can
	   be placed together into a comma separated list.

	   For ARC, dsp controls the printing of DSP instructions, spfp
	   selects the printing of FPX single precision FP instructions, dpfp
	   selects the printing of FPX double precision FP instructions,
	   quarkse_em selects the printing of special QuarkSE-EM instructions,
	   fpuda selects the printing of double precision assist instructions,
	   fpus selects the printing of FPU single precision FP instructions,
	   while fpud selects the printing of FPU double precision FP
	   instructions.  Additionally, one can choose to have all the
	   immediates printed in hexadecimal using hex.	 By default, the short
	   immediates are printed using the decimal representation, while the
	   long immediate values are printed as hexadecimal.

	   cpu=... allows one to enforce a particular ISA when disassembling
	   instructions, overriding the -m value or whatever is in the ELF
	   file.  This might be useful to select ARC EM or HS ISA, because
	   architecture is same for those and disassembler relies on private
	   ELF header data to decide if code is for EM or HS.  This option
	   might be specified multiple times - only the latest value will be
	   used.  Valid values are same as for the assembler -mcpu=... option.

	   If the target is an ARM architecture then this switch can be used
	   to select which register name set is used during disassembler.
	   Specifying -M reg-names-std (the default) will select the register
	   names as used in ARM's instruction set documentation, but with
	   register 13 called 'sp', register 14 called 'lr' and register 15
	   called 'pc'.	 Specifying -M reg-names-apcs will select the name set
	   used by the ARM Procedure Call Standard, whilst specifying -M reg-
	   names-raw will just use r followed by the register number.

	   There are also two variants on the APCS register naming scheme
	   enabled by -M reg-names-atpcs and -M reg-names-special-atpcs which
	   use the ARM/Thumb Procedure Call Standard naming conventions.
	   (Either with the normal register names or the special register
	   names).

	   This option can also be used for ARM architectures to force the
	   disassembler to interpret all instructions as Thumb instructions by
	   using the switch --disassembler-options=force-thumb.	 This can be
	   useful when attempting to disassemble thumb code produced by other
	   compilers.

	   For AArch64 targets this switch can be used to set whether
	   instructions are disassembled as the most general instruction using
	   the -M no-aliases option or whether instruction notes should be
	   generated as comments in the disasssembly using -M notes.

	   For the x86, some of the options duplicate functions of the -m
	   switch, but allow finer grained control.

	   "x86-64"
	   "i386"
	   "i8086"
	       Select disassembly for the given architecture.

	   "intel"
	   "att"
	       Select between intel syntax mode and AT&T syntax mode.

	   "amd64"
	   "intel64"
	       Select between AMD64 ISA and Intel64 ISA.

	   "intel-mnemonic"
	   "att-mnemonic"
	       Select between intel mnemonic mode and AT&T mnemonic mode.
	       Note: "intel-mnemonic" implies "intel" and "att-mnemonic"
	       implies "att".

	   "addr64"
	   "addr32"
	   "addr16"
	   "data32"
	   "data16"
	       Specify the default address size and operand size.  These five
	       options will be overridden if "x86-64", "i386" or "i8086"
	       appear later in the option string.

	   "suffix"
	       When in AT&T mode and also for a limited set of instructions
	       when in Intel mode, instructs the disassembler to print a
	       mnemonic suffix even when the suffix could be inferred by the
	       operands or, for certain instructions, the execution mode's
	       defaults.

	   For PowerPC, the -M argument raw selects disasssembly of hardware
	   insns rather than aliases.  For example, you will see "rlwinm"
	   rather than "clrlwi", and "addi" rather than "li".  All of the -m
	   arguments for gas that select a CPU are supported.  These are: 403,
	   405, 440, 464, 476, 601, 603, 604, 620, 7400, 7410, 7450, 7455,
	   750cl, 821, 850, 860, a2, booke, booke32, cell, com, e200z2,
	   e200z4, e300, e500, e500mc, e500mc64, e500x2, e5500, e6500, efs,
	   power4, power5, power6, power7, power8, power9, power10, power11,
	   ppc, ppc32, ppc64, ppc64bridge, ppcps, pwr, pwr2, pwr4, pwr5,
	   pwr5x, pwr6, pwr7, pwr8, pwr9, pwr10, pwr11, pwrx, titan, vle, and
	   future.  32 and 64 modify the default or a prior CPU selection,
	   disabling and enabling 64-bit insns respectively.  In addition,
	   altivec, any, lsp, htm, vsx, spe and	 spe2 add capabilities to a
	   previous or later CPU selection.  any will disassemble any opcode
	   known to binutils, but in cases where an opcode has two different
	   meanings or different arguments, you may not see the disassembly
	   you expect.	If you disassemble without giving a CPU selection, a
	   default will be chosen from information gleaned by BFD from the
	   object files headers, but the result again may not be as you
	   expect.

	   For MIPS, this option controls the printing of instruction mnemonic
	   names and register names in disassembled instructions.  Multiple
	   selections from the following may be specified as a comma separated
	   string, and invalid options are ignored:

	   "no-aliases"
	       Print the 'raw' instruction mnemonic instead of some pseudo
	       instruction mnemonic.  I.e., print 'daddu' or 'or' instead of
	       'move', 'sll' instead of 'nop', etc.

	   "msa"
	       Disassemble MSA instructions.

	   "virt"
	       Disassemble the virtualization ASE instructions.

	   "xpa"
	       Disassemble the eXtended Physical Address (XPA) ASE
	       instructions.

	   "gpr-names=ABI"
	       Print GPR (general-purpose register) names as appropriate for
	       the specified ABI.  By default, GPR names are selected
	       according to the ABI of the binary being disassembled.

	   "fpr-names=ABI"
	       Print FPR (floating-point register) names as appropriate for
	       the specified ABI.  By default, FPR numbers are printed rather
	       than names.

	   "cp0-names=ARCH"
	       Print CP0 (system control coprocessor; coprocessor 0) register
	       names as appropriate for the CPU or architecture specified by
	       ARCH.  By default, CP0 register names are selected according to
	       the architecture and CPU of the binary being disassembled.

	   "hwr-names=ARCH"
	       Print HWR (hardware register, used by the "rdhwr" instruction)
	       names as appropriate for the CPU or architecture specified by
	       ARCH.  By default, HWR names are selected according to the
	       architecture and CPU of the binary being disassembled.

	   "reg-names=ABI"
	       Print GPR and FPR names as appropriate for the selected ABI.

	   "reg-names=ARCH"
	       Print CPU-specific register names (CP0 register and HWR names)
	       as appropriate for the selected CPU or architecture.

	   For any of the options listed above, ABI or ARCH may be specified
	   as numeric to have numbers printed rather than names, for the
	   selected types of registers.	 You can list the available values of
	   ABI and ARCH using the --help option.

	   For VAX, you can specify function entry addresses with -M
	   entry:0xf00ba.  You can use this multiple times to properly
	   disassemble VAX binary files that don't contain symbol tables (like
	   ROM dumps).	In these cases, the function entry mask would
	   otherwise be decoded as VAX instructions, which would probably lead
	   the rest of the function being wrongly disassembled.

       -p
       --private-headers
	   Print information that is specific to the object file format.  The
	   exact information printed depends upon the object file format.  For
	   some object file formats, no additional information is printed.

       -P options
       --private=options
	   Print information that is specific to the object file format.  The
	   argument options is a comma separated list that depends on the
	   format (the lists of options is displayed with the help).

	   For XCOFF, the available options are:

	   "header"
	   "aout"
	   "sections"
	   "syms"
	   "relocs"
	   "lineno,"
	   "loader"
	   "except"
	   "typchk"
	   "traceback"
	   "toc"
	   "ldinfo"

	   For PE, the available options are:

	   "header"
	   "sections"

	   Not all object formats support this option.	In particular the ELF
	   format does not use it.

       -r
       --reloc
	   Print the relocation entries of the file.  If used with -d or -D,
	   the relocations are printed interspersed with the disassembly.

       -R
       --dynamic-reloc
	   Print the dynamic relocation entries of the file.  This is only
	   meaningful for dynamic objects, such as certain types of shared
	   libraries.  As for -r, if used with -d or -D, the relocations are
	   printed interspersed with the disassembly.

       -s
       --full-contents
	   Display the full contents of sections, often used in combination
	   with -j to request specific sections.  By default all non-empty
	   non-bss sections are displayed.  By default any compressed section
	   will be displayed in its compressed form.  In order to see the
	   contents in a decompressed form add the -Z option to the command
	   line.

       -S
       --source
	   Display source code intermixed with disassembly, if possible.
	   Implies -d.

       --show-all-symbols
	   When disassembling, show all the symbols that match a given
	   address, not just the first one.

       --source-comment[=txt]
	   Like the -S option, but all source code lines are displayed with a
	   prefix of txt.  Typically txt will be a comment string which can be
	   used to distinguish the assembler code from the source code.	 If
	   txt is not provided then a default string of "# " (hash followed by
	   a space), will be used.

       --prefix=prefix
	   Specify prefix to add to the absolute paths when used with -S.

       --prefix-strip=level
	   Indicate how many initial directory names to strip off the
	   hardwired absolute paths. It has no effect without --prefix=prefix.

       --show-raw-insn
	   When disassembling instructions, print the instruction in hex as
	   well as in symbolic form.  This is the default except when
	   --prefix-addresses is used.

       --no-show-raw-insn
	   When disassembling instructions, do not print the instruction
	   bytes.  This is the default when --prefix-addresses is used.

       --insn-width=width
	   Display width bytes on a single line when disassembling
	   instructions.

       --visualize-jumps[=color|=extended-color|=off]
	   Visualize jumps that stay inside a function by drawing ASCII art
	   between the start and target addresses.  The optional =color
	   argument adds color to the output using simple terminal colors.
	   Alternatively the =extended-color argument will add color using
	   8bit colors, but these might not work on all terminals.

	   If it is necessary to disable the visualize-jumps option after it
	   has previously been enabled then use visualize-jumps=off.

       --disassembler-color=off
       --disassembler-color=terminal
       --disassembler-color=on|color|colour
       --disassembler-color=extened|extended-color|extened-colour
	   Enables or disables the use of colored syntax highlighting in
	   disassembly output.	The default behaviour is determined via a
	   configure time option.  Note, not all architectures support colored
	   syntax highlighting, and depending upon the terminal used, colored
	   output may not actually be legible.

	   The on argument adds colors using simple terminal colors.

	   The terminal argument does the same, but only if the output device
	   is a terminal.

	   The extended-color argument is similar to the on argument, but it
	   uses 8-bit colors.  These may not work on all terminals.

	   The off argument disables colored disassembly.

       -W[lLiaprmfFsoORtUuTgAckK]
       --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]
	   Displays the contents of the DWARF debug sections in the file, if
	   any are present.  Compressed debug sections are automatically
	   decompressed (temporarily) before they are displayed.  If one or
	   more of the optional letters or words follows the switch then only
	   those type(s) of data will be dumped.  The letters and words refer
	   to the following information:

	   "a"
	   "=abbrev"
	       Displays the contents of the .debug_abbrev section.

	   "A"
	   "=addr"
	       Displays the contents of the .debug_addr section.

	   "c"
	   "=cu_index"
	       Displays the contents of the .debug_cu_index and/or
	       .debug_tu_index sections.

	   "f"
	   "=frames"
	       Display the raw contents of a .debug_frame section.

	   "F"
	   "=frames-interp"
	       Display the interpreted contents of a .debug_frame section.

	   "g"
	   "=gdb_index"
	       Displays the contents of the .gdb_index and/or .debug_names
	       sections.

	   "i"
	   "=info"
	       Displays the contents of the .debug_info section.  Note: the
	       output from this option can also be restricted by the use of
	       the --dwarf-depth and --dwarf-start options.

	   "k"
	   "=links"
	       Displays the contents of the .gnu_debuglink, .gnu_debugaltlink
	       and .debug_sup sections, if any of them are present.  Also
	       displays any links to separate dwarf object files (dwo), if
	       they are specified by the DW_AT_GNU_dwo_name or DW_AT_dwo_name
	       attributes in the .debug_info section.

	   "K"
	   "=follow-links"
	       Display the contents of any selected debug sections that are
	       found in linked, separate debug info file(s).  This can result
	       in multiple versions of the same debug section being displayed
	       if it exists in more than one file.

	       In addition, when displaying DWARF attributes, if a form is
	       found that references the separate debug info file, then the
	       referenced contents will also be displayed.

	       Note - in some distributions this option is enabled by default.
	       It can be disabled via the N debug option.  The default can be
	       chosen when configuring the binutils via the
	       --enable-follow-debug-links=yes or
	       --enable-follow-debug-links=no options.	If these are not used
	       then the default is to enable the following of debug links.

	       Note - if support for the debuginfod protocol was enabled when
	       the binutils were built then this option will also include an
	       attempt to contact any debuginfod servers mentioned in the
	       DEBUGINFOD_URLS environment variable.  This could take some
	       time to resolve.	 This behaviour can be disabled via the
	       =do-not-use-debuginfod debug option.

	   "N"
	   "=no-follow-links"
	       Disables the following of links to separate debug info files.

	   "D"
	   "=use-debuginfod"
	       Enables contacting debuginfod servers if there is a need to
	       follow debug links.  This is the default behaviour.

	   "E"
	   "=do-not-use-debuginfod"
	       Disables contacting debuginfod servers when there is a need to
	       follow debug links.

	   "l"
	   "=rawline"
	       Displays the contents of the .debug_line section in a raw
	       format.

	   "L"
	   "=decodedline"
	       Displays the interpreted contents of the .debug_line section.

	   "m"
	   "=macro"
	       Displays the contents of the .debug_macro and/or .debug_macinfo
	       sections.

	   "o"
	   "=loc"
	       Displays the contents of the .debug_loc and/or .debug_loclists
	       sections.

	   "O"
	   "=str-offsets"
	       Displays the contents of the .debug_str_offsets section.

	   "p"
	   "=pubnames"
	       Displays the contents of the .debug_pubnames and/or
	       .debug_gnu_pubnames sections.

	   "r"
	   "=aranges"
	       Displays the contents of the .debug_aranges section.

	   "R"
	   "=Ranges"
	       Displays the contents of the .debug_ranges and/or
	       .debug_rnglists sections.

	   "s"
	   "=str"
	       Displays the contents of the .debug_str, .debug_line_str and/or
	       .debug_str_offsets sections.

	   "t"
	   "=pubtype"
	       Displays the contents of the .debug_pubtypes and/or
	       .debug_gnu_pubtypes sections.

	   "T"
	   "=trace_aranges"
	       Displays the contents of the .trace_aranges section.

	   "u"
	   "=trace_abbrev"
	       Displays the contents of the .trace_abbrev section.

	   "U"
	   "=trace_info"
	       Displays the contents of the .trace_info section.

	   Note: displaying the contents of .debug_static_funcs,
	   .debug_static_vars and debug_weaknames sections is not currently
	   supported.

       --dwarf-depth=n
	   Limit the dump of the ".debug_info" section to n children.  This is
	   only useful with --debug-dump=info.	The default is to print all
	   DIEs; the special value 0 for n will also have this effect.

	   With a non-zero value for n, DIEs at or deeper than n levels will
	   not be printed.  The range for n is zero-based.

       --dwarf-start=n
	   Print only DIEs beginning with the DIE numbered n.  This is only
	   useful with --debug-dump=info.

	   If specified, this option will suppress printing of any header
	   information and all DIEs before the DIE numbered n.	Only siblings
	   and children of the specified DIE will be printed.

	   This can be used in conjunction with --dwarf-depth.

       --dwarf-check
	   Enable additional checks for consistency of Dwarf information.

       --ctf[=section]
	   Display the contents of the specified CTF section.  CTF sections
	   themselves contain many subsections, all of which are displayed in
	   order.

	   By default, display the name of the section named .ctf, which is
	   the name emitted by ld.

       --ctf-parent=member
	   If the CTF section contains ambiguously-defined types, it will
	   consist of an archive of many CTF dictionaries, all inheriting from
	   one dictionary containing unambiguous types.	 This member is by
	   default named .ctf, like the section containing it, but it is
	   possible to change this name using the
	   "ctf_link_set_memb_name_changer" function at link time.  When
	   looking at CTF archives that have been created by a linker that
	   uses the name changer to rename the parent archive member,
	   --ctf-parent can be used to specify the name used for the parent.

       --ctf-parent-section=section
	   This option lets you pick a completely different section for the
	   CTF parent dictionary containing unambiguous types than for the
	   child dictionaries that contain the ambiguous remainder.  The
	   linker does not emit ELF objects structured like this, but some
	   third-party linkers may.  It's also convenient to inspect CTF
	   written out as multiple raw files to compose them with objcopy,
	   which can put them in different ELF sections but not in different
	   members of a single CTF dict.

       --sframe[=section]
	   Display the contents of the specified SFrame section.

	   By default, display the name of the section named .sframe, which is
	   the name emitted by ld.

       -G
       --stabs
	   Display the full contents of any sections requested.	 Display the
	   contents of the .stab and .stab.index and .stab.excl sections from
	   an ELF file.	 This is only useful on systems (such as Solaris 2.0)
	   in which ".stab" debugging symbol-table entries are carried in an
	   ELF section.	 In most other file formats, debugging symbol-table
	   entries are interleaved with linkage symbols, and are visible in
	   the --syms output.

       --start-address=address
	   Start displaying data at the specified address.  This affects the
	   output of the -d, -r and -s options.

       --stop-address=address
	   Stop displaying data at the specified address.  This affects the
	   output of the -d, -r and -s options.

       -t
       --syms
	   Print the symbol table entries of the file.	This is similar to the
	   information provided by the nm program, although the display format
	   is different.  The format of the output depends upon the format of
	   the file being dumped, but there are two main types.	 One looks
	   like this:

		   [  4](sec  3)(fl 0x00)(ty   0)(scl	3) (nx 1) 0x00000000 .bss
		   [  6](sec  1)(fl 0x00)(ty   0)(scl	2) (nx 0) 0x00000000 fred

	   where the number inside the square brackets is the number of the
	   entry in the symbol table, the sec number is the section number,
	   the fl value are the symbol's flag bits, the ty number is the
	   symbol's type, the scl number is the symbol's storage class and the
	   nx value is the number of auxiliary entries associated with the
	   symbol.  The last two fields are the symbol's value and its name.

	   The other common output format, usually seen with ELF based files,
	   looks like this:

		   00000000 l	 d  .bss   00000000 .bss
		   00000000 g	    .text  00000000 fred

	   Here the first number is the symbol's value (sometimes referred to
	   as its address).  The next field is actually a set of characters
	   and spaces indicating the flag bits that are set on the symbol.
	   These characters are described below.  Next is the section with
	   which the symbol is associated or *ABS* if the section is absolute
	   (ie not connected with any section), or *UND* if the section is
	   referenced in the file being dumped, but not defined there.

	   After the section name comes another field, a number, which for
	   common symbols is the alignment and for other symbol is the size.
	   Finally the symbol's name is displayed.

	   The flag characters are divided into 7 groups as follows:

	   "l"
	   "g"
	   "u"
	   "!" The symbol is a local (l), global (g), unique global (u),
	       neither global nor local (a space) or both global and local
	       (!).  A symbol can be neither local or global for a variety of
	       reasons, e.g., because it is used for debugging, but it is
	       probably an indication of a bug if it is ever both local and
	       global.	Unique global symbols are a GNU extension to the
	       standard set of ELF symbol bindings.  For such a symbol the
	       dynamic linker will make sure that in the entire process there
	       is just one symbol with this name and type in use.

	   "w" The symbol is weak (w) or strong (a space).

	   "C" The symbol denotes a constructor (C) or an ordinary symbol (a
	       space).

	   "W" The symbol is a warning (W) or a normal symbol (a space).  A
	       warning symbol's name is a message to be displayed if the
	       symbol following the warning symbol is ever referenced.

	   "I"
	   "i" The symbol is an indirect reference to another symbol (I), a
	       function to be evaluated during reloc processing (i) or a
	       normal symbol (a space).

	   "d"
	   "D" The symbol is a debugging symbol (d) or a dynamic symbol (D) or
	       a normal symbol (a space).

	   "F"
	   "f"
	   "O" The symbol is the name of a function (F) or a file (f) or an
	       object (O) or just a normal symbol (a space).

       -T
       --dynamic-syms
	   Print the dynamic symbol table entries of the file.	This is only
	   meaningful for dynamic objects, such as certain types of shared
	   libraries.  This is similar to the information provided by the nm
	   program when given the -D (--dynamic) option.

	   The output format is similar to that produced by the --syms option,
	   except that an extra field is inserted before the symbol's name,
	   giving the version information associated with the symbol.  If the
	   version is the default version to be used when resolving
	   unversioned references to the symbol then it's displayed as is,
	   otherwise it's put into parentheses.

       --special-syms
	   When displaying symbols include those which the target considers to
	   be special in some way and which would not normally be of interest
	   to the user.

       -U [d|i|l|e|x|h]
       --unicode=[default|invalid|locale|escape|hex|highlight]
	   Controls the display of UTF-8 encoded multibyte characters in
	   strings.  The default (--unicode=default) is to give them no
	   special treatment.  The --unicode=locale option displays the
	   sequence in the current locale, which may or may not support them.
	   The options --unicode=hex and --unicode=invalid display them as hex
	   byte sequences enclosed by either angle brackets or curly braces.

	   The --unicode=escape option displays them as escape sequences
	   (\uxxxx) and the --unicode=highlight option displays them as escape
	   sequences highlighted in red (if supported by the output device).
	   The colouring is intended to draw attention to the presence of
	   unicode sequences where they might not be expected.

       -V
       --version
	   Print the version number of objdump and exit.

       -x
       --all-headers
	   Display all available header information, including the symbol
	   table and relocation entries.  Using -x is equivalent to specifying
	   all of -a -f -h -p -r -t.

       -w
       --wide
	   Format some lines for output devices that have more than 80
	   columns.  Also do not truncate symbol names when they are
	   displayed.

       -z
       --disassemble-zeroes
	   Normally the disassembly output will skip blocks of zeroes.	This
	   option directs the disassembler to disassemble those blocks, just
	   like any other data.

       -Z
       --decompress
	   The -Z option is meant to be used in conunction with the -s option.
	   It instructs objdump to decompress any compressed sections before
	   displaying their contents.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       nm(1), readelf(1), and the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    OBJDUMP(1)

LD(1)			     Инструменты разработки GNU			 LD(1)



NAME
       ld - Связыватель GNU

SYNOPSIS
       ld [options] objfile ...

DESCRIPTION
       ld объединяет несколько объектных и архивных файлов, перераспределяет их данные
       и связывает ссылки на символы. Обычно это последний шаг при компиляции программы —
       запуск ld.

       ld принимает файлы языка команд связывателя, написанные в надмножестве синтаксиса
       Link Editor Command Language от AT&T, для обеспечения явного и полного контроля
       над процессом связывания.

       Эта страница man не описывает язык команд; см. раздел ld в "info" для полной информации
       о языке команд и других аспектах связывателя GNU.

       Эта версия ld использует библиотеки общего назначения BFD для работы с
       объектными файлами. Это позволяет ld читать, объединять и записывать объектные файлы
       в различных форматах — например, COFF или "a.out". Разные форматы могут быть связаны
       вместе для получения любого доступного вида объектного файла.

       Помимо своей гибкости, связыватель GNU более полезен, чем другие связыватели, в предоставлении
       диагностической информации. Многие связыватели прекращают выполнение сразу же при возникновении
       ошибки; по возможности ld продолжает выполнение, позволяя выявить другие ошибки (или, в некоторых
       случаях, получить выходной файл несмотря на ошибку).

       Связыватель GNU ld предназначен для охвата широкого спектра ситуаций и обеспечения максимальной
       совместимости с другими связывателями. В результате у вас есть множество выборов для контроля
       его поведения.

OPTIONS
       Связыватель поддерживает множество командных опций командной строки, но на практике
       немногие из них используются в определённом контексте. Например, частое использование ld
       — связывание стандартных объектных файлов Unix на стандартной, поддерживаемой системе Unix.
       На такой системе, чтобы связать файл "hello.o":

	       ld -o <output> /lib/crt0.o hello.o -lc

       Это указывает ld создать файл под названием output как результат связывания файла "/lib/crt0.o"
       с "hello.o" и библиотекой "libc.a", которая будет взята из стандартных каталогов поиска.
       (См. обсуждение опции -l ниже.)

       Некоторые опции командной строки ld могут быть указаны в любой точке командной строки.
       Однако опции, которые относятся к файлам, такие как -l или -T, заставляют файл быть прочитанным
       в точке, где опция появляется в командной строке, относительно объектных файлов и других
       опций файлов. Повторение нефайловых опций с другим аргументом либо не окажет дальнейшего эффекта,
       либо переопределит предыдущие появления (те, что дальше влево в командной строке) этой опции.
       Опции, которые могут быть осмысленно указаны более одного раза, отмечены в описаниях ниже.

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

       Обычно связыватель вызывается как минимум с одним объектным файлом, но вы можете указать
       другие формы бинарных входных файлов с помощью -l, -R и языка команд скрипта. Если вообще
       не указаны бинарные входные файлы, связыватель не производит никакого вывода и выдаёт
       сообщение No input files.

       Если связыватель не может распознать формат объектного файла, он предположит, что это
       скрипт связывателя. Скрипт, указанный таким образом, дополняет основной скрипт связывателя,
       используемый для связывания (либо скрипт связывателя по умолчанию, либо тот, который указан
       с помощью -T). Эта функция позволяет связывателю связывать файл, который выглядит как объект
       или архив, но на самом деле лишь определяет некоторые значения символов или использует
       "INPUT" или "GROUP" для загрузки других объектов. Указание скрипта таким образом дополняет
       основной скрипт связывателя, с дополнительными командами, размещёнными после основного
       скрипта; используйте опцию -T для полной замены скрипта связывателя по умолчанию, но учтите
       эффект команды "INSERT".

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

       Для опций, имена которых состоят из нескольких букв, перед именем опции может стоять
       либо один дефис, либо два; например, -trace-symbol и --trace-symbol эквивалентны.
       Замечание — есть одно исключение из этого правила. Опции с несколькими буквами, начинающиеся
       с маленькой буквы 'o', могут предшествовать только двум дефисам. Это для снижения путаницы
       с опцией -o. Таким образом, например, -omagic устанавливает имя выходного файла в magic,
       в то время как --omagic устанавливает флаг NMAGIC на выходе.

       Аргументы для опций с несколькими буквами должны либо отделяться от имени опции знаком
       равенства, либо указываться как отдельные аргументы непосредственно после опции, которая
       их требует. Например, --trace-symbol foo и --trace-symbol=foo эквивалентны. Уникальные
       сокращения имён опций с несколькими буквами принимаются.

       Замечание — если связыватель вызывается косвенно, через драйвер компилятора (например, gcc),
       то все опции командной строки связывателя должны предшествовать -Wl, (или чему-то подходящему
       для конкретного драйвера компилятора), например так:

		 gcc -Wl,--start-group foo.o bar.o -Wl,--end-group

       Это важно, потому что программа-драйвер компилятора может тихо отбросить опции связывателя,
       что приведёт к неудачному связыванию. Возникает путаница также при передаче опций, требующих
       значений, через драйвер, поскольку использование пробела между опцией и аргументом действует
       как разделитель и заставляет драйвер передавать только опцию связывателю, а аргумент —
       компилятору. В этом случае проще использовать объединённые формы как одиночных, так и
       множественных опций, например:

		 gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map

       Вот таблица общих опций командной строки, принимаемых связывателем GNU:

       @file
	   Читать опции командной строки из file. Опции, прочитанные из файла, вставляются
	   на место оригинальной опции @file. Если file не существует или не может быть прочитан,
	   опция будет обработана буквально, без удаления.

	   Опции в file разделены пробелами. Пробельный символ может быть включён в опцию,
	   если вся опция окружена одиночными или двойными кавычками. Любые символы (включая
	   обратную косую черту) могут быть включены путём добавления перед ними обратной косой
	   черты. Файл может сам содержать дополнительные опции @file; такие опции будут
	   обработаны рекурсивно.

       -a keyword
	   Эта опция поддерживается для совместимости с HP/UX. Аргумент keyword должен быть
	   одной из строк: archive, shared или default. -aarchive эквивалентна -Bstatic,
	   а другие две строки эквивалентны -Bdynamic. Эта опция может использоваться
	   любое количество раз.

       --audit AUDITLIB
	   Добавляет AUDITLIB в запись "DT_AUDIT" раздела динамических ссылок. AUDITLIB
	   не проверяется на существование, и она не будет использовать DT_SONAME, указанное
	   в библиотеке. Если указано несколько раз, "DT_AUDIT" будет содержать список
	   интерфейсов аудита, разделённый двоеточиями. Если связыватель находит объект
	   с записью аудита при поиске разделяемых библиотек, он добавит соответствующую
	   запись "DT_DEPAUDIT" в выходной файл. Эта опция осмысленна только на платформах
	   ELF, поддерживающих интерфейс rtld-audit.

       -b input-format
       --format=input-format
	   ld может быть настроен для поддержки нескольких видов объектных файлов. Если
	   ваш ld настроен таким образом, вы можете использовать опцию -b для указания
	   двоичного формата для входных объектных файлов, которые следуют за этой опцией
	   в командной строке. Даже если ld настроен для поддержки альтернативных форматов
	   объектных файлов, вам обычно не нужно это указывать, поскольку ld должен быть
	   настроен для ожидания формата ввода по умолчанию, который является наиболее
	   обычным на каждой машине. input-format — это строка текста, название
	   конкретного формата, поддерживаемого библиотеками BFD. (Вы можете перечислить
	   доступные двоичные форматы с помощью objdump -i.)

	   Вы можете захотеть использовать эту опцию, если связываете файлы с необычным
	   двоичным форматом. Вы также можете использовать -b для явного переключения
	   форматов (при связывании объектных файлов разных форматов), включив -b input-format
	   перед каждой группой объектных файлов в определённом формате.

	   Формат по умолчанию берётся из переменной окружения "GNUTARGET".

	   Вы также можете определить формат ввода из скрипта, используя команду "TARGET";

       -c MRI-commandfile
       --mri-script=MRI-commandfile
	   Для совместимости со связывателями, производимыми MRI, ld принимает скрипты,
	   написанные на альтернативном, ограниченном языке команд, описанном в разделе
	   MRI Compatible Script Files документации GNU ld. Введите скрипты MRI с опцией -c;
	   используйте опцию -T для запуска скриптов связывателя, написанных на общем
	   языке команд ld. Если MRI-cmdfile не существует, ld ищет его в каталогах,
	   указанных любой опцией -L.

       -d
       -dc
       -dp Эти три опции эквивалентны; несколько форм поддерживаются для совместимости
	   с другими связывателями. Они выделяют пространство для общих символов даже если
	   указан выходной файл с возможностью перераспределения (с -r). Команда скрипта
	   "FORCE_COMMON_ALLOCATION" имеет тот же эффект.

       --depaudit AUDITLIB
       -P AUDITLIB
	   Добавляет AUDITLIB в запись "DT_DEPAUDIT" раздела динамических ссылок. AUDITLIB
	   не проверяется на существование, и она не будет использовать DT_SONAME, указанное
	   в библиотеке. Если указано несколько раз, "DT_DEPAUDIT" будет содержать список
	   интерфейсов аудита, разделённый двоеточиями. Эта опция осмысленна только на
	   платформах ELF, поддерживающих интерфейс rtld-audit. Опция -P предоставлена
	   для совместимости с Solaris.

       --enable-linker-version
	   Включает директиву "LINKER_VERSION" в скрипте связывателя, описанную в Output
	   Section Data. Если эта директива используется в скрипте связывателя и эта опция
	   включена, то строка, содержащая версию связывателя, будет вставлена в текущей точке.

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

       --disable-linker-version
	   Отключает директиву "LINKER_VERSION" в скрипте связывателя, так чтобы она
	   не вставляла строку версии. Это значение по умолчанию.

       --enable-non-contiguous-regions
	   Эта опция предотвращает генерацию ошибки, если входной раздел не помещается
	   в соответствующий выходной раздел. Связыватель попытается выделить входной
	   раздел для последующих соответствующих выходных разделов и генерирует ошибку
	   только если ни один выходной раздел не достаточно велик. Это полезно, когда
	   доступны несколько неконтинуальных регионов памяти и входной раздел не требует
	   конкретного. Порядок оценки входных разделов не изменяется, например:

		     MEMORY {
		       MEM1 (rwx) : ORIGIN = 0x1000, LENGTH = 0x14
		       MEM2 (rwx) : ORIGIN = 0x1000, LENGTH = 0x40
		       MEM3 (rwx) : ORIGIN = 0x2000, LENGTH = 0x40
		     }
		     SECTIONS {
		       mem1 : { *(.data.*); } > MEM1
		       mem2 : { *(.data.*); } > MEM2
		       mem3 : { *(.data.*); } > MEM3
		     }

		     с входными разделами:
		     .data.1: размер 8
		     .data.2: размер 0x10
		     .data.3: размер 4

		     результатом является .data.1, назначенный mem1, и .data.2 и .data.3
		     назначенные mem2, несмотря на то, что .data.3 поместился бы в mem3.

	   Эта опция несовместима с инструкциями INSERT, поскольку она изменяет способ
	   отображения входных разделов на выходные разделы.

       --enable-non-contiguous-regions-warnings
	   Эта опция включает предупреждения, когда "--enable-non-contiguous-regions"
	   позволяет потенциально неожиданные совпадения в отображении разделов, что может
	   привести к тихому отбрасыванию раздела вместо ошибки, поскольку он не помещается
	   в какой-либо выходной регион.

       -e entry
       --entry=entry
	   Использовать entry как явный символ для начала выполнения вашей программы,
	   вместо точки входа по умолчанию. Если символ с именем entry отсутствует,
	   связыватель попытается разобрать entry как число и использовать это как адрес
	   входа (число будет интерпретировано в базе 10; вы можете использовать ведущий
	   0x для базы 16 или ведущий 0 для базы 8).

       --exclude-libs lib,lib,...
	   Указывает список архивных библиотек, из которых символы не должны автоматически
	   экспортироваться. Имена библиотек могут быть разделены запятыми или двоеточиями.
	   Указание "--exclude-libs ALL" исключает символы во всех архивных библиотеках
	   из автоматической экспорта. Эта опция доступна только для целевой платформы i386 PE
	   связывателя и для целевых платформ ELF. Для i386 PE символы, явно перечисленные
	   в файле .def, всё равно экспортируются, независимо от этой опции. Для целевых
	   платформ ELF символы, затронутые этой опцией, будут обработаны как скрытые.

       --exclude-modules-for-implib module,module,...
	   Указывает список объектных файлов или членов архивов, из которых символы не должны
	   автоматически экспортироваться, но которые должны быть скопированы целиком
	   в генерируемую импортную библиотеку во время связывания. Имена модулей могут быть
	   разделены запятыми или двоеточиями и должны точно соответствовать именам файлов,
	   используемым ld для открытия файлов; для членов архивов это просто имя члена,
	   но для объектных файлов указанное имя должно включать и точно соответствовать
	   любому пути, использованному для указания входного файла в командной строке
	   связывателя. Эта опция доступна только для целевой платформы i386 PE связывателя.
	   Символы, явно перечисленные в файле .def, всё равно экспортируются, независимо
	   от этой опции.

       -E
       --export-dynamic
       --no-export-dynamic
	   При создании динамически связываемого исполняемого файла опция -E или
	   --export-dynamic заставляет связыватель добавить все символы в таблицу динамических
	   символов. Таблица динамических символов — это набор символов, которые видны из
	   динамических объектов во время выполнения.

	   Если ни одна из этих опций не используется (или используется опция --no-export-dynamic
	   для восстановления поведения по умолчанию), таблица динамических символов обычно
	   содержит только те символы, которые ссылаются на какой-то динамический объект,
	   упомянутый в связывании.

	   Если вы используете "dlopen" для загрузки динамического объекта, который нуждается
	   в ссылках на символы, определённые программой, а не на какой-то другой динамический
	   объект, то вам, вероятно, нужно использовать эту опцию при связывании самой программы.

	   Вы также можете использовать динамический список для контроля, какие символы должны быть
	   добавлены в таблицу динамических символов, если формат вывода поддерживает это. См.
	   описание --dynamic-list.

	   Замечание — эта опция специфична для целевых платформ ELF. Целевые платформы PE
	   поддерживают похожую функцию для экспорта всех символов из DLL или EXE; см. описание
	   --export-all-symbols ниже.

       --export-dynamic-symbol=glob
	   При создании динамически связываемого исполняемого файла символы, соответствующие
	   glob, будут добавлены в таблицу динамических символов. При создании разделяемой
	   библиотеки ссылки на символы, соответствующие glob, не будут привязаны к определениям
	   внутри разделяемой библиотеки. Эта опция не имеет эффекта при создании разделяемой
	   библиотеки и -Bsymbolic или --dynamic-list не указаны. Эта опция осмысленна только
	   на платформах ELF, поддерживающих разделяемые библиотеки.

       --export-dynamic-symbol-list=file
	   Указать --export-dynamic-symbol для каждого шаблона в file. Формат файла такой же,
	   как узел версии без области видимости и имени узла. См. VERSION для дополнительной
	   информации.

       -EB Связывать объектные файлы с большим порядком эндианов. Это влияет на формат вывода по умолчанию.

       -EL Связывать объектные файлы с малым порядком эндианов. Это влияет на формат вывода по умолчанию.

       -f name
       --auxiliary=name
	   При создании разделяемого объекта ELF установить внутреннее поле DT_AUXILIARY
	   в указанное name. Это сообщает динамическому связывателю, что таблица символов
	   разделяемого объекта должна использоваться как вспомогательный фильтр для таблицы
	   символов разделяемого объекта name.

	   Если позже вы свяжите программу с этим объектом-фильтром, то при запуске программы
	   динамический связыватель увидит поле DT_AUXILIARY. Если динамический связыватель
	   разрешит какие-либо символы из объекта-фильтра, он сначала проверит, есть ли
	   определение в разделяемом объекте name. Если оно есть, оно будет использовано вместо
	   определения в объекте-фильтре. Разделяемый объект name необязательно существует.
	   Таким образом, разделяемый объект name может использоваться для предоставления
	   альтернативной реализации определённых функций, возможно, для отладки или для
	   производительности, специфичной для машины.

	   Эта опция может быть указана несколько раз. Записи DT_AUXILIARY будут созданы
	   в порядке, в котором они появляются в командной строке.

       -F name
       --filter=name
	   При создании разделяемого объекта ELF установить внутреннее поле DT_FILTER
	   в указанное name. Это сообщает динамическому связывателю, что таблица символов
	   разделяемого объекта, который создаётся, должна использоваться как фильтр для
	   таблицы символов разделяемого объекта name.

	   Если позже вы свяжите программу с этим объектом-фильтром, то при запуске программы
	   динамический связыватель увидит поле DT_FILTER. Динамический связыватель будет
	   разрешать символы в соответствии с таблицей символов объекта-фильтра, как обычно,
	   но на самом деле свяжет с определениями, найденными в разделяемом объекте name.
	   Таким образом, объект-фильтр может использоваться для выбора подмножества символов,
	   предоставляемых объектом name.

	   Некоторые старые связыватели использовали опцию -F на протяжении всей цепочки
	   компиляции для указания формата объектного файла как для входных, так и для
	   выходных объектных файлов. Связыватель GNU использует другие механизмы для этой
	   цели: опции -b, --format, --oformat, команду "TARGET" в скриптах связывателя
	   и переменную окружения "GNUTARGET". Связыватель GNU игнорирует опцию -F, если
	   не создаётся разделяемый объект ELF.

       -fini=name
	   При создании исполняемого файла ELF или разделяемого объекта вызвать NAME при
	   выгрузке исполняемого файла или разделяемого объекта, установив DT_FINI на адрес
	   функции. По умолчанию связыватель использует "_fini" как функцию для вызова.

       -g Игнорируется. Предоставлено для совместимости с другими инструментами.

       -G value
       --gpsize=value
	   Установить максимальный размер объектов, оптимизируемых с использованием регистра
	   GP, в size. Это осмысленно только для форматов объектных файлов, таких как MIPS ELF,
	   которые поддерживают размещение больших и малых объектов в разных разделах. Это
	   игнорируется для других форматов объектных файлов.

       -h name
       -soname=name
	   При создании разделяемого объекта ELF установить внутреннее поле DT_SONAME
	   в указанное name. Когда исполняемый файл связывается с разделяемым объектом,
	   у которого есть поле DT_SONAME, то при запуске исполняемого файла динамический
	   связыватель попытается загрузить разделяемый объект, указанный в поле DT_SONAME,
	   а не использовать имя файла, данное связывателю.

       -i Выполнить инкрементальное связывание (то же, что и опция -r).

       -init=name
	   При создании исполняемого файла ELF или разделяемого объекта вызвать NAME при
	   загрузке исполняемого файла или разделяемого объекта, установив DT_INIT на адрес
	   функции. По умолчанию связыватель использует "_init" как функцию для вызова.

       -l namespec
       --library=namespec
	   Добавить архив или объектный файл, указанный namespec, в список файлов для
	   связывания. Эта опция может использоваться любое количество раз. Если namespec
	   имеет форму :filename, ld будет искать в пути библиотек файл с именем filename,
	   в противном случае он будет искать файл с именем libnamespec.a.

	   На системах, поддерживающих разделяемые библиотеки, ld также может искать
	   файлы помимо libnamespec.a. Конкретно, на системах ELF и SunOS ld будет искать
	   в каталоге библиотеку с именем libnamespec.so перед поиском libnamespec.a.
	   (По конвенции, расширение ".so" указывает на разделяемую библиотеку.) Замечание,
	   что это поведение не применяется к :filename, которое всегда указывает файл
	   с именем filename.

	   Связыватель будет искать в архиве только один раз, в месте, где он указан
	   в командной строке. Если архив определяет символ, который был неопределённым
	   в каком-то объекте, который появился до архива в командной строке, связыватель
	   включит соответствующий файл(ы) из архива. Однако, неопределённый символ
	   в объекте, появляющемся позже в командной строке, не заставит связыватель
	   искать в архиве снова.

	   См. опцию -( для способа заставить связыватель искать в архивах несколько раз.

	   Вы можете перечислить один и тот же архив несколько раз в командной строке.

	   Этот тип поиска в архивах является стандартным для связывателей Unix. Однако,
	   если вы используете ld на AIX, обратите внимание, что это отличается от поведения
	   связывателя AIX.

       -L searchdir
       --library-path=searchdir
	   Добавить путь searchdir в список путей, которые ld будет искать архивные библиотеки
	   и скрипты управления ld. Вы можете использовать эту опцию любое количество раз.
	   Каталоги ищутся в порядке, в котором они указаны в командной строке. Каталоги,
	   указанные в командной строке, ищутся перед каталогами по умолчанию. Все опции -L
	   применяются ко всем опциям -l, независимо от порядка их появления. Опции -L не
	   влияют на то, как ld ищет скрипт связывателя, если не указана опция -T.

	   Если searchdir начинается с "=" или $SYSROOT, этот префикс будет заменён
	   префиксом sysroot, управляемым опцией --sysroot, или указанным при настройке
	   связывателя.

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

	   Пути также могут быть указаны в скрипте связывателя с командой "SEARCH_DIR".
	   Каталоги, указанные таким образом, ищутся в точке, в которой скрипт связывателя
	   появляется в командной строке.

       -m emulation
	   Эмулировать связыватель emulation. Вы можете перечислить доступные эмуляции
	   с опциями --verbose или -V.

	   Если опция -m не используется, эмуляция берётся из переменной окружения
	   "LDEMULATION", если она определена.

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

       --remap-inputs=pattern=filename
       --remap-inputs-file=file
	   Эти опции позволяют изменить имена входных файлов перед тем, как связыватель
	   попытается открыть их. Опция --remap-inputs=foo.o=bar.o заставит любую попытку
	   загрузить файл с именем foo.o вместо этого попытаться загрузить файл с именем
	   bar.o. Шаблоны с подстановочными знаками допускаются в первом имени файла,
	   так что --remap-inputs=foo*.o=bar.o переименует любой входной файл, соответствующий
	   foo*.o, в bar.o.

	   Альтернативная форма опции --remap-inputs-file=filename позволяет читать
	   переименования из файла. Каждая строка в файле может содержать одно переименование.
	   Пустые строки игнорируются. Всё от символа хэша (#) до конца строки считается
	   комментарием и также игнорируется. Шаблон переименования может быть разделён
	   от имени файла пробелами или знаком равенства (=).

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

	   Если заменяемое имя файла — /dev/null или просто NUL, то переименование фактически
	   заставит игнорировать входной файл. Это удобный способ экспериментировать с удалением
	   входных файлов из сложной среды сборки.

	   Замечание — эта опция зависит от позиции и влияет только на имена файлов, которые
	   следуют за ней в командной строке. Таким образом:

		     ld foo.o --remap-inputs=foo.o=bar.o

	   Не окажет эффекта, в то время как:

		     ld --remap-inputs=foo.o=bar.o foo.o

	   Переименует входной файл foo.o в bar.o.

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

	   Если опция verbose включена, то любые совпадения, которые найдены, будут сообщены,
	   хотя опция verbose должна быть включена в командной строке до появления переименованных
	   имён файлов.

	   Если опции -Map или --print-map включены, то список переименований будет включён
	   в вывод карты.

       -M
       --print-map
	   Печатать карту связывания в стандартный вывод. Карта связывания предоставляет
	   информацию о связывании, включая следующее:

	   •   Где объектные файлы отображаются в памяти.

	   •   Как распределяются общие символы.

	   •   Все члены архивов, включённые в связывание, с упоминанием символа, который
	       заставил включить член архива.

	   •   Значения, присвоенные символам.

	       Замечание — символы, значения которых вычисляются выражением, которое включает
	       ссылку на предыдущее значение того же символа, могут не отображать правильный
	       результат в карте связывания. Это потому, что связыватель отбрасывает промежуточные
	       результаты и сохраняет только конечное значение выражения. В таких обстоятельствах
	       связыватель отобразит конечное значение в квадратных скобках. Таким образом, например,
	       скрипт связывателя, содержащий:

			  foo = 1
			  foo = foo * 4
			  foo = foo + 8

	       произведёт следующий вывод в карте связывания, если используется опция -M:

			  0x00000001		    foo = 0x1
			  [0x0000000c]		      foo = (foo * 0x4)
			  [0x0000000c]		      foo = (foo + 0x8)

	       См. Expressions для дополнительной информации о выражениях в скриптах связывателя.

	   •   Как объединяются свойства GNU.

	       Когда связыватель объединяет входные разделы .note.gnu.property в один выходной
	       раздел .note.gnu.property, некоторые свойства удаляются или обновляются. Эти действия
	       отображаются в карте связывания. Например:

		       Removed property 0xc0000002 to merge foo.o (0x1) and bar.o (not found)

	       Это указывает, что свойство 0xc0000002 удалено из вывода при объединении свойств
	       в foo.o, чьё свойство 0xc0000002 равно 0x1, и bar.o, в котором нет свойства
	       0xc0000002.

		       Updated property 0xc0010001 (0x1) to merge foo.o (0x1) and bar.o (0x1)

	       Это указывает, что значение свойства 0xc0010001 обновлено до 0x1 в выводе при
	       объединении свойств в foo.o, чьё свойство 0xc0010001 равно 0x1, и bar.o, чьё
	       свойство 0xc0010001 равно 0x1.

	   •   На некоторых целевых платформах ELF список фиксаций, вставленных --relax.

		       foo.o: Adjusting branch at 0x00000008 towards "far" in section .text

	       Это указывает, что ветвление на 0x00000008 в foo.o, ориентированное на символ
	       "far" в разделе .text, было заменено на трамплин.

       --print-map-discarded
       --no-print-map-discarded
	   Печатать (или не печатать) список отброшенных и собранных мусором разделов
	   в карте связывания. Включено по умолчанию.

       --print-map-locals
       --no-print-map-locals
	   Печатать (или не печатать) локальные символы в карте связывания. Локальные
	   символы будут иметь текст (local), напечатанный перед их именем, и будут
	   перечислены после всех глобальных символов в данном разделе. Временные
	   локальные символы (обычно те, что начинаются с .L) не будут включены в вывод.
	   Отключено по умолчанию.

       -n
       --nmagic
	   Отключить выравнивание разделов по страницам и запретить связывание с
	   разделяемыми библиотеками. Если формат вывода поддерживает магические числа
	   в стиле Unix, пометить вывод как "NMAGIC".

       -N
       --omagic
	   Сделать разделы текста и данных читаемыми и записываемыми. Кроме того,
	   не выравнивать раздел данных по страницам и запретить связывание с
	   разделяемыми библиотеками. Если формат вывода поддерживает магические числа
	   в стиле Unix, пометить вывод как "OMAGIC". Замечание: Хотя записываемый
	   раздел текста разрешается для целевых платформ PE-COFF, это не соответствует
	   спецификации формата, опубликованной Microsoft.

       --no-omagic
	   Эта опция отменяет большинство эффектов опции -N. Она устанавливает раздел
	   текста как читаемый, и заставляет раздел данных выравниваться по страницам.
	   Замечание — эта опция не включает связывание с разделяемыми библиотеками.
	   Используйте -Bdynamic для этого.

       -o output
       --output=output
	   Использовать output как имя для программы, произведённой ld; если эта опция
	   не указана, имя a.out используется по умолчанию. Команда скрипта "OUTPUT"
	   также может указать имя выходного файла.

	   Замечание — связыватель удалит выходной файл перед тем, как начать писать
	   в него. Он сделает это даже если выяснится, что связывание не может быть
	   завершено из-за ошибок.

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

		     ld -o $(EXE) $(OBJS)
		     ld $(OBJS) -o $(EXE)

	   Если переменная EXE не определена по какой-то причине, первая версия командной
	   строки связывателя может закончиться удалением одного из объектных файлов
	   (первого в списке OBJS), в то время как вторая версия командной строки связывателя
	   сгенерирует сообщение об ошибке и ничего не удалит.

       --dependency-file=depfile
	   Записать файл зависимостей в depfile. Этот файл содержит правило, подходящее
	   для "make", описывающее выходной файл и все входные файлы, которые были прочитаны
	   для его создания. Вывод похож на вывод компилятора с -M -MP. Замечание, что
	   нет опции вроде -MM компилятора, для исключения "системных файлов" (что не
	   является хорошо определённым понятием для связывателя, в отличие от "системных
	   заголовков" для компилятора). Таким образом, вывод от --dependency-file всегда
	   специфичен для точного состояния установки, где он был произведён, и не должен
	   копироваться в распространяемые файлы makefile без тщательной правки.

       -O level
	   Если level — числовое значение больше нуля, ld оптимизирует вывод. Это может
	   занять значительно больше времени и поэтому, вероятно, должно быть включено
	   только для финального бинарника. В данный момент эта опция влияет только на
	   генерацию разделяемых библиотек ELF. Будущие выпуски связывателя могут больше
	   использовать эту опцию. Кроме того, в настоящее время нет разницы в поведении
	   связывателя для разных ненулевых значений этой опции. Опять же, это может измениться
	   в будущих выпусках.

       -plugin name
	   Вовлечь плагин в процесс связывания. Параметр name — абсолютное имя файла
	   плагина. Обычно этот параметр автоматически добавляется компилятором при
	   использовании связывания во время оптимизации, но пользователи также могут
	   добавлять свои плагины, если захотят.

	   Замечание, что местоположение плагинов, происходящих от компилятора, отличается
	   от места, где программы ar, nm и ranlib ищут свои плагины. Чтобы эти команды
	   могли использовать плагин на основе компилятора, его сначала нужно скопировать
	   в каталог ${libdir}/bfd-plugins. Все плагины связывателя на основе gcc совместимы
	   назад, так что достаточно скопировать самый новый.

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

	   Опции, которые охватываются: -Bdynamic, -Bstatic, -dn, -dy, -call_shared,
	   -non_shared, -static, -N, -n, --whole-archive, --no-whole-archive, -r, -Ur,
	   --copy-dt-needed-entries, --no-copy-dt-needed-entries, --as-needed,
	   --no-as-needed и -a.

	   Одним из назначений этой опции являются спецификации для pkg-config. При
	   использовании с опцией --libs все потенциально нужные библиотеки перечислены
	   и затем, возможно, связаны всё время. Лучше вернуть что-то вроде:

		   -Wl,--push-state,--as-needed -libone -libtwo -Wl,--pop-state

       --pop-state
	   Отменяет эффект --push-state, восстанавливает предыдущие значения флагов,
	   управляющих обработкой входных файлов.

       -q
       --emit-relocs
	   Оставить разделы релокаций и их содержимое в полностью связанных исполняемых
	   файлах. Инструменты постобработки и оптимизации могут нуждаться в этой информации
	   для выполнения правильных модификаций исполняемых файлов. Это приводит к
	   большим исполняемым файлам.

	   Эта опция в настоящее время поддерживается только на платформах ELF.

       --force-dynamic
	   Заставить выходной файл иметь динамические разделы. Эта опция специфична
	   для целевых платформ VxWorks.

       -r
       --relocatable
	   Генерировать выход с возможностью перераспределения — т.е. генерировать выходной
	   файл, который в свою очередь может служить входом для ld. Это часто называется
	   частичным связыванием. Как побочный эффект, в средах, поддерживающих стандартные
	   магические числа Unix, эта опция также устанавливает магическое число выходного
	   файла в "OMAGIC". Если эта опция не указана, производится абсолютный файл.
	   При связывании программ C++ эта опция не разрешит ссылки на конструкторы; для
	   этого используйте -Ur.

	   Когда входной файл не имеет того же формата, что и выходной файл, частичное
	   связывание поддерживается только если входной файл не содержит релокаций.
	   Разные форматы вывода могут иметь дополнительные ограничения; например, некоторые
	   форматы на основе "a.out" не поддерживают частичное связывание с входными файлами
	   в других форматах вообще.

	   Когда выход с возможностью перераспределения содержит как содержимое, требующее
	   оптимизации во время связывания (LTO), так и содержимое, не требующее LTO, будет
	   создан раздел .gnu_object_only, содержащий объектный файл с возможностью
	   перераспределения, как если бы -r применялась ко всем перераспределяемым входам,
	   не требующим LTO. При обработке входного файла с возможностью перераспределения
	   с разделом .gnu_object_only связыватель извлечёт раздел .gnu_object_only как
	   отдельный вход.

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

	   Эта опция делает то же самое, что и -i.

       -R filename
       --just-symbols=filename
	   Читать имена символов и их адреса из filename, но не перераспределять его
	   или не включать в вывод. Это позволяет вашему выходному файлу ссылаться символически
	   на абсолютные расположения памяти, определённые в других программах. Вы можете
	   использовать эту опцию несколько раз.

	   Для совместимости с другими связывателями ELF, если опция -R следует за именем
	   каталога, а не именем файла, она обрабатывается как опция -rpath.

       --rosegment
       --no-rosegment
	   Пытаться обеспечить, чтобы был создан только один читаемый, не-кодовый сегмент.
	   Полезно только в сочетании с опцией -z separate-code. Результирующие бинарники
	   должны быть меньше, чем если бы использовалась только -z separate-code. Без этой
	   опции, или если указана --no-rosegment, опция -z separate-code создаст два читаемых
	   сегмента, один перед сегментом кода и один после него.

	   Имена опций вводящие в заблуждение, но они выбраны для того, чтобы связыватель
	   был совместим с связывателями LLD и GOLD.

	   Эти опции поддерживаются только на целевых платформах ELF.

       -s
       --strip-all
	   Убрать всю информацию о символах из выходного файла.

       -S
       --strip-debug
	   Убрать информацию о символах отладчика (но не все символы) из выходного файла.

       --strip-discarded
       --no-strip-discarded
	   Убрать (или не убирать) глобальные символы, определённые в отброшенных разделах.
	   Включено по умолчанию.

       -plugin-save-temps
	   Хранить промежуточные файлы плагина "временно" постоянно.

       -t
       --trace
	   Печатать имена входных файлов по мере обработки ld. Если -t указана дважды,
	   то члены внутри архивов также печатаются. Вывод -t полезен для генерации списка
	   всех объектных файлов и скриптов, участвующих в связывании, например, при упаковке
	   файлов для отчёта об ошибке связывателя.

       -T scriptfile
       --script=scriptfile
	   Использовать scriptfile как скрипт связывателя. Этот скрипт заменяет скрипт
	   связывателя ld по умолчанию (а не добавляет к нему), если скрипт не содержит
	   "INSERT", поэтому commandfile должен указывать всё необходимое для описания
	   выходного файла.

	   Если scriptfile не существует в текущем каталоге, "ld" ищет его в каталогах,
	   указанных любой предыдущей опцией -L.

	   Опции командной строки, которые появляются перед опцией -T, могут повлиять
	   на скрипт, но опции командной строки, которые появляются после неё, не влияют.

	   Несколько опций -T будут накапливаться, если они дополняют текущий скрипт,
	   в противном случае будет использована последняя, не дополняющая, опция -T.

	   Существуют и другие способы указания скриптов связывателя. См.

       -dT scriptfile
       --default-script=scriptfile
	   Использовать scriptfile как скрипт связывателя по умолчанию.

	   Эта опция похожа на опцию --script, за исключением того, что обработка скрипта
	   откладывается до тех пор, пока не будет обработана вся остальная командная строка.
	   Это позволяет опциям, размещённым после опции --default-script в командной строке,
	   влиять на поведение скрипта связывателя, что может быть важно, когда командная
	   строка связывателя не может быть напрямую контролируема пользователем. (Например,
	   потому что командная строка строится другим инструментом, таким как gcc).

       -u symbol
       --undefined=symbol
	   Заставить symbol войти в выходной файл как неопределённый символ. Это может,
	   например, вызвать связывание дополнительных модулей из стандартных библиотек.
	   -u может быть повторено с разными аргументами опций для ввода дополнительных
	   неопределённых символов. Эта опция эквивалентна команде скрипта "EXTERN".

	   Если эта опция используется для принудительного включения дополнительных модулей
	   в связывание, и если это ошибка, что символ остаётся неопределённым, то следует
	   использовать опцию --require-defined.

       --require-defined=symbol
	   Требовать, чтобы symbol был определён в выходном файле. Эта опция такая же,
	   как опция --undefined, за исключением того, что если symbol не определён
	   в выходном файле, связыватель выдаст ошибку и выйдет. Тот же эффект можно достичь
	   в скрипте связывателя, используя "EXTERN", "ASSERT" и "DEFINED" вместе.
	   Эта опция может использоваться несколько раз для требования дополнительных символов.

       -Ur Для программ, которые не используют конструкторы или деструкторы, или для
	   систем на основе ELF эта опция эквивалентна -r: она генерирует выход с
	   возможностью перераспределения — т.е. выходной файл, который в свою очередь
	   может служить входом для ld. Для других бинарников однако опция -Ur похожа
	   на -r, но она также разрешает ссылки на конструкторы и деструкторы.

	   Для тех систем, где -r и -Ur ведут себя по-разному, не работает использование
	   -Ur на файлах, которые сами были связаны с -Ur; как только таблица конструкторов
	   построена, её нельзя добавить. Используйте -Ur только для последнего частичного
	   связывания, а -r для остальных.

       --orphan-handling=MODE
	   Контролировать, как обрабатываются сиротские разделы. Сиротский раздел —
	   это тот, который не указан явно в скрипте связывателя.

	   MODE может иметь одно из следующих значений:

	   "place"
	       Сиротские разделы размещаются в подходящем выходном разделе в соответствии
	       со стратегией, описанной в Orphan Sections. Опция --unique также влияет на
	       то, как размещаются разделы.

	   "discard"
	       Все сиротские разделы отбрасываются, размещая их в разделе /DISCARD/.

	   "warn"
	       Связыватель размещает сиротский раздел как для "place" и также выдаёт
	       предупреждение.

	   "error"
	       Связыватель выйдет с ошибкой, если найдён какой-либо сиротский раздел.

	   Значение по умолчанию, если --orphan-handling не указано, — "place".

       --unique[=SECTION]
	   Создаёт отдельный выходной раздел для каждого входного раздела, соответствующего
	   SECTION, или, если необязательный аргумент шаблона SECTION отсутствует, для
	   каждого сиротского входного раздела. Сиротский раздел — это тот, который не
	   указан явно в скрипте связывателя. Вы можете использовать эту опцию несколько
	   раз в командной строке; она предотвращает нормальное слияние входных разделов
	   с одинаковыми именами, переопределяя назначения выходных разделов в скрипте
	   связывателя.

       -v
       --version
       -V  Показать номер версии ld. Опция -V также перечисляет поддерживаемые эмуляции.
	   См. также описание --enable-linker-version в Options,,Command-line Options,
	   которая может использоваться для вставки строки версии связывателя в бинарник.

       -x
       --discard-all
	   Удалить все локальные символы.

       -X
       --discard-locals
	   Удалить все временные локальные символы. (Эти символы начинаются с префиксов
	   локальных меток, специфичных для системы, обычно .L для систем ELF или L для
	   традиционных систем a.out.)

       -y symbol
       --trace-symbol=symbol
	   Печатать имя каждого связанного файла, в котором появляется symbol. Эта опция
	   может быть указана любое количество раз. На многих системах необходимо предшествовать
	   подчёркиванием.

	   Эта опция полезна, когда у вас есть неопределённый символ в связывании, но вы
	   не знаете, откуда идёт ссылка.

       -Y path
	   Добавить path в путь поиска библиотек по умолчанию. Эта опция существует
	   для совместимости с Solaris.

       -z keyword
	   Распознаваемые keyword:

	   call-nop=prefix-addr
	   call-nop=suffix-nop
	   call-nop=prefix-byte
	   call-nop=suffix-byte
	       Указать 1-байтовую "NOP" подкладку при преобразовании косвенного вызова
	       в локально определённую функцию, foo, через её слот GOT. call-nop=prefix-addr
	       генерирует "0x67 call foo". call-nop=suffix-nop генерирует "call foo 0x90".
	       call-nop=prefix-byte генерирует "byte call foo". call-nop=suffix-byte
	       генерирует "call foo byte". Поддерживается для i386 и x86_64.

	   cet-report=none
	   cet-report=warning
	   cet-report=error
	       Указать, как сообщать об отсутствующих GNU_PROPERTY_X86_FEATURE_1_IBT
	       и GNU_PROPERTY_X86_FEATURE_1_SHSTK свойствах во входном разделе
	       .note.gnu.property. cet-report=none, что является значением по умолчанию,
	       заставит связыватель не сообщать об отсутствующих свойствах во входных файлах.
	       cet-report=warning заставит связыватель выдать предупреждение об отсутствующих
	       свойствах во входных файлах. cet-report=error заставит связыватель выдать
	       ошибку об отсутствующих свойствах во входных файлах. Замечание, что ibt
	       отключит отчёт об отсутствующем свойстве GNU_PROPERTY_X86_FEATURE_1_IBT,
	       а shstk отключит отчёт об отсутствующем свойстве GNU_PROPERTY_X86_FEATURE_1_SHSTK.
	       Поддерживается для Linux/i386 и Linux/x86_64.

	   combreloc
	   nocombreloc
	       Объединить несколько разделов динамических релокаций и отсортировать для
	       улучшения кэширования поиска динамических символов. Не делать это, если nocombreloc.

	   common
	   nocommon
	       Генерировать общие символы с типом STT_COMMON во время связывания с
	       возможностью перераспределения. Использовать тип STT_OBJECT, если nocommon.

	   common-page-size=value
	       Установить размер страницы, наиболее часто используемый, в value. Расположение
	       изображения памяти будет оптимизировано для минимизации страниц памяти, если
	       система использует страницы этого размера.

	   defs
	       Сообщать о неразрешённых ссылках на символы из обычных объектных файлов.
	       Это делается даже если связыватель создаёт несимволическую разделяемую библиотеку.
	       Эта опция — обратная -z undefs.

	   dynamic-undefined-weak
	   nodynamic-undefined-weak
	       Сделать неопределённые слабые символы динамическими при построении динамического
	       объекта, если на них ссылаются из обычного объектного файла и они не вынуждены
	       быть локальными из-за видимости символа или версионности. Не делать их динамическими,
	       если nodynamic-undefined-weak. Если ни одна опция не указана, цель может по умолчанию
	       использовать любую опцию, или сделать другой выбор неопределённых слабых символов
	       динамическими. Не все цели поддерживают эти опции.

	   execstack
	       Помечает объект как требующий исполняемого стека.

	   global
	       Эта опция осмысленна только при построении разделяемого объекта. Она делает
	       символы, определённые в этом разделяемом объекте, доступными для разрешения
	       символов в последующих загружаемых библиотеках.

	   globalaudit
	       Эта опция осмысленна только при построении динамического исполняемого файла.
	       Эта опция помечает исполняемый файл как требующий глобального аудита путём
	       установки бита "DF_1_GLOBAUDIT" в теге "DT_FLAGS_1". Глобальный аудит требует,
	       чтобы любая библиотека аудита, определённая опциями --depaudit или -P, выполнялась
	       для всех динамических объектов, загружаемых приложением.

	   ibtplt
	       Генерировать записи PLT, включённые для отслеживания косвенных ветвлений Intel (IBT).
	       Поддерживается для Linux/i386 и Linux/x86_64.

	   ibt Генерировать GNU_PROPERTY_X86_FEATURE_1_IBT в разделе .note.gnu.property
	       для указания совместимости с IBT. Это также подразумевает ibtplt. Поддерживается
	       для Linux/i386 и Linux/x86_64.

	   indirect-extern-access
	   noindirect-extern-access
	       Генерировать GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS в разделе
	       .note.gnu.property для указания, что объектный файл требует канонических
	       указателей функций и не может использоваться с релокацией копирования.
	       Эта опция также подразумевает noextern-protected-data и nocopyreloc.
	       Поддерживается для i386 и x86-64.

	       noindirect-extern-access удаляет GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS
	       из раздела .note.gnu.property.

	   initfirst
	       Эта опция осмысленна только при построении разделяемого объекта. Она помечает
	       объект так, что его инициализация во время выполнения произойдёт до инициализации
	       любого другого объекта, загруженного в процесс в то же время. Аналогично,
	       финализация во время выполнения объекта произойдёт после финализации любого
	       другого объекта.

	   interpose
	       Указать, что динамический загрузчик должен изменить порядок поиска символов,
	       так чтобы символы в этой разделяемой библиотеке вставлялись во все другие
	       разделяемые библиотеки, не отмеченные таким образом.

	   unique
	   nounique
	       При генерации разделяемой библиотеки или другого динамически загружаемого
	       объекта ELF пометить его как такой, который по умолчанию должен загружаться
	       только один раз и только в основном пространстве имён (при использовании "dlmopen").
	       Это в первую очередь используется для пометки фундаментальных библиотек, таких
	       как libc, libpthread и т.д., которые обычно не работают правильно, если они
	       не являются единственными экземплярами себя. Это поведение может быть переопределено
	       вызывающим "dlmopen" и не применяется к некоторым механизмам загрузки (таким
	       как библиотеки аудита).

	   lam-u48
	       Генерировать GNU_PROPERTY_X86_FEATURE_1_LAM_U48 в разделе .note.gnu.property
	       для указания совместимости с Intel LAM_U48. Поддерживается для Linux/x86_64.

	   lam-u57
	       Генерировать GNU_PROPERTY_X86_FEATURE_1_LAM_U57 в разделе .note.gnu.property
	       для указания совместимости с Intel LAM_U57. Поддерживается для Linux/x86_64.

	   lam-u48-report=none
	   lam-u48-report=warning
	   lam-u48-report=error
	       Указать, как сообщать об отсутствующем свойстве GNU_PROPERTY_X86_FEATURE_1_LAM_U48
	       во входном разделе .note.gnu.property. lam-u48-report=none, что является
	       значением по умолчанию, заставит связыватель не сообщать об отсутствующих
	       свойствах во входных файлах. lam-u48-report=warning заставит связыватель выдать
	       предупреждение об отсутствующих свойствах во входных файлах. lam-u48-report=error
	       заставит связыватель выдать ошибку об отсутствующих свойствах во входных файлах.
	       Поддерживается для Linux/x86_64.

	   lam-u57-report=none
	   lam-u57-report=warning
	   lam-u57-report=error
	       Указать, как сообщать об отсутствующем свойстве GNU_PROPERTY_X86_FEATURE_1_LAM_U57
	       во входном разделе .note.gnu.property. lam-u57-report=none, что является
	       значением по умолчанию, заставит связыватель не сообщать об отсутствующих
	       свойствах во входных файлах. lam-u57-report=warning заставит связыватель выдать
	       предупреждение об отсутствующих свойствах во входных файлах. lam-u57-report=error
	       заставит связыватель выдать ошибку об отсутствующих свойствах во входных файлах.
	       Поддерживается для Linux/x86_64.

	   lam-report=none
	   lam-report=warning
	   lam-report=error
	       Указать, как сообщать об отсутствующих свойствах GNU_PROPERTY_X86_FEATURE_1_LAM_U48
	       и GNU_PROPERTY_X86_FEATURE_1_LAM_U57 во входном разделе .note.gnu.property.
	       lam-report=none, что является значением по умолчанию, заставит связыватель не
	       сообщать об отсутствующих свойствах во входных файлах. lam-report=warning заставит
	       связыватель выдать предупреждение об отсутствующих свойствах во входных файлах.
	       lam-report=error заставит связыватель выдать ошибку об отсутствующих свойствах
	       во входных файлах. Поддерживается для Linux/x86_64.

	   lazy
	       При генерации исполняемого файла или разделяемой библиотеки пометить его,
	       чтобы динамический связыватель откладывал разрешение вызовов функций до момента,
	       когда функция вызывается (ленивая привязка), а не во время загрузки. Ленивая
	       привязка — это значение по умолчанию.

	   loadfltr
	       Указать, что фильтры объекта должны обрабатываться немедленно во время выполнения.

	   max-page-size=value
	       Установить максимальный поддерживаемый размер страницы памяти в value.

	   mark-plt
	   nomark-plt
	       Помечать записи PLT динамическими тегами, DT_X86_64_PLT, DT_X86_64_PLTSZ
	       и DT_X86_64_PLTENT. Поскольку эта опция сохраняет ненулевое значение в поле
	       r_addend релокаций R_X86_64_JUMP_SLOT, результирующие исполняемые файлы и
	       разделяемые библиотеки несовместимы с динамическими связывателями, такими как
	       те в старых версиях glibc без изменений для игнорирования r_addend в
	       R_X86_64_GLOB_DAT и R_X86_64_JUMP_SLOT релокациях, которые не игнорируют поле
	       r_addend релокаций R_X86_64_JUMP_SLOT. Поддерживается для x86_64.

	   muldefs
	       Разрешить несколько определений.

	   nocopyreloc
	       Отключить переменные .dynbss, генерируемые связывателем, используемые вместо
	       переменных, определённых в разделяемых библиотеках. Может привести к динамическим
	       релокациям текста.

	   nodefaultlib
	       Указать, что поиск зависимостей этого объекта динамическим загрузчиком должен
	       игнорировать любые пути поиска библиотек по умолчанию.

	   nodelete
	       Указать, что объект не должен выгружаться во время выполнения.

	   nodlopen
	       Указать, что объект недоступен для "dlopen".

	   nodump
	       Указать, что объект не может быть выгружен "dldump".

	   noexecstack
	       Помечает объект как не требующий исполняемого стека.

	   noextern-protected-data
	       Не обрабатывать защищённые данные как внешние при построении разделяемой
	       библиотеки. Эта опция переопределяет значение по умолчанию бэкенда связывателя.
	       Она может использоваться для обхода неправильных релокаций на защищённые
	       данные символы, генерируемые компилятором. Обновления защищённых данных
	       символов другим модулем не видны в результирующей разделяемой библиотеке.
	       Поддерживается для i386 и x86-64.

	   noreloc-overflow
	       Отключить проверку переполнения релокаций. Это может использоваться для отключения
	       проверки переполнения релокаций, если не будет динамического переполнения релокаций
	       во время выполнения. Поддерживается для x86_64.

	   memory-seal
	   nomemory-seal
	       Инструктировать исполняемый файл или разделяемую библиотеку, что все сегменты
	       PT_LOAD должны быть запечатаны для предотвращения дальнейшей манипуляции (например,
	       изменения флагов защиты, размера сегмента или удаления отображения). Это мера
	       повышения безопасности, требующая поддержки системы. Это генерирует GNU_PROPERTY_MEMORY_SEAL
	       в разделе .note.gnu.property.

	   now Когда генерируется исполняемый файл или разделяемая библиотека, пометить его,
	       чтобы динамический связыватель разрешал все символы при запуске программы или
	       при загрузке разделяемой библиотеки dlopen, вместо того чтобы откладывать
	       разрешение вызовов функций до момента первого вызова.

	   origin
	       Указать, что объект требует обработки $ORIGIN в путях.

	   pack-relative-relocs
	   nopack-relative-relocs
	       Генерировать компактные относительные релокации в исполняемых файлах с
	       позиционно-независимым кодом и разделяемых библиотеках. Это добавляет записи
	       "DT_RELR", "DT_RELRSZ" и "DT_RELRENT" в динамический раздел. Игнорируется при
	       построении позиционно-зависимого исполняемого файла и вывода с возможностью
	       перераспределения. nopack-relative-relocs — значение по умолчанию, которое
	       отключает компактные относительные релокации. Когда связывается с библиотекой
	       GNU C, добавляется зависимость версии символа GLIBC_ABI_DT_RELR от разделяемой
	       библиотеки C. Поддерживается для i386 и x86-64.

	   relro
	   norelro
	       Создать заголовок сегмента ELF "PT_GNU_RELRO". Это указывает сегмент памяти,
	       который должен быть сделан только для чтения после релокации, если это поддерживается.
	       Указание common-page-size меньшего, чем размер страницы системы, сделает эту защиту
	       неэффективной. Не создавать заголовок сегмента ELF "PT_GNU_RELRO", если указана norelro.

	   report-relative-reloc
	       Сообщать о динамических относительных релокациях, генерируемых связывателем.
	       Поддерживается для Linux/i386 и Linux/x86_64.

	   sectionheader
	   nosectionheader
	       Генерировать заголовок раздела. Не генерировать заголовок раздела, если указана
	       nosectionheader. sectionheader — значение по умолчанию.

	   separate-code
	   noseparate-code
	       Создать отдельный заголовок сегмента "PT_LOAD" для кода в объекте. Это указывает
	       сегмент памяти, который должен содержать только инструкции и должен быть полностью
	       разнесён по страницам от любых других данных. Не создавать отдельный заголовок
	       сегмента "PT_LOAD" для кода, если указана noseparate-code.

	   shstk
	       Генерировать GNU_PROPERTY_X86_FEATURE_1_SHSTK в разделе .note.gnu.property
	       для указания совместимости с Intel Shadow Stack. Поддерживается для Linux/i386
	       и Linux/x86_64.

	   stack-size=value
	       Указать размер стека для сегмента ELF "PT_GNU_STACK". Указание нуля переопределит
	       создание любого сегмента "PT_GNU_STACK" с ненулевым размером по умолчанию.

	   start-stop-gc
	   nostart-stop-gc
	       Когда --gc-sections действует, ссылка из сохранённого раздела на "__start_SECNAME"
	       или "__stop_SECNAME" заставляет все входные разделы с именем "SECNAME" также
	       сохраниться, если "SECNAME" представимо как идентификатор C и либо "__start_SECNAME",
	       либо "__stop_SECNAME" синтезировано связывателем. -z start-stop-gc отключает
	       этот эффект, позволяя разделам быть собранными мусором, как будто специальные
	       синтезированные символы не определены. -z start-stop-gc не влияет на определение
	       "__start_SECNAME" или "__stop_SECNAME" в объектном файле или скрипте связывателя.
	       Такое определение предотвратит предоставление связывателем синтезированного
	       "__start_SECNAME" или "__stop_SECNAME" соответственно, и поэтому специальное
	       обращение сборщиком мусора для этих ссылок.

	   start-stop-visibility=value
	       Указать видимость ELF-символа для синтезированных символов "__start_SECNAME"
	       и "__stop_SECNAME". value должно быть точно default, internal, hidden или protected.
	       Если опция -z start-stop-visibility не указана, используется protected для
	       совместимости с исторической практикой. Однако, настоятельно рекомендуется
	       использовать -z start-stop-visibility=hidden в новых программах и разделяемых
	       библиотеках, чтобы эти символы не экспортировались между разделяемыми объектами,
	       что обычно не intended.

	   text
	   notext
	   textoff
	       Сообщать об ошибке, если установлен DT_TEXTREL, т.е. если позиционно-независимый
	       или разделяемый объект имеет динамические релокации в разделах только для чтения.
	       Не сообщать об ошибке, если указана notext или textoff.

	   undefs
	       Не сообщать о неразрешённых ссылках на символы из обычных объектных файлов,
	       как при создании исполняемого файла, так и при создании разделяемой библиотеки.
	       Эта опция — обратная -z defs.

	   unique-symbol
	   nounique-symbol
	       Избегать дублированных имён локальных символов в строковой таблице символов.
	       Добавить ".number" к дублированным именам локальных символов, если указана
	       unique-symbol. nounique-symbol — значение по умолчанию.

	   x86-64-baseline
	   x86-64-v2
	   x86-64-v3
	   x86-64-v4
	       Указать уровень ISA x86-64, необходимый в разделе .note.gnu.property. x86-64-baseline
	       генерирует "GNU_PROPERTY_X86_ISA_1_BASELINE". x86-64-v2 генерирует "GNU_PROPERTY_X86_ISA_1_V2".
	       x86-64-v3 генерирует "GNU_PROPERTY_X86_ISA_1_V3". x86-64-v4 генерирует "GNU_PROPERTY_X86_ISA_1_V4".
	       Поддерживается для Linux/i386 и Linux/x86_64.

	   isa-level-report=none
	   isa-level-report=all
	   isa-level-report=needed
	   isa-level-report=used
	       Указать, как сообщать об уровнях ISA x86-64 во входных файлах с возможностью
	       перераспределения. isa-level-report=none, что является значением по умолчанию,
	       заставит связыватель не сообщать об уровнях ISA x86-64 во входных файлах.
	       isa-level-report=all заставит связыватель сообщать о нужных и используемых
	       уровнях ISA x86-64 во входных файлах. isa-level-report=needed заставит
	       связыватель сообщать о нужных уровнях ISA x86-64 во входных файлах. isa-level-report=used
	       заставит связыватель сообщать об используемых уровнях ISA x86-64 во входных файлах.
	       Поддерживается для Linux/i386 и Linux/x86_64.

	   Другие keyword игнорируются для совместимости с Solaris.

       -( archives -)
       --start-group archives --end-group
	   archives должны быть списком архивных файлов. Они могут быть либо явными
	   именами файлов, либо опциями -l.

	   Указанные архивы ищутся повторно, пока не будут созданы новые неопределённые
	   ссылки. Нормально архив ищется только один раз в порядке, в котором он указан
	   в командной строке. Если символ в этом архиве нужен для разрешения неопределённого
	   символа, на который ссылается объект в архиве, который появляется позже в
	   командной строке, связыватель не сможет разрешить эту ссылку. Группируя архивы,
	   они все будут искаться повторно, пока не будут разрешены все возможные ссылки.

	   Использование этой опции имеет значительную стоимость производительности. Лучше
	   использовать её только при неизбежных циклических ссылках между двумя или более
	   архивами.

       --accept-unknown-input-arch
       --no-accept-unknown-input-arch
	   Говорит связывателю принимать входные файлы, архитектуру которых нельзя распознать.
	   Предполагается, что пользователь знает, что делает, и намеренно хочет связать
	   эти неизвестные входные файлы. Это было поведением связывателя по умолчанию до
	   выпуска 2.14. Поведение по умолчанию с выпуска 2.14 onward — отвергать такие
	   входные файлы, и опция --accept-unknown-input-arch добавлена для восстановления
	   старого поведения.

       --as-needed
       --no-as-needed
	   Эта опция влияет на теги ELF DT_NEEDED для динамических библиотек, упомянутых
	   в командной строке после опции --as-needed. Нормально связыватель добавит тег
	   DT_NEEDED для каждой динамической библиотеки, упомянутой в командной строке,
	   независимо от того, нужна она или нет. --as-needed заставляет тег DT_NEEDED
	   генерироваться только для библиотеки, которая на этом этапе связывания удовлетворяет
	   неслабой неопределённой ссылке на символ из обычного объектного файла или, если
	   библиотека не найдена в списках DT_NEEDED других нужных библиотек, неслабой
	   неопределённой ссылке на символ из другой нужной динамической библиотеки. Объектные
	   файлы или библиотеки, появляющиеся в командной строке после библиотеки в вопросе,
	   не влияют на то, считается ли библиотека нужной. Это похоже на правила извлечения
	   объектных файлов из архивов. --no-as-needed восстанавливает поведение по умолчанию.

	   Замечание: На системах на основе Linux опция --as-needed также влияет на поведение
	   опций --rpath и --rpath-link. См. описание --rpath-link для дополнительной информации.

       --add-needed
       --no-add-needed
	   Эти две опции устарели из-за схожести их имён с опциями --as-needed и
	   --no-as-needed. Они заменены на --copy-dt-needed-entries и --no-copy-dt-needed-entries.

       -assert keyword
	   Эта опция игнорируется для совместимости с SunOS.

       -Bdynamic
       -dy
       -call_shared
	   Связываться с динамическими библиотеками. Это осмысленно только на платформах,
	   поддерживающих разделяемые библиотеки. Эта опция обычно является значением по
	   умолчанию на таких платформах. Разные варианты этой опции предназначены для
	   совместимости с различными системами. Вы можете использовать эту опцию несколько
	   раз в командной строке: она влияет на поиск библиотек для опций -l, которые следуют
	   за ней.

       -Bgroup
	   Установить флаг "DF_1_GROUP" в записи "DT_FLAGS_1" в динамическом разделе.
	   Это заставит рантайм-связыватель выполнять поиск в этом объекте и его зависимостях
	   только внутри группы. Подразумевается --unresolved-symbols=report-all. Эта опция
	   осмысленна только на платформах ELF, поддерживающих разделяемые библиотеки.

       -Bstatic
       -dn
       -non_shared
       -static
	   Не связываться с разделяемыми библиотеками. Это осмысленно только на платформах,
	   поддерживающих разделяемые библиотеки. Разные варианты этой опции предназначены
	   для совместимости с различными системами. Вы можете использовать эту опцию несколько
	   раз в командной строке: она влияет на поиск библиотек для опций -l, которые следуют
	   за ней. Эта опция также подразумевает --unresolved-symbols=report-all. Эта опция
	   может использоваться с -shared. В этом случае создаётся разделяемая библиотека,
	   но все внешние ссылки библиотеки должны быть разрешены путём включения записей
	   из статических библиотек.

       -Bsymbolic
	   При создании разделяемой библиотеки привязывать ссылки на глобальные символы
	   к определению внутри разделяемой библиотеки, если оно существует. Нормально,
	   программа, связанная с разделяемой библиотекой, может переопределить определение
	   внутри разделяемой библиотеки. Эта опция осмысленна только на платформах ELF,
	   поддерживающих разделяемые библиотеки.

       -Bsymbolic-functions
	   При создании разделяемой библиотеки привязывать ссылки на глобальные символы
	   функций к определению внутри разделяемой библиотеки, если оно существует.
	   Эта опция осмысленна только на платформах ELF, поддерживающих разделяемые
	   библиотеки.

       -Bno-symbolic
	   Эта опция может отменить предыдущие -Bsymbolic и -Bsymbolic-functions.

       --dynamic-list=dynamic-list-file
	   Указать имя файла динамического списка связывателю. Это обычно используется
	   при создании разделяемых библиотек для указания списка глобальных символов,
	   ссылки на которые не должны привязываться к определению внутри разделяемой
	   библиотеки, или при создании динамически связываемых исполняемых файлов
	   для указания списка символов, которые должны быть добавлены в таблицу символов
	   в исполняемом файле. Эта опция осмысленна только на платформах ELF, поддерживающих
	   разделяемые библиотеки.

	   Формат динамического списка такой же, как узел версии без области видимости
	   и имени узла. См. VERSION для дополнительной информации.

       --dynamic-list-data
	   Включить все глобальные символы данных в динамический список.

       --dynamic-list-cpp-new
	   Предоставить встроенный динамический список для операторов C++ new и delete.
	   Это в основном полезно для построения разделяемой libstdc++.

       --dynamic-list-cpp-typeinfo
	   Предоставить встроенный динамический список для идентификации типов во время
	   выполнения C++.

       --check-sections
       --no-check-sections
	   Просит связыватель не проверять адреса разделов после их назначения, чтобы
	   увидеть, есть ли пересечения. Нормально связыватель выполнит эту проверку, и если
	   найдёт пересечения, произведёт подходящие сообщения об ошибках. Связыватель знает
	   о разделах в наложениях и делает для них скидки. Поведение по умолчанию может быть
	   восстановлено с помощью опции командной строки --check-sections. Пересечение
	   разделов обычно не проверяется для связываний с возможностью перераспределения.
	   Вы можете принудить проверку в этом случае с помощью опции --check-sections.

       --copy-dt-needed-entries
       --no-copy-dt-needed-entries
	   Эта опция влияет на обработку динамических библиотек, на которые ссылаются
	   тегами DT_NEEDED внутри динамических библиотек ELF, упомянутых в командной строке.
	   Нормально связыватель не добавит тег DT_NEEDED в выходной бинарник для каждой
	   библиотеки, упомянутой в теге DT_NEEDED во входной динамической библиотеке.
	   С --copy-dt-needed-entries, указанной в командной строке, записи DT_NEEDED
	   любых динамических библиотек, следующих за ней, будут добавлены. Поведение по
	   умолчанию может быть восстановлено с --no-copy-dt-needed-entries.

	   Эта опция также влияет на разрешение символов в динамических библиотеках.
	   С --copy-dt-needed-entries динамические библиотеки, упомянутые в командной строке,
	   будут рекурсивно искаться, следуя их тегам DT_NEEDED к другим библиотекам, для
	   разрешения символов, требуемых выходным бинарником. С значением по умолчанию
	   однако поиск динамических библиотек, следующих за ней, остановится на самой
	   динамической библиотеке. Ссылки DT_NEEDED не будут проследованы для разрешения
	   символов.

       --cref
	   Вывести таблицу перекрестных ссылок. Если генерируется файл карты связывания,
	   таблица перекрестных ссылок печатается в файл карты. В противном случае, она
	   печатается в стандартный вывод.

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

       --ctf-variables
       --no-ctf-variables
	   Формат отладочной информации CTF поддерживает раздел, который кодирует имена
	   и типы переменных, найденных в программе, которые не появляются в таблице символов.
	   Эти переменные явно нельзя искать по адресу обычными отладчиками, так что место,
	   используемое для их типов и имён, обычно тратится впустую: типы обычно малы, но
	   имена часто нет. --ctf-variables вызывает генерацию такого раздела. Значение
	   по умолчанию может быть восстановлено с --no-ctf-variables.

       --ctf-share-types=method
	   Настроить метод обмена типами между единицами перевода в CTF.

	   share-unconflicted
	       Поместить все типы, у которых нет неоднозначных определений, в общий словарь,
	       где отладчики могут легко к ним получить доступ, даже если они встречаются только
	       в одной единице перевода. Это значение по умолчанию.

	   share-duplicated
	       Поместить только типы, которые встречаются в нескольких единицах перевода,
	       в общий словарь: типы с одним определением переходят в словари на единицу перевода.
	       Типы с неоднозначными определениями в нескольких единицах перевода всегда переходят
	       в словари на единицу перевода. Это склоняет к увеличению CTF, но может уменьшить
	       количество CTF в общем словаре. Для очень больших проектов это может ускорить
	       открытие CTF и сэкономить память в потребителе CTF во время выполнения.

       --no-define-common
	   Эта опция запрещает назначение адресов общим символам. Команда скрипта
	   "INHIBIT_COMMON_ALLOCATION" имеет тот же эффект.

	   Опция --no-define-common позволяет отделить решение о назначении адресов общим
	   символам от выбора типа выходного файла; в противном случае ненераспределяемый
	   выходной тип заставляет назначать адреса общим символам. Использование --no-define-common
	   позволяет общим символам, на которые ссылаются из разделяемой библиотеки, назначать
	   адреса только в основной программе. Это устраняет ненужное дублированное пространство
	   в разделяемой библиотеке и также предотвращает любую возможную путаницу при разрешении
	   неправильного дубликата, когда есть много динамических модулей со специализированными
	   путями поиска для разрешения символов во время выполнения.

       --force-group-allocation
	   Эта опция заставляет связыватель размещать члены группы разделов как обычные
	   входные разделы и удалять группы разделов. Это поведение по умолчанию для
	   финального связывания, но эту опцию можно использовать для изменения поведения
	   связывания с возможностью перераспределения (-r). Команда скрипта "FORCE_GROUP_ALLOCATION"
	   имеет тот же эффект.

       --defsym=symbol=expression
	   Создать глобальный символ в выходном файле, содержащий абсолютный адрес,
	   данный expression. Вы можете использовать эту опцию столько раз, сколько
	   необходимо, чтобы определить несколько символов в командной строке. Поддерживается
	   ограниченная форма арифметики для expression в этом контексте: вы можете
	   указать шестнадцатеричное постоянное значение или имя существующего символа,
	   или использовать "+" и "-" для добавления или вычитания шестнадцатеричных
	   постоянных значений или символов. Если вам нужны более сложные выражения,
	   рассмотрите использование языка команд связывателя из скрипта. Замечание: между
	   symbol, знаком равенства ("=") и expression не должно быть пробелов.

	   Связыватель обрабатывает аргументы --defsym и -T в порядке, размещение --defsym
	   перед -T определит символ перед обработкой скрипта связывателя от -T, в то время
	   как размещение --defsym после -T определит символ после обработки скрипта связывателя.
	   Это имеет последствия для выражений в скрипте связывателя, которые используют
	   символы --defsym, какой порядок правильный, будет зависеть от того, чего вы
	   пытаетесь достичь.

       --demangle[=style]
       --no-demangle
	   Эти опции управляют разманглированием имён символов в сообщениях об ошибках
	   и другом выводе. Когда связыватель указан на разманглирование, он пытается
	   представить имена символов в читаемом виде: он удаляет ведущие подчёркивания,
	   если они используются форматом объектного файла, и преобразует заманглированные
	   имена символов C++ в читаемые имена пользователя. Разные компиляторы имеют
	   разные стили манглинга. Необязательный аргумент стиля разманглирования может
	   использоваться для выбора подходящего стиля разманглирования для вашего компилятора.
	   Связыватель будет разманглировать по умолчанию, если переменная окружения
	   COLLECT_NO_DEMANGLE не установлена. Эти опции могут использоваться для переопределения.

       -Ifile
       --dynamic-linker=file
	   Установить имя динамического связывателя. Это осмысленно только при генерации
	   динамически связываемых исполняемых файлов ELF. Динамический связыватель по умолчанию
	   обычно правильный; не используйте это, если вы не знаете, что делаете.

       --no-dynamic-linker
	   При создании исполняемого файла пропустить запрос динамического связывателя
	   для использования во время загрузки. Это осмысленно только для исполняемых файлов
	   ELF, которые содержат динамические релокации, и обычно требует кода точки входа,
	   способного обрабатывать эти релокации.

       --embedded-relocs
	   Эта опция похожа на опцию --emit-relocs, за исключением того, что релокации
	   хранятся в разделе, специфичном для цели. Эта опция поддерживается только
	   для целей BFIN, CR16 и M68K.

       --disable-multiple-abs-defs
	   Не разрешать несколько определений с символами, включёнными в filename, вызванный -R
	   или --just-symbols.

       --fatal-warnings
       --no-fatal-warnings
	   Считать все предупреждения ошибками. Поведение по умолчанию может быть восстановлено
	   с опцией --no-fatal-warnings.

       -w
       --no-warnings
	   Не отображать никаких сообщений о предупреждениях или ошибках. Это переопределяет
	   --fatal-warnings, если она включена. Эта опция может использоваться, когда известно,
	   что выходной бинарник не будет работать, но всё равно нужно создать его.

       --force-exe-suffix
	   Убедиться, что выходной файл имеет суффикс .exe.

	   Если успешно построенный полностью связанный выходной файл не имеет суффикса
	   ".exe" или ".dll", эта опция заставит связыватель скопировать выходной файл
	   в файл с тем же именем с суффиксом ".exe". Эта опция полезна при использовании
	   немодифицированных makefile Unix на хосте Microsoft Windows, поскольку некоторые
	   версии Windows не запустят образ, если он не заканчивается на ".exe".

       --gc-sections
       --no-gc-sections
	   Включить сбор мусора неиспользуемых входных разделов. Это игнорируется на целях,
	   которые не поддерживают эту опцию. Поведение по умолчанию (не выполнять этот сбор
	   мусора) может быть восстановлено путём указания --no-gc-sections в командной строке.
	   Замечание, что сбор мусора для форматов COFF и PE поддерживается, но реализация
	   в настоящее время считается экспериментальной.

	   --gc-sections определяет, какие входные разделы используются, путем осмотра символов
	   и релокаций. Раздел, содержащий символ входа, и все разделы, содержащие символы,
	   неопределённые в командной строке, будут сохранены, а также разделы, содержащие
	   символы, на которые ссылаются динамические объекты. Замечание, что при построении
	   разделяемых библиотек связыватель должен предположить, что любой видимый символ
	   ссылается. Как только этот начальный набор разделов определён, связыватель рекурсивно
	   помечает как используемые любой раздел, на который ссылаются их релокации. См. --entry,
	   --undefined и --gc-keep-exported.

	   Эта опция может быть установлена при частичном связывании (включено опцией -r).
	   В этом случае корень сохранённых символов должен быть явно указан либо одной из
	   опций --entry, --undefined или --gc-keep-exported, либо командой "ENTRY" в скрипте
	   связывателя.

	   Как расширение GNU, входные разделы ELF, помеченные флагом "SHF_GNU_RETAIN", не будут
	   собраны мусором.

       --print-gc-sections
       --no-print-gc-sections
	   Перечислить все разделы, удалённые сборщиком мусора. Список печатается в stderr.
	   Эта опция эффективна только если сбор мусора включён опцией --gc-sections. Поведение
	   по умолчанию (не перечислять разделы, которые удалены) может быть восстановлено
	   путём указания --no-print-gc-sections в командной строке.

       --gc-keep-exported
	   Когда --gc-sections включено, эта опция предотвращает сбор мусора неиспользуемых
	   входных разделов, которые содержат глобальные символы с видимостью default или protected.
	   Эта опция предназначена для использования в исполняемых файлах, где неиспользуемые
	   разделы в противном случае были бы собраны мусором независимо от внешней видимости
	   содержащихся символов. Замечание, что эта опция не имеет эффекта при связывании
	   разделяемых объектов, поскольку это уже поведение по умолчанию. Эта опция поддерживается
	   только для целевых платформ ELF.

       --print-output-format
	   Печатать имя формата вывода по умолчанию (возможно, повлиянное другими опциями
	   командной строки). Это строка, которая появится в команде скрипта связывателя
	   "OUTPUT_FORMAT".

       --print-memory-usage
	   Печатать использованный размер, общий размер и использованный размер регионов
	   памяти, созданных командой MEMORY. Это полезно для встроенных целей, чтобы иметь
	   быстрый обзор количества свободной памяти. Формат вывода имеет один заголовок
	   и одну строку на регион. Он удобен для чтения человеком и легко анализируется
	   инструментами. Вот пример вывода:

		   Memory region	 Used Size  Region Size	 %age Used
				ROM:	    256 KB	   1 MB	    25.00%
				RAM:	      32 B	   2 GB	     0.00%

       --help
	   Печатать сводку опций командной строки в стандартный вывод и выйти.

       --target-help
	   Печатать сводку всех целевых опций в стандартный вывод и выйти.

       -Map=mapfile
	   Печатать карту связывания в файл mapfile. См. описание опции -M выше. Если mapfile
	   — просто символ "-", то карта будет записана в stdout.

	   Указание каталога как mapfile заставляет связыватель записать карту связывания
	   как файл внутри каталога. Нормально имя файла внутри каталога вычисляется как
	   базовое имя выходного файла с добавлением ".map". Однако, если используется
	   специальный символ "%", то это будет заменено полным путём выходного файла.
	   Кроме того, если после символа % есть какие-либо символы, то ".map" больше не
	   будет добавлено.

		    -o foo.exe -Map=bar			 [Создаёт ./bar]
		    -o ../dir/foo.exe -Map=bar		 [Создаёт ./bar]
		    -o foo.exe -Map=../dir		 [Создаёт ../dir/foo.exe.map]
		    -o ../dir2/foo.exe -Map=../dir	 [Создаёт ../dir/foo.exe.map]
		    -o foo.exe -Map=%			 [Создаёт ./foo.exe.map]
		    -o ../dir/foo.exe -Map=%		 [Создаёт ../dir/foo.exe.map]
		    -o foo.exe -Map=%.bar		 [Создаёт ./foo.exe.bar]
		    -o ../dir/foo.exe -Map=%.bar	 [Создаёт ../dir/foo.exe.bar]
		    -o ../dir2/foo.exe -Map=../dir/%	 [Создаёт ../dir/../dir2/foo.exe.map]
		    -o ../dir2/foo.exe -Map=../dir/%.bar [Создаёт ../dir/../dir2/foo.exe.bar]

	   Это ошибка указать более одного символа "%".

	   Если файл карты уже существует, он будет перезаписан этой операцией.

       --no-keep-memory
	   ld обычно оптимизирует скорость за счёт использования памяти путём кэширования
	   таблиц символов входных файлов в памяти. Эта опция говорит ld оптимизировать
	   использование памяти, перечитывая таблицы символов по необходимости. Это может
	   потребоваться, если ld выходит из памяти во время связывания большого исполняемого
	   файла.

       --no-undefined
       -z defs
	   Сообщать о неразрешённых ссылках на символы из обычных объектных файлов. Это
	   делается даже если связыватель создаёт несимволическую разделяемую библиотеку.
	   Переключатель --[no-]allow-shlib-undefined контролирует поведение для сообщений
	   о неразрешённых ссылках, найденных в разделяемых библиотеках, которые связываются.

	   Эффекты этой опции могут быть отменены с помощью "-z undefs".

       --allow-multiple-definition
       -z muldefs
	   Нормально, если символ определён несколько раз, связыватель сообщит о фатальной
	   ошибке. Эти опции позволяют несколько определений, и будет использовано первое
	   определение.

       --allow-shlib-undefined
       --no-allow-shlib-undefined
	   Разрешает или запрещает неопределённые символы в разделяемых библиотеках. Этот
	   переключатель похож на --no-undefined, за исключением того, что он определяет
	   поведение, когда неопределённые символы находятся в разделяемой библиотеке, а не
	   в обычном объектном файле. Это не влияет на обработку неопределённых символов
	   в обычных объектных файлах.

	   Поведение по умолчанию — сообщать об ошибках для любых неопределённых символов,
	   на которые ссылаются в разделяемых библиотеках, если связыватель используется
	   для создания исполняемого файла, но разрешать их, если связыватель используется
	   для создания разделяемой библиотеки.

	   Причины разрешения неопределённых ссылок на символы в разделяемых библиотеках,
	   указанных во время связывания, следующие:

	   •   Разделяемая библиотека, указанная во время связывания, может отличаться от
	       той, которая доступна во время загрузки, так что символ может быть разрешён
	       во время загрузки.

	   •   Существуют некоторые операционные системы, например BeOS и HPPA, где неопределённые
	       символы в разделяемых библиотеках нормальны.

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

       --error-handling-script=scriptname
	   Если эта опция предоставлена, связыватель вызовет scriptname при возникновении
	   ошибки. В настоящее время однако поддерживаются только два вида ошибок: отсутствующие
	   символы и отсутствующие библиотеки. Два аргумента будут переданы скрипту: ключевое
	   слово "undefined-symbol" или `missing-lib" и имя неопределённого символа или
	   отсутствующей библиотеки. Намерение заключается в том, что скрипт предоставит
	   предложения пользователю, где символ или библиотека могут быть найдены. После
	   завершения скрипта нормальное сообщение об ошибке связывателя будет отображено.

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

       --no-undefined-version
	   Нормально, если символ имеет неопределённую версию, связыватель игнорирует его.
	   Эта опция запрещает символы с неопределённой версией, и вместо этого будет выдана
	   фатальная ошибка.

       --default-symver
	   Создать и использовать версию символа по умолчанию (soname) для неверсионированных
	   экспортируемых символов.

       --default-imported-symver
	   Создать и использовать версию символа по умолчанию (soname) для неверсионированных
	   импортируемых символов.

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

       --no-warn-search-mismatch
	   Нормально ld выдаст предупреждение, если найдёт несовместимую библиотеку во время
	   поиска библиотеки. Эта опция подавляет предупреждение.

       --no-whole-archive
	   Отключить эффект опции --whole-archive для последующих архивных файлов.

       --noinhibit-exec
	   Сохранить исполняемый выходной файл, когда он всё ещё usable. Нормально связыватель
	   не произведёт выходной файл, если столкнётся с ошибками во время процесса связывания;
	   он выходит без записи выходного файла, когда выдаёт любую ошибку.

       -nostdlib
	   Искать каталоги библиотек только явно указанные в командной строке. Каталоги
	   библиотек, указанные в скриптах связывателя (включая скрипты связывателя,
	   указанные в командной строке), игнорируются.

       --oformat=output-format
	   ld может быть настроен для поддержки нескольких видов объектных файлов. Если
	   ваш ld настроен таким образом, вы можете использовать опцию --oformat для указания
	   двоичного формата для выходного объектного файла. Даже если ld настроен для
	   поддержки альтернативных форматов объектных файлов, вам обычно не нужно это
	   указывать, поскольку ld должен быть настроен для производства форматом вывода
	   по умолчанию наиболее обычного формата на каждой машине. output-format — строка
	   текста, название конкретного формата, поддерживаемого библиотеками BFD. (Вы можете
	   перечислить доступные двоичные форматы с objdump -i.) Команда скрипта "OUTPUT_FORMAT"
	   также может указать формат вывода.

       --out-implib file
	   Создать импортную библиотеку в file, соответствующую исполняемому файлу, который
	   создаёт связыватель (например, DLL или программа ELF). Эта импортная библиотека
	   (которая должна называться "*.dll.a" или "*.a" для DLL) может использоваться
	   для связывания клиентов с созданным исполняемым файлом; это поведение позволяет
	   пропустить отдельный шаг создания импортной библиотеки (например, "dlltool" для DLL).
	   Эта опция доступна только для целевых платформ i386 PE и ELF связывателя.

       -pie
       --pic-executable
	   Создать позиционно-независимый исполняемый файл. Это в настоящее время поддерживается
	   только на платформах ELF. Позиционно-независимые исполняемые файлы перераспределяются
	   динамическим связывателем на виртуальный адрес, который OS выбирает для них, и это
	   может варьироваться между вызовами. Они помечаются как ET_DYN в заголовке ELF-файла,
	   но отличаются от разделяемых библиотек по ряду способов. В частности, определённые
	   символы в PIE по умолчанию не могут быть переопределены другим объектом, как они
	   могут в разделяемой библиотеке.

       -no-pie
	   Создать позиционно-зависимый исполняемый файл. Это значение по умолчанию.

       -qmagic
	   Эта опция игнорируется для совместимости с Linux.

       -Qy Эта опция игнорируется для совместимости с SVR4.

       --relax
       --no-relax
	   Опция с эффектами, зависящими от машины. Эта опция поддерживается только на
	   нескольких целях.

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

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

	   На платформах, где функция поддерживается, опция --no-relax отключит её.

	   На платформах, где функция не поддерживается, как --relax, так и --no-relax
	   принимаются, но игнорируются.

       --retain-symbols-file=filename
	   Сохранить только символы, перечисленные в файле filename, отбросив все остальные.
	   filename — это просто плоский файл, с одним именем символа на строку. Эта опция
	   особенно полезна в средах (таких как VxWorks), где постепенно накапливается
	   большая глобальная таблица символов, чтобы сэкономить память во время выполнения.

	   --retain-symbols-file не отбрасывает неопределённые символы или символы,
	   нужные для релокаций.

	   Вы можете указать --retain-symbols-file только один раз в командной строке.
	   Она переопределяет -s и -S.

       -rpath=dir
	   Добавить каталог в путь поиска библиотек во время выполнения. Это используется
	   при связывании исполняемого файла ELF с разделяемыми объектами. Все аргументы -rpath
	   объединяются и передаются рантайм-связывателю, который использует их для поиска
	   разделяемых объектов во время выполнения.

	   Опция -rpath также используется при поиске разделяемых объектов, которые нужны
	   разделяемым объектам, явно включённым в связывание; см. описание опции -rpath-link.
	   Поиск -rpath таким образом поддерживается только нативными связывателями и
	   кросс-связывателями, настроенными с опцией --with-sysroot.

	   Если -rpath не используется при связывании исполняемого файла ELF, содержимое
	   переменной окружения "LD_RUN_PATH" будет использовано, если оно определено.

	   Опция -rpath также может использоваться на SunOS. По умолчанию на SunOS связыватель
	   сформирует путь поиска во время выполнения из всех опций -L, которые ему даны.
	   Если используется опция -rpath, путь поиска во время выполнения будет сформирован
	   исключительно из опций -rpath, игнорируя опции -L. Это может быть полезно при
	   использовании gcc, который добавляет много опций -L, которые могут быть на
	   файловых системах, монтируемых по NFS.

	   Для совместимости с другими связывателями ELF, если опция -R следует за именем
	   каталога, а не именем файла, она обрабатывается как опция -rpath.

       -rpath-link=dir
	   При использовании ELF или SunOS одна разделяемая библиотека может требовать другую.
	   Это происходит, когда связывание "ld -shared" включает разделяемую библиотеку
	   как один из входных файлов.

	   Когда связыватель сталкивается с такой зависимостью при выполнении неспециального,
	   неспециализированного связывания, он автоматически попытается найти требуемую
	   разделяемую библиотеку и включить её в связывание, если она не включена явно.
	   В таком случае несколько каталогов ищутся, как описано ниже. Опция -rpath-link
	   указывает первый набор каталогов для поиска. Эта опция может указывать последовательность
	   имён каталогов либо путём предоставления списка имён, разделённых двоеточиями,
	   либо путём появления несколько раз.

	   Токены $ORIGIN и $LIB могут появляться в этих каталогах поиска. Они будут
	   заменены полным путём к каталогу, содержащему программу или разделяемый объект
	   в случае $ORIGIN и либо lib — для 32-битных бинарников — либо lib64 — для 64-битных
	   бинарников — в случае $LIB.

	   Альтернативная форма этих токенов — ${ORIGIN} и ${LIB} также может использоваться.
	   Токен $PLATFORM не поддерживается.

	   Опцию --rpath-link следует использовать с осторожностью, поскольку она переопределяет
	   путь поиска, который может быть закреплён в разделяемой библиотеке. В таком случае
	   возможно непреднамеренное использование другого пути поиска, чем тот, который
	   использовал бы рантайм-связыватель.

	   Когда требуются дополнительные разделяемые библиотеки, связыватель будет искать
	   каталоги в порядке, перечисленном ниже, чтобы найти их. Замечание однако, что
	   это применяется только к дополнительным библиотекам, нужным для удовлетворения
	   уже включённых разделяемых библиотек. Это не применяется к библиотекам, которые
	   включены через опцию -l командной строки. Поиски библиотек -l проводятся только
	   в каталогах, указанных опцией -L.

	   1.  Любые каталоги, указанные опциями -rpath-link.

	   2.  Любые каталоги, указанные опциями -rpath. Разница между -rpath и -rpath-link
	       в том, что каталоги, указанные опциями -rpath, включаются в исполняемый файл
	       и используются во время выполнения, в то время как опция -rpath-link эффективна
	       только во время связывания. Поиск -rpath таким образом поддерживается только
	       нативными связывателями и кросс-связывателями, настроенными с опцией --with-sysroot.

	   3.  На системе ELF для нативных связывателей, если опции -rpath и -rpath-link
	       не использовались, искать содержимое переменной окружения "LD_RUN_PATH".

	   4.  На SunOS, если опция -rpath не использовалась, искать любые каталоги,
	       указанные опциями -L.

	   5.  Для нативного связывателя искать содержимое переменной окружения "LD_LIBRARY_PATH".

	   6.  Для нативного связывателя ELF каталоги в "DT_RUNPATH" или "DT_RPATH" разделяемой
	       библиотеки ищутся для разделяемых библиотек, нужных ей. Записи "DT_RPATH" игнорируются,
	       если существуют записи "DT_RUNPATH".

	   7.  Для связывателя для системы Linux, если файл /etc/ld.so.conf существует,
	       список каталогов, найденных в этом файле. Замечание: путь к этому файлу
	       предшествует значению "sysroot", если оно определено, и затем любой строке
	       "prefix", если связыватель был настроен с опцией --prefix=<path>.

	   8.  Для нативного связывателя на системе FreeBSD любые каталоги, указанные
	       макросом "_PATH_ELF_HINTS", определённым в файле заголовка elf-hints.h.

	   9.  Любые каталоги, указанные командой "SEARCH_DIR" в скрипте связывателя,
	       указанном в командной строке, включая скрипты, указанные -T (но не -dT).

	   10. Каталоги по умолчанию, нормально /lib и /usr/lib.

	   11. Любые каталоги, указанные плагином LDPT_SET_EXTRA_LIBRARY_PATH.

	   12. Любые каталоги, указанные командой "SEARCH_DIR" в скрипте связывателя по умолчанию.

	   Замечание однако на системах на основе Linux есть дополнительная оговорка: Если
	   опция --as-needed активна и найдена разделяемая библиотека, которая обычно удовлетворит
	   поиск, и эта библиотека не имеет тега DT_NEEDED для libc.so, и есть разделяемая
	   библиотека позже в наборе каталогов поиска, которая также удовлетворяет поиск,
	   и эта вторая разделяемая библиотека имеет тег DT_NEEDED для libc.so, то вторая
	   библиотека будет выбрана вместо первой.

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

       --section-ordering-file=script
	   Эта опция используется для дополнения текущего скрипта связывателя дополнительным
	   отображением входных разделов на выходные разделы. Этот файл должен использовать
	   тот же синтаксис для "SECTIONS", что и в нормальных скриптах связывателя, но
	   он должен делать только отображение входных разделов на выходные разделы. @pxref{SECTIONS}

	   Второе ограничение на скрипт упорядочения разделов заключается в том, что он
	   может ссылаться только на выходные разделы, которые уже определены тем скриптом
	   связывателя, который в настоящее время используется. (Т.е. скриптом связывателя
	   по умолчанию или скриптом, указанным в командной строке). Преимущество скрипта
	   упорядочения разделов заключается в том, что входные разделы отображаются на
	   начало выходных разделов, так что они могут обеспечить упорядочение разделов
	   в выходном разделе. Например, представьте, что скрипт связывателя по умолчанию
	   выглядит так:

		   SECTIONS {
		     .text : { *(.text.hot) ; *(.text .text.*) }
		     .data : { *(.data.big) ; *(.data .data.*) }
		     }

	   Тогда, если используется скрипт упорядочения разделов вроде этого:

		     .text : { *(.text.first) ; *(.text.z*) }
		     .data : { foo.o(.data.first) ; *(.data.small) }

	   Это будет эквивалентно скрипту связывателя вроде этого:

		   SECTIONS {
		     .text : { *(.text.first) ; *(.text.z*) ; *(.text.hot) ; *(.text .text.*) }
		     .data : { foo.o(.data.first) ; *(.data.small) ; *(.data.big) ; *(.data .data.*) }
		     }

	   Преимущество скрипта упорядочения разделов заключается в том, что он может
	   использоваться для упорядочения тех разделов, которые важны для пользователя,
	   без необходимости беспокоиться о других разделах, регионах памяти или чём-либо
	   ещё.

       -shared
       -Bshareable
	   Создать разделяемую библиотеку. Это в настоящее время поддерживается только
	   на платформах ELF, XCOFF и SunOS. На SunOS связыватель автоматически создаст
	   разделяемую библиотеку, если опция -e не используется и в связывании есть
	   неопределённые символы.

       --sort-common
       --sort-common=ascending
       --sort-common=descending
	   Эта опция говорит ld сортировать общие символы по выравниванию в восходящем
	   или нисходящем порядке при размещении их в соответствующих выходных разделах.
	   Рассматриваемые выравнивания символов — шестнадцатеричное или больше, восьмеричное,
	   четвертичное, двухбайтовое и однобайтовое. Это для предотвращения разрывов между
	   символами из-за ограничений выравнивания. Если порядок сортировки не указан,
	   предполагается нисходящий порядок.

       --sort-section=name
	   Эта опция применит "SORT_BY_NAME" ко всем шаблонам разделов с подстановочными
	   знаками в скрипте связывателя.

       --sort-section=alignment
	   Эта опция применит "SORT_BY_ALIGNMENT" ко всем шаблонам разделов с подстановочными
	   знаками в скрипте связывателя.

       --spare-dynamic-tags=count
	   Эта опция указывает количество пустых слотов, которые следует оставить в разделе
	   .dynamic разделяемых объектов ELF. Пустые слоты могут потребоваться инструментами
	   постобработки, такими как prelinker. Значение по умолчанию — 5.

       --split-by-file[=size]
	   Похоже на --split-by-reloc, но создаёт новый выходной раздел для каждого входного
	   файла, когда достигается size. size по умолчанию равно 1, если не указано.

       --split-by-reloc[=count]
	   Пытаться создавать дополнительные разделы в выходном файле, так чтобы ни один
	   выходной раздел в файле не содержал более count релокаций. Это полезно при генерации
	   огромных файлов с возможностью перераспределения для загрузки в определённые
	   ядра реального времени с форматом объектного файла COFF; поскольку COFF не может
	   представлять более 65535 релокаций в одном разделе. Замечание, что это не сработает
	   с форматами объектных файлов, которые не поддерживают произвольные разделы. Связыватель
	   не разобьёт индивидуальные входные разделы для перераспределения, так что если
	   один входной раздел содержит более count релокаций, один выходной раздел будет
	   содержать столько релокаций. count по умолчанию равно 32768.

       --stats
	   Вычислить и отобразить статистику о работе связывателя, такую как время выполнения
	   и использование памяти.

       --sysroot=directory
	   Использовать directory как местоположение sysroot, переопределяя значение по
	   умолчанию во время настройки. Эта опция поддерживается только связывателями,
	   настроенными с --with-sysroot.

       --task-link
	   Это используется для целей на основе COFF/PE для создания объектного файла,
	   связанного с задачей, где все глобальные символы были преобразованы в статические.

       --traditional-format
	   Для некоторых целей вывод ld отличается по некоторым аспектам от вывода некоторых
	   существующих связывателей. Этот переключатель запрашивает ld использовать традиционный
	   формат вместо этого.

	   Например, на SunOS ld объединяет дублирующиеся записи в строковой таблице символов.
	   Это может уменьшить размер выходного файла с полной отладочной информацией более
	   чем на 30 процентов. К сожалению, программа dbx SunOS не может читать результирующую
	   программу (gdb не имеет проблем). Опция --traditional-format говорит ld не объединять
	   дублирующиеся записи.

       --section-start=sectionname=org
	   Разместить раздел в выходном файле по абсолютному адресу, указанному org.
	   Вы можете использовать эту опцию столько раз, сколько необходимо, для размещения
	   нескольких разделов в командной строке. org должно быть одним шестнадцатеричным
	   целым числом; для совместимости с другими связывателями вы можете опустить ведущий
	   0x, обычно ассоциируемый с шестнадцатеричными значениями. Замечание: между sectionname,
	   знаком равенства ("=") и org не должно быть пробелов.

       --image-base=org
	   При использовании ELF то же, что и -Ttext-segment, с обеими опциями, эффективно
	   устанавливающими базовый адрес исполняемого файла ELF.

	   При использовании PE использовать value как базовый адрес вашей программы или dll.
	   Это самый низкий адрес памяти, который будет использоваться, когда ваша программа
	   или dll загружается. Чтобы уменьшить необходимость в перераспределении и улучшить
	   производительность dll, каждая должна иметь уникальный базовый адрес и не пересекаться
	   с другими dll. Значение по умолчанию — 0x400000 для исполняемых файлов и 0x10000000
	   для dll.

       -Tbss=org
       -Tdata=org
       -Ttext=org
	   То же, что и --section-start, с ".bss", ".data" или ".text" как sectionname.

       -Ttext-segment=org
	   При создании исполняемого файла ELF установить адрес первого байта первого
	   сегмента. Замечание, что когда -pie используется с -Ttext-segment=org, выходной
	   исполняемый файл помечается как ET_EXEC, так что адрес первого байта сегмента
	   текста будет гарантированно равен org во время выполнения.

       -Trodata-segment=org
	   При создании исполняемого файла ELF или разделяемого объекта для цели, где
	   данные только для чтения находятся в собственном сегменте, отдельном от исполняемого
	   текста, установить адрес первого байта сегмента данных только для чтения.

       -Tldata-segment=org
	   При создании исполняемого файла ELF или разделяемого объекта для модели памяти
	   x86-64 medium установить адрес первого байта сегмента ldata.

       --unresolved-symbols=method
	   Определить, как обрабатывать неразрешённые символы. Возможные значения для method:

	   ignore-all
	       Не сообщать о каких-либо неразрешённых символах.

	   report-all
	       Сообщать обо всех неразрешённых символах. Это значение по умолчанию.

	   ignore-in-object-files
	       Сообщать о неразрешённых символах, которые содержатся в разделяемых библиотеках,
	       но игнорировать их, если они приходят из обычных объектных файлов.

	   ignore-in-shared-libs
	       Сообщать о неразрешённых символах, которые приходят из обычных объектных файлов,
	       но игнорировать их, если они приходят из разделяемых библиотек. Это может быть
	       полезно при создании динамического бинарника и известно, что все разделяемые
	       библиотеки, на которые он должен ссылаться, включены в командную строку связывателя.

	   Поведение для разделяемых библиотек само по себе также может контролироваться
	   опцией --[no-]allow-shlib-undefined.

	   Нормально связыватель сгенерирует сообщение об ошибке для каждого сообщённого
	   неразрешённого символа, но опция --warn-unresolved-symbols может изменить это
	   на предупреждение.

       --dll-verbose
       --verbose[=NUMBER]
	   Показать номер версии ld и перечислить поддерживаемые эмуляции связывателя.
	   Показать, какие входные файлы можно и нельзя открыть. Показать скрипт связывателя,
	   используемый связывателем. Если необязательный аргумент NUMBER > 1, статус символов
	   плагина также будет отображён.

       --version-script=version-scriptfile
	   Указать имя скрипта версии связывателю. Это обычно используется при создании
	   разделяемых библиотек для указания дополнительной информации об иерархии версий
	   для библиотеки, которая создаётся. Эта опция полностью поддерживается только
	   на платформах ELF, поддерживающих разделяемые библиотеки; см. VERSION. Она частично
	   поддерживается на платформах PE, которые могут использовать скрипты версий для
	   фильтрации видимости символов в режиме автоэкспорта: любые символы, помеченные
	   как локальные в скрипте версии, не будут экспортироваться.

       --warn-common
	   Предупреждать, когда общий символ объединяется с другим общим символом или
	   с определением символа. Связыватели Unix позволяют этой несколько небрежной
	   практике, но связыватели на некоторых других операционных системах нет. Эта
	   опция позволяет найти потенциальные проблемы от объединения глобальных символов.
	   К сожалению, некоторые библиотеки C используют эту практику, так что вы можете
	   получить некоторые предупреждения о символах в библиотеках, а также в ваших
	   программах.

	   Существуют три вида глобальных символов, иллюстрируемых здесь примерами C:

	   int i = 1;
	       Определение, которое помещается в инициализированный раздел данных выходного файла.

	   extern int i;
	       Неопределённая ссылка, которая не выделяет пространство. Должно быть либо
	       определение, либо общий символ для переменной где-то.

	   int i;
	       Общий символ. Если есть только (один или несколько) общих символов для переменной,
	       она помещается в неинициализированный раздел данных выходного файла. Связыватель
	       объединяет несколько общих символов для той же переменной в один символ. Если они
	       имеют разные размеры, он выбирает наибольший размер. Связыватель превращает общий
	       символ в объявление, если есть определение той же переменной.

	   Опция --warn-common может производить пять видов предупреждений. Каждое предупреждение
	   состоит из пары строк: первая описывает символ, только что встреченный, а вторая
	   описывает предыдущий символ, встреченный с тем же именем. Один или оба из двух
	   символов будут общими символами.

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

		       <file>(<section>): warning: common of `<symbol>'
			  overridden by definition
		       <file>(<section>): warning: defined here

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

		       <file>(<section>): warning: definition of `<symbol>'
			  overriding common
		       <file>(<section>): warning: common is here

	   3.  Объединение общего символа с предыдущим общим символом одинакового размера.

		       <file>(<section>): warning: multiple common
			  of `<symbol>'
		       <file>(<section>): warning: previous common is here

	   4.  Объединение общего символа с предыдущим большим общим символом.

		       <file>(<section>): warning: common of `<symbol>'
			  overridden by larger common
		       <file>(<section>): warning: larger common is here

	   5.  Объединение общего символа с предыдущим меньшим общим символом. Это то же самое,
	       что и предыдущий случай, за исключением того, что символы встречаются в другом
	       порядке.

		       <file>(<section>): warning: common of `<symbol>'
			  overriding smaller common
		       <file>(<section>): warning: smaller common is here

       --warn-constructors
	   Предупреждать, если используются какие-либо глобальные конструкторы. Это полезно
	   только для нескольких форматов объектных файлов. Для форматов вроде COFF или ELF
	   связыватель не может обнаружить использование глобальных конструкторов.

       --warn-execstack
       --warn-execstack-objects
       --no-warn-execstack
	   На платформах ELF связыватель может генерировать сообщения о предупреждениях,
	   если ему поручено создать выходной файл, содержащий исполняемый стек. Существуют
	   три возможных состояния:

	   1.  Не генерировать никаких предупреждений.

	   2.  Всегда генерировать предупреждения, даже если исполняемый стек запрошен
	       опцией -z execstack командной строки.

	   3.  Генерировать предупреждение только если объектный файл запрашивает исполняемый
	       стек, но не если используется опция -z execstack.

	   Значение по умолчанию зависит от того, как был настроен связыватель. Опция --no-warn-execstack
	   всегда ставит связыватель в состояние без предупреждений. Опция --warn-execstack ставит
	   связыватель в состояние warn-always. Опция --warn-execstack-objects ставит связыватель
	   в состояние warn-for-object-files-only.

	   Замечание: Входные файлы формата ELF могут указывать, что им нужен исполняемый
	   стек, имея раздел .note.GNU-stack с установленным битом исполняемости в флагах
	   раздела. Они могут указывать, что им не нужен исполняемый стек, имея тот же раздел,
	   но без установленного бита исполняемости. Если входной файл не имеет раздела
	   .note.GNU-stack, поведение по умолчанию специфично для цели. Для некоторых целей
	   отсутствие такого раздела подразумевает, что требуется исполняемый стек. Это часто
	   проблема для вручную созданных файлов ассемблера.

       --error-execstack
       --no-error-execstack
	   Если связыватель собирается генерировать сообщение о предупреждении об исполняемом,
	   записываемом сегменте или об исполняемом сегменте TLS, опция --error-execstack
	   превратит это предупреждение в ошибку. Опция --no-error-execstack восстановит
	   поведение по умолчанию, генерируя только сообщение о предупреждении.

	   Замечание — опция --error-execstack сама по себе не включает предупреждения
	   об этих сегментах. Эти предупреждения либо включены по умолчанию, если связыватель
	   настроен так, либо через опцию --warn-rwx-segments командной строки.

       --warn-multiple-gp
	   Предупреждать, если требуются несколько значений глобального указателя в выходном
	   файле. Это осмысленно только для определённых процессоров, таких как Alpha.
	   Конкретно, некоторые процессоры помещают большие постоянные значения в специальный
	   раздел. Специальный регистр (глобальный указатель) указывает в середину этого раздела,
	   так что константы могут загружаться эффективно через режим адресации, относительно
	   базового регистра. Поскольку смещение в режиме относительно базового регистра фиксировано
	   и относительно мало (например, 16 бит), это ограничивает максимальный размер пула
	   констант. Таким образом, в больших программах часто необходимо использовать несколько
	   значений глобального указателя, чтобы обратиться ко всем возможным константам.
	   Эта опция вызывает предупреждение всякий раз, когда это случается.

       --warn-once
	   Предупреждать только один раз для каждого неопределённого символа, а не один раз
	   на модуль, который на него ссылается.

       --warn-rwx-segments
       --no-warn-rwx-segments
	   Предупреждать, если связыватель создаёт загружаемый, ненулевой сегмент, у которого
	   установлены все три флага разрешений: чтение, запись и выполнение. Такой сегмент
	   представляет потенциальную уязвимость безопасности. Кроме того, будут генерироваться
	   предупреждения, если сегмент локального хранения потоков создаётся с флагом выполнения,
	   независимо от того, установлены ли флаги чтения и/или записи.

	   Эти предупреждения включены по умолчанию. Их можно отключить с помощью опции
	   --no-warn-rwx-segments и включить с помощью опции --warn-rwx-segments.

       --error-rwx-segments
       --no-error-rwx-segments
	   Если связыватель собирается генерировать сообщение о предупреждении об исполняемом,
	   записываемом сегменте, опция --error-rwx-segments превратит это предупреждение
	   в ошибку. Опция --no-error-rwx-segments восстановит поведение по умолчанию,
	   генерируя только сообщение о предупреждении.

	   Замечание — опция --error-rwx-segments сама по себе не включает предупреждения
	   об этих сегментах. Эти предупреждения либо включены по умолчанию, если связыватель
	   настроен так, либо через опцию --warn-rwx-segments командной строки.

       --warn-section-align
	   Предупреждать, если адрес выходного раздела изменён из-за выравнивания. Обычно
	   выравнивание устанавливается входным разделом. Адрес изменится только если он
	   не указан явно; то есть, если команда "SECTIONS" не указывает начальный адрес
	   для раздела.

       --warn-textrel
	   Предупреждать, если связыватель добавляет DT_TEXTREL в позиционно-независимый
	   исполняемый файл или разделяемый объект.

       --warn-alternate-em
	   Предупреждать, если объект имеет альтернативный код машины ELF.

       --warn-unresolved-symbols
	   Если связыватель собирается сообщить о неразрешённом символе (см. опцию
	   --unresolved-symbols), он обычно генерирует ошибку. Эта опция заставляет его
	   генерировать предупреждение вместо этого.

       --error-unresolved-symbols
	   Это восстанавливает поведение связывателя по умолчанию, генерируя ошибки, когда
	   он сообщает о неразрешённых символах.

       --whole-archive
	   Для каждого архива, упомянутого в командной строке после опции --whole-archive,
	   включить каждый объектный файл в архив в связывание, вместо поиска в архиве
	   требуемых объектных файлов. Это нормально используется для преобразования
	   архивного файла в разделяемую библиотеку, заставляя включить каждый объект.
	   Эта опция может быть использована несколько раз.

	   Два замечания при использовании этой опции с gcc: Во-первых, gcc не знает об
	   этой опции, так что вам нужно использовать -Wl,-whole-archive. Во-вторых, не
	   забудьте использовать -Wl,-no-whole-archive после вашего списка архивов, потому
	   что gcc добавит свой собственный список архивов в ваше связывание, и вы можете
	   не захотеть, чтобы этот флаг влиял на них тоже.

       --wrap=symbol
	   Использовать функцию-обёртку для symbol. Любая неопределённая ссылка на symbol
	   будет разрешена как "__wrap_symbol". Любая неопределённая ссылка на "__real_symbol"
	   будет разрешена как symbol.

	   Это может использоваться для предоставления обёртки для системной функции.
	   Функция-обёртка должна называться "__wrap_symbol". Если она хочет вызвать
	   системную функцию, она должна вызвать "__real_symbol".

	   Вот тривиальный пример:

		   void *
		   __wrap_malloc (size_t c)
		   {
		     printf ("malloc called with %zu\n", c);
		     return __real_malloc (c);
		   }

	   Если вы свяжите другой код с этим файлом с --wrap malloc, то все вызовы "malloc"
	   вызовут функцию "__wrap_malloc" вместо этого. Вызов "__real_malloc" в "__wrap_malloc"
	   вызовет реальную функцию "malloc".

	   Вы можете захотеть предоставить функцию "__real_malloc" тоже, так чтобы связи
	   без опции --wrap работали. Если вы это сделаете, не помещайте определение "__real_malloc"
	   в тот же файл, что и "__wrap_malloc"; если вы сделаете это, ассемблер может разрешить
	   вызов перед тем, как связыватель получит шанс обернуть его в "malloc".

	   Только неопределённые ссылки заменяются связывателем. Таким образом, внутренние
	   ссылки единицы перевода на symbol не разрешаются как "__wrap_symbol". В следующем
	   примере вызов "f" в "g" не разрешается как "__wrap_f".

		   int
		   f (void)
		   {
		     return 123;
		   }

		   int
		   g (void)
		   {
		     return f();
		   }

       --eh-frame-hdr
       --no-eh-frame-hdr
	   Запросить (--eh-frame-hdr) или подавить (--no-eh-frame-hdr) создание раздела
	   ".eh_frame_hdr" и заголовка сегмента ELF "PT_GNU_EH_FRAME".

       --no-ld-generated-unwind-info
	   Запросить создание информации о размотке ".eh_frame" для разделов кода,
	   генерируемых связывателем, таких как PLT. Эта опция включена по умолчанию, если
	   информация о размотке, генерируемая связывателем, поддерживается. Эта опция также
	   контролирует генерацию информации трассировки стека ".sframe" для разделов кода,
	   генерируемых связывателем, таких как PLT.

       --enable-new-dtags
       --disable-new-dtags
	   Этот связыватель может создавать новые динамические теги в ELF. Но старые
	   системы ELF могут не понимать их. Если вы укажете --enable-new-dtags, новые
	   динамические теги будут созданы по необходимости, и старые динамические теги
	   будут omitted. Если вы укажете --disable-new-dtags, новые динамические теги
	   не будут созданы. По умолчанию новые динамические теги не создаются. Замечание,
	   что эти опции доступны только для систем ELF.

       --hash-size=number
	   Установить размер хэш-таблиц связывателя по умолчанию в простое число, близкое
	   к number. Увеличение этого значения может уменьшить время, затрачиваемое связывателем
	   на выполнение задач, за счёт увеличения требований к памяти связывателя. Аналогично,
	   уменьшение этого значения может уменьшить требования к памяти за счёт скорости.

       --hash-style=style
	   Установить тип хэш-таблиц связывателя. style может быть "sysv" для классического
	   раздела ELF ".hash", "gnu" для нового стиля раздела GNU ".gnu.hash" или "both"
	   для обоих классического ELF ".hash" и нового стиля GNU ".gnu.hash" хэш-таблиц.
	   Значение по умолчанию зависит от того, как был настроен связыватель, но для
	   большинства систем на основе Linux это будет "both".

       --compress-debug-sections=none
       --compress-debug-sections=zlib
       --compress-debug-sections=zlib-gnu
       --compress-debug-sections=zlib-gabi
       --compress-debug-sections=zstd
	   На платформах ELF эти опции управляют сжатием разделов отладки DWARF с использованием zlib.

	   --compress-debug-sections=none не сжимает разделы отладки DWARF. --compress-debug-sections=zlib-gnu
	   сжимает разделы отладки DWARF и переименовывает их, чтобы они начинались с .zdebug вместо .debug.
	   --compress-debug-sections=zlib-gabi также сжимает разделы отладки DWARF, но вместо переименования
	   устанавливает флаг SHF_COMPRESSED в заголовках разделов.

	   Опция --compress-debug-sections=zlib является псевдонимом для --compress-debug-sections=zlib-gabi.

	   --compress-debug-sections=zstd сжимает разделы отладки DWARF с использованием zstd.

	   Замечание, что эта опция переопределяет любое сжатие во входных разделах отладки,
	   так что если бинарник связывается с --compress-debug-sections=none, например,
	   то любые сжатые разделы отладки во входных файлах будут разжаты перед копированием
	   в выходной бинарник.

	   Поведение сжатия по умолчанию варьируется в зависимости от вовлечённой цели
	   и опций настройки, использованных для построения инструментария. Значение по
	   умолчанию может быть определено путём осмотра вывода опции связывателя --help.

       --reduce-memory-overheads
	   Эта опция уменьшает требования к памяти во время выполнения ld, за счёт скорости
	   связывания. Это было введено для выбора старого алгоритма O(n^2) для генерации
	   файла карты связывания, вместо нового алгоритма O(n), который использует около
	   40% больше памяти для хранения символов.

	   Другой эффект переключателя — установить размер хэш-таблицы по умолчанию в 1021,
	   что снова экономит память за счёт увеличения времени выполнения связывателя.
	   Однако это не делается, если использовалась опция --hash-size.

	   Опцию --reduce-memory-overheads также можно использовать для включения других
	   торгов в будущих версиях связывателя.

       --max-cache-size=size
	   ld обычно кэширует информацию о релокациях и таблицы символов входных файлов
	   в памяти без ограничения размера. Эта опция устанавливает максимальный размер
	   кэша в size.

       --build-id
       --build-id=style
	   Запросить создание раздела ELF ".note.gnu.build-id" или раздела COFF ".buildid".
	   Содержимое заметки — уникальные биты, идентифицирующие этот связанный файл.
	   style может быть "uuid" для использования 128 случайных бит; "sha1" для использования
	   160-битного хэша SHA1, "md5" для использования 128-битного хэша MD5 или "xx" для
	   использования 128-битного XXHASH на нормативных частях содержимого вывода; или
	   "0xhexstring" для использования выбранной битовой строки, указанной как чётное
	   количество шестнадцатеричных цифр (символы "-" и ":" между парами цифр игнорируются).
	   Если style опущено, используется "sha1".

	   Стили "md5", "sha1" и "xx" производят идентификатор, который всегда одинаков
	   в идентичном выходном файле, но почти наверняка уникален среди всех неидентичных
	   выходных файлов. Он не предназначен для сравнения как контрольная сумма содержимого
	   файла. Связанный файл может быть изменён позже другими инструментами, но битовая
	   строка build ID, идентифицирующая оригинальный связанный файл, не изменится.

	   Передача "none" для style отключает установку из любых предыдущих опций "--build-id"
	   в командной строке.

       --package-metadata=JSON
	   Запросить создание раздела ELF ".note.package". Содержимое заметки в формате JSON,
	   как указано в спецификации метаданных пакета. Для дополнительной информации см.:
	   https://systemd.io/ELF_PACKAGE_METADATA/ Аргумент JSON поддерживает кодирование
	   percent и следующее кодирование %[string] (где string относится к Named Character
	   References в HTML): %[comma] для ,, %[lbrace] для {, %[quot] для ", %[rbrace] для }
	   и %[space] для символа пробела. Если аргумент JSON отсутствует/пуст, то это отключит
	   создание заметки метаданных, если она была включена предыдущим появлением опции
	   --package-metadata. Если связыватель был построен с libjansson, то строка JSON
	   будет проверена.

       Связыватель i386 PE поддерживает опцию -shared, которая заставляет вывод быть
       динамически связываемой библиотекой (DLL) вместо нормального исполняемого файла.
       Вы должны называть вывод "*.dll", когда используете эту опцию. Кроме того,
       связыватель полностью поддерживает стандартные файлы "*.def", которые могут быть
       указаны в командной строке связывателя как объектный файл (на самом деле, он должен
       предшествовать архивам, из которых он экспортирует символы, чтобы убедиться, что
       они связываются, как обычный объектный файл).

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

       --add-stdcall-alias
	   Если указано, символы с суффиксом stdcall (@nn) будут экспортироваться как есть
	   и также без суффикса. [Эта опция специфична для целевой платформы i386 PE связывателя]

       --base-file file
	   Использовать file как имя файла, в котором сохранить базовые адреса всех релокаций,
	   нужных для генерации DLL с dlltool. [Это опция, специфичная для i386 PE]

       --dll
	   Создать DLL вместо обычного исполняемого файла. Вы также можете использовать -shared
	   или указать "LIBRARY" в данном файле ".def". [Эта опция специфична для целевой
	   платформы i386 PE связывателя]

       --enable-long-section-names
       --disable-long-section-names
	   Варианты PE формата объектного файла COFF добавляют расширение, которое позволяет
	   использовать имена разделов длиннее восьми символов, нормальный лимит для COFF.
	   По умолчанию эти имена разрешены только в объектных файлах, поскольку полностью
	   связанные образы исполняемых файлов не несут строковую таблицу COFF, необходимую
	   для поддержки более длинных имён. Как расширение GNU, возможно разрешить их
	   использование и в образах исполняемых файлов, или (вероятно, бессмысленно!)
	   запретить в объектных файлах, используя эти две опции. Образы исполняемых файлов,
	   генерируемые с этими длинными именами разделов, слегка нестандартны, поскольку
	   они несут строковую таблицу, и могут генерировать путаный вывод при осмотре
	   с не-GNU инструментами, осведомлёнными о PE, такими как просмотрщики файлов и дамперы.
	   Однако, GDB полагается на использование длинных имён разделов PE для поиска разделов
	   информации отладки Dwarf-2 в образе исполняемого файла во время выполнения, и так
	   если ни одна опция не указана в командной строке, ld включит длинные имена разделов,
	   переопределяя поведение по умолчанию и технически правильное, когда найдёт наличие
	   информации отладки во время связывания образа исполняемого файла и не удаляя символы.
	   [Эта опция действительна для всех целевых платформ PE связывателя]

       --enable-stdcall-fixup
       --disable-stdcall-fixup
	   Если связыватель находит символ, который он не может разрешить, он попытается
	   выполнить "fuzzy linking", ища другое определённое имя символа, которое отличается
	   только по формату имени символа (cdecl vs stdcall), и разрешит этот символ путём
	   связывания с совпадением. Когда связыватель делает это, он печатает предупреждение,
	   поскольку нормально связывание должно было потерпеть неудачу, но иногда импортные
	   библиотеки, генерируемые из сторонних dll, нуждаются в этой функции, чтобы быть
	   usable. Если вы укажете --enable-stdcall-fixup, эта функция полностью включена
	   и предупреждения не печатаются. Если вы укажете --disable-stdcall-fixup, эта функция
	   отключена, и такие несоответствия считаются ошибками. [Эта опция специфична для
	   целевой платформы i386 PE связывателя]

       --leading-underscore
       --no-leading-underscore
	   Для большинства целей префикс символа по умолчанию — подчёркивание и определён
	   в описании цели. С помощью этой опции возможно отключить/включить префикс символа
	   по умолчанию.

       --export-all-symbols
	   Если указано, все глобальные символы в объектах, используемых для построения DLL,
	   будут экспортированы DLL. Замечание, что это значение по умолчанию, если в противном
	   случае не будет никаких экспортируемых символов. Когда символы явно экспортируются
	   через файлы DEF или неявно экспортируются через атрибуты функций, значение по
	   умолчанию — не экспортировать ничего другого, если эта опция не указана. Замечание,
	   что символы "DllMain@12", "DllEntryPoint@0", "DllMainCRTStartup@12" и "impure_ptr"
	   не будут автоматически экспортироваться. Кроме того, символы, импортированные из
	   других DLL, не будут повторно экспортироваться, ни символы, указывающие внутреннюю
	   структуру DLL, такие как те, что начинаются с "_head_" или заканчиваются "_iname".
	   Кроме того, никакие символы из "libgcc", "libstd++", "libmingw32" или "crtX.o"
	   не будут экспортироваться. Символы, имена которых начинаются с "__rtti_" или "__builtin_",
	   не будут экспортироваться, чтобы помочь с DLL C++. Наконец, существует обширный
	   список символов cygwin-private, которые не экспортируются (очевидно, это применяется
	   только при построении DLL для целей cygwin). Эти исключения cygwin — "_cygwin_dll_entry@12",
	   "_cygwin_crt0_common@8", "_cygwin_noncygwin_dll_entry@12", "_fmode", "_impure_ptr",
	   "cygwin_attach_dll", "cygwin_premain0", "cygwin_premain1", "cygwin_premain2",
	   "cygwin_premain3" и "environ". [Эта опция специфична для целевой платформы i386 PE
	   связывателя]

       --exclude-symbols symbol,symbol,...
	   Указывает список символов, которые не должны автоматически экспортироваться.
	   Имена символов могут быть разделены запятыми или двоеточиями. [Эта опция специфична
	   для целевой платформы i386 PE связывателя]

       --exclude-all-symbols
	   Указывает, что никакие символы не должны автоматически экспортироваться. [Эта
	   опция специфична для целевой платформы i386 PE связывателя]

       --file-alignment
	   Указать выравнивание файла. Разделы в файле всегда будут начинаться по смещениям
	   файла, которые являются кратными этому числу. Значение по умолчанию — 512. [Эта
	   опция специфична для целевой платформы i386 PE связывателя]

       --heap reserve
       --heap reserve,commit
	   Указать количество байтов памяти для резервирования (и, опционально, фиксации)
	   для использования как куча для этой программы. Значение по умолчанию — 1MB
	   зарезервировано, 4K зафиксировано. [Эта опция специфична для целевой платформы
	   i386 PE связывателя]

       --kill-at
	   Если указано, суффиксы stdcall (@nn) будут удалены из символов перед их экспортом.
	   [Эта опция специфична для целевой платформы i386 PE связывателя]

       --large-address-aware
	   Если указано, соответствующий бит в поле "Characteristics" заголовка COFF
	   устанавливается для указания, что этот исполняемый файл поддерживает виртуальные
	   адреса больше 2 гигабайт. Это следует использовать в сочетании с переключателем
	   /3GB или /USERVA=value мегабайт в разделе "[operating systems]" файла BOOT.INI.
	   В противном случае этот бит не имеет эффекта. [Эта опция специфична для целевых
	   платформ PE связывателя]

       --disable-large-address-aware
	   Отменяет эффект предыдущей опции --large-address-aware. Это полезно, если --large-address-aware
	   всегда устанавливается драйвером компилятора (например, Cygwin gcc), и исполняемый
	   файл не поддерживает виртуальные адреса больше 2 гигабайт. [Эта опция специфична
	   для целевых платформ PE связывателя]

       --major-image-version value
	   Установить основной номер "версии изображения". Значение по умолчанию — 1. [Эта
	   опция специфична для целевой платформы i386 PE связывателя]

       --major-os-version value
	   Установить основной номер "версии OS". Значение по умолчанию — 4. [Эта опция
	   специфична для целевой платформы i386 PE связывателя]

       --major-subsystem-version value
	   Установить основной номер "версии подсистемы". Значение по умолчанию — 4. [Эта
	   опция специфична для целевой платформы i386 PE связывателя]

       --minor-image-version value
	   Установить вспомогательный номер "версии изображения". Значение по умолчанию — 0.
	   [Эта опция специфична для целевой платформы i386 PE связывателя]

       --minor-os-version value
	   Установить вспомогательный номер "версии OS". Значение по умолчанию — 0. [Эта
	   опция специфична для целевой платформы i386 PE связывателя]

       --minor-subsystem-version value
	   Установить вспомогательный номер "версии подсистемы". Значение по умолчанию — 0.
	   [Эта опция специфична для целевой платформы i386 PE связывателя]

       --output-def file
	   Связыватель создаст файл file, который будет содержать файл DEF, соответствующий
	   DLL, который создаёт связыватель. Этот файл DEF (который должен называться "*.def")
	   может использоваться для создания импортной библиотеки с "dlltool" или может
	   использоваться как ссылка на автоматически или неявно экспортируемые символы.
	   [Эта опция специфична для целевой платформы i386 PE связывателя]

       --enable-auto-image-base
       --enable-auto-image-base=value
	   Автоматически выбрать базовый адрес изображения для DLL, опционально начиная
	   с value, если он не указан с помощью аргумента "--image-base". Используя хэш,
	   сгенерированный из имени dll, для создания уникальных базовых адресов для каждой
	   DLL, избегаются коллизии в памяти и релокации, которые могут задерживать выполнение
	   программы. [Эта опция специфична для целевой платформы i386 PE связывателя]

       --disable-auto-image-base
	   Не автоматически генерировать уникальный базовый адрес изображения. Если нет
	   пользовательского базового адреса ("--image-base"), то использовать значение по
	   умолчанию платформы. [Эта опция специфична для целевой платформы i386 PE связывателя]

       --dll-search-prefix string
	   При динамическом связывании с dll без импортной библиотеки искать "<string><basename>.dll"
	   в предпочтении перед "lib<basename>.dll". Это поведение позволяет легко различать
	   DLL, построенные для различных "подплатформ": native, cygwin, uwin, pw и т.д.
	   Например, DLL cygwin обычно используют "--dll-search-prefix=cyg". [Эта опция
	   специфична для целевой платформы i386 PE связывателя]

       --enable-auto-import
	   Выполнять сложное связывание "_symbol" с "__imp__symbol" для импортов DATA из DLL,
	   делая возможным обходить механизм dllimport на стороне пользователя и ссылаться
	   на неманглированные имена символов. [Эта опция специфична для целевой платформы
	   i386 PE связывателя]

	   Следующие замечания относятся к оригинальной реализации функции и устарели для
	   целей Cygwin и MinGW.

	   Замечание: Использование расширения 'auto-import' заставит раздел текста файла
	   изображения быть сделанным записываемым. Это не соответствует спецификации формата
	   PE-COFF, опубликованной Microsoft.

	   Замечание — использование расширения 'auto-import' также заставит данные только
	   для чтения, которые обычно помещаются в раздел .rdata, быть размещёнными в разделе
	   .data вместо этого. Это для обхода проблемы с константами, описанной здесь:
	   http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

	   Использование 'auto-import' в общем случае 'просто сработает' — но иногда вы можете
	   увидеть это сообщение:

	   "variable '<var>' can't be auto-imported. Please read the documentation for ld's
	   "--enable-auto-import" for details."

	   Это сообщение возникает, когда какое-то (под)выражение обращается к адресу, в конечном
	   счёте данному суммой двух констант (таблицы импортов Win32 позволяют только одну).
	   Примеры, где это может произойти, включают обращения к полям членов структурных переменных,
	   импортированных из DLL, а также использование константного индекса в переменную массива,
	   импортированную из DLL. Любая многословная переменная (массивы, структуры, long long и т.д.)
	   может вызвать это условие ошибки. Однако, независимо от точного типа данных проблемного
	   экспортируемого переменной, ld всегда обнаружит это, выдаст предупреждение и выйдет.

	   Существуют несколько способов решить эту проблему, независимо от типа данных
	   экспортируемой переменной:

	   Один способ — использовать переключатель --enable-runtime-pseudo-reloc. Это оставляет
	   задачу корректировки ссылок в вашем клиентском коде для среды выполнения, так что
	   этот метод работает только когда среда выполнения поддерживает эту функцию.

	   Второе решение — заставить одну из 'констант' быть переменной — то есть, неизвестной
	   и неоптимизируемой на этапе компиляции. Для массивов есть две возможности: a) сделать
	   индексируемый (адрес массива) переменной или b) сделать 'константный' индекс переменной.
	   Таким образом:

		   extern type extern_array[];
		   extern_array[1] -->
		      { volatile type *t=extern_array; t[1] }

	   или

		   extern type extern_array[];
		   extern_array[1] -->
		      { volatile int t=1; extern_array[t] }

	   Для структур (и большинства других многословных типов данных) единственный вариант —
	   сделать структуру саму (или long long, или ...) переменной:

		   extern struct s extern_struct;
		   extern_struct.field -->
		      { volatile struct s *t=&extern_struct; t->field }

	   или

		   extern long long extern_ll;
		   extern_ll -->
		     { volatile long long * local_ll=&extern_ll; *local_ll }

	   Третий метод обработки этой проблемы — отказаться от 'auto-import' для проблемного
	   символа и пометить его "__declspec(dllimport)". Однако, на практике это требует
	   использования определений на этапе компиляции #defines для указания, строите ли вы
	   DLL, строите ли клиентский код, который свяжется с DLL, или просто строите/связываете
	   со статической библиотекой. При выборе между различными методами разрешения проблемы
	   'прямой адрес с константным смещением', вы должны учитывать типичное использование
	   в реальном мире:

	   Оригинал:

		   --foo.h
		   extern int arr[];
		   --foo.c
		   #include "foo.h"
		   void main(int argc, char **argv){
		     printf("%d\n",arr[1]);
		   }

	   Решение 1:

		   --foo.h
		   extern int arr[];
		   --foo.c
		   #include "foo.h"
		   void main(int argc, char **argv){
		     /* This workaround is for win32 and cygwin; do not "optimize" */
		     volatile int *parr = arr;
		     printf("%d\n",parr[1]);
		   }

	   Решение 2:

		   --foo.h
		   /* Note: auto-export is assumed (no __declspec(dllexport)) */
		   #if (defined(_WIN32) || defined(__CYGWIN__)) && \
		     !(defined(FOO_BUILD_DLL) || defined(FOO_STATIC))
		   #define FOO_IMPORT __declspec(dllimport)
		   #else
		   #define FOO_IMPORT
		   #endif
		   extern FOO_IMPORT int arr[];
		   --foo.c
		   #include "foo.h"
		   void main(int argc, char **argv){
		     printf("%d\n",arr[1]);
		   }

	   Четвёртый способ избежать этой проблемы — переписать вашу библиотеку для использования
	   функционального интерфейса вместо интерфейса данных для проблемных переменных
	   (например, функций доступа set_foo() и get_foo()).

       --disable-auto-import
	   Не пытаться выполнять сложное связывание "_symbol" с "__imp__symbol" для импортов
	   DATA из DLL. [Эта опция специфична для целевой платформы i386 PE связывателя]

       --enable-runtime-pseudo-reloc
	   Если ваш код содержит выражения, описанные в разделе --enable-auto-import, то есть,
	   импорты DATA из DLL с ненулевым смещением, этот переключатель создаст вектор 'псевдорелокаций
	   во время выполнения', который может использоваться средой выполнения для корректировки
	   ссылок на такие данные в вашем клиентском коде. [Эта опция специфична для целевой
	   платформы i386 PE связывателя]

       --disable-runtime-pseudo-reloc
	   Не создавать псевдорелокации для импортов DATA из DLL с ненулевым смещением.
	   [Эта опция специфична для целевой платформы i386 PE связывателя]

       --enable-extra-pe-debug
	   Показать дополнительную отладочную информацию, связанную с thunking символов
	   auto-import. [Эта опция специфична для целевой платформы i386 PE связывателя]

       --section-alignment
	   Установить выравнивание раздела. Разделы в памяти всегда будут начинаться по
	   адресам, которые являются кратными этому числу. Значение по умолчанию — 0x1000.
	   [Эта опция специфична для целевой платформы i386 PE связывателя]

       --stack reserve
       --stack reserve,commit
	   Указать количество байтов памяти для резервирования (и, опционально, фиксации)
	   для использования как стек для этой программы. Значение по умолчанию — 2MB
	   зарезервировано, 4K зафиксировано. [Эта опция специфична для целевой платформы
	   i386 PE связывателя]

       --subsystem which
       --subsystem which:major
       --subsystem which:major.minor
	   Указать подсистему, под которой будет выполняться ваша программа. Допустимые
	   значения для which — "native", "windows", "console", "posix" и "xbox". Вы можете
	   опционально установить версию подсистемы тоже. Числовые значения также принимаются
	   для which. [Эта опция специфична для целевой платформы i386 PE связывателя]

	   Следующие опции устанавливают флаги в поле "DllCharacteristics" заголовка PE-файла:
	   [Эти опции специфичны для целевых платформ PE связывателя]

       --high-entropy-va
       --disable-high-entropy-va
	   Образ совместим с случайной компоновкой адресного пространства 64-битной (ASLR).
	   Эта опция включена по умолчанию для 64-битных образов PE.

	   Эта опция также подразумевает --dynamicbase и --enable-reloc-section.

       --dynamicbase
       --disable-dynamicbase
	   Базовый адрес изображения может быть перераспределён с использованием случайной
	   компоновки адресного пространства (ASLR). Эта функция была введена с MS Windows Vista
	   для целей i386 PE. Эта опция включена по умолчанию, но может быть отключена опцией
	   --disable-dynamicbase. Эта опция также подразумевает --enable-reloc-section.

       --forceinteg
       --disable-forceinteg
	   Проверки целостности кода принудительно выполняются. Эта опция отключена по умолчанию.

       --nxcompat
       --disable-nxcompat
	   Образ совместим с предотвращением выполнения данных. Эта функция была введена
	   с MS Windows XP SP2 для целей i386 PE. Опция включена по умолчанию.

       --no-isolation
       --disable-no-isolation
	   Хотя образ понимает изоляцию, не изолировать образ. Эта опция отключена по умолчанию.

       --no-seh
       --disable-no-seh
	   Образ не использует SEH. Ни один обработчик SE не может быть вызван из этого
	   образа. Эта опция отключена по умолчанию.

       --no-bind
       --disable-no-bind
	   Не связывать этот образ. Эта опция отключена по умолчанию.

       --wdmdriver
       --disable-wdmdriver
	   Драйвер использует модель драйвера MS Windows. Эта опция отключена по умолчанию.

       --tsaware
       --disable-tsaware
	   Образ осведомлён о терминальном сервере. Эта опция отключена по умолчанию.

       --insert-timestamp
       --no-insert-timestamp
	   Вставить реальное время в образ. Это поведение по умолчанию, так как оно соответствует
	   устаревшему коду, и это означает, что образ будет работать с другими, проприетарными
	   инструментами. Проблема с этим значением по умолчанию заключается в том, что это
	   приведёт к получению слегка разных образов каждый раз, когда одни и те же источники
	   связываются. Опция --no-insert-timestamp может использоваться для вставки нулевого
	   значения для времени, обеспечивая, чтобы бинарники, произведённые из идентичных
	   источников, сравнивались идентично.

	   Если --insert-timestamp активна, то вставляемое время либо время связывания,
	   либо, если определена переменная окружения "SOURCE_DATE_EPOCH", количество секунд
	   с эпохи Unix, указанное этой переменной.

SEE ALSO
       ar(1), nm(1), objcopy(1), objdump(1), readelf(1) и записи Info для binutils и ld.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ в соответствии
       с условиями Лицензии GNU Free Documentation License, версии 1.3 или любой
       более поздней версии, опубликованной Free Software Foundation; без Инвариантных
       Разделов, без Текстов Обложки и без Текстов Обратной Обложки. Копия лицензии
       включена в раздел, озаглавленный "GNU Free Documentation License".
LD(1)			     GNU Development Tools			 LD(1)



NAME
       ld - The GNU linker

SYNOPSIS
       ld [options] objfile ...

DESCRIPTION
       ld combines a number of object and archive files, relocates their data
       and ties up symbol references. Usually the last step in compiling a
       program is to run ld.

       ld accepts Linker Command Language files written in a superset of
       AT&T's Link Editor Command Language syntax, to provide explicit and
       total control over the linking process.

       This man page does not describe the command language; see the ld entry
       in "info" for full details on the command language and on other aspects
       of the GNU linker.

       This version of ld uses the general purpose BFD libraries to operate on
       object files. This allows ld to read, combine, and write object files
       in many different formats---for example, COFF or "a.out".  Different
       formats may be linked together to produce any available kind of object
       file.

       Aside from its flexibility, the GNU linker is more helpful than other
       linkers in providing diagnostic information.  Many linkers abandon
       execution immediately upon encountering an error; whenever possible, ld
       continues executing, allowing you to identify other errors (or, in some
       cases, to get an output file in spite of the error).

       The GNU linker ld is meant to cover a broad range of situations, and to
       be as compatible as possible with other linkers.	 As a result, you have
       many choices to control its behavior.

OPTIONS
       The linker supports a plethora of command-line options, but in actual
       practice few of them are used in any particular context.	 For instance,
       a frequent use of ld is to link standard Unix object files on a
       standard, supported Unix system.	 On such a system, to link a file
       "hello.o":

	       ld -o <output> /lib/crt0.o hello.o -lc

       This tells ld to produce a file called output as the result of linking
       the file "/lib/crt0.o" with "hello.o" and the library "libc.a", which
       will come from the standard search directories.	(See the discussion of
       the -l option below.)

       Some of the command-line options to ld may be specified at any point in
       the command line.  However, options which refer to files, such as -l or
       -T, cause the file to be read at the point at which the option appears
       in the command line, relative to the object files and other file
       options.	 Repeating non-file options with a different argument will
       either have no further effect, or override prior occurrences (those
       further to the left on the command line) of that option.	 Options which
       may be meaningfully specified more than once are noted in the
       descriptions below.

       Non-option arguments are object files or archives which are to be
       linked together.	 They may follow, precede, or be mixed in with
       command-line options, except that an object file argument may not be
       placed between an option and its argument.

       Usually the linker is invoked with at least one object file, but you
       can specify other forms of binary input files using -l, -R, and the
       script command language.	 If no binary input files at all are
       specified, the linker does not produce any output, and issues the
       message No input files.

       If the linker cannot recognize the format of an object file, it will
       assume that it is a linker script.  A script specified in this way
       augments the main linker script used for the link (either the default
       linker script or the one specified by using -T).	 This feature permits
       the linker to link against a file which appears to be an object or an
       archive, but actually merely defines some symbol values, or uses
       "INPUT" or "GROUP" to load other objects.  Specifying a script in this
       way merely augments the main linker script, with the extra commands
       placed after the main script; use the -T option to replace the default
       linker script entirely, but note the effect of the "INSERT" command.

       For options whose names are a single letter, option arguments must
       either follow the option letter without intervening whitespace, or be
       given as separate arguments immediately following the option that
       requires them.

       For options whose names are multiple letters, either one dash or two
       can precede the option name; for example, -trace-symbol and
       --trace-symbol are equivalent.  Note---there is one exception to this
       rule.  Multiple letter options that start with a lower case 'o' can
       only be preceded by two dashes.	This is to reduce confusion with the
       -o option.  So for example -omagic sets the output file name to magic
       whereas --omagic sets the NMAGIC flag on the output.

       Arguments to multiple-letter options must either be separated from the
       option name by an equals sign, or be given as separate arguments
       immediately following the option that requires them.  For example,
       --trace-symbol foo and --trace-symbol=foo are equivalent.  Unique
       abbreviations of the names of multiple-letter options are accepted.

       Note---if the linker is being invoked indirectly, via a compiler driver
       (e.g. gcc) then all the linker command-line options should be prefixed
       by -Wl, (or whatever is appropriate for the particular compiler driver)
       like this:

		 gcc -Wl,--start-group foo.o bar.o -Wl,--end-group

       This is important, because otherwise the compiler driver program may
       silently drop the linker options, resulting in a bad link.  Confusion
       may also arise when passing options that require values through a
       driver, as the use of a space between option and argument acts as a
       separator, and causes the driver to pass only the option to the linker
       and the argument to the compiler.  In this case, it is simplest to use
       the joined forms of both single- and multiple-letter options, such as:

		 gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map

       Here is a table of the generic command-line switches accepted by the
       GNU linker:

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

       -a keyword
	   This option is supported for HP/UX compatibility.  The keyword
	   argument must be one of the strings archive, shared, or default.
	   -aarchive is functionally equivalent to -Bstatic, and the other two
	   keywords are functionally equivalent to -Bdynamic.  This option may
	   be used any number of times.

       --audit AUDITLIB
	   Adds AUDITLIB to the "DT_AUDIT" entry of the dynamic section.
	   AUDITLIB is not checked for existence, nor will it use the
	   DT_SONAME specified in the library.	If specified multiple times
	   "DT_AUDIT" will contain a colon separated list of audit interfaces
	   to use. If the linker finds an object with an audit entry while
	   searching for shared libraries, it will add a corresponding
	   "DT_DEPAUDIT" entry in the output file.  This option is only
	   meaningful on ELF platforms supporting the rtld-audit interface.

       -b input-format
       --format=input-format
	   ld may be configured to support more than one kind of object file.
	   If your ld is configured this way, you can use the -b option to
	   specify the binary format for input object files that follow this
	   option on the command line.	Even when ld is configured to support
	   alternative object formats, you don't usually need to specify this,
	   as ld should be configured to expect as a default input format the
	   most usual format on each machine.  input-format is a text string,
	   the name of a particular format supported by the BFD libraries.
	   (You can list the available binary formats with objdump -i.)

	   You may want to use this option if you are linking files with an
	   unusual binary format.  You can also use -b to switch formats
	   explicitly (when linking object files of different formats), by
	   including -b input-format before each group of object files in a
	   particular format.

	   The default format is taken from the environment variable
	   "GNUTARGET".

	   You can also define the input format from a script, using the
	   command "TARGET";

       -c MRI-commandfile
       --mri-script=MRI-commandfile
	   For compatibility with linkers produced by MRI, ld accepts script
	   files written in an alternate, restricted command language,
	   described in the MRI Compatible Script Files section of GNU ld
	   documentation.  Introduce MRI script files with the option -c; use
	   the -T option to run linker scripts written in the general-purpose
	   ld scripting language.  If MRI-cmdfile does not exist, ld looks for
	   it in the directories specified by any -L options.

       -d
       -dc
       -dp These three options are equivalent; multiple forms are supported
	   for compatibility with other linkers.  They assign space to common
	   symbols even if a relocatable output file is specified (with -r).
	   The script command "FORCE_COMMON_ALLOCATION" has the same effect.

       --depaudit AUDITLIB
       -P AUDITLIB
	   Adds AUDITLIB to the "DT_DEPAUDIT" entry of the dynamic section.
	   AUDITLIB is not checked for existence, nor will it use the
	   DT_SONAME specified in the library.	If specified multiple times
	   "DT_DEPAUDIT" will contain a colon separated list of audit
	   interfaces to use.  This option is only meaningful on ELF platforms
	   supporting the rtld-audit interface.	 The -P option is provided for
	   Solaris compatibility.

       --enable-linker-version
	   Enables the "LINKER_VERSION" linker script directive, described in
	   Output Section Data.	 If this directive is used in a linker script
	   and this option has been enabled then a string containing the
	   linker version will be inserted at the current point.

	   Note - this location of this option on the linker command line is
	   significant.	 It will only affect linker scripts that come after it
	   on the command line, or which are built into the linker.

       --disable-linker-version
	   Disables the "LINKER_VERSION" linker script directive, so that it
	   does not insert a version string.  This is the default.

       --enable-non-contiguous-regions
	   This option avoids generating an error if an input section does not
	   fit a matching output section. The linker tries to allocate the
	   input section to subseque nt matching output sections, and
	   generates an error only if no output section is large enough.  This
	   is useful when several non-contiguous memory regions are available
	   and the input section does not require a particular one.  The order
	   in which input sections are evaluated does not change, for
	   instance:

		     MEMORY {
		       MEM1 (rwx) : ORIGIN = 0x1000, LENGTH = 0x14
		       MEM2 (rwx) : ORIGIN = 0x1000, LENGTH = 0x40
		       MEM3 (rwx) : ORIGIN = 0x2000, LENGTH = 0x40
		     }
		     SECTIONS {
		       mem1 : { *(.data.*); } > MEM1
		       mem2 : { *(.data.*); } > MEM2
		       mem3 : { *(.data.*); } > MEM3
		     }

		     with input sections:
		     .data.1: size 8
		     .data.2: size 0x10
		     .data.3: size 4

		     results in .data.1 affected to mem1, and .data.2 and .data.3
		     affected to mem2, even though .data.3 would fit in mem3.

	   This option is incompatible with INSERT statements because it
	   changes the way input sections are mapped to output sections.

       --enable-non-contiguous-regions-warnings
	   This option enables warnings when "--enable-non-contiguous-regions"
	   allows possibly unexpected matches in sections mapping, potentially
	   leading to silently discarding a section instead of failing because
	   it does not fit any output region.

       -e entry
       --entry=entry
	   Use entry as the explicit symbol for beginning execution of your
	   program, rather than the default entry point.  If there is no
	   symbol named entry, the linker will try to parse entry as a number,
	   and use that as the entry address (the number will be interpreted
	   in base 10; you may use a leading 0x for base 16, or a leading 0
	   for base 8).

       --exclude-libs lib,lib,...
	   Specifies a list of archive libraries from which symbols should not
	   be automatically exported.  The library names may be delimited by
	   commas or colons.  Specifying "--exclude-libs ALL" excludes symbols
	   in all archive libraries from automatic export.  This option is
	   available only for the i386 PE targeted port of the linker and for
	   ELF targeted ports.	For i386 PE, symbols explicitly listed in a
	   .def file are still exported, regardless of this option.  For ELF
	   targeted ports, symbols affected by this option will be treated as
	   hidden.

       --exclude-modules-for-implib module,module,...
	   Specifies a list of object files or archive members, from which
	   symbols should not be automatically exported, but which should be
	   copied wholesale into the import library being generated during the
	   link.  The module names may be delimited by commas or colons, and
	   must match exactly the filenames used by ld to open the files; for
	   archive members, this is simply the member name, but for object
	   files the name listed must include and match precisely any path
	   used to specify the input file on the linker's command-line.	 This
	   option is available only for the i386 PE targeted port of the
	   linker.  Symbols explicitly listed in a .def file are still
	   exported, regardless of this option.

       -E
       --export-dynamic
       --no-export-dynamic
	   When creating a dynamically linked executable, using the -E option
	   or the --export-dynamic option causes the linker to add all symbols
	   to the dynamic symbol table.	 The dynamic symbol table is the set
	   of symbols which are visible from dynamic objects at run time.

	   If you do not use either of these options (or use the
	   --no-export-dynamic option to restore the default behavior), the
	   dynamic symbol table will normally contain only those symbols which
	   are referenced by some dynamic object mentioned in the link.

	   If you use "dlopen" to load a dynamic object which needs to refer
	   back to the symbols defined by the program, rather than some other
	   dynamic object, then you will probably need to use this option when
	   linking the program itself.

	   You can also use the dynamic list to control what symbols should be
	   added to the dynamic symbol table if the output format supports it.
	   See the description of --dynamic-list.

	   Note that this option is specific to ELF targeted ports.  PE
	   targets support a similar function to export all symbols from a DLL
	   or EXE; see the description of --export-all-symbols below.

       --export-dynamic-symbol=glob
	   When creating a dynamically linked executable, symbols matching
	   glob will be added to the dynamic symbol table. When creating a
	   shared library, references to symbols matching glob will not be
	   bound to the definitions within the shared library. This option is
	   a no-op when creating a shared library and -Bsymbolic or
	   --dynamic-list are not specified. This option is only meaningful on
	   ELF platforms which support shared libraries.

       --export-dynamic-symbol-list=file
	   Specify a --export-dynamic-symbol for each pattern in the file.
	   The format of the file is the same as the version node without
	   scope and node name.	 See VERSION for more information.

       -EB Link big-endian objects.  This affects the default output format.

       -EL Link little-endian objects.	This affects the default output
	   format.

       -f name
       --auxiliary=name
	   When creating an ELF shared object, set the internal DT_AUXILIARY
	   field to the specified name.	 This tells the dynamic linker that
	   the symbol table of the shared object should be used as an
	   auxiliary filter on the symbol table of the shared object name.

	   If you later link a program against this filter object, then, when
	   you run the program, the dynamic linker will see the DT_AUXILIARY
	   field.  If the dynamic linker resolves any symbols from the filter
	   object, it will first check whether there is a definition in the
	   shared object name.	If there is one, it will be used instead of
	   the definition in the filter object.	 The shared object name need
	   not exist.  Thus the shared object name may be used to provide an
	   alternative implementation of certain functions, perhaps for
	   debugging or for machine-specific performance.

	   This option may be specified more than once.	 The DT_AUXILIARY
	   entries will be created in the order in which they appear on the
	   command line.

       -F name
       --filter=name
	   When creating an ELF shared object, set the internal DT_FILTER
	   field to the specified name.	 This tells the dynamic linker that
	   the symbol table of the shared object which is being created should
	   be used as a filter on the symbol table of the shared object name.

	   If you later link a program against this filter object, then, when
	   you run the program, the dynamic linker will see the DT_FILTER
	   field.  The dynamic linker will resolve symbols according to the
	   symbol table of the filter object as usual, but it will actually
	   link to the definitions found in the shared object name.  Thus the
	   filter object can be used to select a subset of the symbols
	   provided by the object name.

	   Some older linkers used the -F option throughout a compilation
	   toolchain for specifying object-file format for both input and
	   output object files.	 The GNU linker uses other mechanisms for this
	   purpose: the -b, --format, --oformat options, the "TARGET" command
	   in linker scripts, and the "GNUTARGET" environment variable.	 The
	   GNU linker will ignore the -F option when not creating an ELF
	   shared object.

       -fini=name
	   When creating an ELF executable or shared object, call NAME when
	   the executable or shared object is unloaded, by setting DT_FINI to
	   the address of the function.	 By default, the linker uses "_fini"
	   as the function to call.

       -g  Ignored.  Provided for compatibility with other tools.

       -G value
       --gpsize=value
	   Set the maximum size of objects to be optimized using the GP
	   register to size.  This is only meaningful for object file formats
	   such as MIPS ELF that support putting large and small objects into
	   different sections.	This is ignored for other object file formats.

       -h name
       -soname=name
	   When creating an ELF shared object, set the internal DT_SONAME
	   field to the specified name.	 When an executable is linked with a
	   shared object which has a DT_SONAME field, then when the executable
	   is run the dynamic linker will attempt to load the shared object
	   specified by the DT_SONAME field rather than using the file name
	   given to the linker.

       -i  Perform an incremental link (same as option -r).

       -init=name
	   When creating an ELF executable or shared object, call NAME when
	   the executable or shared object is loaded, by setting DT_INIT to
	   the address of the function.	 By default, the linker uses "_init"
	   as the function to call.

       -l namespec
       --library=namespec
	   Add the archive or object file specified by namespec to the list of
	   files to link.  This option may be used any number of times.	 If
	   namespec is of the form :filename, ld will search the library path
	   for a file called filename, otherwise it will search the library
	   path for a file called libnamespec.a.

	   On systems which support shared libraries, ld may also search for
	   files other than libnamespec.a.  Specifically, on ELF and SunOS
	   systems, ld will search a directory for a library called
	   libnamespec.so before searching for one called libnamespec.a.  (By
	   convention, a ".so" extension indicates a shared library.)  Note
	   that this behavior does not apply to :filename, which always
	   specifies a file called filename.

	   The linker will search an archive only once, at the location where
	   it is specified on the command line.	 If the archive defines a
	   symbol which was undefined in some object which appeared before the
	   archive on the command line, the linker will include the
	   appropriate file(s) from the archive.  However, an undefined symbol
	   in an object appearing later on the command line will not cause the
	   linker to search the archive again.

	   See the -( option for a way to force the linker to search archives
	   multiple times.

	   You may list the same archive multiple times on the command line.

	   This type of archive searching is standard for Unix linkers.
	   However, if you are using ld on AIX, note that it is different from
	   the behaviour of the AIX linker.

       -L searchdir
       --library-path=searchdir
	   Add path searchdir to the list of paths that ld will search for
	   archive libraries and ld control scripts.  You may use this option
	   any number of times.	 The directories are searched in the order in
	   which they are specified on the command line.  Directories
	   specified on the command line are searched before the default
	   directories.	 All -L options apply to all -l options, regardless of
	   the order in which the options appear.  -L options do not affect
	   how ld searches for a linker script unless -T option is specified.

	   If searchdir begins with "=" or $SYSROOT, then this prefix will be
	   replaced by the sysroot prefix, controlled by the --sysroot option,
	   or specified when the linker is configured.

	   The default set of paths searched (without being specified with -L)
	   depends on which emulation mode ld is using, and in some cases also
	   on how it was configured.

	   The paths can also be specified in a link script with the
	   "SEARCH_DIR" command.  Directories specified this way are searched
	   at the point in which the linker script appears in the command
	   line.

       -m emulation
	   Emulate the emulation linker.  You can list the available
	   emulations with the --verbose or -V options.

	   If the -m option is not used, the emulation is taken from the
	   "LDEMULATION" environment variable, if that is defined.

	   Otherwise, the default emulation depends upon how the linker was
	   configured.

       --remap-inputs=pattern=filename
       --remap-inputs-file=file
	   These options allow the names of input files to be changed before
	   the linker attempts to open them.  The option
	   --remap-inputs=foo.o=bar.o will cause any attempt to load a file
	   called foo.o to instead try to load a file called bar.o.  Wildcard
	   patterns are permitted in the first filename, so
	   --remap-inputs=foo*.o=bar.o will rename any input file that matches
	   foo*.o to bar.o.

	   An alternative form of the option --remap-inputs-file=filename
	   allows the remappings to be read from a file.  Each line in the
	   file can contain a single remapping.	 Blank lines are ignored.
	   Anything from a hash character (#) to the end of a line is
	   considered to be a comment and is also ignored.  The mapping
	   pattern can be separated from the filename by whitespace or an
	   equals (=) character.

	   The options can be specified multiple times.	 Their contents
	   accumulate.	The remappings will be processed in the order in which
	   they occur on the command line, and if they come from a file, in
	   the order in which they occur in the file.  If a match is made, no
	   further checking for that filename will be performed.

	   If the replacement filename is /dev/null or just NUL then the
	   remapping will actually cause the input file to be ignored.	This
	   can be a convenient way to experiment with removing input files
	   from a complicated build environment.

	   Note that this option is position dependent and only affects
	   filenames that come after it on the command line.  Thus:

		     ld foo.o --remap-inputs=foo.o=bar.o

	   Will have no effect, whereas:

		     ld --remap-inputs=foo.o=bar.o foo.o

	   Will rename the input file foo.o to bar.o.

	   Note - these options also affect files referenced by INPUT
	   statements in linker scripts.  But since linker scripts are
	   processed after the entire command line is read, the position of
	   the remap options on the command line is not significant.

	   If the verbose option is enabled then any mappings that match will
	   be reported, although again the verbose option needs to be enabled
	   on the command line before the remaped filenames appear.

	   If the -Map or --print-map options are enabled then the remapping
	   list will be included in the map output.

       -M
       --print-map
	   Print a link map to the standard output.  A link map provides
	   information about the link, including the following:

	   •   Where object files are mapped into memory.

	   •   How common symbols are allocated.

	   •   All archive members included in the link, with a mention of the
	       symbol which caused the archive member to be brought in.

	   •   The values assigned to symbols.

	       Note - symbols whose values are computed by an expression which
	       involves a reference to a previous value of the same symbol may
	       not have correct result displayed in the link map.  This is
	       because the linker discards intermediate results and only
	       retains the final value of an expression.  Under such
	       circumstances the linker will display the final value enclosed
	       by square brackets.  Thus for example a linker script
	       containing:

			  foo = 1
			  foo = foo * 4
			  foo = foo + 8

	       will produce the following output in the link map if the -M
	       option is used:

			  0x00000001		    foo = 0x1
			  [0x0000000c]		      foo = (foo * 0x4)
			  [0x0000000c]		      foo = (foo + 0x8)

	       See Expressions for more information about expressions in
	       linker scripts.

	   •   How GNU properties are merged.

	       When the linker merges input .note.gnu.property sections into
	       one output .note.gnu.property section, some properties are
	       removed or updated.  These actions are reported in the link
	       map.  For example:

		       Removed property 0xc0000002 to merge foo.o (0x1) and bar.o (not found)

	       This indicates that property 0xc0000002 is removed from output
	       when merging properties in  foo.o, whose property 0xc0000002
	       value is 0x1, and bar.o, which doesn't have property
	       0xc0000002.

		       Updated property 0xc0010001 (0x1) to merge foo.o (0x1) and bar.o (0x1)

	       This indicates that property 0xc0010001 value is updated to 0x1
	       in output when merging properties in  foo.o, whose 0xc0010001
	       property value is 0x1, and bar.o, whose 0xc0010001 property
	       value is 0x1.

	   •   On some ELF targets, a list of fixups inserted by --relax

		       foo.o: Adjusting branch at 0x00000008 towards "far" in section .text

	       This indicates that the branch at 0x00000008 in foo.o,
	       targeting the symbol "far" in section .text, has been replaced
	       by a trampoline.

       --print-map-discarded
       --no-print-map-discarded
	   Print (or do not print) the list of discarded and garbage collected
	   sections in the link map.  Enabled by default.

       --print-map-locals
       --no-print-map-locals
	   Print (or do not print) local symbols in the link map.  Local
	   symbols will have the text (local) printed before their name, and
	   will be listed after all of the global symbols in a given section.
	   Temporary local symbols (typically those that start with .L) will
	   not be included in the output.  Disabled by default.

       -n
       --nmagic
	   Turn off page alignment of sections, and disable linking against
	   shared libraries.  If the output format supports Unix style magic
	   numbers, mark the output as "NMAGIC".

       -N
       --omagic
	   Set the text and data sections to be readable and writable.	Also,
	   do not page-align the data segment, and disable linking against
	   shared libraries.  If the output format supports Unix style magic
	   numbers, mark the output as "OMAGIC". Note: Although a writable
	   text section is allowed for PE-COFF targets, it does not conform to
	   the format specification published by Microsoft.

       --no-omagic
	   This option negates most of the effects of the -N option.  It sets
	   the text section to be read-only, and forces the data segment to be
	   page-aligned.  Note - this option does not enable linking against
	   shared libraries.  Use -Bdynamic for this.

       -o output
       --output=output
	   Use output as the name for the program produced by ld; if this
	   option is not specified, the name a.out is used by default.	The
	   script command "OUTPUT" can also specify the output file name.

	   Note - the linker will delete the output file before it starts to
	   write to it.	 It will do this even if it turns out that the link
	   cannot be completed due to errors.

	   Note - the linker will check to make sure that the output file name
	   does not match the name of any of the input files, but that is all.
	   In particular it will not complain if the output file might
	   overwrite a source file or some other important file.  Therefore in
	   build systems it is recommended to use the -o option as the last
	   option on the linker command line.  For example consider:

		     ld -o $(EXE) $(OBJS)
		     ld $(OBJS) -o $(EXE)

	   If the EXE variable is not defined for some reason, the first
	   version of the linker command could end up deleting one of the
	   object files (the first one in the OBJS list) whereas the second
	   version of the linker command will generate an error message and
	   not delete anything.

       --dependency-file=depfile
	   Write a dependency file to depfile.	This file contains a rule
	   suitable for "make" describing the output file and all the input
	   files that were read to produce it.	The output is similar to the
	   compiler's output with -M -MP.  Note that there is no option like
	   the compiler's -MM, to exclude "system files" (which is not a
	   well-specified concept in the linker, unlike "system headers" in
	   the compiler).  So the output from --dependency-file is always
	   specific to the exact state of the installation where it was
	   produced, and should not be copied into distributed makefiles
	   without careful editing.

       -O level
	   If level is a numeric values greater than zero ld optimizes the
	   output.  This might take significantly longer and therefore
	   probably should only be enabled for the final binary.  At the
	   moment this option only affects ELF shared library generation.
	   Future releases of the linker may make more use of this option.
	   Also currently there is no difference in the linker's behaviour for
	   different non-zero values of this option.  Again this may change
	   with future releases.

       -plugin name
	   Involve a plugin in the linking process.  The name parameter is the
	   absolute filename of the plugin.  Usually this parameter is
	   automatically added by the complier, when using link time
	   optimization, but users can also add their own plugins if they so
	   wish.

	   Note that the location of the compiler originated plugins is
	   different from the place where the ar, nm and ranlib programs
	   search for their plugins.  In order for those commands to make use
	   of a compiler based plugin it must first be copied into the
	   ${libdir}/bfd-plugins directory.  All gcc based linker plugins are
	   backward compatible, so it is sufficient to just copy in the newest
	   one.

       --push-state
	   The --push-state allows one to preserve the current state of the
	   flags which govern the input file handling so that they can all be
	   restored with one corresponding --pop-state option.

	   The option which are covered are: -Bdynamic, -Bstatic, -dn, -dy,
	   -call_shared, -non_shared, -static, -N, -n, --whole-archive,
	   --no-whole-archive, -r, -Ur, --copy-dt-needed-entries,
	   --no-copy-dt-needed-entries, --as-needed, --no-as-needed, and -a.

	   One target for this option are specifications for pkg-config.  When
	   used with the --libs option all possibly needed libraries are
	   listed and then possibly linked with all the time.  It is better to
	   return something as follows:

		   -Wl,--push-state,--as-needed -libone -libtwo -Wl,--pop-state

       --pop-state
	   Undoes the effect of --push-state, restores the previous values of
	   the flags governing input file handling.

       -q
       --emit-relocs
	   Leave relocation sections and contents in fully linked executables.
	   Post link analysis and optimization tools may need this information
	   in order to perform correct modifications of executables.  This
	   results in larger executables.

	   This option is currently only supported on ELF platforms.

       --force-dynamic
	   Force the output file to have dynamic sections.  This option is
	   specific to VxWorks targets.

       -r
       --relocatable
	   Generate relocatable output---i.e., generate an output file that
	   can in turn serve as input to ld.  This is often called partial
	   linking.  As a side effect, in environments that support standard
	   Unix magic numbers, this option also sets the output file's magic
	   number to "OMAGIC".	If this option is not specified, an absolute
	   file is produced.  When linking C++ programs, this option will not
	   resolve references to constructors; to do that, use -Ur.

	   When an input file does not have the same format as the output
	   file, partial linking is only supported if that input file does not
	   contain any relocations.  Different output formats can have further
	   restrictions; for example some "a.out"-based formats do not support
	   partial linking with input files in other formats at all.

	   When the relocatable output contains both contents which require
	   link-time optimization (LTO) and contents which don't require LTO,
	   a .gnu_object_only section will be created to contain a relocatable
	   object file, as if -r is applied to all relocatable inputs which
	   don't require LTO.  When processing a relocatable input with a
	   .gnu_object_only section, the linker will extract the
	   .gnu_object_only section as a separate input.

	   Note that since -r groups some sections from different input files
	   together, there may be negative impacts on code size and locality
	   in final executable or shared library.

	   This option does the same thing as -i.

       -R filename
       --just-symbols=filename
	   Read symbol names and their addresses from filename, but do not
	   relocate it or include it in the output.  This allows your output
	   file to refer symbolically to absolute locations of memory defined
	   in other programs.  You may use this option more than once.

	   For compatibility with other ELF linkers, if the -R option is
	   followed by a directory name, rather than a file name, it is
	   treated as the -rpath option.

       --rosegment
       --no-rosegment
	   Attempt to ensure that only a single read-only, non-code segment is
	   created.  Only useful when used in conjunction with the -z
	   separate-code option.  The resulting binaries should be smaller
	   than if -z separate-code is used on its own.	 Without this option,
	   or if --no-rosegment is specified, the -z separate-code option will
	   create two read-only segments, one before the code segment and one
	   after it.

	   The name of the options are misleading, but they have been chosen
	   in order for the linker to be compatible with the LLD and GOLD
	   linkers.

	   Thse options are only supported by ELF targets.

       -s
       --strip-all
	   Omit all symbol information from the output file.

       -S
       --strip-debug
	   Omit debugger symbol information (but not all symbols) from the
	   output file.

       --strip-discarded
       --no-strip-discarded
	   Omit (or do not omit) global symbols defined in discarded sections.
	   Enabled by default.

       -plugin-save-temps
	   Store the plugin "temporary" intermediate files permanently.

       -t
       --trace
	   Print the names of the input files as ld processes them.  If -t is
	   given twice then members within archives are also printed.  -t
	   output is useful to generate a list of all the object files and
	   scripts involved in linking, for example, when packaging files for
	   a linker bug report.

       -T scriptfile
       --script=scriptfile
	   Use scriptfile as the linker script.	 This script replaces ld's
	   default linker script (rather than adding to it), unless the script
	   contains "INSERT", so commandfile must specify everything necessary
	   to describe the output file.

	   If scriptfile does not exist in the current directory, "ld" looks
	   for it in the directories specified by any preceding -L options.

	   Command line options that appear before the -T option can affect
	   the script, but command line options that appear after it do not.

	   Multiple -T options will accumulate if they are augmenting the
	   current script, otherwise the last, non-augmenting, -T option will
	   be used.

	   There are other ways of specifying linker scripts.  See

       -dT scriptfile
       --default-script=scriptfile
	   Use scriptfile as the default linker script.

	   This option is similar to the --script option except that
	   processing of the script is delayed until after the rest of the
	   command line has been processed.  This allows options placed after
	   the --default-script option on the command line to affect the
	   behaviour of the linker script, which can be important when the
	   linker command line cannot be directly controlled by the user.  (eg
	   because the command line is being constructed by another tool, such
	   as gcc).

       -u symbol
       --undefined=symbol
	   Force symbol to be entered in the output file as an undefined
	   symbol.  Doing this may, for example, trigger linking of additional
	   modules from standard libraries.  -u may be repeated with different
	   option arguments to enter additional undefined symbols.  This
	   option is equivalent to the "EXTERN" linker script command.

	   If this option is being used to force additional modules to be
	   pulled into the link, and if it is an error for the symbol to
	   remain undefined, then the option --require-defined should be used
	   instead.

       --require-defined=symbol
	   Require that symbol is defined in the output file.  This option is
	   the same as option --undefined except that if symbol is not defined
	   in the output file then the linker will issue an error and exit.
	   The same effect can be achieved in a linker script by using
	   "EXTERN", "ASSERT" and "DEFINED" together.  This option can be used
	   multiple times to require additional symbols.

       -Ur For programs that do not use constructors or destructors, or for
	   ELF based systems this option is equivalent to -r:  it generates
	   relocatable output---i.e., an output file that can in turn serve as
	   input to ld.	 For other binaries however the -Ur option is similar
	   to -r but it also resolves references to constructors and
	   destructors.

	   For those systems where -r and -Ur behave differently, it does not
	   work to use -Ur on files that were themselves linked with -Ur; once
	   the constructor table has been built, it cannot be added to.	 Use
	   -Ur only for the last partial link, and -r for the others.

       --orphan-handling=MODE
	   Control how orphan sections are handled.  An orphan section is one
	   not specifically mentioned in a linker script.

	   MODE can have any of the following values:

	   "place"
	       Orphan sections are placed into a suitable output section
	       following the strategy described in Orphan Sections.  The
	       option --unique also affects how sections are placed.

	   "discard"
	       All orphan sections are discarded, by placing them in the
	       /DISCARD/ section.

	   "warn"
	       The linker will place the orphan section as for "place" and
	       also issue a warning.

	   "error"
	       The linker will exit with an error if any orphan section is
	       found.

	   The default if --orphan-handling is not given is "place".

       --unique[=SECTION]
	   Creates a separate output section for every input section matching
	   SECTION, or if the optional wildcard SECTION argument is missing,
	   for every orphan input section.  An orphan section is one not
	   specifically mentioned in a linker script.  You may use this option
	   multiple times on the command line;	It prevents the normal merging
	   of input sections with the same name, overriding output section
	   assignments in a linker script.

       -v
       --version
       -V  Display the version number for ld.  The -V option also lists the
	   supported emulations.  See also the description of the
	   --enable-linker-version in Options,,Command-line Options which can
	   be used to insert the linker version string into a binary.

       -x
       --discard-all
	   Delete all local symbols.

       -X
       --discard-locals
	   Delete all temporary local symbols.	(These symbols start with
	   system-specific local label prefixes, typically .L for ELF systems
	   or L for traditional a.out systems.)

       -y symbol
       --trace-symbol=symbol
	   Print the name of each linked file in which symbol appears.	This
	   option may be given any number of times.  On many systems it is
	   necessary to prepend an underscore.

	   This option is useful when you have an undefined symbol in your
	   link but don't know where the reference is coming from.

       -Y path
	   Add path to the default library search path.	 This option exists
	   for Solaris compatibility.

       -z keyword
	   The recognized keywords are:

	   call-nop=prefix-addr
	   call-nop=suffix-nop
	   call-nop=prefix-byte
	   call-nop=suffix-byte
	       Specify the 1-byte "NOP" padding when transforming indirect
	       call to a locally defined function, foo, via its GOT slot.
	       call-nop=prefix-addr generates "0x67 call foo".
	       call-nop=suffix-nop generates "call foo 0x90".
	       call-nop=prefix-byte generates "byte call foo".
	       call-nop=suffix-byte generates "call foo byte".	Supported for
	       i386 and x86_64.

	   cet-report=none
	   cet-report=warning
	   cet-report=error
	       Specify how to report the missing
	       GNU_PROPERTY_X86_FEATURE_1_IBT and
	       GNU_PROPERTY_X86_FEATURE_1_SHSTK properties in input
	       .note.gnu.property section.  cet-report=none, which is the
	       default, will make the linker not report missing properties in
	       input files.  cet-report=warning will make the linker issue a
	       warning for missing properties in input files.
	       cet-report=error will make the linker issue an error for
	       missing properties in input files.  Note that ibt will turn off
	       the missing GNU_PROPERTY_X86_FEATURE_1_IBT property report and
	       shstk will turn off the missing
	       GNU_PROPERTY_X86_FEATURE_1_SHSTK property report.  Supported
	       for Linux/i386 and Linux/x86_64.

	   combreloc
	   nocombreloc
	       Combine multiple dynamic relocation sections and sort to
	       improve dynamic symbol lookup caching.  Do not do this if
	       nocombreloc.

	   common
	   nocommon
	       Generate common symbols with STT_COMMON type during a
	       relocatable link.  Use STT_OBJECT type if nocommon.

	   common-page-size=value
	       Set the page size most commonly used to value.  Memory image
	       layout will be optimized to minimize memory pages if the system
	       is using pages of this size.

	   defs
	       Report unresolved symbol references from regular object files.
	       This is done even if the linker is creating a non-symbolic
	       shared library.	This option is the inverse of -z undefs.

	   dynamic-undefined-weak
	   nodynamic-undefined-weak
	       Make undefined weak symbols dynamic when building a dynamic
	       object, if they are referenced from a regular object file and
	       not forced local by symbol visibility or versioning.  Do not
	       make them dynamic if nodynamic-undefined-weak.  If neither
	       option is given, a target may default to either option being in
	       force, or make some other selection of undefined weak symbols
	       dynamic.	 Not all targets support these options.

	   execstack
	       Marks the object as requiring executable stack.

	   global
	       This option is only meaningful when building a shared object.
	       It makes the symbols defined by this shared object available
	       for symbol resolution of subsequently loaded libraries.

	   globalaudit
	       This option is only meaningful when building a dynamic
	       executable.  This option marks the executable as requiring
	       global auditing by setting the "DF_1_GLOBAUDIT" bit in the
	       "DT_FLAGS_1" dynamic tag.  Global auditing requires that any
	       auditing library defined via the --depaudit or -P command-line
	       options be run for all dynamic objects loaded by the
	       application.

	   ibtplt
	       Generate Intel Indirect Branch Tracking (IBT) enabled PLT
	       entries.	 Supported for Linux/i386 and Linux/x86_64.

	   ibt Generate GNU_PROPERTY_X86_FEATURE_1_IBT in .note.gnu.property
	       section to indicate compatibility with IBT.  This also implies
	       ibtplt.	Supported for Linux/i386 and Linux/x86_64.

	   indirect-extern-access
	   noindirect-extern-access
	       Generate GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS in
	       .note.gnu.property section to indicate that object file
	       requires canonical function pointers and cannot be used with
	       copy relocation.	 This option also implies
	       noextern-protected-data and nocopyreloc.	 Supported for i386
	       and x86-64.

	       noindirect-extern-access removes
	       GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS from
	       .note.gnu.property section.

	   initfirst
	       This option is only meaningful when building a shared object.
	       It marks the object so that its runtime initialization will
	       occur before the runtime initialization of any other objects
	       brought into the process at the same time.  Similarly the
	       runtime finalization of the object will occur after the runtime
	       finalization of any other objects.

	   interpose
	       Specify that the dynamic loader should modify its symbol search
	       order so that symbols in this shared library interpose all
	       other shared libraries not so marked.

	   unique
	   nounique
	       When generating a shared library or other dynamically loadable
	       ELF object mark it as one that should (by default) only ever be
	       loaded once, and only in the main namespace (when using
	       "dlmopen"). This is primarily used to mark fundamental
	       libraries such as libc, libpthread et al which do not usually
	       function correctly unless they are the sole instances of
	       themselves. This behaviour can be overridden by the "dlmopen"
	       caller and does not apply to certain loading mechanisms (such
	       as audit libraries).

	   lam-u48
	       Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U48 in
	       .note.gnu.property section to indicate compatibility with Intel
	       LAM_U48.	 Supported for Linux/x86_64.

	   lam-u57
	       Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U57 in
	       .note.gnu.property section to indicate compatibility with Intel
	       LAM_U57.	 Supported for Linux/x86_64.

	   lam-u48-report=none
	   lam-u48-report=warning
	   lam-u48-report=error
	       Specify how to report the missing
	       GNU_PROPERTY_X86_FEATURE_1_LAM_U48 property in input
	       .note.gnu.property section.  lam-u48-report=none, which is the
	       default, will make the linker not report missing properties in
	       input files.  lam-u48-report=warning will make the linker issue
	       a warning for missing properties in input files.
	       lam-u48-report=error will make the linker issue an error for
	       missing properties in input files.  Supported for Linux/x86_64.

	   lam-u57-report=none
	   lam-u57-report=warning
	   lam-u57-report=error
	       Specify how to report the missing
	       GNU_PROPERTY_X86_FEATURE_1_LAM_U57 property in input
	       .note.gnu.property section.  lam-u57-report=none, which is the
	       default, will make the linker not report missing properties in
	       input files.  lam-u57-report=warning will make the linker issue
	       a warning for missing properties in input files.
	       lam-u57-report=error will make the linker issue an error for
	       missing properties in input files.  Supported for Linux/x86_64.

	   lam-report=none
	   lam-report=warning
	   lam-report=error
	       Specify how to report the missing
	       GNU_PROPERTY_X86_FEATURE_1_LAM_U48 and
	       GNU_PROPERTY_X86_FEATURE_1_LAM_U57 properties in input
	       .note.gnu.property section.  lam-report=none, which is the
	       default, will make the linker not report missing properties in
	       input files.  lam-report=warning will make the linker issue a
	       warning for missing properties in input files.
	       lam-report=error will make the linker issue an error for
	       missing properties in input files.  Supported for Linux/x86_64.

	   lazy
	       When generating an executable or shared library, mark it to
	       tell the dynamic linker to defer function call resolution to
	       the point when the function is called (lazy binding), rather
	       than at load time.  Lazy binding is the default.

	   loadfltr
	       Specify that the object's filters be processed immediately at
	       runtime.

	   max-page-size=value
	       Set the maximum memory page size supported to value.

	   mark-plt
	   nomark-plt
	       Mark PLT entries with dynamic tags, DT_X86_64_PLT,
	       DT_X86_64_PLTSZ and DT_X86_64_PLTENT.  Since this option stores
	       a non-zero value in the r_addend field of R_X86_64_JUMP_SLOT
	       relocations, the resulting executables and shared libraries are
	       incompatible with dynamic linkers, such as those in older
	       versions of glibc without the change to ignore r_addend in
	       R_X86_64_GLOB_DAT and R_X86_64_JUMP_SLOT relocations, which
	       don't ignore the r_addend field of R_X86_64_JUMP_SLOT
	       relocations.  Supported for x86_64.

	   muldefs
	       Allow multiple definitions.

	   nocopyreloc
	       Disable linker generated .dynbss variables used in place of
	       variables defined in shared libraries.  May result in dynamic
	       text relocations.

	   nodefaultlib
	       Specify that the dynamic loader search for dependencies of this
	       object should ignore any default library search paths.

	   nodelete
	       Specify that the object shouldn't be unloaded at runtime.

	   nodlopen
	       Specify that the object is not available to "dlopen".

	   nodump
	       Specify that the object can not be dumped by "dldump".

	   noexecstack
	       Marks the object as not requiring executable stack.

	   noextern-protected-data
	       Don't treat protected data symbols as external when building a
	       shared library.	This option overrides the linker backend
	       default.	 It can be used to work around incorrect relocations
	       against protected data symbols generated by compiler.  Updates
	       on protected data symbols by another module aren't visible to
	       the resulting shared library.  Supported for i386 and x86-64.

	   noreloc-overflow
	       Disable relocation overflow check.  This can be used to disable
	       relocation overflow check if there will be no dynamic
	       relocation overflow at run-time.	 Supported for x86_64.

	   memory-seal
	   nomemory-seal
	       Instruct the executable or shared library that the all PT_LOAD
	       segments should be sealed to avoid further manipulation (such
	       as changing the protection flags, the segment size, or remove
	       the mapping).  This is a security hardening that requires
	       system support.	This generates GNU_PROPERTY_MEMORY_SEAL in
	       .note.gnu.property section

	   now When generating an executable or shared library, mark it to
	       tell the dynamic linker to resolve all symbols when the program
	       is started, or when the shared library is loaded by dlopen,
	       instead of deferring function call resolution to the point when
	       the function is first called.

	   origin
	       Specify that the object requires $ORIGIN handling in paths.

	   pack-relative-relocs
	   nopack-relative-relocs
	       Generate compact relative relocation in position-independent
	       executable and shared library.  It adds "DT_RELR", "DT_RELRSZ"
	       and "DT_RELRENT" entries to the dynamic section.	 It is ignored
	       when building position-dependent executable and relocatable
	       output.	nopack-relative-relocs is the default, which disables
	       compact relative relocation.  When linked against the GNU C
	       Library, a GLIBC_ABI_DT_RELR symbol version dependency on the
	       shared C Library is added to the output.	 Supported for i386
	       and x86-64.

	   relro
	   norelro
	       Create an ELF "PT_GNU_RELRO" segment header in the object.
	       This specifies a memory segment that should be made read-only
	       after relocation, if supported.	Specifying common-page-size
	       smaller than the system page size will render this protection
	       ineffective.  Don't create an ELF "PT_GNU_RELRO" segment if
	       norelro.

	   report-relative-reloc
	       Report dynamic relative relocations generated by linker.
	       Supported for Linux/i386 and Linux/x86_64.

	   sectionheader
	   nosectionheader
	       Generate section header.	 Don't generate section header if
	       nosectionheader is used.	 sectionheader is the default.

	   separate-code
	   noseparate-code
	       Create separate code "PT_LOAD" segment header in the object.
	       This specifies a memory segment that should contain only
	       instructions and must be in wholly disjoint pages from any
	       other data.  Don't create separate code "PT_LOAD" segment if
	       noseparate-code is used.

	   shstk
	       Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK in .note.gnu.property
	       section to indicate compatibility with Intel Shadow Stack.
	       Supported for Linux/i386 and Linux/x86_64.

	   stack-size=value
	       Specify a stack size for an ELF "PT_GNU_STACK" segment.
	       Specifying zero will override any default non-zero sized
	       "PT_GNU_STACK" segment creation.

	   start-stop-gc
	   nostart-stop-gc
	       When --gc-sections is in effect, a reference from a retained
	       section to "__start_SECNAME" or "__stop_SECNAME" causes all
	       input sections named "SECNAME" to also be retained, if
	       "SECNAME" is representable as a C identifier and either
	       "__start_SECNAME" or "__stop_SECNAME" is synthesized by the
	       linker.	-z start-stop-gc disables this effect, allowing
	       sections to be garbage collected as if the special synthesized
	       symbols were not defined.  -z start-stop-gc has no effect on a
	       definition of "__start_SECNAME" or "__stop_SECNAME" in an
	       object file or linker script.  Such a definition will prevent
	       the linker providing a synthesized "__start_SECNAME" or
	       "__stop_SECNAME" respectively, and therefore the special
	       treatment by garbage collection for those references.

	   start-stop-visibility=value
	       Specify the ELF symbol visibility for synthesized
	       "__start_SECNAME" and "__stop_SECNAME" symbols.	value must be
	       exactly default, internal, hidden, or protected.	 If no -z
	       start-stop-visibility option is given, protected is used for
	       compatibility with historical practice.	However, it's highly
	       recommended to use -z start-stop-visibility=hidden in new
	       programs and shared libraries so that these symbols are not
	       exported between shared objects, which is not usually what's
	       intended.

	   text
	   notext
	   textoff
	       Report an error if DT_TEXTREL is set, i.e., if the
	       position-independent or shared object has dynamic relocations
	       in read-only sections.  Don't report an error if notext or
	       textoff.

	   undefs
	       Do not report unresolved symbol references from regular object
	       files, either when creating an executable, or when creating a
	       shared library.	This option is the inverse of -z defs.

	   unique-symbol
	   nounique-symbol
	       Avoid duplicated local symbol names in the symbol string table.
	       Append "."number"" to duplicated local symbol names if
	       unique-symbol is used.  nounique-symbol is the default.

	   x86-64-baseline
	   x86-64-v2
	   x86-64-v3
	   x86-64-v4
	       Specify the x86-64 ISA level needed in .note.gnu.property
	       section.	 x86-64-baseline generates
	       "GNU_PROPERTY_X86_ISA_1_BASELINE".  x86-64-v2 generates
	       "GNU_PROPERTY_X86_ISA_1_V2".  x86-64-v3 generates
	       "GNU_PROPERTY_X86_ISA_1_V3".  x86-64-v4 generates
	       "GNU_PROPERTY_X86_ISA_1_V4".  Supported for Linux/i386 and
	       Linux/x86_64.

	   isa-level-report=none
	   isa-level-report=all
	   isa-level-report=needed
	   isa-level-report=used
	       Specify how to report x86-64 ISA levels in input relocatable
	       files.  isa-level-report=none, which is the default, will make
	       the linker not report x86-64 ISA levels in input files.
	       isa-level-report=all will make the linker report needed and
	       used x86-64 ISA levels in input files.  isa-level-report=needed
	       will make the linker report needed x86-64 ISA levels in input
	       files.  isa-level-report=used will make the linker report used
	       x86-64 ISA levels in input files.  Supported for Linux/i386 and
	       Linux/x86_64.

	   Other keywords are ignored for Solaris compatibility.

       -( archives -)
       --start-group archives --end-group
	   The archives should be a list of archive files.  They may be either
	   explicit file names, or -l options.

	   The specified archives are searched repeatedly until no new
	   undefined references are created.  Normally, an archive is searched
	   only once in the order that it is specified on the command line.
	   If a symbol in that archive is needed to resolve an undefined
	   symbol referred to by an object in an archive that appears later on
	   the command line, the linker would not be able to resolve that
	   reference.  By grouping the archives, they will all be searched
	   repeatedly until all possible references are resolved.

	   Using this option has a significant performance cost.  It is best
	   to use it only when there are unavoidable circular references
	   between two or more archives.

       --accept-unknown-input-arch
       --no-accept-unknown-input-arch
	   Tells the linker to accept input files whose architecture cannot be
	   recognised.	The assumption is that the user knows what they are
	   doing and deliberately wants to link in these unknown input files.
	   This was the default behaviour of the linker, before release 2.14.
	   The default behaviour from release 2.14 onwards is to reject such
	   input files, and so the --accept-unknown-input-arch option has been
	   added to restore the old behaviour.

       --as-needed
       --no-as-needed
	   This option affects ELF DT_NEEDED tags for dynamic libraries
	   mentioned on the command line after the --as-needed option.
	   Normally the linker will add a DT_NEEDED tag for each dynamic
	   library mentioned on the command line, regardless of whether the
	   library is actually needed or not.  --as-needed causes a DT_NEEDED
	   tag to only be emitted for a library that at that point in the link
	   satisfies a non-weak undefined symbol reference from a regular
	   object file or, if the library is not found in the DT_NEEDED lists
	   of other needed libraries, a non-weak undefined symbol reference
	   from another needed dynamic library.	 Object files or libraries
	   appearing on the command line after the library in question do not
	   affect whether the library is seen as needed.  This is similar to
	   the rules for extraction of object files from archives.
	   --no-as-needed restores the default behaviour.

	   Note: On Linux based systems the --as-needed option also has an
	   affect on the behaviour of the --rpath and --rpath-link options.
	   See the description of --rpath-link for more details.

       --add-needed
       --no-add-needed
	   These two options have been deprecated because of the similarity of
	   their names to the --as-needed and --no-as-needed options.  They
	   have been replaced by --copy-dt-needed-entries and
	   --no-copy-dt-needed-entries.

       -assert keyword
	   This option is ignored for SunOS compatibility.

       -Bdynamic
       -dy
       -call_shared
	   Link against dynamic libraries.  This is only meaningful on
	   platforms for which shared libraries are supported.	This option is
	   normally the default on such platforms.  The different variants of
	   this option are for compatibility with various systems.  You may
	   use this option multiple times on the command line: it affects
	   library searching for -l options which follow it.

       -Bgroup
	   Set the "DF_1_GROUP" flag in the "DT_FLAGS_1" entry in the dynamic
	   section.  This causes the runtime linker to handle lookups in this
	   object and its dependencies to be performed only inside the group.
	   --unresolved-symbols=report-all is implied.	This option is only
	   meaningful on ELF platforms which support shared libraries.

       -Bstatic
       -dn
       -non_shared
       -static
	   Do not link against shared libraries.  This is only meaningful on
	   platforms for which shared libraries are supported.	The different
	   variants of this option are for compatibility with various systems.
	   You may use this option multiple times on the command line: it
	   affects library searching for -l options which follow it.  This
	   option also implies --unresolved-symbols=report-all.	 This option
	   can be used with -shared.  Doing so means that a shared library is
	   being created but that all of the library's external references
	   must be resolved by pulling in entries from static libraries.

       -Bsymbolic
	   When creating a shared library, bind references to global symbols
	   to the definition within the shared library, if any.	 Normally, it
	   is possible for a program linked against a shared library to
	   override the definition within the shared library.  This option is
	   only meaningful on ELF platforms which support shared libraries.

       -Bsymbolic-functions
	   When creating a shared library, bind references to global function
	   symbols to the definition within the shared library, if any.	 This
	   option is only meaningful on ELF platforms which support shared
	   libraries.

       -Bno-symbolic
	   This option can cancel previously specified -Bsymbolic and
	   -Bsymbolic-functions.

       --dynamic-list=dynamic-list-file
	   Specify the name of a dynamic list file to the linker.  This is
	   typically used when creating shared libraries to specify a list of
	   global symbols whose references shouldn't be bound to the
	   definition within the shared library, or creating dynamically
	   linked executables to specify a list of symbols which should be
	   added to the symbol table in the executable.	 This option is only
	   meaningful on ELF platforms which support shared libraries.

	   The format of the dynamic list is the same as the version node
	   without scope and node name.	 See VERSION for more information.

       --dynamic-list-data
	   Include all global data symbols to the dynamic list.

       --dynamic-list-cpp-new
	   Provide the builtin dynamic list for C++ operator new and delete.
	   It is mainly useful for building shared libstdc++.

       --dynamic-list-cpp-typeinfo
	   Provide the builtin dynamic list for C++ runtime type
	   identification.

       --check-sections
       --no-check-sections
	   Asks the linker not to check section addresses after they have been
	   assigned to see if there are any overlaps.  Normally the linker
	   will perform this check, and if it finds any overlaps it will
	   produce suitable error messages.  The linker does know about, and
	   does make allowances for sections in overlays.  The default
	   behaviour can be restored by using the command-line switch
	   --check-sections.  Section overlap is not usually checked for
	   relocatable links.  You can force checking in that case by using
	   the --check-sections option.

       --copy-dt-needed-entries
       --no-copy-dt-needed-entries
	   This option affects the treatment of dynamic libraries referred to
	   by DT_NEEDED tags inside ELF dynamic libraries mentioned on the
	   command line.  Normally the linker won't add a DT_NEEDED tag to the
	   output binary for each library mentioned in a DT_NEEDED tag in an
	   input dynamic library.  With --copy-dt-needed-entries specified on
	   the command line however any dynamic libraries that follow it will
	   have their DT_NEEDED entries added.	The default behaviour can be
	   restored with --no-copy-dt-needed-entries.

	   This option also has an effect on the resolution of symbols in
	   dynamic libraries.  With --copy-dt-needed-entries dynamic libraries
	   mentioned on the command line will be recursively searched,
	   following their DT_NEEDED tags to other libraries, in order to
	   resolve symbols required by the output binary.  With the default
	   setting however the searching of dynamic libraries that follow it
	   will stop with the dynamic library itself.  No DT_NEEDED links will
	   be traversed to resolve symbols.

       --cref
	   Output a cross reference table.  If a linker map file is being
	   generated, the cross reference table is printed to the map file.
	   Otherwise, it is printed on the standard output.

	   The format of the table is intentionally simple, so that it may be
	   easily processed by a script if necessary.  The symbols are printed
	   out, sorted by name.	 For each symbol, a list of file names is
	   given.  If the symbol is defined, the first file listed is the
	   location of the definition.	If the symbol is defined as a common
	   value then any files where this happens appear next.	 Finally any
	   files that reference the symbol are listed.

       --ctf-variables
       --no-ctf-variables
	   The CTF debuginfo format supports a section which encodes the names
	   and types of variables found in the program which do not appear in
	   any symbol table. These variables clearly cannot be looked up by
	   address by conventional debuggers, so the space used for their
	   types and names is usually wasted: the types are usually small but
	   the names are often not.  --ctf-variables causes the generation of
	   such a section.  The default behaviour can be restored with
	   --no-ctf-variables.

       --ctf-share-types=method
	   Adjust the method used to share types between translation units in
	   CTF.

	   share-unconflicted
	       Put all types that do not have ambiguous definitions into the
	       shared dictionary, where debuggers can easily access them, even
	       if they only occur in one translation unit.  This is the
	       default.

	   share-duplicated
	       Put only types that occur in multiple translation units into
	       the shared dictionary: types with only one definition go into
	       per-translation-unit dictionaries.  Types with ambiguous
	       definitions in multiple translation units always go into
	       per-translation-unit dictionaries.  This tends to make the CTF
	       larger, but may reduce the amount of CTF in the shared
	       dictionary.  For very large projects this may speed up opening
	       the CTF and save memory in the CTF consumer at runtime.

       --no-define-common
	   This option inhibits the assignment of addresses to common symbols.
	   The script command "INHIBIT_COMMON_ALLOCATION" has the same effect.

	   The --no-define-common option allows decoupling the decision to
	   assign addresses to Common symbols from the choice of the output
	   file type; otherwise a non-Relocatable output type forces assigning
	   addresses to Common symbols.	 Using --no-define-common allows
	   Common symbols that are referenced from a shared library to be
	   assigned addresses only in the main program.	 This eliminates the
	   unused duplicate space in the shared library, and also prevents any
	   possible confusion over resolving to the wrong duplicate when there
	   are many dynamic modules with specialized search paths for runtime
	   symbol resolution.

       --force-group-allocation
	   This option causes the linker to place section group members like
	   normal input sections, and to delete the section groups.  This is
	   the default behaviour for a final link but this option can be used
	   to change the behaviour of a relocatable link (-r).	The script
	   command "FORCE_GROUP_ALLOCATION" has the same effect.

       --defsym=symbol=expression
	   Create a global symbol in the output file, containing the absolute
	   address given by expression.	 You may use this option as many times
	   as necessary to define multiple symbols in the command line.	 A
	   limited form of arithmetic is supported for the expression in this
	   context: you may give a hexadecimal constant or the name of an
	   existing symbol, or use "+" and "-" to add or subtract hexadecimal
	   constants or symbols.  If you need more elaborate expressions,
	   consider using the linker command language from a script.  Note:
	   there should be no white space between symbol, the equals sign
	   ("="), and expression.

	   The linker processes --defsym arguments and -T arguments in order,
	   placing --defsym before -T will define the symbol before the linker
	   script from -T is processed, while placing --defsym after -T will
	   define the symbol after the linker script has been processed.  This
	   difference has consequences for expressions within the linker
	   script that use the --defsym symbols, which order is correct will
	   depend on what you are trying to achieve.

       --demangle[=style]
       --no-demangle
	   These options control whether to demangle symbol names in error
	   messages and other output.  When the linker is told to demangle, it
	   tries to present symbol names in a readable fashion: it strips
	   leading underscores if they are used by the object file format, and
	   converts C++ mangled symbol names into user readable names.
	   Different compilers have different mangling styles.	The optional
	   demangling style argument can be used to choose an appropriate
	   demangling style for your compiler.	The linker will demangle by
	   default unless the environment variable COLLECT_NO_DEMANGLE is set.
	   These options may be used to override the default.

       -Ifile
       --dynamic-linker=file
	   Set the name of the dynamic linker.	This is only meaningful when
	   generating dynamically linked ELF executables.  The default dynamic
	   linker is normally correct; don't use this unless you know what you
	   are doing.

       --no-dynamic-linker
	   When producing an executable file, omit the request for a dynamic
	   linker to be used at load-time.  This is only meaningful for ELF
	   executables that contain dynamic relocations, and usually requires
	   entry point code that is capable of processing these relocations.

       --embedded-relocs
	   This option is similar to the --emit-relocs option except that the
	   relocs are stored in a target-specific section.  This option is
	   only supported by the BFIN, CR16 and M68K targets.

       --disable-multiple-abs-defs
	   Do not allow multiple definitions with symbols included in filename
	   invoked by -R or --just-symbols

       --fatal-warnings
       --no-fatal-warnings
	   Treat all warnings as errors.  The default behaviour can be
	   restored with the option --no-fatal-warnings.

       -w
       --no-warnings
	   Do not display any warning or error messages.  This overrides
	   --fatal-warnings if it has been enabled.  This option can be used
	   when it is known that the output binary will not work, but there is
	   still a need to create it.

       --force-exe-suffix
	   Make sure that an output file has a .exe suffix.

	   If a successfully built fully linked output file does not have a
	   ".exe" or ".dll" suffix, this option forces the linker to copy the
	   output file to one of the same name with a ".exe" suffix. This
	   option is useful when using unmodified Unix makefiles on a
	   Microsoft Windows host, since some versions of Windows won't run an
	   image unless it ends in a ".exe" suffix.

       --gc-sections
       --no-gc-sections
	   Enable garbage collection of unused input sections.	It is ignored
	   on targets that do not support this option.	The default behaviour
	   (of not performing this garbage collection) can be restored by
	   specifying --no-gc-sections on the command line.  Note that garbage
	   collection for COFF and PE format targets is supported, but the
	   implementation is currently considered to be experimental.

	   --gc-sections decides which input sections are used by examining
	   symbols and relocations.  The section containing the entry symbol
	   and all sections containing symbols undefined on the command-line
	   will be kept, as will sections containing symbols referenced by
	   dynamic objects.  Note that when building shared libraries, the
	   linker must assume that any visible symbol is referenced.  Once
	   this initial set of sections has been determined, the linker
	   recursively marks as used any section referenced by their
	   relocations.	 See --entry, --undefined, and --gc-keep-exported.

	   This option can be set when doing a partial link (enabled with
	   option -r).	In this case the root of symbols kept must be
	   explicitly specified either by one of the options --entry,
	   --undefined, or --gc-keep-exported or by a "ENTRY" command in the
	   linker script.

	   As a GNU extension, ELF input sections marked with the
	   "SHF_GNU_RETAIN" flag will not be garbage collected.

       --print-gc-sections
       --no-print-gc-sections
	   List all sections removed by garbage collection.  The listing is
	   printed on stderr.  This option is only effective if garbage
	   collection has been enabled via the --gc-sections) option.  The
	   default behaviour (of not listing the sections that are removed)
	   can be restored by specifying --no-print-gc-sections on the command
	   line.

       --gc-keep-exported
	   When --gc-sections is enabled, this option prevents garbage
	   collection of unused input sections that contain global symbols
	   having default or protected visibility.  This option is intended to
	   be used for executables where unreferenced sections would otherwise
	   be garbage collected regardless of the external visibility of
	   contained symbols.  Note that this option has no effect when
	   linking shared objects since it is already the default behaviour.
	   This option is only supported for ELF format targets.

       --print-output-format
	   Print the name of the default output format (perhaps influenced by
	   other command-line options).	 This is the string that would appear
	   in an "OUTPUT_FORMAT" linker script command.

       --print-memory-usage
	   Print used size, total size and used size of memory regions created
	   with the MEMORY command.  This is useful on embedded targets to
	   have a quick view of amount of free memory.	The format of the
	   output has one headline and one line per region.  It is both human
	   readable and easily parsable by tools.  Here is an example of an
	   output:

		   Memory region	 Used Size  Region Size	 %age Used
				ROM:	    256 KB	   1 MB	    25.00%
				RAM:	      32 B	   2 GB	     0.00%

       --help
	   Print a summary of the command-line options on the standard output
	   and exit.

       --target-help
	   Print a summary of all target-specific options on the standard
	   output and exit.

       -Map=mapfile
	   Print a link map to the file mapfile.  See the description of the
	   -M option, above.  If mapfile is just the character "-" then the
	   map will be written to stdout.

	   Specifying a directory as mapfile causes the linker map to be
	   written as a file inside the directory.  Normally name of the file
	   inside the directory is computed as the basename of the output file
	   with ".map" appended.   If however the special character "%" is
	   used then this will be replaced by the full path of the output
	   file.  Additionally if there are any characters after the % symbol
	   then ".map" will no longer be appended.

		    -o foo.exe -Map=bar			 [Creates ./bar]
		    -o ../dir/foo.exe -Map=bar		 [Creates ./bar]
		    -o foo.exe -Map=../dir		 [Creates ../dir/foo.exe.map]
		    -o ../dir2/foo.exe -Map=../dir	 [Creates ../dir/foo.exe.map]
		    -o foo.exe -Map=%			 [Creates ./foo.exe.map]
		    -o ../dir/foo.exe -Map=%		 [Creates ../dir/foo.exe.map]
		    -o foo.exe -Map=%.bar		 [Creates ./foo.exe.bar]
		    -o ../dir/foo.exe -Map=%.bar	 [Creates ../dir/foo.exe.bar]
		    -o ../dir2/foo.exe -Map=../dir/%	 [Creates ../dir/../dir2/foo.exe.map]
		    -o ../dir2/foo.exe -Map=../dir/%.bar [Creates ../dir/../dir2/foo.exe.bar]

	   It is an error to specify more than one "%" character.

	   If the map file already exists then it will be overwritten by this
	   operation.

       --no-keep-memory
	   ld normally optimizes for speed over memory usage by caching the
	   symbol tables of input files in memory.  This option tells ld to
	   instead optimize for memory usage, by rereading the symbol tables
	   as necessary.  This may be required if ld runs out of memory space
	   while linking a large executable.

       --no-undefined
       -z defs
	   Report unresolved symbol references from regular object files.
	   This is done even if the linker is creating a non-symbolic shared
	   library.  The switch --[no-]allow-shlib-undefined controls the
	   behaviour for reporting unresolved references found in shared
	   libraries being linked in.

	   The effects of this option can be reverted by using "-z undefs".

       --allow-multiple-definition
       -z muldefs
	   Normally when a symbol is defined multiple times, the linker will
	   report a fatal error. These options allow multiple definitions and
	   the first definition will be used.

       --allow-shlib-undefined
       --no-allow-shlib-undefined
	   Allows or disallows undefined symbols in shared libraries.  This
	   switch is similar to --no-undefined except that it determines the
	   behaviour when the undefined symbols are in a shared library rather
	   than a regular object file.	It does not affect how undefined
	   symbols in regular object files are handled.

	   The default behaviour is to report errors for any undefined symbols
	   referenced in shared libraries if the linker is being used to
	   create an executable, but to allow them if the linker is being used
	   to create a shared library.

	   The reasons for allowing undefined symbol references in shared
	   libraries specified at link time are that:

	   •   A shared library specified at link time may not be the same as
	       the one that is available at load time, so the symbol might
	       actually be resolvable at load time.

	   •   There are some operating systems, eg BeOS and HPPA, where
	       undefined symbols in shared libraries are normal.

	       The BeOS kernel for example patches shared libraries at load
	       time to select whichever function is most appropriate for the
	       current architecture.  This is used, for example, to
	       dynamically select an appropriate memset function.

       --error-handling-script=scriptname
	   If this option is provided then the linker will invoke scriptname
	   whenever an error is encountered.  Currently however only two kinds
	   of error are supported: missing symbols and missing libraries.  Two
	   arguments will be passed to script: the keyword "undefined-symbol"
	   or `missing-lib" and the name of the undefined symbol or missing
	   library.  The intention is that the script will provide suggestions
	   to the user as to where the symbol or library might be found.
	   After the script has finished then the normal linker error message
	   will be displayed.

	   The availability of this option is controlled by a configure time
	   switch, so it may not be present in specific implementations.

       --no-undefined-version
	   Normally when a symbol has an undefined version, the linker will
	   ignore it. This option disallows symbols with undefined version and
	   a fatal error will be issued instead.

       --default-symver
	   Create and use a default symbol version (the soname) for
	   unversioned exported symbols.

       --default-imported-symver
	   Create and use a default symbol version (the soname) for
	   unversioned imported symbols.

       --no-warn-mismatch
	   Normally ld will give an error if you try to link together input
	   files that are mismatched for some reason, perhaps because they
	   have been compiled for different processors or for different
	   endiannesses.  This option tells ld that it should silently permit
	   such possible errors.  This option should only be used with care,
	   in cases when you have taken some special action that ensures that
	   the linker errors are inappropriate.

       --no-warn-search-mismatch
	   Normally ld will give a warning if it finds an incompatible library
	   during a library search.  This option silences the warning.

       --no-whole-archive
	   Turn off the effect of the --whole-archive option for subsequent
	   archive files.

       --noinhibit-exec
	   Retain the executable output file whenever it is still usable.
	   Normally, the linker will not produce an output file if it
	   encounters errors during the link process; it exits without writing
	   an output file when it issues any error whatsoever.

       -nostdlib
	   Only search library directories explicitly specified on the command
	   line.  Library directories specified in linker scripts (including
	   linker scripts specified on the command line) are ignored.

       --oformat=output-format
	   ld may be configured to support more than one kind of object file.
	   If your ld is configured this way, you can use the --oformat option
	   to specify the binary format for the output object file.  Even when
	   ld is configured to support alternative object formats, you don't
	   usually need to specify this, as ld should be configured to produce
	   as a default output format the most usual format on each machine.
	   output-format is a text string, the name of a particular format
	   supported by the BFD libraries.  (You can list the available binary
	   formats with objdump -i.)  The script command "OUTPUT_FORMAT" can
	   also specify the output format, but this option overrides it.

       --out-implib file
	   Create an import library in file corresponding to the executable
	   the linker is generating (eg. a DLL or ELF program).	 This import
	   library (which should be called "*.dll.a" or "*.a" for DLLs) may be
	   used to link clients against the generated executable; this
	   behaviour makes it possible to skip a separate import library
	   creation step (eg. "dlltool" for DLLs).  This option is only
	   available for the i386 PE and ELF targetted ports of the linker.

       -pie
       --pic-executable
	   Create a position independent executable.  This is currently only
	   supported on ELF platforms.	Position independent executables are
	   relocated by the dynamic linker to the virtual address the OS
	   chooses for them, which can vary between invocations.  They are
	   marked ET_DYN in the ELF file header, but differ from shared
	   libraries in a number of ways.  In particular, defined symbols in a
	   PIE by default can not be overridden by another object as they can
	   be in a shared library.

       -no-pie
	   Create a position dependent executable.  This is the default.

       -qmagic
	   This option is ignored for Linux compatibility.

       -Qy This option is ignored for SVR4 compatibility.

       --relax
       --no-relax
	   An option with machine dependent effects.  This option is only
	   supported on a few targets.

	   On some platforms the --relax option performs target specific,
	   global optimizations that become possible when the linker resolves
	   addressing in the program, such as relaxing address modes,
	   synthesizing new instructions, selecting shorter version of current
	   instructions, and combining constant values.

	   On some platforms these link time global optimizations may make
	   symbolic debugging of the resulting executable impossible.  This is
	   known to be the case for the Matsushita MN10200 and MN10300 family
	   of processors.

	   On platforms where the feature is supported, the option --no-relax
	   will disable it.

	   On platforms where the feature is not supported, both --relax and
	   --no-relax are accepted, but ignored.

       --retain-symbols-file=filename
	   Retain only the symbols listed in the file filename, discarding all
	   others.  filename is simply a flat file, with one symbol name per
	   line.  This option is especially useful in environments (such as
	   VxWorks) where a large global symbol table is accumulated
	   gradually, to conserve run-time memory.

	   --retain-symbols-file does not discard undefined symbols, or
	   symbols needed for relocations.

	   You may only specify --retain-symbols-file once in the command
	   line.  It overrides -s and -S.

       -rpath=dir
	   Add a directory to the runtime library search path.	This is used
	   when linking an ELF executable with shared objects.	All -rpath
	   arguments are concatenated and passed to the runtime linker, which
	   uses them to locate shared objects at runtime.

	   The -rpath option is also used when locating shared objects which
	   are needed by shared objects explicitly included in the link; see
	   the description of the -rpath-link option.  Searching -rpath in
	   this way is only supported by native linkers and cross linkers
	   which have been configured with the --with-sysroot option.

	   If -rpath is not used when linking an ELF executable, the contents
	   of the environment variable "LD_RUN_PATH" will be used if it is
	   defined.

	   The -rpath option may also be used on SunOS.	 By default, on SunOS,
	   the linker will form a runtime search path out of all the -L
	   options it is given.	 If a -rpath option is used, the runtime
	   search path will be formed exclusively using the -rpath options,
	   ignoring the -L options.  This can be useful when using gcc, which
	   adds many -L options which may be on NFS mounted file systems.

	   For compatibility with other ELF linkers, if the -R option is
	   followed by a directory name, rather than a file name, it is
	   treated as the -rpath option.

       -rpath-link=dir
	   When using ELF or SunOS, one shared library may require another.
	   This happens when an "ld -shared" link includes a shared library as
	   one of the input files.

	   When the linker encounters such a dependency when doing a
	   non-shared, non-relocatable link, it will automatically try to
	   locate the required shared library and include it in the link, if
	   it is not included explicitly.  In such a case, several directories
	   are searched as described below.  The -rpath-link option specifies
	   the first set of directories to search.  This option may specify a
	   sequence of directory names either by providing a list of names
	   separated by colons, or by appearing multiple times.

	   The tokens $ORIGIN and $LIB can appear in these search directories.
	   They will be replaced by the full path to the directory containing
	   the program or shared object in the case of $ORIGIN and either lib
	   - for 32-bit binaries - or lib64 - for 64-bit binaries - in the
	   case of $LIB.

	   The alternative form of these tokens - ${ORIGIN} and ${LIB} can
	   also be used.  The token $PLATFORM is not supported.

	   The --rpath-link option should be used with caution as it overrides
	   the search path that may have been hard compiled into a shared
	   library.  In such a case it is possible to unintentionally use a
	   different search path than the runtime linker would have used.

	   When additional shared libraries are required, the linker will
	   search directories in the order listed below in order to find them.
	   Note however that this only applies to additional libraries needed
	   to satisfy already included shared libraries.  It does not apply to
	   libraries that are included via the -l command line option.
	   Searches for -l libraries are only conducted in directories
	   specified by the -L option.

	   1.  Any directories specified by -rpath-link options.

	   2.  Any directories specified by -rpath options.  The difference
	       between -rpath and -rpath-link is that directories specified by
	       -rpath options are included in the executable and used at
	       runtime, whereas the -rpath-link option is only effective at
	       link time. Searching -rpath in this way is only supported by
	       native linkers and cross linkers which have been configured
	       with the --with-sysroot option.

	   3.  On an ELF system, for native linkers, if the -rpath and
	       -rpath-link options were not used, search the contents of the
	       environment variable "LD_RUN_PATH".

	   4.  On SunOS, if the -rpath option was not used, search any
	       directories specified using -L options.

	   5.  For a native linker, search the contents of the environment
	       variable "LD_LIBRARY_PATH".

	   6.  For a native ELF linker, the directories in "DT_RUNPATH" or
	       "DT_RPATH" of a shared library are searched for shared
	       libraries needed by it. The "DT_RPATH" entries are ignored if
	       "DT_RUNPATH" entries exist.

	   7.  For a linker for a Linux system, if the file /etc/ld.so.conf
	       exists, the list of directories found in that file.  Note: the
	       path to this file is prefixed with the "sysroot" value, if that
	       is defined, and then any "prefix" string if the linker was
	       configured with the --prefix=<path> option.

	   8.  For a native linker on a FreeBSD system, any directories
	       specified by the "_PATH_ELF_HINTS" macro defined in the
	       elf-hints.h header file.

	   9.  Any directories specified by a "SEARCH_DIR" command in a linker
	       script given on the command line, including scripts specified
	       by -T (but not -dT).

	   10. The default directories, normally /lib and /usr/lib.

	   11. Any directories specified by a plugin
	       LDPT_SET_EXTRA_LIBRARY_PATH.

	   12. Any directories specified by a "SEARCH_DIR" command in a
	       default linker script.

	   Note however on Linux based systems there is an additional caveat:
	   If the --as-needed option is active and a shared library is located
	   which would normally satisfy the search and this library does not
	   have DT_NEEDED tag for libc.so and there is a shared library later
	   on in the set of search directories which also satisfies the search
	   and this second shared library does have a DT_NEEDED tag for
	   libc.so then the second library will be selected instead of the
	   first.

	   If the required shared library is not found, the linker will issue
	   a warning and continue with the link.

       --section-ordering-file=script
	   This option is used to augment the current linker script with
	   additional mapping of input sections to output sections.  This file
	   must use the same syntax for "SECTIONS" as is used in normal linker
	   scripts, but it should not do anything other than place input
	   sections into output sections. @pxref{SECTIONS}

	   A second constraint on the section ordering script is that it can
	   only reference output sections that are already defined by
	   whichever linker script is currently in use.	 (Ie the default
	   linker script or a script specified on the command line).  The
	   benefit of the section ordering script however is that the input
	   sections are mapped to the start of the output sections, so that
	   they can ensure the ordering of sections in the output section.
	   For example, imagine that the default linker script looks like
	   this:

		   SECTIONS {
		     .text : { *(.text.hot) ; *(.text .text.*) }
		     .data : { *(.data.big) ; *(.data .data.*) }
		     }

	   Then if a section ordering file like this is used:

		     .text : { *(.text.first) ; *(.text.z*) }
		     .data : { foo.o(.data.first) ; *(.data.small) }

	   This would be equivalent to a linker script like this:

		   SECTIONS {
		     .text : { *(.text.first) ; *(.text.z*) ; *(.text.hot) ; *(.text .text.*) }
		     .data : { foo.o(.data.first) ; *(.data.small) ; *(.data.big) ; *(.data .data.*) }
		     }

	   The advantage of the section ordering file is that it can be used
	   to order those sections that matter to the user without having to
	   worry about any other sections, or memory regions, or anything
	   else.

       -shared
       -Bshareable
	   Create a shared library.  This is currently only supported on ELF,
	   XCOFF and SunOS platforms.  On SunOS, the linker will automatically
	   create a shared library if the -e option is not used and there are
	   undefined symbols in the link.

       --sort-common
       --sort-common=ascending
       --sort-common=descending
	   This option tells ld to sort the common symbols by alignment in
	   ascending or descending order when it places them in the
	   appropriate output sections.	 The symbol alignments considered are
	   sixteen-byte or larger, eight-byte, four-byte, two-byte, and
	   one-byte. This is to prevent gaps between symbols due to alignment
	   constraints.	 If no sorting order is specified, then descending
	   order is assumed.

       --sort-section=name
	   This option will apply "SORT_BY_NAME" to all wildcard section
	   patterns in the linker script.

       --sort-section=alignment
	   This option will apply "SORT_BY_ALIGNMENT" to all wildcard section
	   patterns in the linker script.

       --spare-dynamic-tags=count
	   This option specifies the number of empty slots to leave in the
	   .dynamic section of ELF shared objects.  Empty slots may be needed
	   by post processing tools, such as the prelinker.  The default is 5.

       --split-by-file[=size]
	   Similar to --split-by-reloc but creates a new output section for
	   each input file when size is reached.  size defaults to a size of 1
	   if not given.

       --split-by-reloc[=count]
	   Tries to creates extra sections in the output file so that no
	   single output section in the file contains more than count
	   relocations.	 This is useful when generating huge relocatable files
	   for downloading into certain real time kernels with the COFF object
	   file format; since COFF cannot represent more than 65535
	   relocations in a single section.  Note that this will fail to work
	   with object file formats which do not support arbitrary sections.
	   The linker will not split up individual input sections for
	   redistribution, so if a single input section contains more than
	   count relocations one output section will contain that many
	   relocations.	 count defaults to a value of 32768.

       --stats
	   Compute and display statistics about the operation of the linker,
	   such as execution time and memory usage.

       --sysroot=directory
	   Use directory as the location of the sysroot, overriding the
	   configure-time default.  This option is only supported by linkers
	   that were configured using --with-sysroot.

       --task-link
	   This is used by COFF/PE based targets to create a task-linked
	   object file where all of the global symbols have been converted to
	   statics.

       --traditional-format
	   For some targets, the output of ld is different in some ways from
	   the output of some existing linker.	This switch requests ld to use
	   the traditional format instead.

	   For example, on SunOS, ld combines duplicate entries in the symbol
	   string table.  This can reduce the size of an output file with full
	   debugging information by over 30 percent.  Unfortunately, the SunOS
	   "dbx" program can not read the resulting program ("gdb" has no
	   trouble).  The --traditional-format switch tells ld to not combine
	   duplicate entries.

       --section-start=sectionname=org
	   Locate a section in the output file at the absolute address given
	   by org.  You may use this option as many times as necessary to
	   locate multiple sections in the command line.  org must be a single
	   hexadecimal integer; for compatibility with other linkers, you may
	   omit the leading 0x usually associated with hexadecimal values.
	   Note: there should be no white space between sectionname, the
	   equals sign ("="), and org.

       --image-base=org
	   When using ELF, same as -Ttext-segment, with both options
	   effectively setting the base address of the ELF executable.

	   When using PE, use value as the base address of your program or
	   dll.	 This is the lowest memory location that will be used when
	   your program or dll is loaded.  To reduce the need to relocate and
	   improve performance of your dlls, each should have a unique base
	   address and not overlap any other dlls.  The default is 0x400000
	   for executables, and 0x10000000 for dlls.

       -Tbss=org
       -Tdata=org
       -Ttext=org
	   Same as --section-start, with ".bss", ".data" or ".text" as the
	   sectionname.

       -Ttext-segment=org
	   When creating an ELF executable, it will set the address of the
	   first byte of the first segment.  Note that when -pie is used with
	   -Ttext-segment=org, the output executable is marked ET_EXEC so that
	   the address of the first byte of the text segment will be
	   guaranteed to be org at run time.

       -Trodata-segment=org
	   When creating an ELF executable or shared object for a target where
	   the read-only data is in its own segment separate from the
	   executable text, it will set the address of the first byte of the
	   read-only data segment.

       -Tldata-segment=org
	   When creating an ELF executable or shared object for x86-64 medium
	   memory model, it will set the address of the first byte of the
	   ldata segment.

       --unresolved-symbols=method
	   Determine how to handle unresolved symbols.	There are four
	   possible values for method:

	   ignore-all
	       Do not report any unresolved symbols.

	   report-all
	       Report all unresolved symbols.  This is the default.

	   ignore-in-object-files
	       Report unresolved symbols that are contained in shared
	       libraries, but ignore them if they come from regular object
	       files.

	   ignore-in-shared-libs
	       Report unresolved symbols that come from regular object files,
	       but ignore them if they come from shared libraries.  This can
	       be useful when creating a dynamic binary and it is known that
	       all the shared libraries that it should be referencing are
	       included on the linker's command line.

	   The behaviour for shared libraries on their own can also be
	   controlled by the --[no-]allow-shlib-undefined option.

	   Normally the linker will generate an error message for each
	   reported unresolved symbol but the option --warn-unresolved-symbols
	   can change this to a warning.

       --dll-verbose
       --verbose[=NUMBER]
	   Display the version number for ld and list the linker emulations
	   supported.  Display which input files can and cannot be opened.
	   Display the linker script being used by the linker. If the optional
	   NUMBER argument > 1, plugin symbol status will also be displayed.

       --version-script=version-scriptfile
	   Specify the name of a version script to the linker.	This is
	   typically used when creating shared libraries to specify additional
	   information about the version hierarchy for the library being
	   created.  This option is only fully supported on ELF platforms
	   which support shared libraries; see VERSION.	 It is partially
	   supported on PE platforms, which can use version scripts to filter
	   symbol visibility in auto-export mode: any symbols marked local in
	   the version script will not be exported.

       --warn-common
	   Warn when a common symbol is combined with another common symbol or
	   with a symbol definition.  Unix linkers allow this somewhat sloppy
	   practice, but linkers on some other operating systems do not.  This
	   option allows you to find potential problems from combining global
	   symbols.  Unfortunately, some C libraries use this practice, so you
	   may get some warnings about symbols in the libraries as well as in
	   your programs.

	   There are three kinds of global symbols, illustrated here by C
	   examples:

	   int i = 1;
	       A definition, which goes in the initialized data section of the
	       output file.

	   extern int i;
	       An undefined reference, which does not allocate space.  There
	       must be either a definition or a common symbol for the variable
	       somewhere.

	   int i;
	       A common symbol.	 If there are only (one or more) common
	       symbols for a variable, it goes in the uninitialized data area
	       of the output file.  The linker merges multiple common symbols
	       for the same variable into a single symbol.  If they are of
	       different sizes, it picks the largest size.  The linker turns a
	       common symbol into a declaration, if there is a definition of
	       the same variable.

	   The --warn-common option can produce five kinds of warnings.	 Each
	   warning consists of a pair of lines: the first describes the symbol
	   just encountered, and the second describes the previous symbol
	   encountered with the same name.  One or both of the two symbols
	   will be a common symbol.

	   1.  Turning a common symbol into a reference, because there is
	       already a definition for the symbol.

		       <file>(<section>): warning: common of `<symbol>'
			  overridden by definition
		       <file>(<section>): warning: defined here

	   2.  Turning a common symbol into a reference, because a later
	       definition for the symbol is encountered.  This is the same as
	       the previous case, except that the symbols are encountered in a
	       different order.

		       <file>(<section>): warning: definition of `<symbol>'
			  overriding common
		       <file>(<section>): warning: common is here

	   3.  Merging a common symbol with a previous same-sized common
	       symbol.

		       <file>(<section>): warning: multiple common
			  of `<symbol>'
		       <file>(<section>): warning: previous common is here

	   4.  Merging a common symbol with a previous larger common symbol.

		       <file>(<section>): warning: common of `<symbol>'
			  overridden by larger common
		       <file>(<section>): warning: larger common is here

	   5.  Merging a common symbol with a previous smaller common symbol.
	       This is the same as the previous case, except that the symbols
	       are encountered in a different order.

		       <file>(<section>): warning: common of `<symbol>'
			  overriding smaller common
		       <file>(<section>): warning: smaller common is here

       --warn-constructors
	   Warn if any global constructors are used.  This is only useful for
	   a few object file formats.  For formats like COFF or ELF, the
	   linker can not detect the use of global constructors.

       --warn-execstack
       --warn-execstack-objects
       --no-warn-execstack
	   On ELF platforms the linker may generate warning messages if it is
	   asked to create an output file that contains an executable stack.
	   There are three possible states:

	   1.  Do not generate any warnings.

	   2.  Always generate warnings, even if the executable stack is
	       requested via the -z execstack command line option.

	   3.  Only generate a warning if an object file requests an
	       executable stack, but not if the -z execstack option is used.

	   The default state depends upon how the linker was configured when
	   it was built.  The --no-warn-execstack option always puts the
	   linker into the no-warnings state.  The --warn-execstack option
	   puts the linker into the warn-always state.	The
	   --warn-execstack-objects option puts the linker into the
	   warn-for-object-files-only state.

	   Note: ELF format input files can specify that they need an
	   executable stack by having a .note.GNU-stack section with the
	   executable bit set in its section flags.  They can specify that
	   they do not need an executable stack by having the same section,
	   but without the executable flag bit set.  If an input file does not
	   have a .note.GNU-stack section then the default behaviour is target
	   specific.  For some targets, then absence of such a section implies
	   that an executable stack is required.  This is often a problem for
	   hand crafted assembler files.

       --error-execstack
       --no-error-execstack
	   If the linker is going to generate a warning message about an
	   executable stack then the --error-execstack option will instead
	   change that warning into an error.  Note - this option does not
	   change the linker's execstack warning generation state.  Use
	   --warn-execstack or --warn-execstack-objects to set a specific
	   warning state.

	   The --no-error-execstack option will restore the default behaviour
	   of generating warning messages.

       --warn-multiple-gp
	   Warn if multiple global pointer values are required in the output
	   file.  This is only meaningful for certain processors, such as the
	   Alpha.  Specifically, some processors put large-valued constants in
	   a special section.  A special register (the global pointer) points
	   into the middle of this section, so that constants can be loaded
	   efficiently via a base-register relative addressing mode.  Since
	   the offset in base-register relative mode is fixed and relatively
	   small (e.g., 16 bits), this limits the maximum size of the constant
	   pool.  Thus, in large programs, it is often necessary to use
	   multiple global pointer values in order to be able to address all
	   possible constants.	This option causes a warning to be issued
	   whenever this case occurs.

       --warn-once
	   Only warn once for each undefined symbol, rather than once per
	   module which refers to it.

       --warn-rwx-segments
       --no-warn-rwx-segments
	   Warn if the linker creates a loadable, non-zero sized segment that
	   has all three of the read, write and execute permission flags set.
	   Such a segment represents a potential security vulnerability.  In
	   addition warnings will be generated if a thread local storage
	   segment is created with the execute permission flag set, regardless
	   of whether or not it has the read and/or write flags set.

	   These warnings are enabled by default.  They can be disabled via
	   the --no-warn-rwx-segments option and re-enabled via the
	   --warn-rwx-segments option.

       --error-rwx-segments
       --no-error-rwx-segments
	   If the linker is going to generate a warning message about an
	   executable, writeable segment, or an executable TLS segment, then
	   the --error-rwx-segments option will turn this warning into an
	   error instead.  The --no-error-rwx-segments option will restore the
	   default behaviour of just generating a warning message.

	   Note - the --error-rwx-segments option does not by itself turn on
	   warnings about these segments.  These warnings are either enabled
	   by default, if the linker was configured that way, or via the
	   --warn-rwx-segments command line option.

       --warn-section-align
	   Warn if the address of an output section is changed because of
	   alignment.  Typically, the alignment will be set by an input
	   section.  The address will only be changed if it not explicitly
	   specified; that is, if the "SECTIONS" command does not specify a
	   start address for the section.

       --warn-textrel
	   Warn if the linker adds DT_TEXTREL to a position-independent
	   executable or shared object.

       --warn-alternate-em
	   Warn if an object has alternate ELF machine code.

       --warn-unresolved-symbols
	   If the linker is going to report an unresolved symbol (see the
	   option --unresolved-symbols) it will normally generate an error.
	   This option makes it generate a warning instead.

       --error-unresolved-symbols
	   This restores the linker's default behaviour of generating errors
	   when it is reporting unresolved symbols.

       --whole-archive
	   For each archive mentioned on the command line after the
	   --whole-archive option, include every object file in the archive in
	   the link, rather than searching the archive for the required object
	   files.  This is normally used to turn an archive file into a shared
	   library, forcing every object to be included in the resulting
	   shared library.  This option may be used more than once.

	   Two notes when using this option from gcc: First, gcc doesn't know
	   about this option, so you have to use -Wl,-whole-archive.  Second,
	   don't forget to use -Wl,-no-whole-archive after your list of
	   archives, because gcc will add its own list of archives to your
	   link and you may not want this flag to affect those as well.

       --wrap=symbol
	   Use a wrapper function for symbol.  Any undefined reference to
	   symbol will be resolved to "__wrap_symbol".	Any undefined
	   reference to "__real_symbol" will be resolved to symbol.

	   This can be used to provide a wrapper for a system function.	 The
	   wrapper function should be called "__wrap_symbol".  If it wishes to
	   call the system function, it should call "__real_symbol".

	   Here is a trivial example:

		   void *
		   __wrap_malloc (size_t c)
		   {
		     printf ("malloc called with %zu\n", c);
		     return __real_malloc (c);
		   }

	   If you link other code with this file using --wrap malloc, then all
	   calls to "malloc" will call the function "__wrap_malloc" instead.
	   The call to "__real_malloc" in "__wrap_malloc" will call the real
	   "malloc" function.

	   You may wish to provide a "__real_malloc" function as well, so that
	   links without the --wrap option will succeed.  If you do this, you
	   should not put the definition of "__real_malloc" in the same file
	   as "__wrap_malloc"; if you do, the assembler may resolve the call
	   before the linker has a chance to wrap it to "malloc".

	   Only undefined references are replaced by the linker.  So,
	   translation unit internal references to symbol are not resolved to
	   "__wrap_symbol".  In the next example, the call to "f" in "g" is
	   not resolved to "__wrap_f".

		   int
		   f (void)
		   {
		     return 123;
		   }

		   int
		   g (void)
		   {
		     return f();
		   }

       --eh-frame-hdr
       --no-eh-frame-hdr
	   Request (--eh-frame-hdr) or suppress (--no-eh-frame-hdr) the
	   creation of ".eh_frame_hdr" section and ELF "PT_GNU_EH_FRAME"
	   segment header.

       --no-ld-generated-unwind-info
	   Request creation of ".eh_frame" unwind info for linker generated
	   code sections like PLT.  This option is on by default if linker
	   generated unwind info is supported.	This option also controls the
	   generation of ".sframe" stack trace info for linker generated code
	   sections like PLT.

       --enable-new-dtags
       --disable-new-dtags
	   This linker can create the new dynamic tags in ELF. But the older
	   ELF systems may not understand them. If you specify
	   --enable-new-dtags, the new dynamic tags will be created as needed
	   and older dynamic tags will be omitted.  If you specify
	   --disable-new-dtags, no new dynamic tags will be created. By
	   default, the new dynamic tags are not created. Note that those
	   options are only available for ELF systems.

       --hash-size=number
	   Set the default size of the linker's hash tables to a prime number
	   close to number.  Increasing this value can reduce the length of
	   time it takes the linker to perform its tasks, at the expense of
	   increasing the linker's memory requirements.	 Similarly reducing
	   this value can reduce the memory requirements at the expense of
	   speed.

       --hash-style=style
	   Set the type of linker's hash table(s).  style can be either "sysv"
	   for classic ELF ".hash" section, "gnu" for new style GNU
	   ".gnu.hash" section or "both" for both the classic ELF ".hash" and
	   new style GNU ".gnu.hash" hash tables.  The default depends upon
	   how the linker was configured, but for most Linux based systems it
	   will be "both".

       --compress-debug-sections=none
       --compress-debug-sections=zlib
       --compress-debug-sections=zlib-gnu
       --compress-debug-sections=zlib-gabi
       --compress-debug-sections=zstd
	   On ELF platforms, these options control how DWARF debug sections
	   are compressed using zlib.

	   --compress-debug-sections=none doesn't compress DWARF debug
	   sections.  --compress-debug-sections=zlib-gnu compresses DWARF
	   debug sections and renames them to begin with .zdebug instead of
	   .debug.  --compress-debug-sections=zlib-gabi also compresses DWARF
	   debug sections, but rather than renaming them it sets the
	   SHF_COMPRESSED flag in the sections' headers.

	   The --compress-debug-sections=zlib option is an alias for
	   --compress-debug-sections=zlib-gabi.

	   --compress-debug-sections=zstd compresses DWARF debug sections
	   using zstd.

	   Note that this option overrides any compression in input debug
	   sections, so if a binary is linked with
	   --compress-debug-sections=none for example, then any compressed
	   debug sections in input files will be uncompressed before they are
	   copied into the output binary.

	   The default compression behaviour varies depending upon the target
	   involved and the configure options used to build the toolchain.
	   The default can be determined by examining the output from the
	   linker's --help option.

       --reduce-memory-overheads
	   This option reduces memory requirements at ld runtime, at the
	   expense of linking speed.  This was introduced to select the old
	   O(n^2) algorithm for link map file generation, rather than the new
	   O(n) algorithm which uses about 40% more memory for symbol storage.

	   Another effect of the switch is to set the default hash table size
	   to 1021, which again saves memory at the cost of lengthening the
	   linker's run time.  This is not done however if the --hash-size
	   switch has been used.

	   The --reduce-memory-overheads switch may be also be used to enable
	   other tradeoffs in future versions of the linker.

       --max-cache-size=size
	   ld normally caches the relocation information and symbol tables of
	   input files in memory with the unlimited size.  This option sets
	   the maximum cache size to size.

       --build-id
       --build-id=style
	   Request the creation of a ".note.gnu.build-id" ELF note section or
	   a ".buildid" COFF section.  The contents of the note are unique
	   bits identifying this linked file.  style can be "uuid" to use 128
	   random bits; "sha1" to use a 160-bit SHA1 hash, "md5" to use a
	   128-bit MD5 hash, or "xx" to use a 128-bit XXHASH on the normative
	   parts of the output contents; or "0xhexstring" to use a chosen bit
	   string specified as an even number of hexadecimal digits ("-" and
	   ":" characters between digit pairs are ignored).  If style is
	   omitted, "sha1" is used.

	   The "md5", "sha1", and "xx" styles produces an identifier that is
	   always the same in an identical output file, but are almost
	   certainly unique among all nonidentical output files.  It is not
	   intended to be compared as a checksum for the file's contents.  A
	   linked file may be changed later by other tools, but the build ID
	   bit string identifying the original linked file does not change.

	   Passing "none" for style disables the setting from any "--build-id"
	   options earlier on the command line.

       --package-metadata=JSON
	   Request the creation of a ".note.package" ELF note section.	The
	   contents of the note are in JSON format, as per the package
	   metadata specification.  For more information see:
	   https://systemd.io/ELF_PACKAGE_METADATA/ The JSON argument support
	   percent-encoding and following %[string] (where string refers to
	   the name in HTML's Named Character References) encoding: %[comma]
	   for ,, %[lbrace] for {, %[quot] for ", %[rbrace] for }, and
	   %[space] for space character.  If the JSON argument is
	   missing/empty then this will disable the creation of the metadata
	   note, if one had been enabled by an earlier occurrence of the
	   --package-metadata option.  If the linker has been built with
	   libjansson, then the JSON string will be validated.

       The i386 PE linker supports the -shared option, which causes the output
       to be a dynamically linked library (DLL) instead of a normal
       executable.  You should name the output "*.dll" when you use this
       option.	In addition, the linker fully supports the standard "*.def"
       files, which may be specified on the linker command line like an object
       file (in fact, it should precede archives it exports symbols from, to
       ensure that they get linked in, just like a normal object file).

       In addition to the options common to all targets, the i386 PE linker
       support additional command-line options that are specific to the i386
       PE target.  Options that take values may be separated from their values
       by either a space or an equals sign.

       --add-stdcall-alias
	   If given, symbols with a stdcall suffix (@nn) will be exported
	   as-is and also with the suffix stripped.  [This option is specific
	   to the i386 PE targeted port of the linker]

       --base-file file
	   Use file as the name of a file in which to save the base addresses
	   of all the relocations needed for generating DLLs with dlltool.
	   [This is an i386 PE specific option]

       --dll
	   Create a DLL instead of a regular executable.  You may also use
	   -shared or specify a "LIBRARY" in a given ".def" file.  [This
	   option is specific to the i386 PE targeted port of the linker]

       --enable-long-section-names
       --disable-long-section-names
	   The PE variants of the COFF object format add an extension that
	   permits the use of section names longer than eight characters, the
	   normal limit for COFF.  By default, these names are only allowed in
	   object files, as fully-linked executable images do not carry the
	   COFF string table required to support the longer names.  As a GNU
	   extension, it is possible to allow their use in executable images
	   as well, or to (probably pointlessly!)  disallow it in object
	   files, by using these two options.  Executable images generated
	   with these long section names are slightly non-standard, carrying
	   as they do a string table, and may generate confusing output when
	   examined with non-GNU PE-aware tools, such as file viewers and
	   dumpers.  However, GDB relies on the use of PE long section names
	   to find Dwarf-2 debug information sections in an executable image
	   at runtime, and so if neither option is specified on the
	   command-line, ld will enable long section names, overriding the
	   default and technically correct behaviour, when it finds the
	   presence of debug information while linking an executable image and
	   not stripping symbols.  [This option is valid for all PE targeted
	   ports of the linker]

       --enable-stdcall-fixup
       --disable-stdcall-fixup
	   If the link finds a symbol that it cannot resolve, it will attempt
	   to do "fuzzy linking" by looking for another defined symbol that
	   differs only in the format of the symbol name (cdecl vs stdcall)
	   and will resolve that symbol by linking to the match.  For example,
	   the undefined symbol "_foo" might be linked to the function
	   "_foo@12", or the undefined symbol "_bar@16" might be linked to the
	   function "_bar".  When the linker does this, it prints a warning,
	   since it normally should have failed to link, but sometimes import
	   libraries generated from third-party dlls may need this feature to
	   be usable.  If you specify --enable-stdcall-fixup, this feature is
	   fully enabled and warnings are not printed.	If you specify
	   --disable-stdcall-fixup, this feature is disabled and such
	   mismatches are considered to be errors.  [This option is specific
	   to the i386 PE targeted port of the linker]

       --leading-underscore
       --no-leading-underscore
	   For most targets default symbol-prefix is an underscore and is
	   defined in target's description. By this option it is possible to
	   disable/enable the default underscore symbol-prefix.

       --export-all-symbols
	   If given, all global symbols in the objects used to build a DLL
	   will be exported by the DLL.	 Note that this is the default if
	   there otherwise wouldn't be any exported symbols.  When symbols are
	   explicitly exported via DEF files or implicitly exported via
	   function attributes, the default is to not export anything else
	   unless this option is given.	 Note that the symbols "DllMain@12",
	   "DllEntryPoint@0", "DllMainCRTStartup@12", and "impure_ptr" will
	   not be automatically exported.  Also, symbols imported from other
	   DLLs will not be re-exported, nor will symbols specifying the DLL's
	   internal layout such as those beginning with "_head_" or ending
	   with "_iname".  In addition, no symbols from "libgcc", "libstd++",
	   "libmingw32", or "crtX.o" will be exported.	Symbols whose names
	   begin with "__rtti_" or "__builtin_" will not be exported, to help
	   with C++ DLLs.  Finally, there is an extensive list of
	   cygwin-private symbols that are not exported (obviously, this
	   applies on when building DLLs for cygwin targets).  These
	   cygwin-excludes are: "_cygwin_dll_entry@12",
	   "_cygwin_crt0_common@8", "_cygwin_noncygwin_dll_entry@12",
	   "_fmode", "_impure_ptr", "cygwin_attach_dll", "cygwin_premain0",
	   "cygwin_premain1", "cygwin_premain2", "cygwin_premain3", and
	   "environ".  [This option is specific to the i386 PE targeted port
	   of the linker]

       --exclude-symbols symbol,symbol,...
	   Specifies a list of symbols which should not be automatically
	   exported.  The symbol names may be delimited by commas or colons.
	   [This option is specific to the i386 PE targeted port of the
	   linker]

       --exclude-all-symbols
	   Specifies no symbols should be automatically exported.  [This
	   option is specific to the i386 PE targeted port of the linker]

       --file-alignment
	   Specify the file alignment.	Sections in the file will always begin
	   at file offsets which are multiples of this number.	This defaults
	   to 512.  [This option is specific to the i386 PE targeted port of
	   the linker]

       --heap reserve
       --heap reserve,commit
	   Specify the number of bytes of memory to reserve (and optionally
	   commit) to be used as heap for this program.	 The default is 1MB
	   reserved, 4K committed.  [This option is specific to the i386 PE
	   targeted port of the linker]

       --kill-at
	   If given, the stdcall suffixes (@nn) will be stripped from symbols
	   before they are exported.  [This option is specific to the i386 PE
	   targeted port of the linker]

       --large-address-aware
	   If given, the appropriate bit in the "Characteristics" field of the
	   COFF header is set to indicate that this executable supports
	   virtual addresses greater than 2 gigabytes.	This should be used in
	   conjunction with the /3GB or /USERVA=value megabytes switch in the
	   "[operating systems]" section of the BOOT.INI.  Otherwise, this bit
	   has no effect.  [This option is specific to PE targeted ports of
	   the linker]

       --disable-large-address-aware
	   Reverts the effect of a previous --large-address-aware option.
	   This is useful if --large-address-aware is always set by the
	   compiler driver (e.g. Cygwin gcc) and the executable does not
	   support virtual addresses greater than 2 gigabytes.	[This option
	   is specific to PE targeted ports of the linker]

       --major-image-version value
	   Sets the major number of the "image version".  Defaults to 1.
	   [This option is specific to the i386 PE targeted port of the
	   linker]

       --major-os-version value
	   Sets the major number of the "os version".  Defaults to 4.  [This
	   option is specific to the i386 PE targeted port of the linker]

       --major-subsystem-version value
	   Sets the major number of the "subsystem version".  Defaults to 4.
	   [This option is specific to the i386 PE targeted port of the
	   linker]

       --minor-image-version value
	   Sets the minor number of the "image version".  Defaults to 0.
	   [This option is specific to the i386 PE targeted port of the
	   linker]

       --minor-os-version value
	   Sets the minor number of the "os version".  Defaults to 0.  [This
	   option is specific to the i386 PE targeted port of the linker]

       --minor-subsystem-version value
	   Sets the minor number of the "subsystem version".  Defaults to 0.
	   [This option is specific to the i386 PE targeted port of the
	   linker]

       --output-def file
	   The linker will create the file file which will contain a DEF file
	   corresponding to the DLL the linker is generating.  This DEF file
	   (which should be called "*.def") may be used to create an import
	   library with "dlltool" or may be used as a reference to
	   automatically or implicitly exported symbols.  [This option is
	   specific to the i386 PE targeted port of the linker]

       --enable-auto-image-base
       --enable-auto-image-base=value
	   Automatically choose the image base for DLLs, optionally starting
	   with base value, unless one is specified using the "--image-base"
	   argument.  By using a hash generated from the dllname to create
	   unique image bases for each DLL, in-memory collisions and
	   relocations which can delay program execution are avoided.  [This
	   option is specific to the i386 PE targeted port of the linker]

       --disable-auto-image-base
	   Do not automatically generate a unique image base.  If there is no
	   user-specified image base ("--image-base") then use the platform
	   default.  [This option is specific to the i386 PE targeted port of
	   the linker]

       --dll-search-prefix string
	   When linking dynamically to a dll without an import library, search
	   for "<string><basename>.dll" in preference to "lib<basename>.dll".
	   This behaviour allows easy distinction between DLLs built for the
	   various "subplatforms": native, cygwin, uwin, pw, etc.  For
	   instance, cygwin DLLs typically use "--dll-search-prefix=cyg".
	   [This option is specific to the i386 PE targeted port of the
	   linker]

       --enable-auto-import
	   Do sophisticated linking of "_symbol" to "__imp__symbol" for DATA
	   imports from DLLs, thus making it possible to bypass the dllimport
	   mechanism on the user side and to reference unmangled symbol names.
	   [This option is specific to the i386 PE targeted port of the
	   linker]

	   The following remarks pertain to the original implementation of the
	   feature and are obsolete nowadays for Cygwin and MinGW targets.

	   Note: Use of the 'auto-import' extension will cause the text
	   section of the image file to be made writable. This does not
	   conform to the PE-COFF format specification published by Microsoft.

	   Note - use of the 'auto-import' extension will also cause read only
	   data which would normally be placed into the .rdata section to be
	   placed into the .data section instead.  This is in order to work
	   around a problem with consts that is described here:
	   http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

	   Using 'auto-import' generally will 'just work' -- but sometimes you
	   may see this message:

	   "variable '<var>' can't be auto-imported. Please read the
	   documentation for ld's "--enable-auto-import" for details."

	   This message occurs when some (sub)expression accesses an address
	   ultimately given by the sum of two constants (Win32 import tables
	   only allow one).  Instances where this may occur include accesses
	   to member fields of struct variables imported from a DLL, as well
	   as using a constant index into an array variable imported from a
	   DLL.	 Any multiword variable (arrays, structs, long long, etc) may
	   trigger this error condition.  However, regardless of the exact
	   data type of the offending exported variable, ld will always detect
	   it, issue the warning, and exit.

	   There are several ways to address this difficulty, regardless of
	   the data type of the exported variable:

	   One way is to use --enable-runtime-pseudo-reloc switch. This leaves
	   the task of adjusting references in your client code for runtime
	   environment, so this method works only when runtime environment
	   supports this feature.

	   A second solution is to force one of the 'constants' to be a
	   variable -- that is, unknown and un-optimizable at compile time.
	   For arrays, there are two possibilities: a) make the indexee (the
	   array's address) a variable, or b) make the 'constant' index a
	   variable.  Thus:

		   extern type extern_array[];
		   extern_array[1] -->
		      { volatile type *t=extern_array; t[1] }

	   or

		   extern type extern_array[];
		   extern_array[1] -->
		      { volatile int t=1; extern_array[t] }

	   For structs (and most other multiword data types) the only option
	   is to make the struct itself (or the long long, or the ...)
	   variable:

		   extern struct s extern_struct;
		   extern_struct.field -->
		      { volatile struct s *t=&extern_struct; t->field }

	   or

		   extern long long extern_ll;
		   extern_ll -->
		     { volatile long long * local_ll=&extern_ll; *local_ll }

	   A third method of dealing with this difficulty is to abandon
	   'auto-import' for the offending symbol and mark it with
	   "__declspec(dllimport)".  However, in practice that requires using
	   compile-time #defines to indicate whether you are building a DLL,
	   building client code that will link to the DLL, or merely
	   building/linking to a static library.   In making the choice
	   between the various methods of resolving the 'direct address with
	   constant offset' problem, you should consider typical real-world
	   usage:

	   Original:

		   --foo.h
		   extern int arr[];
		   --foo.c
		   #include "foo.h"
		   void main(int argc, char **argv){
		     printf("%d\n",arr[1]);
		   }

	   Solution 1:

		   --foo.h
		   extern int arr[];
		   --foo.c
		   #include "foo.h"
		   void main(int argc, char **argv){
		     /* This workaround is for win32 and cygwin; do not "optimize" */
		     volatile int *parr = arr;
		     printf("%d\n",parr[1]);
		   }

	   Solution 2:

		   --foo.h
		   /* Note: auto-export is assumed (no __declspec(dllexport)) */
		   #if (defined(_WIN32) || defined(__CYGWIN__)) && \
		     !(defined(FOO_BUILD_DLL) || defined(FOO_STATIC))
		   #define FOO_IMPORT __declspec(dllimport)
		   #else
		   #define FOO_IMPORT
		   #endif
		   extern FOO_IMPORT int arr[];
		   --foo.c
		   #include "foo.h"
		   void main(int argc, char **argv){
		     printf("%d\n",arr[1]);
		   }

	   A fourth way to avoid this problem is to re-code your library to
	   use a functional interface rather than a data interface for the
	   offending variables (e.g. set_foo() and get_foo() accessor
	   functions).

       --disable-auto-import
	   Do not attempt to do sophisticated linking of "_symbol" to
	   "__imp__symbol" for DATA imports from DLLs.	[This option is
	   specific to the i386 PE targeted port of the linker]

       --enable-runtime-pseudo-reloc
	   If your code contains expressions described in --enable-auto-import
	   section, that is, DATA imports from DLL with non-zero offset, this
	   switch will create a vector of 'runtime pseudo relocations' which
	   can be used by runtime environment to adjust references to such
	   data in your client code.  [This option is specific to the i386 PE
	   targeted port of the linker]

       --disable-runtime-pseudo-reloc
	   Do not create pseudo relocations for non-zero offset DATA imports
	   from DLLs.  [This option is specific to the i386 PE targeted port
	   of the linker]

       --enable-extra-pe-debug
	   Show additional debug info related to auto-import symbol thunking.
	   [This option is specific to the i386 PE targeted port of the
	   linker]

       --section-alignment
	   Sets the section alignment.	Sections in memory will always begin
	   at addresses which are a multiple of this number.  Defaults to
	   0x1000.  [This option is specific to the i386 PE targeted port of
	   the linker]

       --stack reserve
       --stack reserve,commit
	   Specify the number of bytes of memory to reserve (and optionally
	   commit) to be used as stack for this program.  The default is 2MB
	   reserved, 4K committed.  [This option is specific to the i386 PE
	   targeted port of the linker]

       --subsystem which
       --subsystem which:major
       --subsystem which:major.minor
	   Specifies the subsystem under which your program will execute.  The
	   legal values for which are "native", "windows", "console", "posix",
	   and "xbox".	You may optionally set the subsystem version also.
	   Numeric values are also accepted for which.	[This option is
	   specific to the i386 PE targeted port of the linker]

	   The following options set flags in the "DllCharacteristics" field
	   of the PE file header: [These options are specific to PE targeted
	   ports of the linker]

       --high-entropy-va
       --disable-high-entropy-va
	   Image is compatible with 64-bit address space layout randomization
	   (ASLR).  This option is enabled by default for 64-bit PE images.

	   This option also implies --dynamicbase and --enable-reloc-section.

       --dynamicbase
       --disable-dynamicbase
	   The image base address may be relocated using address space layout
	   randomization (ASLR).  This feature was introduced with MS Windows
	   Vista for i386 PE targets.  This option is enabled by default but
	   can be disabled via the --disable-dynamicbase option.  This option
	   also implies --enable-reloc-section.

       --forceinteg
       --disable-forceinteg
	   Code integrity checks are enforced.	This option is disabled by
	   default.

       --nxcompat
       --disable-nxcompat
	   The image is compatible with the Data Execution Prevention.	This
	   feature was introduced with MS Windows XP SP2 for i386 PE targets.
	   The option is enabled by default.

       --no-isolation
       --disable-no-isolation
	   Although the image understands isolation, do not isolate the image.
	   This option is disabled by default.

       --no-seh
       --disable-no-seh
	   The image does not use SEH. No SE handler may be called from this
	   image.  This option is disabled by default.

       --no-bind
       --disable-no-bind
	   Do not bind this image.  This option is disabled by default.

       --wdmdriver
       --disable-wdmdriver
	   The driver uses the MS Windows Driver Model.	 This option is
	   disabled by default.

       --tsaware
       --disable-tsaware
	   The image is Terminal Server aware.	This option is disabled by
	   default.

       --insert-timestamp
       --no-insert-timestamp
	   Insert a real timestamp into the image.  This is the default
	   behaviour as it matches legacy code and it means that the image
	   will work with other, proprietary tools.  The problem with this
	   default is that it will result in slightly different images being
	   produced each time the same sources are linked.  The option
	   --no-insert-timestamp can be used to insert a zero value for the
	   timestamp, this ensuring that binaries produced from identical
	   sources will compare identically.

	   If --insert-timestamp is active then the time inserted is either
	   the time that the linking takes place or, if the
	   "SOURCE_DATE_EPOCH" environment variable is defined, the number of
	   seconds since Unix epoch as specified by that variable.

       --enable-reloc-section
       --disable-reloc-section
	   Create the base relocation table, which is necessary if the image
	   is loaded at a different image base than specified in the PE
	   header.  This option is enabled by default.

       The C6X uClinux target uses a binary format called DSBT to support
       shared libraries.  Each shared library in the system needs to have a
       unique index; all executables use an index of 0.

       --dsbt-size size
	   This option sets the number of entries in the DSBT of the current
	   executable or shared library to size.  The default is to create a
	   table with 64 entries.

       --dsbt-index index
	   This option sets the DSBT index of the current executable or shared
	   library to index.  The default is 0, which is appropriate for
	   generating executables.  If a shared library is generated with a
	   DSBT index of 0, the "R_C6000_DSBT_INDEX" relocs are copied into
	   the output file.

	   The --no-merge-exidx-entries switch disables the merging of
	   adjacent exidx entries in frame unwind info.

       --branch-stub
	   This option enables linker branch relaxation by inserting branch
	   stub sections when needed to extend the range of branches.  This
	   option is usually not required since C-SKY supports branch and call
	   instructions that can access the full memory range and branch
	   relaxation is normally handled by the compiler or assembler.

       --stub-group-size=N
	   This option allows finer control of linker branch stub creation.
	   It sets the maximum size of a group of input sections that can be
	   handled by one stub section.	 A negative value of N locates stub
	   sections after their branches, while a positive value allows stub
	   sections to appear either before or after the branches.  Values of
	   1 or -1 indicate that the linker should choose suitable defaults.

       The 68HC11 and 68HC12 linkers support specific options to control the
       memory bank switching mapping and trampoline code generation.

       --no-trampoline
	   This option disables the generation of trampoline. By default a
	   trampoline is generated for each far function which is called using
	   a "jsr" instruction (this happens when a pointer to a far function
	   is taken).

       --bank-window name
	   This option indicates to the linker the name of the memory region
	   in the MEMORY specification that describes the memory bank window.
	   The definition of such region is then used by the linker to compute
	   paging and addresses within the memory window.

       The following options are supported to control handling of GOT
       generation when linking for 68K targets.

       --got=type
	   This option tells the linker which GOT generation scheme to use.
	   type should be one of single, negative, multigot or target.	For
	   more information refer to the Info entry for ld.

       The following options are supported to control microMIPS instruction
       generation and branch relocation checks for ISA mode transitions when
       linking for MIPS targets.

       --insn32
       --no-insn32
	   These options control the choice of microMIPS instructions used in
	   code generated by the linker, such as that in the PLT or lazy
	   binding stubs, or in relaxation.  If --insn32 is used, then the
	   linker only uses 32-bit instruction encodings.  By default or if
	   --no-insn32 is used, all instruction encodings are used, including
	   16-bit ones where possible.

       --ignore-branch-isa
       --no-ignore-branch-isa
	   These options control branch relocation checks for invalid ISA mode
	   transitions.	 If --ignore-branch-isa is used, then the linker
	   accepts any branch relocations and any ISA mode transition required
	   is lost in relocation calculation, except for some cases of "BAL"
	   instructions which meet relaxation conditions and are converted to
	   equivalent "JALX" instructions as the associated relocation is
	   calculated.	By default or if --no-ignore-branch-isa is used a
	   check is made causing the loss of an ISA mode transition to produce
	   an error.

       --compact-branches
       --no-compact-branches
	   These options control the generation of compact instructions by the
	   linker in the PLT entries for MIPS R6.

       For the pdp11-aout target, three variants of the output format can be
       produced as selected by the following options.  The default variant for
       pdp11-aout is the --omagic option, whereas for other targets --nmagic
       is the default.	The --imagic option is defined only for the pdp11-aout
       target, while the others are described here as they apply to the
       pdp11-aout target.

       -N
       --omagic
	   Mark the output as "OMAGIC" (0407) in the a.out header to indicate
	   that the text segment is not to be write-protected and shared.
	   Since the text and data sections are both readable and writable,
	   the data section is allocated immediately contiguous after the text
	   segment.  This is the oldest format for PDP11 executable programs
	   and is the default for ld on PDP11 Unix systems from the beginning
	   through 2.11BSD.

       -n
       --nmagic
	   Mark the output as "NMAGIC" (0410) in the a.out header to indicate
	   that when the output file is executed, the text portion will be
	   read-only and shareable among all processes executing the same
	   file.  This involves moving the data areas up to the first possible
	   8K byte page boundary following the end of the text.	 This option
	   creates a pure executable format.

       -z
       --imagic
	   Mark the output as "IMAGIC" (0411) in the a.out header to indicate
	   that when the output file is executed, the program text and data
	   areas will be loaded into separate address spaces using the split
	   instruction and data space feature of the memory management unit in
	   larger models of the PDP11.	This doubles the address space
	   available to the program.  The text segment is again pure,
	   write-protected, and shareable.  The only difference in the output
	   format between this option and the others, besides the magic
	   number, is that both the text and data sections start at location
	   0.  The -z option selected this format in 2.11BSD.  This option
	   creates a separate executable format.

       --no-omagic
	   Equivalent to --nmagic for pdp11-aout.

ENVIRONMENT
       You can change the behaviour of ld with the environment variables
       "GNUTARGET", "LDEMULATION" and "COLLECT_NO_DEMANGLE".

       "GNUTARGET" determines the input-file object format if you don't use -b
       (or its synonym --format).  Its value should be one of the BFD names
       for an input format.  If there is no "GNUTARGET" in the environment, ld
       uses the natural format of the target. If "GNUTARGET" is set to
       "default" then BFD attempts to discover the input format by examining
       binary input files; this method often succeeds, but there are potential
       ambiguities, since there is no method of ensuring that the magic number
       used to specify object-file formats is unique.  However, the
       configuration procedure for BFD on each system places the conventional
       format for that system first in the search-list, so ambiguities are
       resolved in favor of convention.

       "LDEMULATION" determines the default emulation if you don't use the -m
       option.	The emulation can affect various aspects of linker behaviour,
       particularly the default linker script.	You can list the available
       emulations with the --verbose or -V options.  If the -m option is not
       used, and the "LDEMULATION" environment variable is not defined, the
       default emulation depends upon how the linker was configured.

       Normally, the linker will default to demangling symbols.	 However, if
       "COLLECT_NO_DEMANGLE" is set in the environment, then it will default
       to not demangling symbols.  This environment variable is used in a
       similar fashion by the "gcc" linker wrapper program.  The default may
       be overridden by the --demangle and --no-demangle options.

       If the PE/COFF specific --insert-timestamp is active and the
       SOURCE_DATE_EPOCH environment variable is defined, then the timestamp
       value in this variable will be inserted into the COFF header instead of
       the current time.

SEE ALSO
       ar(1), nm(1), objcopy(1), objdump(1), readelf(1) and the Info entries
       for binutils and ld.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02				 LD(1)

AS(1)			     Инструменты разработки GNU			 AS(1)



NAME
       AS - переносимый ассемблер GNU.

SYNOPSIS
       as [-a[cdghilns][=file]]
	[--alternate]
	[--compress-debug-sections] [--nocompress-debug-sections]
	[-D]
	[--dump-config]
	[--debug-prefix-map old=new]
	[--defsym sym=val]
	[--elf-stt-common=[no|yes]]
	[--emulation=name]
	[-f]
	[-g] [--gstabs] [--gstabs+]
	[--gdwarf-<N>] [--gdwarf-sections]
	[--gdwarf-cie-version=VERSION]
	[--generate-missing-build-notes=[no|yes]]
	[--gsframe]
	[--hash-size=N]
	[--help] [--target-help]
	[--info] [--no-info]
	[-I dir]
	[-J]
	[-K]
	[--keep-locals]
	[-L]
	[--listing-lhs-width=NUM]
	[--listing-lhs-width2=NUM]
	[--listing-rhs-width=NUM]
	[--listing-cont-lines=NUM]
	[--multibyte-handling=[allow|warn|warn-sym-only]]
	[--no-pad-sections]
	[-o objfile] [-R]
	[--scfi=experimental]
	[--sectname-subst]
	[--size-check=[error|warning]]
	[--statistics]
	[-v] [-version] [--version]
	[-W] [--no-warn] [--warn] [--fatal-warnings]
	[-w] [-x]
	[-Z] [@FILE]
	[target-options]
	[--|files ...]

TARGET
       Опции для целевой платформы AArch64:
	  [-EB|-EL]
	  [-mabi=ABI]

       Опции для целевой платформы Alpha:
	  [-mcpu]
	  [-mdebug | -no-mdebug]
	  [-replace | -noreplace]
	  [-relax] [-g] [-Gsize]
	  [-F] [-32addr]

       Опции для целевой платформы ARC:
	  [-mcpu=cpu]
	  [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS]
	  [-mcode-density]
	  [-mrelax]
	  [-EB|-EL]

       Опции для целевой платформы ARM:
	  [-mcpu=processor[+extension...]]
	  [-march=architecture[+extension...]]
	  [-mfpu=floating-point-format]
	  [-mfloat-abi=abi]
	  [-meabi=ver]
	  [-mthumb]
	  [-EB|-EL]
	  [-mapcs-32|-mapcs-26|-mapcs-float|
	   -mapcs-reentrant]
	  [-mthumb-interwork] [-k]

       Опции для целевой платформы Blackfin:
	  [-mcpu=processor[-sirevision]]
	  [-mfdpic]
	  [-mno-fdpic]
	  [-mnopic]

       Опции для целевой платформы BPF:
	  [-EL] [-EB]

       Опции для целевой платформы CRIS:
	  [--underscore | --no-underscore]
	  [--pic] [-N]
	  [--emulation=criself | --emulation=crisaout]
	  [--march=v0_v10 | --march=v10 | --march=v32 |
       --march=common_v10_v32]

       Опции для целевой платформы C-SKY:
	  [-march=arch] [-mcpu=cpu]
	  [-EL] [-mlittle-endian] [-EB] [-mbig-endian]
	  [-fpic] [-pic]
	  [-mljump] [-mno-ljump]
	  [-force2bsr] [-mforce2bsr] [-no-force2bsr] [-mno-force2bsr]
	  [-jsri2bsr] [-mjsri2bsr] [-no-jsri2bsr ] [-mno-jsri2bsr]
	  [-mnolrw ] [-mno-lrw]
	  [-melrw] [-mno-elrw]
	  [-mlaf ] [-mliterals-after-func]
	  [-mno-laf] [-mno-literals-after-func]
	  [-mlabr] [-mliterals-after-br]
	  [-mno-labr] [-mnoliterals-after-br]
	  [-mistack] [-mno-istack]
	  [-mhard-float] [-mmp] [-mcp] [-mcache]
	  [-msecurity] [-mtrust]
	  [-mdsp] [-medsp] [-mvdsp]

       Опции для целевой платформы D10V:
	  [-O]

       Опции для целевой платформы D30V:
	  [-O|-n|-N]

       Опции для целевой платформы EPIPHANY:
	  [-mepiphany|-mepiphany16]

       Опции для целевой платформы H8/300:
	  [-h-tick-hex]

       Опции для целевой платформы i386:
	  [--32|--x32|--64] [-n]
	  [-march=CPU[+EXTENSION...]] [-mtune=CPU]

       Опции для целевой платформы IA-64:
	  [-mconstant-gp|-mauto-pic]
	  [-milp32|-milp64|-mlp64|-mp64]
	  [-mle|mbe]
	  [-mtune=itanium1|-mtune=itanium2]
	  [-munwind-check=warning|-munwind-check=error]
	  [-mhint.b=ok|-mhint.b=warning|-mhint.b=error]
	  [-x|-xexplicit] [-xauto] [-xdebug]

       Опции для целевой платформы IP2K:
	  [-mip2022|-mip2022ext]

       Опции для целевой платформы M32C:
	  [-m32c|-m16c] [-relax] [-h-tick-hex]

       Опции для целевой платформы M32R:
	  [--m32rx|--[no-]warn-explicit-parallel-conflicts|
	  --W[n]p]

       Опции для целевой платформы M680X0:
	  [-l] [-m68000|-m68010|-m68020|...]

       Опции для целевой платформы M68HC11:
	  [-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg]
	  [-mshort|-mlong]
	  [-mshort-double|-mlong-double]
	  [--force-long-branches] [--short-branches]
	  [--strict-direct-mode] [--print-insn-syntax]
	  [--print-opcodes] [--generate-example]

       Опции для целевой платформы MCORE:
	  [-jsri2bsr] [-sifilter] [-relax]
	  [-mcpu=[210|340]]

       Опции для целевой платформы Meta:
	  [-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu] Опции для целевой платформы MICROBLAZE:
	  [-mlittle-endian] [-mbig-endian]

       Опции для целевой платформы MIPS:
	  [-nocpp] [-EL] [-EB] [-O[optimization level]]
	  [-g[debug level]] [-G num] [-KPIC] [-call_shared]
	  [-non_shared] [-xgot [-mvxworks-pic]
	  [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32]
	  [-mfp64] [-mgp64] [-mfpxx]
	  [-modd-spreg] [-mno-odd-spreg]
	  [-march=CPU] [-mtune=CPU] [-mips1] [-mips2]
	  [-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2]
	  [-mips32r3] [-mips32r5] [-mips32r6] [-mips64] [-mips64r2]
	  [-mips64r3] [-mips64r5] [-mips64r6]
	  [-construct-floats] [-no-construct-floats]
	  [-mignore-branch-isa] [-mno-ignore-branch-isa]
	  [-mnan=encoding]
	  [-trap] [-no-break] [-break] [-no-trap]
	  [-mips16] [-no-mips16]
	  [-mmips16e2] [-mno-mips16e2]
	  [-mmicromips] [-mno-micromips]
	  [-msmartmips] [-mno-smartmips]
	  [-mips3d] [-no-mips3d]
	  [-mdmx] [-no-mdmx]
	  [-mdsp] [-mno-dsp]
	  [-mdspr2] [-mno-dspr2]
	  [-mdspr3] [-mno-dspr3]
	  [-mmsa] [-mno-msa]
	  [-mxpa] [-mno-xpa]
	  [-mmt] [-mno-mt]
	  [-mmcu] [-mno-mcu]
	  [-mcrc] [-mno-crc]
	  [-mginv] [-mno-ginv]
	  [-mloongson-mmi] [-mno-loongson-mmi]
	  [-mloongson-cam] [-mno-loongson-cam]
	  [-mloongson-ext] [-mno-loongson-ext]
	  [-mloongson-ext2] [-mno-loongson-ext2]
	  [-minsn32] [-mno-insn32]
	  [-mfix7000] [-mno-fix7000]
	  [-mfix-rm7000] [-mno-fix-rm7000]
	  [-mfix-vr4120] [-mno-fix-vr4120]
	  [-mfix-vr4130] [-mno-fix-vr4130]
	  [-mfix-r5900] [-mno-fix-r5900]
	  [-mdebug] [-no-mdebug]
	  [-mpdr] [-mno-pdr]

       Опции для целевой платформы MMIX:
	  [--fixed-special-register-names] [--globalize-symbols]
	  [--gnu-syntax] [--relax] [--no-predefined-symbols]
	  [--no-expand] [--no-merge-gregs] [-x]
	  [--linker-allocated-gregs]

       Опции для целевой платформы NDS32:
	   [-EL] [-EB] [-O] [-Os] [-mcpu=cpu]
	   [-misa=isa] [-mabi=abi] [-mall-ext]
	   [-m[no-]16-bit]  [-m[no-]perf-ext] [-m[no-]perf2-ext]
	   [-m[no-]string-ext] [-m[no-]dsp-ext] [-m[no-]mac] [-m[no-]div]
	   [-m[no-]audio-isa-ext] [-m[no-]fpu-sp-ext] [-m[no-]fpu-dp-ext]
	   [-m[no-]fpu-fma] [-mfpu-freg=FREG] [-mreduced-regs]
	   [-mfull-regs] [-m[no-]dx-regs] [-mpic] [-mno-relax]
	   [-mb2bb]

       Опции для целевой платформы PDP11:
	  [-mpic|-mno-pic] [-mall] [-mno-extensions]
	  [-mextension|-mno-extension]
	  [-mcpu] [-mmachine]

       Опции для целевой платформы picoJava:
	  [-mb|-me]

       Опции для целевой платформы PowerPC:
	  [-a32|-a64]
	  [-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604|-m403|-m405|
	   -m440|-m464|-m476|-m7400|-m7410|-m7450|-m7455|-m750cl|-mgekko|
	   -mbroadway|-mppc64|-m620|-me500|-e500x2|-me500mc|-me500mc64|-me5500|
	   -me6500|-mppc64bridge|-mbooke|-mpower4|-mpwr4|-mpower5|-mpwr5|-mpwr5x|
	   -mpower6|-mpwr6|-mpower7|-mpwr7|-mpower8|-mpwr8|-mpower9|-mpwr9-ma2|
	   -mcell|-mspe|-mspe2|-mtitan|-me300|-mcom]
	  [-many] [-maltivec|-mvsx|-mhtm|-mvle]
	  [-mregnames|-mno-regnames]
	  [-mrelocatable|-mrelocatable-lib|-K PIC] [-memb]
	  [-mlittle|-mlittle-endian|-le|-mbig|-mbig-endian|-be]
	  [-msolaris|-mno-solaris]
	  [-nops=count]

       Опции для целевой платформы PRU:
	  [-link-relax]
	  [-mnolink-relax]
	  [-mno-warn-regname-label]

       Опции для целевой платформы RISC-V:
	  [-fpic|-fPIC|-fno-pic]
	  [-march=ISA]
	  [-mabi=ABI]
	  [-mlittle-endian|-mbig-endian]

       Опции для целевой платформы RL78:
	  [-mg10]
	  [-m32bit-doubles|-m64bit-doubles]

       Опции для целевой платформы RX:
	  [-mlittle-endian|-mbig-endian]
	  [-m32bit-doubles|-m64bit-doubles]
	  [-muse-conventional-section-names]
	  [-msmall-data-limit]
	  [-mpid]
	  [-mrelax]
	  [-mint-register=number]
	  [-mgcc-abi|-mrx-abi]

       Опции для целевой платформы s390:
	  [-m31|-m64] [-mesa|-mzarch] [-march=CPU]
	  [-mregnames|-mno-regnames]
	  [-mwarn-areg-zero]
	  [-mwarn-regtype-mismatch=strict
	   -mwarn-regtype-mismatch=relaxed
	   -mwarn-regtype-mismatch=no
	   -mno-warn-regtype-mismatch]

       Опции для целевой платформы SCORE:
	  [-EB][-EL][-FIXDD][-NWARN]
	  [-SCORE5][-SCORE5U][-SCORE7][-SCORE3]
	  [-march=score7][-march=score3]
	  [-USE_R1][-KPIC][-O0][-G num][-V]

       Опции для целевой платформы SPARC:
	  [-Av6|-Av7|-Av8|-Aleon|-Asparclet|-Asparclite
	   -Av8plus|-Av8plusa|-Av8plusb|-Av8plusc|-Av8plusd
	   -Av8plusv|-Av8plusm|-Av9|-Av9a|-Av9b|-Av9c
	   -Av9d|-Av9e|-Av9v|-Av9m|-Asparc|-Asparcvis
	   -Asparcvis2|-Asparcfmaf|-Asparcima|-Asparcvis3
	   -Asparcvisr|-Asparc5]
	  [-xarch=v8plus|-xarch=v8plusa]|-xarch=v8plusb|-xarch=v8plusc
	   -xarch=v8plusd|-xarch=v8plusv|-xarch=v8plusm|-xarch=v9
	   -xarch=v9a|-xarch=v9b|-xarch=v9c|-xarch=v9d|-xarch=v9e
	   -xarch=v9v|-xarch=v9m|-xarch=sparc|-xarch=sparcvis
	   -xarch=sparcvis2|-xarch=sparcfmaf|-xarch=sparcima
	   -xarch=sparcvis3|-xarch=sparcvisr|-xarch=sparc5
	   -bump]
	  [-32|-64]
	  [--enforce-aligned-data][--dcti-couples-detect]

       Опции для целевой платформы TIC54X:
	[-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf]
	[-merrors-to-file <filename>|-me <filename>]

       Опции для целевой платформы TIC6X:
	  [-march=arch] [-mbig-endian|-mlittle-endian]
	  [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far]
	  [-mpic|-mno-pic]

       Опции для целевой платформы TILE-Gx:
	  [-m32|-m64][-EB][-EL]

       Опции для целевой платформы Visium:
	  [-mtune=arch]

       Опции для целевой платформы Xtensa:
	[--[no-]text-section-literals] [--[no-]auto-litpools]
	[--[no-]absolute-literals]
	[--[no-]target-align] [--[no-]longcalls]
	[--[no-]transform]
	[--rename-section oldname=newname]
	[--[no-]trampolines]
	[--abi-windowed|--abi-call0]

       Опции для целевой платформы Z80:
	 [-march=CPU[-EXT][+EXT]]
	 [-local-prefix=PREFIX]
	 [-colonless]
	 [-sdcc]
	 [-fp-s=FORMAT]
	 [-fp-d=FORMAT]

DESCRIPTION
       GNU as представляет собой семейство ассемблеров. Если вы используете (или использовали) ассемблер GNU на одной архитектуре, вы обнаружите достаточно похожую среду при работе с ним на другой архитектуре. Каждая версия имеет много общего с остальными, включая форматы объектных файлов, большинство директив ассемблера (часто называемых псевдооперациями) и синтаксис ассемблера.

       as в первую очередь предназначен для сборки вывода компилятора GNU C "gcc" для использования связывателем "ld". Тем не менее, мы постарались сделать так, чтобы as правильно собирал всё, что могли бы собрать другие ассемблеры для той же машины. Любые исключения документированы явно. Это не означает, что as всегда использует тот же синтаксис, что и другой ассемблер для той же архитектуры; например, мы знаем о нескольких несовместимых версиях синтаксиса языка ассемблирования 680x0.

       Каждый раз, когда вы запускаете as, он собирает ровно одну исходную программу. Исходная программа состоит из одного или нескольких файлов. (Стандартный ввод также является файлом.)

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

       Если вы не указываете as никаких имён файлов, он попытается прочитать один входной файл из стандартного ввода as, который обычно является вашим терминалом. Вам может потребоваться ввести ctl-D, чтобы сообщить as, что больше нет программы для сборки.

       Используйте --, если вам нужно явно указать стандартный входной файл в вашей командной строке.

       Если исходный код пуст, as генерирует небольшой пустой объектный файл.

       as может выводить предупреждения и сообщения об ошибках в стандартный файл ошибок (обычно ваш терминал). Это не должно происходить, когда компилятор запускает as автоматически. Предупреждения сообщают об предположении, сделанном для того, чтобы as мог продолжить сборку проблемной программы; ошибки сообщают о серьёзной проблеме, которая останавливает сборку.

       Если вы вызываете as через компилятор GNU C, вы можете использовать опцию -Wa для передачи аргументов ассемблеру. Аргументы ассемблера должны быть разделены друг от друга (и от -Wa) запятыми. Например:

	       gcc -c -g -O -Wa,-alh,-L file.c

       Это передаёт ассемблеру две опции: -alh (вывод списка в стандартный вывод с исходным кодом высокого уровня и ассемблирования) и -L (сохранение локальных символов в таблице символов).

       Обычно вам не нужно использовать этот механизм -Wa, поскольку многие опции командной строки компилятора автоматически передаются ассемблеру. (Вы можете вызвать драйвер компилятора GNU с опцией -v, чтобы увидеть точно, какие опции он передаёт каждому этапу компиляции, включая ассемблер.)

OPTIONS
       @file
	   Прочитать опции командной строки из файла. Опции, прочитанные из файла, вставляются на место исходной опции @file. Если файл не существует или не может быть прочитан, опция будет обработана буквально, без удаления.

	   Опции в файле разделены пробелами. Символ пробела можно включить в опцию, заключая всю опцию в одинарные или двойные кавычки. Любые символы (включая обратную косую черту) можно включить, предваряя символ, подлежащий включению, обратной косой чертой. Файл может сам содержать дополнительные опции @file; такие опции будут обработаны рекурсивно.

       -a[cdghilmns]
	   Включить списки различными способами:

	   -ac пропустить ложные условные конструкции

	   -ad пропустить директивы отладки

	   -ag включить общую информацию, такую как версия as и переданные опции

	   -ah включить исходный код высокого уровня

	   -al включить ассемблирование

	   -ali
	       включить ассемблирование с ginsn

	   -am включить расширения макросов

	   -an пропустить обработку форм

	   -as включить символы

	   =file
	       установить имя файла списка

	   Вы можете комбинировать эти опции; например, используйте -aln для списка ассемблирования без обработки форм. Опция =file, если используется, должна быть последней. Сама по себе -a по умолчанию эквивалентна -ahls.

       --alternate
	   Начать в альтернативном режиме макросов.

       --compress-debug-sections
	   Сжать разделы отладки DWARF с использованием zlib с SHF_COMPRESSED из ELF ABI. Полученный объектный файл может быть несовместим с более старыми связывателями и утилитами объектных файлов. Обратите внимание, что если сжатие сделает раздел больше, он не будет сжат.

       --compress-debug-sections=none
       --compress-debug-sections=zlib
       --compress-debug-sections=zlib-gnu
       --compress-debug-sections=zlib-gabi
       --compress-debug-sections=zstd
	   Эти опции управляют сжатием разделов отладки DWARF.
	   --compress-debug-sections=none эквивалентно
	   --nocompress-debug-sections. --compress-debug-sections=zlib и
	   --compress-debug-sections=zlib-gabi эквивалентны
	   --compress-debug-sections. --compress-debug-sections=zlib-gnu
	   сжимает разделы отладки DWARF с использованием устаревшего формата zlib-gnu.
	   Разделы отладки переименовываются, начиная с .zdebug.
	   --compress-debug-sections=zstd сжимает разделы отладки DWARF с использованием zstd.
	   Обратите внимание - если сжатие сделает раздел больше, он не будет сжат и переименован.

       --nocompress-debug-sections
	   Не сжимать разделы отладки DWARF. Это обычно значение по умолчанию для всех целей, кроме x86/x86_64, но опция конфигурации может переопределить это.

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

       --debug-prefix-map old=new
	   При сборке файлов в каталоге old записывать информацию отладки, описывающую их как в new.

       --defsym sym=value
	   Определить символ sym как value перед сборкой входного файла.
	   value должно быть целочисленной константой. Как в C, ведущий 0x указывает на шестнадцатеричное значение, а ведущий 0 - на восьмеричное. Значение символа может быть переопределено внутри исходного файла с помощью псевдооперации ".set".

       --dump-config
	   Вывести, как настроен ассемблер, и выйти.

       --elf-stt-common=no
       --elf-stt-common=yes
	   Эти опции управляют тем, должен ли ассемблер ELF генерировать общие символы с типом "STT_COMMON". Значение по умолчанию можно контролировать опцией конфигурации --enable-elf-stt-common.

       --emulation=name
	   Если ассемблер настроен на поддержку нескольких разных целевых конфигураций, эта опция может быть использована для выбора желаемой формы.

       -f  "быстро" - пропустить предобработку пробелов и комментариев (предположить, что исходный код является выводом компилятора).

       -g
       --gen-debug
	   Генерировать информацию отладки для каждой строки исходного кода ассемблера с использованием предпочтительного формата отладки для цели. В настоящее время это означает либо STABS, либо ECOFF, либо DWARF2. Когда формат отладки - DWARF, разделы ".debug_info" и ".debug_line" генерируются только в том случае, если файл сборки не генерирует их сам.

       --gstabs
	   Генерировать информацию отладки stabs для каждой строки ассемблера. Это может помочь в отладке кода ассемблера, если отладчик может обработать это.

       --gstabs+
	   Генерировать информацию отладки stabs для каждой строки ассемблера с расширениями GNU, которые, вероятно, может обработать только gdb, и которые могут привести к сбою других отладчиков или отказу от чтения вашей программы. Это может помочь в отладке кода ассемблера. В настоящее время единственное расширение GNU - это местоположение текущей рабочей директории во время сборки.

       --gdwarf-2
	   Генерировать информацию отладки DWARF2 для каждой строки ассемблера.
	   Это может помочь в отладке кода ассемблера, если отладчик может обработать это. Обратите внимание - эта опция поддерживается только некоторыми целями, не всеми.

       --gdwarf-3
	   Эта опция аналогична --gdwarf-2, за исключением того, что она позволяет возможность генерации дополнительной информации отладки в соответствии с версией 3 спецификации DWARF. Обратите внимание - включение этой опции не гарантирует генерацию дополнительной информации, выбор зависит от цели.

       --gdwarf-4
	   Эта опция аналогична --gdwarf-2, за исключением того, что она позволяет возможность генерации дополнительной информации отладки в соответствии с версией 4 спецификации DWARF. Обратите внимание - включение этой опции не гарантирует генерацию дополнительной информации, выбор зависит от цели.

       --gdwarf-5
	   Эта опция аналогична --gdwarf-2, за исключением того, что она позволяет возможность генерации дополнительной информации отладки в соответствии с версией 5 спецификации DWARF. Обратите внимание - включение этой опции не гарантирует генерацию дополнительной информации, выбор зависит от цели.

       --gdwarf-sections
	   Вместо создания раздела .debug_line создать серию разделов .debug_line.foo, где foo - имя соответствующего раздела кода. Например, раздел кода, называемый .text.func, будет иметь информацию о номерах строк dwarf в разделе .debug_line.text.func. Если раздел кода называется просто .text, то раздел отладки строк будет называться просто .debug_line без суффикса.

       --gdwarf-cie-version=version
	   Управлять версией записей общей информации DWARF (CIE). Когда эта опция не указана, значение по умолчанию - версия 1, хотя некоторые цели могут изменить это значение по умолчанию. Другие возможные значения для version - 3 или 4.

       --generate-missing-build-notes=yes
       --generate-missing-build-notes=no
	   Эти опции управляют тем, должен ли ассемблер ELF генерировать заметки атрибутов сборки GNU, если они отсутствуют в исходных файлах.
	   Значение по умолчанию можно контролировать опцией конфигурации --enable-generate-build-notes.

       --gsframe
       --gsframe
	   Создать раздел .sframe из директив CFI.

       --hash-size N
	   Игнорируется. Поддерживается для совместимости командной строки с другими ассемблерами.

       --help
	   Вывести сводку опций командной строки и выйти.

       --target-help
	   Вывести сводку всех целевых специфических опций и выйти.

       --info
	   Не подавлять информационные сообщения.

       --no-info
	   Подавлять информационные сообщения.

       -I dir
	   Добавить каталог dir в список поиска для директив ".include".

       -J  Не предупреждать о переполнении знакового типа.

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

       -L
       --keep-locals
	   Сохранять (в таблице символов) локальные символы. Эти символы начинаются с системно-специфичных префиксов локальных меток, обычно .L для систем ELF или L для традиционных систем a.out.

       --listing-lhs-width=number
	   Установить максимальную ширину, в словах, столбца выходных данных для списка ассемблера на number.

       --listing-lhs-width2=number
	   Установить максимальную ширину, в словах, столбца выходных данных для продолжительных строк в списке ассемблера на number.

       --listing-rhs-width=number
	   Установить максимальную ширину входной строки источника, отображаемой в списке, на number байт.

       --listing-cont-lines=number
	   Установить максимальное количество строк, выводимых в списке для одной строки ввода, на number + 1.

       --multibyte-handling=allow
       --multibyte-handling=warn
       --multibyte-handling=warn-sym-only
       --multibyte-handling=warn_sym_only
	   Управляет тем, как ассемблер обрабатывает многобайтовые символы во входе. Значение по умолчанию (которое можно восстановить с помощью аргумента allow) - разрешить такие символы без жалоб. Использование аргумента warn заставит ассемблер генерировать предупреждающее сообщение при обнаружении любого многобайтового символа. Использование warn-sym-only приведёт к генерации предупреждения только когда определяется символ с именем, содержащим многобайтовые символы.
	   (Ссылки на неопределённые символы предупреждения не генерируют).

       --no-pad-sections
	   Не заставлять ассемблер дополнять концы выходных разделов до выравнивания раздела. Значение по умолчанию - дополнять разделы, но это может тратить пространство, которое может потребоваться на целях с жёсткими ограничениями памяти.

       -o objfile
	   Назвать выходной объектный файл as objfile.

       -R  Сложить раздел данных в раздел текста.

       --reduce-memory-overheads
	   Игнорируется. Поддерживается для совместимости с инструментами, которые передают ту же опцию и ассемблеру, и связывателю.

       --scfi=experimental
	   Эта опция управляет тем, должен ли ассемблер синтезировать CFI для рукописного ввода. Если вход уже содержит некоторые синтезируемые директивы CFI, ассемблер игнорирует их и выводит предупреждение. Обратите внимание, что "--scfi=experimental" не предназначен для кода, генерируемого компилятором, включая встроенный ассемблер. Эта экспериментальная поддержка находится в разработке. Поддерживается только ABI System V AMD64.

	   Каждая входная функция в ассемблере должна начинаться с директивы ".type" и идеально закрываться директивой ".size". При использовании SCFI каждая директива ".type" побуждает GAS начать новый FDE (запись дескриптора функции). Это подразумевает, что с каждой директивой ".type" предыдущий блок инструкций, если он есть, завершается как отдельный FDE.

       --sectname-subst
	   Учитывать последовательности подстановки в именах разделов.

       --size-check=error
       --size-check=warning
	   Выдавать ошибку или предупреждение для недействительной директивы ELF .size.

       --statistics
	   Вывести максимальное пространство (в байтах) и общее время (в секундах), использованное сборкой.

       --strip-local-absolute
	   Удалить локальные абсолютные символы из исходящей таблицы символов.

       -v
       -version
	   Вывести версию as.

       --version
	   Вывести версию as и выйти.

       -W
       --no-warn
	   Подавлять сообщения предупреждений.

       --warn
	   Не подавлять сообщения предупреждений или не рассматривать их как ошибки.

       --fatal-warnings
	   Рассматривать предупреждения как ошибки.

       -w  Игнорируется.

       -x  Игнорируется.

       -Z  Генерировать объектный файл даже после ошибок.

       -- | files ...
	   Стандартный ввод или исходные файлы для сборки.

       Следующие опции доступны, когда as настроен для 64-разрядного режима архитектуры ARM (AArch64).

       -EB Эта опция указывает, что выход, генерируемый ассемблером, должен быть помечен как закодированный для процессора с порядком байтов big-endian.

       -EL Эта опция указывает, что выход, генерируемый ассемблером, должен быть помечен как закодированный для процессора с порядком байтов little-endian.

       -mabi=abi
	   Указать, какой ABI использует исходный код. Принимаемые аргументы: "ilp32" и "lp64", которые определяют генерируемый объектный файл в форматах ELF32 и ELF64 соответственно. Значение по умолчанию - "lp64".

       -mcpu=processor[+extension...]
	   Эта опция указывает целевой процессор. Ассемблер выдаст сообщение об ошибке, если будет предпринята попытка собрать инструкцию, которая не выполнится на целевом процессоре. Принимаемые имена процессоров: "cortex-a34",
	   "cortex-a35", "cortex-a53", "cortex-a55", "cortex-a57",
	   "cortex-a65", "cortex-a65ae", "cortex-a72", "cortex-a73",
	   "cortex-a75", "cortex-a76", "cortex-a76ae", "cortex-a77",
	   "cortex-a78", "cortex-a78ae", "cortex-a78c", "cortex-a510",
	   "cortex-a520", "cortex-a710", "cortex-a720", "ares", "exynos-m1",
	   "falkor", "neoverse-n1", "neoverse-n2", "neoverse-e1",
	   "neoverse-v1", "qdf24xx", "saphira", "thunderx", "vulcan", "xgene1"
	   "xgene2", "cortex-r82", "cortex-x1", "cortex-x2", "cortex-x3", и
	   "cortex-x4". Специальное имя "all" может быть использовано, чтобы разрешить ассемблеру принимать инструкции, действительные для любого поддерживаемого процессора, включая все необязательные расширения.

	   Помимо базового набора инструкций, ассемблеру можно указать принимать или ограничивать различные мнемоники расширений.

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

       -march=architecture[+extension...]
	   Эта опция указывает целевую архитектуру. Ассемблер выдаст сообщение об ошибке, если будет предпринята попытка собрать инструкцию, которая не выполнится на целевой архитектуре. Принимаемые имена архитектур: "armv8-a",
	   "armv8.1-a", "armv8.2-a", "armv8.3-a", "armv8.4-a" "armv8.5-a",
	   "armv8.6-a", "armv8.7-a", "armv8.8-a", "armv8.9-a", "armv8-r",
	   "armv9-a", "armv9.1-a", "armv9.2-a", "armv9.3-a", "armv9.4-a" и
	   "armv9.5-a".

	   Если указаны обе -mcpu и -march, ассемблер использует значение для -mcpu. Если ни одна не указана, ассемблер по умолчанию использует -mcpu=all.

	   Опция архитектуры может быть расширена теми же опциями набора инструкций, что и опция -mcpu. В отличие от -mcpu,
	   расширения не всегда включены по умолчанию.

       -mverbose-error
	   Эта опция включает подробные сообщения об ошибках для AArch64 gas. Эта опция включена по умолчанию.

       -mno-verbose-error
	   Эта опция отключает подробные сообщения об ошибках в AArch64 gas.

       Следующие опции доступны, когда as настроен для процессора Alpha.

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

	   Принимаемые имена процессоров: 21064, "21064a",
	   21066, 21068, 21164, "21164a", "21164pc", 21264, "21264a",
	   "21264b", "ev4", "ev5", "lca45", "ev5", "ev56", "pca56", "ev6",
	   "ev67", "ev68". Специальное имя "all" может быть использовано, чтобы разрешить ассемблеру принимать инструкции, действительные для любого процессора Alpha.

	   Для поддержки существующей практики в OSF/1 относительно ".arch" и существующей практики в MILO (загрузчик ARC Linux), нумерациированные имена процессоров (например, 21064) включают процессор-специфические инструкции PALcode, в то время как "электро-власические" имена (например, "ev4") не включают.

       -mdebug
       -no-mdebug
	   Включить или отключить генерацию инкапсуляции ".mdebug" для директив stabs и дескрипторов процедур. Значение по умолчанию - автоматически включить ".mdebug", когда видна первая директива stabs.

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

       -replace
       -noreplace
	   Включить или отключить оптимизацию вызовов процедур, как во время сборки, так и во время связывания. Эти опции доступны только для целей VMS, и "-replace" - значение по умолчанию. См. раздел 1.4.1 руководства утилиты связывателя OpenVMS.

       -g  Эта опция используется, когда компилятор генерирует информацию отладки.
	   Когда gcc использует mips-tfile для генерации информации отладки для ECOFF, локальные метки должны передаваться в объектный файл.
	   В противном случае эта опция не оказывает влияния.

       -Gsize
	   Локальный общий символ, больший, чем size, размещается в ".bss", в то время как меньшие символы размещаются в ".sbss".

       -F
       -32addr
	   Эти опции игнорируются для обратной совместимости.

       Следующие опции доступны, когда as настроен для процессора ARC.

       -mcpu=cpu
	   Эта опция выбирает вариант ядра процессора.

       -EB | -EL
	   Выбрать порядок байтов big-endian (-EB) или little-endian (-EL).

       Следующие опции доступны, когда as настроен для семейства процессоров ARM.

       -mcpu=processor[+extension...]
	   Указать, какой вариант процессора ARM является целью.

       -march=architecture[+extension...]
	   Указать, какая вариант архитектуры ARM используется целью.

       -mfpu=floating-point-format
	   Выбрать, какая архитектура с плавающей точкой является целью.

       -mfloat-abi=abi
	   Выбрать, какой ABI с плавающей точкой используется.

       -mthumb
	   Включить декодирование только инструкций Thumb.

       -mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant
	   Выбрать, какая конвенция вызова процедур используется.

       -EB | -EL
	   Выбрать порядок байтов big-endian (-EB) или little-endian (-EL).

       -mthumb-interwork
	   Указать, что код был сгенерирован с учётом взаимодействия между Thumb и ARM-кодом.

       -mccs
	   Включить режим совместимости синтаксиса сборки CodeComposer Studio.

       -k  Указать, что сгенерирован PIC-код.

       Следующие опции доступны, когда as настроен для семейства процессоров Blackfin.

       -mcpu=processor[-sirevision]
	   Эта опция указывает целевой процессор. Опциональный sirevision не используется в ассемблере. Он здесь для того, чтобы GCC мог легко передавать свою опцию "-mcpu=". Ассемблер выдаст сообщение об ошибке, если будет предпринята попытка собрать инструкцию, которая не выполнится на целевом процессоре. Принимаемые имена процессоров: "bf504", "bf506", "bf512", "bf514",
	   "bf516", "bf518", "bf522", "bf523", "bf524", "bf525", "bf526",
	   "bf527", "bf531", "bf532", "bf533", "bf534", "bf535" (ещё не реализовано), "bf536", "bf537", "bf538", "bf539", "bf542",
	   "bf542m", "bf544", "bf544m", "bf547", "bf547m", "bf548", "bf548m",
	   "bf549", "bf549m", "bf561", и "bf592".

       -mfdpic
	   Собрать для ABI FDPIC.

       -mno-fdpic
       -mnopic
	   Отключить -mfdpic.

       Следующие опции доступны, когда as настроен для семейства процессоров BPF ядра Linux.

       @chapter BPF Dependent Features

   BPF Options
       -EB Эта опция указывает, что ассемблер должен генерировать eBPF с порядком байтов big-endian.

       -EL Эта опция указывает, что ассемблер должен генерировать eBPF с порядком байтов little-endian.

       -mdialect=dialect
	   Эта опция указывает диалект языка ассемблирования, который следует распознавать при сборке. Ассемблер поддерживает нормальный и pseudoc.

       -misa-spec=spec
	   Эта опция указывает версию набора инструкций BPF, которая должна использоваться при сборке. Поддерживаемые версии набора инструкций BPF: v1 v2, v3 и
	   v4.

	   Значение xbpf можно указать, чтобы распознавать дополнительные инструкции, используемые GCC для целей тестирования. Но имейте в виду, что это не действительный BPF.

       -mno-relax
	   Эта опция говорит ассемблеру не расслаблять инструкции.

       Обратите внимание, что если опция эндианности не указана в командной строке, используется эндианность хоста. См. страницы info для документации по опциям, специфичным для CRIS.

       Следующие опции доступны, когда as настроен для семейства процессоров C-SKY.

       -march=archname
	   Собрать для архитектуры archname. Опция --help перечисляет допустимые значения для archname.

       -mcpu=cpuname
	   Собрать для архитектуры cpuname. Опция --help перечисляет допустимые значения для cpuname.

       -EL
       -mlittle-endian
	   Генерировать выход с порядком байтов little-endian.

       -EB
       -mbig-endian
	   Генерировать выход с порядком байтов big-endian.

       -fpic
       -pic
	   Генерировать позиционно-независимый код.

       -mljump
       -mno-ljump
	   Включить/отключить преобразование коротких инструкций ветвления "jbf", "jbt" и "jbr" в "jmpi". Эта опция предназначена только для процессоров V2. Она игнорируется для целей CK801 и CK802, которые не поддерживают инструкцию "jmpi", и включена по умолчанию для других процессоров.

       -mbranch-stub
       -mno-branch-stub
	   Пропускать релокации "R_CKCORE_PCREL_IMM26BY2" для инструкций "bsr" в связыватель.

	   Эта опция доступна только для голых целей ELF V2 C-SKY и включена по умолчанию. Она не может быть использована в коде, который будет динамически связан с разделяемыми библиотеками.

       -force2bsr
       -mforce2bsr
       -no-force2bsr
       -mno-force2bsr
	   Включить/отключить преобразование инструкций "jbsr" в "bsr".
	   Эта опция всегда включена (и -mno-force2bsr игнорируется) для целей CK801/CK802. Она также всегда включена, когда действует -mbranch-stub.

       -jsri2bsr
       -mjsri2bsr
       -no-jsri2bsr
       -mno-jsri2bsr
	   Включить/отключить преобразование инструкций "jsri" в "bsr".
	   Эта опция включена по умолчанию.

       -mnolrw
       -mno-lrw
	   Включить/отключить преобразование инструкций "lrw" в пару "movih"/"ori".

       -melrw
       -mno-elrw
	   Включить/отключить расширенные инструкции "lrw". Эта опция включена по умолчанию для процессоров серии CK800.

       -mlaf
       -mliterals-after-func
       -mno-laf
       -mno-literals-after-func
	   Включить/отключить размещение пулов литералов после каждой функции.

       -mlabr
       -mliterals-after-br
       -mno-labr
       -mnoliterals-after-br
	   Включить/отключить размещение пулов литералов после безусловных ветвлений. Эта опция включена по умолчанию.

       -mistack
       -mno-istack
	   Включить/отключить инструкции стека прерываний. Эта опция включена по умолчанию для процессоров CK801, CK802 и CK802.

       Следующие опции явно включают определённые необязательные инструкции.
       Эти функции также включаются неявно при использовании "-mcpu=" для указания процессора, который их поддерживает.

       -mhard-float
	   Включить инструкции с жёсткой плавающей точкой.

       -mmp
	   Включить инструкции для многопроцессорных систем.

       -mcp
	   Включить инструкции сопроцессора.

       -mcache
	   Включить инструкцию предзагрузки кэша.

       -msecurity
	   Включить инструкции безопасности C-SKY.

       -mtrust
	   Включить инструкции доверия C-SKY.

       -mdsp
	   Включить инструкции DSP.

       -medsp
	   Включить улучшенные инструкции DSP.

       -mvdsp
	   Включить векторные инструкции DSP.

       Следующие опции доступны, когда as настроен для процессора Epiphany.

       -mepiphany
	   Указывает, что разрешены как 32-, так и 16-разрядные инструкции.
	   Это поведение по умолчанию.

       -mepiphany16
	   Ограничивает разрешённые инструкции только 16-разрядным.

       Следующие опции доступны, когда as настроен для процессора H8/300.
       @chapter H8/300 Dependent Features

   Options
       Версия as для Renesas H8/300 имеет одну опцию, зависящую от машины:

       -h-tick-hex
	   Поддерживать константы в стиле H'00 шестнадцатеричных чисел в дополнение к стилю 0x00.

       -mach=name
	   Установить вариант машины H8300. Принимаемые имена машин: "h8300h", "h8300hn", "h8300s", "h8300sn", "h8300sx" и
	   "h8300sxn".

       Следующие опции доступны, когда as настроен для процессора i386.

       --32 | --x32 | --64
	   Выбрать размер слова, либо 32 бита, либо 64 бита. --32 подразумевает архитектуру Intel i386, в то время как --x32 и --64 подразумевают архитектуру AMD x86-64 с размером слова 32 бита или 64 бита соответственно.

	   Эти опции доступны только для формата объектного файла ELF и требуют, чтобы необходимая поддержка BFD была включена (на 32-разрядной платформе вам нужно добавить --enable-64-bit-bfd в configure для включения 64-разрядного использования и использовать x86-64 в качестве целевой платформы).

       -n  По умолчанию x86 GAS заменяет несколько инструкций nop, используемых для выравнивания внутри разделов кода, на многобайтовые инструкции nop, такие как leal 0(%esi,1),%esi. Эта опция отключает оптимизацию, если явно указан одиночный байт nop (0x90) в качестве заполнителя для выравнивания.

       --divide
	   На платформах, производных от SVR4, символ / рассматривается как символ комментария, что означает, что он не может использоваться в выражениях. Опция --divide превращает / в нормальный символ. Это не отключает / в начале строки, начинающей комментарий, и не влияет на использование # для начала комментария.

       -march=CPU[+EXTENSION...]
	   Эта опция указывает целевой процессор. Ассемблер выдаст сообщение об ошибке, если будет предпринята попытка собрать инструкцию, которая не выполнится на целевом процессоре. Принимаемые имена процессоров: "i8086", "i186", "i286",
	   "i386", "i486", "i586", "i686", "pentium", "pentiumpro",
	   "pentiumii", "pentiumiii", "pentium4", "prescott", "nocona",
	   "core", "core2", "corei7", "iamcu", "k6", "k6_2", "athlon",
	   "opteron", "k8", "amdfam10", "bdver1", "bdver2", "bdver3",
	   "bdver4", "znver1", "znver2", "znver3", "znver4", "znver5",
	   "btver1", "btver2", "generic32" и "generic64".

	   Помимо базового набора инструкций, ассемблеру можно указать принимать различные мнемоники расширений. Например,
	   "-march=i686+sse4+vmx" расширяет i686 с sse4 и vmx. В настоящее время поддерживаются следующие расширения: 8087, 287, 387, 687,
	   "cmov", "fxsr", "mmx", "sse", "sse2", "sse3", "sse4a", "ssse3",
	   "sse4.1", "sse4.2", "sse4", "avx", "avx2", "lahf_sahf", "monitor",
	   "adx", "rdseed", "prfchw", "smap", "mpx", "sha", "rdpid",
	   "ptwrite", "cet", "gfni", "vaes", "vpclmulqdq", "prefetchwt1",
	   "clflushopt", "se1", "clwb", "movdiri", "movdir64b", "enqcmd",
	   "serialize", "tsxldtrk", "kl", "widekl", "hreset", "avx512f",
	   "avx512cd", "avx512er", "avx512pf", "avx512vl", "avx512bw",
	   "avx512dq", "avx512ifma", "avx512vbmi", "avx512_4fmaps",
	   "avx512_4vnniw", "avx512_vpopcntdq", "avx512_vbmi2", "avx512_vnni",
	   "avx512_bitalg", "avx512_vp2intersect", "tdx", "avx512_bf16",
	   "avx_vnni", "avx512_fp16", "prefetchi", "avx_ifma",
	   "avx_vnni_int8", "cmpccxadd", "wrmsrns", "msrlist",
	   "avx_ne_convert", "rao_int", "fred", "lkgs", "avx_vnni_int16",
	   "sha512", "sm3", "sm4", "pbndkb", "avx10.1", "avx10.1/512",
	   "avx10.1/256", "avx10.1/128", "user_msr", "msr_imm", "apx_f",
	   "avx10.2", "avx10.2/512", "avx10.2/256", "avx10.2/128", "movrs",
	   "amx_int8", "amx_bf16", "amx_fp16", "amx_complex", "amx_transpose",
	   "amx_tf32", "amx_fp8" "amx_movrs", "amx_avx512", "amx_tile", "vmx",
	   "vmfunc", "smx", "xsave", "xsaveopt", "xsavec", "xsaves", "aes",
	   "pclmul", "fsgsbase", "rdrnd", "f16c", "bmi2", "fma", "movbe",
	   "ept", "lzcnt", "popcnt", "hle", "rtm", "tsx", "invpcid",
	   "clflush", "mwaitx", "clzero", "wbnoinvd", "pconfig", "waitpkg",
	   "uintr", "cldemote", "rdpru", "mcommit", "sev_es", "lwp", "fma4",
	   "xop", "cx16", "syscall", "rdtscp", "3dnow", "3dnowa", "sse4a",
	   "sse5", "snp", "invlpgb", "tlbsync", "svme", "gmism2", "gmiccs",
	   "padlockrng2", "padlockphe2" и "padlock". Обратите внимание, что эти мнемоники расширений можно предварять "no", чтобы отозвать соответствующую (и зависимую) функциональность. Обратите внимание также, что суффиксы, разрешённые на "-march=avx10.<N>", налагают ограничение на длину вектора, то есть, несмотря на то, что эти суффиксы в противном случае являются "включающими" опциями, использование этих суффиксов отключит все инструкции с операндами регистров векторов или масок шире.

	   Когда директива ".arch" используется с -march, директива ".arch" имеет преимущество.

       -mtune=CPU
	   Эта опция указывает процессор для оптимизации. При использовании в сочетании с опцией -march будут генерироваться только инструкции процессора, указанного опцией -march.

	   Допустимые значения CPU идентичны списку процессоров для -march=CPU.

       -moperand-check=none
       -moperand-check=warning
       -moperand-check=error
	   Эти опции управляют тем, должен ли ассемблер проверять определённые операнды инструкций или комбинации операндов. Пример - инструкции, где размер операнда не может быть выведен из его операндов и также не указан с помощью суффикса инструкции. -moperand-check=none заставит ассемблер не выполнять эти проверки. -moperand-check=warning заставит ассемблер выдавать предупреждение, когда соответствующие проверки не проходят, что является значением по умолчанию. -moperand-check=error заставит ассемблер выдавать ошибку, когда соответствующие проверки не проходят.

       -msse2avx
	   Эта опция указывает, что ассемблер должен кодировать инструкции SSE с префиксом VEX, требуя наличия AVX. Инструкции SSE с расширенными GPR будут кодироваться с префиксом EVEX, требуя наличия AVX512 или AVX10.

       -muse-unaligned-vector-move
	   Эта опция указывает, что ассемблер должен кодировать выровненные векторные перемещения как невыровненные векторные перемещения.

       -msse-check=none
       -msse-check=warning
       -msse-check=error
	   Эти опции управляют тем, должен ли ассемблер проверять инструкции SSE. -msse-check=none заставит ассемблер не проверять инструкции SSE, что является значением по умолчанию. -msse-check=warning заставит ассемблер выдавать предупреждение для любой инструкции SSE. -msse-check=error заставит ассемблер выдавать ошибку для любой инструкции SSE.

       -mavxscalar=128
       -mavxscalar=256
	   Эти опции управляют тем, как ассемблер должен кодировать скалярные инструкции AVX. -mavxscalar=128 закодирует скалярные инструкции AVX с длиной вектора 128 бит, что является значением по умолчанию. -mavxscalar=256 закодирует скалярные инструкции AVX с длиной вектора 256 бит.

	   ПРЕДУПРЕЖДЕНИЕ: Не используйте это для производственного кода - из-за ошибок ЦП результирующий код может не работать на определённых моделях.

       -mvexwig=0
       -mvexwig=1
	   Эти опции управляют тем, как ассемблер должен кодировать игнорируемые VEX.W (WIG) инструкции VEX. -mvexwig=0 закодирует WIG инструкции VEX с vex.w = 0, что является значением по умолчанию. -mvexwig=1 закодирует WIG EVEX инструкции с vex.w = 1.

	   ПРЕДУПРЕЖДЕНИЕ: Не используйте это для производственного кода - из-за ошибок ЦП результирующий код может не работать на определённых моделях.

       -mevexlig=128
       -mevexlig=256
       -mevexlig=512
	   Эти опции управляют тем, как ассемблер должен кодировать игнорируемые длины (LIG) инструкции EVEX. -mevexlig=128 закодирует LIG EVEX инструкции с длиной вектора 128 бит, что является значением по умолчанию.
	   -mevexlig=256 и -mevexlig=512 закодируют LIG EVEX инструкции с длиной вектора 256 бит и 512 бит соответственно.

       -mevexwig=0
       -mevexwig=1
	   Эти опции управляют тем, как ассемблер должен кодировать игнорируемые w (WIG) инструкции EVEX. -mevexwig=0 закодирует WIG EVEX инструкции с evex.w = 0, что является значением по умолчанию. -mevexwig=1 закодирует WIG EVEX инструкции с evex.w = 1.

       -mmnemonic=att
       -mmnemonic=intel
	   Эта опция указывает мнемонику инструкций для сопоставления инструкций. Директивы ".att_mnemonic" и ".intel_mnemonic" имеют преимущество.

       -msyntax=att
       -msyntax=intel
	   Эта опция указывает синтаксис инструкций при обработке инструкций. Директивы ".att_syntax" и ".intel_syntax" имеют преимущество.

       -mnaked-reg
	   Эта опция указывает, что регистрам не требуется префикс %. Директивы ".att_syntax" и ".intel_syntax" имеют преимущество.

       -madd-bnd-prefix
	   Эта опция заставляет ассемблер добавлять префикс BND ко всем ветвлениям, даже если такой префикс не был явно указан в исходном коде.

       -mno-shared
	   На цели ELF ассемблер обычно оптимизирует ненужные релокации не-PLT против определённых не-слабых глобальных целей ветвления с видимостью по умолчанию. Опция -mshared говорит ассемблеру генерировать код, который может войти в разделяемую библиотеку, где все не-слабые глобальные цели ветвления с видимостью по умолчанию могут быть вытеснены.
	   Полученный код немного больше. Эта опция влияет только на обработку инструкций ветвления.

       -mbig-obj
	   На цели PE/COFF эта опция заставляет использовать формат большого объектного файла, который позволяет более чем 32768 разделов.

       -momit-lock-prefix=no
       -momit-lock-prefix=yes
	   Эти опции управляют тем, как ассемблер должен кодировать префикс lock.
	   Эта опция предназначена как обходной путь для процессоров, которые сбоят на префиксе lock. Эта опция может быть безопасно использована только с однокристальными, однопоточными компьютерами -momit-lock-prefix=yes omitted all lock prefixes. -momit-lock-prefix=no encodes lock prefix as usual, which is the default.

       -mfence-as-lock-add=no
       -mfence-as-lock-add=yes
	   These options control how the assembler should encode lfence,
	   mfence and sfence. -mfence-as-lock-add=yes will encode lfence,
	   mfence and sfence as lock addl $0x0, (%rsp) in 64-bit mode and lock
	   addl $0x0, (%esp) in 32-bit mode. -mfence-as-lock-add=no will
	   encode lfence, mfence and sfence as usual, which is the default.

       -mrelax-relocations=no
       -mrelax-relocations=yes
	   These options control whether the assembler should generate relax
	   relocations, R_386_GOT32X, in 32-bit mode, or R_X86_64_GOTPCRELX
	   and R_X86_64_REX_GOTPCRELX, in 64-bit mode.
	   -mrelax-relocations=yes will generate relax relocations.
	   -mrelax-relocations=no will not generate relax relocations. The
	   default can be controlled by a configure option
	   --enable-x86-relax-relocations.

       -mtls-check=no
       -mtls-check=yes
	   These options control whether the assembler check tls relocation.
	   -mtls-check=yes will check tls relocation. -mtls-check=no will not
	   check tls relocation The default can be controlled by a configure
	   option --enable-x86-tls-check.

       -malign-branch-boundary=NUM
	   This option controls how the assembler should align branches with
	   segment prefixes or NOP. NUM must be a power of 2. It should be 0
	   or no less than 16. Branches will be aligned within NUM byte
	   boundary. -malign-branch-boundary=0, which is the default, doesn't
	   align branches.

       -malign-branch=TYPE[+TYPE...]
	   This option specifies types of branches to align. TYPE is
	   combination of jcc, which aligns conditional jumps, fused, which
	   aligns fused conditional jumps, jmp, which aligns unconditional
	   jumps, call which aligns calls, ret, which aligns rets, indirect,
	   which aligns indirect jumps and calls. The default is
	   -malign-branch=jcc+fused+jmp.

       -malign-branch-prefix-size=NUM
	   This option specifies the maximum number of prefixes on an
	   instruction to align branches. NUM should be between 0 and 5. The
	   default NUM is 5.

       -mbranches-within-32B-boundaries
	   This option aligns conditional jumps, fused conditional jumps and
	   unconditional jumps within 32 byte boundary with up to 5 segment
	   prefixes on an instruction. It is equivalent to
	   -malign-branch-boundary=32 -malign-branch=jcc+fused+jmp
	   -malign-branch-prefix-size=5. The default doesn't align branches.

       -mlfence-after-load=no
       -mlfence-after-load=yes
	   These options control whether the assembler should generate lfence
	   after load instructions. -mlfence-after-load=yes will generate
	   lfence. -mlfence-after-load=no will not generate lfence, which is
	   the default.

       -mlfence-before-indirect-branch=none
       -mlfence-before-indirect-branch=all
       -mlfence-before-indirect-branch=register
       -mlfence-before-indirect-branch=memory
	   These options control whether the assembler should generate lfence
	   before indirect near branch instructions.
	   -mlfence-before-indirect-branch=all will generate lfence before
	   indirect near branch via register and issue a warning before
	   indirect near branch via memory. It also implicitly sets
	   -mlfence-before-ret=shl when there's no explicit
	   -mlfence-before-ret=. -mlfence-before-indirect-branch=register
	   will generate lfence before indirect near branch via register.
	   -mlfence-before-indirect-branch=memory will issue a warning before
	   indirect near branch via memory.
	   -mlfence-before-indirect-branch=none will not generate lfence nor
	   issue warning, which is the default. Note that lfence won't be
	   generated before indirect near branch via register with
	   -mlfence-after-load=yes since lfence will be generated after
	   loading branch target register.

       -mlfence-before-ret=none
       -mlfence-before-ret=shl
       -mlfence-before-ret=or
       -mlfence-before-ret=yes
       -mlfence-before-ret=not
	   These options control whether the assembler should generate lfence
	   before ret. -mlfence-before-ret=or will generate generate or
	   instruction with lfence. -mlfence-before-ret=shl/yes will generate
	   shl instruction with lfence. -mlfence-before-ret=not will generate
	   not instruction with lfence. -mlfence-before-ret=none will not
	   generate lfence, which is the default.

       -mx86-used-note=no
       -mx86-used-note=yes
	   These options control whether the assembler should generate
	   GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_FEATURE_2_USED GNU
	   property notes. The default can be controlled by the
	   --enable-x86-used-note configure option.

       -mevexrcig=rne
       -mevexrcig=rd
       -mevexrcig=ru
       -mevexrcig=rz
	   These options control how the assembler should encode SAE-only EVEX
	   instructions. -mevexrcig=rne will encode RC bits of EVEX
	   instruction with 00, which is the default. -mevexrcig=rd,
	   -mevexrcig=ru and -mevexrcig=rz will encode SAE-only EVEX
	   instructions with 01, 10 and 11 RC bits, respectively.

       -mamd64
       -mintel64
	   This option specifies that the assembler should accept only AMD64
	   or Intel64 ISA in 64-bit mode. The default is to accept common,
	   Intel64 only and AMD64 ISAs.

       -O0 | -O | -O1 | -O2 | -Os
	   Optimize instruction encoding with smaller instruction size. -O
	   and -O1 encode 64-bit register load instructions with 64-bit
	   immediate as 32-bit register load instructions with 31-bit or
	   32-bits immediates, encode 64-bit register clearing instructions
	   with 32-bit register clearing instructions, encode 256-bit/512-bit
	   VEX/EVEX vector register clearing instructions with 128-bit VEX
	   vector register clearing instructions, encode 128-bit/256-bit EVEX
	   vector register load/store instructions with VEX vector register
	   load/store instructions, and encode 128-bit/256-bit EVEX packed
	   integer logical instructions with 128-bit/256-bit VEX packed
	   integer logical.

	   -O2 includes -O1 optimization plus encodes 256-bit/512-bit EVEX
	   vector register clearing instructions with 128-bit EVEX vector
	   register clearing instructions. In 64-bit mode VEX encoded
	   instructions with commutative source operands will also have their
	   source operands swapped if this allows using the 2-byte VEX prefix
	   form instead of the 3-byte one. Certain forms of AND as well as OR
	   with the same (register) operand specified twice will also be
	   changed to TEST.

	   -Os includes -O2 optimization plus encodes 16-bit, 32-bit and
	   64-bit register tests with immediate as 8-bit register test with
	   immediate. -O0 turns off this optimization.

       Следующие опции доступны, когда as настроен для серии Ubicom IP2K.

       -mip2022ext
	   Указывает, что разрешены расширенные инструкции IP2022.

       -mip2022
	   Восстанавливает поведение по умолчанию, которое ограничивает разрешённые инструкции базовыми IP2022.

       Следующие опции доступны, когда as настроен для процессоров Renesas M32C и M16C.

       -m32c
	   Собрать инструкции M32C.

       -m16c
	   Собрать инструкции M16C (значение по умолчанию).

       -relax
	   Включить поддержку релаксаций во время связывания.

       -h-tick-hex
	   Поддерживать константы в стиле H'00 шестнадцатеричных чисел в дополнение к стилю 0x00.

       Следующие опции доступны, когда as настроен для серии Renesas M32R (ранее Mitsubishi M32R).

       --m32rx
	   Указать, какой процессор в семье M32R является целью. Значение по умолчанию обычно M32R, но эта опция изменяет его на M32RX.

       --warn-explicit-parallel-conflicts or --Wp
	   Выдавать сообщения предупреждений при обнаружении сомнительных параллельных конструкций.

       --no-warn-explicit-parallel-conflicts or --Wnp
	   Не выдавать сообщения предупреждений при обнаружении сомнительных параллельных конструкций.

       Следующие опции доступны, когда as настроен для серии Motorola 68000.

       -l  Сокращать ссылки на неопределённые символы до одного слова вместо двух.

       -m68000 | -m68008 | -m68010 | -m68020 | -m68030
       | -m68040 | -m68060 | -m68302 | -m68331 | -m68332
       | -m68333 | -m68340 | -mcpu32 | -m5200
	   Указать, какой процессор в семье 68000 является целью. Значение по умолчанию обычно 68020, но это может быть изменено во время конфигурации.

       -m68881 | -m68882 | -mno-68881 | -mno-68882
	   Целевая машина имеет (или не имеет) сопроцессор с плавающей точкой. Значение по умолчанию - предположить наличие сопроцессора для 68020,
	   68030 и cpu32. Хотя базовый 68000 не совместим с 68881, комбинацию из двух можно указать, поскольку возможно эмулирование инструкций сопроцессора с главным процессором.

       -m68851 | -mno-68851
	   Целевая машина имеет (или не имеет) сопроцессор блока управления памятью. Значение по умолчанию - предположить наличие MMU для 68020 и выше.

       Для деталей опций, зависящих от машины PDP-11, см. PDP-11-Options.

       -mpic | -mno-pic
	   Генерировать позиционно-независимый (или позиционно-зависимый) код. Значение по умолчанию - -mpic.

       -mall
       -mall-extensions
	   Включить все расширения набора инструкций. Это значение по умолчанию.

       -mno-extensions
	   Отключить все расширения набора инструкций.

       -mextension | -mno-extension
	   Включить (или отключить) определённое расширение набора инструкций.

       -mcpu
	   Включить расширения набора инструкций, поддерживаемые определённым CPU, и отключить все другие расширения.

       -mmachine
	   Включить расширения набора инструкций, поддерживаемые определённой моделью машины, и отключить все другие расширения.

       Следующие опции доступны, когда as настроен для процессора picoJava.

       -mb Generate "big endian" format output.

       -ml Generate "little endian" format output.

       Следующие опции доступны, когда as настроен для процессора PRU.

       -mlink-relax
	   Assume that LD would optimize LDI32 instructions by checking the
	   upper 16 bits of the expression. If they are all zeros, then LD
	   would shorten the LDI32 instruction to a single LDI. In such case
	   "as" will output DIFF relocations for diff expressions.

       -mno-link-relax
	   Assume that LD would not optimize LDI32 instructions. As a
	   consequence, DIFF relocations will not be emitted.

       -mno-warn-regname-label
	   Do not warn if a label name matches a register name. Usually
	   assembler programmers will want this warning to be emitted. C
	   compilers may want to turn this off.

       Следующие опции доступны, когда as настроен для процессора MIPS.

       -G num
	   Эта опция устанавливает наибольший размер объекта, на который можно ссылаться неявно с помощью регистра "gp". Она принимается только для целей, использующих формат ECOFF, таких как DECstation, работающий под Ultrix. Значение по умолчанию - 8.

       -EB Generate "big endian" format output.

       -EL Generate "little endian" format output.

       -mips1
       -mips2
       -mips3
       -mips4
       -mips5
       -mips32
       -mips32r2
       -mips32r3
       -mips32r5
       -mips32r6
       -mips64
       -mips64r2
       -mips64r3
       -mips64r5
       -mips64r6
	   Generate code for a particular MIPS Instruction Set Architecture
	   level. -mips1 is an alias for -march=r3000, -mips2 is an alias for
	   -march=r6000, -mips3 is an alias for -march=r4000 and -mips4 is an
	   alias for -march=r8000. -mips5, -mips32, -mips32r2, -mips32r3,
	   -mips32r5, -mips32r6, -mips64, -mips64r2, -mips64r3, -mips64r5, and
	   -mips64r6 correspond to generic MIPS V, MIPS32, MIPS32 Release 2,
	   MIPS32 Release 3, MIPS32 Release 5, MIPS32 Release 6, MIPS64,
	   MIPS64 Release 2, MIPS64 Release 3, MIPS64 Release 5, and MIPS64
	   Release 6 ISA processors, respectively.

       -march=cpu
	   Generate code for a particular MIPS CPU.

       -mtune=cpu
	   Schedule and tune for a particular MIPS CPU.

       -mfix7000
       -mno-fix7000
	   Cause nops to be inserted if the read of the destination register
	   of an mfhi or mflo instruction occurs in the following two
	   instructions.

       -mfix-rm7000
       -mno-fix-rm7000
	   Cause nops to be inserted if a dmult or dmultu instruction is
	   followed by a load instruction.

       -mfix-r5900
       -mno-fix-r5900
	   Do not attempt to schedule the preceding instruction into the delay
	   slot of a branch instruction placed at the end of a short loop of
	   six instructions or fewer and always schedule a "nop" instruction
	   there instead. The short loop bug under certain conditions causes
	   loops to execute only once or twice, due to a hardware bug in the
	   R5900 chip.

       -mdebug
       -no-mdebug
	   Cause stabs-style debugging output to go into an ECOFF-style
	   .mdebug section instead of the standard ELF .stabs sections.

       -mpdr
       -mno-pdr
	   Control generation of ".pdr" sections.

       -mgp32
       -mfp32
	   The register sizes are normally inferred from the ISA and ABI, but
	   these flags force a certain group of registers to be treated as 32
	   bits wide at all times. -mgp32 controls the size of general-
	   purpose registers and -mfp32 controls the size of floating-point
	   registers.

       -mgp64
       -mfp64
	   The register sizes are normally inferred from the ISA and ABI, but
	   these flags force a certain group of registers to be treated as 64
	   bits wide at all times. -mgp64 controls the size of general-
	   purpose registers and -mfp64 controls the size of floating-point
	   registers.

       -mfpxx
	   The register sizes are normally inferred from the ISA and ABI, but
	   using this flag in combination with -mabi=32 enables an ABI variant
	   which will operate correctly with floating-point registers which
	   are 32 or 64 bits wide.

       -modd-spreg
       -mno-odd-spreg
	   Enable use of floating-point operations on odd-numbered single-
	   precision registers when supported by the ISA. -mfpxx implies
	   -mno-odd-spreg, otherwise the default is -modd-spreg.

       -mips16
       -no-mips16
	   Generate code for the MIPS 16 processor. This is equivalent to
	   putting ".module mips16" at the start of the assembly file.
	   -no-mips16 turns off this option.

       -mmips16e2
       -mno-mips16e2
	   Enable the use of MIPS16e2 instructions in MIPS16 mode. This is
	   equivalent to putting ".module mips16e2" at the start of the
	   assembly file. -mno-mips16e2 turns off this option.

       -mmicromips
       -mno-micromips
	   Generate code for the microMIPS processor. This is equivalent to
	   putting ".module micromips" at the start of the assembly file.
	   -mno-micromips turns off this option. This is equivalent to
	   putting ".module nomicromips" at the start of the assembly file.

       -msmartmips
       -mno-smartmips
	   Enables the SmartMIPS extension to the MIPS32 instruction set.
	   This is equivalent to putting ".module smartmips" at the start of
	   the assembly file. -mno-smartmips turns off this option.

       -mips3d
       -no-mips3d
	   Generate code for the MIPS-3D Application Specific Extension. This
	   tells the assembler to accept MIPS-3D instructions. -no-mips3d
	   turns off this option.

       -mdmx
       -no-mdmx
	   Generate code for the MDMX Application Specific Extension. This
	   tells the assembler to accept MDMX instructions. -no-mdmx turns
	   off this option.

       -mdsp
       -mno-dsp
	   Generate code for the DSP Release 1 Application Specific Extension.
	   This tells the assembler to accept DSP Release 1 instructions.
	   -mno-dsp turns off this option.

       -mdspr2
       -mno-dspr2
	   Generate code for the DSP Release 2 Application Specific Extension.
	   This option implies -mdsp. This tells the assembler to accept DSP
	   Release 2 instructions. -mno-dspr2 turns off this option.

       -mdspr3
       -mno-dspr3
	   Generate code for the DSP Release 3 Application Specific Extension.
	   This option implies -mdsp and -mdspr2. This tells the assembler to
	   accept DSP Release 3 instructions. -mno-dspr3 turns off this
	   option.

       -mmsa
       -mno-msa
	   Generate code for the MIPS SIMD Architecture Extension. This tells
	   the assembler to accept MSA instructions. -mno-msa turns off this
	   option.

       -mxpa
       -mno-xpa
	   Generate code for the MIPS eXtended Physical Address (XPA)
	   Extension. This tells the assembler to accept XPA instructions.
	   -mno-xpa turns off this option.

       -mmt
       -mno-mt
	   Generate code for the MT Application Specific Extension. This
	   tells the assembler to accept MT instructions. -mno-mt turns off
	   this option.

       -mmcu
       -mno-mcu
	   Generate code for the MCU Application Specific Extension. This
	   tells the assembler to accept MCU instructions. -mno-mcu turns off
	   this option.

       -mcrc
       -mno-crc
	   Generate code for the MIPS cyclic redundancy check (CRC)
	   Application Specific Extension. This tells the assembler to accept
	   CRC instructions. -mno-crc turns off this option.

       -mginv
       -mno-ginv
	   Generate code for the Global INValidate (GINV) Application Specific
	   Extension. This tells the assembler to accept GINV instructions.
	   -mno-ginv turns off this option.

       -mloongson-mmi
       -mno-loongson-mmi
	   Generate code for the Loongson MultiMedia extensions Instructions
	   (MMI) Application Specific Extension. This tells the assembler to
	   accept MMI instructions. -mno-loongson-mmi turns off this option.

       -mloongson-cam
       -mno-loongson-cam
	   Generate code for the Loongson Content Address Memory (CAM)
	   instructions. This tells the assembler to accept Loongson CAM
	   instructions. -mno-loongson-cam turns off this option.

       -mloongson-ext
       -mno-loongson-ext
	   Generate code for the Loongson EXTensions (EXT) instructions. This
	   tells the assembler to accept Loongson EXT instructions.
	   -mno-loongson-ext turns off this option.

       -mloongson-ext2
       -mno-loongson-ext2
	   Generate code for the Loongson EXTensions R2 (EXT2) instructions.
	   This option implies -mloongson-ext. This tells the assembler to
	   accept Loongson EXT2 instructions. -mno-loongson-ext2 turns off
	   this option.

       -minsn32
       -mno-insn32
	   Only use 32-bit instruction encodings when generating code for the
	   microMIPS processor. This option inhibits the use of any 16-bit
	   instructions. This is equivalent to putting ".set insn32" at the
	   start of the assembly file. -mno-insn32 turns off this option.
	   This is equivalent to putting ".set noinsn32" at the start of the
	   assembly file. By default -mno-insn32 is selected, allowing all
	   instructions to be used.

       --construct-floats
       --no-construct-floats
	   The --no-construct-floats option disables the construction of
	   double width floating point constants by loading the two halves of
	   the value into the two single width floating point registers that
	   make up the double width register. By default --construct-floats
	   is selected, allowing construction of these floating point
	   constants.

       --relax-branch
       --no-relax-branch
	   The --relax-branch option enables the relaxation of out-of-range
	   branches. By default --no-relax-branch is selected, causing any
	   out-of-range branches to produce an error.

       -mignore-branch-isa
       -mno-ignore-branch-isa
	   Ignore branch checks for invalid transitions between ISA modes.
	   The semantics of branches does not provide for an ISA mode switch,
	   so in most cases the ISA mode a branch has been encoded for has to
	   be the same as the ISA mode of the branch's target label.
	   Therefore GAS has checks implemented that verify in branch assembly
	   that the two ISA modes match. -mignore-branch-isa disables these
	   checks. By default -mno-ignore-branch-isa is selected, causing any
	   invalid branch requiring a transition between ISA modes to produce
	   an error.

       -mnan=encoding
	   Select between the IEEE 754-2008 (-mnan=2008) or the legacy
	   (-mnan=legacy) NaN encoding format. The latter is the default.

       --emulation=name
	   This option was formerly used to switch between ELF and ECOFF
	   output on targets like IRIX 5 that supported both. MIPS ECOFF
	   support was removed in GAS 2.24, so the option now serves little
	   purpose. It is retained for backwards compatibility.

	   The available configuration names are: mipself, mipslelf and
	   mipsbelf. Choosing mipself now has no effect, since the output is
	   always ELF. mipslelf and mipsbelf select little- and big-endian
	   output respectively, but -EL and -EB are now the preferred options
	   instead.

       -nocpp
	   as ignores this option. It is accepted for compatibility with the
	   native tools.

       --trap
       --no-trap
       --break
       --no-break
	   Control how to deal with multiplication overflow and division by
	   zero. --trap or --no-break (which are synonyms) take a trap
	   exception (and only work for Instruction Set Architecture level 2
	   and higher); --break or --no-trap (also synonyms, and the default)
	   take a break exception.

       -n  When this option is used, as will issue a warning every time it
	   generates a nop instruction from a macro.

       Следующие опции доступны, когда as настроен для процессора LoongArch.

       -fpic
       -fPIC
	   Generate position-independent code

       -fno-pic
	   Don't generate position-independent code (default)

       Следующие опции доступны, когда as настроен для процессора Meta.

       "-mcpu=metac11"
	   Generate code for Meta 1.1.

       "-mcpu=metac12"
	   Generate code for Meta 1.2.

       "-mcpu=metac21"
	   Generate code for Meta 2.1.

       "-mfpu=metac21"
	   Allow code to use FPU hardware of Meta 2.1.

       См. страницы info для документации по опциям, специфичным для MMIX.

       Следующие опции доступны, когда as настроен для процессора NDS32.

       "-O1"
	   Optimize for performance.

       "-Os"
	   Optimize for space.

       "-EL"
	   Produce little endian data output.

       "-EB"
	   Produce little endian data output.

       "-mpic"
	   Generate PIC.

       "-mno-fp-as-gp-relax"
	   Suppress fp-as-gp relaxation for this file.

       "-mb2bb-relax"
	   Back-to-back branch optimization.

       "-mno-all-relax"
	   Suppress all relaxation for this file.

       "-march=<arch name>"
	   Assemble for architecture <arch name> which could be v3, v3j, v3m,
	   v3f, v3s, v2, v2j, v2f, v2s.

       "-mbaseline=<baseline>"
	   Assemble for baseline <baseline> which could be v2, v3, v3m.

       "-mfpu-freg=FREG"
	   Specify a FPU configuration.

	   "0	   8 SP /  4 DP registers"
	   "1	  16 SP /  8 DP registers"
	   "2	  32 SP / 16 DP registers"
	   "3	  32 SP / 32 DP registers"
       "-mabi=abi"
	   Specify a abi version <abi> could be v1, v2, v2fp, v2fpp.

       "-m[no-]mac"
	   Enable/Disable Multiply instructions support.

       "-m[no-]div"
	   Enable/Disable Divide instructions support.

       "-m[no-]16bit-ext"
	   Enable/Disable 16-bit extension

       "-m[no-]dx-regs"
	   Enable/Disable d0/d1 registers

       "-m[no-]perf-ext"
	   Enable/Disable Performance extension

       "-m[no-]perf2-ext"
	   Enable/Disable Performance extension 2

       "-m[no-]string-ext"
	   Enable/Disable String extension

       "-m[no-]reduced-regs"
	   Enable/Disable Reduced Register configuration (GPR16) option

       "-m[no-]audio-isa-ext"
	   Enable/Disable AUDIO ISA extension

       "-m[no-]fpu-sp-ext"
	   Enable/Disable FPU SP extension

       "-m[no-]fpu-dp-ext"
	   Enable/Disable FPU DP extension

       "-m[no-]fpu-fma"
	   Enable/Disable FPU fused-multiply-add instructions

       "-mall-ext"
	   Turn on all extensions and instructions support

       Следующие опции доступны, когда as настроен для процессора PowerPC.

       -a32
	   Generate ELF32 or XCOFF32.

       -a64
	   Generate ELF64 or XCOFF64.

       -K PIC
	   Set EF_PPC_RELOCATABLE_LIB in ELF flags.

       -mpwrx | -mpwr2
	   Generate code for POWER/2 (RIOS2).

       -mpwr
	   Generate code for POWER (RIOS1)

       -m601
	   Generate code for PowerPC 601.

       -mppc, -mppc32, -m603, -m604
	   Generate code for PowerPC 603/604.

       -m403, -m405
	   Generate code for PowerPC 403/405.

       -m440
	   Generate code for PowerPC 440. BookE and some 405 instructions.

       -m464
	   Generate code for PowerPC 464.

       -m476
	   Generate code for PowerPC 476.

       -m7400, -m7410, -m7450, -m7455
	   Generate code for PowerPC 7400/7410/7450/7455.

       -m750cl, -mgekko, -mbroadway
	   Generate code for PowerPC 750CL/Gekko/Broadway.

       -m821, -m850, -m860
	   Generate code for PowerPC 821/850/860.

       -mppc64, -m620
	   Generate code for PowerPC 620/625/630.

       -me200z2, -me200z4
	   Generate code for e200 variants, e200z2 with LSP, e200z4 with SPE.

       -me300
	   Generate code for PowerPC e300 family.

       -me500, -me500x2
	   Generate code for Motorola e500 core complex.

       -me500mc
	   Generate code for Freescale e500mc core complex.

       -me500mc64
	   Generate code for Freescale e500mc64 core complex.

       -me5500
	   Generate code for Freescale e5500 core complex.

       -me6500
	   Generate code for Freescale e6500 core complex.

       -mlsp
	   Enable LSP instructions. (Disables SPE and SPE2.)

       -mspe
	   Generate code for Motorola SPE instructions. (Disables LSP.)

       -mspe2
	   Generate code for Freescale SPE2 instructions. (Disables LSP.)

       -mtitan
	   Generate code for AppliedMicro Titan core complex.

       -mppc64bridge
	   Generate code for PowerPC 64, including bridge insns.

       -mbooke
	   Generate code for 32-bit BookE.

       -ma2
	   Generate code for A2 architecture.

       -maltivec
	   Generate code for processors with AltiVec instructions.

       -mvle
	   Generate code for Freescale PowerPC VLE instructions.

       -mvsx
	   Generate code for processors with Vector-Scalar (VSX) instructions.

       -mhtm
	   Generate code for processors with Hardware Transactional Memory
	   instructions.

       -mpower4, -mpwr4
	   Generate code for Power4 architecture.

       -mpower5, -mpwr5, -mpwr5x
	   Generate code for Power5 architecture.

       -mpower6, -mpwr6
	   Generate code for Power6 architecture.

       -mpower7, -mpwr7
	   Generate code for Power7 architecture.

       -mpower8, -mpwr8
	   Generate code for Power8 architecture.

       -mpower9, -mpwr9
	   Generate code for Power9 architecture.

       -mpower10, -mpwr10
	   Generate code for Power10 architecture.

       -mpower11, -mpwr11
	   Generate code for Power11 architecture.

       -mfuture
	   Generate code for 'future' architecture.

       -mcell
       -mcell
	   Generate code for Cell Broadband Engine architecture.

       -mcom
	   Generate code Power/PowerPC common instructions.

       -many
	   Generate code for any architecture (PWR/PWRX/PPC).

       -mregnames
	   Allow symbolic names for registers.

       -mno-regnames
	   Do not allow symbolic names for registers.

       -mrelocatable
	   Support for GCC's -mrelocatable option.

       -mrelocatable-lib
	   Support for GCC's -mrelocatable-lib option.

       -memb
	   Set PPC_EMB bit in ELF flags.

       -mlittle, -mlittle-endian, -le
	   Generate code for a little endian machine.

       -mbig, -mbig-endian, -be
	   Generate code for a big endian machine.

       -msolaris
	   Generate code for Solaris.

       -mno-solaris
	   Do not generate code for Solaris.

       -nops=count
	   If an alignment directive inserts more than count nops, put a
	   branch at the beginning to skip execution of the nops.

       Следующие опции доступны, когда as настроен для процессора RISC-V.

       -fpic
       -fPIC
	   Generate position-independent code

       -fno-pic
	   Don't generate position-independent code (default)

       -march=ISA
	   Select the base isa, as specified by ISA. For example
	   -march=rv32ima. If this option and the architecture attributes
	   aren't set, then assembler will check the default configure setting
	   --with-arch=ISA.

       -misa-spec=ISAspec
	   Select the default isa spec version. If the version of ISA isn't
	   set by -march, then assembler helps to set the version according to
	   the default chosen spec. If this option isn't set, then assembler
	   will check the default configure setting --with-isa-spec=ISAspec.

       -mpriv-spec=PRIVspec
	   Select the privileged spec version. We can decide whether the CSR
	   is valid or not according to the chosen spec. If this option and
	   the privilege attributes aren't set, then assembler will check the
	   default configure setting --with-priv-spec=PRIVspec.

       -mabi=ABI
	   Selects the ABI, which is either "ilp32" or "lp64", optionally
	   followed by "f", "d", or "q" to indicate single-precision, double-
	   precision, or quad-precision floating-point calling convention, or
	   none or "e" to indicate the soft-float calling convention ("e"
	   indicates a soft-float RVE ABI).

       -mrelax
	   Take advantage of linker relaxations to reduce the number of
	   instructions required to materialize symbol addresses. (default)

       -mno-relax
	   Don't do linker relaxations.

       -march-attr
	   Generate the default contents for the riscv elf attribute section
	   if the .attribute directives are not set. This section is used to
	   record the information that a linker or runtime loader needs to
	   check compatibility. This information includes ISA string, stack
	   alignment requirement, unaligned memory accesses, and the major,
	   minor and revision version of privileged specification.

       -mno-arch-attr
	   Don't generate the default riscv elf attribute section if the
	   .attribute directives are not set.

       -mcsr-check
	   Enable the CSR checking for the ISA-dependent CRS and the read-only
	   CSR. The ISA-dependent CSR are only valid when the specific ISA is
	   set. The read-only CSR can not be written by the CSR instructions.

       -mno-csr-check
	   Don't do CSR checking.

       -mlittle-endian
	   Generate code for a little endian machine.

       -mbig-endian
	   Generate code for a big endian machine.

       См. страницы info для документации по опциям, специфичным для RX.

       Следующие опции доступны, когда as настроен для семейства процессоров s390.

       -m31
       -m64
	   Select the word size, either 31/32 bits or 64 bits.

       -mesa
       -mzarch
	   Select the architecture mode, either the Enterprise System
	   Architecture (esa) or the z/Architecture mode (zarch).

       -march=processor
	   Specify which s390 processor variant is the target, g5 (or arch3),
	   g6, z900 (or arch5), z990 (or arch6), z9-109, z9-ec (or arch7), z10
	   (or arch8), z196 (or arch9), zEC12 (or arch10), z13 (or arch11),
	   z14 (or arch12), z15 (or arch13), z16 (or arch14), or arch15.

       -mregnames
       -mno-regnames
	   Allow or disallow symbolic names for registers.

       -mwarn-areg-zero
	   Warn whenever the operand for a base or index register has been
	   specified but evaluates to zero.

       -mwarn-regtype-mismatch=strict
       -mwarn-regtype-mismatch=relaxed
       -mwarn-regtype-mismatch=no
       -mno-warn-regtype-mismatch
	   Controls whether the assembler performs register name type checks
	   and generates a warning message in case of a mismatch with the
	   operand register type. The default (which can be restored by using
	   the relaxed argument) is to perform relaxed register name type
	   checks, which allow floating point register (FPR) names %f0 to %f15
	   to be specified as argument to vector register (VR) operands and
	   vector register (VR) names %v0 to %v15 to be specified as argument
	   to floating point register (FPR) operands. This is acceptable as
	   the FPR are embedded into the lower half of the VR. Using the
	   strict argument strict register name type checks are performed.
	   The no argument, which is equivalent to -mno-warn-regtype-mismatch,
	   disables any register name type checks.

       Следующие опции доступны, когда as настроен для процессора TMS320C6000.

       -march=arch
	   Enable (only) instructions from architecture arch. By default, all
	   instructions are permitted.

	   The following values of arch are accepted: "c62x", "c64x", "c64x+",
	   "c67x", "c67x+", "c674x".

       -mdsbt
       -mno-dsbt
	   The -mdsbt option causes the assembler to generate the
	   "Tag_ABI_DSBT" attribute with a value of 1, indicating that the
	   code is using DSBT addressing. The -mno-dsbt option, the default,
	   causes the tag to have a value of 0, indicating that the code does
	   not use DSBT addressing. The linker will emit a warning if objects
	   of different type (DSBT and non-DSBT) are linked together.

       -mpid=no
       -mpid=near
       -mpid=far
	   The -mpid= option causes the assembler to generate the
	   "Tag_ABI_PID" attribute with a value indicating the form of data
	   addressing used by the code. -mpid=no, the default, indicates
	   position-dependent data addressing, -mpid=near indicates position-
	   independent addressing with GOT accesses using near DP addressing,
	   and -mpid=far indicates position-independent addressing with GOT
	   accesses using far DP addressing. The linker will emit a warning
	   if objects built with different settings of this option are linked
	   together.

       -mpic
       -mno-pic
	   The -mpic option causes the assembler to generate the "Tag_ABI_PIC"
	   attribute with a value of 1, indicating that the code is using
	   position-independent code addressing, The "-mno-pic" option, the
	   default, causes the tag to have a value of 0, indicating position-
	   dependent code addressing. The linker will emit a warning if
	   objects of different type (position-dependent and position-
	   independent) are linked together.

       -mbig-endian
       -mlittle-endian
	   Generate code for the specified endianness. The default is little-
	   endian.

       Следующие опции доступны, когда as настроен для процессора TILE-Gx.

       -m32 | -m64
	   Select the word size, either 32 bits or 64 bits.

       -EB | -EL
	   Select the endianness, either big-endian (-EB) or little-endian
	   (-EL).

       Следующая опция доступна, когда as настроен для процессора Visium.

       -mtune=arch
	   This option specifies the target architecture. If an attempt is
	   made to assemble an instruction that will not execute on the target
	   architecture, the assembler will issue an error message.

	   The following names are recognized: "mcm24" "mcm" "gr5" "gr6"

       Следующие опции доступны, когда as настроен для процессора Xtensa.

       --text-section-literals | --no-text-section-literals
	   Control the treatment of literal pools. The default is
	   --no-text-section-literals, which places literals in separate
	   sections in the output file. This allows the literal pool to be
	   placed in a data RAM/ROM. With --text-section-literals, the
	   literals are interspersed in the text section in order to keep them
	   as close as possible to their references. This may be necessary
	   for large assembly files, where the literals would otherwise be out
	   of range of the "L32R" instructions in the text section. Literals
	   are grouped into pools following ".literal_position" directives or
	   preceding "ENTRY" instructions. These options only affect literals
	   referenced via PC-relative "L32R" instructions; literals for
	   absolute mode "L32R" instructions are handled separately.

       --auto-litpools | --no-auto-litpools
	   Control the treatment of literal pools. The default is
	   --no-auto-litpools, which in the absence of --text-section-literals
	   places literals in separate sections in the output file. This
	   allows the literal pool to be placed in a data RAM/ROM. With
	   --auto-litpools, the literals are interspersed in the text section
	   in order to keep them as close as possible to their references,
	   explicit ".literal_position" directives are not required. This may
	   be necessary for very large functions, where single literal pool at
	   the beginning of the function may not be reachable by "L32R"
	   instructions at the end. These options only affect literals
	   referenced via PC-relative "L32R" instructions; literals for
	   absolute mode "L32R" instructions are handled separately. When
	   used together with --text-section-literals, --auto-litpools takes
	   precedence.

       --absolute-literals | --no-absolute-literals
	   Indicate to the assembler whether "L32R" instructions use absolute
	   or PC-relative addressing. If the processor includes the absolute
	   addressing option, the default is to use absolute "L32R"
	   relocations. Otherwise, only the PC-relative "L32R" relocations
	   can be used.

       --target-align | --no-target-align
	   Enable or disable automatic alignment to reduce branch penalties at
	   some expense in code size. This optimization is enabled by
	   default. Note that the assembler will always align instructions
	   like "LOOP" that have fixed alignment requirements.

       --longcalls | --no-longcalls
	   Enable or disable transformation of call instructions to allow
	   calls across a greater range of addresses. This option should be
	   used when call targets can potentially be out of range. It may
	   degrade both code size and performance, but the linker can
	   generally optimize away the unnecessary overhead when a call ends
	   up within range. The default is --no-longcalls.

       --transform | --no-transform
	   Enable or disable all assembler transformations of Xtensa
	   instructions, including both relaxation and optimization. The
	   default is --transform; --no-transform should only be used in the
	   rare cases when the instructions must be exactly as specified in
	   the assembly source. Using --no-transform causes out of range
	   instruction operands to be errors.

       --rename-section oldname=newname
	   Rename the oldname section to newname. This option can be used
	   multiple times to rename multiple sections.

       --trampolines | --no-trampolines
	   Enable or disable transformation of jump instructions to allow
	   jumps across a greater range of addresses. This option should be
	   used when jump targets can potentially be out of range. In the
	   absence of such jumps this option does not affect code size or
	   performance. The default is --trampolines.

       --abi-windowed | --abi-call0
	   Choose ABI tag written to the ".xtensa.info" section. ABI tag
	   indicates ABI of the assembly code. A warning is issued by the
	   linker on an attempt to link object files with inconsistent ABI
	   tags. Default ABI is chosen by the Xtensa core configuration.

       Следующие опции доступны, когда as настроен для процессора Z80.
       @chapter Z80 Dependent Features

   Command-line Options
       -march=CPU[-EXT...][+EXT...]
	   This option specifies the target processor. The assembler will
	   issue an error message if an attempt is made to assemble an
	   instruction which will not execute on the target processor. The
	   following processor names are recognized: "z80", "z180", "ez80",
	   "gbz80", "z80n", "r800". In addition to the basic instruction set,
	   the assembler can be told to accept some extension mnemonics. For
	   example, "-march=z180+sli+infc" extends z180 with SLI instructions
	   and IN F,(C). The following extensions are currently supported:
	   "full" (all known instructions), "adl" (ADL CPU mode by default,
	   eZ80 only), "sli" (instruction known as SLI, SLL or SL1), "xyhl"
	   (instructions with halves of index registers: IXL, IXH, IYL, IYH),
	   "xdcb" (instructions like RotOp (II+d),R and BitOp n,(II+d),R),
	   "infc" (instruction IN F,(C) or IN (C)), "outc0" (instruction OUT
	   (C),0). Note that rather than extending a basic instruction set,
	   the extension mnemonics starting with "-" revoke the respective
	   functionality: "-march=z80-full+xyhl" first removes all default
	   extensions and adds support for index registers halves only.

	   If this option is not specified then "-march=z80+xyhl+infc" is
	   assumed.

       -local-prefix=prefix
	   Mark all labels with specified prefix as local. But such label can
	   be marked global explicitly in the code. This option do not change
	   default local label prefix ".L", it is just adds new one.

       -colonless
	   Accept colonless labels. All symbols at line begin are treated as
	   labels.

       -sdcc
	   Accept assembler code produced by SDCC.

       -fp-s=FORMAT
	   Single precision floating point numbers format. Default: ieee754
	   (32 bit).

       -fp-d=FORMAT
	   Double precision floating point numbers format. Default: ieee754
	   (64 bit).

SEE ALSO
       gcc(1), ld(1), и записи Info для binutils и ld.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts. A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12				 AS(1)
AS(1)			     GNU Development Tools			 AS(1)



NAME
       AS - the portable GNU assembler.

SYNOPSIS
       as [-a[cdghilns][=file]]
	[--alternate]
	[--compress-debug-sections] [--nocompress-debug-sections]
	[-D]
	[--dump-config]
	[--debug-prefix-map old=new]
	[--defsym sym=val]
	[--elf-stt-common=[no|yes]]
	[--emulation=name]
	[-f]
	[-g] [--gstabs] [--gstabs+]
	[--gdwarf-<N>] [--gdwarf-sections]
	[--gdwarf-cie-version=VERSION]
	[--generate-missing-build-notes=[no|yes]]
	[--gsframe]
	[--hash-size=N]
	[--help] [--target-help]
	[--info] [--no-info]
	[-I dir]
	[-J]
	[-K]
	[--keep-locals]
	[-L]
	[--listing-lhs-width=NUM]
	[--listing-lhs-width2=NUM]
	[--listing-rhs-width=NUM]
	[--listing-cont-lines=NUM]
	[--multibyte-handling=[allow|warn|warn-sym-only]]
	[--no-pad-sections]
	[-o objfile] [-R]
	[--scfi=experimental]
	[--sectname-subst]
	[--size-check=[error|warning]]
	[--statistics]
	[-v] [-version] [--version]
	[-W] [--no-warn] [--warn] [--fatal-warnings]
	[-w] [-x]
	[-Z] [@FILE]
	[target-options]
	[--|files ...]

TARGET
       Target AArch64 options:
	  [-EB|-EL]
	  [-mabi=ABI]

       Target Alpha options:
	  [-mcpu]
	  [-mdebug | -no-mdebug]
	  [-replace | -noreplace]
	  [-relax] [-g] [-Gsize]
	  [-F] [-32addr]

       Target ARC options:
	  [-mcpu=cpu]
	  [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS]
	  [-mcode-density]
	  [-mrelax]
	  [-EB|-EL]

       Target ARM options:
	  [-mcpu=processor[+extension...]]
	  [-march=architecture[+extension...]]
	  [-mfpu=floating-point-format]
	  [-mfloat-abi=abi]
	  [-meabi=ver]
	  [-mthumb]
	  [-EB|-EL]
	  [-mapcs-32|-mapcs-26|-mapcs-float|
	   -mapcs-reentrant]
	  [-mthumb-interwork] [-k]

       Target Blackfin options:
	  [-mcpu=processor[-sirevision]]
	  [-mfdpic]
	  [-mno-fdpic]
	  [-mnopic]

       Target BPF options:
	  [-EL] [-EB]

       Target CRIS options:
	  [--underscore | --no-underscore]
	  [--pic] [-N]
	  [--emulation=criself | --emulation=crisaout]
	  [--march=v0_v10 | --march=v10 | --march=v32 |
       --march=common_v10_v32]

       Target C-SKY options:
	  [-march=arch] [-mcpu=cpu]
	  [-EL] [-mlittle-endian] [-EB] [-mbig-endian]
	  [-fpic] [-pic]
	  [-mljump] [-mno-ljump]
	  [-force2bsr] [-mforce2bsr] [-no-force2bsr] [-mno-force2bsr]
	  [-jsri2bsr] [-mjsri2bsr] [-no-jsri2bsr ] [-mno-jsri2bsr]
	  [-mnolrw ] [-mno-lrw]
	  [-melrw] [-mno-elrw]
	  [-mlaf ] [-mliterals-after-func]
	  [-mno-laf] [-mno-literals-after-func]
	  [-mlabr] [-mliterals-after-br]
	  [-mno-labr] [-mnoliterals-after-br]
	  [-mistack] [-mno-istack]
	  [-mhard-float] [-mmp] [-mcp] [-mcache]
	  [-msecurity] [-mtrust]
	  [-mdsp] [-medsp] [-mvdsp]

       Target D10V options:
	  [-O]

       Target D30V options:
	  [-O|-n|-N]

       Target EPIPHANY options:
	  [-mepiphany|-mepiphany16]

       Target H8/300 options:
	  [-h-tick-hex]

       Target i386 options:
	  [--32|--x32|--64] [-n]
	  [-march=CPU[+EXTENSION...]] [-mtune=CPU]

       Target IA-64 options:
	  [-mconstant-gp|-mauto-pic]
	  [-milp32|-milp64|-mlp64|-mp64]
	  [-mle|mbe]
	  [-mtune=itanium1|-mtune=itanium2]
	  [-munwind-check=warning|-munwind-check=error]
	  [-mhint.b=ok|-mhint.b=warning|-mhint.b=error]
	  [-x|-xexplicit] [-xauto] [-xdebug]

       Target IP2K options:
	  [-mip2022|-mip2022ext]

       Target M32C options:
	  [-m32c|-m16c] [-relax] [-h-tick-hex]

       Target M32R options:
	  [--m32rx|--[no-]warn-explicit-parallel-conflicts|
	  --W[n]p]

       Target M680X0 options:
	  [-l] [-m68000|-m68010|-m68020|...]

       Target M68HC11 options:
	  [-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg]
	  [-mshort|-mlong]
	  [-mshort-double|-mlong-double]
	  [--force-long-branches] [--short-branches]
	  [--strict-direct-mode] [--print-insn-syntax]
	  [--print-opcodes] [--generate-example]

       Target MCORE options:
	  [-jsri2bsr] [-sifilter] [-relax]
	  [-mcpu=[210|340]]

       Target Meta options:
	  [-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu] Target MICROBLAZE options:
	  [-mlittle-endian] [-mbig-endian]

       Target MIPS options:
	  [-nocpp] [-EL] [-EB] [-O[optimization level]]
	  [-g[debug level]] [-G num] [-KPIC] [-call_shared]
	  [-non_shared] [-xgot [-mvxworks-pic]
	  [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32]
	  [-mfp64] [-mgp64] [-mfpxx]
	  [-modd-spreg] [-mno-odd-spreg]
	  [-march=CPU] [-mtune=CPU] [-mips1] [-mips2]
	  [-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2]
	  [-mips32r3] [-mips32r5] [-mips32r6] [-mips64] [-mips64r2]
	  [-mips64r3] [-mips64r5] [-mips64r6]
	  [-construct-floats] [-no-construct-floats]
	  [-mignore-branch-isa] [-mno-ignore-branch-isa]
	  [-mnan=encoding]
	  [-trap] [-no-break] [-break] [-no-trap]
	  [-mips16] [-no-mips16]
	  [-mmips16e2] [-mno-mips16e2]
	  [-mmicromips] [-mno-micromips]
	  [-msmartmips] [-mno-smartmips]
	  [-mips3d] [-no-mips3d]
	  [-mdmx] [-no-mdmx]
	  [-mdsp] [-mno-dsp]
	  [-mdspr2] [-mno-dspr2]
	  [-mdspr3] [-mno-dspr3]
	  [-mmsa] [-mno-msa]
	  [-mxpa] [-mno-xpa]
	  [-mmt] [-mno-mt]
	  [-mmcu] [-mno-mcu]
	  [-mcrc] [-mno-crc]
	  [-mginv] [-mno-ginv]
	  [-mloongson-mmi] [-mno-loongson-mmi]
	  [-mloongson-cam] [-mno-loongson-cam]
	  [-mloongson-ext] [-mno-loongson-ext]
	  [-mloongson-ext2] [-mno-loongson-ext2]
	  [-minsn32] [-mno-insn32]
	  [-mfix7000] [-mno-fix7000]
	  [-mfix-rm7000] [-mno-fix-rm7000]
	  [-mfix-vr4120] [-mno-fix-vr4120]
	  [-mfix-vr4130] [-mno-fix-vr4130]
	  [-mfix-r5900] [-mno-fix-r5900]
	  [-mdebug] [-no-mdebug]
	  [-mpdr] [-mno-pdr]

       Target MMIX options:
	  [--fixed-special-register-names] [--globalize-symbols]
	  [--gnu-syntax] [--relax] [--no-predefined-symbols]
	  [--no-expand] [--no-merge-gregs] [-x]
	  [--linker-allocated-gregs]

       Target NDS32 options:
	   [-EL] [-EB] [-O] [-Os] [-mcpu=cpu]
	   [-misa=isa] [-mabi=abi] [-mall-ext]
	   [-m[no-]16-bit]  [-m[no-]perf-ext] [-m[no-]perf2-ext]
	   [-m[no-]string-ext] [-m[no-]dsp-ext] [-m[no-]mac] [-m[no-]div]
	   [-m[no-]audio-isa-ext] [-m[no-]fpu-sp-ext] [-m[no-]fpu-dp-ext]
	   [-m[no-]fpu-fma] [-mfpu-freg=FREG] [-mreduced-regs]
	   [-mfull-regs] [-m[no-]dx-regs] [-mpic] [-mno-relax]
	   [-mb2bb]

       Target PDP11 options:
	  [-mpic|-mno-pic] [-mall] [-mno-extensions]
	  [-mextension|-mno-extension]
	  [-mcpu] [-mmachine]

       Target picoJava options:
	  [-mb|-me]

       Target PowerPC options:
	  [-a32|-a64]
	  [-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604|-m403|-m405|
	   -m440|-m464|-m476|-m7400|-m7410|-m7450|-m7455|-m750cl|-mgekko|
	   -mbroadway|-mppc64|-m620|-me500|-e500x2|-me500mc|-me500mc64|-me5500|
	   -me6500|-mppc64bridge|-mbooke|-mpower4|-mpwr4|-mpower5|-mpwr5|-mpwr5x|
	   -mpower6|-mpwr6|-mpower7|-mpwr7|-mpower8|-mpwr8|-mpower9|-mpwr9-ma2|
	   -mcell|-mspe|-mspe2|-mtitan|-me300|-mcom]
	  [-many] [-maltivec|-mvsx|-mhtm|-mvle]
	  [-mregnames|-mno-regnames]
	  [-mrelocatable|-mrelocatable-lib|-K PIC] [-memb]
	  [-mlittle|-mlittle-endian|-le|-mbig|-mbig-endian|-be]
	  [-msolaris|-mno-solaris]
	  [-nops=count]

       Target PRU options:
	  [-link-relax]
	  [-mnolink-relax]
	  [-mno-warn-regname-label]

       Target RISC-V options:
	  [-fpic|-fPIC|-fno-pic]
	  [-march=ISA]
	  [-mabi=ABI]
	  [-mlittle-endian|-mbig-endian]

       Target RL78 options:
	  [-mg10]
	  [-m32bit-doubles|-m64bit-doubles]

       Target RX options:
	  [-mlittle-endian|-mbig-endian]
	  [-m32bit-doubles|-m64bit-doubles]
	  [-muse-conventional-section-names]
	  [-msmall-data-limit]
	  [-mpid]
	  [-mrelax]
	  [-mint-register=number]
	  [-mgcc-abi|-mrx-abi]

       Target s390 options:
	  [-m31|-m64] [-mesa|-mzarch] [-march=CPU]
	  [-mregnames|-mno-regnames]
	  [-mwarn-areg-zero]
	  [-mwarn-regtype-mismatch=strict
	   -mwarn-regtype-mismatch=relaxed
	   -mwarn-regtype-mismatch=no
	   -mno-warn-regtype-mismatch]

       Target SCORE options:
	  [-EB][-EL][-FIXDD][-NWARN]
	  [-SCORE5][-SCORE5U][-SCORE7][-SCORE3]
	  [-march=score7][-march=score3]
	  [-USE_R1][-KPIC][-O0][-G num][-V]

       Target SPARC options:
	  [-Av6|-Av7|-Av8|-Aleon|-Asparclet|-Asparclite
	   -Av8plus|-Av8plusa|-Av8plusb|-Av8plusc|-Av8plusd
	   -Av8plusv|-Av8plusm|-Av9|-Av9a|-Av9b|-Av9c
	   -Av9d|-Av9e|-Av9v|-Av9m|-Asparc|-Asparcvis
	   -Asparcvis2|-Asparcfmaf|-Asparcima|-Asparcvis3
	   -Asparcvisr|-Asparc5]
	  [-xarch=v8plus|-xarch=v8plusa]|-xarch=v8plusb|-xarch=v8plusc
	   -xarch=v8plusd|-xarch=v8plusv|-xarch=v8plusm|-xarch=v9
	   -xarch=v9a|-xarch=v9b|-xarch=v9c|-xarch=v9d|-xarch=v9e
	   -xarch=v9v|-xarch=v9m|-xarch=sparc|-xarch=sparcvis
	   -xarch=sparcvis2|-xarch=sparcfmaf|-xarch=sparcima
	   -xarch=sparcvis3|-xarch=sparcvisr|-xarch=sparc5
	   -bump]
	  [-32|-64]
	  [--enforce-aligned-data][--dcti-couples-detect]

       Target TIC54X options:
	[-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf]
	[-merrors-to-file <filename>|-me <filename>]

       Target TIC6X options:
	  [-march=arch] [-mbig-endian|-mlittle-endian]
	  [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far]
	  [-mpic|-mno-pic]

       Target TILE-Gx options:
	  [-m32|-m64][-EB][-EL]

       Target Visium options:
	  [-mtune=arch]

       Target Xtensa options:
	[--[no-]text-section-literals] [--[no-]auto-litpools]
	[--[no-]absolute-literals]
	[--[no-]target-align] [--[no-]longcalls]
	[--[no-]transform]
	[--rename-section oldname=newname]
	[--[no-]trampolines]
	[--abi-windowed|--abi-call0]

       Target Z80 options:
	 [-march=CPU[-EXT][+EXT]]
	 [-local-prefix=PREFIX]
	 [-colonless]
	 [-sdcc]
	 [-fp-s=FORMAT]
	 [-fp-d=FORMAT]

DESCRIPTION
       GNU as is really a family of assemblers.	 If you use (or have used) the
       GNU assembler on one architecture, you should find a fairly similar
       environment when you use it on another architecture.  Each version has
       much in common with the others, including object file formats, most
       assembler directives (often called pseudo-ops) and assembler syntax.

       as is primarily intended to assemble the output of the GNU C compiler
       "gcc" for use by the linker "ld".  Nevertheless, we've tried to make as
       assemble correctly everything that other assemblers for the same
       machine would assemble.	Any exceptions are documented explicitly.
       This doesn't mean as always uses the same syntax as another assembler
       for the same architecture; for example, we know of several incompatible
       versions of 680x0 assembly language syntax.

       Each time you run as it assembles exactly one source program.  The
       source program is made up of one or more files.	(The standard input is
       also a file.)

       You give as a command line that has zero or more input file names.  The
       input files are read (from left file name to right).  A command-line
       argument (in any position) that has no special meaning is taken to be
       an input file name.

       If you give as no file names it attempts to read one input file from
       the as standard input, which is normally your terminal.	You may have
       to type ctl-D to tell as there is no more program to assemble.

       Use -- if you need to explicitly name the standard input file in your
       command line.

       If the source is empty, as produces a small, empty object file.

       as may write warnings and error messages to the standard error file
       (usually your terminal).	 This should not happen when  a compiler runs
       as automatically.  Warnings report an assumption made so that as could
       keep assembling a flawed program; errors report a grave problem that
       stops the assembly.

       If you are invoking as via the GNU C compiler, you can use the -Wa
       option to pass arguments through to the assembler.  The assembler
       arguments must be separated from each other (and the -Wa) by commas.
       For example:

	       gcc -c -g -O -Wa,-alh,-L file.c

       This passes two options to the assembler: -alh (emit a listing to
       standard output with high-level and assembly source) and -L (retain
       local symbols in the symbol table).

       Usually you do not need to use this -Wa mechanism, since many compiler
       command-line options are automatically passed to the assembler by the
       compiler.  (You can call the GNU compiler driver with the -v option to
       see precisely what options it passes to each compilation pass,
       including the assembler.)

OPTIONS
       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

       -a[cdghilmns]
	   Turn on listings, in any of a variety of ways:

	   -ac omit false conditionals

	   -ad omit debugging directives

	   -ag include general information, like as version and options passed

	   -ah include high-level source

	   -al include assembly

	   -ali
	       include assembly with ginsn

	   -am include macro expansions

	   -an omit forms processing

	   -as include symbols

	   =file
	       set the name of the listing file

	   You may combine these options; for example, use -aln for assembly
	   listing without forms processing.  The =file option, if used, must
	   be the last one.  By itself, -a defaults to -ahls.

       --alternate
	   Begin in alternate macro mode.

       --compress-debug-sections
	   Compress DWARF debug sections using zlib with SHF_COMPRESSED from
	   the ELF ABI.	 The resulting object file may not be compatible with
	   older linkers and object file utilities.  Note if compression would
	   make a given section larger then it is not compressed.

       --compress-debug-sections=none
       --compress-debug-sections=zlib
       --compress-debug-sections=zlib-gnu
       --compress-debug-sections=zlib-gabi
       --compress-debug-sections=zstd
	   These options control how DWARF debug sections are compressed.
	   --compress-debug-sections=none is equivalent to
	   --nocompress-debug-sections.	 --compress-debug-sections=zlib and
	   --compress-debug-sections=zlib-gabi are equivalent to
	   --compress-debug-sections.  --compress-debug-sections=zlib-gnu
	   compresses DWARF debug sections using the obsoleted zlib-gnu
	   format.  The debug sections are renamed to begin with .zdebug.
	   --compress-debug-sections=zstd compresses DWARF debug sections
	   using zstd.	Note - if compression would actually make a section
	   larger, then it is not compressed nor renamed.

       --nocompress-debug-sections
	   Do not compress DWARF debug sections.  This is usually the default
	   for all targets except the x86/x86_64, but a configure time option
	   can be used to override this.

       -D  Enable debugging in target specific backends, if supported.
	   Otherwise ignored.  Even if ignored, this option is accepted for
	   script compatibility with calls to other assemblers.

       --debug-prefix-map old=new
	   When assembling files in directory old, record debugging
	   information describing them as in new instead.

       --defsym sym=value
	   Define the symbol sym to be value before assembling the input file.
	   value must be an integer constant.  As in C, a leading 0x indicates
	   a hexadecimal value, and a leading 0 indicates an octal value.  The
	   value of the symbol can be overridden inside a source file via the
	   use of a ".set" pseudo-op.

       --dump-config
	   Displays how the assembler is configured and then exits.

       --elf-stt-common=no
       --elf-stt-common=yes
	   These options control whether the ELF assembler should generate
	   common symbols with the "STT_COMMON" type.  The default can be
	   controlled by a configure option --enable-elf-stt-common.

       --emulation=name
	   If the assembler is configured to support multiple different target
	   configurations then this option can be used to select the desired
	   form.

       -f  "fast"---skip whitespace and comment preprocessing (assume source
	   is compiler output).

       -g
       --gen-debug
	   Generate debugging information for each assembler source line using
	   whichever debug format is preferred by the target.  This currently
	   means either STABS, ECOFF or DWARF2.	 When the debug format is
	   DWARF then a ".debug_info" and ".debug_line" section is only
	   emitted when the assembly file doesn't generate one itself.

       --gstabs
	   Generate stabs debugging information for each assembler line.  This
	   may help debugging assembler code, if the debugger can handle it.

       --gstabs+
	   Generate stabs debugging information for each assembler line, with
	   GNU extensions that probably only gdb can handle, and that could
	   make other debuggers crash or refuse to read your program.  This
	   may help debugging assembler code.  Currently the only GNU
	   extension is the location of the current working directory at
	   assembling time.

       --gdwarf-2
	   Generate DWARF2 debugging information for each assembler line.
	   This may help debugging assembler code, if the debugger can handle
	   it.	Note---this option is only supported by some targets, not all
	   of them.

       --gdwarf-3
	   This option is the same as the --gdwarf-2 option, except that it
	   allows for the possibility of the generation of extra debug
	   information as per version 3 of the DWARF specification.  Note -
	   enabling this option does not guarantee the generation of any extra
	   information, the choice to do so is on a per target basis.

       --gdwarf-4
	   This option is the same as the --gdwarf-2 option, except that it
	   allows for the possibility of the generation of extra debug
	   information as per version 4 of the DWARF specification.  Note -
	   enabling this option does not guarantee the generation of any extra
	   information, the choice to do so is on a per target basis.

       --gdwarf-5
	   This option is the same as the --gdwarf-2 option, except that it
	   allows for the possibility of the generation of extra debug
	   information as per version 5 of the DWARF specification.  Note -
	   enabling this option does not guarantee the generation of any extra
	   information, the choice to do so is on a per target basis.

       --gdwarf-sections
	   Instead of creating a .debug_line section, create a series of
	   .debug_line.foo sections where foo is the name of the corresponding
	   code section.  For example a code section called .text.func will
	   have its dwarf line number information placed into a section called
	   .debug_line.text.func.  If the code section is just called .text
	   then debug line section will still be called just .debug_line
	   without any suffix.

       --gdwarf-cie-version=version
	   Control which version of DWARF Common Information Entries (CIEs)
	   are produced.  When this flag is not specified the default is
	   version 1, though some targets can modify this default.  Other
	   possible values for version are 3 or 4.

       --generate-missing-build-notes=yes
       --generate-missing-build-notes=no
	   These options control whether the ELF assembler should generate GNU
	   Build attribute notes if none are present in the input sources.
	   The default can be controlled by the --enable-generate-build-notes
	   configure option.

       --gsframe
       --gsframe
	   Create .sframe section from CFI directives.

       --hash-size N
	   Ignored.  Supported for command line compatibility with other
	   assemblers.

       --help
	   Print a summary of the command-line options and exit.

       --target-help
	   Print a summary of all target specific options and exit.

       --info
	   Don't suppress informational messages.

       --no-info
	   Suppress informational messages.

       -I dir
	   Add directory dir to the search list for ".include" directives.

       -J  Don't warn about signed overflow.

       -K  Issue warnings when difference tables altered for long
	   displacements.

       -L
       --keep-locals
	   Keep (in the symbol table) local symbols.  These symbols start with
	   system-specific local label prefixes, typically .L for ELF systems
	   or L for traditional a.out systems.

       --listing-lhs-width=number
	   Set the maximum width, in words, of the output data column for an
	   assembler listing to number.

       --listing-lhs-width2=number
	   Set the maximum width, in words, of the output data column for
	   continuation lines in an assembler listing to number.

       --listing-rhs-width=number
	   Set the maximum width of an input source line, as displayed in a
	   listing, to number bytes.

       --listing-cont-lines=number
	   Set the maximum number of lines printed in a listing for a single
	   line of input to number + 1.

       --multibyte-handling=allow
       --multibyte-handling=warn
       --multibyte-handling=warn-sym-only
       --multibyte-handling=warn_sym_only
	   Controls how the assembler handles multibyte characters in the
	   input.  The default (which can be restored by using the allow
	   argument) is to allow such characters without complaint.  Using the
	   warn argument will make the assembler generate a warning message
	   whenever any multibyte character is encountered.  Using the warn-
	   sym-only argument will only cause a warning to be generated when a
	   symbol is defined with a name that contains multibyte characters.
	   (References to undefined symbols will not generate a warning).

       --no-pad-sections
	   Stop the assembler for padding the ends of output sections to the
	   alignment of that section.  The default is to pad the sections, but
	   this can waste space which might be needed on targets which have
	   tight memory constraints.

       -o objfile
	   Name the object-file output from as objfile.

       -R  Fold the data section into the text section.

       --reduce-memory-overheads
	   Ignored.  Supported for compatibility with tools that pass the same
	   option to both the assembler and the linker.

       --scfi=experimental
	   This option controls whether the assembler should synthesize CFI
	   for hand-written input.  If the input already contains some
	   synthesizable CFI directives, the assembler ignores them and emits
	   a warning.  Note that "--scfi=experimental" is not intended to be
	   used for compiler-generated code, including inline assembly.	 This
	   experimental support is work in progress.  Only System V AMD64 ABI
	   is supported.

	   Each input function in assembly must begin with the ".type"
	   directive, and should ideally be closed off using a ".size"
	   directive.  When using SCFI, each ".type" directive prompts GAS to
	   start a new FDE (a.k.a., Function Descriptor Entry).	 This implies
	   that with each ".type" directive, a previous block of instructions,
	   if any, is finalised as a distinct FDE.

       --sectname-subst
	   Honor substitution sequences in section names.

       --size-check=error
       --size-check=warning
	   Issue an error or warning for invalid ELF .size directive.

       --statistics
	   Print the maximum space (in bytes) and total time (in seconds) used
	   by assembly.

       --strip-local-absolute
	   Remove local absolute symbols from the outgoing symbol table.

       -v
       -version
	   Print the as version.

       --version
	   Print the as version and exit.

       -W
       --no-warn
	   Suppress warning messages.

       --warn
	   Don't suppress warning messages or treat them as errors.

       --fatal-warnings
	   Treat warnings as errors.

       -w  Ignored.

       -x  Ignored.

       -Z  Generate an object file even after errors.

       -- | files ...
	   Standard input, or source files to assemble.

       The following options are available when as is configured for the
       64-bit mode of the ARM Architecture (AArch64).

       -EB This option specifies that the output generated by the assembler
	   should be marked as being encoded for a big-endian processor.

       -EL This option specifies that the output generated by the assembler
	   should be marked as being encoded for a little-endian processor.

       -mabi=abi
	   Specify which ABI the source code uses.  The recognized arguments
	   are: "ilp32" and "lp64", which decides the generated object file in
	   ELF32 and ELF64 format respectively.	 The default is "lp64".

       -mcpu=processor[+extension...]
	   This option specifies the target processor.	The assembler will
	   issue an error message if an attempt is made to assemble an
	   instruction which will not execute on the target processor.	The
	   following processor names are recognized: "cortex-a34",
	   "cortex-a35", "cortex-a53", "cortex-a55", "cortex-a57",
	   "cortex-a65", "cortex-a65ae", "cortex-a72", "cortex-a73",
	   "cortex-a75", "cortex-a76", "cortex-a76ae", "cortex-a77",
	   "cortex-a78", "cortex-a78ae", "cortex-a78c", "cortex-a510",
	   "cortex-a520", "cortex-a710", "cortex-a720", "ares", "exynos-m1",
	   "falkor", "neoverse-n1", "neoverse-n2", "neoverse-e1",
	   "neoverse-v1", "qdf24xx", "saphira", "thunderx", "vulcan", "xgene1"
	   "xgene2", "cortex-r82", "cortex-x1", "cortex-x2", "cortex-x3", and
	   "cortex-x4".	 The special name "all" may be used to allow the
	   assembler to accept instructions valid for any supported processor,
	   including all optional extensions.

	   In addition to the basic instruction set, the assembler can be told
	   to accept, or restrict, various extension mnemonics that extend the
	   processor.

	   If some implementations of a particular processor can have an
	   extension, then then those extensions are automatically enabled.
	   Consequently, you will not normally have to specify any additional
	   extensions.

       -march=architecture[+extension...]
	   This option specifies the target architecture.  The assembler will
	   issue an error message if an attempt is made to assemble an
	   instruction which will not execute on the target architecture.  The
	   following architecture names are recognized: "armv8-a",
	   "armv8.1-a", "armv8.2-a", "armv8.3-a", "armv8.4-a" "armv8.5-a",
	   "armv8.6-a", "armv8.7-a", "armv8.8-a", "armv8.9-a", "armv8-r",
	   "armv9-a", "armv9.1-a", "armv9.2-a", "armv9.3-a", "armv9.4-a" and
	   "armv9.5-a".

	   If both -mcpu and -march are specified, the assembler will use the
	   setting for -mcpu.  If neither are specified, the assembler will
	   default to -mcpu=all.

	   The architecture option can be extended with the same instruction
	   set extension options as the -mcpu option.  Unlike -mcpu,
	   extensions are not always enabled by default.

       -mverbose-error
	   This option enables verbose error messages for AArch64 gas.	This
	   option is enabled by default.

       -mno-verbose-error
	   This option disables verbose error messages in AArch64 gas.

       The following options are available when as is configured for an Alpha
       processor.

       -mcpu
	   This option specifies the target processor.	If an attempt is made
	   to assemble an instruction which will not execute on the target
	   processor, the assembler may either expand the instruction as a
	   macro or issue an error message.  This option is equivalent to the
	   ".arch" directive.

	   The following processor names are recognized: 21064, "21064a",
	   21066, 21068, 21164, "21164a", "21164pc", 21264, "21264a",
	   "21264b", "ev4", "ev5", "lca45", "ev5", "ev56", "pca56", "ev6",
	   "ev67", "ev68".  The special name "all" may be used to allow the
	   assembler to accept instructions valid for any Alpha processor.

	   In order to support existing practice in OSF/1 with respect to
	   ".arch", and existing practice within MILO (the Linux ARC
	   bootloader), the numbered processor names (e.g. 21064) enable the
	   processor-specific PALcode instructions, while the "electro-vlasic"
	   names (e.g. "ev4") do not.

       -mdebug
       -no-mdebug
	   Enables or disables the generation of ".mdebug" encapsulation for
	   stabs directives and procedure descriptors.	The default is to
	   automatically enable ".mdebug" when the first stabs directive is
	   seen.

       -relax
	   This option forces all relocations to be put into the object file,
	   instead of saving space and resolving some relocations at assembly
	   time.  Note that this option does not propagate all symbol
	   arithmetic into the object file, because not all symbol arithmetic
	   can be represented.	However, the option can still be useful in
	   specific applications.

       -replace
       -noreplace
	   Enables or disables the optimization of procedure calls, both at
	   assemblage and at link time.	 These options are only available for
	   VMS targets and "-replace" is the default.  See section 1.4.1 of
	   the OpenVMS Linker Utility Manual.

       -g  This option is used when the compiler generates debug information.
	   When gcc is using mips-tfile to generate debug information for
	   ECOFF, local labels must be passed through to the object file.
	   Otherwise this option has no effect.

       -Gsize
	   A local common symbol larger than size is placed in ".bss", while
	   smaller symbols are placed in ".sbss".

       -F
       -32addr
	   These options are ignored for backward compatibility.

       The following options are available when as is configured for an ARC
       processor.

       -mcpu=cpu
	   This option selects the core processor variant.

       -EB | -EL
	   Select either big-endian (-EB) or little-endian (-EL) output.

       -mcode-density
	   Enable Code Density extension instructions.

       The following options are available when as is configured for the ARM
       processor family.

       -mcpu=processor[+extension...]
	   Specify which ARM processor variant is the target.

       -march=architecture[+extension...]
	   Specify which ARM architecture variant is used by the target.

       -mfpu=floating-point-format
	   Select which Floating Point architecture is the target.

       -mfloat-abi=abi
	   Select which floating point ABI is in use.

       -mthumb
	   Enable Thumb only instruction decoding.

       -mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant
	   Select which procedure calling convention is in use.

       -EB | -EL
	   Select either big-endian (-EB) or little-endian (-EL) output.

       -mthumb-interwork
	   Specify that the code has been generated with interworking between
	   Thumb and ARM code in mind.

       -mccs
	   Turns on CodeComposer Studio assembly syntax compatibility mode.

       -k  Specify that PIC code has been generated.

       The following options are available when as is configured for the
       Blackfin processor family.

       -mcpu=processor[-sirevision]
	   This option specifies the target processor.	The optional
	   sirevision is not used in assembler.	 It's here such that GCC can
	   easily pass down its "-mcpu=" option.  The assembler will issue an
	   error message if an attempt is made to assemble an instruction
	   which will not execute on the target processor.  The following
	   processor names are recognized: "bf504", "bf506", "bf512", "bf514",
	   "bf516", "bf518", "bf522", "bf523", "bf524", "bf525", "bf526",
	   "bf527", "bf531", "bf532", "bf533", "bf534", "bf535" (not
	   implemented yet), "bf536", "bf537", "bf538", "bf539", "bf542",
	   "bf542m", "bf544", "bf544m", "bf547", "bf547m", "bf548", "bf548m",
	   "bf549", "bf549m", "bf561", and "bf592".

       -mfdpic
	   Assemble for the FDPIC ABI.

       -mno-fdpic
       -mnopic
	   Disable -mfdpic.

       The following options are available when as is configured for the Linux
       kernel BPF processor family.

       @chapter BPF Dependent Features

   BPF Options
       -EB This option specifies that the assembler should emit big-endian
	   eBPF.

       -EL This option specifies that the assembler should emit little-endian
	   eBPF.

       -mdialect=dialect
	   This option specifies the assembly language dialect to recognize
	   while assembling.  The assembler supports normal and pseudoc.

       -misa-spec=spec
	   This option specifies the version of the BPF instruction set to use
	   when assembling.  The BPF ISA versions supported are v1 v2, v3 and
	   v4.

	   The value xbpf can be specified to recognize extra instructions
	   that are used by GCC for testing purposes.  But beware this is not
	   valid BPF.

       -mno-relax
	   This option tells the assembler to not relax instructions.

       Note that if no endianness option is specified in the command line, the
       host endianness is used.	 See the info pages for documentation of the
       CRIS-specific options.

       The following options are available when as is configured for the C-SKY
       processor family.

       -march=archname
	   Assemble for architecture archname.	The --help option lists valid
	   values for archname.

       -mcpu=cpuname
	   Assemble for architecture cpuname.  The --help option lists valid
	   values for cpuname.

       -EL
       -mlittle-endian
	   Generate little-endian output.

       -EB
       -mbig-endian
	   Generate big-endian output.

       -fpic
       -pic
	   Generate position-independent code.

       -mljump
       -mno-ljump
	   Enable/disable transformation of the short branch instructions
	   "jbf", "jbt", and "jbr" to "jmpi".  This option is for V2
	   processors only.  It is ignored on CK801 and CK802 targets, which
	   do not support the "jmpi" instruction, and is enabled by default
	   for other processors.

       -mbranch-stub
       -mno-branch-stub
	   Pass through "R_CKCORE_PCREL_IMM26BY2" relocations for "bsr"
	   instructions to the linker.

	   This option is only available for bare-metal C-SKY V2 ELF targets,
	   where it is enabled by default.  It cannot be used in code that
	   will be dynamically linked against shared libraries.

       -force2bsr
       -mforce2bsr
       -no-force2bsr
       -mno-force2bsr
	   Enable/disable transformation of "jbsr" instructions to "bsr".
	   This option is always enabled (and -mno-force2bsr is ignored) for
	   CK801/CK802 targets.	 It is also always enabled when -mbranch-stub
	   is in effect.

       -jsri2bsr
       -mjsri2bsr
       -no-jsri2bsr
       -mno-jsri2bsr
	   Enable/disable transformation of "jsri" instructions to "bsr".
	   This option is enabled by default.

       -mnolrw
       -mno-lrw
	   Enable/disable transformation of "lrw" instructions into a
	   "movih"/"ori" pair.

       -melrw
       -mno-elrw
	   Enable/disable extended "lrw" instructions.	This option is enabled
	   by default for CK800-series processors.

       -mlaf
       -mliterals-after-func
       -mno-laf
       -mno-literals-after-func
	   Enable/disable placement of literal pools after each function.

       -mlabr
       -mliterals-after-br
       -mno-labr
       -mnoliterals-after-br
	   Enable/disable placement of literal pools after unconditional
	   branches.  This option is enabled by default.

       -mistack
       -mno-istack
	   Enable/disable interrupt stack instructions.	 This option is
	   enabled by default on CK801, CK802, and CK802 processors.

       The following options explicitly enable certain optional instructions.
       These features are also enabled implicitly by using "-mcpu=" to specify
       a processor that supports it.

       -mhard-float
	   Enable hard float instructions.

       -mmp
	   Enable multiprocessor instructions.

       -mcp
	   Enable coprocessor instructions.

       -mcache
	   Enable cache prefetch instruction.

       -msecurity
	   Enable C-SKY security instructions.

       -mtrust
	   Enable C-SKY trust instructions.

       -mdsp
	   Enable DSP instructions.

       -medsp
	   Enable enhanced DSP instructions.

       -mvdsp
	   Enable vector DSP instructions.

       The following options are available when as is configured for an
       Epiphany processor.

       -mepiphany
	   Specifies that the both 32 and 16 bit instructions are allowed.
	   This is the default behavior.

       -mepiphany16
	   Restricts the permitted instructions to just the 16 bit set.

       The following options are available when as is configured for an H8/300
       processor.  @chapter H8/300 Dependent Features

   Options
       The Renesas H8/300 version of "as" has one machine-dependent option:

       -h-tick-hex
	   Support H'00 style hex constants in addition to 0x00 style.

       -mach=name
	   Sets the H8300 machine variant.  The following machine names are
	   recognised: "h8300h", "h8300hn", "h8300s", "h8300sn", "h8300sx" and
	   "h8300sxn".

       The following options are available when as is configured for an i386
       processor.

       --32 | --x32 | --64
	   Select the word size, either 32 bits or 64 bits.  --32 implies
	   Intel i386 architecture, while --x32 and --64 imply AMD x86-64
	   architecture with 32-bit or 64-bit word-size respectively.

	   These options are only available with the ELF object file format,
	   and require that the necessary BFD support has been included (on a
	   32-bit platform you have to add --enable-64-bit-bfd to configure
	   enable 64-bit usage and use x86-64 as target platform).

       -n  By default, x86 GAS replaces multiple nop instructions used for
	   alignment within code sections with multi-byte nop instructions
	   such as leal 0(%esi,1),%esi.	 This switch disables the optimization
	   if a single byte nop (0x90) is explicitly specified as the fill
	   byte for alignment.

       --divide
	   On SVR4-derived platforms, the character / is treated as a comment
	   character, which means that it cannot be used in expressions.  The
	   --divide option turns / into a normal character.  This does not
	   disable / at the beginning of a line starting a comment, or affect
	   using # for starting a comment.

       -march=CPU[+EXTENSION...]
	   This option specifies the target processor.	The assembler will
	   issue an error message if an attempt is made to assemble an
	   instruction which will not execute on the target processor.	The
	   following processor names are recognized: "i8086", "i186", "i286",
	   "i386", "i486", "i586", "i686", "pentium", "pentiumpro",
	   "pentiumii", "pentiumiii", "pentium4", "prescott", "nocona",
	   "core", "core2", "corei7", "iamcu", "k6", "k6_2", "athlon",
	   "opteron", "k8", "amdfam10", "bdver1", "bdver2", "bdver3",
	   "bdver4", "znver1", "znver2", "znver3", "znver4", "znver5",
	   "btver1", "btver2", "generic32" and "generic64".

	   In addition to the basic instruction set, the assembler can be told
	   to accept various extension mnemonics.  For example,
	   "-march=i686+sse4+vmx" extends i686 with sse4 and vmx.  The
	   following extensions are currently supported: 8087, 287, 387, 687,
	   "cmov", "fxsr", "mmx", "sse", "sse2", "sse3", "sse4a", "ssse3",
	   "sse4.1", "sse4.2", "sse4", "avx", "avx2", "lahf_sahf", "monitor",
	   "adx", "rdseed", "prfchw", "smap", "mpx", "sha", "rdpid",
	   "ptwrite", "cet", "gfni", "vaes", "vpclmulqdq", "prefetchwt1",
	   "clflushopt", "se1", "clwb", "movdiri", "movdir64b", "enqcmd",
	   "serialize", "tsxldtrk", "kl", "widekl", "hreset", "avx512f",
	   "avx512cd", "avx512er", "avx512pf", "avx512vl", "avx512bw",
	   "avx512dq", "avx512ifma", "avx512vbmi", "avx512_4fmaps",
	   "avx512_4vnniw", "avx512_vpopcntdq", "avx512_vbmi2", "avx512_vnni",
	   "avx512_bitalg", "avx512_vp2intersect", "tdx", "avx512_bf16",
	   "avx_vnni", "avx512_fp16", "prefetchi", "avx_ifma",
	   "avx_vnni_int8", "cmpccxadd", "wrmsrns", "msrlist",
	   "avx_ne_convert", "rao_int", "fred", "lkgs", "avx_vnni_int16",
	   "sha512", "sm3", "sm4", "pbndkb", "avx10.1", "avx10.1/512",
	   "avx10.1/256", "avx10.1/128", "user_msr", "msr_imm", "apx_f",
	   "avx10.2", "avx10.2/512", "avx10.2/256", "avx10.2/128", "movrs",
	   "amx_int8", "amx_bf16", "amx_fp16", "amx_complex", "amx_transpose",
	   "amx_tf32", "amx_fp8" "amx_movrs", "amx_avx512", "amx_tile", "vmx",
	   "vmfunc", "smx", "xsave", "xsaveopt", "xsavec", "xsaves", "aes",
	   "pclmul", "fsgsbase", "rdrnd", "f16c", "bmi2", "fma", "movbe",
	   "ept", "lzcnt", "popcnt", "hle", "rtm", "tsx", "invpcid",
	   "clflush", "mwaitx", "clzero", "wbnoinvd", "pconfig", "waitpkg",
	   "uintr", "cldemote", "rdpru", "mcommit", "sev_es", "lwp", "fma4",
	   "xop", "cx16", "syscall", "rdtscp", "3dnow", "3dnowa", "sse4a",
	   "sse5", "snp", "invlpgb", "tlbsync", "svme", "gmism2", "gmiccs",
	   "padlockrng2", "padlockphe2" and "padlock".	Note that these
	   extension mnemonics can be prefixed with "no" to revoke the
	   respective (and any dependent) functionality.  Note further that
	   the suffixes permitted on "-march=avx10.<N>" enforce a vector
	   length restriction, i.e. despite these otherwise being "enabling"
	   options, using these suffixes will disable all insns with wider
	   vector or mask register operands.

	   When the ".arch" directive is used with -march, the ".arch"
	   directive will take precedent.

       -mtune=CPU
	   This option specifies a processor to optimize for. When used in
	   conjunction with the -march option, only instructions of the
	   processor specified by the -march option will be generated.

	   Valid CPU values are identical to the processor list of -march=CPU.

       -moperand-check=none
       -moperand-check=warning
       -moperand-check=error
	   These options control if the assembler should check certain
	   instruction operands or operand combinations.  An example
	   instructions where operand size cannot be inferred from its
	   operands and also hasn't been specified by way of an instruction
	   suffix.  -moperand-check=none will make the assembler not perform
	   these checks.  -moperand-check=warning will make the assembler
	   issue a warning when respective checks fail, which is the default.
	   -moperand-check=error will make the assembler issue an error when
	   respective checks fail.

       -msse2avx
	   This option specifies that the assembler should encode SSE
	   instructions with VEX prefix, requiring AVX to be available.	 SSE
	   instructions using extended GPRs will be encoded with EVEX prefix,
	   requiring AVX512 or AVX10 to be available.

       -muse-unaligned-vector-move
	   This option specifies that the assembler should encode aligned
	   vector move as unaligned vector move.

       -msse-check=none
       -msse-check=warning
       -msse-check=error
	   These options control if the assembler should check SSE
	   instructions.  -msse-check=none will make the assembler not to
	   check SSE instructions,  which is the default.  -msse-check=warning
	   will make the assembler issue a warning for any SSE instruction.
	   -msse-check=error will make the assembler issue an error for any
	   SSE instruction.

       -mavxscalar=128
       -mavxscalar=256
	   These options control how the assembler should encode scalar AVX
	   instructions.  -mavxscalar=128 will encode scalar AVX instructions
	   with 128bit vector length, which is the default.  -mavxscalar=256
	   will encode scalar AVX instructions with 256bit vector length.

	   WARNING: Don't use this for production code - due to CPU errata the
	   resulting code may not work on certain models.

       -mvexwig=0
       -mvexwig=1
	   These options control how the assembler should encode VEX.W-ignored
	   (WIG) VEX instructions.  -mvexwig=0 will encode WIG VEX
	   instructions with vex.w = 0, which is the default.  -mvexwig=1 will
	   encode WIG EVEX instructions with vex.w = 1.

	   WARNING: Don't use this for production code - due to CPU errata the
	   resulting code may not work on certain models.

       -mevexlig=128
       -mevexlig=256
       -mevexlig=512
	   These options control how the assembler should encode length-
	   ignored (LIG) EVEX instructions.  -mevexlig=128 will encode LIG
	   EVEX instructions with 128bit vector length, which is the default.
	   -mevexlig=256 and -mevexlig=512 will encode LIG EVEX instructions
	   with 256bit and 512bit vector length, respectively.

       -mevexwig=0
       -mevexwig=1
	   These options control how the assembler should encode w-ignored
	   (WIG) EVEX instructions.  -mevexwig=0 will encode WIG EVEX
	   instructions with evex.w = 0, which is the default.	-mevexwig=1
	   will encode WIG EVEX instructions with evex.w = 1.

       -mmnemonic=att
       -mmnemonic=intel
	   This option specifies instruction mnemonic for matching
	   instructions.  The ".att_mnemonic" and ".intel_mnemonic" directives
	   will take precedent.

       -msyntax=att
       -msyntax=intel
	   This option specifies instruction syntax when processing
	   instructions.  The ".att_syntax" and ".intel_syntax" directives
	   will take precedent.

       -mnaked-reg
	   This option specifies that registers don't require a % prefix.  The
	   ".att_syntax" and ".intel_syntax" directives will take precedent.

       -madd-bnd-prefix
	   This option forces the assembler to add BND prefix to all branches,
	   even if such prefix was not explicitly specified in the source
	   code.

       -mno-shared
	   On ELF target, the assembler normally optimizes out non-PLT
	   relocations against defined non-weak global branch targets with
	   default visibility.	The -mshared option tells the assembler to
	   generate code which may go into a shared library where all non-weak
	   global branch targets with default visibility can be preempted.
	   The resulting code is slightly bigger.  This option only affects
	   the handling of branch instructions.

       -mbig-obj
	   On PE/COFF target this option forces the use of big object file
	   format, which allows more than 32768 sections.

       -momit-lock-prefix=no
       -momit-lock-prefix=yes
	   These options control how the assembler should encode lock prefix.
	   This option is intended as a workaround for processors, that fail
	   on lock prefix. This option can only be safely used with single-
	   core, single-thread computers -momit-lock-prefix=yes will omit all
	   lock prefixes.  -momit-lock-prefix=no will encode lock prefix as
	   usual, which is the default.

       -mfence-as-lock-add=no
       -mfence-as-lock-add=yes
	   These options control how the assembler should encode lfence,
	   mfence and sfence.  -mfence-as-lock-add=yes will encode lfence,
	   mfence and sfence as lock addl $0x0, (%rsp) in 64-bit mode and lock
	   addl $0x0, (%esp) in 32-bit mode.  -mfence-as-lock-add=no will
	   encode lfence, mfence and sfence as usual, which is the default.

       -mrelax-relocations=no
       -mrelax-relocations=yes
	   These options control whether the assembler should generate relax
	   relocations, R_386_GOT32X, in 32-bit mode, or R_X86_64_GOTPCRELX
	   and R_X86_64_REX_GOTPCRELX, in 64-bit mode.
	   -mrelax-relocations=yes will generate relax relocations.
	   -mrelax-relocations=no will not generate relax relocations.	The
	   default can be controlled by a configure option
	   --enable-x86-relax-relocations.

       -mtls-check=no
       -mtls-check=yes
	   These options control whether the assembler check tls relocation.
	   -mtls-check=yes will check tls relocation.  -mtls-check=no will not
	   check tls relocation The default can be controlled by a configure
	   option --enable-x86-tls-check.

       -malign-branch-boundary=NUM
	   This option controls how the assembler should align branches with
	   segment prefixes or NOP.  NUM must be a power of 2.	It should be 0
	   or no less than 16.	Branches will be aligned within NUM byte
	   boundary.  -malign-branch-boundary=0, which is the default, doesn't
	   align branches.

       -malign-branch=TYPE[+TYPE...]
	   This option specifies types of branches to align. TYPE is
	   combination of jcc, which aligns conditional jumps, fused, which
	   aligns fused conditional jumps, jmp, which aligns unconditional
	   jumps, call which aligns calls, ret, which aligns rets, indirect,
	   which aligns indirect jumps and calls.  The default is
	   -malign-branch=jcc+fused+jmp.

       -malign-branch-prefix-size=NUM
	   This option specifies the maximum number of prefixes on an
	   instruction to align branches.  NUM should be between 0 and 5.  The
	   default NUM is 5.

       -mbranches-within-32B-boundaries
	   This option aligns conditional jumps, fused conditional jumps and
	   unconditional jumps within 32 byte boundary with up to 5 segment
	   prefixes on an instruction.	It is equivalent to
	   -malign-branch-boundary=32 -malign-branch=jcc+fused+jmp
	   -malign-branch-prefix-size=5.  The default doesn't align branches.

       -mlfence-after-load=no
       -mlfence-after-load=yes
	   These options control whether the assembler should generate lfence
	   after load instructions.  -mlfence-after-load=yes will generate
	   lfence.  -mlfence-after-load=no will not generate lfence, which is
	   the default.

       -mlfence-before-indirect-branch=none
       -mlfence-before-indirect-branch=all
       -mlfence-before-indirect-branch=register
       -mlfence-before-indirect-branch=memory
	   These options control whether the assembler should generate lfence
	   before indirect near branch instructions.
	   -mlfence-before-indirect-branch=all will generate lfence before
	   indirect near branch via register and issue a warning before
	   indirect near branch via memory.  It also implicitly sets
	   -mlfence-before-ret=shl when there's no explicit
	   -mlfence-before-ret=.  -mlfence-before-indirect-branch=register
	   will generate lfence before indirect near branch via register.
	   -mlfence-before-indirect-branch=memory will issue a warning before
	   indirect near branch via memory.
	   -mlfence-before-indirect-branch=none will not generate lfence nor
	   issue warning, which is the default.	 Note that lfence won't be
	   generated before indirect near branch via register with
	   -mlfence-after-load=yes since lfence will be generated after
	   loading branch target register.

       -mlfence-before-ret=none
       -mlfence-before-ret=shl
       -mlfence-before-ret=or
       -mlfence-before-ret=yes
       -mlfence-before-ret=not
	   These options control whether the assembler should generate lfence
	   before ret.	-mlfence-before-ret=or will generate generate or
	   instruction with lfence.  -mlfence-before-ret=shl/yes will generate
	   shl instruction with lfence. -mlfence-before-ret=not will generate
	   not instruction with lfence. -mlfence-before-ret=none will not
	   generate lfence, which is the default.

       -mx86-used-note=no
       -mx86-used-note=yes
	   These options control whether the assembler should generate
	   GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_FEATURE_2_USED GNU
	   property notes.  The default can be controlled by the
	   --enable-x86-used-note configure option.

       -mevexrcig=rne
       -mevexrcig=rd
       -mevexrcig=ru
       -mevexrcig=rz
	   These options control how the assembler should encode SAE-only EVEX
	   instructions.  -mevexrcig=rne will encode RC bits of EVEX
	   instruction with 00, which is the default.  -mevexrcig=rd,
	   -mevexrcig=ru and -mevexrcig=rz will encode SAE-only EVEX
	   instructions with 01, 10 and 11 RC bits, respectively.

       -mamd64
       -mintel64
	   This option specifies that the assembler should accept only AMD64
	   or Intel64 ISA in 64-bit mode.  The default is to accept common,
	   Intel64 only and AMD64 ISAs.

       -O0 | -O | -O1 | -O2 | -Os
	   Optimize instruction encoding with smaller instruction size.	 -O
	   and -O1 encode 64-bit register load instructions with 64-bit
	   immediate as 32-bit register load instructions with 31-bit or
	   32-bits immediates, encode 64-bit register clearing instructions
	   with 32-bit register clearing instructions, encode 256-bit/512-bit
	   VEX/EVEX vector register clearing instructions with 128-bit VEX
	   vector register clearing instructions, encode 128-bit/256-bit EVEX
	   vector register load/store instructions with VEX vector register
	   load/store instructions, and encode 128-bit/256-bit EVEX packed
	   integer logical instructions with 128-bit/256-bit VEX packed
	   integer logical.

	   -O2 includes -O1 optimization plus encodes 256-bit/512-bit EVEX
	   vector register clearing instructions with 128-bit EVEX vector
	   register clearing instructions.  In 64-bit mode VEX encoded
	   instructions with commutative source operands will also have their
	   source operands swapped if this allows using the 2-byte VEX prefix
	   form instead of the 3-byte one.  Certain forms of AND as well as OR
	   with the same (register) operand specified twice will also be
	   changed to TEST.

	   -Os includes -O2 optimization plus encodes 16-bit, 32-bit and
	   64-bit register tests with immediate as 8-bit register test with
	   immediate.  -O0 turns off this optimization.

       The following options are available when as is configured for the
       Ubicom IP2K series.

       -mip2022ext
	   Specifies that the extended IP2022 instructions are allowed.

       -mip2022
	   Restores the default behaviour, which restricts the permitted
	   instructions to just the basic IP2022 ones.

       The following options are available when as is configured for the
       Renesas M32C and M16C processors.

       -m32c
	   Assemble M32C instructions.

       -m16c
	   Assemble M16C instructions (the default).

       -relax
	   Enable support for link-time relaxations.

       -h-tick-hex
	   Support H'00 style hex constants in addition to 0x00 style.

       The following options are available when as is configured for the
       Renesas M32R (formerly Mitsubishi M32R) series.

       --m32rx
	   Specify which processor in the M32R family is the target.  The
	   default is normally the M32R, but this option changes it to the
	   M32RX.

       --warn-explicit-parallel-conflicts or --Wp
	   Produce warning messages when questionable parallel constructs are
	   encountered.

       --no-warn-explicit-parallel-conflicts or --Wnp
	   Do not produce warning messages when questionable parallel
	   constructs are encountered.

       The following options are available when as is configured for the
       Motorola 68000 series.

       -l  Shorten references to undefined symbols, to one word instead of
	   two.

       -m68000 | -m68008 | -m68010 | -m68020 | -m68030
       | -m68040 | -m68060 | -m68302 | -m68331 | -m68332
       | -m68333 | -m68340 | -mcpu32 | -m5200
	   Specify what processor in the 68000 family is the target.  The
	   default is normally the 68020, but this can be changed at
	   configuration time.

       -m68881 | -m68882 | -mno-68881 | -mno-68882
	   The target machine does (or does not) have a floating-point
	   coprocessor.	 The default is to assume a coprocessor for 68020,
	   68030, and cpu32.  Although the basic 68000 is not compatible with
	   the 68881, a combination of the two can be specified, since it's
	   possible to do emulation of the coprocessor instructions with the
	   main processor.

       -m68851 | -mno-68851
	   The target machine does (or does not) have a memory-management unit
	   coprocessor.	 The default is to assume an MMU for 68020 and up.

       For details about the PDP-11 machine dependent features options, see
       PDP-11-Options.

       -mpic | -mno-pic
	   Generate position-independent (or position-dependent) code.	The
	   default is -mpic.

       -mall
       -mall-extensions
	   Enable all instruction set extensions.  This is the default.

       -mno-extensions
	   Disable all instruction set extensions.

       -mextension | -mno-extension
	   Enable (or disable) a particular instruction set extension.

       -mcpu
	   Enable the instruction set extensions supported by a particular
	   CPU, and disable all other extensions.

       -mmachine
	   Enable the instruction set extensions supported by a particular
	   machine model, and disable all other extensions.

       The following options are available when as is configured for a
       picoJava processor.

       -mb Generate "big endian" format output.

       -ml Generate "little endian" format output.

       The following options are available when as is configured for a PRU
       processor.

       -mlink-relax
	   Assume that LD would optimize LDI32 instructions by checking the
	   upper 16 bits of the expression. If they are all zeros, then LD
	   would shorten the LDI32 instruction to a single LDI. In such case
	   "as" will output DIFF relocations for diff expressions.

       -mno-link-relax
	   Assume that LD would not optimize LDI32 instructions. As a
	   consequence, DIFF relocations will not be emitted.

       -mno-warn-regname-label
	   Do not warn if a label name matches a register name. Usually
	   assembler programmers will want this warning to be emitted. C
	   compilers may want to turn this off.

       The following options are available when as is configured for a MIPS
       processor.

       -G num
	   This option sets the largest size of an object that can be
	   referenced implicitly with the "gp" register.  It is only accepted
	   for targets that use ECOFF format, such as a DECstation running
	   Ultrix.  The default value is 8.

       -EB Generate "big endian" format output.

       -EL Generate "little endian" format output.

       -mips1
       -mips2
       -mips3
       -mips4
       -mips5
       -mips32
       -mips32r2
       -mips32r3
       -mips32r5
       -mips32r6
       -mips64
       -mips64r2
       -mips64r3
       -mips64r5
       -mips64r6
	   Generate code for a particular MIPS Instruction Set Architecture
	   level.  -mips1 is an alias for -march=r3000, -mips2 is an alias for
	   -march=r6000, -mips3 is an alias for -march=r4000 and -mips4 is an
	   alias for -march=r8000.  -mips5, -mips32, -mips32r2, -mips32r3,
	   -mips32r5, -mips32r6, -mips64, -mips64r2, -mips64r3, -mips64r5, and
	   -mips64r6 correspond to generic MIPS V, MIPS32, MIPS32 Release 2,
	   MIPS32 Release 3, MIPS32 Release 5, MIPS32 Release 6, MIPS64,
	   MIPS64 Release 2, MIPS64 Release 3, MIPS64 Release 5, and MIPS64
	   Release 6 ISA processors, respectively.

       -march=cpu
	   Generate code for a particular MIPS CPU.

       -mtune=cpu
	   Schedule and tune for a particular MIPS CPU.

       -mfix7000
       -mno-fix7000
	   Cause nops to be inserted if the read of the destination register
	   of an mfhi or mflo instruction occurs in the following two
	   instructions.

       -mfix-rm7000
       -mno-fix-rm7000
	   Cause nops to be inserted if a dmult or dmultu instruction is
	   followed by a load instruction.

       -mfix-r5900
       -mno-fix-r5900
	   Do not attempt to schedule the preceding instruction into the delay
	   slot of a branch instruction placed at the end of a short loop of
	   six instructions or fewer and always schedule a "nop" instruction
	   there instead.  The short loop bug under certain conditions causes
	   loops to execute only once or twice, due to a hardware bug in the
	   R5900 chip.

       -mdebug
       -no-mdebug
	   Cause stabs-style debugging output to go into an ECOFF-style
	   .mdebug section instead of the standard ELF .stabs sections.

       -mpdr
       -mno-pdr
	   Control generation of ".pdr" sections.

       -mgp32
       -mfp32
	   The register sizes are normally inferred from the ISA and ABI, but
	   these flags force a certain group of registers to be treated as 32
	   bits wide at all times.  -mgp32 controls the size of general-
	   purpose registers and -mfp32 controls the size of floating-point
	   registers.

       -mgp64
       -mfp64
	   The register sizes are normally inferred from the ISA and ABI, but
	   these flags force a certain group of registers to be treated as 64
	   bits wide at all times.  -mgp64 controls the size of general-
	   purpose registers and -mfp64 controls the size of floating-point
	   registers.

       -mfpxx
	   The register sizes are normally inferred from the ISA and ABI, but
	   using this flag in combination with -mabi=32 enables an ABI variant
	   which will operate correctly with floating-point registers which
	   are 32 or 64 bits wide.

       -modd-spreg
       -mno-odd-spreg
	   Enable use of floating-point operations on odd-numbered single-
	   precision registers when supported by the ISA.  -mfpxx implies
	   -mno-odd-spreg, otherwise the default is -modd-spreg.

       -mips16
       -no-mips16
	   Generate code for the MIPS 16 processor.  This is equivalent to
	   putting ".module mips16" at the start of the assembly file.
	   -no-mips16 turns off this option.

       -mmips16e2
       -mno-mips16e2
	   Enable the use of MIPS16e2 instructions in MIPS16 mode.  This is
	   equivalent to putting ".module mips16e2" at the start of the
	   assembly file.  -mno-mips16e2 turns off this option.

       -mmicromips
       -mno-micromips
	   Generate code for the microMIPS processor.  This is equivalent to
	   putting ".module micromips" at the start of the assembly file.
	   -mno-micromips turns off this option.  This is equivalent to
	   putting ".module nomicromips" at the start of the assembly file.

       -msmartmips
       -mno-smartmips
	   Enables the SmartMIPS extension to the MIPS32 instruction set.
	   This is equivalent to putting ".module smartmips" at the start of
	   the assembly file.  -mno-smartmips turns off this option.

       -mips3d
       -no-mips3d
	   Generate code for the MIPS-3D Application Specific Extension.  This
	   tells the assembler to accept MIPS-3D instructions.	-no-mips3d
	   turns off this option.

       -mdmx
       -no-mdmx
	   Generate code for the MDMX Application Specific Extension.  This
	   tells the assembler to accept MDMX instructions.  -no-mdmx turns
	   off this option.

       -mdsp
       -mno-dsp
	   Generate code for the DSP Release 1 Application Specific Extension.
	   This tells the assembler to accept DSP Release 1 instructions.
	   -mno-dsp turns off this option.

       -mdspr2
       -mno-dspr2
	   Generate code for the DSP Release 2 Application Specific Extension.
	   This option implies -mdsp.  This tells the assembler to accept DSP
	   Release 2 instructions.  -mno-dspr2 turns off this option.

       -mdspr3
       -mno-dspr3
	   Generate code for the DSP Release 3 Application Specific Extension.
	   This option implies -mdsp and -mdspr2.  This tells the assembler to
	   accept DSP Release 3 instructions.  -mno-dspr3 turns off this
	   option.

       -mmsa
       -mno-msa
	   Generate code for the MIPS SIMD Architecture Extension.  This tells
	   the assembler to accept MSA instructions.  -mno-msa turns off this
	   option.

       -mxpa
       -mno-xpa
	   Generate code for the MIPS eXtended Physical Address (XPA)
	   Extension.  This tells the assembler to accept XPA instructions.
	   -mno-xpa turns off this option.

       -mmt
       -mno-mt
	   Generate code for the MT Application Specific Extension.  This
	   tells the assembler to accept MT instructions.  -mno-mt turns off
	   this option.

       -mmcu
       -mno-mcu
	   Generate code for the MCU Application Specific Extension.  This
	   tells the assembler to accept MCU instructions.  -mno-mcu turns off
	   this option.

       -mcrc
       -mno-crc
	   Generate code for the MIPS cyclic redundancy check (CRC)
	   Application Specific Extension.  This tells the assembler to accept
	   CRC instructions.  -mno-crc turns off this option.

       -mginv
       -mno-ginv
	   Generate code for the Global INValidate (GINV) Application Specific
	   Extension.  This tells the assembler to accept GINV instructions.
	   -mno-ginv turns off this option.

       -mloongson-mmi
       -mno-loongson-mmi
	   Generate code for the Loongson MultiMedia extensions Instructions
	   (MMI) Application Specific Extension.  This tells the assembler to
	   accept MMI instructions.  -mno-loongson-mmi turns off this option.

       -mloongson-cam
       -mno-loongson-cam
	   Generate code for the Loongson Content Address Memory (CAM)
	   instructions.  This tells the assembler to accept Loongson CAM
	   instructions.  -mno-loongson-cam turns off this option.

       -mloongson-ext
       -mno-loongson-ext
	   Generate code for the Loongson EXTensions (EXT) instructions.  This
	   tells the assembler to accept Loongson EXT instructions.
	   -mno-loongson-ext turns off this option.

       -mloongson-ext2
       -mno-loongson-ext2
	   Generate code for the Loongson EXTensions R2 (EXT2) instructions.
	   This option implies -mloongson-ext.	This tells the assembler to
	   accept Loongson EXT2 instructions.  -mno-loongson-ext2 turns off
	   this option.

       -minsn32
       -mno-insn32
	   Only use 32-bit instruction encodings when generating code for the
	   microMIPS processor.	 This option inhibits the use of any 16-bit
	   instructions.  This is equivalent to putting ".set insn32" at the
	   start of the assembly file.	-mno-insn32 turns off this option.
	   This is equivalent to putting ".set noinsn32" at the start of the
	   assembly file.  By default -mno-insn32 is selected, allowing all
	   instructions to be used.

       --construct-floats
       --no-construct-floats
	   The --no-construct-floats option disables the construction of
	   double width floating point constants by loading the two halves of
	   the value into the two single width floating point registers that
	   make up the double width register.  By default --construct-floats
	   is selected, allowing construction of these floating point
	   constants.

       --relax-branch
       --no-relax-branch
	   The --relax-branch option enables the relaxation of out-of-range
	   branches.  By default --no-relax-branch is selected, causing any
	   out-of-range branches to produce an error.

       -mignore-branch-isa
       -mno-ignore-branch-isa
	   Ignore branch checks for invalid transitions between ISA modes.
	   The semantics of branches does not provide for an ISA mode switch,
	   so in most cases the ISA mode a branch has been encoded for has to
	   be the same as the ISA mode of the branch's target label.
	   Therefore GAS has checks implemented that verify in branch assembly
	   that the two ISA modes match.  -mignore-branch-isa disables these
	   checks.  By default -mno-ignore-branch-isa is selected, causing any
	   invalid branch requiring a transition between ISA modes to produce
	   an error.

       -mnan=encoding
	   Select between the IEEE 754-2008 (-mnan=2008) or the legacy
	   (-mnan=legacy) NaN encoding format.	The latter is the default.

       --emulation=name
	   This option was formerly used to switch between ELF and ECOFF
	   output on targets like IRIX 5 that supported both.  MIPS ECOFF
	   support was removed in GAS 2.24, so the option now serves little
	   purpose.  It is retained for backwards compatibility.

	   The available configuration names are: mipself, mipslelf and
	   mipsbelf.  Choosing mipself now has no effect, since the output is
	   always ELF.	mipslelf and mipsbelf select little- and big-endian
	   output respectively, but -EL and -EB are now the preferred options
	   instead.

       -nocpp
	   as ignores this option.  It is accepted for compatibility with the
	   native tools.

       --trap
       --no-trap
       --break
       --no-break
	   Control how to deal with multiplication overflow and division by
	   zero.  --trap or --no-break (which are synonyms) take a trap
	   exception (and only work for Instruction Set Architecture level 2
	   and higher); --break or --no-trap (also synonyms, and the default)
	   take a break exception.

       -n  When this option is used, as will issue a warning every time it
	   generates a nop instruction from a macro.

       The following options are available when as is configured for a
       LoongArch processor.

       -fpic
       -fPIC
	   Generate position-independent code

       -fno-pic
	   Don't generate position-independent code (default)

       The following options are available when as is configured for a Meta
       processor.

       "-mcpu=metac11"
	   Generate code for Meta 1.1.

       "-mcpu=metac12"
	   Generate code for Meta 1.2.

       "-mcpu=metac21"
	   Generate code for Meta 2.1.

       "-mfpu=metac21"
	   Allow code to use FPU hardware of Meta 2.1.

       See the info pages for documentation of the MMIX-specific options.

       The following options are available when as is configured for a NDS32
       processor.

       "-O1"
	   Optimize for performance.

       "-Os"
	   Optimize for space.

       "-EL"
	   Produce little endian data output.

       "-EB"
	   Produce little endian data output.

       "-mpic"
	   Generate PIC.

       "-mno-fp-as-gp-relax"
	   Suppress fp-as-gp relaxation for this file.

       "-mb2bb-relax"
	   Back-to-back branch optimization.

       "-mno-all-relax"
	   Suppress all relaxation for this file.

       "-march=<arch name>"
	   Assemble for architecture <arch name> which could be v3, v3j, v3m,
	   v3f, v3s, v2, v2j, v2f, v2s.

       "-mbaseline=<baseline>"
	   Assemble for baseline <baseline> which could be v2, v3, v3m.

       "-mfpu-freg=FREG"
	   Specify a FPU configuration.

	   "0	   8 SP /  4 DP registers"
	   "1	  16 SP /  8 DP registers"
	   "2	  32 SP / 16 DP registers"
	   "3	  32 SP / 32 DP registers"
       "-mabi=abi"
	   Specify a abi version <abi> could be v1, v2, v2fp, v2fpp.

       "-m[no-]mac"
	   Enable/Disable Multiply instructions support.

       "-m[no-]div"
	   Enable/Disable Divide instructions support.

       "-m[no-]16bit-ext"
	   Enable/Disable 16-bit extension

       "-m[no-]dx-regs"
	   Enable/Disable d0/d1 registers

       "-m[no-]perf-ext"
	   Enable/Disable Performance extension

       "-m[no-]perf2-ext"
	   Enable/Disable Performance extension 2

       "-m[no-]string-ext"
	   Enable/Disable String extension

       "-m[no-]reduced-regs"
	   Enable/Disable Reduced Register configuration (GPR16) option

       "-m[no-]audio-isa-ext"
	   Enable/Disable AUDIO ISA extension

       "-m[no-]fpu-sp-ext"
	   Enable/Disable FPU SP extension

       "-m[no-]fpu-dp-ext"
	   Enable/Disable FPU DP extension

       "-m[no-]fpu-fma"
	   Enable/Disable FPU fused-multiply-add instructions

       "-mall-ext"
	   Turn on all extensions and instructions support

       The following options are available when as is configured for a PowerPC
       processor.

       -a32
	   Generate ELF32 or XCOFF32.

       -a64
	   Generate ELF64 or XCOFF64.

       -K PIC
	   Set EF_PPC_RELOCATABLE_LIB in ELF flags.

       -mpwrx | -mpwr2
	   Generate code for POWER/2 (RIOS2).

       -mpwr
	   Generate code for POWER (RIOS1)

       -m601
	   Generate code for PowerPC 601.

       -mppc, -mppc32, -m603, -m604
	   Generate code for PowerPC 603/604.

       -m403, -m405
	   Generate code for PowerPC 403/405.

       -m440
	   Generate code for PowerPC 440.  BookE and some 405 instructions.

       -m464
	   Generate code for PowerPC 464.

       -m476
	   Generate code for PowerPC 476.

       -m7400, -m7410, -m7450, -m7455
	   Generate code for PowerPC 7400/7410/7450/7455.

       -m750cl, -mgekko, -mbroadway
	   Generate code for PowerPC 750CL/Gekko/Broadway.

       -m821, -m850, -m860
	   Generate code for PowerPC 821/850/860.

       -mppc64, -m620
	   Generate code for PowerPC 620/625/630.

       -me200z2, -me200z4
	   Generate code for e200 variants, e200z2 with LSP, e200z4 with SPE.

       -me300
	   Generate code for PowerPC e300 family.

       -me500, -me500x2
	   Generate code for Motorola e500 core complex.

       -me500mc
	   Generate code for Freescale e500mc core complex.

       -me500mc64
	   Generate code for Freescale e500mc64 core complex.

       -me5500
	   Generate code for Freescale e5500 core complex.

       -me6500
	   Generate code for Freescale e6500 core complex.

       -mlsp
	   Enable LSP instructions.  (Disables SPE and SPE2.)

       -mspe
	   Generate code for Motorola SPE instructions.	 (Disables LSP.)

       -mspe2
	   Generate code for Freescale SPE2 instructions.  (Disables LSP.)

       -mtitan
	   Generate code for AppliedMicro Titan core complex.

       -mppc64bridge
	   Generate code for PowerPC 64, including bridge insns.

       -mbooke
	   Generate code for 32-bit BookE.

       -ma2
	   Generate code for A2 architecture.

       -maltivec
	   Generate code for processors with AltiVec instructions.

       -mvle
	   Generate code for Freescale PowerPC VLE instructions.

       -mvsx
	   Generate code for processors with Vector-Scalar (VSX) instructions.

       -mhtm
	   Generate code for processors with Hardware Transactional Memory
	   instructions.

       -mpower4, -mpwr4
	   Generate code for Power4 architecture.

       -mpower5, -mpwr5, -mpwr5x
	   Generate code for Power5 architecture.

       -mpower6, -mpwr6
	   Generate code for Power6 architecture.

       -mpower7, -mpwr7
	   Generate code for Power7 architecture.

       -mpower8, -mpwr8
	   Generate code for Power8 architecture.

       -mpower9, -mpwr9
	   Generate code for Power9 architecture.

       -mpower10, -mpwr10
	   Generate code for Power10 architecture.

       -mpower11, -mpwr11
	   Generate code for Power11 architecture.

       -mfuture
	   Generate code for 'future' architecture.

       -mcell
       -mcell
	   Generate code for Cell Broadband Engine architecture.

       -mcom
	   Generate code Power/PowerPC common instructions.

       -many
	   Generate code for any architecture (PWR/PWRX/PPC).

       -mregnames
	   Allow symbolic names for registers.

       -mno-regnames
	   Do not allow symbolic names for registers.

       -mrelocatable
	   Support for GCC's -mrelocatable option.

       -mrelocatable-lib
	   Support for GCC's -mrelocatable-lib option.

       -memb
	   Set PPC_EMB bit in ELF flags.

       -mlittle, -mlittle-endian, -le
	   Generate code for a little endian machine.

       -mbig, -mbig-endian, -be
	   Generate code for a big endian machine.

       -msolaris
	   Generate code for Solaris.

       -mno-solaris
	   Do not generate code for Solaris.

       -nops=count
	   If an alignment directive inserts more than count nops, put a
	   branch at the beginning to skip execution of the nops.

       The following options are available when as is configured for a RISC-V
       processor.

       -fpic
       -fPIC
	   Generate position-independent code

       -fno-pic
	   Don't generate position-independent code (default)

       -march=ISA
	   Select the base isa, as specified by ISA.  For example
	   -march=rv32ima.  If this option and the architecture attributes
	   aren't set, then assembler will check the default configure setting
	   --with-arch=ISA.

       -misa-spec=ISAspec
	   Select the default isa spec version.	 If the version of ISA isn't
	   set by -march, then assembler helps to set the version according to
	   the default chosen spec.  If this option isn't set, then assembler
	   will check the default configure setting --with-isa-spec=ISAspec.

       -mpriv-spec=PRIVspec
	   Select the privileged spec version.	We can decide whether the CSR
	   is valid or not according to the chosen spec.  If this option and
	   the privilege attributes aren't set, then assembler will check the
	   default configure setting --with-priv-spec=PRIVspec.

       -mabi=ABI
	   Selects the ABI, which is either "ilp32" or "lp64", optionally
	   followed by "f", "d", or "q" to indicate single-precision, double-
	   precision, or quad-precision floating-point calling convention, or
	   none or "e" to indicate the soft-float calling convention ("e"
	   indicates a soft-float RVE ABI).

       -mrelax
	   Take advantage of linker relaxations to reduce the number of
	   instructions required to materialize symbol addresses. (default)

       -mno-relax
	   Don't do linker relaxations.

       -march-attr
	   Generate the default contents for the riscv elf attribute section
	   if the .attribute directives are not set.  This section is used to
	   record the information that a linker or runtime loader needs to
	   check compatibility.	 This information includes ISA string, stack
	   alignment requirement, unaligned memory accesses, and the major,
	   minor and revision version of privileged specification.

       -mno-arch-attr
	   Don't generate the default riscv elf attribute section if the
	   .attribute directives are not set.

       -mcsr-check
	   Enable the CSR checking for the ISA-dependent CRS and the read-only
	   CSR.	 The ISA-dependent CSR are only valid when the specific ISA is
	   set.	 The read-only CSR can not be written by the CSR instructions.

       -mno-csr-check
	   Don't do CSR checking.

       -mlittle-endian
	   Generate code for a little endian machine.

       -mbig-endian
	   Generate code for a big endian machine.

       See the info pages for documentation of the RX-specific options.

       The following options are available when as is configured for the s390
       processor family.

       -m31
       -m64
	   Select the word size, either 31/32 bits or 64 bits.

       -mesa
       -mzarch
	   Select the architecture mode, either the Enterprise System
	   Architecture (esa) or the z/Architecture mode (zarch).

       -march=processor
	   Specify which s390 processor variant is the target, g5 (or arch3),
	   g6, z900 (or arch5), z990 (or arch6), z9-109, z9-ec (or arch7), z10
	   (or arch8), z196 (or arch9), zEC12 (or arch10), z13 (or arch11),
	   z14 (or arch12), z15 (or arch13), z16 (or arch14), or arch15.

       -mregnames
       -mno-regnames
	   Allow or disallow symbolic names for registers.

       -mwarn-areg-zero
	   Warn whenever the operand for a base or index register has been
	   specified but evaluates to zero.

       -mwarn-regtype-mismatch=strict
       -mwarn-regtype-mismatch=relaxed
       -mwarn-regtype-mismatch=no
       -mno-warn-regtype-mismatch
	   Controls whether the assembler performs register name type checks
	   and generates a warning message in case of a mismatch with the
	   operand register type.  The default (which can be restored by using
	   the relaxed argument) is to perform relaxed register name type
	   checks, which allow floating point register (FPR) names %f0 to %f15
	   to be specified as argument to vector register (VR) operands and
	   vector register (VR) names %v0 to %v15 to be specified as argument
	   to floating point register (FPR) operands.  This is acceptable as
	   the FPR are embedded into the lower half of the VR.	Using the
	   strict argument strict register name type checks are performed.
	   The no argument, which is equivalent to -mno-warn-regtype-mismatch,
	   disables any register name type checks.

       The following options are available when as is configured for a
       TMS320C6000 processor.

       -march=arch
	   Enable (only) instructions from architecture arch.  By default, all
	   instructions are permitted.

	   The following values of arch are accepted: "c62x", "c64x", "c64x+",
	   "c67x", "c67x+", "c674x".

       -mdsbt
       -mno-dsbt
	   The -mdsbt option causes the assembler to generate the
	   "Tag_ABI_DSBT" attribute with a value of 1, indicating that the
	   code is using DSBT addressing.  The -mno-dsbt option, the default,
	   causes the tag to have a value of 0, indicating that the code does
	   not use DSBT addressing.  The linker will emit a warning if objects
	   of different type (DSBT and non-DSBT) are linked together.

       -mpid=no
       -mpid=near
       -mpid=far
	   The -mpid= option causes the assembler to generate the
	   "Tag_ABI_PID" attribute with a value indicating the form of data
	   addressing used by the code.	 -mpid=no, the default, indicates
	   position-dependent data addressing, -mpid=near indicates position-
	   independent addressing with GOT accesses using near DP addressing,
	   and -mpid=far indicates position-independent addressing with GOT
	   accesses using far DP addressing.  The linker will emit a warning
	   if objects built with different settings of this option are linked
	   together.

       -mpic
       -mno-pic
	   The -mpic option causes the assembler to generate the "Tag_ABI_PIC"
	   attribute with a value of 1, indicating that the code is using
	   position-independent code addressing,  The "-mno-pic" option, the
	   default, causes the tag to have a value of 0, indicating position-
	   dependent code addressing.  The linker will emit a warning if
	   objects of different type (position-dependent and position-
	   independent) are linked together.

       -mbig-endian
       -mlittle-endian
	   Generate code for the specified endianness.	The default is little-
	   endian.

       The following options are available when as is configured for a TILE-Gx
       processor.

       -m32 | -m64
	   Select the word size, either 32 bits or 64 bits.

       -EB | -EL
	   Select the endianness, either big-endian (-EB) or little-endian
	   (-EL).

       The following option is available when as is configured for a Visium
       processor.

       -mtune=arch
	   This option specifies the target architecture.  If an attempt is
	   made to assemble an instruction that will not execute on the target
	   architecture, the assembler will issue an error message.

	   The following names are recognized: "mcm24" "mcm" "gr5" "gr6"

       The following options are available when as is configured for an Xtensa
       processor.

       --text-section-literals | --no-text-section-literals
	   Control the treatment of literal pools.  The default is
	   --no-text-section-literals, which places literals in separate
	   sections in the output file.	 This allows the literal pool to be
	   placed in a data RAM/ROM.  With --text-section-literals, the
	   literals are interspersed in the text section in order to keep them
	   as close as possible to their references.  This may be necessary
	   for large assembly files, where the literals would otherwise be out
	   of range of the "L32R" instructions in the text section.  Literals
	   are grouped into pools following ".literal_position" directives or
	   preceding "ENTRY" instructions.  These options only affect literals
	   referenced via PC-relative "L32R" instructions; literals for
	   absolute mode "L32R" instructions are handled separately.

       --auto-litpools | --no-auto-litpools
	   Control the treatment of literal pools.  The default is
	   --no-auto-litpools, which in the absence of --text-section-literals
	   places literals in separate sections in the output file.  This
	   allows the literal pool to be placed in a data RAM/ROM.  With
	   --auto-litpools, the literals are interspersed in the text section
	   in order to keep them as close as possible to their references,
	   explicit ".literal_position" directives are not required.  This may
	   be necessary for very large functions, where single literal pool at
	   the beginning of the function may not be reachable by "L32R"
	   instructions at the end.  These options only affect literals
	   referenced via PC-relative "L32R" instructions; literals for
	   absolute mode "L32R" instructions are handled separately.  When
	   used together with --text-section-literals, --auto-litpools takes
	   precedence.

       --absolute-literals | --no-absolute-literals
	   Indicate to the assembler whether "L32R" instructions use absolute
	   or PC-relative addressing.  If the processor includes the absolute
	   addressing option, the default is to use absolute "L32R"
	   relocations.	 Otherwise, only the PC-relative "L32R" relocations
	   can be used.

       --target-align | --no-target-align
	   Enable or disable automatic alignment to reduce branch penalties at
	   some expense in code size.	 This optimization is enabled by
	   default.  Note that the assembler will always align instructions
	   like "LOOP" that have fixed alignment requirements.

       --longcalls | --no-longcalls
	   Enable or disable transformation of call instructions to allow
	   calls across a greater range of addresses.	 This option should be
	   used when call targets can potentially be out of range.  It may
	   degrade both code size and performance, but the linker can
	   generally optimize away the unnecessary overhead when a call ends
	   up within range.  The default is --no-longcalls.

       --transform | --no-transform
	   Enable or disable all assembler transformations of Xtensa
	   instructions, including both relaxation and optimization.  The
	   default is --transform; --no-transform should only be used in the
	   rare cases when the instructions must be exactly as specified in
	   the assembly source.	 Using --no-transform causes out of range
	   instruction operands to be errors.

       --rename-section oldname=newname
	   Rename the oldname section to newname.  This option can be used
	   multiple times to rename multiple sections.

       --trampolines | --no-trampolines
	   Enable or disable transformation of jump instructions to allow
	   jumps across a greater range of addresses.	 This option should be
	   used when jump targets can potentially be out of range.  In the
	   absence of such jumps this option does not affect code size or
	   performance.	 The default is --trampolines.

       --abi-windowed | --abi-call0
	   Choose ABI tag written to the ".xtensa.info" section.  ABI tag
	   indicates ABI of the assembly code.	A warning is issued by the
	   linker on an attempt to link object files with inconsistent ABI
	   tags.  Default ABI is chosen by the Xtensa core configuration.

       The following options are available when as is configured for an Z80
       processor.

       @chapter Z80 Dependent Features

   Command-line Options
       -march=CPU[-EXT...][+EXT...]
	   This option specifies the target processor. The assembler will
	   issue an error message if an attempt is made to assemble an
	   instruction which will not execute on the target processor. The
	   following processor names are recognized: "z80", "z180", "ez80",
	   "gbz80", "z80n", "r800".  In addition to the basic instruction set,
	   the assembler can be told to accept some extension mnemonics. For
	   example, "-march=z180+sli+infc" extends z180 with SLI instructions
	   and IN F,(C). The following extensions are currently supported:
	   "full" (all known instructions), "adl" (ADL CPU mode by default,
	   eZ80 only), "sli" (instruction known as SLI, SLL or SL1), "xyhl"
	   (instructions with halves of index registers: IXL, IXH, IYL, IYH),
	   "xdcb" (instructions like RotOp (II+d),R and BitOp n,(II+d),R),
	   "infc" (instruction IN F,(C) or IN (C)), "outc0" (instruction OUT
	   (C),0).  Note that rather than extending a basic instruction set,
	   the extension mnemonics starting with "-" revoke the respective
	   functionality: "-march=z80-full+xyhl" first removes all default
	   extensions and adds support for index registers halves only.

	   If this option is not specified then "-march=z80+xyhl+infc" is
	   assumed.

       -local-prefix=prefix
	   Mark all labels with specified prefix as local. But such label can
	   be marked global explicitly in the code. This option do not change
	   default local label prefix ".L", it is just adds new one.

       -colonless
	   Accept colonless labels. All symbols at line begin are treated as
	   labels.

       -sdcc
	   Accept assembler code produced by SDCC.

       -fp-s=FORMAT
	   Single precision floating point numbers format. Default: ieee754
	   (32 bit).

       -fp-d=FORMAT
	   Double precision floating point numbers format. Default: ieee754
	   (64 bit).

SEE ALSO
       gcc(1), ld(1), and the Info entries for binutils and ld.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12				 AS(1)

GPROFNG-DISPLAY-SRC(1)		 Команды пользователя		GPROFNG-DISPLAY-SRC(1)



NAME
       gprofng-display-src - Отображение исходного кода и опционально дизассемблированного кода целевого объекта

SYNOPSIS
       gprofng display src [option(s)] target-file

DESCRIPTION
       Отображение списка исходного кода, или исходного кода, перемешанного с кодом дизассемблирования, извлеченного из целевого файла (исполняемый файл, разделяемый объект, объектный файл или файл Java .class).

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

	       $ gprofng display src -disasm mxv_core mxv.o

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

	       $ gprofng display src -disasm all -1 mxv.o

       Целевой файл представляет собой имя исполняемого файла, разделяемого объекта, объектного файла (.o) или файла Java .class.

       Если опции не указаны, отображается список исходного кода целевого файла. Это эквивалентно -source all -1. Если эта информация недоступна, выводится соответствующее сообщение.

OPTIONS
       --version
	   Вывести номер версии и выйти.

       --help
	   Вывести информацию об использовании и выйти.

       -functions
	   Перечислить все функции из данного объекта.

       -source item tag
	   Показать исходный код для item в целевом файле. Тег используется для различия в случае нескольких вхождений с одинаковым именем. См. раздел NOTES для определения item и tag.

       -disasm item tag
	   Включить дизассемблирование в список исходного кода. По умолчанию дизассемблирование не включается. Если исходный код недоступен, показать только список дизассемблирования. См. раздел NOTES для определения item и tag.

       -outfile filename
	   Записать результаты в файл filename. Дефис (-) означает запись в stdout. Это значение по умолчанию. Обратите внимание, что эта опция влияет только на те опции, которые указаны справа от неё.

NOTES
       Используйте item для указания имени функции, или исходного или объектного файла, который использовался для сборки исполняемого файла или разделяемого объекта.

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

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

       Специальная комбинация item и tag all -1 используется для указания генерации исходного кода или дизассемблирования для всех функций в целевом файле.

SEE ALSO
       gprofng(1), gprofng-archive(1), gprofng-collect-app(1),
       gprofng-display-html(1), gprofng-display-text(1)

       Руководство пользователя для gprofng поддерживается как руководство Texinfo. Если программы info и gprofng установлены правильно, команда info gprofng должна предоставить доступ к этому документу.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями Лицензии GNU Free Documentation License, версии 1.3 или любой более поздней версии, опубликованной Free Software Foundation; без Инвариантных Разделов, без Текстов Обложки и без Текстов Задней Обложки. Копия лицензии включена в раздел, озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-02-02		GPROFNG-DISPLAY-SRC(1)
GPROFNG-DISPLAY-SRC(1)		 User Commands		GPROFNG-DISPLAY-SRC(1)



NAME
       gprofng-display-src - Display source code and optionally disassembly of
       the target object

SYNOPSIS
       gprofng display src [option(s)] target-file

DESCRIPTION
       Display the source code listing, or source code interleaved with
       disassembly code, as extracted from the target file (an executable,
       shared object, object file, or a Java .class file).

       For example, this command displays the source code and disassembly
       listing for a function called mxv_core that is part of object file
       mxv.o:

	       $ gprofng display src -disasm mxv_core mxv.o

       To list the source code and disassembly for all the functions in this
       file, use the following command:

	       $ gprofng display src -disasm all -1 mxv.o

       The target-file is the name of an executable, a shared object, an
       object file (.o), or a Java .class file.

       If no options are given, the source code listing of the target-file is
       shown.  This is equivalent to -source all -1.  If this information is
       not available, a message to this extent is printed.

OPTIONS
       --version
	   Print the version number and exit.

       --help
	   Print usage information and exit.

       -functions
	   List all the functions from the given object.

       -source item tag
	   Show the source code for item in target-file.  The tag is used to
	   differentiate in case there are multiple occurences with the same
	   name.  See the NOTES section for the definition of item and tag.

       -disasm item tag
	   Include the disassembly in the source listing.  The default listing
	   does not include the disassembly.  If the source code is not
	   available, show a listing of the disassembly only.  See the NOTES
	   section for the definition of item and tag.

       -outfile filename
	   Write results to file filename.  A dash (-) writes to stdout.  This
	   is also the default.	 Note that this option only affects those
	   options included to the right of the option.

NOTES
       Use item to specify the name of a function, or of a source or object
       file that was used to build the executable, or shared object.

       The tag is an index used to determine which item is being referred to
       when multiple functions have the same name.  It is required, but will
       be ignored if not necessary to resolve the function.

       The item may also be specified in the form function`file`, in which
       case the source or disassembly of the named function in the source
       context of the named file will be used.

       The special item and tag combination all -1, is used to indicate
       generating the source, or disassembly, for all functions in the
       target-file.

SEE ALSO
       gprofng(1), gprofng-archive(1), gprofng-collect-app(1),
       gprofng-display-html(1), gprofng-display-text(1)

       The user guide for gprofng is maintained as a Texinfo manual.  If the
       info and gprofng programs are correctly installed, the command info
       gprofng should give access to this document.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02		GPROFNG-DISPLAY-SRC(1)

WINDMC(1)		     Инструменты разработки GNU		     WINDMC(1)



NAME
       windmc - генерирует ресурсы сообщений Windows

SYNOPSIS
       windmc [options] input-file

DESCRIPTION
       windmc читает определения сообщений из входного файла (.mc) и переводит
       их в набор выходных файлов. Выходные файлы могут быть четырёх видов:

       "h" Файл заголовка C, содержащий определения сообщений.

       "rc"
	   Файл ресурсов, компилируемый инструментом windres.

       "bin"
	   Один или несколько бинарных файлов, содержащих данные ресурсов для
	   конкретного языка сообщений.

       "dbg"
	   Файл включения C, который отображает идентификаторы сообщений в их символическое имя.

       Точное описание этих различных форматов доступно в документации от Microsoft.

       Когда windmc преобразует из формата "mc" в формат "bin", "rc",
       "h" и необязательный "dbg", он действует как Компилятор сообщений Windows.

OPTIONS
       -a
       --ascii_in
	   Указывает, что указанный входной файл является ASCII. Это поведение по умолчанию.

       -A
       --ascii_out
	   Указывает, что сообщения в выходных файлах "bin" должны быть в формате ASCII.

       -b
       --binprefix
	   Указывает, что имена файлов "bin" должны быть с префиксом, равным базовому имени исходного файла.

       -c
       --customflag
	   Устанавливает бит клиента во всех идентификаторах сообщений.

       -C codepage
       --codepage_in codepage
	   Устанавливает кодовую страницу по умолчанию, которая будет использоваться для преобразования входного файла в UTF16. Значение по умолчанию - кодовая страница 1252.

       -d
       --decimal_values
	   Выводит константы в файле заголовка в десятичном формате. Значение по умолчанию - использование шестнадцатеричного вывода.

       -e ext
       --extension ext
	   Расширение для файла заголовка. Значение по умолчанию - .h.

       -F target
       --target target
	   Указывает формат BFD, который будет использоваться для выходного бинарного файла. Это имя цели BFD; вы можете использовать опцию --help, чтобы увидеть список поддерживаемых целей. Нормально windmc будет использовать формат по умолчанию, который является первым в списке опции --help.

       -h path
       --headerdir path
	   Целевая директория для сгенерированного файла заголовка. Значение по умолчанию - текущая директория.

       -H
       --help
	   Отображает список опций командной строки и затем выходит.

       -m characters
       --maxlength characters
	   Инструктирует windmc генерировать предупреждение, если длина любого сообщения превышает указанное число.

       -n
       --nullterminate
	   Завершает текст сообщения в файлах "bin" нулем. По умолчанию они завершаются CR/LF.

       -o
       --hresult_use
	   Ещё не реализовано. Инструктирует "windmc" генерировать файл заголовка OLE2, используя определения HRESULT. Статус-коды используются, если флаг не указан.

       -O codepage
       --codepage_out codepage
	   Устанавливает кодовую страницу по умолчанию, которая будет использоваться для вывода текстовых файлов. Значение по умолчанию - кодовая страница 1252.

       -r path
       --rcdir path
	   Целевая директория для сгенерированного скрипта "rc" и сгенерированных файлов "bin", которые включает скрипт компилятора ресурсов. Значение по умолчанию - текущая директория.

       -u
       --unicode_in
	   Указывает, что входной файл является UTF16.

       -U
       --unicode_out
	   Указывает, что сообщения в выходном файле "bin" должны быть в формате UTF16. Это поведение по умолчанию.

       -v
       --verbose
	   Включает режим подробного вывода.

       -V
       --version
	   Печатает номер версии для windmc.

       -x path
       --xdgb path
	   Путь к файлу включения C "dbg", который отображает идентификаторы сообщений в символическое имя. Такой файл не генерируется без указания переключателя.

       @file
	   Читает опции командной строки из файла. Прочитанные опции вставляются на место оригинальной опции @file. Если файл не существует или не может быть прочитан, то опция будет обработана буквально и не удалена.

	   Опции в файле разделены пробелами. Символ пробела может быть включён в опцию путём обрамления всей опции в одинарные или двойные кавычки. Любые символы (включая обратный слэш) могут быть включены путём добавления обратного слэша перед символом, который нужно включить. Файл может сам содержать дополнительные опции @file; такие опции будут обработаны рекурсивно.

SEE ALSO
       разделы Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или модифицировать этот документ
       в соответствии с условиями Лицензии GNU Free Documentation License, версии 1.3 или любой более поздней версии, опубликованной Free Software Foundation; без Инвариантных Разделов, без Текстов на Обложке и без Текстов на Задней Обложке. Копия лицензии включена в раздел, озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-05-12			     WINDMC(1)
WINDMC(1)		     GNU Development Tools		     WINDMC(1)



NAME
       windmc - generates Windows message resources

SYNOPSIS
       windmc [options] input-file

DESCRIPTION
       windmc reads message definitions from an input file (.mc) and translate
       them into a set of output files.	 The output files may be of four
       kinds:

       "h" A C header file containing the message definitions.

       "rc"
	   A resource file compilable by the windres tool.

       "bin"
	   One or more binary files containing the resource data for a
	   specific message language.

       "dbg"
	   A C include file that maps message id's to their symbolic name.

       The exact description of these different formats is available in
       documentation from Microsoft.

       When windmc converts from the "mc" format to the "bin" format, "rc",
       "h", and optional "dbg" it is acting like the Windows Message Compiler.

OPTIONS
       -a
       --ascii_in
	   Specifies that the input file specified is ASCII. This is the
	   default behaviour.

       -A
       --ascii_out
	   Specifies that messages in the output "bin" files should be in
	   ASCII format.

       -b
       --binprefix
	   Specifies that "bin" filenames should have to be prefixed by the
	   basename of the source file.

       -c
       --customflag
	   Sets the customer bit in all message id's.

       -C codepage
       --codepage_in codepage
	   Sets the default codepage to be used to convert input file to
	   UTF16. The default is ocdepage 1252.

       -d
       --decimal_values
	   Outputs the constants in the header file in decimal. Default is
	   using hexadecimal output.

       -e ext
       --extension ext
	   The extension for the header file. The default is .h extension.

       -F target
       --target target
	   Specify the BFD format to use for a bin file as output.  This is a
	   BFD target name; you can use the --help option to see a list of
	   supported targets.  Normally windmc will use the default format,
	   which is the first one listed by the --help option.

       -h path
       --headerdir path
	   The target directory of the generated header file. The default is
	   the current directory.

       -H
       --help
	   Displays a list of command-line options and then exits.

       -m characters
       --maxlength characters
	   Instructs windmc to generate a warning if the length of any message
	   exceeds the number specified.

       -n
       --nullterminate
	   Terminate message text in "bin" files by zero. By default they are
	   terminated by CR/LF.

       -o
       --hresult_use
	   Not yet implemented. Instructs "windmc" to generate an OLE2 header
	   file, using HRESULT definitions. Status codes are used if the flag
	   is not specified.

       -O codepage
       --codepage_out codepage
	   Sets the default codepage to be used to output text files. The
	   default is ocdepage 1252.

       -r path
       --rcdir path
	   The target directory for the generated "rc" script and the
	   generated "bin" files that the resource compiler script includes.
	   The default is the current directory.

       -u
       --unicode_in
	   Specifies that the input file is UTF16.

       -U
       --unicode_out
	   Specifies that messages in the output "bin" file should be in UTF16
	   format. This is the default behaviour.

       -v
       --verbose
	   Enable verbose mode.

       -V
       --version
	   Prints the version number for windmc.

       -x path
       --xdgb path
	   The path of the "dbg" C include file that maps message id's to the
	   symbolic name. No such file is generated without specifying the
	   switch.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			     WINDMC(1)

GPROFNG-DISPLAY-TEXT(1)		 Пользовательские команды	       GPROFNG-DISPLAY-TEXT(1)



NAME
       gprofng-display-text - Отображение данных производительности в формате простого текста

SYNOPSIS
       gprofng display text [option(s)] [commands] [-script script-file]
       experiment(s)

DESCRIPTION
       Выводит версию в формате простого текста различных отображений, поддерживаемых gprofng.

       Входные данные состоят из одной или нескольких директорий экспериментов.  С помощью команд пользователь управляет выводом.

       Существует богатый набор команд для управления отображением данных.
       Раздел NOTES перечисляет наиболее распространённые из них.  Руководство пользователя gprofng перечисляет все поддерживаемые команды.

       Команды, указанные в командной строке, должны предваряться символом тире ('-').

       В этом примере будет показано обзор функций, за которым следует список исходного кода функции my-func, аннотированный метриками производительности, которые были записаны во время сбора данных и сохранены в директории эксперимента my-exp.er:

	       $ gprofng display text -functions -source my-func my-exp.er

       Вместо этого, или в дополнение к этому, команды также могут быть включены в файл, называемый script-file.

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

       Если эта утилита вызывается без опций, команд или файла сценария, она запускается в режиме интерпретатора.  Пользователь может вводить команды интерактивно.  Сеанс завершается командой exit в интерпретаторе.

OPTIONS
       --version
	   Вывести номер версии и выйти.

       --help
	   Вывести информацию об использовании и выйти.

       -script script-file
	   Выполнить команды, хранящиеся в файле сценария.  Эта функция может быть объединена с командами, указанными в командной строке.

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

       Существует ещё больше команд.  Они документированы в руководстве пользователя.

       "callers-callees"
	   В панели callers-callees показывается, какая(ие) функция(и) вызывают целевую функцию (вызывающие) и какие функции она вызывает (вызываемые).  Эта команда выводит панель callers-callees для каждой из функций в порядке, определяемом метрикой сортировки функций.

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

       "compare {on | off | delta | ratio}"
	   По умолчанию результаты для нескольких экспериментов агрегируются.
	   Эта команда изменяет это, чтобы включить сравнение экспериментов для определённых представлений (например, представления функций).  Первый указанный эксперимент определяется как эталонный.  Поддерживаются следующие опции:

	   "on"
	       Для каждого эксперимента, указанного в командной строке, выводить значения метрик, которые были активированы для эксперимента.

	   "off"
	       Отключить сравнение экспериментов.  Это значение по умолчанию.

	   "delta"
	       Выводить значения для эталонного эксперимента.  Результаты для других экспериментов показываются как дельта относительно эталонного (текущий-эталонный).

	   "ratio"
	       Выводить значения для эталонного эксперимента.  Результаты для других экспериментов показываются как отношение относительно эталонного (текущий/эталонный).

       "disasm function-name"
	   Вывести исходный код и инструкции для указанной функции.  Инструкции аннотированы используемыми метриками.

       "fsingle function-name [n]"
	   Вывести сводную панель для указанной функции.  Необязательный параметр n требуется в тех случаях, когда несколько функций имеют одно и то же имя.

       "fsummary"
	   Вывести сводную панель для каждой функции в списке функций.

       "functions"
	   Отобразить список всех выполненных функций.  Для каждой функции показываются используемые метрики (например, время CPU).

       "header"
	   Показывает несколько эксплуатационных характеристик указанных экспериментов в командной строке.

       "limit n"
	   Ограничить вывод n строками.

       "lines"
	   Вывести список строк исходного кода и их метрик, упорядоченный по текущей метрике сортировки.

       "metric_list"
	   Отобразить текущие выбранные метрики в представлении функций и список всех доступных метрик для целевых экспериментов.

       "metrics metric-spec"
	   Определить метрики, которые будут отображаться в обзорах функций и callers-callees.

	   metric-spec может быть либо ключевым словом default для восстановления метрик по умолчанию, либо списком метрик, разделённых двоеточиями.

	   Специальная метрика — "hwc".  Она автоматически расширяется до активного набора счётчиков аппаратных событий, использованных в экспериментах.

	   Если были измерены как инструкции, так и тактовые циклы, метрики "CPI" и "IPC" можно использовать для просмотра значений Clockcycles Per Instruction и Instructions Per Clockcycle соответственно.

	   В руководстве пользователя gprofng приведены более подробные сведения о том, как определять метрики.

       "name {short | long | mangled}[:{soname | nosoname}]"
	   Указать, использовать ли короткую, длинную или искажённую форму имён функций.  Опционально, объект загрузки, к которому относится функция, можно включить в вывод, добавив ключевое слово soname.  Его также можно omitted (nosoname), что является значением по умолчанию.

	   Действительное различие между этими типами имён зависит от языка.

	   Обратите внимание, что слева и справа от двоеточия (:) не должно быть пробелов.

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

       "overview"
	   Показывает сводку записанных данных производительности для указанных экспериментов в командной строке.

       "pcs"
	   Вывести список счётчиков программы (PCs) и их метрик, упорядоченный по текущей метрике сортировки.

       "sort metric-spec"
	   Сортировать список функций по указанной metric-spec.

	   @IndexSubentry{Sort, Reverse order} Данные можно сортировать в обратном порядке, предваряя определение метрики знаком минус (-).

	   Например, sort -e.totalcpu.

	   @IndexSubentry{Sort, Reset to default} Метрика по умолчанию для операции сортировки определена, и поскольку это постоянная команда, эту метрику по умолчанию можно восстановить с помощью "default" в качестве ключа (sort default).

       "source function-name"
	   Вывести исходный код указанной функции, аннотированный используемыми метриками.

       "viewmode {user | expert | machine}"
	   Эта команда актуальна только для программ на Java.  Для всех других поддерживаемых языков настройка viewmode не оказывает влияния.

	   Поддерживаются следующие опции:

	   "user"
	       Показывать стеки вызовов Java для потоков Java, но не показывать служебные потоки.  В представлении функций включена функция <JVM-System>.  Это представляет агрегированное время от не-Java-потоков.  В случае, если программное обеспечение JVM не сообщает стек вызовов Java, время фиксируется против функции <no Java callstack recorded>.

	   "expert"
	       Показывать стеки вызовов Java для потоков Java, когда выполняется пользовательский код Java, и стеки вызовов машины, когда выполняется код JVM или когда программное обеспечение JVM не сообщает стек вызовов Java.  Показывать стеки вызовов машины для служебных потоков.

	   "machine"
	       Показывать фактические нативные стеки вызовов для всех потоков.  Это режим представления для C, C++ и Fortran.

SEE ALSO
       gprofng(1), gprofng-archive(1), gprofng-collect-app(1),
       gprofng-display-html(1), gprofng-display-src(1)

       Руководство пользователя gprofng поддерживается в виде руководства Texinfo.  Если программы info и gprofng правильно установлены, команда info gprofng должна предоставить доступ к этому документу.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями Лицензии GNU Free Documentation License, версии 1.3 или любой более поздней версии, опубликованной Free Software Foundation; без Инвариантных Разделов, без Текстов На Обложке и без Текстов На Задней Обложке.  Копия лицензии включена в раздел, озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-02-02	       GPROFNG-DISPLAY-TEXT(1)
GPROFNG-DISPLAY-TEXT(1)		 User Commands	       GPROFNG-DISPLAY-TEXT(1)



NAME
       gprofng-display-text - Display the performance data in plain text
       format

SYNOPSIS
       gprofng display text [option(s)] [commands] [-script script-file]
       experiment(s)

DESCRIPTION
       Print a plain text version of the various displays supported by
       gprofng.

       The input consists of one or more experiment directories.  Through
       commands, the user controls the output.

       There is a rich set of commands to control the display of the data.
       The NOTES section lists the most common ones.  The gprofng user guide
       lists all the commands supported.

       Commands specified on the command line need to be prepended with the
       dash ('-') symbol.

       In this example, a function overview will be shown, followed by the
       source code listing of function my-func, annotated with the performance
       metrics that have been recorded during the data collection and stored
       in experiment directory my-exp.er:

	       $ gprofng display text -functions -source my-func my-exp.er

       Instead of, or in addition to, specifying these commands on the command
       line, commands may also be included in a file called the script-file.

       Note that the commands are processed and interpreted from left to
       right, so the order matters.

       If this tool is invoked without options, commands, or a script file, it
       starts in interpreter mode.  The user can then issue the commands
       interactively.  The session is terminated with the exit command in the
       interpreter.

OPTIONS
       --version
	   Print the version number and exit.

       --help
	   Print usage information and exit.

       -script script-file
	   Execute the commands stored in the script file.  This feature may
	   be combined with commands specified at the command line.

NOTES
       Many commands are supported.  Below, the more common ones are listed in
       mostly alphabetical order, because sometimes it is more logical to swap
       the order of two entries.

       There are many more commands.  These are documented in the user guide.

       "callers-callees"
	   In a callers-callees panel, it is shown which function(s) call the
	   target function (the callers) and what functions it is calling (the
	   callees).  This command prints the callers-callees panel for each
	   of the functions, in the order specified by the function sort
	   metric.

       "calltree"
	   Display the dynamic call graph from the experiment, showing the
	   hierarchical metrics at each level.

       "compare {on | off | delta | ratio}"
	   By default, the results for multiple experiments are aggregated.
	   This command changes this to enable the comparison of experiments
	   for certain views (e.g. the function view).	The first experiment
	   specified is defined to be the reference.  The following options
	   are supported:

	   "on"
	       For each experiment specified on the command line, print the
	       values for the metrics that have been activated for the
	       experiment.

	   "off"
	       Disable the comparison of experiments.  This is the default.

	   "delta"
	       Print the values for the reference experiment.  The results for
	       the other experiments are shown as a delta relative to the
	       reference (current-reference).

	   "ratio"
	       Print the values for the reference experiment.  The results for
	       the other experiments are shown as a ratio relative to the
	       reference (current/reference).

       "disasm function-name"
	   List the source code and instructions for the function specified.
	   The instructions are annotated with the metrics used.

       "fsingle function-name [n]"
	   Write a summary panel for the specified function.  The optional
	   parameter n is needed for those cases where several functions have
	   the same name.

       "fsummary"
	   Write a summary panel for each function in the function list.

       "functions"
	   Display a list of all functions executed.  For each function the
	   used metrics (e.g. the CPU time) are shown.

       "header"
	   Shows several operational characteristics of the experiment(s)
	   specified on the command line.

       "limit n"
	   Limit the output to n lines.

       "lines"
	   Write a list of source lines and their metrics, ordered by the
	   current sort metric.

       "metric_list"
	   Display the currently selected metrics in the function view and a
	   list of all the metrics available for the target experiment(s).

       "metrics metric-spec"
	   Define the metrics to be displayed in the function and
	   callers-callees overviews.

	   The metric-spec can either be the keyword default to restore the
	   default metrics selection, or a colon separated list with metrics.

	   A special metric is "hwc".  It automatically expands to the active
	   set of hardware event counters used in the experiment(s).

	   If both instructions and clock cycles have been measured, the "CPI"
	   and "IPC" metrics can be used to see the Clockcycles Per
	   Instruction and Instructions Per Clockcyle values, respectively.

	   The gprofng user guide has more details how to define metrics.

       "name {short | long | mangled}[:{soname | nosoname}]"
	   Specify whether to use the short, long, or mangled form of function
	   names.  Optionally, the load object that the function is part of
	   can be included in the output by adding the soname keyword.	It can
	   also be ommitted (nosoname), which is the default.

	   Whether there is an actual difference between these types of names
	   depends on the language.

	   Note that there should be no (white)space to the left and right of
	   the colon (:).

	   This option should not be confused with the keyword name in a
	   metric definition, which is used to specify that the names of
	   functions should be shown in the function overview.

       "overview"
	   Shows a summary of the recorded performance data for the
	   experiment(s) specified on the command line.

       "pcs"
	   Write a list of program counters (PCs) and their metrics, ordered
	   by the current sort metric.

       "sort metric-spec"
	   Sort the function list on the metric-spec given.

	   @IndexSubentry{Sort, Reverse order} The data can be sorted in
	   reverse order by prepending the metric definition with a minus (-)
	   sign.

	   For example sort -e.totalcpu.

	   @IndexSubentry{Sort, Reset to default} A default metric for the
	   sort operation has been defined and since this is a persistent
	   command, this default can be restored with "default" as the key
	   (sort default).

       "source function-name"
	   List the source code for the function specified, annotated with the
	   metrics used.

       "viewmode {user | expert | machine}"
	   This command is only relevant for Java programs.  For all other
	   languages supported, the viewmode setting has no effect.

	   The following options are supported:

	   "user"
	       Show the Java call stacks for Java threads, but do not show
	       housekeeping threads.  The function view includes a function
	       called <JVM-System>.  This represents the aggregated time from
	       non-Java threads.  In case the JVM software does not report a
	       Java call stack, time is reported against the function <no Java
	       callstack recorded>.

	   "expert"
	       Show the Java call stacks for Java threads when the user Java
	       code is executed, and machine call stacks when JVM code is
	       executed, or when the JVM software does not report a Java call
	       stack.  Show the machine call stacks for housekeeping threads.

	   "machine"
	       Show the actual native call stacks for all threads.  This is
	       the view mode for C, C++, and Fortran.

SEE ALSO
       gprofng(1), gprofng-archive(1), gprofng-collect-app(1),
       gprofng-display-html(1), gprofng-display-src(1)

       The user guide for gprofng is maintained as a Texinfo manual.  If the
       info and gprofng programs are correctly installed, the command info
       gprofng should give access to this document.

COPYRIGHT
       Copyright (c) 2022-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-02-02	       GPROFNG-DISPLAY-TEXT(1)

ELFEDIT(1)		     Инструменты разработки GNU		    ELFEDIT(1)



NAME
       elfedit - обновляет ELF-заголовок и свойства программы ELF-файлов

SYNOPSIS
       elfedit [--input-mach=machine]
	       [--input-type=type]
	       [--input-osabi=osabi]
	       [--input-abiversion=version]
	       --output-mach=machine
	       --output-type=type
	       --output-osabi=osabi
	       --output-abiversion=version
	       --enable-x86-feature=feature
	       --disable-x86-feature=feature
	       [-v|--version]
	       [-h|--help]
	       elffile...

DESCRIPTION
       elfedit обновляет ELF-заголовок и свойства программы ELF-файлов, которые
       соответствуют указанным типам ELF-машины и файлов. Опции управляют тем,
       как и какие поля в ELF-заголовке и свойствах программы должны быть
       обновлены.

       elffile... — это ELF-файлы, которые нужно обновить. Поддерживаются 32-битные и 64-битные ELF-файлы,
       а также архивы, содержащие ELF-файлы.

OPTIONS
       Длинные и короткие формы опций, показанные здесь как альтернативы, эквивалентны. Должна быть указана
       хотя бы одна из опций --output-mach, --output-type, --output-osabi, --output-abiversion,
       --enable-x86-feature или --disable-x86-feature.

       --input-mach=machine
	   Устанавливает совпадающий тип ELF-машины входного файла на machine. Если
	   --input-mach не указан, он будет совпадать с любыми типами ELF-машин.

	   Поддерживаемые типы ELF-машин: i386, IAMCU, L1OM, K1OM и x86-64.

       --output-mach=machine
	   Изменяет тип ELF-машины в ELF-заголовке на machine. Поддерживаемые
	   типы ELF-машин такие же, как для --input-mach.

       --input-type=type
	   Устанавливает совпадающий тип файла ELF входного файла на type. Если --input-type
	   не указан, он будет совпадать с любыми типами ELF-файлов.

	   Поддерживаемые типы ELF-файлов: rel, exec и dyn.

       --output-type=type
	   Изменяет тип файла ELF в ELF-заголовке на type. Поддерживаемые типы
	   ELF такие же, как для --input-type.

       --input-osabi=osabi
	   Устанавливает совпадающий OSABI файла ELF входного файла на osabi. Если --input-osabi
	   не указан, он будет совпадать с любыми OSABI ELF.

	   Поддерживаемые OSABI ELF: none, HPUX, NetBSD, GNU, Linux (псевдоним для GNU), Solaris, AIX, Irix,
	   FreeBSD, TRU64, Modesto, OpenBSD, OpenVMS, NSK, AROS и FenixOS.

       --output-osabi=osabi
	   Изменяет OSABI в ELF-заголовке на osabi. Поддерживаемые OSABI ELF такие же, как для --input-osabi.

       --input-abiversion=version
	   Устанавливает совпадающий ABIVERSION файла ELF входного файла на version. Значение
	   version должно быть между 0 и 255. Если --input-abiversion не указан,
	   оно будет совпадать с любыми ABIVERSION ELF.

       --output-abiversion=version
	   Изменяет ABIVERSION в ELF-заголовке на version. Значение version должно быть
	   между 0 и 255.

       --enable-x86-feature=feature
	   Устанавливает бит признака в свойствах программы для ELF-файлов типа exec или dyn
	   с типами машин i386 или x86-64. Поддерживаемые признаки: ibt, shstk, lam_u48 и lam_u57.

       --disable-x86-feature=feature
	   Сбрасывает бит признака в свойствах программы для ELF-файлов типа exec или dyn
	   с типами машин i386 или x86-64. Поддерживаемые признаки такие же, как для --enable-x86-feature.

	   Примечание: опции --enable-x86-feature и --disable-x86-feature доступны
	   только на хостах с поддержкой mmap.

       -v
       --version
	   Выводит номер версии elfedit.

       -h
       --help
	   Выводит командные опции, которые понимает elfedit.

       @file
	   Читает командные опции из файла. Опции из файла вставляются на место
	   оригинальной опции @file. Если файл не существует или не может быть прочитан,
	   опция будет обработана буквально, без удаления.

	   Опции в файле разделяются пробелами. Пробельный символ можно включить в опцию,
	   окружив всю опцию одинарными или двойными кавычками. Любые символы (включая
	   обратную косую черту) можно включить, предваряя символ обратной косой чертой.
	   Файл может содержать дополнительные опции @file; такие опции будут обработаны
	   рекурсивно.

SEE ALSO
       readelf(1), а также записи Info для binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Разрешается копировать, распространять и/или изменять этот документ на условиях
       Лицензии GNU Free Documentation License, версии 1.3 или любой более поздней версии,
       опубликованной Free Software Foundation; без Инвариантных Разделов, без Текстов
       на Обложке и без Текстов на Задней Обложке. Копия лицензии включена в раздел,
       озаглавленный "GNU Free Documentation License".



binutils-2.44			  2025-05-12			    ELFEDIT(1)
ELFEDIT(1)		     GNU Development Tools		    ELFEDIT(1)



NAME
       elfedit - update ELF header and program property of ELF files

SYNOPSIS
       elfedit [--input-mach=machine]
	       [--input-type=type]
	       [--input-osabi=osabi]
	       [--input-abiversion=version]
	       --output-mach=machine
	       --output-type=type
	       --output-osabi=osabi
	       --output-abiversion=version
	       --enable-x86-feature=feature
	       --disable-x86-feature=feature
	       [-v|--version]
	       [-h|--help]
	       elffile...

DESCRIPTION
       elfedit updates the ELF header and program property of ELF files which
       have the matching ELF machine and file types.  The options control how
       and which fields in the ELF header and program property should be
       updated.

       elffile... are the ELF files to be updated.  32-bit and 64-bit ELF
       files are supported, as are archives containing ELF files.

OPTIONS
       The long and short forms of options, shown here as alternatives, are
       equivalent. At least one of the --output-mach, --output-type,
       --output-osabi, --output-abiversion, --enable-x86-feature and
       --disable-x86-feature options must be given.

       --input-mach=machine
	   Set the matching input ELF machine type to machine.	If
	   --input-mach isn't specified, it will match any ELF machine types.

	   The supported ELF machine types are, i386, IAMCU, L1OM, K1OM and
	   x86-64.

       --output-mach=machine
	   Change the ELF machine type in the ELF header to machine.  The
	   supported ELF machine types are the same as --input-mach.

       --input-type=type
	   Set the matching input ELF file type to type.  If --input-type
	   isn't specified, it will match any ELF file types.

	   The supported ELF file types are, rel, exec and dyn.

       --output-type=type
	   Change the ELF file type in the ELF header to type.	The supported
	   ELF types are the same as --input-type.

       --input-osabi=osabi
	   Set the matching input ELF file OSABI to osabi.  If --input-osabi
	   isn't specified, it will match any ELF OSABIs.

	   The supported ELF OSABIs are, none, HPUX, NetBSD, GNU, Linux (alias
	   for GNU), Solaris, AIX, Irix, FreeBSD, TRU64, Modesto, OpenBSD,
	   OpenVMS, NSK, AROS and FenixOS.

       --output-osabi=osabi
	   Change the ELF OSABI in the ELF header to osabi.  The supported ELF
	   OSABI are the same as --input-osabi.

       --input-abiversion=version
	   Set the matching input ELF file ABIVERSION to version.  version
	   must be between 0 and 255.  If --input-abiversion isn't specified,
	   it will match any ELF ABIVERSIONs.

       --output-abiversion=version
	   Change the ELF ABIVERSION in the ELF header to version.  version
	   must be between 0 and 255.

       --enable-x86-feature=feature
	   Set the feature bit in program property in exec or dyn ELF files
	   with machine types of i386 or x86-64.  The supported features are,
	   ibt, shstk, lam_u48 and lam_u57.

       --disable-x86-feature=feature
	   Clear the feature bit in program property in exec or dyn ELF files
	   with machine types of i386 or x86-64.  The supported features are
	   the same as --enable-x86-feature.

	   Note: --enable-x86-feature and --disable-x86-feature are available
	   only on hosts with mmap support.

       -v
       --version
	   Display the version number of elfedit.

       -h
       --help
	   Display the command-line options understood by elfedit.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       readelf(1), and the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			    ELFEDIT(1)

ADDR2LINE(1)		     GNU Development Tools		  ADDR2LINE(1)

NAME
       addr2line - преобразует адреса или symbol+offset в имена файлов и номера строк

SYNOPSIS
       addr2line [-a|--addresses]
		 [-b bfdname|--target=bfdname]
		 [-C|--demangle[=style]]
		 [-r|--no-recurse-limit]
		 [-R|--recurse-limit]
		 [-e filename|--exe=filename]
		 [-f|--functions] [-s|--basename]
		 [-i|--inlines]
		 [-p|--pretty-print]
		 [-j|--section=name]
		 [-H|--help] [-V|--version]
		 [addr addr ...]

DESCRIPTION
       addr2line преобразует адреса или symbol+offset в имена файлов и номера строк. При указании адреса или symbol+offset в исполняемом файле или смещения в разделе переставляемого объекта, он использует отладочную информацию, чтобы определить, какой файл и номер строки с ним ассоциированы.

       Исполняемый файл или переставляемый объект, который будет использоваться, указывается с опцией -e. По умолчанию используется файл a.out. Раздел в переставляемом объекте, который будет использоваться, указывается с опцией -j.

       addr2line имеет два режима работы.

       В первом режиме на командной строке указываются шестнадцатеричные адреса или symbol+offset, и addr2line отображает имя файла и номер строки для каждого адреса.

       Во втором режиме addr2line читает шестнадцатеричные адреса или symbol+offset из стандартного ввода и выводит имя файла и номер строки для каждого адреса в стандартный вывод. В этом режиме addr2line может использоваться в конвейере для преобразования динамически выбранных адресов.

       Формат вывода — FILENAME:LINENO. По умолчанию каждый входной адрес генерирует одну строку вывода.

       Две опции могут генерировать дополнительные строки перед строкой FILENAME:LINENO (в указанном порядке).

       Если используется опция -a, то отображается строка с входным адресом.

       Если используется опция -f, то отображается строка с именем функции FUNCTIONNAME. Это имя функции, содержащей адрес.

       Одна опция может генерировать дополнительные строки после строки FILENAME:LINENO.

       Если используется опция -i и код по данному адресу присутствует из-за встроенного компилятором кода, то после этого отображаются дополнительные строки. Для каждой встроенной функции отображаются одна или две дополнительные строки (если используется опция -f).

       Альтернативно, если используется опция -p, то каждый входной адрес генерирует одну длинную строку вывода, содержащую адрес, имя функции, имя файла и номер строки. Если также использована опция -i, то любые встроенные функции будут отображаться аналогично, но на отдельных строках и с префиксом (inlined by).

       Если имя файла или имя функции определить невозможно, addr2line выведет два знака вопроса на их месте. Если номер строки определить невозможно, addr2line выведет 0.

       При использовании symbol+offset, +offset является необязательным, за исключением случаев, когда символ неоднозначен с шестнадцатеричным числом. Разрешенные символы могут быть искаженными или неискаженными, за исключением неискаженных символов с +.

OPTIONS
       Длинные и короткие формы опций, показанные здесь как альтернативы, эквивалентны.

       -a
       --addresses
	   Отображать адрес перед информацией о имени функции, файле и номере строки. Адрес выводится с префиксом 0x для легкой идентификации.

       -b bfdname
       --target=bfdname
	   Указывать формат объектного кода для объектных файлов как bfdname.

       -C
       --demangle[=style]
	   Декодировать (разискать) низкоуровневые имена символов в пользовательские имена. Кроме удаления начального подчеркивания, добавленного системой, это делает читаемыми имена функций C++. Разные компиляторы имеют разные стили искажения. Необязательный аргумент стиля разыска может быть использован для выбора подходящего стиля разыска для вашего компилятора.

       -e filename
       --exe=filename
	   Указывать имя исполняемого файла, для которого должны быть преобразованы адреса. Файл по умолчанию — a.out.

       -f
       --functions
	   Отображать имена функций, а также информацию о файле и номере строки.

       -s
       --basenames
	   Отображать только базовое имя каждого файла.

       -i
       --inlines
	   Если адрес принадлежит функции, которая была встроена, то информация об источнике для всех охватывающих областей до первой не встроенной функции также будет выведена. Например, если "main" встроила "callee1", которая встроила "callee2", и адрес из "callee2", то информация об источнике для "callee1" и "main" также будет выведена.

       -j
       --section
	   Читать смещения относительно указанного раздела, а не абсолютных адресов.

       -p
       --pretty-print
	   Делать вывод более удобным для человека: каждое местоположение выводится на одной строке. Если указана опция -i, строки для всех охватывающих областей будут начинаться с префикса (inlined by).

       -r
       -R
       --recurse-limit
       --no-recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Включать или отключать ограничение на количество рекурсии при разыскании строк. Поскольку форматы искажения имен позволяют бесконечный уровень рекурсии, возможно создание строк, декодирование которых израсходует объем доступного стека на хост-машине, вызывая ошибку памяти. Ограничение пытается предотвратить это, ограничивая рекурсию 2048 уровнями вложенности.

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

	   Опция -r является синонимом для --no-recurse-limit. Опция -R является синонимом для --recurse-limit.

	   Обратите внимание, что эта опция действует только если включена опция -C или --demangle.

       @file
	   Читать параметры командной строки из файла. Прочитанные параметры вставляются на место оригинальной опции @file. Если файл не существует или не может быть прочитан, опция будет обработана буквально, без удаления.

	   Параметры в файле разделяются пробелами. Пробельный символ может быть включен в параметр, если весь параметр заключен в одинарные или двойные кавычки. Любые символы (включая обратную косую черту) могут быть включены путем добавления перед ними обратной косой черты. Файл может сам содержать дополнительные опции @file; такие опции будут обработаны рекурсивно.

SEE ALSO
       Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			  ADDR2LINE(1)
ADDR2LINE(1)		     GNU Development Tools		  ADDR2LINE(1)



NAME
       addr2line - convert addresses or symbol+offset into file names and line
       numbers

SYNOPSIS
       addr2line [-a|--addresses]
		 [-b bfdname|--target=bfdname]
		 [-C|--demangle[=style]]
		 [-r|--no-recurse-limit]
		 [-R|--recurse-limit]
		 [-e filename|--exe=filename]
		 [-f|--functions] [-s|--basename]
		 [-i|--inlines]
		 [-p|--pretty-print]
		 [-j|--section=name]
		 [-H|--help] [-V|--version]
		 [addr addr ...]

DESCRIPTION
       addr2line translates addresses or symbol+offset into file names and
       line numbers.  Given an address or symbol+offset in an executable or an
       offset in a section of a relocatable object, it uses the debugging
       information to figure out which file name and line number are
       associated with it.

       The executable or relocatable object to use is specified with the -e
       option.	The default is the file a.out.	The section in the relocatable
       object to use is specified with the -j option.

       addr2line has two modes of operation.

       In the first, hexadecimal addresses or symbol+offset are specified on
       the command line, and addr2line displays the file name and line number
       for each address.

       In the second, addr2line reads hexadecimal addresses or symbol+offset
       from standard input, and prints the file name and line number for each
       address on standard output.  In this mode, addr2line may be used in a
       pipe to convert dynamically chosen addresses.

       The format of the output is FILENAME:LINENO.  By default each input
       address generates one line of output.

       Two options can generate additional lines before each FILENAME:LINENO
       line (in that order).

       If the -a option is used then a line with the input address is
       displayed.

       If the -f option is used, then a line with the FUNCTIONNAME is
       displayed.  This is the name of the function containing the address.

       One option can generate additional lines after the FILENAME:LINENO
       line.

       If the -i option is used and the code at the given address is present
       there because of inlining by the compiler then additional lines are
       displayed afterwards.  One or two extra lines (if the -f option is
       used) are displayed for each inlined function.

       Alternatively if the -p option is used then each input address
       generates a single, long, output line containing the address, the
       function name, the file name and the line number.  If the -i option has
       also been used then any inlined functions will be displayed in the same
       manner, but on separate lines, and prefixed by the text (inlined by).

       If the file name or function name can not be determined, addr2line will
       print two question marks in their place.	 If the line number can not be
       determined, addr2line will print 0.

       When symbol+offset is used, +offset is optional, except when the symbol
       is ambigious with a hex number. The resolved symbols can be mangled or
       unmangled, except unmangled symbols with + are not allowed.

OPTIONS
       The long and short forms of options, shown here as alternatives, are
       equivalent.

       -a
       --addresses
	   Display the address before the function name, file and line number
	   information.	 The address is printed with a 0x prefix to easily
	   identify it.

       -b bfdname
       --target=bfdname
	   Specify that the object-code format for the object files is
	   bfdname.

       -C
       --demangle[=style]
	   Decode (demangle) low-level symbol names into user-level names.
	   Besides removing any initial underscore prepended by the system,
	   this makes C++ function names readable.  Different compilers have
	   different mangling styles. The optional demangling style argument
	   can be used to choose an appropriate demangling style for your
	   compiler.

       -e filename
       --exe=filename
	   Specify the name of the executable for which addresses should be
	   translated.	The default file is a.out.

       -f
       --functions
	   Display function names as well as file and line number information.

       -s
       --basenames
	   Display only the base of each file name.

       -i
       --inlines
	   If the address belongs to a function that was inlined, the source
	   information for all enclosing scopes back to the first non-inlined
	   function will also be printed.  For example, if "main" inlines
	   "callee1" which inlines "callee2", and address is from "callee2",
	   the source information for "callee1" and "main" will also be
	   printed.

       -j
       --section
	   Read offsets relative to the specified section instead of absolute
	   addresses.

       -p
       --pretty-print
	   Make the output more human friendly: each location are printed on
	   one line.  If option -i is specified, lines for all enclosing
	   scopes are prefixed with (inlined by).

       -r
       -R
       --recurse-limit
       --no-recurse-limit
       --recursion-limit
       --no-recursion-limit
	   Enables or disables a limit on the amount of recursion performed
	   whilst demangling strings.  Since the name mangling formats allow
	   for an infinite level of recursion it is possible to create strings
	   whose decoding will exhaust the amount of stack space available on
	   the host machine, triggering a memory fault.	 The limit tries to
	   prevent this from happening by restricting recursion to 2048 levels
	   of nesting.

	   The default is for this limit to be enabled, but disabling it may
	   be necessary in order to demangle truly complicated names.  Note
	   however that if the recursion limit is disabled then stack
	   exhaustion is possible and any bug reports about such an event will
	   be rejected.

	   The -r option is a synonym for the --no-recurse-limit option.  The
	   -R option is a synonym for the --recurse-limit option.

	   Note this option is only effective if the -C or --demangle option
	   has been enabled.

       @file
	   Read command-line options from file.	 The options read are inserted
	   in place of the original @file option.  If file does not exist, or
	   cannot be read, then the option will be treated literally, and not
	   removed.

	   Options in file are separated by whitespace.	 A whitespace
	   character may be included in an option by surrounding the entire
	   option in either single or double quotes.  Any character (including
	   a backslash) may be included by prefixing the character to be
	   included with a backslash.  The file may itself contain additional
	   @file options; any such options will be processed recursively.

SEE ALSO
       Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991-2025 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".



binutils-2.44			  2025-05-12			  ADDR2LINE(1)