On Mon, Jun 29, 2020 at 1:59 AM Masahiro Yamada <masahiroy@xxxxxxxxxx> 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 standalone programs always for the host architecture > because the target triple is currently missing. > > Fix this. > > Fixes: 7f3a59db274c ("kbuild: add infrastructure to build userspace programs") This is a neat feature I didn't know about; looks relatively new. What's the test case command line invocation to test this with Clang? > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > --- > > Makefile | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/Makefile b/Makefile > index 73948798ce3f..cac29cc2ec25 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)) That should be fine. Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> https://www.gnu.org/software/make/manual/html_node/Text-Functions.html > > # make the checker run with the right architecture > CHECKFLAGS += --arch=$(ARCH) > -- -- Thanks, ~Nick Desaulniers