Ктонить сталкивался с подобной ошибкой при компиляции модуля??? WARNING: "__divdi3" [/home/featurelles/module.ko] undefined! Она возникает по непонятным мне причинам))) Например, если в функции есть определение long i=0; и сделать i++ nj то вылезает подобная ошибка.... если убрать инкримент, то всё компилируется нормально и работает... Также эта ошибка возникает, непонятно изза чего)) например можно, вызвать printk("ПРИНТК"); или memset И при компиляции будет эта ошибка...а если их убрать ( непонятно вообще ) то эта ошибка исчезнет. Собственно вопрос. ЧТО это за ХЗ ???
Пример unsigned long i=0; for(i=0; i<=struct_count; ) { //i++; // ЕСЛИ эту строку не закомментировать, то вылазит WARNING: "__divdi3" } компилятор GCC
Хоть бы рассказал уж тогда, от чего возникает ошибка WARNING: "__divdi3" [/home/featurelles/module.ko] undefined! =)
Phuntik Как знал, что всёже зададут этот вопрос.. и отвечаю) Я так и не понял, почему эта ошибка вылезает, при всяких инкриментах и вызовах функций... но WARNING: "__divdi3" выдаётся при делении различных типов. В моём случае ( loff_t ) на unsigned long Тоесть перед (на расстоянии нескольких строк кода) Код (Text): unsigned long i=0; for(i=0; i<=struct_count; ) { //i++; // ЕСЛИ эту строку не закомментировать, то вылазит WARNING: "__divdi3" } был код деления, значений ( loff_t ) на unsigned long И при инкрименте i++ выдавалась подобная ошибка.
Скорее всего дело в оптимизации. С i наверное деление вообще было не нужно, а вызов printf/k "рвет" непрерывную оптимизацию, компилер не может вычислить из "констант" и ставит деление.