2015-07-30 16:13:48

by David Herrmann

[permalink] [raw]
Subject: [PATCH] kdbus/samples: skip on CROSS_COMPILE

Apparently we cannot rely on up-to-date kernel headers to be available
when cross-compiling, not even for HOSTCC. That's sad, but it's how it
is. Skip samples on cross-compiles as suggested by Paul, so allmodconfig
runs smoothly again.

Tested-by: Paul Gortmaker <[email protected]>
Signed-off-by: David Herrmann <[email protected]>
---
samples/kdbus/Makefile | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/samples/kdbus/Makefile b/samples/kdbus/Makefile
index 137f842..dbd9de8 100644
--- a/samples/kdbus/Makefile
+++ b/samples/kdbus/Makefile
@@ -1,9 +1,13 @@
# kbuild trick to avoid linker error. Can be omitted if a module is built.
obj- := dummy.o

+ifndef CROSS_COMPILE
+
hostprogs-$(CONFIG_SAMPLE_KDBUS) += kdbus-workers

always := $(hostprogs-y)

HOSTCFLAGS_kdbus-workers.o += -I$(objtree)/usr/include
HOSTLOADLIBES_kdbus-workers := -lrt
+
+endif
--
2.5.0


2015-07-30 16:33:10

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] kdbus/samples: skip on CROSS_COMPILE

On Thu, Jul 30, 2015 at 06:13:25PM +0200, David Herrmann wrote:
> Apparently we cannot rely on up-to-date kernel headers to be available
> when cross-compiling, not even for HOSTCC. That's sad, but it's how it
> is. Skip samples on cross-compiles as suggested by Paul, so allmodconfig
> runs smoothly again.
>
> Tested-by: Paul Gortmaker <[email protected]>
> Signed-off-by: David Herrmann <[email protected]>
> ---
> samples/kdbus/Makefile | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/samples/kdbus/Makefile b/samples/kdbus/Makefile
> index 137f842..dbd9de8 100644
> --- a/samples/kdbus/Makefile
> +++ b/samples/kdbus/Makefile
> @@ -1,9 +1,13 @@
> # kbuild trick to avoid linker error. Can be omitted if a module is built.
> obj- := dummy.o
>
> +ifndef CROSS_COMPILE

This really feels like the wrong solution.

> +
> hostprogs-$(CONFIG_SAMPLE_KDBUS) += kdbus-workers
>
> always := $(hostprogs-y)
>
> HOSTCFLAGS_kdbus-workers.o += -I$(objtree)/usr/include
> HOSTLOADLIBES_kdbus-workers := -lrt
> +
> +endif

Shuah, how should we fix this "properly"? How is this resolved for the
kernel test scripts, it should have the same issue that the samples do.

thanks,

greg k-h

2015-07-30 17:00:21

by David Herrmann

[permalink] [raw]
Subject: Re: [PATCH] kdbus/samples: skip on CROSS_COMPILE

Hi

On Thu, Jul 30, 2015 at 6:33 PM, Greg Kroah-Hartman
<[email protected]> wrote:
> On Thu, Jul 30, 2015 at 06:13:25PM +0200, David Herrmann wrote:
>> Apparently we cannot rely on up-to-date kernel headers to be available
>> when cross-compiling, not even for HOSTCC. That's sad, but it's how it
>> is. Skip samples on cross-compiles as suggested by Paul, so allmodconfig
>> runs smoothly again.
>>
>> Tested-by: Paul Gortmaker <[email protected]>
>> Signed-off-by: David Herrmann <[email protected]>
>> ---
>> samples/kdbus/Makefile | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/samples/kdbus/Makefile b/samples/kdbus/Makefile
>> index 137f842..dbd9de8 100644
>> --- a/samples/kdbus/Makefile
>> +++ b/samples/kdbus/Makefile
>> @@ -1,9 +1,13 @@
>> # kbuild trick to avoid linker error. Can be omitted if a module is built.
>> obj- := dummy.o
>>
>> +ifndef CROSS_COMPILE
>
> This really feels like the wrong solution.
>
>> +
>> hostprogs-$(CONFIG_SAMPLE_KDBUS) += kdbus-workers
>>
>> always := $(hostprogs-y)
>>
>> HOSTCFLAGS_kdbus-workers.o += -I$(objtree)/usr/include
>> HOSTLOADLIBES_kdbus-workers := -lrt
>> +
>> +endif
>
> Shuah, how should we fix this "properly"? How is this resolved for the
> kernel test scripts, it should have the same issue that the samples do.

