[PATCH 14/15] samples/seccomp: be less stupid about cross compiling

Will Drewry wad at chromium.org
Mon Jan 28 09:26:48 EST 2013


On Tue, Jan 22, 2013 at 3:20 PM, Kees Cook <keescook at chromium.org> wrote:
> On Mon, Jan 21, 2013 at 9:16 AM, Arnd Bergmann <arnd at arndb.de> wrote:
>> The seccomp filters are currently built for the build
>> host, not for the machine that they are going to run
>> on, but they are also built for with the -m32 flag
>> if the kernel is built for a 32 bit machine, both
>> of which seems rather odd.
>>
>> It broke allyesconfig on my machine, which is x86-64, but
>> building for 32 bit ARM, with this error message:
>>
>> In file included from /usr/include/stdio.h:28:0,
>>                  from samples/seccomp/bpf-fancy.c:15:
>> /usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory
>>
>> because there are no 32 bit libc headers installed on
>> this machine. We should really be building all the
>> samples for the target machine rather than the build
>> host, but since the infrastructure for that appears
>> to be missing right now, let's be a little bit smarter
>> and not pass the '-m32' flag to the HOSTCC when cross-
>> compiling.
>>
>> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
>> Cc: Heiko Carstens <heiko.carstens at de.ibm.com>
>> Cc: Kees Cook <keescook at chromium.org>
>> Cc: James Morris <james.l.morris at oracle.com>
>
> I'm fine with this. Thanks!
>
> Acked-by: Kees Cook <keescook at chromium.org>

Thanks! This makes a lot of sense and maybe buys a bit more time to
figure out the best way to build these (all?) samples for the target.

Acked-by: Will Drewry <wad at chromium.org>

>
>> ---
>>  samples/seccomp/Makefile |    2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/samples/seccomp/Makefile b/samples/seccomp/Makefile
>> index bbbd276..7203e66 100644
>> --- a/samples/seccomp/Makefile
>> +++ b/samples/seccomp/Makefile
>> @@ -19,6 +19,7 @@ bpf-direct-objs := bpf-direct.o
>>
>>  # Try to match the kernel target.
>>  ifndef CONFIG_64BIT
>> +ifndef CROSS_COMPILE
>>
>>  # s390 has -m31 flag to build 31 bit binaries
>>  ifndef CONFIG_S390
>> @@ -35,6 +36,7 @@ HOSTLOADLIBES_bpf-direct += $(MFLAG)
>>  HOSTLOADLIBES_bpf-fancy += $(MFLAG)
>>  HOSTLOADLIBES_dropper += $(MFLAG)
>>  endif
>> +endif
>>
>>  # Tell kbuild to always build the programs
>>  always := $(hostprogs-y)
>> --
>> 1.7.10.4
>>
>
>
>
> --
> Kees Cook
> Chrome OS Security



More information about the linux-arm-kernel mailing list