Сборка модуля ядра с предварительно скомпилированными объектными файлами дает неопределенные символы! ошибка

Я пытаюсь создать модуль ядра для ядра android-x86 3.10 с предварительно скомпилированным объектным файлом, как показано ниже,

tmp-objs := sample1.o готовый.o obj-m += tmp.o

У sample1.o есть sample1.c, но prebuilt.o — это предварительно скомпилированный объектный файл.

При сборке образа ядра android-x86 3.10 сборка ядра выдает undefined! ошибка для символов, которые присутствуют в prebuilt.o.

Пожалуйста, помогите решить эту ошибку сборки.


person pawan    schedule 23.08.2013    source источник
comment
пожалуйста, добавьте в вопрос соответствующие биты информации - Makefile и журнал ошибок   -  person TheCodeArtist    schedule 23.08.2013


Ответы (1)


Каждый модуль ядра должен быть скомпилирован для одного и того же ядра. Это означает, что если у вас есть какие-либо предварительно скомпилированные объектные файлы, ядро ​​​​выдает ошибку (из-за несоответствия версии)

and also few symbols defined in the prebuilt object file might not be there in the present kernel version (3.10).

This is because after the kernel is compiled it will create the system map against which all the function address are referred.

And every kernel has its own System.map file.

person Santosh A    schedule 24.08.2013
comment
Спасибо Сантош. Мой поставщик предоставил только prebuilt.bin, для которого нет исходного файла, я создал prebuilt.o с помощью objcopy и попытался собрать модуль ядра. Поэтому я должен использовать prebuilt.bin. Я устал компилировать то же самое на Ubuntu 12.04, и он хорошо компилируется. Для Android-x86 это дает undefined! ошибка для символов. - person pawan; 26.08.2013