Subject: Re: ARCH=powerpc kexec seems to be broken ...

From: Sven Luther <[email-masked]>
Date: Wed, 28 Dec 2005 17:38:29 +0100

On Wed, Dec 28, 2005 at 11:48:13AM +0100, Sven Luther wrote:
> Hi, ...
> 
> I have for some time tried to build 2.6.15-rc debian kernels with
> ARCH=powerpc, and never quite succeeded. Thanks to Johannes Berg
> for helping investigating the issue.
> 
> The problem seems to be that my .config enables KEXEC, and SWSUSP,
> which has nasty problems with ARCH=powerpc. In a 32bit config, i get :
> 
> 00:03 < svenl> arch/ppc/kernel/built-in.o: In function `swsusp_arch_resume': multiple definition of `machine_shutdown'
> 00:03 < svenl> arch/powerpc/kernel/built-in.o: first defined here
> 
> Which seems to indicate that machine_shutdown is built twice, once in the
> arch/ppc stuff and a second time in the arch/powerpc stuff.
> 
> I have a similar problem for the 64bit case, but have not yet reached the
> point of the build where this happens, so i can't paste the error message
> here, but it was of the same kind as above if i remember well.
> 
> Johannes said :
> 
> 11:23 < johill> you enabled kexec, right?
> 11:24 < svenl> yeah, i did.
> 11:24 < svenl> is it broken for ARCH=powerpc right now ?
> 11:24 < johill> seems so
> 11:28 < johill> yeah. I don't think I can fix it, know too little about kexec
> 11:30 < johill> machine_shutdown should at least be moved from
> arch/ppc/kernel/machine_kexec.c to some file that is ARCH=ppc specific
> 11:31 < svenl> johill: as i understand this, i think it is already in some
> ARCH=ppc specific file, which is the cause of this trouble.
> 11:32 < johill> the way I interpret it is that the machine_kexec.c file is
> compiled for ARCH=powerpc too since it contains the 32bit specific
> implementation of kexec
> 11:32 < johill> but it contains a non-static machine_shutdown() function which
> ARCH=powerpc already moved to some non-32bit specific file
> 
> So, it would be neat to either fix it, or at least mark the option as broken
> on 64bit powerpc, or something such.

And here is the 64bit error message : 

  __restore_cpu_setup': multiple definition of `machine_shutdown'
  arch/powerpc/kernel/built-in.o: first defined here

I will disable KEXEC and see how it goes.

Friendly,

Sven Luther