I just tried to compile last stable kernel with radeon DRM gpu driver
and I got this:
...
LD vmlinux.o
MODPOST vmlinux.o
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o(.text+0xf633a): In function `radeon_test_moves':
: undefined reference to `__udivdi3'
make: *** [.tmp_vmlinux1] Error 1
user@daiquiri:~/linux-2.6.32.2>
user@daiquiri:~/linux-2.6.32.2> gcc -v
Reading specs from /usr/lib/gcc-lib/i586-suse-linux/3.3.5/specs
Configured with: ../configure --enable-threads=posix --prefix=/usr
--with-local-prefix=/usr/local --infodir=/usr/share/info
--mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada
--disable-checking --libdir=/usr/lib --enable-libgcj
--with-slibdir=/lib --with-system-zlib --enable-shared
--enable-__cxa_atexit i586-suse-linux
Thread model: posix
gcc version 3.3.5 20050117 (prerelease) (SUSE Linux)
user@daiquiri:~> make --version
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
user@daiquiri:~> ld -v
GNU ld version 2.15.94.0.2.2 20041220 (SuSE Linux)
user@daiquiri:~>
I read in kernel Changes file that versions should be ok..
It is on an old a 32 bit AMD athlon XP processor.
user@daiquiri:~/linux-2.6.32.2> cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : AMD Athlon(tm) XP 2200+
stepping : 1
cpu MHz : 1795.500
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow ts
bogomips : 3624.67
clflush size : 32
I tracked this issue to be related to the said function
(radeon_test_moves) in the code line where the number of test is
calculated (line 45).
I did a workaround by performing a cast to unsigned of the first
division operand, but I have really no idea about what that code is
doing...
Thanks
Andrea