статические ссылки в файле make на уровне ядра - PullRequest
0 голосов
/ 09 декабря 2010

Я создал модуль ядра, который использует функции уровня ядра, такие как vfs_read, write и т. Д. В этом модуле есть make-файл, который создает этот модуль для получения файла .ko. Я хочу проанализировать вывод objdump этого файла .ko. Однако я заметил, что функции ядра, такие как vfs_read и write, не разрешаются в файле .ko. Они просто вызваны, и я предполагаю, что они решаются во время выполнения. Можно ли внести некоторые изменения в make-файл и статически связать все эти функции в одном файле .ko только для целей анализа. Я пытался добавить статические во время компиляции, но я не помог. Кто-нибудь может предложить что-либо сделать?

1 Ответ

0 голосов
/ 10 декабря 2010

Пожалуйста, обратитесь к руководству ld (1), чтобы узнать, что -static делает:

-static     Do not link against shared libraries.

Поскольку модуль ядра не связывается с какими-либо общими библиотеками (или с любой другой библиотекой), это не имеет никакого эффекта.

Ядро разрешает неопределенные ссылки во время загрузки, используя свой собственный «пул функций». Так что ссылка существует только в памяти или когда вы помещаете свой код в ядро.

...