LD(7)

НАЗВАНИЕ
ld - вызывает редактор связи.

СИНТАКСИС


     ld [options] filename

ОПИСАНИЕ
ld является редактором связи XENIX. Он создает вычисляемую программу путем объединения одного или более объектных файлов и копирования вычисляемого результата в файл a.out. filename должен назвать объект или библиотечный файл. Эти имена должны иметь ".о" (для объекта) или ".а" (для архивной библиотеки) расширения. Если дано более, чем одно имя, имена должны разделяться одним или более пробелами. Если при связывании возникли ошибки, ld выдает на дисплей сообщения об ошибках: результирующий файл а.out не вычисляем.

ld конкатенирует содержание данных объектных файлов в порядке, задаваемом управляющей строкой. Библиотечные файлы в управляющей строке рассматриваются только в том случае, если существуют неразрешенные внешние ссылки, поступившие из предыдущих объектных файлов. Библиотечные файлы должны быть в ranlib(1) формате, первый член должен называться __.SYMDEF, который является словарем библиотеки. Библиотека повторно просматривается для того, чтобы удовлетворить как можно большему количеству ссылок, и конкатенируются только те программы, которые определяют неразрешенные внешние ссылки. Объектные и библиотечные файлы обрабатываются в точке, в которой они поступают в список аргументов, и в связи с этим имеет значение порядок файлов в управляющей строке.В общем случае все объектные файлы должны даваться до библиотечных файлов. ld устанавливает входную результирующую программу в начало первой программы.

Существуют следующие параметры:

-A num
Создает автономную программу, ожидаемый загрузочный адрес, которой (в шестнадцатиричном коде) - num. Этот параметр устанавливает абсолютный флаг в заголовок файла a.out. Такие программные файлы могут вычисляться только как автономные программы. Параметры -А и -F взаимоисключающие.
-В num
Устанавливает текстовый селектор в определенное шестнадцатиричное число.
-с num
Меняет целевой ЦПУ по умолчанию в заголовке x.out. num может быть 0, 1, 2 или 3, указывая 8086, 80186, 80286 и 80386 процессоры, соответсвенно. По умолчанию для 8086/80286 систем 0. По умолчанию до 80386 систем 3. Отметим, что этот параметр изменяет только умолчание; если подсоединены объектные модули, содержащие код для процессора с высшими номерами, то это потребует превышения над умолчанием.
Прописные символы или строчные не различаются редактором связи.
-D num
Устанавливает селектор данных в определенное нестандартное число.
-С5
Включает бит для вызова /usr/lib/coffconv с редактором связи, порождая x.out в двоичном исчислении, совместимый с COFF.
-СХ
Выключает битовую установку с -С5, которая находится в заголовке объектного файла.
-F num
Устанавливает размер программного стека в num байтов, где num - шестнадцатиричное число. Этот параметр игнорируется для программ 80386, у которых стек имеет переменный размер. По умолчанию программы 8086 имеют переменный стек, расположенный сверху первого сегмента данных, а программы 80286 имеют стек фиксированного размера в 4096 байт. Параметр -F несовместим с -А.
-i
Cоздает отдельные командные и информациооные пространства для маленьких модельных программ. Когда вычисляется выходной файл, програмные текстовые и информационные пространства помещаются в отдельные физические сегменты. Текстовая часть будет считываться и делиться между всеми пользователями, работающими с файлами.
-La
Устанавливает рекомендуемую файловую блокировку. Рекомендуемая файловая блокировка используется в файлах с режимами доступа, не требующими обязательной блокировки.
-Lm
Устанавливает обязательную файловую блокировку. Обязательная файловая блокировка используется в файлах, которые не могут быть открыты одновременно более чем одним пользователем.
-m name
Создает связывающий табличный файл с именем name, включающим общие символы.
-Ms
Этот параметр резервируется для объектных файлов, компилированных или ассемблированных с помощью конфигурации маленьких моделей. Это является моделью по умолчанию, если задан параметр -M.
-Mm
Создает программу средней модели и проверяет на ошибки. Этот параметр резервируется для объектных файлов, компилированных или ассемблированных с помощью конфигурации средней модели. Эта опция применяет -i.
-MI
Создает программу средней модели и проверяет на ошибки. Этот параметр резервируется для объектных файлов, компилированных с помощью конфигурации большой модели. Этот параметр применяет -i.
-Mx
Определяет модель памяти. х может иметь следующие значения:
sмаленький
mсредний
lбольшой
hочень большой
eсмешанный
-n num
Усекает символы на длину, определенную num.
-N num
Устанавливает размер страницы на шестнадцатиричный num (который должен быть кратен 512) - по умолчанию 1024 для программ 80386. 8086/80186/80286 программы, как правило, не имеют выравненных по странице файлов x.out, и по умолчанию для них.
-о name
Устанавливает имя файла вычисляемой программы, равное name вместо a.out.
-P
Делает невозможным упаковку сегментов.
-r
Вызывает пошаговый связыватель /lib/ldr с аргументами, передаваемыми на ld для создания переместимого выходного файла.
-R
Служит для того, чтобы таблица перемещений была не нулевого размера. Важна для совместимости 8086.
-Rd num
Определяет смещение перемещения сегмента информации (только 80386). num - шестнадцатиричное число.
-Rt num
Определяет смещение перемещения сегмента текста (только 80386). num - десятиричное число.
-s
Очищает таблицу символов.
-S num
Устанавливает максимальное число сегмента на num. Если нет аргументов, по умолчанию 128.
-u symbol
Обозначает некоторый symbol как неопределенное.
-v num
Определяет число версий XENIX. Доступные значения для num 2,3 или 5; 5 по умолчанию.

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

ФАЙЛЫ


 /bin/ld

СМ. ТАКЖЕ
ar(2), cc(2), ld(2), masm(2), ranlib(2)

ПРИМЕЧАНИЯ
Перед тем, как связываться, пользователь должен убедиться, что с ranlib(2) выполняются самые последние библиотечные версии. Если это не сделано, ld не сможет создать вычисляемые программы, используя эти библиотеки.