2008-06-27 13:04:58

by Adrian Bunk

[permalink] [raw]
Subject: a.out.h userspace headers not present with O=

Commit e53d6a152793a38aa334d6f7a4850642ae45cedc
(Export <linux/a.out.h> to userspace again.)
does not work properly when using O= :

<-- snip -->

linux-2.6.26-rc8$ make O=../out headers_install
...
linux-2.6.26-rc8$ find usr -name a.out.h
linux-2.6.26-rc8$

<-- snip -->

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed


2008-06-27 13:06:49

by David Woodhouse

[permalink] [raw]
Subject: Re: a.out.h userspace headers not present with O=

On Fri, 2008-06-27 at 16:02 +0300, Adrian Bunk wrote:
> Commit e53d6a152793a38aa334d6f7a4850642ae45cedc
> (Export <linux/a.out.h> to userspace again.)
> does not work properly when using O= :

Hm, I copied the logic from the existing condition in
include/asm-generic/Kbuild.asm. Does that not work either?

--
dwmw2

2008-06-27 13:13:27

by Adrian Bunk

[permalink] [raw]
Subject: Re: a.out.h userspace headers not present with O=

On Fri, Jun 27, 2008 at 04:02:36PM +0300, Adrian Bunk wrote:
> Commit e53d6a152793a38aa334d6f7a4850642ae45cedc
> (Export <linux/a.out.h> to userspace again.)
> does not work properly when using O= :
>
> <-- snip -->
>
> linux-2.6.26-rc8$ make O=../out headers_install
> ...
> linux-2.6.26-rc8$ find usr -name a.out.h

Wrong test...

That should have been:

linux-2.6.26-rc8$ find ../out -name a.out.h
linux-2.6.26-rc8$

> linux-2.6.26-rc8$
>
> <-- snip -->

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2008-06-27 13:14:54

by Adrian Bunk

[permalink] [raw]
Subject: Re: a.out.h userspace headers not present with O=

On Fri, Jun 27, 2008 at 02:06:24PM +0100, David Woodhouse wrote:
> On Fri, 2008-06-27 at 16:02 +0300, Adrian Bunk wrote:
> > Commit e53d6a152793a38aa334d6f7a4850642ae45cedc
> > (Export <linux/a.out.h> to userspace again.)
> > does not work properly when using O= :
>
> Hm, I copied the logic from the existing condition in
> include/asm-generic/Kbuild.asm. Does that not work either?

It doesn't work:


linux-2.6.26-rc8$ make O=../out headers_install
...
linux-2.6.26-rc8$ find ../out -name a.out.h
linux-2.6.26-rc8$ make headers_install
...
linux-2.6.26-rc8$ find usr -name a.out.h
usr/include/asm/a.out.h
usr/include/linux/a.out.h
linux-2.6.26-rc8$


> dwmw2

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2008-06-27 13:40:01

by David Woodhouse

[permalink] [raw]
Subject: [PATCH] Fix a.out.h export to userspace with O= build.

On Fri, 2008-06-27 at 16:12 +0300, Adrian Bunk wrote:
> On Fri, Jun 27, 2008 at 02:06:24PM +0100, David Woodhouse wrote:
> > On Fri, 2008-06-27 at 16:02 +0300, Adrian Bunk wrote:
> > > Commit e53d6a152793a38aa334d6f7a4850642ae45cedc
> > > (Export <linux/a.out.h> to userspace again.)
> > > does not work properly when using O= :
> >
> > Hm, I copied the logic from the existing condition in
> > include/asm-generic/Kbuild.asm. Does that not work either?
>
> It doesn't work:
>
> linux-2.6.26-rc8$ make O=../out headers_install
> ...
> linux-2.6.26-rc8$ find ../out -name a.out.h

You're right; it doesn't work with O=, and hasn't since David Howells
first added that conditional export in commit 7fa30315. This fixes it:

---
From: David Woodhouse <[email protected]>
Subject: Fix a.out.h export to userspace with O= build.

