summaryrefslogtreecommitdiff
path: root/man/ru/mcpu-ld.1
diff options
context:
space:
mode:
authorkx <kx@radix-linux.su>2026-10-09 18:00:15 +0300
committerkx <kx@radix-linux.su>2026-10-09 18:00:15 +0300
commit065da3509019b15dd0e678072e6be629e5330bef (patch)
tree69c934c9e786ac048b4fbe8f4c4c5571661521f4 /man/ru/mcpu-ld.1
parentd130fe27fa753be02ed76fd9b277aa3c3d928eb9 (diff)
downloadlibmcpu-0.4.0.tar.xz
Version 0.4.00.4.0
Diffstat (limited to 'man/ru/mcpu-ld.1')
-rw-r--r--man/ru/mcpu-ld.1170
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)