Re: kbuild now support arch/$ARCH/include - time for ARCHs to convert

From: Greg Ungerer
Date: Sun Aug 03 2008 - 20:36:40 EST


Hi Geert,

Geert Uytterhoeven wrote:
On Fri, 1 Aug 2008, Greg Ungerer wrote:
Sam Ravnborg wrote:
On Wed, Jul 30, 2008 at 04:49:08PM +1000, Greg Ungerer wrote:
Sam Ravnborg wrote:
The traditional location of the arch specific Makefiles
has been at:

include/asm-$ARCH

But as suggested by several people over time and lately
by Linus in the following post:
http://kerneltrap.org/mailarchive/linux-kernel/2008/5/21/1903924

is is suggested to move the arch specific files under arch/
and for the header files this is arch/$ARCH/include.

So I have hacked up support for this in kbuild so
for the simpler cases a simple move of header files as
in:
git mv include/asm-$ARCH arch/$ARCH/include/asm

is enough.

If Linus will accept it then I think -rc1 is a perfect
time to do it as people has less stuff pending touching
the header files that are moved.
Validation is easy - does the usual configs build?

For the archs that plays games with symlinks this is a
splendid opportunity to get rid af these.
The receipe is simple:
Use KBUILD_CFLAGS += -Iarch/$ARCH/include/$CPU

to select the CPU and then do a copy of the header files
like this:

git mv include/asm-$ARCH/$CPU arch/$ARCH/include/$CPU/cpu

Then the code can continue to use:

#include <cpu/foo.h>

I already converted sparc to use arch/sparc/include -
while I merged the header files for sparc and sparc64.
This change is already upstream.

And for SH I posted a receipe which you can read here:
http://lkml.org/lkml/2008/7/28/83

It is SH specific but anyway pretty generic.

I am limited in time and resources at the moment but I
would be glad to help out as time permits should there
be any questions.
I just tried moving the include/asm-m68knommu directory
to arch/m68knommu/include/asm and it all worked fine.
Clean compile first go :-) Nice. (As noted
asm-offsets.h was still generated in incldue/asm-m68knommu
afterwards though).

So what is the status, should I prepare git/patch
for Linus?
Yes please do so.
The move change can be pulled from:

git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu.git for-linus

If there is no complaints I'll send Linus a pull request in a
couple of days time.

I did:

mkdir arch/m68k/include
mv include/asm-m68k arch/m68k/include/asm

and m68k still builds fine (I applied Stephen's patch for the
asm-sparc inclusion problem for Sun 3/3x first, of course).

As (a) I'm not using git (yet) for merging with Linus, and (b) this will
cause some breakage in the m68knommu tree anyway, perhaps it's easiest if Greg
takes care of it in m68knommu.git?

Greg, is that OK for you?

Yep, I will do that.


You can add my Acked-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>

There seem to be 3 classes of m68knommu header files:
1. Plain files (some of them may be (nearly) identical copies of the
m68k variants,
2. Files that just include the m68k variant,
3. Files that include the m68k variant and do something more (pci.h and
setup.h).

Since I don't think we want to do the m68k/m68knommu merge right now
(Sorry Arnd, I'll keep your script in mind anyway!), the simplest way is to:
- Remove all files from class 2, and add to the Makefile:

ccflags-y += -Iarch/m68k/include

- Include verbatim the contents of the m68k variant for class 3, cfr.
Stephen patch for the asm-sparc inclusion problem for Sun 3/3x).

Do you agree?

That sounds like a good approach.

Regards
Greg



------------------------------------------------------------------------
Greg Ungerer -- Chief Software Dude EMAIL: gerg@xxxxxxxxxxxx
Secure Computing Corporation PHONE: +61 7 3435 2888
825 Stanley St, FAX: +61 7 3891 3630
Woolloongabba, QLD, 4102, Australia WEB: http://www.SnapGear.com
--
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/