[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20090604205103.bbfe9af2.akpm@linux-foundation.org>
Date: Thu, 4 Jun 2009 20:51:03 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: Tetsuo Handa <penguin-kernel@...ove.sakura.ne.jp>
Cc: linux-kernel@...r.kernel.org, xiyou.wangcong@...il.com,
Andreas Herrmann <andreas.herrmann3@....com>,
Ingo Molnar <mingo@...e.hu>
Subject: Re: [2.6.30-rc8] gcc 3.3 : __udivdi3 undefined.
On Fri, 05 Jun 2009 12:39:06 +0900 Tetsuo Handa <penguin-kernel@...ove.sakura.ne.jp> wrote:
> Andrew Morton wrote:
> > Do
> >
> > make arch/x86/mm/pageattr.s
> >
> > then have a look in pageattr.s to find the __udivdi3 callsite.
> >
> > It might not even be in arch/x86/mm/pageattr.o at all. If not, keep
> > building .s files in that directory until you find it.
> >
> > Building with CONFIG_DEBUG_INFO=1 will allow you to find the exact C
> > file-n-line where the __udivdi3() call is being emmitted (look at the
> > .loc lines).
>
> $ make -k CONFIG_DEBUG_INFO=1 `echo arch/x86/mm/*.c | sed -e 's/\.c/.s/g'`
> (...snipped...)
> $ grep __udivdi3 arch/x86/mm/*.s
> arch/x86/mm/memtest.s:.globl __udivdi3
> arch/x86/mm/memtest.s: call __udivdi3
Well, that tells us the .c file, but not the location within it.
Please check the .loc info as I suggested.
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;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists