From nobody Sat Jul 25 17:34:02 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 694454779B3 for ; Wed, 15 Jul 2026 12:39:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119192; cv=none; b=lGQWiQtX0CuqJOG7FFj5xOQDsuku96yyltEamXAfXPL2CyE+2beMgZF8xGYMjNub+YF70LgDqk4Q+4JhxslArCA4V50rFwxTlWwY1+qD1KlM40nhjZKW0+ny05Z7F0ZgMNn9KYKC6/MlDJTgdv/AyK7d9faDw3dCBGOqQFlOdgM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119192; c=relaxed/simple; bh=6unCx+x2NPgOEvMqAsB5BwetJseNsn7+XOk6L5xpusA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BG9kxuYgCNQGR5eyZrrdda7uRqZok9IiygSRA6COhAUwHlVPvLOhVRoIZW1bJ9EQVJ2+GfK/DTPowygqSy6ZU9YztkcLu/UWv7UuPabBMYZ9PSolKUOnWRpjGRZTGIGY+4frnCrd8dfLBQLTvUsPOt4WEYTz+KdouQ5VrxYfXa0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Uo8VqKxM; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Uo8VqKxM" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-493d92b7db3so16110695e9.2 for ; Wed, 15 Jul 2026 05:39:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784119189; x=1784723989; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=L41MYl3HjuzLNuK2qp3MB7sFO80z4n0DLrf9pnL8oBE=; b=Uo8VqKxMjWTlRyXieu9JYRrK1i9bbgmH8LRsdOawhlysad80YxE0exPvAGZUVKuyyQ tlD2ThYeJDi3pibHdUyKo3crszET5Ph7THgPD1n4T88EhgGUo+ScaA2vT/7nS3o9c/yf afg4Fb7PEHQ4nhCqUB1vhcic/ZdwjntWALYoMvSm3A7hJBRyb38LWEjbkKj1dX+NCJdi 8TxRcsLIX81zmAAaf5M3R8jeL0my99wVH8peVu2IKwkJnbrf33Qtx/eh0F6B8vu1UmlH 7+F48QRM2SY3OMoxeVrBzpRFyTo/fgz+/W1WfPmZHNe0TRqm0xO7/V8Jy0bpKIdR4eAK VH7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784119189; x=1784723989; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=L41MYl3HjuzLNuK2qp3MB7sFO80z4n0DLrf9pnL8oBE=; b=UkgctRT+mjXhKm1cXq/tAXvNrCjQJvyPd0j0b04WiiLznTYBRghHoFTEG66VMUvpFs 2/dD2ssCEYG8qeHYvsVfdKQDoWDRgM75zAKr1me6Z5ytb//QlvEE0GljEDVyz4Pqh/pj 1V0B5xz3dZ+q6skfCBcYEkBNd/moyEM0exOJ056+p86N5yrBKqL3kZHxryQn4OUPqA6i we7/gFK8GOZhxwFg8LTouz92dSm6ii523PQps4BhBreXYjLiI1k4IPPQ3wN06ufkhEPX btM5cmgiEYBMgF9KLdAbxqj7wOzGf5IMUF1IgaW3bESHERxo6HZy/AxpJRchLABI+miA K5jg== X-Forwarded-Encrypted: i=1; AHgh+RqQjCkcrpXOCyWHhiW7Q1N/tRciSnCSuhlmyhEcVmOkr3mSU0O15/nRhziBQcpUtHnHB8lY71USQRsMtRw=@vger.kernel.org X-Gm-Message-State: AOJu0YzkdYc2XSsBPulXBKV8VJj5uX2kvH7ZyHNjF94EDbt5j0aQiSV6 duvZE0dXu0cfGCrte559VhQrcH8EOkzPYoB03NCf/BBp6r3TnvhDVtxIgNB6ciYNNY8= X-Gm-Gg: AfdE7cnzXaLX4PT5g6CchJS0K2VCjQMtrdvdipfTGOttzYYb8pEF1yswDx2bHQSn62H XYo2TCKpcEdE2LbkkkIOX/k6cCA7XzTB+jiv3/fq+Rypq56MEKeDq5y5thw6xUnwGZcbJD4ClUb 60fk1wXpP8aUY/VJJiUZEJclsAPenPsudDlRu7RlAtws4xbjSFJjYgEWRl9UNmeeWIvhDzo7VzX Jv7o9vS555rnW6jeGfRWj/qyOQ0QgFXN1UCtc1470TdNCJEOQr8vVVuQbsaSTJ7IZfWBbWzDdsq PFJjCv4NDzLkUCK/bH8EUfLA3yqnU34u5f/QLnVHSkKy7H6RIsqZx/zWfszzygW0riILio90L2d ERpM6et5LcfcCW9uVPINSN5kIFFLcHqZ0LXws6RSEjB+SpO7MHhz4LalqDXadGBHUjiNPuM9F0K 8fkczfhwE9Tnf/InjTzqwsfCXnsGu13GS2 X-Received: by 2002:a05:600c:4205:b0:493:f7bc:26e4 with SMTP id 5b1f17b1804b1-493f8829970mr108104105e9.31.1784119188604; Wed, 15 Jul 2026 05:39:48 -0700 (PDT) Received: from e133063.arm.com ([212.187.182.162]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4953c710facsm32360695e9.2.2026.07.15.05.39.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jul 2026 05:39:48 -0700 (PDT) From: James Clark Date: Wed, 15 Jul 2026 13:39:17 +0100 Subject: [PATCH v3 1/5] tools/build: Allow versioning of all LLVM tools defined in Makefile.include Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260715-james-perf-llvm-version-v3-1-8854bfe5af7e@linaro.org> References: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> In-Reply-To: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> To: Arnaldo Carvalho de Melo , Namhyung Kim , Ihor Solodrai Cc: Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Eduard Zingerman , Kumar Kartikeya Dwivedi , Martin KaFai Lau , Song Liu , Yonghong Song , Jiri Olsa , Emil Tsalapatis , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Ian Rogers , Adrian Hunter , Shuah Khan , linux-kernel@vger.kernel.org, llvm@lists.linux.dev, bpf@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-kselftest@vger.kernel.org, James Clark X-Mailer: b4 0.14.2 The version of LLVM tools can be given on the build command with LLVM=3D-15, but this isn't applied to all tools. For example $(CC) gets versioned, but $(CLANG) doesn't. This causes a Perf build with LTO=3D1 to fail with an error about mixed clang versions: ld.lld: error: libperf/core.o: Unknown attribute kind (86) (Producer: 'LLVM18.1.8' Reader: 'LLVM 15.0.7') This file has two "ifneq ($(LLVM),)" blocks adjacent to each other, so merge these blocks making it obvious that all tools should be versioned consistently and there is nothing special about each block. This also reveals that ?=3D and "allow-override" are used inconsistently between the blocks. "allow-override" is technically only required for builtin variables, but isn't only used on them, and doesn't do any harm if used on a non-builtin. Make them all "allow-override" for consistency. The only functional difference this will cause is if there is a file level definition of one of the variables followed by an "#include of Makefile.include" which will now overwrite. But this isn't done and in a later commit some of the duplicate definitions will be removed for good measure. There are also some other LLVM tools that are not defined here and will be moved in a later commit. Signed-off-by: James Clark --- tools/scripts/Makefile.include | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include index 41971a68972dda218714d6b95b1d9d92349285c3..7022e78208a236604a681d45b1f= f4f2128f412e5 100644 --- a/tools/scripts/Makefile.include +++ b/tools/scripts/Makefile.include @@ -61,10 +61,18 @@ $(error Invalid value for LLVM, see Documentation/kbuil= d/llvm.rst) endif =20 $(call allow-override,CC,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) +$(call allow-override,CLANG,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) +$(call allow-override,HOSTCC,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) $(call allow-override,AR,$(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)) +$(call allow-override,HOSTAR,$(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)) $(call allow-override,LD,$(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)) +$(call allow-override,HOSTLD,$(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)) $(call allow-override,CXX,$(LLVM_PREFIX)clang++$(LLVM_SUFFIX)) $(call allow-override,STRIP,$(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)) +$(call allow-override,LLVM_STRIP,$(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)) +$(call allow-override,LLC,$(LLVM_PREFIX)llc$(LLVM_SUFFIX)) +$(call allow-override,LLVM_CONFIG,$(LLVM_PREFIX)llvm-config$(LLVM_SUFFIX)) +$(call allow-override,LLVM_OBJCOPY,$(LLVM_PREFIX)llvm-objcopy$(LLVM_SUFFIX= )) else # Allow setting various cross-compile vars or setting CROSS_COMPILE as a p= refix. $(call allow-override,CC,$(CROSS_COMPILE)gcc) @@ -72,26 +80,21 @@ $(call allow-override,AR,$(CROSS_COMPILE)ar) $(call allow-override,LD,$(CROSS_COMPILE)ld) $(call allow-override,CXX,$(CROSS_COMPILE)g++) $(call allow-override,STRIP,$(CROSS_COMPILE)strip) -endif - -CC_NO_CLANG :=3D $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__= "; echo $$?) =20 -ifneq ($(LLVM),) -HOSTAR ?=3D $(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX) -HOSTCC ?=3D $(LLVM_PREFIX)clang$(LLVM_SUFFIX) -HOSTLD ?=3D $(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX) -else -HOSTAR ?=3D ar -HOSTCC ?=3D gcc -HOSTLD ?=3D ld +# Host versions aren't prefixed +$(call allow-override,HOSTAR,ar) +$(call allow-override,HOSTCC,gcc) +$(call allow-override,HOSTLD,ld) + +# Some tools still require Clang, LLC and/or LLVM utils +$(call allow-override,CLANG,clang) +$(call allow-override,LLC,llc) +$(call allow-override,LLVM_CONFIG,llvm-config) +$(call allow-override,LLVM_OBJCOPY,llvm-objcopy) +$(call allow-override,LLVM_STRIP,llvm-strip) endif =20 -# Some tools require Clang, LLC and/or LLVM utils -CLANG ?=3D clang -LLC ?=3D llc -LLVM_CONFIG ?=3D llvm-config -LLVM_OBJCOPY ?=3D llvm-objcopy -LLVM_STRIP ?=3D llvm-strip +CC_NO_CLANG :=3D $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__= "; echo $$?) =20 # Some tools require bpftool SYSTEM_BPFTOOL ?=3D bpftool --=20 2.34.1 From nobody Sat Jul 25 17:34:02 2026 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D182D477E41 for ; Wed, 15 Jul 2026 12:39:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119193; cv=none; b=JqaMqsjrM1v9cHbWAzS59fB+9Ej4GxxknO8kiRtk0y06jCs0GHJm42ZMYK37OoyCsSg5ArTF0XZD2C+CPdQLsViZVdujxUVVax+gZ1iuQpB0y18mJBOxoXCQOxRrhsoM6WRhad+qsF+F4tObWxBv6Jw7HeNNONflZakMJhgf8/U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119193; c=relaxed/simple; bh=vierWn7zWoMEGxDcMMkTIOifh9Esb5HXc5nNQCPMiog=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ONyO0V3uVMhcFhNME4NR+ATwcMVEIDd1TRLaVNjPrDCv6LHM6GdPCqo62DYiqe4CBHyMupTIXx5Dq+RmPt3DR6C08/yUnWSKeYTcFvkop5SDVGIrNj3qw54F20ymjvyACBWFnUbfKa8Yeu0L2Ps0pyxE4AykXi+PyVqJ2gtl458= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=iscuYHnW; arc=none smtp.client-ip=209.85.221.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="iscuYHnW" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-472326ca506so4414148f8f.2 for ; Wed, 15 Jul 2026 05:39:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784119190; x=1784723990; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=MEBbHm347NmLeqhspnJuPdrAD7nLfIZv8YQWBcbqgbU=; b=iscuYHnWApalvTNdzQuly/cRL/b23iMExltOin1d9eUYgcNlDnNcR1kKcBLkCTF1dJ iJh7GWWgxhX6TUUxa9u2XdS2GJ1Nrig1lxIkRn1NV/Gydgz3yhTFTDbEPaawyMHoAz6D iaiK7YFMBmjVvm4wPpQepXeaQhCCZNQ98AFKjCwLlW/d/faikV0Dukcg7AFmIZFK4t9e WEGp3cEau3PZvlCsflbDgyJm7tSUEXFvQWj7bexPSeCsVdfVuRchq81JLSx0fvIAxEyh fb1gJP8gQwgQxGAcFVPBKEjvzVSOiDLQ82tQyTYOpcGFfqqOTEkX/GUGA7/5czecc2al oEog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784119190; x=1784723990; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=MEBbHm347NmLeqhspnJuPdrAD7nLfIZv8YQWBcbqgbU=; b=m6XlT+bWk6WTp7W6asYaULFrSIOuwLDQP4K46DwQniulK6IdQSsOi0kd1KD/ucE8oC qkSF9ns0Xck27a61N1PtVknySLB5fTR8Y1Zq4vkj/82DAkCl7csNqhpsNwwB/B4hJZKl Hjd4HiRd+U1SPOMImPWuECFObtktX8hZxaaWWY1oqAnA4aYNQioxkUTMCpTUPUajJ3j4 jfNKbu3+2jz/JC6cgmYuNObbc0Rfkl4wy9Xiq8AEp/b1+u3brARps1/avteZo0tUA1mW 0l3B26b7AdIoN5XFquG4cDWCqqtLZy+Wd4Au4jXjZs/YLsnW1Oe8vGEL95iPuNloK6ml aRdQ== X-Forwarded-Encrypted: i=1; AHgh+RrECx4axL/vaIVmEmDE6U/TxZNECKTjHQ5JpDbRUqEmtL+t7JRxk7u9aXQZ8tYmbbRie/eD11Ur+5kXP9M=@vger.kernel.org X-Gm-Message-State: AOJu0YyLoPBSpKdA0cacBdtGByzew6H/Cn4NAi79/J5AIwAKJqAr2Pta dDIgWp+edORX2PjIUhZHSXfYh47ioULV32MB1NIezvO9FH/WLS+F6eYxn+h3ldRiKm0= X-Gm-Gg: AfdE7cle92nrEQBUEU6cSBsE6bFYNZ+TOt85+xZeWdcGOABWtie38YpUvFdlPp5Kg4/ IRuZtK44VZJcG3XIsrmJPpVuDnNSfWcJV39PDrQat16VZtxzTKxw8DmAByc9bqSOc8kQcOh3Tv4 1UVzD0Goojck3kTRRBf/8cm420/SE9Q6wrffCdgav9/5sgI+q64msIJN9a49Qnl02lMcLQtWZWJ Sv88nqA94t6N/xGQmStW4GJNISvF8aAg/oWhfLpBl2cLQZNCQHmiMI2cEo37EwBfiEmflr70EPG 0smr0VMtH0taiRqjQE+fDOxP2ZzXxiwTjGaF/HCWFJxxDfbTmp/T+6jnm7xypKRGJCefKJVeGnX 80djeFkWBMiLQurBbJ96iqVaXxBdsJZbYX+dbcNT1RcnojPQidrl36vz0J6HLe/hqsJ+aXJrtbW EgvEg1j2mSXBOeNHKkoVD/Lw== X-Received: by 2002:a05:600c:1d9a:b0:493:c535:3934 with SMTP id 5b1f17b1804b1-495384a43aemr83497955e9.36.1784119189932; Wed, 15 Jul 2026 05:39:49 -0700 (PDT) Received: from e133063.arm.com ([212.187.182.162]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4953c710facsm32360695e9.2.2026.07.15.05.39.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jul 2026 05:39:49 -0700 (PDT) From: James Clark Date: Wed, 15 Jul 2026 13:39:18 +0100 Subject: [PATCH v3 2/5] tools/build: Indent if else blocks Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260715-james-perf-llvm-version-v3-2-8854bfe5af7e@linaro.org> References: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> In-Reply-To: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> To: Arnaldo Carvalho de Melo , Namhyung Kim , Ihor Solodrai Cc: Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Eduard Zingerman , Kumar Kartikeya Dwivedi , Martin KaFai Lau , Song Liu , Yonghong Song , Jiri Olsa , Emil Tsalapatis , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Ian Rogers , Adrian Hunter , Shuah Khan , linux-kernel@vger.kernel.org, llvm@lists.linux.dev, bpf@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-kselftest@vger.kernel.org, James Clark X-Mailer: b4 0.14.2 These blocks are quite big and unreadable without indentation. Indent them. No functional changes intended. Signed-off-by: James Clark --- tools/scripts/Makefile.include | 76 +++++++++++++++++++++-----------------= ---- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include index 7022e78208a236604a681d45b1ff4f2128f412e5..e81e5b479c563321e458b2a7ad8= fca2b4607a254 100644 --- a/tools/scripts/Makefile.include +++ b/tools/scripts/Makefile.include @@ -52,46 +52,46 @@ define allow-override endef =20 ifneq ($(LLVM),) -ifneq ($(filter %/,$(LLVM)),) -LLVM_PREFIX :=3D $(LLVM) -else ifneq ($(filter -%,$(LLVM)),) -LLVM_SUFFIX :=3D $(LLVM) -else ifneq ($(LLVM),1) -$(error Invalid value for LLVM, see Documentation/kbuild/llvm.rst) -endif + ifneq ($(filter %/,$(LLVM)),) + LLVM_PREFIX :=3D $(LLVM) + else ifneq ($(filter -%,$(LLVM)),) + LLVM_SUFFIX :=3D $(LLVM) + else ifneq ($(LLVM),1) + $(error Invalid value for LLVM, see Documentation/kbuild/llvm.rst) + endif =20 -$(call allow-override,CC,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) -$(call allow-override,CLANG,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) -$(call allow-override,HOSTCC,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) -$(call allow-override,AR,$(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)) -$(call allow-override,HOSTAR,$(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)) -$(call allow-override,LD,$(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)) -$(call allow-override,HOSTLD,$(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)) -$(call allow-override,CXX,$(LLVM_PREFIX)clang++$(LLVM_SUFFIX)) -$(call allow-override,STRIP,$(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)) -$(call allow-override,LLVM_STRIP,$(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)) -$(call allow-override,LLC,$(LLVM_PREFIX)llc$(LLVM_SUFFIX)) -$(call allow-override,LLVM_CONFIG,$(LLVM_PREFIX)llvm-config$(LLVM_SUFFIX)) -$(call allow-override,LLVM_OBJCOPY,$(LLVM_PREFIX)llvm-objcopy$(LLVM_SUFFIX= )) + $(call allow-override,CC,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) + $(call allow-override,CLANG,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) + $(call allow-override,HOSTCC,$(LLVM_PREFIX)clang$(LLVM_SUFFIX)) + $(call allow-override,AR,$(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)) + $(call allow-override,HOSTAR,$(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)) + $(call allow-override,LD,$(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)) + $(call allow-override,HOSTLD,$(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)) + $(call allow-override,CXX,$(LLVM_PREFIX)clang++$(LLVM_SUFFIX)) + $(call allow-override,STRIP,$(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)) + $(call allow-override,LLVM_STRIP,$(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)) + $(call allow-override,LLC,$(LLVM_PREFIX)llc$(LLVM_SUFFIX)) + $(call allow-override,LLVM_CONFIG,$(LLVM_PREFIX)llvm-config$(LLVM_SUFFIX= )) + $(call allow-override,LLVM_OBJCOPY,$(LLVM_PREFIX)llvm-objcopy$(LLVM_SUFF= IX)) else -# Allow setting various cross-compile vars or setting CROSS_COMPILE as a p= refix. -$(call allow-override,CC,$(CROSS_COMPILE)gcc) -$(call allow-override,AR,$(CROSS_COMPILE)ar) -$(call allow-override,LD,$(CROSS_COMPILE)ld) -$(call allow-override,CXX,$(CROSS_COMPILE)g++) -$(call allow-override,STRIP,$(CROSS_COMPILE)strip) - -# Host versions aren't prefixed -$(call allow-override,HOSTAR,ar) -$(call allow-override,HOSTCC,gcc) -$(call allow-override,HOSTLD,ld) - -# Some tools still require Clang, LLC and/or LLVM utils -$(call allow-override,CLANG,clang) -$(call allow-override,LLC,llc) -$(call allow-override,LLVM_CONFIG,llvm-config) -$(call allow-override,LLVM_OBJCOPY,llvm-objcopy) -$(call allow-override,LLVM_STRIP,llvm-strip) + # Allow setting various cross-compile vars or setting CROSS_COMPILE as a= prefix. + $(call allow-override,CC,$(CROSS_COMPILE)gcc) + $(call allow-override,AR,$(CROSS_COMPILE)ar) + $(call allow-override,LD,$(CROSS_COMPILE)ld) + $(call allow-override,CXX,$(CROSS_COMPILE)g++) + $(call allow-override,STRIP,$(CROSS_COMPILE)strip) + + # Host versions aren't prefixed + $(call allow-override,HOSTAR,ar) + $(call allow-override,HOSTCC,gcc) + $(call allow-override,HOSTLD,ld) + + # Some tools still require Clang, LLC and/or LLVM utils + $(call allow-override,CLANG,clang) + $(call allow-override,LLC,llc) + $(call allow-override,LLVM_CONFIG,llvm-config) + $(call allow-override,LLVM_OBJCOPY,llvm-objcopy) + $(call allow-override,LLVM_STRIP,llvm-strip) endif =20 CC_NO_CLANG :=3D $(shell $(CC) -dM -E -x c /dev/null | grep -Fq "__clang__= "; echo $$?) --=20 2.34.1 From nobody Sat Jul 25 17:34:02 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 49272478E57 for ; Wed, 15 Jul 2026 12:39:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119195; cv=none; b=SoY9awSyCbb2iLOZUq640jKz/mNe5ukDCkMZnL3RhhgqPFZhdXjltCIbO5K+h5sQNfD4MVsGhVqP19Rr8H5E3Srk46jqRWUZga2FG8/ZCpv7BLc/UDqv3vz0mJZ7pv7/fqbHO3UEd8jd4fFA9w5IlyRsS1sbZ2drB4Tttf4izo4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119195; c=relaxed/simple; bh=ZkYJs35jQmspYZV+7P7rdW/XJsOQuNs1+0xfbRaBumg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Rg066/ulDDXNCcB4cjbawKSNfkLLlR0Aamgp3y8PtsSUaeCnIdkujD0zf4riM+L6512kMRUENvqRXmCOzvuk0WugRdz69e4P2rpviOjb1zE+4QsfoNBOwvQWL1y2fkrO4ne179+KJA1g8AgF36md7XfcEntm6+rwlGssHaFqScA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=G1l0I46k; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="G1l0I46k" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-493e4ccccc2so34161245e9.2 for ; Wed, 15 Jul 2026 05:39:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784119191; x=1784723991; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=IYLoZSOwmX0k8MESmwiGJgNO1yzq3b1PVclurYMHFiw=; b=G1l0I46kSGQoY7D+w2hYlu5iuXi2nygQsGEAxwUOJr6JKu/wzYqkruB27VbYrZkb9t 01AmMN/JZ23x+fWhBm/1cRgOv6PeXsBAFx3i4j8hhwNr1xATAAAltTE/aoWL9t499MFW RLvSHjm4EOBXXkjv4Gptrp9VCGY8DG7+q09KNBI8qkCp4wR5ZJUgTx7y/4HF8CBUy9IY QK348XBaYCzpiBJjLe6GS6Kf35zElm00hwfkD3j8gpJv+w8H37Dyomi61HvNhmjHSEkN MxW0mrxvrIyBjQSLopoPBP4SdVSPOVWutHB0b1/raxDOjrHyyC95MIyAoZGFh77LuhEj ew7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784119191; x=1784723991; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=IYLoZSOwmX0k8MESmwiGJgNO1yzq3b1PVclurYMHFiw=; b=Dr8fwkiuNGE8y+EEQ2dAvV10O/pkoRWNeeozg9ZKO+QJUKhB5oqoTVfqMoU/QgVI2D RfRzz4KTlX/6A1Zf0LJtB0Sb7w/8MtepLF2kJLCmBDe6n+BjWJqHyt/dlZyCvoRDuFvK mJAb1VXKEWpcLuVg5CARLV+mU1xLGtiig8DBCp/xUzG6X+ky8XxPAoN8cC7/c6uXvoG+ Vbl9XUjmDRBpcCWMQrlxBoIsdYhSAMuyMNJmbk92a4cg/LvmJVdfYdEVYkO2mbxifksr /rOlUXuu4U/0Ut/Zff+FHOVLKCCBhyz4Pzofli/bn/qV5ZeWy4KYndF51zApDCSye/86 KVkQ== X-Forwarded-Encrypted: i=1; AHgh+RqH8iAaDHwkNx3tjOCYtp9pJA0YOFSponEUGoQeIj3MmVoxXTRN6dfAw/hzoRIDwrc/k64FNlUooHkH1oE=@vger.kernel.org X-Gm-Message-State: AOJu0YxF9gWFOJsq8ZwT6lxG3kLWnqoWnmaLYq/0lJ+UyXn/s/eDu1Mh YF5BSMvJuLyhvaW21If43jwFBNDfOBHaqUOEYJkET64xd4ZDj0Xb+j8kE8ALITtyAlI= X-Gm-Gg: AfdE7cmIkDWk/SRgQkKp+yxrfiAEQGJQHt/8cqriACEUc9j08bHPczUjfcasjdytUek W/cU82ZBfgQftVe4U7R4U1YODfMM89UjFQFtFh23e/3LrgD7ZGcHNyqIRo3uPS/Jfrm5AMiwFKG S1LrSthhLDiJzf3oaPrFRHQdeg09GHQTKhQ9wUdJSYt2ELimUlRf2zp4rBgDO/XmzaPlTZA0z2a QlT+NF4ct085GYNcDGpto3D1iVhs0vXrLG0PKA1GQifbTCtZKVMMWtD2FLQyFbOUVsC8cWO6BLx qBoeLxVijT3JIHeLG2L/6anelMYQzZS9v1CMoybq/lG7QXXUclGrqEalxh92yT8PT9NHZ6Wyt3u BhTTYa9LOCuQFag7y52u/KFAM57jLxey9vON1ybw7HH4xZKeQwqoJfr6WVXmbu98bRaJ5uN94vs 6JYgLuPyMdQwHmPWZzNY19Nw== X-Received: by 2002:a05:600d:644d:20b0:493:c601:3e23 with SMTP id 5b1f17b1804b1-49538992cfbmr54535535e9.5.1784119191529; Wed, 15 Jul 2026 05:39:51 -0700 (PDT) Received: from e133063.arm.com ([212.187.182.162]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4953c710facsm32360695e9.2.2026.07.15.05.39.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jul 2026 05:39:50 -0700 (PDT) From: James Clark Date: Wed, 15 Jul 2026 13:39:19 +0100 Subject: [PATCH v3 3/5] tools/build: Allow versioning LLVM readelf Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260715-james-perf-llvm-version-v3-3-8854bfe5af7e@linaro.org> References: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> In-Reply-To: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> To: Arnaldo Carvalho de Melo , Namhyung Kim , Ihor Solodrai Cc: Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Eduard Zingerman , Kumar Kartikeya Dwivedi , Martin KaFai Lau , Song Liu , Yonghong Song , Jiri Olsa , Emil Tsalapatis , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Ian Rogers , Adrian Hunter , Shuah Khan , linux-kernel@vger.kernel.org, llvm@lists.linux.dev, bpf@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-kselftest@vger.kernel.org, James Clark X-Mailer: b4 0.14.2 Documentation/kbuild/llvm.rst mentions that readelf is included in the LLVM toolchain, but it's not currently included in this block. Add it so that LLVM=3D... options also apply to readelf. Users in tools/ were Perf which was hardcoding it, and another was the BPF makefile. Both already include Makefile.include so convert them to use the new variables. Where readelf wasn't doing anything arch specific, use HOSTREADELF because it's more likely to be installed. Reviewed-by: Ian Rogers Signed-off-by: James Clark --- tools/lib/bpf/Makefile | 8 ++++---- tools/perf/Makefile.perf | 1 - tools/scripts/Makefile.include | 4 ++++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile index eca584fb061e16013e76827e4203f6be0477a73e..269fe21fc8da73083367b3c122b= dd2b718e12bc5 100644 --- a/tools/lib/bpf/Makefile +++ b/tools/lib/bpf/Makefile @@ -115,12 +115,12 @@ PC_FILE :=3D $(addprefix $(OUTPUT),$(PC_FILE)) =20 TAGS_PROG :=3D $(if $(shell which etags 2>/dev/null),etags,ctags) =20 -GLOBAL_SYM_COUNT =3D $(shell readelf -s --wide $(BPF_IN_SHARED) | \ +GLOBAL_SYM_COUNT =3D $(shell $(HOSTREADELF) -s --wide $(BPF_IN_SHARED) | \ cut -d "@" -f1 | sed 's/_v[0-9]_[0-9]_[0-9].*//' | \ sed 's/\[.*\]//' | \ awk '/GLOBAL/ && /DEFAULT/ && !/UND|ABS/ {print $$NF}' | \ sort -u | wc -l) -VERSIONED_SYM_COUNT =3D $(shell readelf --dyn-syms --wide $(OUTPUT)libbpf.= so | \ +VERSIONED_SYM_COUNT =3D $(shell $(HOSTREADELF) --dyn-syms --wide $(OUTPUT)= libbpf.so | \ sed 's/\[.*\]//' | \ awk '/GLOBAL/ && /DEFAULT/ && !/UND|ABS/ {print $$NF}' | \ grep -Eo '[^ ]+@LIBBPF_' | cut -d@ -f1 | sort -u | wc -l) @@ -183,12 +183,12 @@ check_abi: $(OUTPUT)libbpf.so $(VERSION_SCRIPT) "versioned symbols in $^ ($(VERSIONED_SYM_COUNT))." \ "Please make sure all LIBBPF_API symbols are" \ "versioned in $(VERSION_SCRIPT)." >&2; \ - readelf -s --wide $(BPF_IN_SHARED) | \ + $(HOSTREADELF) -s --wide $(BPF_IN_SHARED) | \ cut -d "@" -f1 | sed 's/_v[0-9]_[0-9]_[0-9].*//' | \ sed 's/\[.*\]//' | \ awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}'| \ sort -u > $(OUTPUT)libbpf_global_syms.tmp; \ - readelf --dyn-syms --wide $(OUTPUT)libbpf.so | \ + $(HOSTREADELF) --dyn-syms --wide $(OUTPUT)libbpf.so | \ sed 's/\[.*\]//' | \ awk '/GLOBAL/ && /DEFAULT/ && !/UND|ABS/ {print $$NF}'| \ grep -Eo '[^ ]+@LIBBPF_' | cut -d@ -f1 | \ diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 476b8dcaef58cb1f3fa75f46a647c2cfe2352767..4d0d7ae02e06b117487a17691c4= e62a138428ac5 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -215,7 +215,6 @@ FLEX ?=3D flex BISON ?=3D bison STRIP =3D strip AWK =3D awk -READELF ?=3D readelf =20 # include Makefile.config by default and rule out # non-config cases diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include index e81e5b479c563321e458b2a7ad8fca2b4607a254..46a3872b87624a7bf475d9b42a3= e471f36789dfd 100644 --- a/tools/scripts/Makefile.include +++ b/tools/scripts/Makefile.include @@ -73,6 +73,8 @@ ifneq ($(LLVM),) $(call allow-override,LLC,$(LLVM_PREFIX)llc$(LLVM_SUFFIX)) $(call allow-override,LLVM_CONFIG,$(LLVM_PREFIX)llvm-config$(LLVM_SUFFIX= )) $(call allow-override,LLVM_OBJCOPY,$(LLVM_PREFIX)llvm-objcopy$(LLVM_SUFF= IX)) + $(call allow-override,READELF,$(LLVM_PREFIX)llvm-readelf$(LLVM_SUFFIX)) + $(call allow-override,HOSTREADELF,$(LLVM_PREFIX)llvm-readelf$(LLVM_SUFFI= X)) else # Allow setting various cross-compile vars or setting CROSS_COMPILE as a= prefix. $(call allow-override,CC,$(CROSS_COMPILE)gcc) @@ -80,11 +82,13 @@ else $(call allow-override,LD,$(CROSS_COMPILE)ld) $(call allow-override,CXX,$(CROSS_COMPILE)g++) $(call allow-override,STRIP,$(CROSS_COMPILE)strip) + $(call allow-override,READELF,$(CROSS_COMPILE)readelf) =20 # Host versions aren't prefixed $(call allow-override,HOSTAR,ar) $(call allow-override,HOSTCC,gcc) $(call allow-override,HOSTLD,ld) + $(call allow-override,HOSTREADELF,readelf) =20 # Some tools still require Clang, LLC and/or LLVM utils $(call allow-override,CLANG,clang) --=20 2.34.1 From nobody Sat Jul 25 17:34:02 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E35447B401 for ; Wed, 15 Jul 2026 12:39:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119198; cv=none; b=GCXBJu6lrJ7H+GP0i5myASKCtbAto/BqXCX0oLTy6NjQa2G1Dbrk0QOM7wlvDXialtNszQcjk68KFjpHGYNchfOTj3+XOJsM1qNMquNmoRmvo4+kBEzOoubiQLQpTUj6xtkru9LRSi8EFapYQugEU0aXdROlRy1Yp4VirUzXf0Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119198; c=relaxed/simple; bh=XKzOXI7bmhKLzFjpe/X1ZB5NXfAm20n90mj21jdtQJ4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JmRSznDhJ378KiX0igJNv5u5DOQjTObcAa5fy+jftUiQKUF3GUz9WOY/O7WMl8uPPkqpxBuqU6tR886IaBm1PnXQ1BGL0b5B6tvadYZgCbUVJICRj5FJjbL/8hTOVpfjfhgj9F0IHGG7ppedI23nCrc6AA5sPqTZ1QehFDAsWqs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=fXSYPceX; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="fXSYPceX" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-493e4ccccc2so34161555e9.2 for ; Wed, 15 Jul 2026 05:39:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784119193; x=1784723993; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=+xgEUm86ElH+02LcY3CjjDGbQavQuTnhydinV3UlFp4=; b=fXSYPceXzVIcyzI0VFhIMxg7hI/m7Dt2y/RDfHeil1OhCALUNCTsba9zS+RB2wrgoh w3zu9IAg/xntYGeUOH0NATYBwmMzunCJK817KBPLbUbX50a7Mao2aJwFUqJGmCCzzj/Q sQ95hjPtqhEMxKd6NK8CqHaToCakSV5xCcbhS0RzroSthB/eSghhzC2TgzlrmeGJrGeD UB/02zyiee1HZXQQNW61tcBKg4sMDpFaLMFSi+STqppwLKpAhctGnvUm+ZvriK/2qCgL rijnWsIa6ES8bceu7O5gj+6OmathMskqe7bKhsgRPmudyJav/aebk9GTyZj0nifwz0OZ 2N3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784119193; x=1784723993; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=+xgEUm86ElH+02LcY3CjjDGbQavQuTnhydinV3UlFp4=; b=Qr/4V1WJLVfgnnYQ4/sPsbmYqACYHPOZTH2I0qYoMiK/+E06ls+eWwa91ylOB3P8va cKuJVILZ7BNMbzJRH0vn/N2qBqYYSa1VE6iEPc2BglXIRdqYT1i4/PXhgWhGlDmDLJCj TA2RL75FtLXZnv9R/TTuzjbN/g/fKsRw1dESni2t1v15yL0ge58wAQKWzol/JTgVZHiC P/XToJawHn6HoOWLmVGLc1nueicaB9ZHehRr1EupMVALYrXoCsLSQZHG+I8QUqL6XPk3 f7HqjZc+cfzPXhagv8Hn7i+afCuTeLvhn650E+WuzRtMtI2Kh95sTK/hZE/emcc6T/cl mrMw== X-Forwarded-Encrypted: i=1; AHgh+RqI70wNQDAxjYPsVXhRw4XnzjI20vPauOP7ipap5++E+nSdMQf+KcF/5Q4o7WXYh3QTjMM9/rktaHzVJ+M=@vger.kernel.org X-Gm-Message-State: AOJu0YxRppXe5bELkTYu76yuBPpnOpUbG/kmrdWKAlH6VwQzH3HHpxfd hT+m7Z5IU7DN8xH9MAnPYx+9rzTorX4rBoNvB19b479nyARMl9yPIwh3aJd7GIJLHLE= X-Gm-Gg: AfdE7ckGguZWbW+LiS8cG/w7ihDxlcqy8oZsWXFm1KRuC+JMBmDyz3bxHZHK18pN19J 8cFg4CbUjnnHrvPMrkKzzDeDpbgH3KhgFf+6qBf5zQgbojsOlxLKYVQCRrBZ6r+4dKS0vbfXABq EhBOgQreah1d6009gsoNqbYXDbdrOkWyZ04pHbKcrial5tGYCfMcBnJThWlXj1H7cG6o5jjSEEa UpVyntZEsZgpWH/0vT5sE0AaWoWrVdwaw13AcGaqyyC5B3T7wDCu76Y+G7psJfqhHHB1zp8cJlM 6WkPU/lXvAps/LQFUKZ6eitt3ptVzF6BZOCfAYnzOQ5pT0U3oAgodHlgQWs49QC/PgwCq7vo6o9 YHdZFl/YtaGjtL4buUKTmNuPu2NV8d6jFXewkRpXZE2hJUO4J+1BwaaEoYygpEgTMA6A+GouN0c s60kz7UygHP/aAvpnf3nM46g== X-Received: by 2002:a05:600c:c0c3:10b0:493:bfad:9d99 with SMTP id 5b1f17b1804b1-4953899588amr55205575e9.13.1784119193314; Wed, 15 Jul 2026 05:39:53 -0700 (PDT) Received: from e133063.arm.com ([212.187.182.162]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4953c710facsm32360695e9.2.2026.07.15.05.39.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jul 2026 05:39:52 -0700 (PDT) From: James Clark Date: Wed, 15 Jul 2026 13:39:20 +0100 Subject: [PATCH v3 4/5] tools/build: selftests: Allow versioning LLVM lld Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260715-james-perf-llvm-version-v3-4-8854bfe5af7e@linaro.org> References: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> In-Reply-To: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> To: Arnaldo Carvalho de Melo , Namhyung Kim , Ihor Solodrai Cc: Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Eduard Zingerman , Kumar Kartikeya Dwivedi , Martin KaFai Lau , Song Liu , Yonghong Song , Jiri Olsa , Emil Tsalapatis , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Ian Rogers , Adrian Hunter , Shuah Khan , linux-kernel@vger.kernel.org, llvm@lists.linux.dev, bpf@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-kselftest@vger.kernel.org, James Clark X-Mailer: b4 0.14.2 Building with LLVM=3D... could result in a different version of lld being used than the main toolchain for liburandom_read.so because it's hardcoded to "lld" in this makefile. Make it consistent with the rest of the LLVM toolchain by adding an LLD variable to Makefile.include. Keep the fallback for other architectures in tools/testing/selftests/bpf/Makefile as it seems like it's something specific to this make rule and shouldn't be global. Clang only accepts either a full path to "/x/x/ld.lld" or "lld-15" style inputs to "-fuse-ld=3D", so the only way to make it work with both prefixed and postfixed paths is to always take the full path. Also I don't think the original use of "lld" over "ld.lld" was significant as this is always a linux build, so that can be changed to make it work in both cases. Add a warning for an empty USE_LD as "shell command -v" can return empty and GCC won't complain. Signed-off-by: James Clark --- tools/scripts/Makefile.include | 2 ++ tools/testing/selftests/bpf/Makefile | 12 ++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include index 46a3872b87624a7bf475d9b42a3e471f36789dfd..92056d3e330eb6596250635b6d9= 32b3b73e7f45f 100644 --- a/tools/scripts/Makefile.include +++ b/tools/scripts/Makefile.include @@ -67,6 +67,7 @@ ifneq ($(LLVM),) $(call allow-override,HOSTAR,$(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)) $(call allow-override,LD,$(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)) $(call allow-override,HOSTLD,$(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)) + $(call allow-override,LLD,$(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)) $(call allow-override,CXX,$(LLVM_PREFIX)clang++$(LLVM_SUFFIX)) $(call allow-override,STRIP,$(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)) $(call allow-override,LLVM_STRIP,$(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)) @@ -93,6 +94,7 @@ else # Some tools still require Clang, LLC and/or LLVM utils $(call allow-override,CLANG,clang) $(call allow-override,LLC,llc) + $(call allow-override,LLD,ld.lld) $(call allow-override,LLVM_CONFIG,llvm-config) $(call allow-override,LLVM_OBJCOPY,llvm-objcopy) $(call allow-override,LLVM_STRIP,llvm-strip) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index b642ee489ea64046a9b19852780c3a6f009cbd82..d829979861eeabd33272a0d6eca= 82e7066eabfd7 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -264,30 +264,34 @@ $(OUTPUT)/%:%.c =20 # LLVM's ld.lld doesn't support all the architectures, so use it only on x= 86 ifeq ($(SRCARCH),$(filter $(SRCARCH),x86 riscv)) -LLD :=3D lld +USE_LD :=3D $(shell command -v $(LLD)) +USE_LD_ERR =3D linker '$(LLD)' not found - add it to PATH, or pass LLVM=3D= /path/ or LLD=3D/abs/ld.lld) else -LLD :=3D $(shell command -v $(LD)) +USE_LD :=3D $(shell command -v $(LD)) +USE_LD_ERR =3D linker '$(LD)' not found - add it to PATH, or pass LLVM=3D/= path/ or LD=3D/abs/ld) endif =20 # Filter out -static for liburandom_read.so and its dependent targets so t= hat static builds # do not fail. Static builds leave urandom_read relying on system-wide sha= red libraries. $(OUTPUT)/liburandom_read.so: urandom_read_lib1.c urandom_read_lib2.c libu= random_read.map $(call msg,LIB,,$@) + $(Q)test -n "$(USE_LD)" || { echo "$@: $(USE_LD_ERR)" >&2; exit 1; } $(Q)$(CLANG) $(CLANG_TARGET_ARCH) \ $(filter-out -static,$(COMMON_CFLAGS) $(LDFLAGS)) \ $(filter %.c,$^) $(filter-out -static,$(LDLIBS)) \ -Wno-unused-command-line-argument \ - -fuse-ld=3D$(LLD) -Wl,-znoseparate-code -Wl,--build-id=3Dsha1 \ + -fuse-ld=3D$(USE_LD) -Wl,-znoseparate-code -Wl,--build-id=3Dsha1 \ -Wl,--version-script=3Dliburandom_read.map \ -fPIC -shared -o $@ =20 $(OUTPUT)/urandom_read: urandom_read.c urandom_read_aux.c $(OUTPUT)/libura= ndom_read.so $(call msg,BINARY,,$@) + $(Q)test -n "$(USE_LD)" || { echo "$@: $(USE_LD_ERR)" >&2; exit 1; } $(Q)$(CLANG) $(CLANG_TARGET_ARCH) \ $(filter-out -static,$(COMMON_CFLAGS) $(LDFLAGS)) $(filter %.c,$^) \ -Wno-unused-command-line-argument \ -lurandom_read $(filter-out -static,$(LDLIBS)) -L$(OUTPUT) \ - -fuse-ld=3D$(LLD) -Wl,-znoseparate-code -Wl,--build-id=3Dsha1 \ + -fuse-ld=3D$(USE_LD) -Wl,-znoseparate-code -Wl,--build-id=3Dsha1 \ -Wl,-rpath=3D. -o $@ =20 $(OUTPUT)/sign-file: ../../../../scripts/sign-file.c --=20 2.34.1 From nobody Sat Jul 25 17:34:02 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C0BF477E28 for ; Wed, 15 Jul 2026 12:39:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119198; cv=none; b=eyTfYWNsWU10YpLHv468EjZpYyQyEfUWf4V866r7u8LbwvdzoY7srP2j5m66Iaw+pCom1G3UZcrsnKQi3Fl4GKW6XShSGDw3NBPQ4VyNmWmNgEm4FBAUKb/ft/JvD6JacbEitRNZs3KEqgF12ikdNbZm4HwjybLt8BOZNfVRI6g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784119198; c=relaxed/simple; bh=23V8P96JjPI3snxBemAlctSXcXR0vTGgsRT6bW5Z7AI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QDjsg3HEWuS5XV4gpceULGd6yUXa4a6A7UqHBIBRigY0mm64ahLX2K4bSqaszVIZjzpeTc85FN0iiMAmvA9XCTl7R25ATr62NTpndsg1fBOBxqEH1dF5Rft93z5U3bvJsVnWfEbHK7YqDySuXs3Vq9MrS9f5fhVKB3o2pWGAACA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=SjUpTcY7; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="SjUpTcY7" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-493f75f7172so37370275e9.1 for ; Wed, 15 Jul 2026 05:39:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1784119195; x=1784723995; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=UbwMtvKC1W3XaLMpZ43nboi/b2XlEYyfJjxYGqiGvfo=; b=SjUpTcY7EQPyVkLOvyzXRXi4+b8F8GrWTwFxgqeBOf9P51eg4XG0tu3GIjbwJpRvc5 lyezu1+9o/i+gNITbtRvlTX43SyvPpLcvWaNgDn1ktKk30F7cq2v8ZtzFTWEOjng4K4/ 0i2u/z5KZMcQXHFx2rcHF6MoY9uKZmWlH65cDGgt0vQqhA5FCbG/vY9gGwBFCWuNe5Im WQa+6VNqknRNpKQJdsAC3QUTSCzbO+3VflRvXsk5eREvTiA2CiXvR9JlArTFZqHm6lEq 5EVJlWWte2CJWFRAhLMzoa09qq8RywlGBbGGbHfzeV704MsEUaM+zLqrvZV2Xro9k9F2 GsKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784119195; x=1784723995; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=UbwMtvKC1W3XaLMpZ43nboi/b2XlEYyfJjxYGqiGvfo=; b=FsJR/TAZ5POJIQd2S8j+Y8N8WsDUnfkn9pn2N4bKSDLSQh8tfvJ34qvs1HtW/OlGxl 6EfEpRQVJ4cYqa3EkZj6Ao1q7ZWXp5QgQym62NwZsks+5asDUw9giG2tIFyN3Bv5qc+L OVLr4vvgErsi8WYgs+8o1N361Ez48qPmkl4s0oOsrnDxQRJr4PaszPbZqV4keKAX2p+o /MW29MyNEO3A8t7NDGkc5/xCpyzBun+EUZq9bxmiMyx0V6bxpaPGjzBsBYyjsRUSn9zk 3n2cxZh4AHfdF1cGhByEGD7DLqab7JOeiGu3Mq8Be8EOCZzpo0VB9TevnhV1OWtBegJs sOBQ== X-Forwarded-Encrypted: i=1; AHgh+RqndFfQOifP8K4vemq2jDfineJ9fn50Ia6KoezlnIZcttvAzzow1T7maWyVx+5ZsQEVfkJtBGmTeFAV0B8=@vger.kernel.org X-Gm-Message-State: AOJu0YwxhFSTt0IV10L1+2t9JJP1CQWU4jZ+mzFqQILipdMKLpsPTCWJ HDL35Gze8LM3ugkneyg44n64h83lphc//Eu4fwHkgxrKvIxTfz6iXi4E50KLQoKPWtI= X-Gm-Gg: AfdE7ckNtgLv9WzCRxd/rFHOist4moNcswF5NP/U2fbfmM/ZNhXAFL7evXeBmEm8ddU XOnxXi9EwLyk0pBDg+8LiizLuhpWAsJts92D3BS8nuKjq9OIsmkFzrh4Pxp0WvujRzUGQbTpHLl 6AAKYnibiTNAVqTPrWpfHRWsWEeA0+wOrRjKhc7/X9PMYirruiiJooipCpoiiJ0QEY+IpKz6KwR 6qlArLzs2YCsHA9aNiDlT+VJ7AKCcusozC5orYWLcNSCMSehbBT0TLGYx6wdMM+j1K3U4O07JH4 9TyBE85+C1OttOlc15VaVhbSvG32Qdc0vFsrBtoP269vNc9ro+exAWlpduDim5xcQ+GI8P6NwNy Wjgpyjvs0/vd7QXmYUUXbl8uuXQrs1977tqcowPFup9mU+v6PGbwU9yebX/U3wtoNNHwnG+BYct VFo5tx5Vd6nBADZaFm7h9JiQ== X-Received: by 2002:a05:600c:8117:b0:493:fa7d:56a0 with SMTP id 5b1f17b1804b1-4953c15f693mr31569305e9.13.1784119194604; Wed, 15 Jul 2026 05:39:54 -0700 (PDT) Received: from e133063.arm.com ([212.187.182.162]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4953c710facsm32360695e9.2.2026.07.15.05.39.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jul 2026 05:39:54 -0700 (PDT) From: James Clark Date: Wed, 15 Jul 2026 13:39:21 +0100 Subject: [PATCH v3 5/5] tools/build: selftests: Remove some duplicate toolchain definitions Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260715-james-perf-llvm-version-v3-5-8854bfe5af7e@linaro.org> References: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> In-Reply-To: <20260715-james-perf-llvm-version-v3-0-8854bfe5af7e@linaro.org> To: Arnaldo Carvalho de Melo , Namhyung Kim , Ihor Solodrai Cc: Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Eduard Zingerman , Kumar Kartikeya Dwivedi , Martin KaFai Lau , Song Liu , Yonghong Song , Jiri Olsa , Emil Tsalapatis , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Ian Rogers , Adrian Hunter , Shuah Khan , linux-kernel@vger.kernel.org, llvm@lists.linux.dev, bpf@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-kselftest@vger.kernel.org, James Clark X-Mailer: b4 0.14.2 Try to remove some, but not all duplicate toolchain definitions. In these instances, their makefiles already include tools/scripts/Makefile.include which defines these in a consistent way. STRIP is the only one that was set with an '=3D', but I don't think it was significant so that difference can be dropped. Signed-off-by: James Clark --- tools/bpf/resolve_btfids/Makefile | 3 --- tools/lib/api/Makefile | 4 ---- tools/lib/subcmd/Makefile | 4 ---- tools/lib/symbol/Makefile | 4 ---- tools/perf/Makefile.perf | 6 ------ tools/testing/selftests/bpf/Makefile | 1 - 6 files changed, 22 deletions(-) diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/M= akefile index 7672208f65e4bc245c03603634d3aa0093a91096..6fdb6302e0a28e9166175822f42= cfbb4f4eb24e5 100644 --- a/tools/bpf/resolve_btfids/Makefile +++ b/tools/bpf/resolve_btfids/Makefile @@ -20,9 +20,6 @@ HOST_OVERRIDES :=3D AR=3D"$(HOSTAR)" CC=3D"$(HOSTCC)" LD= =3D"$(HOSTLD)" ARCH=3D"$(HOSTARCH) CROSS_COMPILE=3D"" CLANG_CROSS_FLAGS=3D"" EXTRA_CFLAGS=3D"$(HOSTCFLAGS= )" =20 RM ?=3D rm -HOSTCC ?=3D gcc -HOSTLD ?=3D ld -HOSTAR ?=3D ar HOSTPKG_CONFIG ?=3D pkg-config CROSS_COMPILE =3D =20 diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile index 8665c799e0fa7155016e8bc6968ebe76a90e1d13..a228fdb5adba8d7f8282688964a= 9751a06cb0c79 100644 --- a/tools/lib/api/Makefile +++ b/tools/lib/api/Makefile @@ -9,10 +9,6 @@ srctree :=3D $(patsubst %/,%,$(dir $(srctree))) #$(info Determined 'srctree' to be $(srctree)) endif =20 -CC ?=3D $(CROSS_COMPILE)gcc -AR ?=3D $(CROSS_COMPILE)ar -LD ?=3D $(CROSS_COMPILE)ld - MAKEFLAGS +=3D --no-print-directory =20 INSTALL =3D install diff --git a/tools/lib/subcmd/Makefile b/tools/lib/subcmd/Makefile index 8703ab487b68c89406fed575217b57f58e71fb01..9f1ddcf0504d993249991e0af45= 89db1072465d1 100644 --- a/tools/lib/subcmd/Makefile +++ b/tools/lib/subcmd/Makefile @@ -9,10 +9,6 @@ srctree :=3D $(patsubst %/,%,$(dir $(srctree))) #$(info Determined 'srctree' to be $(srctree)) endif =20 -CC ?=3D $(CROSS_COMPILE)gcc -LD ?=3D $(CROSS_COMPILE)ld -AR ?=3D $(CROSS_COMPILE)ar - RM =3D rm -f =20 MAKEFLAGS +=3D --no-print-directory diff --git a/tools/lib/symbol/Makefile b/tools/lib/symbol/Makefile index 426b845edfaccf56f7c246c281a549c18d0f3919..d692abe8add6e243d7b024fe556= cc0983eb4b443 100644 --- a/tools/lib/symbol/Makefile +++ b/tools/lib/symbol/Makefile @@ -9,10 +9,6 @@ srctree :=3D $(patsubst %/,%,$(dir $(srctree))) #$(info Determined 'srctree' to be $(srctree)) endif =20 -CC ?=3D $(CROSS_COMPILE)gcc -AR ?=3D $(CROSS_COMPILE)ar -LD ?=3D $(CROSS_COMPILE)ld - MAKEFLAGS +=3D --no-print-directory =20 INSTALL =3D install diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 4d0d7ae02e06b117487a17691c4e62a138428ac5..ca67d4b6fc38367c63123332360= ccf27102fc086 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -174,11 +174,6 @@ endef =20 LD +=3D $(EXTRA_LDFLAGS) =20 -HOSTCC ?=3D gcc -HOSTLD ?=3D ld -HOSTAR ?=3D ar -CLANG ?=3D clang - # Some distros provide the command $(CROSS_COMPILE)pkg-config for # searching packges installed with Multiarch. Use it for cross # compilation if it is existed. @@ -213,7 +208,6 @@ FIND =3D find INSTALL =3D install FLEX ?=3D flex BISON ?=3D bison -STRIP =3D strip AWK =3D awk =20 # include Makefile.config by default and rule out diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index d829979861eeabd33272a0d6eca82e7066eabfd7..49477b03a4607c0c44cf94412d5= f75af75c3a766 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -3,7 +3,6 @@ include ../../../build/Build.include include ../../../scripts/Makefile.arch include ../../../scripts/Makefile.include =20 -CXX ?=3D $(CROSS_COMPILE)g++ OBJCOPY ?=3D $(CROSS_COMPILE)objcopy =20 CURDIR :=3D $(abspath .) --=20 2.34.1