Re: gcc-2.7.2.3-5: undefined reference to `__divdi3'

David Miller (davem@twiddle.net)
Fri, 19 Feb 1999 01:02:48 -0800


From: "Ulrich Windl" <ulrich.windl@rz.uni-regensburg.de>
Date: Fri, 19 Feb 1999 09:18:54 +0100

and I was compiling with SuSE Linux 6.0 on a Pentium-100. The message
from the linker was:

kernel/kernel.o: In function `update_wall_time':
kernel/kernel.o(.text+0x832c): undefined reference to `__divdi3'

The error here has nothing in particular to do with suse, so I would
not bother them further, it will happen on any non-64bit architecture
on which you try to add long long division in the kernel. :-)

This undefined symbol is in libgcc, until you added your code which
divided a long long, it isn't necessary to link in libgcc to the
kernel so it simply is not done and never has.

I would suggest open coding your larger precision division using other
integer types or finding some other way to avoid this issue. I doubt
Linus will allow adding "-lgcc" to the kernel build....

Later,
David S. Miller
davem@redhat.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/