From patchwork Fri Jul 30 21:57:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nick Desaulniers X-Patchwork-Id: 12412005 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-31.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 66D96C4320A for ; Fri, 30 Jul 2021 21:57:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 533C460F94 for ; Fri, 30 Jul 2021 21:57:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232888AbhG3V5W (ORCPT ); Fri, 30 Jul 2021 17:57:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42394 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232810AbhG3V5V (ORCPT ); Fri, 30 Jul 2021 17:57:21 -0400 Received: from mail-qt1-x849.google.com (mail-qt1-x849.google.com [IPv6:2607:f8b0:4864:20::849]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A05C0C06175F for ; Fri, 30 Jul 2021 14:57:15 -0700 (PDT) Received: by mail-qt1-x849.google.com with SMTP id t35-20020a05622a1823b02902647b518455so5138292qtc.3 for ; Fri, 30 Jul 2021 14:57:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=mAs0sIhDHdO55jvkoLMVdL7o5FA16ak0SeaVC0asTAs=; b=sUGqlVu1bv4AneOEDgqvj/fEkmy5tU06kp1oA+OL9BUqTer2+/OPl7Uoko4B1I9/CL RlT13suT8nRE16OvmOoFhPeDJbd2zWgDdQjnBpfdShxwLCXXoHUZ1FMTP9fctWwAvBv8 vvE/pay163VMbGMOQk3hfP44vgdvtjrnqel6Burq1x9lNUTHEBsJU1s7jMrw+RMvAGPS 49nbbvIctXLIH+tq+deV9C4wzesCC+LMEMaCp0rY/L0kUoi7cPwod3Bx+KxWSs5PE5oZ uwRcDRFYyZGIQflm2V8He4z5xn5Il5kvNFvPEB9+ocwVOOEflF6UJPrUOxU/zIuWxuIP oRBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=mAs0sIhDHdO55jvkoLMVdL7o5FA16ak0SeaVC0asTAs=; b=fdZGt24YEY9GtS8Bek7FRNQuakkZ8dDV/UmqcGlIrE2PMAnUHWtYseMB0/i8/1DBCz ToHBas8U2Gron7BHlhdJuyCTww1vxjXPGBASXQNE+354K6wWCUzvyfUvZyaJBOIvt9W1 YB/z+rNSMk4hUiFn9xo0x64GZMfeifVaXA2tlHnwFc2bGjBvFSfsdaOaIyyzFPM/RrO2 GI5vN76aApvLC9kRXESjgSOtpBpCVhke5bY653RFdLXMaD5zLXHSLixwbE4eYPq9hcNb 0o0h5u+xQssg6fW/adEhHNNkytqTEHY5TOsGCaCH838zKUzREXO70CmWE69ONXmU2/dy DzBg== X-Gm-Message-State: AOAM5308GNfCpVaU9qN+mRPU/EPX8cT5S7nBdH+s6wt6q2M6pW97XE6q 11rGAkHH15+j8Rn2OK40wdnBMOTMP/GM0R+54io= X-Google-Smtp-Source: ABdhPJzry5c91xVpjK/XGtG19zZUYNEZ5gnksaYQdmDSUXviGSE7awMbxn28yW5BybYcpfsx0I8WIK4RJGgwIjj1zYc= X-Received: from ndesaulniers1.mtv.corp.google.com ([2620:15c:211:202:ca8b:b433:7c1d:90d]) (user=ndesaulniers job=sendgmr) by 2002:a05:6214:529e:: with SMTP id kj30mr5262500qvb.32.1627682234730; Fri, 30 Jul 2021 14:57:14 -0700 (PDT) Date: Fri, 30 Jul 2021 14:57:06 -0700 In-Reply-To: <20210730215708.276437-1-ndesaulniers@google.com> Message-Id: <20210730215708.276437-2-ndesaulniers@google.com> Mime-Version: 1.0 References: <20210730215708.276437-1-ndesaulniers@google.com> X-Mailer: git-send-email 2.32.0.554.ge1b32706d8-goog Subject: [PATCH v5 1/3] Makefile: move initial clang flag handling into scripts/Makefile.clang From: Nick Desaulniers To: Masahiro Yamada Cc: Miguel Ojeda , Fangrui Song , Michal Marek , Arnd Bergmann , linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, clang-built-linux@googlegroups.com, Geert Uytterhoeven , Christoph Hellwig , Linus Torvalds , Nick Desaulniers , Nathan Chancellor Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org With some of the changes we'd like to make to CROSS_COMPILE, the initial block of clang flag handling which controls things like the target triple, whether or not to use the integrated assembler and how to find GAS, and erroring on unknown warnings is becoming unwieldy. Move it into its own file under scripts/. Reviewed-by: Nathan Chancellor Signed-off-by: Nick Desaulniers --- MAINTAINERS | 1 + Makefile | 15 +-------------- scripts/Makefile.clang | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 14 deletions(-) create mode 100644 scripts/Makefile.clang diff --git a/MAINTAINERS b/MAINTAINERS index 81e1edeceae4..9c1205c258c7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4433,6 +4433,7 @@ B: https://github.com/ClangBuiltLinux/linux/issues C: irc://chat.freenode.net/clangbuiltlinux F: Documentation/kbuild/llvm.rst F: include/linux/compiler-clang.h +F: scripts/Makefile.clang F: scripts/clang-tools/ K: \b(?i:clang|llvm)\b diff --git a/Makefile b/Makefile index cbab0dc53065..010e3a4e770b 100644 --- a/Makefile +++ b/Makefile @@ -586,20 +586,7 @@ endif CC_VERSION_TEXT = $(subst $(pound),,$(shell $(CC) --version 2>/dev/null | head -n 1)) ifneq ($(findstring clang,$(CC_VERSION_TEXT)),) -ifneq ($(CROSS_COMPILE),) -CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%)) -endif -ifeq ($(LLVM_IAS),1) -CLANG_FLAGS += -integrated-as -else -CLANG_FLAGS += -no-integrated-as -GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit)) -CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE)) -endif -CLANG_FLAGS += -Werror=unknown-warning-option -KBUILD_CFLAGS += $(CLANG_FLAGS) -KBUILD_AFLAGS += $(CLANG_FLAGS) -export CLANG_FLAGS +include $(srctree)/scripts/Makefile.clang endif # Include this also for config targets because some architectures need diff --git a/scripts/Makefile.clang b/scripts/Makefile.clang new file mode 100644 index 000000000000..297932e973d4 --- /dev/null +++ b/scripts/Makefile.clang @@ -0,0 +1,14 @@ +ifneq ($(CROSS_COMPILE),) +CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%)) +endif +ifeq ($(LLVM_IAS),1) +CLANG_FLAGS += -integrated-as +else +CLANG_FLAGS += -no-integrated-as +GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit)) +CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE)) +endif +CLANG_FLAGS += -Werror=unknown-warning-option +KBUILD_CFLAGS += $(CLANG_FLAGS) +KBUILD_AFLAGS += $(CLANG_FLAGS) +export CLANG_FLAGS From patchwork Fri Jul 30 21:57:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nick Desaulniers X-Patchwork-Id: 12412007 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-31.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F10C8C4338F for ; Fri, 30 Jul 2021 21:58:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D03DE60F94 for ; Fri, 30 Jul 2021 21:58:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232539AbhG3V6V (ORCPT ); Fri, 30 Jul 2021 17:58:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232889AbhG3V5Y (ORCPT ); Fri, 30 Jul 2021 17:57:24 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E35EDC0613C1 for ; Fri, 30 Jul 2021 14:57:17 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id n192-20020a25dac90000b029054c59edf217so12020585ybf.3 for ; Fri, 30 Jul 2021 14:57:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=Uxes+3KgPBRk8hTWxCPQ73ggKqkGn4KDKi7P3lIrrmE=; b=oc1f766nm3acj6+MDjD1DuR6HSNGjlZACN22j3AEU+tm2ixEvAsPi4NY9NgAH7/XFB 9hQ2/USNVLptc+faEsxpdHrfRjOxvEh+oIJATF9MXWPrhjgsATyy3b0+RwgsPAICdTHU xoCNXWfdNstm+ki2AarW0LFNSYl1g1WQXW41en2IMhV03rJuj/L3d/lkUpXjFF64qE7n L1UzelynWRnrA8maMsnJI2cRPpeBRsEHD6kRFXI+oQae4Lxz75Q69jrivcmL73vou5Up CDhu9f9OKCKr2dTCgM3JXCHfQ1Vo4K3LXXv7MG7NYKQ3AtVlknBgoAaW2aEbJUW9xg8t p1Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=Uxes+3KgPBRk8hTWxCPQ73ggKqkGn4KDKi7P3lIrrmE=; b=e7zUseD9J183hExufIeqhXeoT0vo9kOyfgbE0hXd9y87sK72kyJZiD1QRUGuxlW+Ol 7/iNqwDXGePQDF6VAX0oNZsKGA2BuxWso1ICGVjYsXUkxIRiALvlE8H7hWpweis3kyVH yrq3drvVnZZIK6JhJRu3JZaPHrU0+id0eZ111RbUNyXfg6eZDV3i2WHJfERk8RcdnkTf DPc54Y6RPmFZlzqa8iKLtbjLFdZ6lBzUcKgePdtFbnmRKV1zJuAwekA31JdDylWDnr/h NCNlS+2mRip3Ehu06yOIi4bNx/5e1oWY56fiVHN/b4Eb/AeTW0sCUaALgR3GB7G9UOmx mPxQ== X-Gm-Message-State: AOAM5307AE0xudGH0BjM5+7QUCM1PpK/TLlmZHm774mqN17ag9Ml9Y9c Vpj+WAuTP36mAazs+ZlA3mT/GEVMk+bS8hrs260= X-Google-Smtp-Source: ABdhPJwl6cu/t0jKDt6ug/TY82VXGRaNCSrMNcfRStG8akTrd1tIaDakBYvUhyZJGcozttMUufdQisFyuKxgyRR0HGc= X-Received: from ndesaulniers1.mtv.corp.google.com ([2620:15c:211:202:ca8b:b433:7c1d:90d]) (user=ndesaulniers job=sendgmr) by 2002:a25:cf8a:: with SMTP id f132mr6504203ybg.387.1627682237084; Fri, 30 Jul 2021 14:57:17 -0700 (PDT) Date: Fri, 30 Jul 2021 14:57:07 -0700 In-Reply-To: <20210730215708.276437-1-ndesaulniers@google.com> Message-Id: <20210730215708.276437-3-ndesaulniers@google.com> Mime-Version: 1.0 References: <20210730215708.276437-1-ndesaulniers@google.com> X-Mailer: git-send-email 2.32.0.554.ge1b32706d8-goog Subject: [PATCH v5 2/3] Makefile: infer --target from ARCH for CC=clang From: Nick Desaulniers To: Masahiro Yamada Cc: Miguel Ojeda , Fangrui Song , Michal Marek , Arnd Bergmann , linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, clang-built-linux@googlegroups.com, Geert Uytterhoeven , Christoph Hellwig , Linus Torvalds , Nick Desaulniers , Nathan Chancellor Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org We get constant feedback that the command line invocation of make is too long when compiling with LLVM. CROSS_COMPILE is helpful when a toolchain has a prefix of the target triple, or is an absolute path outside of $PATH. Since a Clang binary is generally multi-targeted, we can infer a given target from SRCARCH/ARCH. If CROSS_COMPILE is not set, simply set --target= for CLANG_FLAGS, KBUILD_CFLAGS, and KBUILD_AFLAGS based on $SRCARCH. Previously, we'd cross compile via: $ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make LLVM=1 LLVM_IAS=1 Now: $ ARCH=arm64 make LLVM=1 LLVM_IAS=1 For native builds (not involving cross compilation) we now explicitly specify a target triple rather than rely on the implicit host triple. Link: https://github.com/ClangBuiltLinux/linux/issues/1399 Suggested-by: Arnd Bergmann Suggested-by: Nathan Chancellor Suggested-by: Masahiro Yamada Acked-by: Arnd Bergmann Reviewed-by: Nathan Chancellor Signed-off-by: Nick Desaulniers --- Changes v3 -> v4: * Reword commit message and oneline, as per Nathan. * Drop documentation change (it's the next patch, could be squashed in, I guess). * Drop LLVM_IAS=1 requirement, as per Masahiro. * Carry Arnd's and Nathan's AB/RB/TB tags, confirmed OK on IRC+Discord. Changes v2 -> v3: * Drop check/requirement for LLVM=1, as per Masahiro. * Change oneliner from LLVM=1 LLVM_IAS=1 to CC=clang LLVM_IAS=1. * Don't carry forward Nathan's RB/TB tags. :( Sorry Nathan, but thank you for testing+reviewing v2. * Update wording of docs slightly. Changes v1 -> v2: * Fix typos in commit message as per Geert and Masahiro. * Use SRCARCH instead of ARCH, simplifying x86 handling, as per Masahiro. Add his sugguested by tag. * change commit oneline from 'drop' to 'infer.' * Add detail about explicit host --target and relationship of ARCH to SRCARCH, as per Masahiro. Changes RFC -> v1: * Rebase onto linux-kbuild/for-next * Keep full target triples since missing the gnueabi suffix messes up 32b ARM. Drop Fangrui's sugguested by tag. Update commit message to drop references to arm64. * Flush out TODOS. * Add note about -EL/-EB, -m32/-m64. * Add note to Documentation/. scripts/Makefile.clang | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/scripts/Makefile.clang b/scripts/Makefile.clang index 297932e973d4..f983f65dd9f5 100644 --- a/scripts/Makefile.clang +++ b/scripts/Makefile.clang @@ -1,6 +1,32 @@ -ifneq ($(CROSS_COMPILE),) +# Individual arch/{arch}/Makefiles should use -EL/-EB to set intended +# endianness and -m32/-m64 to set word size based on Kconfigs instead of +# relying on the target triple. +ifeq ($(CROSS_COMPILE),) +ifeq ($(SRCARCH),arm) +CLANG_FLAGS += --target=arm-linux-gnueabi +else ifeq ($(SRCARCH),arm64) +CLANG_FLAGS += --target=aarch64-linux-gnu +else ifeq ($(SRCARCH),hexagon) +CLANG_FLAGS += --target=hexagon-linux-gnu +else ifeq ($(SRCARCH),m68k) +CLANG_FLAGS += --target=m68k-linux-gnu +else ifeq ($(SRCARCH),mips) +CLANG_FLAGS += --target=mipsel-linux-gnu +else ifeq ($(SRCARCH),powerpc) +CLANG_FLAGS += --target=powerpc64le-linux-gnu +else ifeq ($(SRCARCH),riscv) +CLANG_FLAGS += --target=riscv64-linux-gnu +else ifeq ($(SRCARCH),s390) +CLANG_FLAGS += --target=s390x-linux-gnu +else ifeq ($(SRCARCH),x86) +CLANG_FLAGS += --target=x86_64-linux-gnu +else +$(error Specify CROSS_COMPILE or add '--target=' option to scripts/Makefile.clang) +endif # SRCARCH +else CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%)) -endif +endif # CROSS_COMPILE + ifeq ($(LLVM_IAS),1) CLANG_FLAGS += -integrated-as else From patchwork Fri Jul 30 21:57:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nick Desaulniers X-Patchwork-Id: 12412009 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-26.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C059C432BE for ; Fri, 30 Jul 2021 21:58:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 81EE060F9B for ; Fri, 30 Jul 2021 21:58:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231722AbhG3V6j (ORCPT ); Fri, 30 Jul 2021 17:58:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233004AbhG3V50 (ORCPT ); Fri, 30 Jul 2021 17:57:26 -0400 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 44452C0613CF for ; Fri, 30 Jul 2021 14:57:20 -0700 (PDT) Received: by mail-yb1-xb49.google.com with SMTP id v71-20020a252f4a0000b029055b51419c7dso11961560ybv.23 for ; Fri, 30 Jul 2021 14:57:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=YFm85Wduq5y+10ZdlPwZKrCLoXRuDpiE2SUIBEh05mI=; b=U0mvENCWcvRKyRvn2QhOha2v5msMUAgGJd6qWARN8JlVW+SveSBU9AHZzHY30udLTL dI8y2k2L3gKEb44JexJ+BqMr5Yec1/6JguqFBD3HOjiUhVoW3weEYXfUtrCucRvhlVJt vEUh4gDN3mGnHfGk8IIovXQp7Cyey8l3UV2eGc23s2qBtcg1BBUWYn2db+YCaEtLcWT+ 4qQYphnmueeR0vQkQGS0jkiWyz2GS6mEbgEOOap5n3f2FX/5lmDHG7qwbCxTaMF1td4v S1EP0zPv7XZL2zo+MmGcMphWl2vOXBdAiqwMurtYO7Vt0KxOGVIJtQjPFYuF6BTklkgL eu5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=YFm85Wduq5y+10ZdlPwZKrCLoXRuDpiE2SUIBEh05mI=; b=aSe2cgYltBVbDtMzke0IAzokAnK/Fwk5nYzjVI+1ycz1mJKZeOaY3pEBPaBbR4iwSf qCAywVXcyjvbm5dKXT2EKi9q0ZHtyTWrPHHVFtluCBi98PkBf4U+kujTYyWUWUUQKyN6 a4L5qUqfHZfr60yhVPXlqSXKeY9bLoMq8dt344Z3a6+avlcyHvR8GoSmNqq+0wq3Ydaj 4ImKqQCEy9Ub1EKdgR6Ylydm+jDEDjjNQpga2O6ZgM/Ffou+dB0yctM6IEOfjxp5+nIp H/a4qDJgZgt7dikSioMrg2SqG44E7RDAj+YPq/t27LPMJb0Eb4ud0dYnuWIm6hrI92nr FsUw== X-Gm-Message-State: AOAM532hIfuZRaoDbJi1jlyS3AtQTZ/ewHnhQntSFDNwQ1nLNR6ExaFJ 2IJ3lfuS7bQ6z7xmxlKOT9qsnRNDjo4Tgd852RE= X-Google-Smtp-Source: ABdhPJzdLBT8dtfCnaLy3CE11KSU6t4LX4eIvQ8k5CuX6emkmHk9XAUJ1ZA/83lNHoKbhGP4p5mChGd3H//kC7ZmI1g= X-Received: from ndesaulniers1.mtv.corp.google.com ([2620:15c:211:202:ca8b:b433:7c1d:90d]) (user=ndesaulniers job=sendgmr) by 2002:a25:aea0:: with SMTP id b32mr5811780ybj.474.1627682239441; Fri, 30 Jul 2021 14:57:19 -0700 (PDT) Date: Fri, 30 Jul 2021 14:57:08 -0700 In-Reply-To: <20210730215708.276437-1-ndesaulniers@google.com> Message-Id: <20210730215708.276437-4-ndesaulniers@google.com> Mime-Version: 1.0 References: <20210730215708.276437-1-ndesaulniers@google.com> X-Mailer: git-send-email 2.32.0.554.ge1b32706d8-goog Subject: [PATCH v5 3/3] Documentation/llvm: update CROSS_COMPILE inferencing From: Nick Desaulniers To: Masahiro Yamada Cc: Miguel Ojeda , Fangrui Song , Michal Marek , Arnd Bergmann , linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, clang-built-linux@googlegroups.com, Geert Uytterhoeven , Christoph Hellwig , Linus Torvalds , Nick Desaulniers Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org As noted by Masahiro, document how we can generally infer CROSS_COMPILE (and the more specific details about --target and --prefix) based on ARCH. Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Reviewed-by: Fangrui Song --- Documentation/kbuild/llvm.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Documentation/kbuild/llvm.rst b/Documentation/kbuild/llvm.rst index b18401d2ba82..4292f0686316 100644 --- a/Documentation/kbuild/llvm.rst +++ b/Documentation/kbuild/llvm.rst @@ -63,6 +63,23 @@ They can be enabled individually. The full list of the parameters: :: Currently, the integrated assembler is disabled by default. You can pass ``LLVM_IAS=1`` to enable it. +Omitting CROSS_COMPILE +---------------------- + +As explained above, ``CROSS_COMPILE`` is used to set ``--target=``. + +Unless ``LLVM_IAS=1`` is specified, ``CROSS_COMPILE`` is also used to derive +``--prefix=`` to search for the GNU assembler. + +If ``CROSS_COMPILE`` is not specified, the ``--target=`` is inferred +from ``ARCH``. + +That means if you use only LLVM tools, ``CROSS_COMPILE`` becomes unnecessary. + +For example, to cross-compile the arm64 kernel:: + + ARCH=arm64 make LLVM=1 LLVM_IAS=1 + Supported Architectures -----------------------