From nobody Tue Dec 23 10:28:19 2025 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (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 7AAF1264A7A for ; Tue, 11 Mar 2025 21:36:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729006; cv=none; b=G7lX+M7n4JVO+IOnh5IMafLdBia7DzpMPd91HuX4/mPAgYvWnigE5SmcAq9iDmqWBz7bYxYF1T1Zt8KZW3KnvDW75Y36G8ayn6Fv0gKoP78FRaa+kdmpTAAGwzqHfcmisb7QWt851ArOj36IgYOIW6poSEYFycpqa8tWSdlMCXs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729006; c=relaxed/simple; bh=wGRplBneEc1rIRRdZMJiQ0Fw8JqUQP1EAzOvCudzAIw=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=jop79m4sKAvE8BTuXaeYoy4MUx6kJiO6ENoSutMU1yStoTVOyB9LjUoG3ceMkKR7onhK/XmGxcTz+PCI49yWviUrswssF0HPqWIMT5SEjw+fgLrv+EZ6fvMnvc4RogjUQOUq8EAxYi5NFwtfrIriIwfMS6xnYUvlyc/mIUC2T/0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=ezp/DxVA; arc=none smtp.client-ip=209.85.219.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="ezp/DxVA" Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-e572f6dee18so8507692276.0 for ; Tue, 11 Mar 2025 14:36:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741729003; x=1742333803; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=2cDMG93hxPUKXZ7cLkWYorGVfJKpRaqSUmDH4zrnk9A=; b=ezp/DxVAj9Iwo7Wft0119uEysxdHgUA+xb3T0a8ZAIHYyDo07B/PQ3QZGYZY/ON53a eHuDsylj0zivr2PDxM02eM6l2Q8JjCWsSds76bSdqxHvsC0MniG8OvqsGUZWNOX7DCdu TxNP/pf4wca0zL1T4cToUaJSa3emcLNL/vAkkB+HbNwd63h+AwLfg9XbVYWpJr4pkWsd WOnC0hwbyQZT9q2rf6PINcDlezufsOe6HLGEw2Uqh+ZUbUlKYkhSbgkyW1pDOA3yWhCh pTJ3cGYhIT7y3Vlll3fH4PB7aT1UfCK/o3DtAdX/w9ujg8S6FZO3tKL7+6O6xaCkJBAw bt9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741729003; x=1742333803; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2cDMG93hxPUKXZ7cLkWYorGVfJKpRaqSUmDH4zrnk9A=; b=ucwnigo1XNqL3P4jLzu24lLgk9z9HohzjE5v5LKW0zlaMsxLRABqdjd8tv05bdBxWs lzt2CMAVymCKPpWfRSgIqskjy9pKdSdCJF4P6p4uoJoQPHfhBLMZ0m0yU6O1r1bxulns 4dHu/404Dat7vss16BYuHIUBdkc18JDpg1Rca9RAm9JLx7YQwFuI6wouFB6B2gAVQG54 AMhVekzDzXl3e7Ym1B5J+Il1WwpGQfMYGDADCXRVOblUu/KRfSX7Ly6lcqWWMsQL9Cyk gBXMmrXBRrnJCqX9jUg0Tp96TSXL2/PDGAZSmYpyu7srO4xk3BdaSR4u8KxabN8z3fCr dLBw== X-Forwarded-Encrypted: i=1; AJvYcCXGTYT+C6iJPfSxvrmzEdZPBgVj5s0+mS+pguj6atTE4ob0MNWwkDKBRQkcfEG/61qScLtDDKQEOIaWtC8=@vger.kernel.org X-Gm-Message-State: AOJu0YwzltrMbOcX+8dTU3lizmhqKA/+LA72GVo16wI4iAFEfo3SGlgB R1SByqUkwQ54+WiBLxJ8LxIzm2o4iBv2/bw8a9lSLUefJ23+gpdK+IYeyZ39jWKsusLJakxMgAT +GQbXnw== X-Google-Smtp-Source: AGHT+IEiOPSjPvcxng/rOefKJ2Ly70BAOiBxBmrwoe/2mKuAHw/kJPRmtJWO7sdKvqU40lKe9m72eTkVulcl X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:8bc2:942f:1b93:42dd]) (user=irogers job=sendgmr) by 2002:a25:2d04:0:b0:e60:b036:664e with SMTP id 3f1490d57ef6-e63b517afadmr35491276.3.1741729002756; Tue, 11 Mar 2025 14:36:42 -0700 (PDT) Date: Tue, 11 Mar 2025 14:36:23 -0700 In-Reply-To: <20250311213628.569562-1-irogers@google.com> Message-Id: <20250311213628.569562-2-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250311213628.569562-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.rc0.332.g42c0ae87b1-goog Subject: [PATCH v2 1/6] tools/build: Don't pass test log files to linker From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , James Clark , Charlie Jenkins , John Garry , Veronika Molnarova , "Masami Hiramatsu (Google)" , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Separate test log files from object files. Depend on test log output but don't pass to the linker. Reviewed-by: James Clark Signed-off-by: Ian Rogers --- tools/build/Makefile.build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/build/Makefile.build b/tools/build/Makefile.build index e710ed67a1b4..3584ff308607 100644 --- a/tools/build/Makefile.build +++ b/tools/build/Makefile.build @@ -129,6 +129,10 @@ objprefix :=3D $(subst ./,,$(OUTPUT)$(dir)/) obj-y :=3D $(addprefix $(objprefix),$(obj-y)) subdir-obj-y :=3D $(addprefix $(objprefix),$(subdir-obj-y)) =20 +# Separate out test log files from real build objects. +test-y :=3D $(filter %_log, $(obj-y)) +obj-y :=3D $(filter-out %_log, $(obj-y)) + # Final '$(obj)-in.o' object in-target :=3D $(objprefix)$(obj)-in.o =20 @@ -139,7 +143,7 @@ $(subdir-y): =20 $(sort $(subdir-obj-y)): $(subdir-y) ; =20 -$(in-target): $(obj-y) FORCE +$(in-target): $(obj-y) $(test-y) FORCE $(call rule_mkdir) $(call if_changed,$(host)ld_multi) =20 --=20 2.49.0.rc0.332.g42c0ae87b1-goog From nobody Tue Dec 23 10:28:19 2025 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (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 85790264F99 for ; Tue, 11 Mar 2025 21:36:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729008; cv=none; b=JPYAceWK7kgLUfHVMRpu6bkbyX4cmf2C4PBAmeBrL3aBK12Y0OpCupZCTplkc8LBA4/T9hSkkYS3qRmlLh8R5s5etJQeXDlzELzZrlDIZDgEWhwuAhmyawXoogUuAG22l7VadFgRcSnVfJM1iZMDo3p0Id5hxhFPbhMLgvLMTNo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729008; c=relaxed/simple; bh=abWTkuhBxJ+RVd19Eh1BA2MT3QnNIrohi8wQGbUI7kM=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=ceS0UdiVtCF9RRuUHvKiIEvZfSsyyF50cyrulTlkbxYz7vnsJldnmcoG7SCNmboxkjLBq07RgozJiDUVk86/OpbtPwk5M4haBtbEHB0KPSvbwth7TnD3ko/qC9Z+TUgvgNEE5f0F+HpMHmF1t8xbsvn9tj2cMHxihJZVqQjD26s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=WWcNHni6; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="WWcNHni6" Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-6ef85037f3bso3866607b3.1 for ; Tue, 11 Mar 2025 14:36:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741729005; x=1742333805; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=Zhf6VKyWwg1fHz/o1/UiVpPWROjzR4aN8f2BVl2+a3M=; b=WWcNHni6DpUagayiSoDQP2bJb6dxexHdkNuJczRawSOvVQ1WjgGFEBq/ZjSY2iZQlt 5gRcbatCZVrqqoZIbkQrCbXQMgFIrY9sVSbneWhelC9APCROoPrMW7pOO2i4W9NY2BMx iM1g2fJsbqQBUsFGTegym4B8Tp0P7iuTJeZ8g/Qgt9xNlfeY+0iwGMV7rGEjd7iGp4EL wwGLBHvMmFpRQPJbmWyrmyA3kTZ45IVIAOlIiIbtDm2f+8GtYQxtySd7I9czL9lNpEBq WMnzfP15lcU+XB6wW6KIsdIub061qkgEDiPK78deHslsGDrK0R/P5OIfrnwTV1iSVfIc WxJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741729005; x=1742333805; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Zhf6VKyWwg1fHz/o1/UiVpPWROjzR4aN8f2BVl2+a3M=; b=ScLZKwrfabxS5KZhYsgnk96okktdURMxnDi0uUQHTJojyliFoILW8NvIfe5ojj3fyS OyR44Y0L2MwLBN4bKjN8XETbEO8yynSjcP1Nk2PQ01JdWNnt2O583CJ0udxxcqP1zQmn l+mR3yuDFIOFAo/C3e19IjSKdawEDzyUJVSBrUWm/f/UaY+JeRu6jYyqbBzR+JX4XpoE I1VLyCebWHHAUi2YCijj/aB0AAYLq07yDhAm2XTp4/iorhf6w7Hjfe0UfOsm8rDCumqR v+1YAQq1Mzm9t3tNz0DH/h8YZDey3C8DcoVueHcHF6tiI99GblGr333c9JbKImjuEAOs LW4w== X-Forwarded-Encrypted: i=1; AJvYcCVH2JlFH4A2qy+73CpZJBt+6suBmgiwemBhOzIb6o6b92kTA0NncActmIJZq5skGhLnDvJ/pJMkpzzJq1k=@vger.kernel.org X-Gm-Message-State: AOJu0YwDyoqZXd4DQSfHRT3zq7v7ZL6o0An6/GK9fx31TFutEc9CFYZg 5cfOhitf5ZC3pm0+FKM5RoEpGeUSZvkpgt0IkJDy9cf5af+NrY3kxjOTPrnjzAXXQ/OBdggpPKi tI7hn/A== X-Google-Smtp-Source: AGHT+IG1pfnr1R733TYv83i5t8vnjGZeDgbpUt+WgmLmzXitw/Fu6ze/SYEveIc2o+h4jjDKLa3FhXsxiZqM X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:8bc2:942f:1b93:42dd]) (user=irogers job=sendgmr) by 2002:a25:abe9:0:b0:e60:90e0:fa83 with SMTP id 3f1490d57ef6-e63b5111fa5mr410524276.1.1741729005534; Tue, 11 Mar 2025 14:36:45 -0700 (PDT) Date: Tue, 11 Mar 2025 14:36:24 -0700 In-Reply-To: <20250311213628.569562-1-irogers@google.com> Message-Id: <20250311213628.569562-3-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250311213628.569562-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.rc0.332.g42c0ae87b1-goog Subject: [PATCH v2 2/6] perf build: Rename TEST_LOGS to SHELL_TEST_LOGS From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , James Clark , Charlie Jenkins , John Garry , Veronika Molnarova , "Masami Hiramatsu (Google)" , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rename TEST_LOGS to SHELL_TEST_LOGS as later changes will add more kinds of test logs. Minor comment tweak in Makefile.perf as more than just test shell tests are checked. Reviewed-by: James Clark Signed-off-by: Ian Rogers --- tools/perf/Build | 6 +++--- tools/perf/Makefile.perf | 2 +- tools/perf/arch/x86/Build | 6 +++--- tools/perf/arch/x86/tests/Build | 6 +++--- tools/perf/tests/Build | 6 +++--- tools/perf/trace/beauty/Build | 6 +++--- tools/perf/util/Build | 6 +++--- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/tools/perf/Build b/tools/perf/Build index 3e486f7df94b..5e385f370dd7 100644 --- a/tools/perf/Build +++ b/tools/perf/Build @@ -65,14 +65,14 @@ gtk-y +=3D ui/gtk/ =20 ifdef SHELLCHECK SHELL_TESTS :=3D $(wildcard *.sh) - TEST_LOGS :=3D $(SHELL_TESTS:%=3D%.shellcheck_log) + SHELL_TEST_LOGS :=3D $(SHELL_TESTS:%=3D%.shellcheck_log) else SHELL_TESTS :=3D - TEST_LOGS :=3D + SHELL_TEST_LOGS :=3D endif =20 $(OUTPUT)%.shellcheck_log: % $(call rule_mkdir) $(Q)$(call echo-cmd,test)shellcheck -s bash -a -S warning "$<" > $@ || (c= at $@ && rm $@ && false) =20 -perf-y +=3D $(TEST_LOGS) +perf-y +=3D $(SHELL_TEST_LOGS) diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index d0b50ccc9d7b..aebdf317afcc 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -289,7 +289,7 @@ else force_fixdep :=3D $(config) endif =20 -# Runs shellcheck on perf test shell scripts +# Runs shellcheck on perf shell scripts ifeq ($(NO_SHELLCHECK),1) SHELLCHECK :=3D else diff --git a/tools/perf/arch/x86/Build b/tools/perf/arch/x86/Build index 02a1ca780a20..afae7b8f6bd6 100644 --- a/tools/perf/arch/x86/Build +++ b/tools/perf/arch/x86/Build @@ -2,14 +2,14 @@ perf-util-y +=3D util/ perf-test-y +=3D tests/ =20 ifdef SHELLCHECK - TEST_LOGS :=3D $(SHELL_TESTS:%=3D%.shellcheck_log) + SHELL_TEST_LOGS :=3D $(SHELL_TESTS:%=3D%.shellcheck_log) else SHELL_TESTS :=3D - TEST_LOGS :=3D + SHELL_TEST_LOGS :=3D endif =20 $(OUTPUT)%.shellcheck_log: % $(call rule_mkdir) $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ &&= rm $@ && false) =20 -perf-test-y +=3D $(TEST_LOGS) +perf-test-y +=3D $(SHELL_TEST_LOGS) diff --git a/tools/perf/arch/x86/tests/Build b/tools/perf/arch/x86/tests/Bu= ild index 3227053f3355..86262c720857 100644 --- a/tools/perf/arch/x86/tests/Build +++ b/tools/perf/arch/x86/tests/Build @@ -13,14 +13,14 @@ perf-test-y +=3D amd-ibs-via-core-pmu.o =20 ifdef SHELLCHECK SHELL_TESTS :=3D gen-insn-x86-dat.sh - TEST_LOGS :=3D $(SHELL_TESTS:%=3D%.shellcheck_log) + SHELL_TEST_LOGS :=3D $(SHELL_TESTS:%=3D%.shellcheck_log) else SHELL_TESTS :=3D - TEST_LOGS :=3D + SHELL_TEST_LOGS :=3D endif =20 $(OUTPUT)%.shellcheck_log: % $(call rule_mkdir) $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ &&= rm $@ && false) =20 -perf-test-y +=3D $(TEST_LOGS) +perf-test-y +=3D $(SHELL_TEST_LOGS) diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build index 4bf8d3f5eae7..5b4b7a3825fd 100644 --- a/tools/perf/tests/Build +++ b/tools/perf/tests/Build @@ -80,14 +80,14 @@ perf-test-y +=3D workloads/ =20 ifdef SHELLCHECK SHELL_TESTS :=3D $(shell find tests/shell -executable -type f -name '*.s= h') - TEST_LOGS :=3D $(SHELL_TESTS:tests/shell/%=3Dshell/%.shellcheck_log) + SHELL_TEST_LOGS :=3D $(SHELL_TESTS:tests/shell/%=3Dshell/%.shellcheck_lo= g) else SHELL_TESTS :=3D - TEST_LOGS :=3D + SHELL_TEST_LOGS :=3D endif =20 $(OUTPUT)%.shellcheck_log: % $(call rule_mkdir) $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ &&= rm $@ && false) =20 -perf-test-y +=3D $(TEST_LOGS) +perf-test-y +=3D $(SHELL_TEST_LOGS) diff --git a/tools/perf/trace/beauty/Build b/tools/perf/trace/beauty/Build index cb3c1399ff40..f50ebdc445b8 100644 --- a/tools/perf/trace/beauty/Build +++ b/tools/perf/trace/beauty/Build @@ -23,14 +23,14 @@ perf-y +=3D tracepoints/ =20 ifdef SHELLCHECK SHELL_TESTS :=3D $(wildcard trace/beauty/*.sh) - TEST_LOGS :=3D $(SHELL_TESTS:trace/beauty/%=3D%.shellcheck_log) + SHELL_TEST_LOGS :=3D $(SHELL_TESTS:trace/beauty/%=3D%.shellcheck_log) else SHELL_TESTS :=3D - TEST_LOGS :=3D + SHELL_TEST_LOGS :=3D endif =20 $(OUTPUT)%.shellcheck_log: % $(call rule_mkdir) $(Q)$(call echo-cmd,test)shellcheck -s bash -a -S warning "$<" > $@ || (c= at $@ && rm $@ && false) =20 -perf-y +=3D $(TEST_LOGS) +perf-y +=3D $(SHELL_TEST_LOGS) diff --git a/tools/perf/util/Build b/tools/perf/util/Build index 034a6603d5a8..fd595454766e 100644 --- a/tools/perf/util/Build +++ b/tools/perf/util/Build @@ -406,14 +406,14 @@ $(OUTPUT)util/list_sort.o: ../lib/list_sort.c FORCE =20 ifdef SHELLCHECK SHELL_TESTS :=3D generate-cmdlist.sh - TEST_LOGS :=3D $(SHELL_TESTS:%=3D%.shellcheck_log) + SHELL_TEST_LOGS :=3D $(SHELL_TESTS:%=3D%.shellcheck_log) else SHELL_TESTS :=3D - TEST_LOGS :=3D + SHELL_TEST_LOGS :=3D endif =20 $(OUTPUT)%.shellcheck_log: % $(call rule_mkdir) $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ &&= rm $@ && false) =20 -perf-util-y +=3D $(TEST_LOGS) +perf-util-y +=3D $(SHELL_TEST_LOGS) --=20 2.49.0.rc0.332.g42c0ae87b1-goog From nobody Tue Dec 23 10:28:19 2025 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (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 3562715820C for ; Tue, 11 Mar 2025 21:36:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729010; cv=none; b=Ck3s4L41F6HBqpBPiqWuWDtBM73BjsmPfC0/AbjbghGNBqpOAxZjNHaBdwpxgsLaDR5QIx5YvZCvoZhX1KjxOKidTLYRCr/mYog92olLY576OuTtoLFThPRkcCkYl51tOJaHPL+z4C4p+k31vZ2+H86IH00l2HXnIOc5Yfmf9bk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729010; c=relaxed/simple; bh=oyu8lw9K/26NHvHUSulTIqzjOCPRQJ1LifG2wGMOKOk=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=YLXwgsIXGH1uawVhukukYz0my6WrvtQFOtMq1IuhSrOFF/QXERzzxqC0bnF9mA4+/ZAt3XNrLk5XIaiC1MuQ6WZXlOyMpVCfi7nBD6JRQV1jy+LkzfxXsDub6pmLlGYXXuXVtmX/nVNEfaj71+LoQVEVdnIkqMds+z2UnItXd/I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=0+2SzjeY; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="0+2SzjeY" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-6fcfa304ef4so4446567b3.0 for ; Tue, 11 Mar 2025 14:36:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741729008; x=1742333808; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=xogXU6Og8ryJY6/dwJTkee5oWdKRrgoK8k4Hjzq9iqc=; b=0+2SzjeYBFahRYHsKchVCdsnrjwO52AYU9NgdmcHbouZf1/azLPk+sZAgEQmYxVamD 33wp6VGA0AKuU8R/FDSdZsDUU6eqd9ni+oyUDNaBBdMZAHo/UXAB5+eaYq2iK4LeGZeN ikOhA/M6AaH2gFi/bzBSS50WPW1Sok6c7jlDacGwZTc+hGSF5oxcRQ3sWuDRTMgRhhPR pX+Bk8HGhaj8+s6sg6tN1xtarRc79GGfINjw4wqfVajfxX0VNzuX0KDW1PXQ6imB2D0u 1toVt048ZWfuLPO8yUZeztFm17ECv/860lrUVJi2WXEeD+twLl/BtJOpI4JnWW7T6FzC FdFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741729008; x=1742333808; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=xogXU6Og8ryJY6/dwJTkee5oWdKRrgoK8k4Hjzq9iqc=; b=jfrO/3OkDbyFX9ajEGTiDkqjJR9UPs0GmBxWUOyt/eRKjgn4Np4sXhGk2KecpAmamc XiAxevZ6zcHq65l7B+mHD2as0WnjmNt8hqH5XCHZlWbKa80R5T1XE0Zj5fdfdWZJS3Vh Osff5FWf90Dn1Y8R46Ezxew5XRWP5PvOnn8lLrhzXVGmJmTlZuvn4HreihjYC8iOdeJN NDrhhzUyapDx+CPwznJkE0EvMD0x2FkbeuUneFSa7JoDFL83RC5CDXFsCBtgg17HHD8S 6dnCe4+79y7YIYo2qUQPrcF/LAc8yYfcJYX74qnWMtnbXn2/CJhc8AUyLm1dEWyZxVtn xJuw== X-Forwarded-Encrypted: i=1; AJvYcCUDSvcSHqo+Xk/xLHTcrobEPV4JrlTG+Z17gW2lmF5W+GdAZj0cqolqYNZIa7rhLa/TCFkci5cKcKNJw/c=@vger.kernel.org X-Gm-Message-State: AOJu0YxJxulD4eBMpQSqzEnTu9TRRFj6+eK2ZoHQsTK+KuXbj1dUhp+B SW7dfsli+q1U8AwhE2myDRtCOBpI+VCf29cy6OzUWo4m+Os+7jzAM+cix/tc2b1cK0TGPLSViSQ wQj3khg== X-Google-Smtp-Source: AGHT+IFpNpLqO6N7avVB4iTUdP7MEq+rMgk+d6OC8QKIeW5YDFyDKq7mUCUwtdx57HqFJb2wkQgHhmnYDKeI X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:8bc2:942f:1b93:42dd]) (user=irogers job=sendgmr) by 2002:a81:be0e:0:b0:6fe:ccb5:1dbd with SMTP id 00721157ae682-6ff0a3f00d3mr5279137b3.5.1741729007828; Tue, 11 Mar 2025 14:36:47 -0700 (PDT) Date: Tue, 11 Mar 2025 14:36:25 -0700 In-Reply-To: <20250311213628.569562-1-irogers@google.com> Message-Id: <20250311213628.569562-4-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250311213628.569562-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.rc0.332.g42c0ae87b1-goog Subject: [PATCH v2 3/6] perf build: Add mypy build tests From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , James Clark , Charlie Jenkins , John Garry , Veronika Molnarova , "Masami Hiramatsu (Google)" , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If MYPY=3D1 is passed to the build then run mypy over python code in perf. Unlike shellcheck this isn't default on as there are currently too many errors. An example of an error: ``` util/setup.py:8: error: Item "None" of "str | None" has no attribute "split= " [union-attr] util/setup.py:15: error: Item "None" of "IO[bytes] | None" has no attribute= "readline" [union-attr] util/setup.py:15: error: List item 0 has incompatible type "str | None"; ex= pected "str | bytes | PathLike[str] | PathLike[bytes]" [list-item] util/setup.py:16: error: Unsupported left operand type for + ("None") [ope= rator] util/setup.py:16: note: Left operand is of type "str | None" util/setup.py:74: error: Unsupported left operand type for + ("None") [ope= rator] util/setup.py:74: note: Left operand is of type "str | None" Found 5 errors in 1 file (checked 1 source file) make[4]: *** [util/Build:430: util/setup.py.mypy_log] Error 1 ``` Reviewed-by: James Clark Signed-off-by: Ian Rogers --- tools/perf/Build | 13 +++++++++++++ tools/perf/Makefile.perf | 7 ++++++- tools/perf/pmu-events/Build | 14 +++++++++++++- tools/perf/scripts/Build | 13 +++++++++++++ tools/perf/tests/Build | 13 +++++++++++++ tools/perf/util/Build | 13 +++++++++++++ 6 files changed, 71 insertions(+), 2 deletions(-) diff --git a/tools/perf/Build b/tools/perf/Build index 5e385f370dd7..312914994c89 100644 --- a/tools/perf/Build +++ b/tools/perf/Build @@ -76,3 +76,16 @@ $(OUTPUT)%.shellcheck_log: % $(Q)$(call echo-cmd,test)shellcheck -s bash -a -S warning "$<" > $@ || (c= at $@ && rm $@ && false) =20 perf-y +=3D $(SHELL_TEST_LOGS) + +ifdef MYPY + PY_TESTS :=3D $(shell find python -type f -name '*.py') + MYPY_TEST_LOGS :=3D $(PY_TESTS:python/%=3Dpython/%.mypy_log) +else + MYPY_TEST_LOGS :=3D +endif + +$(OUTPUT)%.mypy_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) + +perf-y +=3D $(MYPY_TEST_LOGS) diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index aebdf317afcc..c773f0dd8226 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -306,8 +306,13 @@ ifneq ($(SHELLCHECK),) endif endif =20 +# Runs mypy on perf python files +ifeq ($(MYPY),1) + MYPY :=3D $(shell which mypy 2> /dev/null) +endif + export srctree OUTPUT RM CC CXX LD AR CFLAGS CXXFLAGS V BISON FLEX AWK -export HOSTCC HOSTLD HOSTAR HOSTCFLAGS SHELLCHECK +export HOSTCC HOSTLD HOSTAR HOSTCFLAGS SHELLCHECK MYPY =20 include $(srctree)/tools/build/Makefile.include =20 diff --git a/tools/perf/pmu-events/Build b/tools/perf/pmu-events/Build index d941bc9d16e9..fc1dc810ffb6 100644 --- a/tools/perf/pmu-events/Build +++ b/tools/perf/pmu-events/Build @@ -41,7 +41,19 @@ $(EMPTY_PMU_EVENTS_TEST_LOG): $(EMPTY_PMU_EVENTS_C) $(TE= ST_EMPTY_PMU_EVENTS_C) $(call rule_mkdir) $(Q)$(call echo-cmd,test)diff -u $^ 2> $@ || (cat $@ && false) =20 -$(PMU_EVENTS_C): $(JSON) $(JSON_TEST) $(JEVENTS_PY) $(METRIC_PY) $(METRIC_= TEST_LOG) $(EMPTY_PMU_EVENTS_TEST_LOG) +ifdef MYPY + PMU_EVENTS_PY_TESTS :=3D $(wildcard *.py) + PMU_EVENTS_MYPY_TEST_LOGS :=3D $(JEVENTS_PY_TESTS:%=3D%.mypy_log) +else + PMU_EVENTS_MYPY_TEST_LOGS :=3D +endif + +$(OUTPUT)%.mypy_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) + +$(PMU_EVENTS_C): $(JSON) $(JSON_TEST) $(JEVENTS_PY) $(METRIC_PY) $(METRIC_= TEST_LOG) \ + $(EMPTY_PMU_EVENTS_TEST_LOG) $(PMU_EVENTS_MYPY_TEST_LOGS) $(call rule_mkdir) $(Q)$(call echo-cmd,gen)$(PYTHON) $(JEVENTS_PY) $(JEVENTS_ARCH) $(JEVENTS= _MODEL) pmu-events/arch $@ endif diff --git a/tools/perf/scripts/Build b/tools/perf/scripts/Build index 46f0c6f76dbf..a5350dc6ac50 100644 --- a/tools/perf/scripts/Build +++ b/tools/perf/scripts/Build @@ -2,3 +2,16 @@ ifeq ($(CONFIG_LIBTRACEEVENT),y) perf-util-$(CONFIG_LIBPERL) +=3D perl/Perf-Trace-Util/ endif perf-util-$(CONFIG_LIBPYTHON) +=3D python/Perf-Trace-Util/ + +ifdef MYPY + PY_TESTS :=3D $(shell find python -type f -name '*.py') + MYPY_TEST_LOGS :=3D $(PY_TESTS:python/%=3Dpython/%.mypy_log) +else + MYPY_TEST_LOGS :=3D +endif + +$(OUTPUT)%.mypy_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) + +perf-y +=3D $(MYPY_TEST_LOGS) diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build index 5b4b7a3825fd..0d4af485bf55 100644 --- a/tools/perf/tests/Build +++ b/tools/perf/tests/Build @@ -91,3 +91,16 @@ $(OUTPUT)%.shellcheck_log: % $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ &&= rm $@ && false) =20 perf-test-y +=3D $(SHELL_TEST_LOGS) + +ifdef MYPY + PY_TESTS :=3D $(shell find tests/shell -type f -name '*.py') + MYPY_TEST_LOGS :=3D $(PY_TESTS:tests/shell/%=3Dshell/%.mypy_log) +else + MYPY_TEST_LOGS :=3D +endif + +$(OUTPUT)%.mypy_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) + +perf-test-y +=3D $(MYPY_TEST_LOGS) diff --git a/tools/perf/util/Build b/tools/perf/util/Build index fd595454766e..583f425713eb 100644 --- a/tools/perf/util/Build +++ b/tools/perf/util/Build @@ -417,3 +417,16 @@ $(OUTPUT)%.shellcheck_log: % $(Q)$(call echo-cmd,test)shellcheck -a -S warning "$<" > $@ || (cat $@ &&= rm $@ && false) =20 perf-util-y +=3D $(SHELL_TEST_LOGS) + +PY_TESTS :=3D setup.py +ifdef MYPY + MYPY_TEST_LOGS :=3D $(PY_TESTS:%=3D%.mypy_log) +else + MYPY_TEST_LOGS :=3D +endif + +$(OUTPUT)%.mypy_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) + +perf-util-y +=3D $(MYPY_TEST_LOGS) --=20 2.49.0.rc0.332.g42c0ae87b1-goog From nobody Tue Dec 23 10:28:19 2025 Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) (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 8F5EF26561B for ; Tue, 11 Mar 2025 21:36:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729013; cv=none; b=Ox24sgXa8WJZlGsxY2ieFbYmBgGoMGDl1nix/dTr4cTEAhegjRbc5+4nShfl/2nEVMggBJfAqamzRGSqhMKsZgwNM6OC2+kLcqEYCu0jNRga/4CFnb8aUgPx5zbnBd/eTWcjZFHrVoxmQMCxIj8jLy4dzjlhe0Kp5tXh0l7+FEE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729013; c=relaxed/simple; bh=prFPYctpMfMxXw8YsBRXlFw6WjUGqFtw2PRPkyMQJC8=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=jWVEwpPvo/t2kBb14rIt6FTQr84XEBb8KqSYAFWIxtvW9NP5MNxt0O6L4dm2oSIzfsgYE/MT7eZ9Y9+lI+5SQ6LG6I0tnjI7UepczZiHK9MZrcmBqEWVADcSHAcfdpbCwXf9IR3pRuMHPpNHPRx2Q+9zX1tR/Aj+33SQNEo7Gtc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=07Z0mbgx; arc=none smtp.client-ip=209.85.219.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="07Z0mbgx" Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-e54cb50c3baso501329276.0 for ; Tue, 11 Mar 2025 14:36:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741729010; x=1742333810; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=7leD7T+ctFgDCp3PQfIKE2njcEEfQzDszwWeOPPtNYs=; b=07Z0mbgxmy4vqF7BT+8eZAcRoqSnJC0+dchw+0ClKd1AqspHCdJ3hyce5zjC2hCQ23 Jgc9sD9eNUHi2Al+JoJhmuWP0vKNqPpIl0fQ8ruMIBMOrBzZxyJkUtwTQwTnQpkUnOca JhJOcFZt3KbK4BolvAklJCP8snYk/Q2EOmOSSoQ8YVLHiJy04B1GwIBcitGKa9iDMfGd XNdCywGtzvSEeujDtmVbR/krcTb1lyvjRkgO7jn6nLBLJyS2kT0XwVaU1vrCbci+sAaG OLWaV9DDN/6kPd9BfTUR1zpGKQypblJ6r+b2jBhi79eS6Qkn1JG/u6Q62kpT8tXfFRIH lR/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741729010; x=1742333810; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7leD7T+ctFgDCp3PQfIKE2njcEEfQzDszwWeOPPtNYs=; b=UmDEF+oEW8n9AT09bgckKJUuLXXRlZqxOok6A43L8F53NCb3anJS9dbGJcSG3ia3B2 a51RjIR6R813JQ+vkVs/UkBhZtSiky8CKAjei1MGlJywoKZ2blH9ywzXO5ihVswLxVIh OXboVoIsBf/9Xt995zH13gtW3gAJORU+lmR9+v+grP137eLFV8fBZ8c2uZbU0b11heH7 LvPl93RdXugPyMRNwy8Sndh+jLyBPHXUYjUYpdqbFAgmwRRBm0Av5ohR0dIg79iESRFB rpoRUM1ZXxF+CRPRuW69RsSTIXCE0YBP6OIcVd660uv9i91DqbleC1CGxj08ICKac2vU fyCg== X-Forwarded-Encrypted: i=1; AJvYcCUKJnxReADpTU9Vj6QTF7b4BJyjLvj24C24rN/1pCb9LtolPg0kBCpb1cMlmQNjSqop3NtBuxi+yeRMeZw=@vger.kernel.org X-Gm-Message-State: AOJu0YxLKxb0b0BCO3QniNdIgiNOaTuY+hJMBAsI6uOShkVmIxKYFJZa tJE1WPyhUzS5gDum5i+MUMypmu6FCcUo1/ux+h5SsSLwM2usIsBMnkUucn9QsMBRcV5vWcjwqut t+AxSjw== X-Google-Smtp-Source: AGHT+IFeP7v/iSDazRmZSu0vFcSGIP6luGjDf3wXpCxNFnO3naR5HkBjUWpMrt8qh8sR4Voc+6jL30QnFn1j X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:8bc2:942f:1b93:42dd]) (user=irogers job=sendgmr) by 2002:a25:d8c7:0:b0:e63:c634:aded with SMTP id 3f1490d57ef6-e63c634afe7mr23838276.2.1741729010338; Tue, 11 Mar 2025 14:36:50 -0700 (PDT) Date: Tue, 11 Mar 2025 14:36:26 -0700 In-Reply-To: <20250311213628.569562-1-irogers@google.com> Message-Id: <20250311213628.569562-5-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250311213628.569562-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.rc0.332.g42c0ae87b1-goog Subject: [PATCH v2 4/6] perf build: Add pylint build tests From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , James Clark , Charlie Jenkins , John Garry , Veronika Molnarova , "Masami Hiramatsu (Google)" , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If PYLINT=3D1 is passed to the build then run pylint over python code in perf. Unlike shellcheck this isn't default on as there are currently too many errors. An example of an error: ``` ************* Module setup util/setup.py:19:0: C0301: Line too long (127/100) (line-too-long) util/setup.py:20:0: C0301: Line too long (138/100) (line-too-long) util/setup.py:63:0: C0301: Line too long (106/100) (line-too-long) util/setup.py:1:0: C0114: Missing module docstring (missing-module-docstrin= g) util/setup.py:24:4: W0622: Redefining built-in 'vars' (redefined-builtin) util/setup.py:11:4: C0103: Constant name "cc_options" doesn't conform to UP= PER_CASE naming style (invalid-name) util/setup.py:13:4: C0103: Constant name "cc_options" doesn't conform to UP= PER_CASE naming style (invalid-name) util/setup.py:15:34: R1732: Consider using 'with' for resource-allocating o= perations (consider-using-with) util/setup.py:18:0: C0116: Missing function or method docstring (missing-fu= nction-docstring) util/setup.py:19:16: R1732: Consider using 'with' for resource-allocating o= perations (consider-using-with) util/setup.py:44:0: C0413: Import "from setuptools import setup, Extension"= should be placed at the top of the module (wrong-import-position) util/setup.py:46:0: C0413: Import "from setuptools.command.build_ext import= build_ext as _build_ext" should be placed at the top of the module (wrong-= import-position) util/setup.py:47:0: C0413: Import "from setuptools.command.install_lib impo= rt install_lib as _install_lib" should be placed at the top of the module (= wrong-import-position) util/setup.py:49:0: C0115: Missing class docstring (missing-class-docstring) util/setup.py:49:0: C0103: Class name "build_ext" doesn't conform to Pascal= Case naming style (invalid-name) util/setup.py:52:8: W0201: Attribute 'build_lib' defined outside __init__ (= attribute-defined-outside-init) util/setup.py:53:8: W0201: Attribute 'build_temp' defined outside __init__ = (attribute-defined-outside-init) util/setup.py:55:0: C0115: Missing class docstring (missing-class-docstring) util/setup.py:55:0: C0103: Class name "install_lib" doesn't conform to Pasc= alCase naming style (invalid-name) util/setup.py:58:8: W0201: Attribute 'build_dir' defined outside __init__ (= attribute-defined-outside-init) *----------------------------------------------------------------- Your code has been rated at 6.67/10 (previous run: 6.51/10, +0.16) make[4]: *** [util/Build:442: util/setup.py.pylint_log] Error 1 ``` Reviewed-by: James Clark Signed-off-by: Ian Rogers --- tools/perf/Build | 13 +++++++++++++ tools/perf/Makefile.perf | 7 ++++++- tools/perf/pmu-events/Build | 13 ++++++++++++- tools/perf/scripts/Build | 13 +++++++++++++ tools/perf/tests/Build | 13 +++++++++++++ tools/perf/util/Build | 12 ++++++++++++ 6 files changed, 69 insertions(+), 2 deletions(-) diff --git a/tools/perf/Build b/tools/perf/Build index 312914994c89..06107f1e1d42 100644 --- a/tools/perf/Build +++ b/tools/perf/Build @@ -89,3 +89,16 @@ $(OUTPUT)%.mypy_log: % $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) =20 perf-y +=3D $(MYPY_TEST_LOGS) + +ifdef PYLINT + PY_TESTS :=3D $(shell find python -type f -name '*.py') + PYLINT_TEST_LOGS :=3D $(PY_TESTS:python/%=3Dpython/%.pylint_log) +else + PYLINT_TEST_LOGS :=3D +endif + +$(OUTPUT)%.pylint_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)pylint "$<" > $@ || (cat $@ && rm $@ && false) + +perf-y +=3D $(PYLINT_TEST_LOGS) diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index c773f0dd8226..367746e3c9b0 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -311,8 +311,13 @@ ifeq ($(MYPY),1) MYPY :=3D $(shell which mypy 2> /dev/null) endif =20 +# Runs pylint on perf python files +ifeq ($(PYLINT),1) + PYLINT :=3D $(shell which pylint 2> /dev/null) +endif + export srctree OUTPUT RM CC CXX LD AR CFLAGS CXXFLAGS V BISON FLEX AWK -export HOSTCC HOSTLD HOSTAR HOSTCFLAGS SHELLCHECK MYPY +export HOSTCC HOSTLD HOSTAR HOSTCFLAGS SHELLCHECK MYPY PYLINT =20 include $(srctree)/tools/build/Makefile.include =20 diff --git a/tools/perf/pmu-events/Build b/tools/perf/pmu-events/Build index fc1dc810ffb6..32f387d48908 100644 --- a/tools/perf/pmu-events/Build +++ b/tools/perf/pmu-events/Build @@ -52,8 +52,19 @@ $(OUTPUT)%.mypy_log: % $(call rule_mkdir) $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) =20 +ifdef PYLINT + PMU_EVENTS_PY_TESTS :=3D $(wildcard *.py) + PMU_EVENTS_PYLINT_TEST_LOGS :=3D $(JEVENTS_PY_TESTS:%=3D%.pylint_log) +else + PMU_EVENTS_PYLINT_TEST_LOGS :=3D +endif + +$(OUTPUT)%.pylint_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)pylint "$<" > $@ || (cat $@ && rm $@ && false) + $(PMU_EVENTS_C): $(JSON) $(JSON_TEST) $(JEVENTS_PY) $(METRIC_PY) $(METRIC_= TEST_LOG) \ - $(EMPTY_PMU_EVENTS_TEST_LOG) $(PMU_EVENTS_MYPY_TEST_LOGS) + $(EMPTY_PMU_EVENTS_TEST_LOG) $(PMU_EVENTS_MYPY_TEST_LOGS) $(PMU_EVENTS= _PYLINT_TEST_LOGS) $(call rule_mkdir) $(Q)$(call echo-cmd,gen)$(PYTHON) $(JEVENTS_PY) $(JEVENTS_ARCH) $(JEVENTS= _MODEL) pmu-events/arch $@ endif diff --git a/tools/perf/scripts/Build b/tools/perf/scripts/Build index a5350dc6ac50..91229a1fe3ff 100644 --- a/tools/perf/scripts/Build +++ b/tools/perf/scripts/Build @@ -15,3 +15,16 @@ $(OUTPUT)%.mypy_log: % $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) =20 perf-y +=3D $(MYPY_TEST_LOGS) + +ifdef PYLINT + PY_TESTS :=3D $(shell find python -type f -name '*.py') + PYLINT_TEST_LOGS :=3D $(PY_TESTS:python/%=3Dpython/%.pylint_log) +else + PYLINT_TEST_LOGS :=3D +endif + +$(OUTPUT)%.pylint_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)pylint "$<" > $@ || (cat $@ && rm $@ && false) + +perf-y +=3D $(PYLINT_TEST_LOGS) diff --git a/tools/perf/tests/Build b/tools/perf/tests/Build index 0d4af485bf55..934f32090553 100644 --- a/tools/perf/tests/Build +++ b/tools/perf/tests/Build @@ -104,3 +104,16 @@ $(OUTPUT)%.mypy_log: % $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) =20 perf-test-y +=3D $(MYPY_TEST_LOGS) + +ifdef PYLINT + PY_TESTS :=3D $(shell find tests/shell -type f -name '*.py') + PYLINT_TEST_LOGS :=3D $(PY_TESTS:tests/shell/%=3Dshell/%.pylint_log) +else + PYLINT_TEST_LOGS :=3D +endif + +$(OUTPUT)%.pylint_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)pylint "$<" > $@ || (cat $@ && rm $@ && false) + +perf-test-y +=3D $(PYLINT_TEST_LOGS) diff --git a/tools/perf/util/Build b/tools/perf/util/Build index 583f425713eb..946bce6628f3 100644 --- a/tools/perf/util/Build +++ b/tools/perf/util/Build @@ -430,3 +430,15 @@ $(OUTPUT)%.mypy_log: % $(Q)$(call echo-cmd,test)mypy "$<" > $@ || (cat $@ && rm $@ && false) =20 perf-util-y +=3D $(MYPY_TEST_LOGS) + +ifdef PYLINT + PYLINT_TEST_LOGS :=3D $(PY_TESTS:%=3D%.pylint_log) +else + PYLINT_TEST_LOGS :=3D +endif + +$(OUTPUT)%.pylint_log: % + $(call rule_mkdir) + $(Q)$(call echo-cmd,test)pylint "$<" > $@ || (cat $@ && rm $@ && false) + +perf-util-y +=3D $(PYLINT_TEST_LOGS) --=20 2.49.0.rc0.332.g42c0ae87b1-goog From nobody Tue Dec 23 10:28:19 2025 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) (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 D4A5C265CAA for ; Tue, 11 Mar 2025 21:36:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729016; cv=none; b=g6jxO/NE7x0EyDhzlsswpiJudmwB+Nro1R7XwRExXPK13afj84t5kBS9J9bNzqx0HFkVZTsWpf1ooRYN9lCY3eHdEAlOmErfoqJEPgu0X26hLoK6/BoQ440j+gDbnvwBLadW5KS+SLe18VBLXC4P36TbbELZonxE0ZQWrMuhwrM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729016; c=relaxed/simple; bh=H5KlZ/3j12Z08b+bvKiJZqtJDPyp9/HVMV5Qiv4l5dE=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=RE10Z4S1N1oR7j2aLkd65TpuavaqQVGzfZiWstsIE7RtJzX7x3qicy4PewtQtY6rQFFHuS7Qw/iGdxYKZH3J6e4curKrkQN4TuA9d0aG2JmEczQIrRQcWF6p3EjTehkQ9i80Ypn5Ib67Z2CyFe32lj+mReCJSI5zKHPxchY6b8E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=DZWUnlNa; arc=none smtp.client-ip=209.85.128.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="DZWUnlNa" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-6fef68ecc8eso36767837b3.1 for ; Tue, 11 Mar 2025 14:36:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741729013; x=1742333813; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=x49RrI+y8H8e2leJnO29XuD2sUnGFNr6Kwf4AQYViPU=; b=DZWUnlNaCNCquVIc5nwt+bsNrXuNop6icM+/RW3fXmpaqZc28h1t5tCp1RK9cDg5Ee JTLkd4bHpwK3aENDpN1/b/tnsV5GKqTHyGTlLsf5MfetXHzu4rF4pLAbdfFOcRV1lIXF ilJHVXCGMn4HEuwCgsdH4x3pWjh8/Uzp34OrbERfvwjMIDbqi5DNb4eoMF5QuIb9TYCY LOiQeuXggoecva5IloHvrODVEoRXWxQft/ogZ31QRLrFwWMvcO0BUmDJ/ny2tYHT6vCf c7MVcNATPbtrM2slCafZG2uzKQeU9+xMdWaGcK36Zw+dE0qGOfexhRkJXw/k+8GPknFd 7Pnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741729013; x=1742333813; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=x49RrI+y8H8e2leJnO29XuD2sUnGFNr6Kwf4AQYViPU=; b=Zdr0fgDxrNxsgfiFII+rqAOWYA9n8UP182HygYrswaINR6+wBSW3T5MPFQoZ3kvjHG CPZ4bfIQiyblt0uuhhdH0BPPRKb/3EowDcSJzilmYxqr2N2k8iCLQLhBWCV7Ed4eoKzu rl19Bu58iwKv75qMjmNPN6xet8EULsa+e1KBCPBscZ5KgW6ZpIdxMRq/takQjQ8lVErG CKFSyWQF3Ssw4h9b1/7eyfSSP89k3G/7o/d+UBvoNZu81MUYR4YfpLlgHRUoCPC5tSHO 3hrpWnOy1dnM27a7yxu0xRTB8dwfKqGAawaKYlQuiCHhbd8iv00CJIGeO6Snrt2XbpEC 2YMg== X-Forwarded-Encrypted: i=1; AJvYcCWBI1dUAu7ArvPy7hRGmTs5yBQH/Zicpo+K5KICKY8H3kDtgeGdA+t2MfVZHYltvYxNm1cqhn6hAHiV3b0=@vger.kernel.org X-Gm-Message-State: AOJu0Ywt2/YL0RGu/og2qBWthYsld220iWw8+QRJke2MFC+Z8ALChVBG GEeHjy/DxuGkQe1v61O6Z/H6ZNNjJOaRPuXgp1rLinePmM2tpoYHMbUggSSRXxDxrSlCKAGCfXk /HdrdQw== X-Google-Smtp-Source: AGHT+IF707m7mSPSEPJ18g9nVYQMveMRUqzHp/qCqbZlWYKZv4DrdCbj7BwpwXO+5c3lZla+2IjBtWNsAMmF X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:8bc2:942f:1b93:42dd]) (user=irogers job=sendgmr) by 2002:a05:690c:48c5:b0:6fb:45b7:3b41 with SMTP id 00721157ae682-6febef7c8f6mr24077917b3.0.1741729012842; Tue, 11 Mar 2025 14:36:52 -0700 (PDT) Date: Tue, 11 Mar 2025 14:36:27 -0700 In-Reply-To: <20250311213628.569562-1-irogers@google.com> Message-Id: <20250311213628.569562-6-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250311213628.569562-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.rc0.332.g42c0ae87b1-goog Subject: [PATCH v2 5/6] perf test: Address attr.py mypy error From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , James Clark , Charlie Jenkins , John Garry , Veronika Molnarova , "Masami Hiramatsu (Google)" , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" ConfigParser existed in python2 but not in python3 causing mypy to fail. Whilst removing a python2 workaround remove reference to __future__. Reviewed-by: James Clark Signed-off-by: Ian Rogers --- tools/perf/tests/shell/lib/attr.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/tools/perf/tests/shell/lib/attr.py b/tools/perf/tests/shell/li= b/attr.py index 3db9a7d78715..bfccc727d9b2 100644 --- a/tools/perf/tests/shell/lib/attr.py +++ b/tools/perf/tests/shell/lib/attr.py @@ -1,7 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 =20 -from __future__ import print_function - +import configparser import os import sys import glob @@ -13,11 +12,6 @@ import re import shutil import subprocess =20 -try: - import configparser -except ImportError: - import ConfigParser as configparser - def data_equal(a, b): # Allow multiple values in assignment separated by '|' a_list =3D a.split('|') --=20 2.49.0.rc0.332.g42c0ae87b1-goog From nobody Tue Dec 23 10:28:19 2025 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (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 DF36F264A9C for ; Tue, 11 Mar 2025 21:36:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729018; cv=none; b=bGpxaVRWEvRxP2IxO44+wPtz45ek05yytKznDZfONOpxkLEcicDKbRqHNeRaAXd5NUuG/WIzTKdnwF/6NBtWa/Qdun62PWGJwhKX06c45nTsHVe5+pxcVQMwfMGDHy7EvTp+COZyTl2Nxb14otOfuz1nCVsbLgltVrqm76gBqDs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741729018; c=relaxed/simple; bh=mLsQsEIO73xBmM9vsJ3R8Kz8fz9in2ymsfitS/Q+6AY=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=DRL0WNOtL46PWH007SvyHsxzI6acP1ql7D6Z/XRW5ETRwIgiba9NLNB79CXs2Pq35jZEPDGOvRg8jOYkyciRUSvUWCBerwVu1Ym9tgxEOQ/zjqI2tX7hGalsdYBIPHmvBG6nlJ2xYWF2Y+7kOTPWakBF9lrtcgKgpmgJ+Dz2RAQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=TGehfEsA; arc=none smtp.client-ip=209.85.128.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="TGehfEsA" Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-6fef9aaefb9so27066147b3.3 for ; Tue, 11 Mar 2025 14:36:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741729015; x=1742333815; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=f8gu1Di/zUmYbn8tyF2eqH0X4o4XUYppeibtvEPtbgE=; b=TGehfEsA9Kq+0Fcp1R3fkBNA0chl+X+vDjKayC3O1q8ZG0TgxM0M4MLuT6CkJJdHAW wMKGhtSgaaEl2kjj1S0tY0OL8im633QMKy8vCf7jNqhKPVUKJyUHRyCCB+dCWmj2rV2H AJMoCDhZNdVGh9Mi8EHeqsRNsPdWl9cYxh0x1v6gP5KvVEZLY9YLKh34P/LCOyA9BnJP xeg47M/WoGw1C8VXV2/j3wIdnkBGG8Zh0ftP2hkXbTLGaceb9YBFvyUUhSo1zoyXPZrv j/npBb74v+MJlkjoF7FG1vvCgEugrwWSDOy4L0kFWqGiLNeUgfK3msxoxDrJElAwG+YC nbjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741729015; x=1742333815; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=f8gu1Di/zUmYbn8tyF2eqH0X4o4XUYppeibtvEPtbgE=; b=kZXPpb/z/GGFFXmJ4UYJ8sPXFlc6d4IcCGxlMg7FsYt09Tmomw3LKAe0Y23/POVSBL daaWrZOitZgwUX3+uAgSPhD67wBJ4ysa+kPE/cQOytJfDXG4s2cXZx5bfCrFPzCkDryw nadBOBFjCWScnljBkyL2Jmuj7nlDFKe3TPgsaPSLkvxrixCcTVvDKV34s6RvEbqrld2x 5iHmqjyiZtY5kF+tcBINCOhRZU0sPkmVLNGG0bBQAJTU7fbd5oe0iyUL/u/K1u/gtXvg sy1bfaN15CEbSV40wnWh+uMuh2OAb8ctc2TC6q2dLoJD3qAwJZTiYfiqthBarGvk/YBO nRow== X-Forwarded-Encrypted: i=1; AJvYcCURhNdij2TeKXqOmsNXGLv9vNZ8Lj2nSlwq6AKbqtLdBZ2cpiSWxL+yTBVH1nxg8aFGxZgiYOwKAOvJQd4=@vger.kernel.org X-Gm-Message-State: AOJu0YysflYP0LTtcUFkYWrBWlrGMypjl1jU5Ha1aaxwq+nWB+7I3Cqf 0nAicJpY/lr7tgk9lw/Qf7HGLQvc4ih2/CIyd5omKerFrGlf5FJQWKN/+HiiccKn6SuGcvNIzAl niTjt5Q== X-Google-Smtp-Source: AGHT+IEz+LFN4quqaR5VAHqEapOidJstD7y2hXW/NZNzazTPdcKioSLliqOChxoYmOm5OavNY12rjDD6Xthq X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:8bc2:942f:1b93:42dd]) (user=irogers job=sendgmr) by 2002:a25:2651:0:b0:e63:7636:bedd with SMTP id 3f1490d57ef6-e637636c624mr1408256276.9.1741729014879; Tue, 11 Mar 2025 14:36:54 -0700 (PDT) Date: Tue, 11 Mar 2025 14:36:28 -0700 In-Reply-To: <20250311213628.569562-1-irogers@google.com> Message-Id: <20250311213628.569562-7-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250311213628.569562-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.rc0.332.g42c0ae87b1-goog Subject: [PATCH v2 6/6] perf python: Fix setup.py mypy errors From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , James Clark , Charlie Jenkins , John Garry , Veronika Molnarova , "Masami Hiramatsu (Google)" , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" getenv may return None, so assert it isn't None for CC and srctree environmental variables required for the script. Disable an optional warning related to Popen. Reviewed-by: James Clark Signed-off-by: Ian Rogers --- tools/perf/util/setup.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/setup.py b/tools/perf/util/setup.py index 649550e9b7aa..dd289d15acfd 100644 --- a/tools/perf/util/setup.py +++ b/tools/perf/util/setup.py @@ -3,6 +3,7 @@ from subprocess import Popen, PIPE from re import sub =20 cc =3D getenv("CC") +assert cc, "Environment variable CC not set" =20 # Check if CC has options, as is the case in yocto, where it uses CC=3D"cc= --sysroot..." cc_tokens =3D cc.split() @@ -12,8 +13,13 @@ if len(cc_tokens) > 1: else: cc_options =3D "" =20 +# ignore optional stderr could be None as it is set to PIPE to avoid that. +# mypy: disable-error-code=3D"union-attr" cc_is_clang =3D b"clang version" in Popen([cc, "-v"], stderr=3DPIPE).stder= r.readline() -src_feature_tests =3D getenv('srctree') + '/tools/build/feature' + +srctree =3D getenv('srctree') +assert srctree, "Environment variable srctree, for the Linux sources, not = set" +src_feature_tests =3D f'{srctree}/tools/build/feature' =20 def clang_has_option(option): cc_output =3D Popen([cc, cc_options + option, path.join(src_feature_te= sts, "test-hello.c") ], stderr=3DPIPE).stderr.readlines() @@ -71,7 +77,7 @@ else: # The python headers have mixed code with declarations (decls after assert= s, for instance) cflags +=3D [ "-Wno-declaration-after-statement" ] =20 -src_perf =3D getenv('srctree') + '/tools/perf' +src_perf =3D f'{srctree}/tools/perf' build_lib =3D getenv('PYTHON_EXTBUILD_LIB') build_tmp =3D getenv('PYTHON_EXTBUILD_TMP') =20 --=20 2.49.0.rc0.332.g42c0ae87b1-goog