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. > For example for ARCH=arm, which is better > --target=arm-linux-gnueabi or > --target=arm-lnux-gnueabihf or something we don't care about? The kernel is always soft-float itself, so it does not matter either way. Arnd