On Thu, Feb 13, 2014 at 1:30 PM, David Daney <ddaney.cavm@xxxxxxxxx> wrote: > Really I think we should add a Kconfig item for this and disable the whole > directory for targets that do not support it. Can we do something based on CONFIG_CROSS_COMPILE vs. adding more Kconfig? Paul. -- > > David Daney > > > > On 02/13/2014 09:27 AM, Markos Chandras wrote: >> >> The Makefile is designed to use the host toolchain so it may be >> unsafe to build the tests if the kernel has been configured and built >> for another architecture. This fixes a build problem when the kernel has >> been configured and built for the MIPS architecture but the host is >> not MIPS (cross-compiled). The MIPS syscalls are only defined >> if one of the following is true: >> >> 1) _MIPS_SIM == _MIPS_SIM_ABI64 >> 2) _MIPS_SIM == _MIPS_SIM_ABI32 >> 3) _MIPS_SIM == _MIPS_SIM_NABI32 >> >> Of course, none of these make sense on a non-MIPS toolchain and the >> following build problem occurs when building on a non-MIPS host. >> >> linux/usr/include/linux/kexec.h:50: >> userspace cannot reference function or variable defined in the kernel >> samples/seccomp/bpf-direct.c: In function 'emulator': >> samples/seccomp/bpf-direct.c:76:17: error: >> '__NR_write' undeclared (first use in this function) >> >> Cc: linux-next@xxxxxxxxxxxxxxx >> Cc: linux-kernel@xxxxxxxxxxxxxx >> Reported-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> >> Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx> >> --- >> This problem is only reproducible on the linux-next tree at the moment >> --- >> samples/seccomp/Makefile | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/samples/seccomp/Makefile b/samples/seccomp/Makefile >> index 7203e66..f6bda1c 100644 >> --- a/samples/seccomp/Makefile >> +++ b/samples/seccomp/Makefile >> @@ -17,9 +17,14 @@ HOSTCFLAGS_bpf-direct.o += -I$(objtree)/usr/include >> HOSTCFLAGS_bpf-direct.o += -idirafter $(objtree)/include >> bpf-direct-objs := bpf-direct.o >> +# MIPS system calls are defined based on the -mabi that is passed >> +# to the toolchain which may or may not be a valid option >> +# for the host toolchain. So disable tests if target architecture >> +# is mips but the host isn't. >> +ifndef CONFIG_MIPS >> # Try to match the kernel target. >> -ifndef CONFIG_64BIT >> ifndef CROSS_COMPILE >> +ifndef CONFIG_64BIT >> # s390 has -m31 flag to build 31 bit binaries >> ifndef CONFIG_S390 >> @@ -40,3 +45,4 @@ endif >> # Tell kbuild to always build the programs >> always := $(hostprogs-y) >> +endif > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-next" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html