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

From: Sven Luther <[email-masked]>
Date: Wed, 28 Dec 2005 11:48:13 +0100

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.

Friendly,

Sven Luther