Received: by 2002:a89:413:0:b0:1fd:dba5:e537 with SMTP id m19csp475149lqs; Thu, 13 Jun 2024 16:33:03 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUdpR2A4j2xAeiAFts6vMet5DONtGKJpNnZVYI/KrtD0EWr/ynUbml/YOwoJvGauTyOgzXRt3ZCGww62ajCxC2uZHIMiGHKx74VL7K00Q== X-Google-Smtp-Source: AGHT+IEiJs2woBE/nhymSvE0CQbclBsO3c/N6zi/c89P9lAzby9v2PMR1bteFgxvoVmOXa4ZMwKe X-Received: by 2002:a2e:3315:0:b0:2ea:e710:0 with SMTP id 38308e7fff4ca-2ec0e5c64ccmr8300871fa.12.1718321583490; Thu, 13 Jun 2024 16:33:03 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718321583; cv=pass; d=google.com; s=arc-20160816; b=s0ku/z8zdVOcfqdt/ePjAY1DZzohFFIyg2J73tMXti8AS9a6tn1yIizsYnm/zpuDTd cEWML0v8wypeM/NzX3hpMrmEPxGKY8me/YfpCLs7o9UvXCP9M46vpd4Mw2lLjofV51uz J73YD0m6T/iV0nBxINTsS9iUSWIUS2RfHP/kLNO/j/Cdvx3iOOkPHVz2VMNVjT2ZyJrF gQH1uzf4NboQgg3Ksf8v/ZuJEpyHvf7RJAyg5eWr1lUwKL6DBSSLoz5BSTVxYYi/YgM4 WGOke7FSrbDEds3gDa30CCENXJDDG3L5/wRd+vZ12x9n+WCUYRsK5WzqA79+RnorSDwU c2Yw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:from:subject:references:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:in-reply-to:date :dkim-signature; bh=r+7hNL7GU/EnUYuEiQpshzYvHRCk9RdYS1NEyctZDl4=; fh=aMaN8dxUY6sLCfEzBWi5bWUAPsP3HxVsgNZzP/4K/1s=; b=PM7wUcDxFVBXZNjQIBNvpgHGJ+ovPXH0o8ca8iB8MHA0Q8APXv8H/En9HNx/1LrE9w b+BfvYJ4XtlkeZnLhPaxH6ujTy5crHAw6/F8DzvNvTVTmBYrwX29ch4YZvc5D1NoAj+D W2f2SMtlaRL22oWK/78EFkKLvwpg0QeQeTL4TWfqt0fwGbtKfF2FxRB/9Iee3D5rlKNi xTirqKBYBwJ9sIoEWKwnkDgULgzALHEzfwI7Mlw7EmULQiqZ7m6ouSLkcyqZ8kr573Pc VWqtZaGZao0lJckmhEFiL502/8jM/U5YwEXhLUDESj2dxLBjqSlnVxutVTE92Rv3ttZM 2bdA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=bX8QD1l7; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-214100-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-214100-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id 4fb4d7f45d1cf-57cb7461e35si1198072a12.612.2024.06.13.16.33.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Jun 2024 16:33:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-214100-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=bX8QD1l7; arc=pass (i=1 spf=pass spfdomain=flex--irogers.bounces.google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-214100-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-214100-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id D5F191F22037 for ; Thu, 13 Jun 2024 23:32:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 014EF156F26; Thu, 13 Jun 2024 23:31:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="bX8QD1l7" 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 4ED73156236 for ; Thu, 13 Jun 2024 23:31:44 +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=1718321505; cv=none; b=J+L5Cfl1n73v76Jhb1z1xAks5n0U1Wl6qfPCjzXEqU+y3oiMV6Di4nmi3NfUZ5arSNplLbhnP2fGFpZiBzhuECax47J0Aq+6FY74ICNZUWbwFleTkOslKjx9hxrI6G4IAYkjKNMq2zVsaI2fLz5qDX2M1qgMIqYsNHnei3si9Rk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718321505; c=relaxed/simple; bh=rFcy+S2+2TKAedCtBmi8koJqecDAqvQ96WMKLQwJCVE=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=kYEbIRWZ6JpB7KnGUOdl9llFSQ2JRcuhshQW7XUvzmwTxmmjOBVRAjP10tXITsdnvOeIOOjqNnwtaAXfL3Mu2PldqBJ+VHJJXzaKZUzGrmSAPWOh2kalv7L52wXzN/1scPMpEtkgB8mFqowU73oPFqwDiUfBhyfgAnGdoelW31A= 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=bX8QD1l7; 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 Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-62fa71fbfc4so28886377b3.2 for ; Thu, 13 Jun 2024 16:31:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1718321503; x=1718926303; 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=r+7hNL7GU/EnUYuEiQpshzYvHRCk9RdYS1NEyctZDl4=; b=bX8QD1l70xe2wkNwM/mT9kDZR9IsbViT1kmFgT8bJ7BJYTAAWJFfMeSUSW0djdwLAK +7HS8N+OpeAOzdMhnHmLd5eh3ERWMSL+cHWMabVCSLLqAlhZKQuNH9i0m9l2ep5WxTNt Zl0iAT6cnh9zXFmtRXTGlaGx5kMhJRXkwhW2TLdGHwWFsLh9FqfGK1ChHTtmKTRB6Mye hpMGUJkkF6dJKTjSDKDviHLGaUEiKePpn7Si6MbY82+PSJNqhdDnU41umWgyr5voFtM4 Des/mtO6Z2f8WcybOPDe27HUMNWhM6XG1eHIK+n0U341X+Uhc/prm5LM0hZbwDNp4BKY WCTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718321503; x=1718926303; 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=r+7hNL7GU/EnUYuEiQpshzYvHRCk9RdYS1NEyctZDl4=; b=p2EcsMt5Llih8rQbyz73qryTBW2N9LHhRtA08B4wv5uJUBCKMk70ghyl3BgkEEHcp0 iG8cgpubrI4Uvs6PTti+z43A5XQVTtafQca7m8w/wYeq95Ius7S2MCPeKR8AglWEZhNU nOOSEliY1YeNzjP2o4WNjZEUYSnGqBd9vSVE/jIcjlM7Ps1FewcoQRvtW3DEZQkCHWCq F+pjyUdUHZCfm0H3nOccQ75pLL883dc/RlZUyvBAvPeXOKtKred52MSMPlfvbNFReJQE an1n0ekZY1SOH54zlSwUkZhW+pT6G2hoKI2gQ+1AAqON9UALcLM9MDBw2z5LBJQaoi/s n9vQ== X-Forwarded-Encrypted: i=1; AJvYcCXWQ/SifBuRuTZ34refV8HTQgN4gV1ipLeLeUED4uPYVVSOKWhM2VpJAmc9DiWPjBRpdb00s6bWKEV2GrOJhm5wu7HuQLArX2X6BUOy X-Gm-Message-State: AOJu0YwVQeaA6+sl8gTC3klao73QZHHF/m2qt3nraBlSytHWD1qBu31x BIKsecn6saOpRMt1AOO4ZYJAgJe1hf6v2/SUBGkKw1klvA0h32qIpG+y+CJ2DGAUuY0pvXYblMa Jqbc3gw== X-Received: from irogers.svl.corp.google.com ([2620:15c:2a3:200:96dd:26a6:1493:53c8]) (user=irogers job=sendgmr) by 2002:a05:690c:19:b0:62d:cb6:1cff with SMTP id 00721157ae682-6322235c1e3mr2906847b3.1.1718321503168; Thu, 13 Jun 2024 16:31:43 -0700 (PDT) Date: Thu, 13 Jun 2024 16:31:16 -0700 In-Reply-To: <20240613233122.3564730-1-irogers@google.com> Message-Id: <20240613233122.3564730-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: <20240613233122.3564730-1-irogers@google.com> X-Mailer: git-send-email 2.45.2.627.g7a2c4fd464-goog Subject: [PATCH v3 2/8] perf ui: Make ui its own library 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 , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Suzuki K Poulose , Yicong Yang , Jonathan Cameron , Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , "=?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?=" , Benno Lossin , Andreas Hindborg , Alice Ryhl , Nick Terrell , Ravi Bangoria , Kees Cook , Andrei Vagin , Athira Jajeev , Oliver Upton , Ze Gao , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org, coresight@lists.linaro.org, rust-for-linux@vger.kernel.org, bpf@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Make the ui code its own library. This is done to avoid compiling code twice, once for the perf tool and once for the perf python module. Signed-off-by: Ian Rogers Reviewed-by: James Clark --- tools/perf/Build | 2 +- tools/perf/Makefile.perf | 10 ++++++++++ tools/perf/ui/Build | 18 +++++++++--------- tools/perf/ui/browsers/Build | 14 +++++++------- tools/perf/ui/tui/Build | 8 ++++---- 5 files changed, 31 insertions(+), 21 deletions(-) diff --git a/tools/perf/Build b/tools/perf/Build index b0cb7ad8e6ac..16ed1357202b 100644 --- a/tools/perf/Build +++ b/tools/perf/Build @@ -55,7 +55,7 @@ CFLAGS_builtin-report.o += -DDOCDIR="BUILD_STR($(srcdir_SQ)/Documentation)" perf-y += util/ perf-y += arch/ -perf-y += ui/ +perf-ui-y += ui/ perf-y += scripts/ gtk-y += ui/gtk/ diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index acc41a6717db..c5a027381c55 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -425,10 +425,14 @@ endif export PERL_PATH +LIBPERF_UI_IN := $(OUTPUT)perf-ui-in.o +LIBPERF_UI := $(OUTPUT)libperf-ui.a + PERFLIBS = $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYMBOL) ifdef LIBBPF_STATIC PERFLIBS += $(LIBBPF) endif +PERFLIBS += $(LIBPERF_UI) # We choose to avoid "if .. else if .. else .. endif endif" # because maintaining the nesting to match is a pain. If @@ -729,6 +733,12 @@ $(PERF_IN): prepare FORCE $(PMU_EVENTS_IN): FORCE prepare $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=pmu-events obj=pmu-events +$(LIBPERF_UI_IN): FORCE prepare + $(Q)$(MAKE) $(build)=perf-ui + +$(LIBPERF_UI): $(LIBPERF_UI_IN) + $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $< + $(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) \ $(PERF_IN) $(PMU_EVENTS_IN) $(LIBS) -o $@ diff --git a/tools/perf/ui/Build b/tools/perf/ui/Build index 6b6d7143a37b..d2ecd9290600 100644 --- a/tools/perf/ui/Build +++ b/tools/perf/ui/Build @@ -1,12 +1,12 @@ -perf-y += setup.o -perf-y += helpline.o -perf-y += progress.o -perf-y += util.o -perf-y += hist.o -perf-y += stdio/hist.o +perf-ui-y += setup.o +perf-ui-y += helpline.o +perf-ui-y += progress.o +perf-ui-y += util.o +perf-ui-y += hist.o +perf-ui-y += stdio/hist.o CFLAGS_setup.o += -DLIBDIR="BUILD_STR($(LIBDIR))" -perf-$(CONFIG_SLANG) += browser.o -perf-$(CONFIG_SLANG) += browsers/ -perf-$(CONFIG_SLANG) += tui/ +perf-ui-$(CONFIG_SLANG) += browser.o +perf-ui-$(CONFIG_SLANG) += browsers/ +perf-ui-$(CONFIG_SLANG) += tui/ diff --git a/tools/perf/ui/browsers/Build b/tools/perf/ui/browsers/Build index 2608b5da3167..a07489e44765 100644 --- a/tools/perf/ui/browsers/Build +++ b/tools/perf/ui/browsers/Build @@ -1,7 +1,7 @@ -perf-y += annotate.o -perf-y += annotate-data.o -perf-y += hists.o -perf-y += map.o -perf-y += scripts.o -perf-y += header.o -perf-y += res_sample.o +perf-ui-y += annotate.o +perf-ui-y += annotate-data.o +perf-ui-y += hists.o +perf-ui-y += map.o +perf-ui-y += scripts.o +perf-ui-y += header.o +perf-ui-y += res_sample.o diff --git a/tools/perf/ui/tui/Build b/tools/perf/ui/tui/Build index f916df33a1a7..2ac058ad1a61 100644 --- a/tools/perf/ui/tui/Build +++ b/tools/perf/ui/tui/Build @@ -1,4 +1,4 @@ -perf-y += setup.o -perf-y += util.o -perf-y += helpline.o -perf-y += progress.o +perf-ui-y += setup.o +perf-ui-y += util.o +perf-ui-y += helpline.o +perf-ui-y += progress.o -- 2.45.2.627.g7a2c4fd464-goog