./samples/ is built as part of "make vmlinux", tests are not.
Therefore, tests don't break allmodconfig and friends. The underlying
issue is, that ./samples/ provides both: examples for kernel modules
*and* examples for user-space code.

Maybe the real fix is to eventually split user-space examples from
kernel-module-examples (./samples/kernel/ and ./samples/user/). But I
don't want to include such split in the kdbus tree. Instead, I tried
to follow the recent fixes that are already upstream: 65f6f092a6987,
f59514b6a8c5ca6dd, and 6a407a81a9abcf.

Suggestions welcome!

Thanks
David

2015-07-30 17:00:37

by Paul Gortmaker

[permalink] [raw]
Subject: Re: [PATCH] kdbus/samples: skip on CROSS_COMPILE

[Re: [PATCH] kdbus/samples: skip on CROSS_COMPILE] On 30/07/2015 (Thu 09:33) Greg Kroah-Hartman wrote:

> On Thu, Jul 30, 2015 at 06:13:25PM +0200, David Herrmann wrote:
> > Apparently we cannot rely on up-to-date kernel headers to be available
> > when cross-compiling, not even for HOSTCC. That's sad, but it's how it
> > is. Skip samples on cross-compiles as suggested by Paul, so allmodconfig
> > runs smoothly again.
> >
> > Tested-by: Paul Gortmaker <[email protected]>
> > Signed-off-by: David Herrmann <[email protected]>
> > ---
> > samples/kdbus/Makefile | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/samples/kdbus/Makefile b/samples/kdbus/Makefile
> > index 137f842..dbd9de8 100644
> > --- a/samples/kdbus/Makefile
> > +++ b/samples/kdbus/Makefile
> > @@ -1,9 +1,13 @@
> > # kbuild trick to avoid linker error. Can be omitted if a module is built.
> > obj- := dummy.o
> >
> > +ifndef CROSS_COMPILE
>
> This really feels like the wrong solution.
>
> > +
> > hostprogs-$(CONFIG_SAMPLE_KDBUS) += kdbus-workers
> >
> > always := $(hostprogs-y)
> >
> > HOSTCFLAGS_kdbus-workers.o += -I$(objtree)/usr/include
> > HOSTLOADLIBES_kdbus-workers := -lrt
> > +
> > +endif
>
> Shuah, how should we fix this "properly"? How is this resolved for the
> kernel test scripts, it should have the same issue that the samples do.

If you guys want to reproduce it, in order to figure out what mips does
with its headers that no other arch does, it should be as simple as:

wget https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.6.3/x86_64-gcc-4.6.3-nolibc_mips-linux.tar.xz

<untar somewhere>
<add resulting bin dir to your $PATH>

export CROSS_COMPILE=mips-linux-
export ARCH=mips

cd kernel-source
make allmodconfig
make -j16 samples/

Paul.
--

>
> thanks,
>
> greg k-h

2015-07-31 14:28:19

by Sudip Mukherjee

[permalink] [raw]
Subject: Re: [PATCH] kdbus/samples: skip on CROSS_COMPILE

On Thu, Jul 30, 2015 at 09:33:07AM -0700, Greg Kroah-Hartman wrote:
> On Thu, Jul 30, 2015 at 06:13:25PM +0200, David Herrmann wrote:
> > Apparently we cannot rely on up-to-date kernel headers to be available
> > when cross-compiling, not even for HOSTCC. That's sad, but it's how it
> > is. Skip samples on cross-compiles as suggested by Paul, so allmodconfig
> > runs smoothly again.
> >
> > Tested-by: Paul Gortmaker <[email protected]>
> > Signed-off-by: David Herrmann <[email protected]>
> > ---
> > samples/kdbus/Makefile | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/samples/kdbus/Makefile b/samples/kdbus/Makefile
> > index 137f842..dbd9de8 100644
> > --- a/samples/kdbus/Makefile
> > +++ b/samples/kdbus/Makefile
> > @@ -1,9 +1,13 @@
> > # kbuild trick to avoid linker error. Can be omitted if a module is built.
> > obj- := dummy.o
> >
> > +ifndef CROSS_COMPILE
>
> This really feels like the wrong solution.
I also faced the same problem while testing allmodconfig for mn10300.

regards
sudip