From nobody Mon Apr 13 20:05:38 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A1495C43217 for ; Wed, 9 Nov 2022 18:50:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230118AbiKISuD (ORCPT ); Wed, 9 Nov 2022 13:50:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39962 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231607AbiKIStw (ORCPT ); Wed, 9 Nov 2022 13:49:52 -0500 Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F04615734 for ; Wed, 9 Nov 2022 10:49:49 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id 204-20020a250fd5000000b006ccc0e91098so17632424ybp.13 for ; Wed, 09 Nov 2022 10:49:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=5rlVN6/O6ud7i+l5M9N1PAvZ4u3YCtftz8CMo8WwgUg=; b=Pst/p+SP8ArcizzeOdYdK9oukzMegssjv7eyFFIkdPoKsMYGFPyXLfm8/N3yKz+Vg0 dofEvx2C47DeVsYgMsn+nVEIbAtw1JV1f6PvghnjZTJyc4RCQPuYzthPbULPeV5BkNlW 7tdsXn8yMObCUNvAHoF4zUDu8S5kfbCtASnfyjRSysdKlZgKxPMn1ImFwAqHGLmPP8Ab c/+JAdlA1YWOjP0+BNI+36fDq3Ix0jkJn2/OcN1mIH/lwnEL/j671IHrkuJzq208f55s iBvcaTd0fcxFSuKfVJGMTDFu5eoZbHdGHDaF3H66ecowF1Ra7zWCiw43fisERT0s4bJD HIaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc: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=5rlVN6/O6ud7i+l5M9N1PAvZ4u3YCtftz8CMo8WwgUg=; b=bNs3Kl4ZKTrTnGcTd5OKPzZpzLPNvMxGPJPZlgmQiZKa8blHMiVI9Zn6NkQXOdcGHN CB6scDx4Qowt+fDnReFyqW6vZpGtWZlSHG/lyR8kBufHsQncbp1GWsLPd+6K6asYongK RRM9EePW+543c3MIYR2h/iXjwNmdmJtSaoC916keKhidwOIxhLOZCDuqFkyd8FzdwPIz eaV2J4zuUp6KA7ffJmE576qZwG6G9viCf/pb4jaed/DQw8FvmmtPJ42rkhdmKyEV6WEB dMJOfYSDC7nULNy/k844TWReuzevxRhK4IHNoo+XR9FGuE5CKrlXxMBgM47Q5MZsE4Br InmA== X-Gm-Message-State: ACrzQf30IkXa3In473OKquXUQERBjeBkHcyKfcVTY/6W2OHdnLh8R/6V Cdcym2ceal4j4yDRc70DkunET3Xzzc9F X-Google-Smtp-Source: AMsMyM5FcLGFT2SQkb9U591ISwR4jLJ/1QbGCHi79LiEXj+dda25rXAZSNpQdxvhrJjSlu0xPw7nHT3Wk+Gt X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a81:f04:0:b0:36a:d4bf:c187 with SMTP id 4-20020a810f04000000b0036ad4bfc187mr56341249ywp.208.1668019788911; Wed, 09 Nov 2022 10:49:48 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:03 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-4-irogers@google.com> Mime-Version: 1.0 References: <20221109184914.1357295-1-irogers@google.com> X-Mailer: git-send-email 2.38.1.431.g37b22c650d-goog Subject: [PATCH v2 03/14] perf build: Install libsubcmd locally when building From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Masahiro Yamada , Nicolas Schier , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, bpf@vger.kernel.org, Nick Desaulniers , Andrii Nakryiko Cc: Stephane Eranian , Ian Rogers Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The perf build currently has a '-Itools/lib' on the CC command line. This causes issues as the libapi, libsubcmd, libtraceevent, libbpf headers are all found via this path, making it impossible to override include behavior. Change the libsubcmd build mirroring the libbpf build, so that it is installed in a directory along with its headers. A later change will modify the include behavior. Signed-off-by: Ian Rogers --- tools/perf/.gitignore | 1 + tools/perf/Makefile.perf | 24 ++++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore index a653311d9693..626f5dd9a037 100644 --- a/tools/perf/.gitignore +++ b/tools/perf/.gitignore @@ -39,6 +39,7 @@ pmu-events/pmu-events.c pmu-events/jevents feature/ libbpf/ +libsubcmd/ fixdep libtraceevent-dynamic-list Documentation/doc.dep diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 67819f905611..4ec6b95a1c49 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -244,7 +244,7 @@ else # force_fixdep LIB_DIR =3D $(srctree)/tools/lib/api/ TRACE_EVENT_DIR =3D $(srctree)/tools/lib/traceevent/ LIBBPF_DIR =3D $(srctree)/tools/lib/bpf/ -SUBCMD_DIR =3D $(srctree)/tools/lib/subcmd/ +LIBSUBCMD_DIR =3D $(srctree)/tools/lib/subcmd/ LIBPERF_DIR =3D $(srctree)/tools/lib/perf/ DOC_DIR =3D $(srctree)/tools/perf/Documentation/ =20 @@ -294,7 +294,6 @@ strip-libs =3D $(filter-out -l%,$(1)) ifneq ($(OUTPUT),) TE_PATH=3D$(OUTPUT) PLUGINS_PATH=3D$(OUTPUT) - SUBCMD_PATH=3D$(OUTPUT) LIBPERF_PATH=3D$(OUTPUT) ifneq ($(subdir),) API_PATH=3D$(OUTPUT)/../lib/api/ @@ -305,7 +304,6 @@ else TE_PATH=3D$(TRACE_EVENT_DIR) PLUGINS_PATH=3D$(TRACE_EVENT_DIR)plugins/ API_PATH=3D$(LIB_DIR) - SUBCMD_PATH=3D$(SUBCMD_DIR) LIBPERF_PATH=3D$(LIBPERF_DIR) endif =20 @@ -332,7 +330,14 @@ LIBBPF_DESTDIR =3D $(LIBBPF_OUTPUT) LIBBPF_INCLUDE =3D $(LIBBPF_DESTDIR)/include LIBBPF =3D $(LIBBPF_OUTPUT)/libbpf.a =20 -LIBSUBCMD =3D $(SUBCMD_PATH)libsubcmd.a +ifneq ($(OUTPUT),) + LIBSUBCMD_OUTPUT =3D $(abspath $(OUTPUT))/libsubcmd +else + LIBSUBCMD_OUTPUT =3D $(CURDIR)/libsubcmd +endif +LIBSUBCMD_DESTDIR =3D $(LIBSUBCMD_OUTPUT) +LIBSUBCMD_INCLUDE =3D $(LIBSUBCMD_DESTDIR)/include +LIBSUBCMD =3D $(LIBSUBCMD_OUTPUT)/libsubcmd.a =20 LIBPERF =3D $(LIBPERF_PATH)libperf.a export LIBPERF @@ -849,11 +854,14 @@ $(LIBPERF)-clean: $(call QUIET_CLEAN, libperf) $(Q)$(MAKE) -C $(LIBPERF_DIR) O=3D$(OUTPUT) clean >/dev/null =20 -$(LIBSUBCMD): FORCE - $(Q)$(MAKE) -C $(SUBCMD_DIR) O=3D$(OUTPUT) $(OUTPUT)libsubcmd.a +$(LIBSUBCMD): FORCE | $(LIBSUBCMD_OUTPUT) + $(Q)$(MAKE) -C $(LIBSUBCMD_DIR) O=3D$(LIBSUBCMD_OUTPUT) \ + DESTDIR=3D$(LIBSUBCMD_DESTDIR) prefix=3D \ + $@ install_headers =20 $(LIBSUBCMD)-clean: - $(Q)$(MAKE) -C $(SUBCMD_DIR) O=3D$(OUTPUT) clean + $(call QUIET_CLEAN, libsubcmd) + $(Q)$(RM) -r -- $(LIBSUBCMD_OUTPUT) =20 help: @echo 'Perf make targets:' @@ -1039,7 +1047,7 @@ SKELETONS +=3D $(SKEL_OUT)/bperf_cgroup.skel.h $(SKEL= _OUT)/func_latency.skel.h SKELETONS +=3D $(SKEL_OUT)/off_cpu.skel.h $(SKEL_OUT)/lock_contention.skel= .h SKELETONS +=3D $(SKEL_OUT)/kwork_trace.skel.h =20 -$(SKEL_TMP_OUT) $(LIBBPF_OUTPUT): +$(SKEL_TMP_OUT) $(LIBBPF_OUTPUT) $(LIBSUBCMD_OUTPUT): $(Q)$(MKDIR) -p $@ =20 ifdef BUILD_BPF_SKEL --=20 2.38.1.431.g37b22c650d-goog