2010-11-19 2 views
3

Я пытаюсь добавить новый файл сборки (.S) в ядро ​​Linux. Это может быть глупый вопрос, но я не могу найти, как и где добавлять такие файлы в файлы make. Я просмотрел примеры кода текущих файлов .S, но я не могу найти, где они собраны и связаны с двоичным файлом vmlinux.Добавление файла .S в код ядра linux

Любые подсказки были бы апробированы.

Спасибо!

+0

Я не очень хорошо знаком с этим материалом (поэтому я не собираюсь давать ответ), но если вы знаете, где находятся файлы .s, возможно ли, что make-файл ссылается на всю папку, поэтому вы могли бы просто поместить свой код в эту папку или добавить уникальную папку в свой файл makefile? – onaclov2000

+0

Пробовал. нет. –

ответ

3

Просто добавьте соответствующий результат .o в соответствие с правилами. Существуют неявные правила для перевода .S ->.o.

+0

Спасибо! Я попробую, что –

+0

Прекрасно работает! (если у меня нет файлов .c и .S с тем же именем) –

1

взгляд в

arch/i386/boot 

и он включен Makefile.

Это немного грязно, но они это делают - вроде. Это для части загрузки, поэтому она не может быть в «самом ядре».

Вы считаете, что это делается в блоке «asm» в формате .c?

Причина, по которой это так редко встречается в ядре, заключается в том, что ядро ​​действительно должно быть независимым от процессора. Таким образом, в стороне от некоторых областей выбора, есть небольшая сборка - и когда есть - все это делается в блоках asm внутри файлов .c.

+0

Я предполагаю, что вы имеете в виду arch/x86/boot. Я просмотрел файл make там, но не могу найти упоминания о существующих S-файлах. –

+0

нет, я действительно имел в виду i386! (Смотрите, как редко они используются!) – Brad

+0

@yeeeev: вы должны искать соответствующий файл '.o'. – ninjalj

-1

Почему вы хотите сделать такую ​​вещь, кроме поддержки нового процессора? Вы можете к тому же как arch/x86/kernel/entry_32.S.

Тем не менее, я думаю, что у вас нет веской причины для добавления файла .S. Я уверен, что вы могли бы сделать иначе, на самом деле нетрудно смешивать C и asm.

Реальный вопрос, который вы должны задать: «Я пытаюсь это сделать ... Я думаю о добавлении файла .S, что вы, ребята, думаете?»

Смежные вопросы