Я читаю xv6 лекции. У меня есть файл с именем initcode.S, который нужно слинковать в ядре.
Таким образом создаются два символа:
extern char _binary_initcode_start[], _binary_initcode_size[];
внутри функции.
В лекции говорится:
как часть процесса сборки ядра компоновщик встраивает этот двоичный файл, который определяет два специальных символа, _binary_initcode_starcode_size, указывающих местоположение и размер двоичного файла.
Я понимаю, что binutils получает адрес и размер этого собранного кода.
Меня интересует обозначение: это по умолчанию? мои поиски не доказали это ясно.
_binary
-> это изначально ассемблерный код_initcode
-> имя моего файла_start
-> интересующий меня параметр.
Это означало бы, что любой скомпилированный ассемблерный код также будет иметь эти переменные.
Однако у меня нет никаких доказательств этого.
Вопрос в следующем:
является ли _binary_myAsmFileHere_myParameterhere
переменной структурой по умолчанию, которую binutils дает файлу сборки для экспорта их адреса, размера и т. д.?
Может ли кто-нибудь сказать мне, верно ли мое предположение и лучше ли оно: правило
Спасибо