LINUX.ORG.RU

extern + __inline__


0

0

Кто-нить может объяснить, че за фигня?

Пишу драйвер с обработкой аппаратного прерывания. Пытаюсь обрабатывать отложено, используя queue_task(...) и mark_bh(...). При запуске модуля пишет:

unresolved symbol ФУНКЦИЯ.

Причем ФУНКЦИЯ описана в системных хедерах как:

extern __inline__ ТИП ФУНКЦИЯ (...) { ... };

Если определение функции скопировать в свой файл и убрать extern, то unresolved symbol пропадает. Но это как-то криво.

anonymous

отключи оптимизацию для начала вообще -O2 должно работать

rush
()

ВКЛЮЧЕНИЕ оптимизации помогло только для функции, там еще несколько переменных описаны аналогично, что с ними делать - непонятно. Например irq_stat: в файле cpustat.h в комментариях написано, что irq_stat определено в asm/hardirq.h, но его там нет!

Вообще, какая-то непонятность с дистрибутивом (РХ 7.0) - ядро 2.2.16, а хедеры от 2.4.0. Зачем так?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.