LINUX.ORG.RU

do_div() does not yet support the C64


0

0

Arch64 + pkgsrc (current) от NetBSD. Процесс сборки xorg завершается с ошибкой:
/usr/pkg/xorg/bin/makedepend: warning:  lnx_video.c (reading     /usr/include/asm-generic/div64.h), 
line 54: # error do_div() does not yet support the C64
make[3]: *** [depend] Floating point exception
make[3]: Leaving directory `/usr/pkgsrc/x11/xorg-server/work/xc/programs/Xserver/hw/xfree86/os-support/linu
x'
make[2]: *** [depend] Ошибка 2
make[2]: Leaving directory `/usr/pkgsrc/x11/xorg-server/work/xc/programs/Xserver/hw/xfree86/os-support'
make[1]: *** [depend] Ошибка 2
make[1]: Leaving directory <поскипано>
Stop.
bmake: stopped in /usr/pkgsrc/meta-pkgs/xorg

в /usr/include:

$ ll /usr/include/asm* /usr/include/linux
lrwxrwxrwx  1 root root 10 2006-07-10 19:03 /usr/include/asm -> asm-x86_64
lrwxrwxrwx  1 root root 34 2006-07-24 08:05 /usr/include/asm-generic -> /usr/src/linux/include/asm-generic
lrwxrwxrwx  1 root root 33 2006-07-10 19:02 /usr/include/asm-x86_64 -> /usr/src/linux/include/asm-x86_64
lrwxrwxrwx  1 root root 28 2006-07-10 19:02 /usr/include/linux -> /usr/src/linux/include/linux

т.е. в данном случае asm* и linux указывают на исходники ядра. Напомню, что хост стоит на 64-бит Арче. В /usr/include/asm-generic/div64.h:
...
#if BITS_PER_LONG == 64
...
#elif BITS_PER_LONG == 32
...
#else /* BITS_PER_LONG == ?? */
# error do_div() does not yet support the C64
#endif /* BITS_PER_LONG */
#endif /* _ASM_GENERIC_DIV64_H */

конец div64.h.

Попытки задать значение BITS_PER_LONG вручную результата не дали. 
Все ровно происходит 'Floating point exception' при сборке на  этом же месте.
Искал в google, но ничего контретного на эту тему не нашел.
Any suggestion? Заранее спасибо!
★★★★

написать do_div для данной архитектуры,
а изменения BITS_PER_LONG не к чему хорошему не приведут.

fghj ★★★★★
()

Ищи BITS_PER_LONG и выясняй, почему он не определен. А вот писать do_div не надо - он уже написан :)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Я так понимаю, что проблема с /usr/include/asm* в том, что директорию asm я удалил и вместо неё сделал симлинки для asm, asm-x86_64, asm-generic и linux на /usr/src/linux/ в котором собственно находятся исходники ядра. В дефолтном asm div64.h не было. Куда копать ума не приложу.

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