On Wed, Jul 01, 2020 at 12:06:25AM +0900, Masahiro Yamada wrote: > Programs added 'userprogs' should be compiled for the target > architecture i.e. the same architecture as the kernel. > > GCC does this correctly since the target architecture is implied > by the toolchain prefix. > > Clang builds userspace programs always for the host architecture > because the target triple is currently missing. > > Fix this. > > Fixes: 7f3a59db274c ("kbuild: add infrastructure to build userspace programs") > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Reviewed-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > --- > > (no changes since v1) > > Makefile | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/Makefile b/Makefile > index ac2c61c37a73..bc48810d1655 100644 > --- a/Makefile > +++ b/Makefile > @@ -970,8 +970,8 @@ LDFLAGS_vmlinux += --pack-dyn-relocs=relr > endif > > # Align the bit size of userspace programs with the kernel > -KBUILD_USERCFLAGS += $(filter -m32 -m64, $(KBUILD_CFLAGS)) > -KBUILD_USERLDFLAGS += $(filter -m32 -m64, $(KBUILD_CFLAGS)) > +KBUILD_USERCFLAGS += $(filter -m32 -m64 --target=%, $(KBUILD_CFLAGS)) > +KBUILD_USERLDFLAGS += $(filter -m32 -m64 --target=%, $(KBUILD_CFLAGS)) > > # make the checker run with the right architecture > CHECKFLAGS += --arch=$(ARCH) > -- > 2.25.1