On Fri, 12 Mar 2004, Dmitry Skorinko wrote: > На самом деле проблема стоит так. Пишутся несколько библиотек - > объектных файлов на С. Они потом должны быть прилинкованы к собранной > обвязке и должен в конце получиться загружаемый модуль - драйвер.
"Чтобы правильно задать вопрос, нужно знать половину ответа". С этого и надо было начинать. > Каким бы макаром я бы не собирал эти файлы - все нормально > прилинковывается и драйвер собирается, но при подгрузке к ядру > выдается ошибка, что ядро собрано gcc таким-то, а один или несколько > частей модуля другим - так что фиг вам подгружу... Да. Ядерный модуль должен собираться тем же компилятором, что и ядро. Более того, на уровне исходных текстов в одном из заголовков явно прописана зависимость содержания и размера одной очень важной структуры от версии компилятора. Вот, в том числе и поэтому и введено требование одного компилятора. > Мне надо отдавать драйвер с закрытыми библиотеками. Я конечно могу для > каждого компилятора их скомпилить, а потом определять при сборке > модуля какие присоединять в зависимости от установленного Gcc > конфигуром.... (что я и сделал уже собств) > но как-то неправильно это все....... Ядро линукса _технически_ не приспособлено для модулей с закрытыми исходниками. И это правильно _политически_ - закрытые исходники давить. Ну ладно, я сегодня добрый - с помощью objcopy вырежь и вставь секцию .comment. Надеюсь, этой подсказки будет достаточно. -- Если виртуальная память закончилась, она ненастоящая.