Операционная система UNIX. Руководство программиста




Создание файла спецификаций библиотеки


После подготовки исходного текста для разделяемой библиотеки Вам нужно создать файл спецификаций. Этот файл содержит всю информацию, необходимую mkshlib(1) для создания файлов разделяе- мой библиотеки сборки и выполнения. Пример файла спецификаций приводится ниже, в разделе Пример. В файл спецификаций включаются следующие директивы [см. также mkshlib(1)]:

#address секция адрес
Указывает начальный адрес секции разделяемой библиотеки выполнения. Эта директива обычно используется для задания начальных адресов секций .text и .data.
#target маршрутное_имя
Указывает маршрутное_имя разделяемой библиотеки выполнения, по которому она будет находиться на целевом компьютере. По указанному маршрутному имени операционная система ищет разделяемую библиотеки выполнения, когда она нужна выполняемому файлу. Обычно, хотя и не обязательно, маршрутное_имя задает полный маршрут. Эта директива должна встречаться в файле спецификаций один и только один раз.
#branch
Отмечает начало спецификаций таблицы переходов. Строки, следующие за этой директивой, воспринимаются как строки спецификации таблицы переходов. Последние имеют следующий формат:

имя_функции пробел_или_табуляция позиция

Здесь имя_функции - это имя, для которого задается элемент таблицы переходов, а позиция задает позицию этого элемента в таблице. Позиция может быть целым числом или диапазоном целых чисел в формате позиция1-позиция2. Каждая позиция должна быть больше нуля и не может быть указана дважды. В таблице переходов не должно быть пропущенных позиций, то есть каждое число от 1 и до максимального указанного должно быть задействовано.

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

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

Данная директива должна встречаться в файле спецификаций один и только один раз.




Содержание  Назад  Вперед