Commit 275aaa68334c45f616c6576f20201e9890c5da18

Authored by Arnd Bergmann
Committed by Linus Torvalds
1 parent 326b1ffc13

samples/seccomp: be less stupid about cross compiling

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@arndb.de>
Acked-by: Kees Cook <keescook@chromium.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: James Morris <james.l.morris@oracle.com>
Acked-by: Will Drewry <wad@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 2 additions and 0 deletions Side-by-side Diff

samples/seccomp/Makefile
... ... @@ -19,6 +19,7 @@
19 19  
20 20 # Try to match the kernel target.
21 21 ifndef CONFIG_64BIT
  22 +ifndef CROSS_COMPILE
22 23  
23 24 # s390 has -m31 flag to build 31 bit binaries
24 25 ifndef CONFIG_S390
... ... @@ -34,6 +35,7 @@
34 35 HOSTLOADLIBES_bpf-direct += $(MFLAG)
35 36 HOSTLOADLIBES_bpf-fancy += $(MFLAG)
36 37 HOSTLOADLIBES_dropper += $(MFLAG)
  38 +endif
37 39 endif
38 40  
39 41 # Tell kbuild to always build the programs