NElamer писал(а):
Нет, макрос я добавлял.
Проблема в именах функций. Некоторые версии gcc добавляют приставку подчёркивания, а некоторые нет. Поэтому в макросе надо поэкспериментировать с добавлением/убиранием символов _ (их там два).
Например:
#define IRQ_HANDLER(func) void func (void);\
asm(#func ": pusha \n call " #func " \n movb $0x20, %al \n outb %al, $0x20 \n popa \n iret \n");\
void ## func(void)
А вообще надо смотреть ассемблерный код. Добавь параметры gcc -save-temps -fverbose-asm
тогда при компиляции появится ассемблерный файл типа .s
По нему надо будет проверить все имена функций.
Ещё появится файл типа .ii
это Си программа с развёрнутыми макросами, тоже полезно изучить.