Re: [GIT PATCH] kbuild fixes for 2.6.18

From: Takashi Iwai
Date: Tue Aug 08 2006 - 04:44:11 EST


At Mon, 7 Aug 2006 23:02:09 +0200,
Sam Ravnborg wrote:
>
> On Mon, Aug 07, 2006 at 01:42:41PM -0700, Greg KH wrote:
> > On Mon, Aug 07, 2006 at 09:27:09PM +0200, Sam Ravnborg wrote:
> > > Hi Greg.
> > > Please apply to 2.6.18.
> > >
> > > Pull from:
> > >
> > > git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-2.6.18.git
> >
> > Thanks, pulled and pushed out.
> >
> > Oh, I just got a few reports of 2.6.18-rc3 not building with external
> > trees very well, and something like the following would be required:
> >
> > --- linux-2.6.17/arch/sh/Makefile-dist 2006-08-07 20:42:33.000000000 +0200
> > +++ linux-2.6.17/arch/sh/Makefile 2006-08-07 21:08:26.000000000 +0200
> > @@ -173,7 +173,7 @@
> > archprepare: maketools include/asm-sh/.cpu include/asm-sh/.mach
> >
> > PHONY += maketools FORCE
> > -maketools: include/linux/version.h FORCE
> > +maketools: $(objtree)/include/linux/version.h FORCE
> >
> > for all instances of the version.h file.
> This looks bogus.
> Current directory is $(objtree) so prefixing with $(objtree) should not
> be needed and doing so will confuse make. make will not know that
> $(objtree)/include/linux/version.h and include/linux/version.h is the
> same file.

OK now I'm awake ;)

Actually, this part wasn't tested at all. I just blindly applied the
patch for 2.6.16. Simply discard it.

> And the version.h dependency is anyway not needed. kbuild guarantee the
> version.h is created when the commands for archprepare are executed.
>
> So for sh I would expect the following is a better fix:
>
> diff --git a/arch/sh/Makefile b/arch/sh/Makefile
> index e467a45..ed1c865 100644
> --- a/arch/sh/Makefile
> +++ b/arch/sh/Makefile
> @@ -172,8 +172,8 @@ include/asm-sh/.mach: $(wildcard include
>
> archprepare: maketools include/asm-sh/.cpu include/asm-sh/.mach
>
> -PHONY += maketools FORCE
> -maketools: include/linux/version.h FORCE
> +PHONY += maketools
> +maketools: FORCE
> $(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h
>
> all: zImage
>
>
> arm should have a similar fix - thats the only other archtecture that
> reference version.h in the arch specific kbuild (Makefile) files.

Yes, that looks better anyway.


> > Was this fixed in -rc4 and I should update the SuSE kernel to it (well,
> > I'll do that anyway later today...), or is this something that you did
> > not know about?
> Have not seen the reports - may have overlookd them at lkml.
> Been on vacation a few days so ctrl-d was used to read most of my
> lkml mails.

I believe your patch fixes the problem we had -- the compilation of
external modules with extra headers (created via "make prepare")
outside the kernel source root. At least, I can build external
alsa-driver modules now.

Of course, each package must be fixed to adapt somes changes in 2.6.18
(implicit inclusion of linux/config.h and linux/utsrelease.h)...


Thanks,

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