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

Спецификации файлов


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

имя_файла (имя_секции)

имя_файла (имя_секции1 имя_секции2 ...)

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

Чтобы указать все неинициализированные и неразмещаемые глобальные объекты из данного файла, можно использовать запись

имя_файла [COMMON]

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

SECTIONS { outsec1: { file1.o (sec1) file2.o file3.o (sec1, sec2) } }

В результате выполнения этого предложения порядок размещения входных секций в выходной секции outsec1 будет таким:

  • Секция sec1 из файла file1.o.
  • Все секции файла file2.o, в том же порядке, в котором они следуют в файле file2.o.
  • Секция sec1 из файла file3.o, а затем секция sec2 того же файла file3.o.

Если в других входных файлах окажутся секции с именем outsec1, то они будут следовать после секций, перечисленных в приведенном выше определении выходной секции outsec1. Если в файле file3.o или в файле file1.o окажутся, кроме перечисленных выше, еще какие-нибудь входные секции, то они будут помещены в одноименные выходные, - в том, разумеется, случае, если пользователь не включит их в другие спецификации файлов.

Для спецификации всех не размещенных ранее входных секций с определенным именем (независимо от имени входного файла) используется запись вида

* (имя_секции)



Содержание раздела