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

From: Tetsuo Handa
Date: Fri Jun 05 2009 - 00:01:14 EST


Andrew Morton wrote:
> Well, that tells us the .c file, but not the location within it.
> Please check the .loc info as I suggested.

.loc 1 51 0
movl -52(%ebp), %ebx # start_phys_aligned
sbbl %edi, %ebx
.loc 1 42 0
movl %edx, -16(%ebp) # pattern
.loc 1 51 0
subl %ecx, %eax # size
pushl $0
.loc 1 42 0
movl 20(%ebp), %edx # size
.loc 1 51 0
sbbl %ebx, %edx
pushl $8
.LCFI12:
call __udivdi3
popl %ebx
.loc 1 53 0
movl $0, -36(%ebp) # start_bad
.loc 1 52 0
movl -56(%ebp), %ebx # start_phys_aligned
subl $1073741824, %ebx
.loc 1 56 0
cmpl %edx, -36(%ebp) # start_bad
.loc 1 51 0
popl %esi
movl %edx, %edi
movl %eax, %esi # count
.loc 1 52 0

> Perhaps it's this:
>
> static void __init memtest(u64 pattern, u64 start_phys, u64 size)
> {
> u64 i, count;
> u64 *start;
> u64 start_bad, last_bad;
> u64 start_phys_aligned;
> size_t incr;
>
> incr = sizeof(pattern);
> start_phys_aligned = ALIGN(start_phys, incr);
> count = (size - (start_phys_aligned - start_phys))/incr;
Bingo!

--
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/