2003-01-15 18:32:37

by Thomas Schlichter

[permalink] [raw]
Subject: problem using integer division in kernel modules

Hi,

I am writing at a small kernel module and have a problem now using / and %. If
I do so I get following unresolved symbols when the module should be loaded:
__divdi3
__moddi3

Could you please help me and tell me what I do wrong..?


2003-01-15 19:02:31

by Matti Aarnio

[permalink] [raw]
Subject: Re: problem using integer division in kernel modules

On Wed, Jan 15, 2003 at 07:41:29PM +0100, Thomas Schlichter wrote:
> Hi,
>
> I am writing at a small kernel module and have a problem now using / and %. If
> I do so I get following unresolved symbols when the module should be loaded:
> __divdi3
> __moddi3

64-bit division with non-constant non-power-of-two divider.

> Could you please help me and tell me what I do wrong..?

The kernel is linked without gcc builtin libraries.
Reasons can be found from FAQ (see footer), or archives.

/Matti Aarnio

2003-01-21 09:17:52

by George Anzinger

[permalink] [raw]
Subject: Re: problem using integer division in kernel modules

Matti Aarnio wrote:
>
> On Wed, Jan 15, 2003 at 07:41:29PM +0100, Thomas Schlichter wrote:
> > Hi,
> >
> > I am writing at a small kernel module and have a problem now using / and %. If
> > I do so I get following unresolved symbols when the module should be loaded:
> > __divdi3
> > __moddi3
>
> 64-bit division with non-constant non-power-of-two divider.
>
> > Could you please help me and tell me what I do wrong..?
>
> The kernel is linked without gcc builtin libraries.
> Reasons can be found from FAQ (see footer), or archives.

You may want to check out .../include/asm-???/div64.h. It
allows some limited divides with 64-bit numbers. Look at
several so you understand what it does and does not do.

-g
>
> /Matti Aarnio
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
George Anzinger [email protected]
High-res-timers:
http://sourceforge.net/projects/high-res-timers/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml