Re: [PATCH 2/2] Makefile: drop CROSS_COMPILE for LLVM=1 LLVM_IAS=1

From: Nick Desaulniers
Date: Thu Jul 08 2021 - 15:06:24 EST


On Thu, Jul 8, 2021 at 4:45 AM Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
>
> On Thu, Jul 8, 2021 at 12:23 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
> > On Thu, Jul 8, 2021 at 7:43 AM 'Nick Desaulniers' via Clang Built
> >
> > We must rely on this behavior of Clang because
> > --target (which is contained in CLANG_FLAGS)
> > must be specified before the Kconfig time.
> > Then, a user can toggle CONFIG_64BIT any time
> > from menuconfig etc.
> >
> > With this in mind, using $(ARCH) as if-else
> > switches is pointless.
> > $(SRCARCH) is the only meaningful input.
> >
> >
> > else ifeq ($(ARCH),i386)
> > CLANG_FLAGS += --target=i686-linux-gnu
> > else ifeq ($(ARCH),x86)
> > CLANG_FLAGS += --target=x86_64-linux-gnu
> > else ifeq ($(ARCH),x86_64)
> > CLANG_FLAGS += --target=x86_64-linux-gnu
> >
> > should be replaced with:
> >
> > else ifeq ($(SRCARCH),x86_64)
> > CLANG_FLAGS += --target=x86_64-linux-gnu
>
> I think we usually only have to provide the architecture
> name, as in "--target=x86_64", though for arm I get a
> warning "clang: warning: unknown platform, assuming
> -mfloat-abi=soft" unless I provide the full triple.

Right, Fangrui also made that suggestion, but for that reason (the
error for various architectures when using 2-component triples) I'd
prefer to just always specify a full triple. I picked some to have a
starting point; unless they NEED to change, I'll refrain from
modifying them further.

Technically, I think they can have 4 components, not sure why we still
call them a "target triple." I guess I wouldn't be surprised if they
can contain more than 4 components at this point.
--
Thanks,
~Nick Desaulniers