linux-mips
[Top] [All Lists]

Re: [PATCH]: Remove CONFIG_BUILD_ELF64 entirely

To: kumba@gentoo.org
Subject: Re: [PATCH]: Remove CONFIG_BUILD_ELF64 entirely
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Mon, 26 Mar 2007 19:36:41 +0900 (JST)
Cc: linux-mips@linux-mips.org, ths@networkno.de, ralf@linux-mips.org
In-reply-to: <4606C063.1030802@gentoo.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <4606AA74.3070907@gentoo.org> <20070326.020705.63742150.anemo@mba.ocn.ne.jp> <4606C063.1030802@gentoo.org>
Sender: linux-mips-bounce@linux-mips.org
On Sun, 25 Mar 2007 14:33:07 -0400, Kumba <kumba@gentoo.org> wrote:
> Actually, I just realized I didn't rehash my dhcpd, so it booted the wrong 
> kernel.  A kernel built with this patchset won't boot without the following 
> change in include/asm-mips/stackframe.h:
> 
> --- include/asm-mips/stackframe.h.orig        2007-03-25 14:22:04.000000000 
> -0400
> +++ include/asm-mips/stackframe.h     2007-03-25 14:22:21.000000000 -0400
> @@ -70,7 +70,7 @@
>   #else
>               MFC0    k0, CP0_CONTEXT
>   #endif
> -#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
> +#if defined(CONFIG_32BIT) || !defined(KBUILD_64BIT_SYM32)
>               lui     k1, %hi(kernelsp)
>   #else

It looks very strange.  "lui k1, %hi(kernelsp)" should be enough for
the -msym32 kernel.  What is a version of binutils and gcc you are using?

And could you show me disassembled list of handle_int (or some other
rountines using get_saved_sp) of failed kernel?

If you were using gcc 3.x, does this fix work for you?

#if defined(CONFIG_32BIT) || (defined(KBUILD_64BIT_SYM32) &&  __GNUC__ >= 4)
                lui     k1, %hi(kernelsp)
#else
...


---
Atsushi Nemoto

<Prev in Thread] Current Thread [Next in Thread>