Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp5962328pxv; Wed, 7 Jul 2021 16:13:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/swr+zaL/gHcLKgUzM6Od1GC4vldvmoRPQWaCu9/dMDwhsUgvorU3XBon47VCW98YlMw1 X-Received: by 2002:a02:cc73:: with SMTP id j19mr23588691jaq.121.1625699617541; Wed, 07 Jul 2021 16:13:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625699617; cv=none; d=google.com; s=arc-20160816; b=uXxBi2LPcT6oxwQyhtZXNZQHiWRCCyme33sY6bReo1EB2b83LCmZPEoTC/57tiwy3U krZGaK1N6cQX5CxSEvnUKtLzycqjR1eG34/In+YYugE/yTzHX2E6FfaCPkvG/OKHuKmX 1dlSEkJwNKPj8cI3Jzz0xff6YxC38VCmZ9sVD5l99soWysSupUH1Oh17LRK+D0sPEoji b4ckbAAIVlTyiCEWdmvc8eTwQh1aSPm6jSx3v/w6Q5GwWh/HIYrX5GMxDPfFiLJ/OIPe xgb1ziVnvKqc8CkAY7W/7koCxGwmywFFDkkgH8KIosRMHhxZp3Sc9jfG+uEpJtJMQIHB RdtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=/85l2E8K+20QVvNNb2KxNFZMM43rwvEksKDAAvMmyxw=; b=DIH1x8lDNOesk23bA1HlIWBWPnh6Q7mAk8kn4ipCIE1ISlpMBaP0Yj6bghWxDiN5y2 rPeyDF1BBcX2wsPeikQI9P1PABVON3gHqQniRgea+ZFCGhudDL0KEF0E3NQErKz4KtOB c8OReth/lK4UqVscDNltTlhVWmM3ciNdW8cncwu+CdQmCqigHo5SKLN0EUTaAiEyGRgT Jf+UUowdBokLynCmzl39ylQLWY+3BEluQ8uJSO0X+gBxVLQRTZZWt4wyRXQ3/JTWlNb5 8SSEohqmZbMMGZ+eXEfoWcVBV5woOX7AfgE3KrsBY62DoFhiDFqFfuVpFlxnH3lXE0MK 8X6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=aMgaH0f6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 187si291767iow.86.2021.07.07.16.13.25; Wed, 07 Jul 2021 16:13:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=aMgaH0f6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231355AbhGGWqC (ORCPT + 99 others); Wed, 7 Jul 2021 18:46:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230106AbhGGWqA (ORCPT ); Wed, 7 Jul 2021 18:46:00 -0400 Received: from mail-qv1-xf4a.google.com (mail-qv1-xf4a.google.com [IPv6:2607:f8b0:4864:20::f4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2BCAC061574 for ; Wed, 7 Jul 2021 15:43:19 -0700 (PDT) Received: by mail-qv1-xf4a.google.com with SMTP id f16-20020ad442d00000b029028c5121bf35so2654563qvr.10 for ; Wed, 07 Jul 2021 15:43:19 -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=/85l2E8K+20QVvNNb2KxNFZMM43rwvEksKDAAvMmyxw=; b=aMgaH0f60ri4+7q3inDHhAzPnvNA8hvYOKgJ9NqPtv+6JhaqB+ORX55cfzdeRuc9+Z 2YA1ByZYy8zsokIagV+qVw247owxNutuGtky3IjJzAobpcTE0+UiYO/i3y1VLfu8AwLx PxV3YbDoi7UG3RwYwob47yzZs2nd4823aAb/F+nb8Y/H3txTg74ZcfDwVqqEtTLHz7i6 1zBQfvhkXUiD5Kq6CNIuoZglsK1TS/taTEvbbCja5z/0raBo9mTY22/N44nC4KLhvpDg ah7OERSNSuM0WBC9u4QIJZOiG557syp5PDMPgpbINv5eiCs3tjLJ9uRFc7dngP2qNO/Q uGbA== 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=/85l2E8K+20QVvNNb2KxNFZMM43rwvEksKDAAvMmyxw=; b=QBtybMbBZUnsrb8zLtjCh9TQmKrMO7klg2v5a2tihnDeMrVvAAGxULuxQKWm3fzbEU uFBl0B/P2o6Rablrcq+xdwDdxaaumc2tFQ+bQMBjUDGNNxguvds4rWWm8jAbdkPE6313 PG4e3r6fi88w2DvPgBFb82O0gbvJYciPG0INsyPMMiToAhL5SzdLCm8goVSTkxeJEzXN EV1248Gvl+xtYDr1tBkke0FULGfKDbzF8KaZHW/0kUFd0MHnnS2eWAUchHJFJTms6gk1 aeOGIC25M+PUIeS+BAsBAe35zqpAUO+6R3Q2rG/tiaO+N0svNmle6zDuD5IH4s2gXjDf m+FA== X-Gm-Message-State: AOAM531VZQmEOqMaKe6AionXHn/6TSElGl+sW06E1fkyYZCWDUZXhDzc yukpn5gC4/MDEtpppK6F6DIledxJM3ObFmIeX2U= X-Received: from ndesaulniers1.mtv.corp.google.com ([2620:15c:211:202:d417:6e24:4a54:1792]) (user=ndesaulniers job=sendgmr) by 2002:a05:6214:1a0a:: with SMTP id fh10mr26007149qvb.59.1625697798784; Wed, 07 Jul 2021 15:43:18 -0700 (PDT) Date: Wed, 7 Jul 2021 15:43:10 -0700 In-Reply-To: <20210707224310.1403944-1-ndesaulniers@google.com> Message-Id: <20210707224310.1403944-3-ndesaulniers@google.com> Mime-Version: 1.0 References: <20210707224310.1403944-1-ndesaulniers@google.com> X-Mailer: git-send-email 2.32.0.93.g670b81a890-goog Subject: [PATCH 2/2] Makefile: drop CROSS_COMPILE for LLVM=1 LLVM_IAS=1 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, Nick Desaulniers , Nathan Chancellor Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We get constant feedback that the command line invocation of make is too long. CROSS_COMPILE is helpful when a toolchain has a prefix of the target triple, or is an absolute path outside of $PATH, but it's mostly redundant for a given ARCH. If CROSS_COMPILE is not set, simply set --target= for CLANG_FLAGS, KBUILD_CFLAGS, and KBUILD_AFLAGS based on $ARCH. Previously, we'd cross compile via: $ ARCH=arm64 CROSS_COMPILE=aarch64-linxu-gnu make LLVM=1 LLVM_IAS=1 Now: $ ARCH=arm64 make LLVM=1 LLVM_IAS=1 Link: https://github.com/ClangBuiltLinux/linux/issues/1399 Suggested-by: Arnd Bergmann Suggested-by: Nathan Chancellor Signed-off-by: Nick Desaulniers --- 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/. Documentation/kbuild/llvm.rst | 5 +++++ scripts/Makefile.clang | 38 +++++++++++++++++++++++++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/Documentation/kbuild/llvm.rst b/Documentation/kbuild/llvm.rst index b18401d2ba82..80c63dd9a6d1 100644 --- a/Documentation/kbuild/llvm.rst +++ b/Documentation/kbuild/llvm.rst @@ -46,6 +46,11 @@ example: :: clang --target=aarch64-linux-gnu foo.c +When both ``LLVM=1`` and ``LLVM_IAS=1`` are used, ``CROSS_COMPILE`` becomes +unnecessary and can be inferred from ``ARCH``. Example: :: + + ARCH=arm64 make LLVM=1 LLVM_IAS=1 + LLVM Utilities -------------- diff --git a/scripts/Makefile.clang b/scripts/Makefile.clang index 297932e973d4..a79088797a50 100644 --- a/scripts/Makefile.clang +++ b/scripts/Makefile.clang @@ -1,6 +1,40 @@ -ifneq ($(CROSS_COMPILE),) +# Individual arch/{arch}/Makfiles 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),) +ifneq ($(LLVM),) +ifeq ($(LLVM_IAS),1) +ifeq ($(ARCH),arm) +CLANG_FLAGS += --target=arm-linux-gnueabi +else ifeq ($(ARCH),arm64) +CLANG_FLAGS += --target=aarch64-linux-gnu +else ifeq ($(ARCH),hexagon) +CLANG_FLAGS += --target=hexagon-linux-gnu +else ifeq ($(ARCH),i386) +CLANG_FLAGS += --target=i686-linux-gnu +else ifeq ($(ARCH),m68k) +CLANG_FLAGS += --target=m68k-linux-gnu +else ifeq ($(ARCH),mips) +CLANG_FLAGS += --target=mipsel-linux-gnu +else ifeq ($(ARCH),powerpc) +CLANG_FLAGS += --target=powerpc64le-linux-gnu +else ifeq ($(ARCH),riscv) +CLANG_FLAGS += --target=riscv64-linux-gnu +else ifeq ($(ARCH),s390) +CLANG_FLAGS += --target=s390x-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 +else +$(error Specify CROSS_COMPILE or add '--target=' option to scripts/Makefile.clang) +endif # ARCH +endif # LLVM_IAS +endif # LLVM +else CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%)) -endif +endif # CROSS_COMPILE + ifeq ($(LLVM_IAS),1) CLANG_FLAGS += -integrated-as else -- 2.32.0.93.g670b81a890-goog