После ответа на предыдущий вопрос: Добавление файла .S в код ядра Linux Мне удалось добавить файл .S в файлы сборки ядра Linux.
Тем не менее, мой файл .S содержит несколько разделов, которые заменяют функции, написанные на C.
Я закомментировал эти функции и объявил функции замены глобальными, но при попытке связать ядро (используя make) я получаю следующую ошибку:
arch/x86/kernel/vmlinux.lds:XXX: non constant or forward reference address expression for section .YYY
Исходные функции, которые я заменил, были объявлены с использованием:
__attribute__ ((unused, __section__("YYY"))) notrace
Разделы asm объявляются с использованием:
.text
.globl YYY
Я также попытался добавить:
.type YYY,@function
Возможно, я где-то пропустил какое-то объявление, но я не уверен, где искать.
Есть идеи?