2008-11-20 08:49:19

by Mikael Starvik

[permalink] [raw]
Subject: headers-y for machines

Lets say you have arch/arm/mach-xx/include/mach/myfile.h and want to add myfile.h to header-y. How do you do that?

I tried to add

header-y += ../../maxh-xx/

in arch/arm/include/asm/Kbuild

and then
header-y += myfile.h in arch/arm/mach-xx/include/mach/Kbuild

but with that the file is installed is in /usr/mach-xx and not anywere under usr/include.

Thanks in advance
/Mikael


2008-11-20 19:09:06

by Sam Ravnborg

[permalink] [raw]
Subject: Re: headers-y for machines

Hi Mikael.

On Thu, Nov 20, 2008 at 09:48:45AM +0100, Mikael Starvik wrote:
> Lets say you have arch/arm/mach-xx/include/mach/myfile.h and want to add myfile.h to header-y. How do you do that?
>
> I tried to add
>
> header-y += ../../maxh-xx/
>
> in arch/arm/include/asm/Kbuild
>
> and then
> header-y += myfile.h in arch/arm/mach-xx/include/mach/Kbuild

When we did the header file rearrange I had not foreseen that we would export header files
located anywhere else than include/* and arch/$ARCH/include so there is
no way to properly export files located in arch/$ARCH/mach-foo/...

Do we really want to export files form this location to userspace?

Sam

2008-11-20 20:37:38

by Sam Ravnborg

[permalink] [raw]
Subject: Re: headers-y for machines

On Thu, Nov 20, 2008 at 08:08:19PM +0100, Sam Ravnborg wrote:
> Hi Mikael.
>
> On Thu, Nov 20, 2008 at 09:48:45AM +0100, Mikael Starvik wrote:
> > Lets say you have arch/arm/mach-xx/include/mach/myfile.h and want to add myfile.h to header-y. How do you do that?
> >
> > I tried to add
> >
> > header-y += ../../maxh-xx/
> >
> > in arch/arm/include/asm/Kbuild
> >
> > and then
> > header-y += myfile.h in arch/arm/mach-xx/include/mach/Kbuild
>
> When we did the header file rearrange I had not foreseen that we would export header files
> located anywhere else than include/* and arch/$ARCH/include so there is
> no way to properly export files located in arch/$ARCH/mach-foo/...
>
> Do we really want to export files form this location to userspace?

One way to support this could be to add the possibility to specify where
to install the header files.
Like this patch:

diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index 612dc13..1760113 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -14,6 +14,8 @@ _dst := $(if $(dst),$(dst),$(obj))
kbuild-file := $(srctree)/$(obj)/Kbuild
include $(kbuild-file)

+_dst := $(if $(header-dest-y),$(header-dest-y),$(_dst))
+
include scripts/Kbuild.include

install := $(INSTALL_HDR_PATH)/$(_dst)


With this you could add:
header-dest-y := include/mach-foo

to the Kbuild file despite having it located somewhere else in the tree.

Sam

2008-11-21 06:48:53

by Mikael Starvik

[permalink] [raw]
Subject: RE: headers-y for machines

Thanks a lot Sam!

I agree that this is a rare case. We find it useful to keep kernel code simple and sometimes lift out some machine specific calculations or algorithms to userspace. I will enter your diff in our local CVS. It's up to you if you would like to add it in mainline or not.

Best Regards
/Mikael

-----Original Message-----
From: Sam Ravnborg [mailto:[email protected]]
Sent: den 20 november 2008 21:37
To: Mikael Starvik
Cc: [email protected]
Subject: Re: headers-y for machines

On Thu, Nov 20, 2008 at 08:08:19PM +0100, Sam Ravnborg wrote:
> Hi Mikael.
>
> On Thu, Nov 20, 2008 at 09:48:45AM +0100, Mikael Starvik wrote:
> > Lets say you have arch/arm/mach-xx/include/mach/myfile.h and want to add myfile.h to header-y. How do you do that?
> >
> > I tried to add
> >
> > header-y += ../../maxh-xx/
> >
> > in arch/arm/include/asm/Kbuild
> >
> > and then
> > header-y += myfile.h in arch/arm/mach-xx/include/mach/Kbuild
>
> When we did the header file rearrange I had not foreseen that we would export header files
> located anywhere else than include/* and arch/$ARCH/include so there is
> no way to properly export files located in arch/$ARCH/mach-foo/...
>
> Do we really want to export files form this location to userspace?

One way to support this could be to add the possibility to specify where
to install the header files.
Like this patch:

diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index 612dc13..1760113 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -14,6 +14,8 @@ _dst := $(if $(dst),$(dst),$(obj))
kbuild-file := $(srctree)/$(obj)/Kbuild
include $(kbuild-file)

+_dst := $(if $(header-dest-y),$(header-dest-y),$(_dst))
+
include scripts/Kbuild.include

install := $(INSTALL_HDR_PATH)/$(_dst)


With this you could add:
header-dest-y := include/mach-foo

to the Kbuild file despite having it located somewhere else in the tree.

Sam