We need to check for existence of the a.out.h header in the source tree,
not the object tree, if we want it to get the right answer with O=.

Signed-off-by: David Woodhouse <[email protected]>

diff --git a/include/asm-generic/Kbuild.asm b/include/asm-generic/Kbuild.asm
index 92a6d91..7cd25b8 100644
--- a/include/asm-generic/Kbuild.asm
+++ b/include/asm-generic/Kbuild.asm
@@ -1,6 +1,6 @@
header-y += kvm.h

-ifeq ($(wildcard include/asm-$(SRCARCH)/a.out.h),include/asm-$(SRCARCH)/a.out.h)
+ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/a.out.h),)
unifdef-y += a.out.h
endif
unifdef-y += auxvec.h
diff --git a/include/asm-powerpc/Kbuild b/include/asm-powerpc/Kbuild
index 7381916..bca352e 100644
--- a/include/asm-powerpc/Kbuild
+++ b/include/asm-powerpc/Kbuild
@@ -1,6 +1,5 @@
include include/asm-generic/Kbuild.asm

-header-y += a.out.h
header-y += auxvec.h
header-y += ioctls.h
header-y += mman.h
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index b6fbb25..71d70d1 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -166,7 +166,7 @@ unifdef-y += acct.h
unifdef-y += adb.h
unifdef-y += adfs_fs.h
unifdef-y += agpgart.h
-ifeq ($(wildcard include/asm-$(SRCARCH)/a.out.h),include/asm-$(SRCARCH)/a.out.h)
+ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/a.out.h),)
unifdef-y += a.out.h
endif
unifdef-y += apm_bios.h


--
dwmw2

2008-06-27 20:56:50

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] Fix a.out.h export to userspace with O= build.

On Fri, Jun 27, 2008 at 02:39:42PM +0100, David Woodhouse wrote:
> On Fri, 2008-06-27 at 16:12 +0300, Adrian Bunk wrote:
> > On Fri, Jun 27, 2008 at 02:06:24PM +0100, David Woodhouse wrote:
> > > On Fri, 2008-06-27 at 16:02 +0300, Adrian Bunk wrote:
> > > > Commit e53d6a152793a38aa334d6f7a4850642ae45cedc
> > > > (Export <linux/a.out.h> to userspace again.)
> > > > does not work properly when using O= :
> > >
> > > Hm, I copied the logic from the existing condition in
> > > include/asm-generic/Kbuild.asm. Does that not work either?
> >
> > It doesn't work:
> >
> > linux-2.6.26-rc8$ make O=../out headers_install
> > ...
> > linux-2.6.26-rc8$ find ../out -name a.out.h
>
> You're right; it doesn't work with O=, and hasn't since David Howells
> first added that conditional export in commit 7fa30315. This fixes it:
>
> ---
> From: David Woodhouse <[email protected]>
> Subject: Fix a.out.h export to userspace with O= build.

Hi David.

Will you carry this patch in your tree or do you
want me to add it to kbuild-next.git?

Sam

2008-06-27 21:06:18

by David Woodhouse

[permalink] [raw]
Subject: Re: [PATCH] Fix a.out.h export to userspace with O= build.

On Fri, 2008-06-27 at 22:57 +0200, Sam Ravnborg wrote:
> Hi David.
>
> Will you carry this patch in your tree or do you
> want me to add it to kbuild-next.git?

I was hoping Linus would apply it, since we could consider it a
regression.

--
dwmw2

2008-06-27 21:19:53

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] Fix a.out.h export to userspace with O= build.

On Fri, Jun 27, 2008 at 10:05:56PM +0100, David Woodhouse wrote:
> On Fri, 2008-06-27 at 22:57 +0200, Sam Ravnborg wrote:
> > Hi David.
> >
> > Will you carry this patch in your tree or do you
> > want me to add it to kbuild-next.git?
>
> I was hoping Linus would apply it, since we could consider it a
> regression.

Tested and it works.

I have added it to kbuild-fixes.git and sent Linus a pull
request.


Sam