[RFC v3] kbuild: generic support for asm-generic

From: Sam Ravnborg
Date: Sun Jan 09 2011 - 14:27:48 EST


Hi Michal, Arnd et all.

This is my second attempt to provide generic support for
architectures that use existing headers from asm-generic.

@Michal - I consider this ready for you to review / apply.
I would prefer if this patch could be included in the current
merge window - allowing us to convert archs until next merge window.
As this touches the top-level Makefile in an area that is always
used I suggest to at least let i cook in -next for a few days first.

It was inspired by unicore32 - but I have requested Guang _not_
to convert unicore32 to avoid a dependency on this patch.

The patch description:

There is an increasing amount of header files
shared between individual architectures in asm-generic.
To avoid a lot of dummy wrapper files that just
include the corresponding file in asm-generic provide
some basic support in kbuild for this.

With the following patch an architecture can maintain
a list of files in the file arch/$(ARCH)/include/asm/Kbuild

To use a generic file just add:

generic-y += <name-of-header-file.h>

For each file listed kbuild will generate the necessary
wrapper in arch/$(ARCH)/include/generated/asm.

When installing userspace headers a wrapper is likewise created.

The original inspiration for this came from the unicore32
patchset - although is used a different method.


Changes since v2:
- Fix spelling miss in LINUXINCLUDE (Stephen)
- Properly delete file with mrproper (Guang)
- Fixed support for headers that are not exported (Guang)
- New way to list files used from the generic set (Arnd)

Changes since v3:
- Dropped generic-export.y (from Arnd)
- added check if header is listed as generic but still is present
- fixed "make headers_check"
- updated documentation

I did not include an Reviewed-by / Acked-by from Arnd as
he had not seen the latest iteration in the full.

Diffstat for the patch:
.gitignore | 1 +
Documentation/kbuild/makefiles.txt | 36 ++++++++++++++++++++++++++++++++++++
Makefile | 15 +++++++++++----
scripts/Makefile.headersinst | 18 +++++++++++++++---
scripts/asm-generic.sh | 33 +++++++++++++++++++++++++++++++++
5 files changed, 96 insertions(+), 7 deletions(-)
create mode 100644 scripts/asm-generic.sh

Sample diffstat when using generic-y for three files in x86:
arch/x86/include/asm/Kbuild | 6 ++++++
arch/x86/include/asm/rtc.h | 1 -
arch/x86/include/asm/termbits.h | 1 -
arch/x86/include/asm/termios.h | 1 -
4 files changed, 6 insertions(+), 3 deletions(-)
delete mode 100644 arch/x86/include/asm/rtc.h
delete mode 100644 arch/x86/include/asm/termbits.h
delete mode 100644 arch/x86/include/asm/termios.h

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