diff options
Diffstat (limited to 'man/ru/mcpu-ld.1')
| -rw-r--r-- | man/ru/mcpu-ld.1 | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/man/ru/mcpu-ld.1 b/man/ru/mcpu-ld.1 new file mode 100644 index 0000000..b57cb93 --- /dev/null +++ b/man/ru/mcpu-ld.1 @@ -0,0 +1,170 @@ +.TH MCPU-LD 1 "Октябрь 2026" "LibMCPU" "Команды пользователя" + +.SH ИМЯ +mcpu-ld \- компоновщик объектов, архивов и shared libraries MCPU +.SH СИНТАКСИС +.B mcpu-ld +.RI [ опции-компоновки ] " -o output input ..." +.SH ОПИСАНИЕ +.B mcpu-ld +компонует MELF ET_REL objects и статические библиотеки MCPU. Он создаёт partial +ET_REL, полностью статический ABI-v1 ET_EXEC, frozen ABI-v3 startup-dynamic +ET_EXEC или ABI-v3 ET_DYN shared object. +.PP +Без +.BR -r , +.B --shared +и +.B --dynamic +по умолчанию создаётся статический ABI-v1 ET_EXEC. +.SH РЕЖИМЫ ВЫХОДА +.TP +.B -r +Создать один partial-link MELF ET_REL. Неразрешённые strong symbols и RELA +могут остаться для последующей final link. STACK, HEAP, SONAME и shared objects +к этому режиму не относятся. +.TP +.B --shared +Создать frozen ABI-v3 MELF ET_DYN. Обязателен логический +.BR --soname . +Shared object может иметь только allocated .text/.data/.bss и не владеет +lifecycle, model spaces, STACK или HEAP. +.TP +.B --dynamic +Создать frozen ABI-v3 startup-dynamic MELF ET_EXEC. Normal dependencies +записываются как DT_NEEDED SONAME. +.SH AUTOMATIC HLL CRT +Для final static/dynamic ET_EXEC output mcpu-ld сначала анализирует явно +перечисленные входные ET_REL objects и только затем обрабатывает -l libraries. +Распознаются две compiler-normalized complete-program формы: +.nf +PROGRAM: strong GLOBAL/FUNC main + fini в одном ET_REL +MODEL: strong GLOBAL/FUNC init + life + fini в одном ET_REL +.fi +.PP +PROGRAM и MODEL roots взаимоисключающие. Incomplete или split MODEL definitions +отклоняются; PROGRAM main/fini также должны принадлежать одному defining ET_REL. +Смешивание HLL roots с низкоуровневым владением _start/_life является ошибкой. +Library members и shared-library definitions не участвуют в классификации +complete program. +.PP +После классификации mcpu-ld автоматически вставляет: +.nf +PROGRAM: crt0.o crti.o <explicit input objects> crtn.o +MODEL: crt1.o crti.o <explicit input objects> crtn.o +.fi +CRT objects загружаются из <MCPU-root>/lib/mcpu, где <MCPU-root> — активный +installation/system root. Отсутствующий или нечитаемый обязательный CRT object +является fatal error. Поиска fallback CRT в другом root и перехода HLL link в +low-level linking нет. +.PP +Low-level ET_EXEC inputs, самостоятельно владеющие _start/_life, компонуются без +HLL CRT insertion. Режимы -r и --shared не выполняют HLL complete-program +classification или CRT insertion. +.SH SYSTEM ROOT И CONFIGURATION +.TP +.B --no-config +Не читать mcpu-ld.conf; executable-derived runtime root и его default lib +остаются активными. +.TP +.BI --sys-root= ПУТЬ +Использовать ПУТЬ как MCPU system root, не читать configuration files и взять +ПУТЬ/lib как системный каталог библиотек. Относительный путь разрешается от +рабочего каталога запуска. +.TP +.BI --sys-root " ПУТЬ" +Эквивалентная двухаргументная форма. +.TP +.B --dump-config +Вывести effective MCPU configuration и завершиться. +.TP +.B --print-search-dirs +Вывести effective library search directories в порядке поиска и завершиться. +.SH БИБЛИОТЕКИ +.TP +.BI -L " каталог" +.TQ +.BI -L каталог +Добавить явный каталог поиска. -L каталоги идут раньше configured system path. +.TP +.BI -l " имя" +.TQ +.BI -l имя +Искать libИМЯ. ABI-v1 и -r рассматривают только libИМЯ.a; ABI-v3 dynamic/shared +в каждом каталоге сначала рассматривает libИМЯ.so, затем libИМЯ.a. +.TP +.B --static +Принудить все -l искать только libИМЯ.a, не меняя выбранный output mode. +Архивные members встраиваются статически и не создают DT_NEEDED. +.SH SHARED-LIBRARY IDENTITY +.TP +.BI --soname= ИМЯ +.TQ +.BI --soname " ИМЯ" +Установить обязательный SONAME ABI-v3 ET_DYN. Логическое ИМЯ не должно содержать '/'. +.SH ПАРАМЕТРЫ EXECUTABLE +.TP +.BI -o " файл" +Записать результат в файл. +.TP +.BI --stack-size= размер +Фиксированный размер STACK; положительный и кратный 16. Default 1048576. +.TP +.BI --heap-size= размер +Начальный HEAP. Default 1048576. +.TP +.BI --heap-limit= размер +Неизменяемый maximum HEAP. Default 1048576. +.TP +.B --no-heap +Не создавать PT_MCPU_HEAP. +.TP +.BR -v ", " --verbose +После успешной компоновки вывести краткую сводку о созданном MELF object. +По умолчанию успешный запуск ничего не выводит. +.TP +.BR -h ", " --help +Вывести справку. +.TP +.B --version +Вывести имя программы, идентификатор инструментария MCPU и версию, затем завершить работу. +.TP +.B --dump-version +Вывести только номер версии пакета MCPU и завершить работу. +.PP +Размер по умолчанию задаётся в байтах. Поддерживаются K/KiB, M/MiB, G/GiB; +K, M, G используют двоичные множители. +.SH АРХИВЫ И SYMBOL RESOLUTION +Статические библиотеки MCPU — обычные deterministic UNIX ar containers с MELF +ET_REL members. Member извлекается, когда он удовлетворяет текущему +неразрешённому strong GLOBAL symbol. Один unresolved WEAK сам по себе member не +вытягивает. +.SH ФАЙЛЫ +.TP +.I <runtime-root>/lib/mcpu/crt0.o, crt1.o, crti.o, crtn.o +Обязательные automatic HLL CRT objects для final PROGRAM/MODEL executable link. +.TP +.I <runtime-root>/etc/mcpu-ld.conf +Configuration из переносимого дерева MCPU. +.TP +.I /etc/mcpu/mcpu-ld.conf +Необязательный machine-wide override. +.TP +.I $HOME/.mcpu/etc/mcpu-ld.conf +Необязательный user override. +.SH СТАТУС ЗАВЕРШЕНИЯ +Ноль при успехе; ненулевое значение при ошибке опций, validation, symbol +resolution, relocation или записи результата. +.SH ПРИМЕРЫ +.nf +mcpu-ld --stack-size=64K --no-heap -o program main.o helper.o +mcpu-ld -r -o combined.o a.o b.o +mcpu-ld --shared --soname=libfoo.so.1 -o libfoo.so.1.0.0 foo.o +mcpu-ld --dynamic -L ./lib -lfoo -o program main.o +.fi +.SH СМ. ТАКЖЕ +.BR mcpu-as (1), +.BR mcpu-ar (1), +.BR mcpu-run (1), +.BR mcpu-readelf (1), +.BR libmcpu (7) |
