Re: [2.6.30-rc8] gcc 3.3 : __udivdi3 undefined.

From: Andreas Herrmann
Date: Fri Jun 05 2009 - 05:38:33 EST


On Fri, Jun 05, 2009 at 12:03:10AM -0700, Andrew Morton wrote:
> On Fri, 05 Jun 2009 15:51:07 +0900 Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> wrote:
>
> > >but I wonder why all those things are u64. They all hold virtual
> > >addresses, don't they? The code doesn't test highmem. So shouldn't
> > >these all be unsigned longs?
> > memtest() in linux-2.6.29.4/arch/x86/mm/memtest.c is using "unsigned long".
> > 2.6.30 changed to use "u64" by some reason.
>
> No reason, really. "consistency".

Yes, it was done that way for consistency.
See this thread
http://lkml.org/lkml/2009/2/13/166

> It made the code slower,

not measurable

> larger

slightly on 32-bit

> and, err, not compile.

Mea culpa.

Overlooked the 64-bit division.
Did test this with 4.[23].x compilers on 32-bit which didn't complain ...

I assume you are going to send your do_div() fix upstream?


Thanks!

Andreas



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