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