Messages in this thread | | | From | Nick Desaulniers <> | Date | Mon, 29 Jun 2020 10:38:56 -0700 | Subject | Re: [PATCH] kbuild: make Clang build userprogs for target architecture |
| |
On Mon, Jun 29, 2020 at 1:59 AM Masahiro Yamada <masahiroy@kernel.org> 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@kernel.org> > --- > > 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@google.com> 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
| |