From nobody Mon Apr 13 18:45:45 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 42375C433FE for ; Wed, 9 Nov 2022 18:49:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231618AbiKISti (ORCPT ); Wed, 9 Nov 2022 13:49:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230372AbiKIStf (ORCPT ); Wed, 9 Nov 2022 13:49:35 -0500 Received: from mail-pf1-x449.google.com (mail-pf1-x449.google.com [IPv6:2607:f8b0:4864:20::449]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C981C13FAF for ; Wed, 9 Nov 2022 10:49:34 -0800 (PST) Received: by mail-pf1-x449.google.com with SMTP id u3-20020a056a00124300b0056d4ab0c7cbso9202350pfi.7 for ; Wed, 09 Nov 2022 10:49:34 -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=rOWTS1f0segyhlSbmQWDTAnD8D0Og1YhYgrPvc18rTU=; b=h8+HoLUbYhCjId0Y+B244sJvGF1KwrxdyFZTx69OSLbRfEnws6kzRpSaCdTIRDjYnp 4Piy3y3cJ7wY6F4MjoLW/ZrCko/VItNGisyhAiDlUOLT6Loa+OB7OMvNK9kP6TthCM4+ 81YfXJYk7kVGXTg/7LoouhUv0QE89yJpr3qltAyaS9g2UORODNXSwHeaBLJD6KwtXbHj 7VEBC7nKz4YtZ4+Dai53TP4wIm937JBC0Hbt0aX56Ivx4y1O/N0s5HAk84haphososiM qW8Q7Qj7rkQM7veSWJ/SBAMl+aq+9hLOofy3340Ga92XUKXsL+EXRoDfTTJ99cgyyti3 ZBZw== 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=rOWTS1f0segyhlSbmQWDTAnD8D0Og1YhYgrPvc18rTU=; b=tv4/0xPZV5/ScoR2UYgZmUAGLPha8l0rdavVYZjIv60kSLIVxImCNsB7M60rytAjCp 79oETOMeKKIUXmHWfsyhYnKnlP2zutsMg0dTyfDQDk9yNcz9D7tX65c/x9PalaPnZQyJ vzGTxoGlXcNbpkC1T0GLNsKSWwMZVIlxAwWv4sI4/dAu7HsWU2XGFnb/Yj4x6A2LXjhh Jr0z68gOkcU3c5ptTSKaERQvZfI3yfRo9yPlJPtwasm7I43+YW0boEiEn8gkSaZ2vsBg 2Dz8t1F+4zjhKCgTwnYaRaDql1cvjEkz9NiqfZALtMJJrpfVAQCLHrZJpuY+5UcBxxZ4 JrHA== X-Gm-Message-State: ACrzQf18c+MFsKpWh9uBSUbcgMrAnQuNuVt8Gv/35KITVB9C7Or279+J jULYTGCXJEW1G4jl73FMYc+brqaG5yWw X-Google-Smtp-Source: AMsMyM5xbUA/rskJrvjee/Gig9EwkjMLwfHK7DAHXLoRP2Wt7Pd/WfJSt74tu+vCa0w33TdxjKA8n5JVmqVt X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a17:902:9692:b0:186:6180:fb89 with SMTP id n18-20020a170902969200b001866180fb89mr1199782plp.142.1668019774263; Wed, 09 Nov 2022 10:49:34 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:01 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-2-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 01/14] tools lib api: Add install target 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" This allows libapi to be installed as a dependency. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/lib/api/Makefile | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile index e21e1b40b525..6629d0fd0130 100644 --- a/tools/lib/api/Makefile +++ b/tools/lib/api/Makefile @@ -15,6 +15,16 @@ LD ?=3D $(CROSS_COMPILE)ld =20 MAKEFLAGS +=3D --no-print-directory =20 +INSTALL =3D install + + +# Use DESTDIR for installing into a different root directory. +# This is useful for building a package. The program will be +# installed in this directory as if it was the root directory. +# Then the build tool can move it later. +DESTDIR ?=3D +DESTDIR_SQ =3D '$(subst ','\'',$(DESTDIR))' + LIBFILE =3D $(OUTPUT)libapi.a =20 CFLAGS :=3D $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) @@ -45,10 +55,23 @@ RM =3D rm -f =20 API_IN :=3D $(OUTPUT)libapi-in.o =20 +ifeq ($(LP64), 1) + libdir_relative =3D lib64 +else + libdir_relative =3D lib +endif + +prefix ?=3D +libdir =3D $(prefix)/$(libdir_relative) + +# Shell quotes +libdir_SQ =3D $(subst ','\'',$(libdir)) + all: =20 export srctree OUTPUT CC LD CFLAGS V include $(srctree)/tools/build/Makefile.include +include $(srctree)/tools/scripts/Makefile.include =20 all: fixdep $(LIBFILE) =20 @@ -58,6 +81,32 @@ $(API_IN): FORCE $(LIBFILE): $(API_IN) $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(API_IN) =20 +define do_install_mkdir + if [ ! -d '$(DESTDIR_SQ)$1' ]; then \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$1'; \ + fi +endef + +define do_install + if [ ! -d '$(DESTDIR_SQ)$2' ]; then \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$2'; \ + fi; \ + $(INSTALL) $1 $(if $3,-m $3,) '$(DESTDIR_SQ)$2' +endef + +install_lib: $(LIBFILE) + $(call QUIET_INSTALL, $(LIBFILE)) \ + $(call do_install_mkdir,$(libdir_SQ)); \ + cp -fpR $(LIBFILE) $(DESTDIR)$(libdir_SQ) + +install_headers: + $(call QUIET_INSTALL, headers) \ + $(call do_install,cpu.h,$(prefix)/include/api,644); \ + $(call do_install,debug.h,$(prefix)/include/api,644); \ + $(call do_install,io.h,$(prefix)/include/api,644); + +install: install_lib install_headers + clean: $(call QUIET_CLEAN, libapi) $(RM) $(LIBFILE); \ find $(or $(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | x= args $(RM) --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 6C421C433FE for ; Wed, 9 Nov 2022 18:49:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230339AbiKIStv (ORCPT ); Wed, 9 Nov 2022 13:49:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230094AbiKIStq (ORCPT ); Wed, 9 Nov 2022 13:49:46 -0500 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C855614099 for ; Wed, 9 Nov 2022 10:49:42 -0800 (PST) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-367f94b9b16so170176617b3.11 for ; Wed, 09 Nov 2022 10:49:42 -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=05tcS3sAQNNzElcGvhYcBZhblO5ft3NSeZEHHXzfROg=; b=FrfJDilUGgqEU/9xZ+Sx8LJdZL5uNGHCI2s8HC7ZCFe709f+PQu2+EUpf7+hVKuye/ c8mNJ8oEOMdgrGrCmMK7Yogk0cFIeax8K4SVFScGSYN+5uM/gxzjJWykyEv7IO1Erb7G oY3CkH1dU1SBAxSogNxpJq8MaD/fREJrv4LGWTr2fOVfIUCmu7Aidpvfj0Yt453x+n1P 60wOo9fn3505b90GaT6vLmhfwGihiU03pR6pNi1Hw63c9YQ5QjPZYPPKflBa0yqm8g7l bSk2VA9zIDYZwCREZCRpMLDsYX15xZXt72ROcOSt3pNfspfwAePUifyKmJDtl/TXimBc vJDw== 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=05tcS3sAQNNzElcGvhYcBZhblO5ft3NSeZEHHXzfROg=; b=iGoyglUVQRosS7l2OAeQSeBH1Go50HIvJBn6W65ia7kYRTrhsmI5qfR0Y8+Yeo6fZf 44vHcFkiybasaN6T4DmU51w6LlYgbetBudE6WlRUxys700hLtd/NF0KZ5HteSMa08Hpn NertGiyUQWyylx1/4VpdMOWc/05NplBbDlTPFaQyfWmqvVUrzBljfRItjwrgDVcd9aYj LiZqy3voOAEMUoxCD5bLKt/DbLZZDyy9cnSWwR9Ap/0p1xtyJWYf6vi9PKT4iCS2hOa3 y0VV2XIxmpDzhUvt9UU4n+EtCIM8Nf8yU2yeyi6NOBXQTKjCEFTLUefmpnMGF6X7eL/M 9Tuw== X-Gm-Message-State: ACrzQf1hRI/HI6/gETwh7XBAu4DhrHHmeT8ytdPEf7tRO2nTfK3vd2c5 9kfLRzBXVUL3Ftsoghw6t9aCtnA/rzVt X-Google-Smtp-Source: AMsMyM4LuD0xOiXFa9VTn835MwJvnx4tty3fk6NsDMzkkxI/Oa7orJu46gG+n077o2x4ODuIFKZ5ACHUDA0U X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a25:ab33:0:b0:6be:a6ab:6955 with SMTP id u48-20020a25ab33000000b006bea6ab6955mr1110559ybi.230.1668019782047; Wed, 09 Nov 2022 10:49:42 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:02 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-3-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 02/14] tools lib subcmd: Add install target 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" This allows libsubcmd to be installed as a dependency. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/lib/subcmd/Makefile | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/tools/lib/subcmd/Makefile b/tools/lib/subcmd/Makefile index 8f1a09cdfd17..e96566f8991c 100644 --- a/tools/lib/subcmd/Makefile +++ b/tools/lib/subcmd/Makefile @@ -17,6 +17,15 @@ RM =3D rm -f =20 MAKEFLAGS +=3D --no-print-directory =20 +INSTALL =3D install + +# Use DESTDIR for installing into a different root directory. +# This is useful for building a package. The program will be +# installed in this directory as if it was the root directory. +# Then the build tool can move it later. +DESTDIR ?=3D +DESTDIR_SQ =3D '$(subst ','\'',$(DESTDIR))' + LIBFILE =3D $(OUTPUT)libsubcmd.a =20 CFLAGS :=3D -ggdb3 -Wall -Wextra -std=3Dgnu99 -fPIC @@ -48,6 +57,18 @@ CFLAGS +=3D $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) =20 SUBCMD_IN :=3D $(OUTPUT)libsubcmd-in.o =20 +ifeq ($(LP64), 1) + libdir_relative =3D lib64 +else + libdir_relative =3D lib +endif + +prefix ?=3D +libdir =3D $(prefix)/$(libdir_relative) + +# Shell quotes +libdir_SQ =3D $(subst ','\'',$(libdir)) + all: =20 export srctree OUTPUT CC LD CFLAGS V @@ -61,6 +82,34 @@ $(SUBCMD_IN): FORCE $(LIBFILE): $(SUBCMD_IN) $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(SUBCMD_IN) =20 +define do_install_mkdir + if [ ! -d '$(DESTDIR_SQ)$1' ]; then \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$1'; \ + fi +endef + +define do_install + if [ ! -d '$(DESTDIR_SQ)$2' ]; then \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$2'; \ + fi; \ + $(INSTALL) $1 $(if $3,-m $3,) '$(DESTDIR_SQ)$2' +endef + +install_lib: $(LIBFILE) + $(call QUIET_INSTALL, $(LIBFILE)) \ + $(call do_install_mkdir,$(libdir_SQ)); \ + cp -fpR $(LIBFILE) $(DESTDIR)$(libdir_SQ) + +install_headers: + $(call QUIET_INSTALL, headers) \ + $(call do_install,exec-cmd.h,$(prefix)/include/subcmd,644); \ + $(call do_install,help.h,$(prefix)/include/subcmd,644); \ + $(call do_install,pager.h,$(prefix)/include/subcmd,644); \ + $(call do_install,parse-options.h,$(prefix)/include/subcmd,644); \ + $(call do_install,run-command.h,$(prefix)/include/subcmd,644); + +install: install_lib install_headers + clean: $(call QUIET_CLEAN, libsubcmd) $(RM) $(LIBFILE); \ find $(or $(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | x= args $(RM) --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 Acked-by: Namhyung Kim --- 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 From nobody Mon Apr 13 18:45:45 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 0C9C2C4332F for ; Wed, 9 Nov 2022 18:50:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231665AbiKISuJ (ORCPT ); Wed, 9 Nov 2022 13:50:09 -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 S231673AbiKISt7 (ORCPT ); Wed, 9 Nov 2022 13:49:59 -0500 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1456217050 for ; Wed, 9 Nov 2022 10:49:57 -0800 (PST) Received: by mail-yb1-xb4a.google.com with SMTP id o2-20020a5b0502000000b006cade5e7c07so17704050ybp.10 for ; Wed, 09 Nov 2022 10:49:57 -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=DP4kj7DiRL+xHUHvBLH3ge+vTpwFxXziF3rVwxkIDtE=; b=nYvq+SL0Spjx3Tz0Hp/FjWjdEbXMgRbK3pMAgdwoMnMdsPV9NVAv8NQRumPEkW2CdT 7Ed4PVw9zmJMTMZPm9eWAmiAPSO6HSGMw+WnbOCGehZzlp2kEg6Mhi2D+VOhGx5dbN3W FenY5Q5AaDyYpxr3+fHT5hOp/uYTT5NT7b0BGqcJH85njZOzufE5EjTFYGUxqA/Ot/Qd e8qpGs+e9Yk0yy72dAu3sHSgF4yOiiMxIs3hWay7ZvUQRkErUvK+olBdYiAn7mkZtGjU VicdUDOt9EfDUeMo0N2FUxHvYO0j6ozd1n6gEdR320gUVJzVfvVUeeQyMa1nzciB4mtU FtOQ== 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=DP4kj7DiRL+xHUHvBLH3ge+vTpwFxXziF3rVwxkIDtE=; b=TeppUjgkYQIzUg0T00G+ClrcKJndqC1uFBYii/evwFe2KY3Ba6lKgbgFj8rP6hSc1s Syv+XplWCcHXCALlwLTbqMSGkRioCJBmItcSkWk7j6GY3YtW13H1JbIYpamB9oU0uwOh ewuR4pHiy5K1W5qyAudfIFv71ZGehgwevNyfAfB7QafFvZM6lBRIvbWn20FKeRD9QDQm BE+TRe2Jph4bvlNXn21z0IqG0Ci+lKJnDt1Xait89wGXFT+Sn3th47vmahOC+J2M5Q6n YluO6RJ8RZo7K4usrtzQg4uHadF2L8jqwMawQxw6gxWjCXFfkU9ioKtmVaU6UDRdXxua NHxg== X-Gm-Message-State: ANoB5pnC+oJryhg2hia3YBs/WIshikufWwGiM/6JRRTAmKAIYfja7vav SXyrQ66hIlUH/wn2YDcGB1h0g/Eo4fB2 X-Google-Smtp-Source: AA0mqf776vexvsO1Tb9gGLbX7UHKb+p7Y2EiSv6LhHFFKLSdtKbNiPoABCTWkVzGxwPK7DWOmOmCk7rQTWDu X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a05:6902:728:b0:6dc:6bf7:bde1 with SMTP id l8-20020a056902072800b006dc6bf7bde1mr541469ybt.108.1668019797001; Wed, 09 Nov 2022 10:49:57 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:04 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-5-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 04/14] perf build: Install libapi 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 libapi build mirroring the libbpf and libsubcmd 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 Acked-by: Namhyung Kim --- tools/perf/.gitignore | 1 + tools/perf/Makefile.perf | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore index 626f5dd9a037..1932848343f3 100644 --- a/tools/perf/.gitignore +++ b/tools/perf/.gitignore @@ -38,6 +38,7 @@ trace/beauty/generated/ pmu-events/pmu-events.c pmu-events/jevents feature/ +libapi/ libbpf/ libsubcmd/ fixdep diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 4ec6b95a1c49..f8c712e26a69 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -241,7 +241,7 @@ sub-make: fixdep =20 else # force_fixdep =20 -LIB_DIR =3D $(srctree)/tools/lib/api/ +LIBAPI_DIR =3D $(srctree)/tools/lib/api/ TRACE_EVENT_DIR =3D $(srctree)/tools/lib/traceevent/ LIBBPF_DIR =3D $(srctree)/tools/lib/bpf/ LIBSUBCMD_DIR =3D $(srctree)/tools/lib/subcmd/ @@ -295,15 +295,9 @@ ifneq ($(OUTPUT),) TE_PATH=3D$(OUTPUT) PLUGINS_PATH=3D$(OUTPUT) LIBPERF_PATH=3D$(OUTPUT) -ifneq ($(subdir),) - API_PATH=3D$(OUTPUT)/../lib/api/ -else - API_PATH=3D$(OUTPUT) -endif else TE_PATH=3D$(TRACE_EVENT_DIR) PLUGINS_PATH=3D$(TRACE_EVENT_DIR)plugins/ - API_PATH=3D$(LIB_DIR) LIBPERF_PATH=3D$(LIBPERF_DIR) endif =20 @@ -318,7 +312,14 @@ LIBTRACEEVENT_DYNAMIC_LIST =3D $(PLUGINS_PATH)libtrace= event-dynamic-list DYNAMIC_LIST_LDFLAGS =3D -Xlinker --dynamic-list=3D$(LIBTRAC= EEVENT_DYNAMIC_LIST) LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS =3D $(if $(findstring -static,$(LDFLAGS= )),,$(DYNAMIC_LIST_LDFLAGS)) =20 -LIBAPI =3D $(API_PATH)libapi.a +ifneq ($(OUTPUT),) + LIBAPI_OUTPUT =3D $(abspath $(OUTPUT))/libapi +else + LIBAPI_OUTPUT =3D $(CURDIR)/libapi +endif +LIBAPI_DESTDIR =3D $(LIBAPI_OUTPUT) +LIBAPI_INCLUDE =3D $(LIBAPI_DESTDIR)/include +LIBAPI =3D $(LIBAPI_OUTPUT)/libapi.a export LIBAPI =20 ifneq ($(OUTPUT),) @@ -831,12 +832,14 @@ $(LIBTRACEEVENT)-clean: install-traceevent-plugins: libtraceevent_plugins $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=3D$(OUTPUT) in= stall_plugins =20 -$(LIBAPI): FORCE - $(Q)$(MAKE) -C $(LIB_DIR) O=3D$(OUTPUT) $(OUTPUT)libapi.a +$(LIBAPI): FORCE | $(LIBAPI_OUTPUT) + $(Q)$(MAKE) -C $(LIBAPI_DIR) O=3D$(LIBAPI_OUTPUT) \ + DESTDIR=3D$(LIBAPI_DESTDIR) prefix=3D \ + $@ install_headers =20 $(LIBAPI)-clean: $(call QUIET_CLEAN, libapi) - $(Q)$(MAKE) -C $(LIB_DIR) O=3D$(OUTPUT) clean >/dev/null + $(Q)$(RM) -r -- $(LIBAPI_OUTPUT) =20 $(LIBBPF): FORCE | $(LIBBPF_OUTPUT) $(Q)$(MAKE) -C $(LIBBPF_DIR) FEATURES_DUMP=3D$(FEATURE_DUMP_EXPORT) \ @@ -1047,7 +1050,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) $(LIBSUBCMD_OUTPUT): +$(SKEL_TMP_OUT) $(LIBAPI_OUTPUT) $(LIBBPF_OUTPUT) $(LIBSUBCMD_OUTPUT): $(Q)$(MKDIR) -p $@ =20 ifdef BUILD_BPF_SKEL --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 DD92EC433FE for ; Wed, 9 Nov 2022 18:50:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231681AbiKISuV (ORCPT ); Wed, 9 Nov 2022 13:50:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230094AbiKISuI (ORCPT ); Wed, 9 Nov 2022 13:50:08 -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 A249215A37 for ; Wed, 9 Nov 2022 10:50:06 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id h4-20020a5b02c4000000b006bc192d672bso17634853ybp.22 for ; Wed, 09 Nov 2022 10:50:06 -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=eFNI6w+UKBLfbnLBHtzzqBJiAuVx/AtWIkrQTsC6Hro=; b=h4lvMtCWCTVDSELj55kvnLQCb5oBnzuw+M44Y5aAWbANhizAyyFGC5rZAM4Hiupzs4 akW+s1CKqsMLyjphDV7Ul84LU+H8Z5lPTX79adM/XnfUv/DknPbANTP7m8SJknpuh6xm w5ehaf5zMMBp/J+oUPdrUXcHrUfCwHV178BIQUOKi9gD1iF5HtggNPCHT3Xks6QppIW7 Mk0bgcm7LdrNTUdUcAJuOItFPmEgj5ZI2Pizmpoy9xE0DSH7f+GoUoo3C6iBLTnz5Yd2 l7qZOCzjNAsZfeJrGt54wiZ1Kzot4TIlTq0KUfnGU2RUXCR2fIpkmzMTyfMgNg/Tc7tl 0CHg== 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=eFNI6w+UKBLfbnLBHtzzqBJiAuVx/AtWIkrQTsC6Hro=; b=GrheaSY/CddqI6uU3iKAm2zkUL35XvE2myE+NfkPQMMnPuhtcmkjuH022NvnRIOXbh 6HXpa958ukBOGyQ7Hjv8A6BDgCBULIR8FP+ZsA0YdQRqFZ+n1sn8PLeE7r7XObkeTiKY hZOIAcHndUixAS8FQpNdYz4DG17erqutrmiXzytN3U+GJmCQb1gSrYwZV9RI6r87S3H1 ZiOv5mQ2dyF4ltu7KasRfiO29F8wfVTk5xUGKNL17WEzjsxswC3DhG0xIRIGthbOErmL s1ICv31iV4V7Z9rsW07ObHxVkuMU7VtlraXqf8AhHa9LR34snTcCYS2LJq0cVuKO0ERe 8UBw== X-Gm-Message-State: ANoB5pnieW36fyXE5zG6J3udM3lTGJETBLtnHXJXhFtx4dhh1klJL9ec 53lhxhfUl2q2PWA5fju4NodV1zNVkxvr X-Google-Smtp-Source: AA0mqf4GLV/l6ulLOIZSMSZlFM/5nQe7KSUuCKe+SvRL2TfnLFFNBQnTLggBQ+/D+c95KTFqgTlDhOO8PXiA X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a25:ce51:0:b0:6da:635e:2071 with SMTP id x78-20020a25ce51000000b006da635e2071mr6748633ybe.54.1668019805933; Wed, 09 Nov 2022 10:50:05 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:05 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-6-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 05/14] perf build: Install libperf 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 libperf build mirroring the libbpf, libsubcmd and libapi 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 Acked-by: Namhyung Kim --- tools/perf/.gitignore | 1 + tools/perf/Makefile.perf | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore index 1932848343f3..43f6621ef05e 100644 --- a/tools/perf/.gitignore +++ b/tools/perf/.gitignore @@ -40,6 +40,7 @@ pmu-events/jevents feature/ libapi/ libbpf/ +libperf/ libsubcmd/ fixdep libtraceevent-dynamic-list diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index f8c712e26a69..57aec5a97270 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -294,11 +294,9 @@ strip-libs =3D $(filter-out -l%,$(1)) ifneq ($(OUTPUT),) TE_PATH=3D$(OUTPUT) PLUGINS_PATH=3D$(OUTPUT) - LIBPERF_PATH=3D$(OUTPUT) else TE_PATH=3D$(TRACE_EVENT_DIR) PLUGINS_PATH=3D$(TRACE_EVENT_DIR)plugins/ - LIBPERF_PATH=3D$(LIBPERF_DIR) endif =20 LIBTRACEEVENT =3D $(TE_PATH)libtraceevent.a @@ -340,7 +338,14 @@ LIBSUBCMD_DESTDIR =3D $(LIBSUBCMD_OUTPUT) LIBSUBCMD_INCLUDE =3D $(LIBSUBCMD_DESTDIR)/include LIBSUBCMD =3D $(LIBSUBCMD_OUTPUT)/libsubcmd.a =20 -LIBPERF =3D $(LIBPERF_PATH)libperf.a +ifneq ($(OUTPUT),) + LIBPERF_OUTPUT =3D $(abspath $(OUTPUT))/libperf +else + LIBPERF_OUTPUT =3D $(CURDIR)/libperf +endif +LIBPERF_DESTDIR =3D $(LIBPERF_OUTPUT) +LIBPERF_INCLUDE =3D $(LIBPERF_DESTDIR)/include +LIBPERF =3D $(LIBPERF_OUTPUT)/libperf.a export LIBPERF =20 # python extension build directories @@ -850,12 +855,14 @@ $(LIBBPF)-clean: $(call QUIET_CLEAN, libbpf) $(Q)$(RM) -r -- $(LIBBPF_OUTPUT) =20 -$(LIBPERF): FORCE - $(Q)$(MAKE) -C $(LIBPERF_DIR) EXTRA_CFLAGS=3D"$(LIBPERF_CFLAGS)" O=3D$(OU= TPUT) $(OUTPUT)libperf.a +$(LIBPERF): FORCE | $(LIBPERF_OUTPUT) + $(Q)$(MAKE) -C $(LIBPERF_DIR) O=3D$(LIBPERF_OUTPUT) \ + DESTDIR=3D$(LIBPERF_DESTDIR) prefix=3D \ + $@ install_headers =20 $(LIBPERF)-clean: $(call QUIET_CLEAN, libperf) - $(Q)$(MAKE) -C $(LIBPERF_DIR) O=3D$(OUTPUT) clean >/dev/null + $(Q)$(RM) -r -- $(LIBPERF_OUTPUT) =20 $(LIBSUBCMD): FORCE | $(LIBSUBCMD_OUTPUT) $(Q)$(MAKE) -C $(LIBSUBCMD_DIR) O=3D$(LIBSUBCMD_OUTPUT) \ @@ -1050,7 +1057,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) $(LIBAPI_OUTPUT) $(LIBBPF_OUTPUT) $(LIBSUBCMD_OUTPUT): +$(SKEL_TMP_OUT) $(LIBAPI_OUTPUT) $(LIBBPF_OUTPUT) $(LIBPERF_OUTPUT) $(LIBS= UBCMD_OUTPUT): $(Q)$(MKDIR) -p $@ =20 ifdef BUILD_BPF_SKEL --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 002AEC433FE for ; Wed, 9 Nov 2022 18:50:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229889AbiKISuh (ORCPT ); Wed, 9 Nov 2022 13:50:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229516AbiKISuT (ORCPT ); Wed, 9 Nov 2022 13:50:19 -0500 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3573E2C66F for ; Wed, 9 Nov 2022 10:50:15 -0800 (PST) Received: by mail-yb1-xb4a.google.com with SMTP id c188-20020a25c0c5000000b006d8eba07513so6514584ybf.17 for ; Wed, 09 Nov 2022 10:50:15 -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=xRgbCoc/lULFyNJb294eYOHrQbLaJy+ZT5w1IQWAa5I=; b=EumB9bc4LH+lOr72gPsmnqZkbUVJvtNqnAVGqcBRzbOPIPb93lyP9xToyLVVrTW3xi pE+Cb4RJx8qP+7rA7yW7Lo/U5cfjAW3dN1yaug91A2NmofBdX2kRGhXyoID3tcEjVg3V lnwEX8y2VL5Xz3GSosbkHJtAWKZTiqCCH5IZUjJn92jP9Mr+v69xYOxll43mTd2txxGN oQVNVy9V/+H0bFD77QGdw8vtLTZMf+Ynbj5kBjTJ+H7JvvJaPeOhhzJyjKdF6V3kvBbK irywbIPvvygBGF5IyDes/rIC7V83mRqgk7KoeO+v+1pqCWkWPTXB5X8fdFa7wg1stjV4 B6cg== 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=xRgbCoc/lULFyNJb294eYOHrQbLaJy+ZT5w1IQWAa5I=; b=2xNznZJGI1gI689VDcr+xPriJnoA7NesKOzL9dPRgsVnNWck00YHTYT+xiQZ13wbVV NUkFShtzaOmYIM1cFHxpoRrGy268FMTY1HVU1bkGZw52eub9U/xsKLcp/51XS4Ycy4tH UqOv4Qv98iF5FJwhbMgmxNChxzGrEj5oFAKMzdu0Leg0Jlh7TrT1JOFcexfW2PiXSamt iWmdaIWH/dBtXko0zz89q9zneYztuLqDTDQ9oB/4iCk+UXpLmlsG9o6izDTy+yFbp7AV PKV4GO/YlDxJXYpm83xrzoF4Fg5r4aEMjZ/ijh16cGr8ekjrvu0oYbAYI33vs7AhQkGL F/zA== X-Gm-Message-State: ACrzQf3jyayXnuKllFQbAvrkpC4mxKu+tFx1iFRvcXXEM+21s5QFm5r1 Ve3Ik3sLjbfWjTETp88Ycgi1oXPdOmN4 X-Google-Smtp-Source: AMsMyM6KIdfrpnuXHUD5FvQVfsOL1ei9T1aZnZ6PxsfVWAnlux/l0AOjXJKp4Xtin/4Hi/yL3cr1WxHC4aFw X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a5b:6d1:0:b0:6cb:77dc:1cde with SMTP id r17-20020a5b06d1000000b006cb77dc1cdemr58509073ybq.447.1668019815231; Wed, 09 Nov 2022 10:50:15 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:06 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-7-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 06/14] perf build: Install libtraceevent 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 libtraceevent build mirroring the libbpf, libsubcmd, libapi and libperf build, so that it is installed in a directory along with its headers. A later change will modify the include behavior. Similarly, the plugins are now installed into libtraceevent_plugins except they have no header files. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/perf/.gitignore | 3 ++- tools/perf/Makefile.perf | 57 ++++++++++++++++++++++++++-------------- 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore index 43f6621ef05e..65b995159cf1 100644 --- a/tools/perf/.gitignore +++ b/tools/perf/.gitignore @@ -42,6 +42,7 @@ libapi/ libbpf/ libperf/ libsubcmd/ +libtraceevent/ +libtraceevent_plugins/ fixdep -libtraceevent-dynamic-list Documentation/doc.dep diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 57aec5a97270..6e5e3f7730b5 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -242,7 +242,8 @@ sub-make: fixdep else # force_fixdep =20 LIBAPI_DIR =3D $(srctree)/tools/lib/api/ -TRACE_EVENT_DIR =3D $(srctree)/tools/lib/traceevent/ +LIBTRACEEVENT_DIR =3D $(srctree)/tools/lib/traceevent/ +LIBTRACEEVENT_PLUGINS_DIR =3D $(LIBTRACEEVENT_DIR)/plugins LIBBPF_DIR =3D $(srctree)/tools/lib/bpf/ LIBSUBCMD_DIR =3D $(srctree)/tools/lib/subcmd/ LIBPERF_DIR =3D $(srctree)/tools/lib/perf/ @@ -292,16 +293,17 @@ grep-libs =3D $(filter -l%,$(1)) strip-libs =3D $(filter-out -l%,$(1)) =20 ifneq ($(OUTPUT),) - TE_PATH=3D$(OUTPUT) - PLUGINS_PATH=3D$(OUTPUT) + LIBTRACEEVENT_OUTPUT =3D $(abspath $(OUTPUT))/libtraceevent else - TE_PATH=3D$(TRACE_EVENT_DIR) - PLUGINS_PATH=3D$(TRACE_EVENT_DIR)plugins/ + LIBTRACEEVENT_OUTPUT =3D $(CURDIR)/libtraceevent endif - -LIBTRACEEVENT =3D $(TE_PATH)libtraceevent.a +LIBTRACEEVENT_PLUGINS_OUTPUT =3D $(LIBTRACEEVENT_OUTPUT)_plugins +LIBTRACEEVENT_DESTDIR =3D $(LIBTRACEEVENT_OUTPUT) +LIBTRACEEVENT_PLUGINS_DESTDIR =3D $(LIBTRACEEVENT_PLUGINS_OUTPUT) +LIBTRACEEVENT_INCLUDE =3D $(LIBTRACEEVENT_DESTDIR)/include +LIBTRACEEVENT =3D $(LIBTRACEEVENT_OUTPUT)/libtraceevent.a export LIBTRACEEVENT -LIBTRACEEVENT_DYNAMIC_LIST =3D $(PLUGINS_PATH)libtraceevent-dynamic-list +LIBTRACEEVENT_DYNAMIC_LIST =3D $(LIBTRACEEVENT_PLUGINS_OUTPUT)/libtraceeve= nt-dynamic-list =20 # # The static build has no dynsym table, so this does not work for @@ -821,21 +823,33 @@ $(patsubst perf-%,%.o,$(PROGRAMS)): $(wildcard */*.h) =20 LIBTRACEEVENT_FLAGS +=3D plugin_dir=3D$(plugindir_SQ) 'EXTRA_CFLAGS=3D$(EX= TRA_CFLAGS)' 'LDFLAGS=3D$(filter-out -static,$(LDFLAGS))' =20 -$(LIBTRACEEVENT): FORCE - $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=3D$(OUTPUT) $(= OUTPUT)libtraceevent.a - -libtraceevent_plugins: FORCE - $(Q)$(MAKE) -C $(TRACE_EVENT_DIR)plugins $(LIBTRACEEVENT_FLAGS) O=3D$(OUT= PUT) plugins - -$(LIBTRACEEVENT_DYNAMIC_LIST): libtraceevent_plugins - $(Q)$(MAKE) -C $(TRACE_EVENT_DIR)plugins $(LIBTRACEEVENT_FLAGS) O=3D$(OUT= PUT) $(OUTPUT)libtraceevent-dynamic-list +$(LIBTRACEEVENT): FORCE | $(LIBTRACEEVENT_OUTPUT) + $(Q)$(MAKE) -C $(LIBTRACEEVENT_DIR) O=3D$(LIBTRACEEVENT_OUTPUT) \ + DESTDIR=3D$(LIBTRACEEVENT_DESTDIR) prefix=3D \ + $@ install_headers =20 $(LIBTRACEEVENT)-clean: $(call QUIET_CLEAN, libtraceevent) - $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) O=3D$(OUTPUT) clean >/dev/null + $(Q)$(RM) -r -- $(LIBTRACEEVENT_OUTPUT) + +libtraceevent_plugins: FORCE | $(LIBTRACEEVENT_PLUGINS_OUTPUT) + $(Q)$(MAKE) -C $(LIBTRACEEVENT_PLUGINS_DIR) O=3D$(LIBTRACEEVENT_PLUGINS_O= UTPUT) \ + DESTDIR=3D$(LIBTRACEEVENT_PLUGINS_DESTDIR) prefix=3D \ + plugins + +libtraceevent_plugins-clean: + $(call QUIET_CLEAN, libtraceevent_plugins) + $(Q)$(RM) -r -- $(LIBTRACEEVENT_PLUGINS_OUTPUT) + +$(LIBTRACEEVENT_DYNAMIC_LIST): libtraceevent_plugins + $(Q)$(MAKE) -C $(LIBTRACEEVENT_PLUGINS_DIR) O=3D$(LIBTRACEEVENT_PLUGINS_O= UTPUT) \ + DESTDIR=3D$(LIBTRACEEVENT_PLUGINS_DESTDIR) prefix=3D \ + $(LIBTRACEEVENT_FLAGS) $@ =20 install-traceevent-plugins: libtraceevent_plugins - $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=3D$(OUTPUT) in= stall_plugins + $(Q)$(MAKE) -C $(LIBTRACEEVENT_PLUGINS_DIR) O=3D$(LIBTRACEEVENT_PLUGINS_O= UTPUT) \ + DESTDIR=3D$(LIBTRACEEVENT_PLUGINS_DESTDIR) prefix=3D \ + $(LIBTRACEEVENT_FLAGS) install =20 $(LIBAPI): FORCE | $(LIBAPI_OUTPUT) $(Q)$(MAKE) -C $(LIBAPI_DIR) O=3D$(LIBAPI_OUTPUT) \ @@ -1060,6 +1074,11 @@ SKELETONS +=3D $(SKEL_OUT)/kwork_trace.skel.h $(SKEL_TMP_OUT) $(LIBAPI_OUTPUT) $(LIBBPF_OUTPUT) $(LIBPERF_OUTPUT) $(LIBS= UBCMD_OUTPUT): $(Q)$(MKDIR) -p $@ =20 +ifndef LIBTRACEEVENT_DYNAMIC +$(LIBTRACEEVENT_OUTPUT) $(LIBTRACEEVENT_PLUGINS_OUTPUT): + $(Q)$(MKDIR) -p $@ +endif + ifdef BUILD_BPF_SKEL BPFTOOL :=3D $(SKEL_TMP_OUT)/bootstrap/bpftool BPF_INCLUDE :=3D -I$(SKEL_TMP_OUT)/.. -I$(LIBBPF_INCLUDE) @@ -1102,7 +1121,7 @@ endif # BUILD_BPF_SKEL bpf-skel-clean: $(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS) =20 -clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD= )-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean tests-cor= esight-targets-clean +clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD= )-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean tests-cor= esight-targets-clean libtraceevent_plugins-clean $(call QUIET_CLEAN, core-objs) $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive = $(OUTPUT)perf-iostat $(LANG_BINDINGS) $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete= -o -name '\.*.d' -delete $(Q)$(RM) $(OUTPUT).config-detected --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 8B4D6C4332F for ; Wed, 9 Nov 2022 18:50:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231719AbiKISu4 (ORCPT ); Wed, 9 Nov 2022 13:50:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40906 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231758AbiKISud (ORCPT ); Wed, 9 Nov 2022 13:50:33 -0500 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00E951BEB4 for ; Wed, 9 Nov 2022 10:50:24 -0800 (PST) Received: by mail-yb1-xb4a.google.com with SMTP id e8-20020a5b0cc8000000b006bca0fa3ab6so17452034ybr.0 for ; Wed, 09 Nov 2022 10:50:24 -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=fypXC5s+GJmcY7CDMLyT+XFtNB7Xjp9TotzTIy3WOeg=; b=HAbhjun7P8t/79/dqBqP+rj7CyYnqpzlHYOYz8g1nvpWXxuQZYlbqRh9LHbV8RqgbL uHS/oLrLpvr+aQyl134bv9P6wJamiQBmge0w+xR1tvbKtSbUiEl/4P5xNGSy9WgNLmOu e0GS5qQ8N9KNKNIeQn/LxUMprUnZkwBEnLjNUfxMnxm/kL6MCYkN3M0NKRK0NBPfuZoG D7MQqsgGpWM3iNH3CmKU/JibAvi23pTxMjWaKuLGHvOiZPJAQ8qAZaaFgKc1RHunC6od EdQdtmjfGgzZjdrFGBzbvDoaU+hH6HIcL1nb10UsK5Oy6++UaslT+MVj06OpPYiDjF4b gPZg== 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=fypXC5s+GJmcY7CDMLyT+XFtNB7Xjp9TotzTIy3WOeg=; b=Utjz9kpFbbMYAc0Vz/tzSi2HqLAFQ0aK+MILreQPs5Qfzh/ep/bO9BzKm4DxOUQ5Li eMn7D2vEvdvhUiiA0aFtnLPDWZoXxFh8YEX4DKXmZmLwuPalg250DLNuPm56WYAe/T96 Lam1r5Waa06G4SFspPnGH/j3CSZvklL3EHpBKqO0HoYKqCsUcOFfMTdIGMmTUaLEZZ15 qEZ3Rk7Q4cTkgU+oDOs50WIR5X6FiNlOMtr/88nRhV4i2xwcPlZlnqCEJiJSLrM977BS ylCQdKAHd3C8sQ3HTtMJsqsrNTpA2a9OPzWOWwwJ4wrRC30bQ/IaQ8HVecuAB+8c6wCI wp2Q== X-Gm-Message-State: ACrzQf0RXrj/LNXRRB9jdkDsT/dTPv4Vzl6WLelT9yvocUKUE59rbEcl /E/unfCVVNGX/2EofdtBsaUEAxuZDhTf X-Google-Smtp-Source: AMsMyM7tKim5J0Fz3dpcQcx/D4llXsXbixQRKNPsvCvSgNnuoFw4d8N8sIGcMW/o/deoohzIfFLpecviFfba X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a25:dc87:0:b0:6cc:7352:b4dc with SMTP id y129-20020a25dc87000000b006cc7352b4dcmr1156840ybe.480.1668019824272; Wed, 09 Nov 2022 10:50:24 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:07 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-8-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 07/14] tools lib api: Add missing install headers 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" Headers necessary for the perf build. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/lib/api/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile index 6629d0fd0130..3e5ef1e0e890 100644 --- a/tools/lib/api/Makefile +++ b/tools/lib/api/Makefile @@ -103,7 +103,10 @@ install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,cpu.h,$(prefix)/include/api,644); \ $(call do_install,debug.h,$(prefix)/include/api,644); \ - $(call do_install,io.h,$(prefix)/include/api,644); + $(call do_install,io.h,$(prefix)/include/api,644); \ + $(call do_install,fd/array.h,$(prefix)/include/api/fd,644); \ + $(call do_install,fs/fs.h,$(prefix)/include/api/fs,644); + $(call do_install,fs/tracing_path.h,$(prefix)/include/api/fs,644); =20 install: install_lib install_headers =20 --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 8293EC4332F for ; Wed, 9 Nov 2022 18:51:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230130AbiKISvI (ORCPT ); Wed, 9 Nov 2022 13:51:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230031AbiKISuj (ORCPT ); Wed, 9 Nov 2022 13:50:39 -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 72B51222B5 for ; Wed, 9 Nov 2022 10:50:33 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id m4-20020a258004000000b006cbf32f7ed8so17326241ybk.9 for ; Wed, 09 Nov 2022 10:50:33 -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=lT5QMmKiixUc4hOkx2B5agh6ifSSv8GoT3OYojEFayc=; b=J5iBygppWMyynh3fjd0h1zimuLLVXPLRICNwzhaTkhTCHnJ60j86AFaw/f1brpqElJ OEnHLiYHfWemhwcN5jxIbJxJOEmbZB1bZu6qV+GB3URAJAroxMSJsNboaLLx75pLWFY4 NnLVvhzppfjD2+S4VNkt8wChsyw5+8/Bhz+kEOKVTu6SG4VAHP9zNdmUfTPO4bG1luwk CBFaCLcPIZfEBdeRvmSItRq/n4SZckWr3K3IX24HNN+IEsR3wCx5ZpZHzBE2sogc5wRf vs2/QeeLSCSvXEaexqvlkFi8GhQp2CBE/eieS1MsnzxjxRc5C6uVIQGMCmWg4Yvx/WTL 7qaw== 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=lT5QMmKiixUc4hOkx2B5agh6ifSSv8GoT3OYojEFayc=; b=HI+rTKoZlzBE06vpx3s4D1p51x7+T92WJj/09IiNfYBIJcsEFMXfidFpV958KI9Qt5 Jc4UahIihibhPm2tHDnYoPFHSOSbh8T1HY01L6gPM2RUQq8NyNlp9d3HbEq8RVnSCaF+ s8A0msoskeEv3GBNdlSvLAVuecXOH5yuSxIvcbgdGM0GjmEWqro2CR76uEJCZzHzuM8A aLCgpj3SwF3XiObf63NSXZKbMXioBlVB4CWniVzeHscsNjEk3uYvDAzKok6+lSt+IdK+ CQETd+9iMomfp4JwJAEh9kIaZiFgVecMBfiTjm0+ufjH5VtsmdO3OtY/FXh6NYHWKl7G IpOg== X-Gm-Message-State: ACrzQf3zqrc/5m/Qj3zZujUAQSQZ5RvMVPu8We1QAiNGtbNrhq3sbod1 bx5c7OzVubwdwukhMbZswUZF2gn9+zxE X-Google-Smtp-Source: AMsMyM4N/f2ycS6qQcmparzQwYVX6dleyP6/S0ma7Cd+HCsCnLDoZE6zuY8W1FFoHP1q5N61W1lqeBMzgilI X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a25:af12:0:b0:6cb:b5d7:d64d with SMTP id a18-20020a25af12000000b006cbb5d7d64dmr60679393ybh.510.1668019832763; Wed, 09 Nov 2022 10:50:32 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:08 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-9-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 08/14] tools lib perf: Add missing install headers 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" Headers necessary for the perf build. Note, internal headers are also installed as these are necessary for the build. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/lib/perf/Makefile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/lib/perf/Makefile b/tools/lib/perf/Makefile index 21df023a2103..1badc0a04676 100644 --- a/tools/lib/perf/Makefile +++ b/tools/lib/perf/Makefile @@ -189,13 +189,21 @@ install_lib: libs =20 install_headers: $(call QUIET_INSTALL, headers) \ + $(call do_install,include/perf/bpf_perf.h,$(prefix)/include/perf,644); \ $(call do_install,include/perf/core.h,$(prefix)/include/perf,644); \ $(call do_install,include/perf/cpumap.h,$(prefix)/include/perf,644); \ $(call do_install,include/perf/threadmap.h,$(prefix)/include/perf,644); \ $(call do_install,include/perf/evlist.h,$(prefix)/include/perf,644); \ $(call do_install,include/perf/evsel.h,$(prefix)/include/perf,644); \ $(call do_install,include/perf/event.h,$(prefix)/include/perf,644); \ - $(call do_install,include/perf/mmap.h,$(prefix)/include/perf,644); + $(call do_install,include/perf/mmap.h,$(prefix)/include/perf,644); \ + $(call do_install,include/internal/cpumap.h,$(prefix)/include/internal,6= 44); \ + $(call do_install,include/internal/evlist.h,$(prefix)/include/internal,6= 44); \ + $(call do_install,include/internal/evsel.h,$(prefix)/include/internal,64= 4); \ + $(call do_install,include/internal/lib.h,$(prefix)/include/internal,644)= ; \ + $(call do_install,include/internal/mmap.h,$(prefix)/include/internal,644= ); \ + $(call do_install,include/internal/threadmap.h,$(prefix)/include/interna= l,644); \ + $(call do_install,include/internal/xyarray.h,$(prefix)/include/internal,= 644); =20 install_pkgconfig: $(LIBPERF_PC) $(call QUIET_INSTALL, $(LIBPERF_PC)) \ --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 B61CAC43219 for ; Wed, 9 Nov 2022 18:51:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230269AbiKISvZ (ORCPT ); Wed, 9 Nov 2022 13:51:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39954 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231728AbiKISu6 (ORCPT ); Wed, 9 Nov 2022 13:50:58 -0500 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AC992D744 for ; Wed, 9 Nov 2022 10:50:42 -0800 (PST) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-37010fefe48so170584707b3.19 for ; Wed, 09 Nov 2022 10:50:42 -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=muU+zEa3MJNYALn8xXqWOElORRD713Llcp74WiFN9WY=; b=SfPv1cgUAbM/buANqiprCgGiNsnWrnfOHq4RL0cN1i7tIknjj9leomXlYxLDSVNuYi KGNT6FIsAm3iDJ4vXSKRmVObWHx+JiX2ZA/IiAJO/esQO+QSgqIVK9iUM8Nlmv0seYSP TS3aO2Qz2gTm0tn3IVsDKHy/vTzTXQ+QRXHl/iEH3HzC5cNpLBY1MatIrtCfk1rHs6Q8 l9sucyEqfmzlNk1up39LnceSWq85r65lR+l2wg5je/37gXF7BqycJ+IJGC9NR7jQfu/A hVXCCu+VJZMo4iVHw7ppwfxiDCZK+XD/m4RqQAWE378WqleTl85BJ3w/olOhHEvSu6mr sBng== 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=muU+zEa3MJNYALn8xXqWOElORRD713Llcp74WiFN9WY=; b=yQ0YHqxzRdbf5w3yDDuEY+7GlPWsPHpjqBY80QPbbAXt2YJ9O1zlxeZK4mplfmAYfc GpaNB1exVPkCLj+Kiyx7+LfCL2ob+GXHAyzopFv5yuK9bki6HJeDwacXNLh27Hg+NCgU 6gKESzvlcbvo5xNHbZDR4FDBQ0uFdGPozSmhdMvmbKwe98sf2YG7ll/2r/QtisiwJjlc K6LsDKv/XRDLQkKI7sOy270soBCxo95GHGxGW3+dmDhO6MF+SlYLVljSDqbPx5t91pVA N0yEcYQflPKSj2sdwTkaLOr+++X2wZH6xllR4igQZtu2/QGQEn0FlylUKW+21rFIkBrs Y9jg== X-Gm-Message-State: ACrzQf3seQP/TrRxyv32fLZWNEzU9sxMCMIph+pHzPuSE+Ricm4SxEJJ 8BfhP6VDkh218LAXGEyojtDMf+RMc9Co X-Google-Smtp-Source: AMsMyM5VWH92X5x0mD0J/Z9Zva+Ay7U+TFc0wKads0Lk8BgNsaWmfFvVlDOquMCWWccuwBfIlLFJAXnT9Y8j X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a25:6757:0:b0:6cf:f079:62f with SMTP id b84-20020a256757000000b006cff079062fmr37251446ybc.23.1668019841501; Wed, 09 Nov 2022 10:50:41 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:09 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-10-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 09/14] tool lib symbol: Add Makefile/Build 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" Add sufficient Makefile for libsymbol to be built as a dependency and header files installed. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/lib/symbol/Build | 1 + tools/lib/symbol/Makefile | 115 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 tools/lib/symbol/Build create mode 100644 tools/lib/symbol/Makefile diff --git a/tools/lib/symbol/Build b/tools/lib/symbol/Build new file mode 100644 index 000000000000..9b9a9c78d3c9 --- /dev/null +++ b/tools/lib/symbol/Build @@ -0,0 +1 @@ +libsymbol-y +=3D kallsyms.o diff --git a/tools/lib/symbol/Makefile b/tools/lib/symbol/Makefile new file mode 100644 index 000000000000..4c1d6b53032d --- /dev/null +++ b/tools/lib/symbol/Makefile @@ -0,0 +1,115 @@ +# SPDX-License-Identifier: GPL-2.0 +include ../../scripts/Makefile.include +include ../../scripts/utilities.mak # QUIET_CLEAN + +ifeq ($(srctree),) +srctree :=3D $(patsubst %/,%,$(dir $(CURDIR))) +srctree :=3D $(patsubst %/,%,$(dir $(srctree))) +srctree :=3D $(patsubst %/,%,$(dir $(srctree))) +#$(info Determined 'srctree' to be $(srctree)) +endif + +CC ?=3D $(CROSS_COMPILE)gcc +AR ?=3D $(CROSS_COMPILE)ar +LD ?=3D $(CROSS_COMPILE)ld + +MAKEFLAGS +=3D --no-print-directory + +INSTALL =3D install + + +# Use DESTDIR for installing into a different root directory. +# This is useful for building a package. The program will be +# installed in this directory as if it was the root directory. +# Then the build tool can move it later. +DESTDIR ?=3D +DESTDIR_SQ =3D '$(subst ','\'',$(DESTDIR))' + +LIBFILE =3D $(OUTPUT)libsymbol.a + +CFLAGS :=3D $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) +CFLAGS +=3D -ggdb3 -Wall -Wextra -std=3Dgnu11 -U_FORTIFY_SOURCE -fPIC + +ifeq ($(DEBUG),0) +ifeq ($(CC_NO_CLANG), 0) + CFLAGS +=3D -O3 +else + CFLAGS +=3D -O6 +endif +endif + +ifeq ($(DEBUG),0) + CFLAGS +=3D -D_FORTIFY_SOURCE +endif + +# Treat warnings as errors unless directed not to +ifneq ($(WERROR),0) + CFLAGS +=3D -Werror +endif + +CFLAGS +=3D -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=3D64 + +CFLAGS +=3D -I$(srctree)/tools/lib +CFLAGS +=3D -I$(srctree)/tools/include + +RM =3D rm -f + +SYMBOL_IN :=3D $(OUTPUT)libsymbol-in.o + +ifeq ($(LP64), 1) + libdir_relative =3D lib64 +else + libdir_relative =3D lib +endif + +prefix ?=3D +libdir =3D $(prefix)/$(libdir_relative) + +# Shell quotes +libdir_SQ =3D $(subst ','\'',$(libdir)) + +all: + +export srctree OUTPUT CC LD CFLAGS V +include $(srctree)/tools/build/Makefile.include +include $(srctree)/tools/scripts/Makefile.include + +all: fixdep $(LIBFILE) + +$(SYMBOL_IN): FORCE + $(MAKE) $(build)=3Dlibsymbol V=3D1 + +$(LIBFILE): $(SYMBOL_IN) + $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(SYMBOL_IN) + +define do_install_mkdir + if [ ! -d '$(DESTDIR_SQ)$1' ]; then \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$1'; \ + fi +endef + +define do_install + if [ ! -d '$(DESTDIR_SQ)$2' ]; then \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$2'; \ + fi; \ + $(INSTALL) $1 $(if $3,-m $3,) '$(DESTDIR_SQ)$2' +endef + +install_lib: $(LIBFILE) + $(call QUIET_INSTALL, $(LIBFILE)) \ + $(call do_install_mkdir,$(libdir_SQ)); \ + cp -fpR $(LIBFILE) $(DESTDIR)$(libdir_SQ) + +install_headers: + $(call QUIET_INSTALL, headers) \ + $(call do_install,kallsyms.h,$(prefix)/include/symbol,644); + +install: install_lib install_headers + +clean: + $(call QUIET_CLEAN, libsymbol) $(RM) $(LIBFILE); \ + find $(or $(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | x= args $(RM) + +FORCE: + +.PHONY: clean FORCE --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 648B7C43217 for ; Wed, 9 Nov 2022 18:51:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231670AbiKISvf (ORCPT ); Wed, 9 Nov 2022 13:51:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41390 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229900AbiKISvO (ORCPT ); Wed, 9 Nov 2022 13:51:14 -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 E2C851707F for ; Wed, 9 Nov 2022 10:50:50 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id 204-20020a2510d5000000b006be7970889cso17642028ybq.21 for ; Wed, 09 Nov 2022 10:50:50 -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=XDNhPIt4/z9SJ7uwDwdB3T2uKfBtceScPS7ow3Eeh9c=; b=HALTwabRTeqIzYg2xWUsMszov/CdFvQk0hIIEeL/AcK32EAM9q84QhHnbVz008nHY3 JOKVZebfnNR9iKzyrjIyOcWDlfNPtNhl4ck93W/pIAmNlDnr3NeauapCFXAPYEDzIvtp 0H4H9yacURDsTcSMOOjd+IVyiCH5FIFi6GxSA1GunFz1/EWW/oD+emnblFMWIfcDKNif eyQGXIZIQAinyR0d7O5NP4BLFO7Ygx1i6GPQ1h84SY/oGum8pe/ejkzsYR0anmjaOHVn HjEUyMZ9xHCau0S2yk7K549RVwSJPH5AFBKngVcSeCpRR6GBzMUjqcvascMCSwUyt+Z6 PUag== 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=XDNhPIt4/z9SJ7uwDwdB3T2uKfBtceScPS7ow3Eeh9c=; b=KQCGZZNU94SwqskkyjKqoF78bQmhbVhx/C9GmaHDoIblLWVyHKsC6KhpngCsDRfr8C UlX3DpnRWCrRP0YZG3kreFnVYV18MekSlXhCoNaLs1VIRXJ9HFbm3Dth5kFm/piLqY3j Ni3ji9QjPEffawksnNjoqOSFwXRGLeyW1deRqlNRZdu8c+TYJWRtEaPLUSvn7BGFWfIO uF0tDVKI8RVtjKZJZ4DUz2XZM1/Sutw7HAerMlqHgGlq+u8jUeTQqiXrLVNfiZCnY9MS O0yrThBAfMFqDuWsnBEXmV3kCidGIV2iMTPp7tSuyxR9tEOtMKWhT65TODbymCDLv/BJ i0uQ== X-Gm-Message-State: ACrzQf1ge6yy8Wro7CX+r0iznJUscBoa+6lnAgd8lqgqqXgA0G+BQ/1d NBdEBbtuE0ORW5puNfVZMluIfGkxR2OM X-Google-Smtp-Source: AMsMyM6FTO2X32armDtX3+De/2vmhDy0NZShGOke/PKQ3s72ZThETClUjM776A1o25YdFTpJdeAhrUzm+uBC X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a05:690c:a0c:b0:36e:8228:a127 with SMTP id cg12-20020a05690c0a0c00b0036e8228a127mr1137236ywb.299.1668019850065; Wed, 09 Nov 2022 10:50:50 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:10 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-11-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 10/14] perf build: Install libsymbol 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 and libsymbol headers are all found via this path, making it impossible to override include behavior. Change the libsymbol build mirroring the libbpf, libsubcmd, libapi, libperf and libtraceevent build, so that it is installed in a directory along with its headers. A later change will modify the include behavior. Don't build kallsyms.o as part of util as this will lead to duplicate definitions. Add kallsym's directory to the MANIFEST rather than individual files, so that the Build and Makefile are added to a source tar ball. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/perf/.gitignore | 1 + tools/perf/MANIFEST | 3 +-- tools/perf/Makefile.perf | 25 ++++++++++++++++++++++--- tools/perf/util/Build | 5 ----- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore index 65b995159cf1..675c03ec1f1c 100644 --- a/tools/perf/.gitignore +++ b/tools/perf/.gitignore @@ -42,6 +42,7 @@ libapi/ libbpf/ libperf/ libsubcmd/ +libsymbol/ libtraceevent/ libtraceevent_plugins/ fixdep diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST index f5d72f936a6b..c8e8e05b4ff1 100644 --- a/tools/perf/MANIFEST +++ b/tools/perf/MANIFEST @@ -13,8 +13,7 @@ tools/lib/ctype.c tools/lib/hweight.c tools/lib/rbtree.c tools/lib/string.c -tools/lib/symbol/kallsyms.c -tools/lib/symbol/kallsyms.h +tools/lib/symbol tools/lib/find_bit.c tools/lib/bitmap.c tools/lib/list_sort.c diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 6e5e3f7730b5..6c1a2a3ccc38 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -246,6 +246,7 @@ LIBTRACEEVENT_DIR =3D $(srctree)/tools/lib/traceevent/ LIBTRACEEVENT_PLUGINS_DIR =3D $(LIBTRACEEVENT_DIR)/plugins LIBBPF_DIR =3D $(srctree)/tools/lib/bpf/ LIBSUBCMD_DIR =3D $(srctree)/tools/lib/subcmd/ +LIBSYMBOL_DIR =3D $(srctree)/tools/lib/symbol/ LIBPERF_DIR =3D $(srctree)/tools/lib/perf/ DOC_DIR =3D $(srctree)/tools/perf/Documentation/ =20 @@ -340,6 +341,15 @@ LIBSUBCMD_DESTDIR =3D $(LIBSUBCMD_OUTPUT) LIBSUBCMD_INCLUDE =3D $(LIBSUBCMD_DESTDIR)/include LIBSUBCMD =3D $(LIBSUBCMD_OUTPUT)/libsubcmd.a =20 +ifneq ($(OUTPUT),) + LIBSYMBOL_OUTPUT =3D $(abspath $(OUTPUT))/libsymbol +else + LIBSYMBOL_OUTPUT =3D $(CURDIR)/libsymbol +endif +LIBSYMBOL_DESTDIR =3D $(LIBSYMBOL_OUTPUT) +LIBSYMBOL_INCLUDE =3D $(LIBSYMBOL_DESTDIR)/include +LIBSYMBOL =3D $(LIBSYMBOL_OUTPUT)/libsymbol.a + ifneq ($(OUTPUT),) LIBPERF_OUTPUT =3D $(abspath $(OUTPUT))/libperf else @@ -398,7 +408,7 @@ endif =20 export PERL_PATH =20 -PERFLIBS =3D $(LIBAPI) $(LIBSUBCMD) $(LIBPERF) +PERFLIBS =3D $(LIBAPI) $(LIBPERF) $(LIBSUBCMD) $(LIBSYMBOL) ifndef NO_LIBBPF ifndef LIBBPF_DYNAMIC PERFLIBS +=3D $(LIBBPF) @@ -887,6 +897,15 @@ $(LIBSUBCMD)-clean: $(call QUIET_CLEAN, libsubcmd) $(Q)$(RM) -r -- $(LIBSUBCMD_OUTPUT) =20 +$(LIBSYMBOL): FORCE | $(LIBSYMBOL_OUTPUT) + $(Q)$(MAKE) -C $(LIBSYMBOL_DIR) O=3D$(LIBSYMBOL_OUTPUT) \ + DESTDIR=3D$(LIBSYMBOL_DESTDIR) prefix=3D \ + $@ install_headers + +$(LIBSYMBOL)-clean: + $(call QUIET_CLEAN, libsymbol) + $(Q)$(RM) -r -- $(LIBSYMBOL_OUTPUT) + help: @echo 'Perf make targets:' @echo ' doc - make *all* documentation (see below)' @@ -1071,7 +1090,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) $(LIBAPI_OUTPUT) $(LIBBPF_OUTPUT) $(LIBPERF_OUTPUT) $(LIBS= UBCMD_OUTPUT): +$(SKEL_TMP_OUT) $(LIBAPI_OUTPUT) $(LIBBPF_OUTPUT) $(LIBPERF_OUTPUT) $(LIBS= UBCMD_OUTPUT) $(LIBSYMBOL_OUTPUT): $(Q)$(MKDIR) -p $@ =20 ifndef LIBTRACEEVENT_DYNAMIC @@ -1121,7 +1140,7 @@ endif # BUILD_BPF_SKEL bpf-skel-clean: $(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS) =20 -clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD= )-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean tests-cor= esight-targets-clean libtraceevent_plugins-clean +clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD= )-clean $(LIBSYMBOL)-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-s= kel-clean tests-coresight-targets-clean libtraceevent_plugins-clean $(call QUIET_CLEAN, core-objs) $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive = $(OUTPUT)perf-iostat $(LANG_BINDINGS) $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete= -o -name '\.*.d' -delete $(Q)$(RM) $(OUTPUT).config-detected diff --git a/tools/perf/util/Build b/tools/perf/util/Build index 47a7db3ad0a1..ab37f588ee8b 100644 --- a/tools/perf/util/Build +++ b/tools/perf/util/Build @@ -19,7 +19,6 @@ perf-y +=3D perf_event_attr_fprintf.o perf-y +=3D evswitch.o perf-y +=3D find_bit.o perf-y +=3D get_current_dir_name.o -perf-y +=3D kallsyms.o perf-y +=3D levenshtein.o perf-y +=3D llvm-utils.o perf-y +=3D mmap.o @@ -294,10 +293,6 @@ CFLAGS_expr.o +=3D -Wno-redundant-decls CFLAGS_header.o +=3D -include $(OUTPUT)PERF-VERSION-FILE CFLAGS_arm-spe.o +=3D -I$(srctree)/tools/arch/arm64/include/ =20 -$(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE - $(call rule_mkdir) - $(call if_changed_dep,cc_o_c) - $(OUTPUT)util/argv_split.o: ../lib/argv_split.c FORCE $(call rule_mkdir) $(call if_changed_dep,cc_o_c) --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 0BF06C4332F for ; Wed, 9 Nov 2022 18:51:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231826AbiKISvj (ORCPT ); Wed, 9 Nov 2022 13:51:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231703AbiKISvS (ORCPT ); Wed, 9 Nov 2022 13:51:18 -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 6361C18B3A for ; Wed, 9 Nov 2022 10:50:58 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id p66-20020a257445000000b006ca0ba7608fso17376951ybc.7 for ; Wed, 09 Nov 2022 10:50:58 -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=0ig4l2ipqQRcuxZUCV8QGPuQA2SRfsl5B/KVZE9nXHU=; b=b7msoA8AoncFaspHrmwgH6klqKpT4URiSF4ZAdCaBph/QCJ4t4ghzAAqjIYIZYmbXo hhdFurpf02gKWsWyRVtIaJMW5X60TKr2h5MeJQIoylybrjkhfoLWSHZf9ymTUnXG6INr iigYpGgy1zdUhmN07pJP058WLgQExkAM3iH+WLErGpOLeHcN6EtlfpkIiJn2ftGMPBIH wZNZ1iLYrwNM8sIdsQhPxRFHVWdNPRIyUux26GHQ5ATPlp3BWFJy+60AYcf7np3+iapL 2tnQffN4jerX+fIbyF4EWj7c5GIb4KSE0+qeXYxB/GXFMa3n86g/+I3Lem1zS7BxxvAJ 66dQ== 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=0ig4l2ipqQRcuxZUCV8QGPuQA2SRfsl5B/KVZE9nXHU=; b=ZiHqhVExhhegvp3amz11VtH0GLpxC2zFFWqjneOWc4vIlnhgcfhf51vNMG1tnjpsfH tZkKtmyi9NXMkxlRHkP3W3lrBYZZM9WqA3so5+zd9eSM1qOYL+68sxpDYbT2cchmrNcv jSq/9KzhsZzkkiVowTHz83DkUecjKZOvoJf9n4CinfPYX2GIAt5AC5/12B9aV1X6vxrH ZXkHJZtKfgDVqa3t/TqI8d0xHjrrXztfXhE2Wou5L87PTCPVUIG9LxKxE/8FOwyXKsr0 LEn4rlWUEFuJqeSgzLEKsNH9MiLUTvq79+HDy9DyR8AIQ2ISQrB8euuYk0KJHa/V0Ej2 PRdg== X-Gm-Message-State: ACrzQf20dLkKAnvmuJKT+CfoNmb05NcESxNpFTesMSUjecKFooK7pxUm y1Z27r3Lbdp9myx9UOmImSyypeD/U2vo X-Google-Smtp-Source: AMsMyM7EXK7A5OBuVY/9+gm4abCVR4vVdYR/D/GkIiYEaHDdLZVgcCVrdkaC7SatYykj8VrsVih4GZR7KZNU X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a5b:792:0:b0:6bd:2b3:a4de with SMTP id b18-20020a5b0792000000b006bd02b3a4demr1142080ybq.123.1668019857697; Wed, 09 Nov 2022 10:50:57 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:11 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-12-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 11/14] perf expr: Tidy hashmap dependency 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" hashmap.h comes from libbpf but isn't installed with its headers. Always use the header file of the code in util. Change the hashmap.h dependency in expr.h to a forward declaration, add the necessary header file includes in the C files. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/perf/tests/expr.c | 1 + tools/perf/tests/pmu-events.c | 1 + tools/perf/util/bpf-loader.c | 4 ---- tools/perf/util/evsel.c | 4 ---- tools/perf/util/expr.c | 1 + tools/perf/util/expr.h | 7 +------ tools/perf/util/metricgroup.c | 1 + tools/perf/util/stat-shadow.c | 1 + tools/perf/util/stat.c | 4 ---- 9 files changed, 6 insertions(+), 18 deletions(-) diff --git a/tools/perf/tests/expr.c b/tools/perf/tests/expr.c index 6512f5e22045..b6667501ebb4 100644 --- a/tools/perf/tests/expr.c +++ b/tools/perf/tests/expr.c @@ -2,6 +2,7 @@ #include "util/cputopo.h" #include "util/debug.h" #include "util/expr.h" +#include "util/hashmap.h" #include "util/header.h" #include "util/smt.h" #include "tests.h" diff --git a/tools/perf/tests/pmu-events.c b/tools/perf/tests/pmu-events.c index 5d0d3b239a68..f7b9dbbad97f 100644 --- a/tools/perf/tests/pmu-events.c +++ b/tools/perf/tests/pmu-events.c @@ -12,6 +12,7 @@ #include #include "util/evlist.h" #include "util/expr.h" +#include "util/hashmap.h" #include "util/parse-events.h" #include "metricgroup.h" #include "stat.h" diff --git a/tools/perf/util/bpf-loader.c b/tools/perf/util/bpf-loader.c index f4adeccdbbcb..b3c8174360bf 100644 --- a/tools/perf/util/bpf-loader.c +++ b/tools/perf/util/bpf-loader.c @@ -27,11 +27,7 @@ #include "util.h" #include "llvm-utils.h" #include "c++/clang-c.h" -#ifdef HAVE_LIBBPF_SUPPORT -#include -#else #include "util/hashmap.h" -#endif #include "asm/bug.h" =20 #include diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index cdde5b5f8ad2..2139e8b0e401 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -46,11 +46,7 @@ #include "string2.h" #include "memswap.h" #include "util.h" -#ifdef HAVE_LIBBPF_SUPPORT -#include -#else #include "util/hashmap.h" -#endif #include "pmu-hybrid.h" #include "off_cpu.h" #include "../perf-sys.h" diff --git a/tools/perf/util/expr.c b/tools/perf/util/expr.c index aaacf514dc09..140f2acdb325 100644 --- a/tools/perf/util/expr.c +++ b/tools/perf/util/expr.c @@ -11,6 +11,7 @@ #include "expr.h" #include "expr-bison.h" #include "expr-flex.h" +#include "util/hashmap.h" #include "smt.h" #include "tsc.h" #include diff --git a/tools/perf/util/expr.h b/tools/perf/util/expr.h index d6c1668dc1a0..029271540fb0 100644 --- a/tools/perf/util/expr.h +++ b/tools/perf/util/expr.h @@ -2,12 +2,7 @@ #ifndef PARSE_CTX_H #define PARSE_CTX_H 1 =20 -#ifdef HAVE_LIBBPF_SUPPORT -#include -#else -#include "util/hashmap.h" -#endif - +struct hashmap; struct metric_ref; =20 struct expr_scanner_ctx { diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c index 4c98ac29ee13..15441e9bfb73 100644 --- a/tools/perf/util/metricgroup.c +++ b/tools/perf/util/metricgroup.c @@ -28,6 +28,7 @@ #include "util.h" #include #include "cgroup.h" +#include "util/hashmap.h" =20 struct metric_event *metricgroup__lookup(struct rblist *metric_events, struct evsel *evsel, diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c index 07b29fe272c7..9bde9224a97c 100644 --- a/tools/perf/util/stat-shadow.c +++ b/tools/perf/util/stat-shadow.c @@ -14,6 +14,7 @@ #include "units.h" #include #include "iostat.h" +#include "util/hashmap.h" =20 /* * AGGR_GLOBAL: Use CPU 0 diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c index 3a432a949d46..273a5b32e815 100644 --- a/tools/perf/util/stat.c +++ b/tools/perf/util/stat.c @@ -14,11 +14,7 @@ #include "evlist.h" #include "evsel.h" #include "thread_map.h" -#ifdef HAVE_LIBBPF_SUPPORT -#include -#else #include "util/hashmap.h" -#endif #include =20 void update_stats(struct stats *stats, u64 val) --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 4C27CC433FE for ; Wed, 9 Nov 2022 18:52:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231232AbiKISwO (ORCPT ); Wed, 9 Nov 2022 13:52:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40794 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231199AbiKISvZ (ORCPT ); Wed, 9 Nov 2022 13:51:25 -0500 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3AFF024954 for ; Wed, 9 Nov 2022 10:51:06 -0800 (PST) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-348608c1cd3so172200957b3.10 for ; Wed, 09 Nov 2022 10:51:06 -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=+sLyT/Gr9bkwApsNO104BHOJyfG2Scy1gd5V/ZkjXU8=; b=EXPYNDw8q5sMJw/9h7sXe54NaX+ABlrBG1Wkq3hZtn7Ly9uN7CJRP3sLwHDwmnARdX NUKekK7B9YJ6VUBNcmn/rOeUdBvy7RW/PLXTvopZRWHqpbh+5pXYy8iQyfOKfmp1srRh k5ZtFsZMK9cOdTujKz1D8zGojY+haXTOh8gGHObFlO4iLcTC7e5TII5AJ+YD2CWH29MG g+gqUe66dVtnGOsdBFEONBILr/BpnP7rMG5w2KIeg7i+csPdrqcW67ek2hD2JJ1YYCDq zj0gzDbNdDNIeL/CmiutymV23VmKicaFyhrv3F4ghu2BIX1essHFw2dCtlNs0RE25sqE 7ZUQ== 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=+sLyT/Gr9bkwApsNO104BHOJyfG2Scy1gd5V/ZkjXU8=; b=5k6jiroHBY9zcZ3RdWMvvNjlbTdz8zSbCwVzeSiJ5rB4XjnuBvCiat4cfLg6PhIJE1 oJdSQpOmXfxhN3uSawrgxipVq8bMCNPqlEPbATxrcnmUxr2j30wdmZG0hQgutsXFyDeb uw0QWQYB8mhsmonYjIO3utcSSjsQoHWLgDjDnpWEuXkJGtwdul1Ju5LI1L51EupXnYtx oycWvz/THlVQGUotrHf/zjq/LWh1kMNJQa5bHSLCr7g/dZQhDIOaLsxQh3wfquvn1jLe s1CFF5OhJ0Ud1AHCEmyniiTSEARsgSMKl4lKpS8vm0PqJ4q4oYb8N/SGkQb2s+aILcyY a3yg== X-Gm-Message-State: ANoB5pmRl6gbx43itkhsVPvjsmUp5Gl+PGyPZH6dtwMNKKx/eCK/rZ2D eUs4f7Nk99gOsCxBpvLGb1J7RCF1IN9q X-Google-Smtp-Source: AA0mqf4HxDGA952FGpZO3fPfjGLbv9zXSjWQY5CePCx7XUHVmB1pNjrB3rDzlhFh2UsrbPTXX7k1tQCSGVMa X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a81:19cb:0:b0:373:e88c:bc61 with SMTP id 194-20020a8119cb000000b00373e88cbc61mr905833ywz.226.1668019865531; Wed, 09 Nov 2022 10:51:05 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:12 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-13-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 12/14] perf thread_map: Reduce exposure of libperf internal API 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" Remove unnecessary include of internal threadmap.h and refcount.h in thread_map.h. Switch to using public APIs when possible or including the internal header file in the C file. Fix a transitive dependency in openat-syscall.c broken by the clean up. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/perf/builtin-stat.c | 1 + tools/perf/builtin-trace.c | 4 ++-- tools/perf/tests/openat-syscall.c | 1 + tools/perf/tests/thread-map.c | 1 + tools/perf/util/bpf_counter.c | 2 +- tools/perf/util/evsel.c | 1 + tools/perf/util/python.c | 6 +++--- tools/perf/util/scripting-engines/trace-event-python.c | 2 +- tools/perf/util/thread_map.c | 1 + tools/perf/util/thread_map.h | 2 -- 10 files changed, 12 insertions(+), 9 deletions(-) diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index d5e1670bca20..fb2d13650e42 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -93,6 +93,7 @@ =20 #include #include +#include =20 #define DEFAULT_SEPARATOR " " #define FREEZE_ON_SMI_PATH "devices/cpu/freeze_on_smi" diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index 5690c33c523b..c554dd9bcfee 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c @@ -4093,8 +4093,8 @@ static int trace__run(struct trace *trace, int argc, = const char **argv) } =20 trace->multiple_threads =3D perf_thread_map__pid(evlist->core.threads, 0)= =3D=3D -1 || - evlist->core.threads->nr > 1 || - evlist__first(evlist)->core.attr.inherit; + perf_thread_map__nr(evlist->core.threads) > 1 || + evlist__first(evlist)->core.attr.inherit; =20 /* * Now that we already used evsel->core.attr to ask the kernel to setup t= he diff --git a/tools/perf/tests/openat-syscall.c b/tools/perf/tests/openat-sy= scall.c index 7e05b8b5cc95..131b62271bfa 100644 --- a/tools/perf/tests/openat-syscall.c +++ b/tools/perf/tests/openat-syscall.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "thread_map.h" #include "evsel.h" #include "debug.h" diff --git a/tools/perf/tests/thread-map.c b/tools/perf/tests/thread-map.c index e413c1387fcb..74308c1368fe 100644 --- a/tools/perf/tests/thread-map.c +++ b/tools/perf/tests/thread-map.c @@ -11,6 +11,7 @@ #include "util/synthetic-events.h" #include #include +#include =20 struct perf_sample; struct perf_tool; diff --git a/tools/perf/util/bpf_counter.c b/tools/perf/util/bpf_counter.c index ef1c15e4aeba..eeee899fcf34 100644 --- a/tools/perf/util/bpf_counter.c +++ b/tools/perf/util/bpf_counter.c @@ -561,7 +561,7 @@ static int bperf__load(struct evsel *evsel, struct targ= et *target) =20 if (filter_type =3D=3D BPERF_FILTER_PID || filter_type =3D=3D BPERF_FILTER_TGID) - key =3D evsel->core.threads->map[i].pid; + key =3D perf_thread_map__pid(evsel->core.threads, i); else if (filter_type =3D=3D BPERF_FILTER_CPU) key =3D evsel->core.cpus->map[i].cpu; else diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 2139e8b0e401..2e212ae73b9f 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -53,6 +53,7 @@ #include "util/parse-branch-options.h" #include #include +#include =20 #include =20 diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 5be5fa2391de..b5941c74a0d6 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -718,17 +718,17 @@ static Py_ssize_t pyrf_thread_map__length(PyObject *o= bj) { struct pyrf_thread_map *pthreads =3D (void *)obj; =20 - return pthreads->threads->nr; + return perf_thread_map__nr(pthreads->threads); } =20 static PyObject *pyrf_thread_map__item(PyObject *obj, Py_ssize_t i) { struct pyrf_thread_map *pthreads =3D (void *)obj; =20 - if (i >=3D pthreads->threads->nr) + if (i >=3D perf_thread_map__nr(pthreads->threads)) return NULL; =20 - return Py_BuildValue("i", pthreads->threads->map[i]); + return Py_BuildValue("i", perf_thread_map__pid(pthreads->threads, i)); } =20 static PySequenceMethods pyrf_thread_map__sequence_methods =3D { diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools= /perf/util/scripting-engines/trace-event-python.c index 1985d1a42a22..1cf65db8f861 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c @@ -1654,7 +1654,7 @@ static void python_process_stat(struct perf_stat_conf= ig *config, struct perf_cpu_map *cpus =3D counter->core.cpus; int cpu, thread; =20 - for (thread =3D 0; thread < threads->nr; thread++) { + for (thread =3D 0; thread < perf_thread_map__nr(threads); thread++) { for (cpu =3D 0; cpu < perf_cpu_map__nr(cpus); cpu++) { process_stat(counter, perf_cpu_map__cpu(cpus, cpu), perf_thread_map__pid(threads, thread), tstamp, diff --git a/tools/perf/util/thread_map.c b/tools/perf/util/thread_map.c index c9bfe4696943..e848579e61a8 100644 --- a/tools/perf/util/thread_map.c +++ b/tools/perf/util/thread_map.c @@ -18,6 +18,7 @@ #include "thread_map.h" #include "debug.h" #include "event.h" +#include =20 /* Skip "." and ".." directories */ static int filter(const struct dirent *dir) diff --git a/tools/perf/util/thread_map.h b/tools/perf/util/thread_map.h index 3bb860a32b8e..00ec05fc1656 100644 --- a/tools/perf/util/thread_map.h +++ b/tools/perf/util/thread_map.h @@ -4,8 +4,6 @@ =20 #include #include -#include -#include #include =20 struct perf_record_thread_map; --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 D2D2AC4332F for ; Wed, 9 Nov 2022 18:52:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231640AbiKISwT (ORCPT ); Wed, 9 Nov 2022 13:52:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40654 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231717AbiKISvj (ORCPT ); Wed, 9 Nov 2022 13:51:39 -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 79AA22B61C for ; Wed, 9 Nov 2022 10:51:14 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id 204-20020a250fd5000000b006ccc0e91098so17635108ybp.13 for ; Wed, 09 Nov 2022 10:51:14 -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=FRHZ0FW2HIw6QS+Bkui5kSfb7e3a9NpS1DLZODqxyrQ=; b=GPgb7yM3peSx5lbtrgAYiXyGaOh2dWb1x0APsgQSFdREbuoKUMUsu6vcx8Evw40fiY QAGjtLjIdv7+MYtobi6OJJlAIYqgn5nCyrkMWbGzI62qqkSAwtB7LA9ofYRpKx36RHKS eRIGKfs/HfJW6/ucPO/jwLYCyRgbdKepcMe3HU6W2PdzwhxhpD0KhzMoULrZw8ExJahG wHszHa+LZPcpl834kijyH641IEurVR85AF5yzOQuBCGOJNQLQyGotaFhmdfWCseui+Xz wJgRjoBihZ78jmltkEnNnE/cApoRkahbTh1TL+SAKqszC2ELjdcLziOI5MprJfzPa9fE K16A== 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=FRHZ0FW2HIw6QS+Bkui5kSfb7e3a9NpS1DLZODqxyrQ=; b=a+Pn5GGbr61KZ+zpSjCdgIR4CHatuBIDlNKz2ehY7Y1cDX8o8dHFgvgMNn6INXQDTQ i40VEwtY2na/wYN/1TiCtvMbNlxdm7nXlHOI9YPlyEDAPShaz8qOPn3bU487H3ckVwvi vwp8EpYq6HOCUi6hCh5W2H+6eAoYBxt6ICSJD4NNr1dWhHvToakXG0Qwpdd6AP8t0Va9 5gKkV7ZIrxV83jsjYTwB7T8gQXpmt2mRw/q1B2sDyNOuvSGoyLAO7g6vEa2aDeXuHZos Ok5Z40+msmewjou4iLoFiX4dqvYHsRvmURqa0ZCfHwNY1I4N6n/5IXaAMuH+Bz3DS8IN 4h2g== X-Gm-Message-State: ACrzQf0hrAV6xAadpyPTieKsg2NQzxbKctkCc97azvnwTfwhneXw8q0C uA3RWgAIpQ6iOpjPrajojcC/Q+hpfSBb X-Google-Smtp-Source: AMsMyM4aG/qfIRrPsZc6e0jRKlvIWUDtNj+DGVN0VGLeGwCxia/YIhlvD0BRcIpmKA7adfm9rZBzCu9ZqgpG X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a0d:dd90:0:b0:36d:2005:5417 with SMTP id g138-20020a0ddd90000000b0036d20055417mr1097889ywe.238.1668019873667; Wed, 09 Nov 2022 10:51:13 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:13 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-14-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 13/14] perf cpumap: Tidy libperf includes 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" Use public API when possible, don't include internal API in header files in evsel.h. Fix any related breakages. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/perf/tests/cpumap.c | 2 +- tools/perf/util/auxtrace.h | 2 +- tools/perf/util/cpumap.c | 1 + tools/perf/util/cpumap.h | 2 +- tools/perf/util/evsel.h | 2 -- 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/tools/perf/tests/cpumap.c b/tools/perf/tests/cpumap.c index 7c873c6ae3eb..3150fc1fed6f 100644 --- a/tools/perf/tests/cpumap.c +++ b/tools/perf/tests/cpumap.c @@ -6,7 +6,7 @@ #include "util/synthetic-events.h" #include #include -#include +#include #include "debug.h" =20 struct machine; diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h index 6a0f9b98f059..2cf63d377831 100644 --- a/tools/perf/util/auxtrace.h +++ b/tools/perf/util/auxtrace.h @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include =20 diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c index 6e3fcf523de9..5e564974fba4 100644 --- a/tools/perf/util/cpumap.c +++ b/tools/perf/util/cpumap.c @@ -12,6 +12,7 @@ =20 #include #include +#include =20 static struct perf_cpu max_cpu_num; static struct perf_cpu max_present_cpu_num; diff --git a/tools/perf/util/cpumap.h b/tools/perf/util/cpumap.h index da28b3146ef9..c2f5824a3a22 100644 --- a/tools/perf/util/cpumap.h +++ b/tools/perf/util/cpumap.h @@ -4,8 +4,8 @@ =20 #include #include -#include #include +#include =20 /** Identify where counts are aggregated, -1 implies not to aggregate. */ struct aggr_cpu_id { diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h index 989865e16aad..f5d9f6a351cd 100644 --- a/tools/perf/util/evsel.h +++ b/tools/perf/util/evsel.h @@ -10,8 +10,6 @@ #include #include #include "symbol_conf.h" -#include -#include =20 struct bpf_object; struct cgroup; --=20 2.38.1.431.g37b22c650d-goog From nobody Mon Apr 13 18:45:45 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 89138C433FE for ; Wed, 9 Nov 2022 18:52:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231336AbiKISw2 (ORCPT ); Wed, 9 Nov 2022 13:52:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231873AbiKISv5 (ORCPT ); Wed, 9 Nov 2022 13:51:57 -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 A91FB2D1DB for ; Wed, 9 Nov 2022 10:51:23 -0800 (PST) Received: by mail-yb1-xb49.google.com with SMTP id c188-20020a25c0c5000000b006d8eba07513so6516636ybf.17 for ; Wed, 09 Nov 2022 10:51:23 -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=hRpn0P3+fcqOignA9YAOhkIfzWGGy39oUBEKle0pWl4=; b=Gum16eZlyNc399k5d3tx6ll5pKDYbio/60xDhY7KrQQQTJnfdPao24XhCFCL0DMhbb qhuhZ7+QZdM51F5m8K6I5jt9r9MzyOXKsVF+cvGL4mDrk5nJJGXlDfNVBFYHudWU8kws 3Nn9958gEw2UiddLZMUkOrS/YkoQSsNfYzdla3r/4O/X9rWeSoKUS/H7hEQJVLptlp/l YwNPr3UBMdaXuQVTtJz84Zp0qOCOuxwEoiq71oB/v9GMwFWXXRSUuvNFUah0aAJUYwlW 5roVXQcMwnPiM6w6Ips7fTqCM/mflO0K0aLpNUtAyNtVBeOLRRI3QxrVm8FzFGlE8N1d gL/g== 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=hRpn0P3+fcqOignA9YAOhkIfzWGGy39oUBEKle0pWl4=; b=hwHCNkr7VD5qhxPml9NssQNiRvi4jLcLBKJqceO6U6fUPQhyL6Ook51eej/pjQ1kPa Md9tPkALzkEKuBU/3vTxEhHnDyfe6dUNiafSyiJvcCM3h7BJzbSGVCOAT1S8XsPbcQZo 55mTnxSxQy16gkXqy7fzc5e22D4hqwWcNn7nZJYtOJ8GOCnCj7uUOR7lD0iJgqbairYq mdz1GwZQeFpdd6+q2FUV4frv8B9NqDebN4OliFqbxCim7bnevKck985jPkHtXJKwfbqu ZgCfpu0DyBVg+bw3dPwfnn03S/EZw71OUwPb+/Ev1VIyVQYq9YqAMYZY8sOpiBKc2Ekz lklw== X-Gm-Message-State: ACrzQf3s7/HUL6khytkUZ/7mtofoDpW3epjEMJ5sWHYcj3f+sqPxl59l a4rgt+8/Xx2IYYzktfg3okwRjQxj3OUT X-Google-Smtp-Source: AMsMyM6UYHYvI9oRglfbF00i/rXNWsAuwQ6/Jdg2ihwWhfW0WufkEgYQy01iVSCK8Q9cfdVmss5mD7PwOXZ0 X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:b06f:a254:5ce9:c442]) (user=irogers job=sendgmr) by 2002:a25:df85:0:b0:6d0:6e1:85bc with SMTP id w127-20020a25df85000000b006d006e185bcmr36982852ybg.519.1668019882993; Wed, 09 Nov 2022 10:51:22 -0800 (PST) Date: Wed, 9 Nov 2022 10:49:14 -0800 In-Reply-To: <20221109184914.1357295-1-irogers@google.com> Message-Id: <20221109184914.1357295-15-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 14/14] perf build: Use tools/lib headers from install path 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" Switch -I from tools/lib to the install path for the tools/lib libraries that are depended upon. List header files provided by libraries so that dependencies are built in the correct order. Signed-off-by: Ian Rogers Acked-by: Namhyung Kim --- tools/perf/Makefile.config | 2 -- tools/perf/Makefile.perf | 46 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index a7f6c0669fae..9cc3c48f3288 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config @@ -349,7 +349,6 @@ ifeq ($(DEBUG),0) endif endif =20 -INC_FLAGS +=3D -I$(srctree)/tools/lib/perf/include INC_FLAGS +=3D -I$(src-perf)/util/include INC_FLAGS +=3D -I$(src-perf)/arch/$(SRCARCH)/include INC_FLAGS +=3D -I$(srctree)/tools/include/ @@ -367,7 +366,6 @@ endif =20 INC_FLAGS +=3D -I$(src-perf)/util INC_FLAGS +=3D -I$(src-perf) -INC_FLAGS +=3D -I$(srctree)/tools/lib/ =20 CORE_CFLAGS +=3D -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=3D64 -D_GNU_SOU= RCE =20 diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 6c1a2a3ccc38..d71e728e7a5c 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -305,6 +305,7 @@ LIBTRACEEVENT_INCLUDE =3D $(LIBTRACEEVENT_DESTDIR)/incl= ude LIBTRACEEVENT =3D $(LIBTRACEEVENT_OUTPUT)/libtraceevent.a export LIBTRACEEVENT LIBTRACEEVENT_DYNAMIC_LIST =3D $(LIBTRACEEVENT_PLUGINS_OUTPUT)/libtraceeve= nt-dynamic-list +CFLAGS +=3D -I$(LIBTRACEEVENT_OUTPUT)/include =20 # # The static build has no dynsym table, so this does not work for @@ -322,6 +323,13 @@ LIBAPI_DESTDIR =3D $(LIBAPI_OUTPUT) LIBAPI_INCLUDE =3D $(LIBAPI_DESTDIR)/include LIBAPI =3D $(LIBAPI_OUTPUT)/libapi.a export LIBAPI +CFLAGS +=3D -I$(LIBAPI_OUTPUT)/include +$(LIBAPI_OUTPUT)/include/api/fs/fs.h \ +$(LIBAPI_OUTPUT)/include/api/fs/tracing_path.h \ +$(LIBAPI_OUTPUT)/include/api/io.h \ +$(LIBAPI_OUTPUT)/include/api/debug.h \ +$(LIBAPI_OUTPUT)/include/api/cpu.h \ +$(LIBAPI_OUTPUT)/include/api/fd/array.h: $(LIBAPI) =20 ifneq ($(OUTPUT),) LIBBPF_OUTPUT =3D $(abspath $(OUTPUT))/libbpf @@ -331,6 +339,20 @@ endif LIBBPF_DESTDIR =3D $(LIBBPF_OUTPUT) LIBBPF_INCLUDE =3D $(LIBBPF_DESTDIR)/include LIBBPF =3D $(LIBBPF_OUTPUT)/libbpf.a +CFLAGS +=3D -I$(LIBBPF_OUTPUT)/include +$(LIBBPF_OUTPUT)/include/bpf/bpf_helpers.h \ +$(LIBBPF_OUTPUT)/include/bpf/libbpf_legacy.h \ +$(LIBBPF_OUTPUT)/include/bpf/bpf_tracing.h \ +$(LIBBPF_OUTPUT)/include/bpf/usdt.bpf.h \ +$(LIBBPF_OUTPUT)/include/bpf/bpf_helper_defs.h \ +$(LIBBPF_OUTPUT)/include/bpf/libbpf_common.h \ +$(LIBBPF_OUTPUT)/include/bpf/bpf_core_read.h \ +$(LIBBPF_OUTPUT)/include/bpf/bpf.h \ +$(LIBBPF_OUTPUT)/include/bpf/libbpf.h \ +$(LIBBPF_OUTPUT)/include/bpf/skel_internal.h \ +$(LIBBPF_OUTPUT)/include/bpf/bpf_endian.h \ +$(LIBBPF_OUTPUT)/include/bpf/btf.h \ +$(LIBBPF_OUTPUT)/include/bpf/libbpf_version.h: $(LIBBPF) =20 ifneq ($(OUTPUT),) LIBSUBCMD_OUTPUT =3D $(abspath $(OUTPUT))/libsubcmd @@ -340,6 +362,12 @@ endif LIBSUBCMD_DESTDIR =3D $(LIBSUBCMD_OUTPUT) LIBSUBCMD_INCLUDE =3D $(LIBSUBCMD_DESTDIR)/include LIBSUBCMD =3D $(LIBSUBCMD_OUTPUT)/libsubcmd.a +CFLAGS +=3D -I$(LIBSUBCMD_OUTPUT)/include +$(LIBSUBCMD_OUTPUT)/include/subcmd/run-command.h \ +$(LIBSUBCMD_OUTPUT)/include/subcmd/exec-cmd.h \ +$(LIBSUBCMD_OUTPUT)/include/subcmd/help.h \ +$(LIBSUBCMD_OUTPUT)/include/subcmd/pager.h \ +$(LIBSUBCMD_OUTPUT)/include/subcmd/parse-options.h : $(LIBSUBCMD) =20 ifneq ($(OUTPUT),) LIBSYMBOL_OUTPUT =3D $(abspath $(OUTPUT))/libsymbol @@ -349,6 +377,8 @@ endif LIBSYMBOL_DESTDIR =3D $(LIBSYMBOL_OUTPUT) LIBSYMBOL_INCLUDE =3D $(LIBSYMBOL_DESTDIR)/include LIBSYMBOL =3D $(LIBSYMBOL_OUTPUT)/libsymbol.a +CFLAGS +=3D -I$(LIBSYMBOL_OUTPUT)/include +$(LIBSYMBOL_OUTPUT)/symbol/kallsyms.h: $(LIBSYMBOL) =20 ifneq ($(OUTPUT),) LIBPERF_OUTPUT =3D $(abspath $(OUTPUT))/libperf @@ -359,6 +389,22 @@ LIBPERF_DESTDIR =3D $(LIBPERF_OUTPUT) LIBPERF_INCLUDE =3D $(LIBPERF_DESTDIR)/include LIBPERF =3D $(LIBPERF_OUTPUT)/libperf.a export LIBPERF +CFLAGS +=3D -I$(LIBPERF_OUTPUT)/include +$(LIBPERF_OUTPUT)/include/perf/core.h \ +$(LIBPERF_OUTPUT)/include/perf/mmap.h \ +$(LIBPERF_OUTPUT)/include/perf/evsel.h \ +$(LIBPERF_OUTPUT)/include/perf/evlist.h \ +$(LIBPERF_OUTPUT)/include/perf/bpf_perf.h \ +$(LIBPERF_OUTPUT)/include/perf/event.h \ +$(LIBPERF_OUTPUT)/include/perf/cpumap.h \ +$(LIBPERF_OUTPUT)/include/perf/threadmap.h \ +$(LIBPERF_OUTPUT)/include/internal/mmap.h \ +$(LIBPERF_OUTPUT)/include/internal/evsel.h \ +$(LIBPERF_OUTPUT)/include/internal/lib.h \ +$(LIBPERF_OUTPUT)/include/internal/evlist.h \ +$(LIBPERF_OUTPUT)/include/internal/cpumap.h \ +$(LIBPERF_OUTPUT)/include/internal/xyarray.h \ +$(LIBPERF_OUTPUT)/include/internal/threadmap.h: $(LIBPERF) =20 # python extension build directories PYTHON_EXTBUILD :=3D $(OUTPUT)python_ext_build/ --=20 2.38.1.431.g37b22c650d-goog