Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2347601pxb; Thu, 4 Nov 2021 19:05:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwwF4TMvGndqfh/HHmXtX5STVnd2slPICkwW70aI+FHP27MTKqShOUDO74JmCtFOd+vZqUK X-Received: by 2002:a17:906:2a5a:: with SMTP id k26mr23529768eje.135.1636077951589; Thu, 04 Nov 2021 19:05:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1636077951; cv=none; d=google.com; s=arc-20160816; b=Ul/WP/OG1YBSSWhSN1EwI1urzap8/piksSLOC8KrU5Btjh3Dm0gynKzJLeL0xvIkp/ 2E+R6leANaXd7wRXpJUlenF/Kp7OhU5E1tKlfn+OTLk5vzzYzuWVMLeoVbYw2xjANxOJ GA1Q4likJPIiwawNifN44/WWXAaEJHqAw4bbq1HPIvr/RRZh78RAjcnteetdwqFQnfiI rHohwbBXnTiWbTWChy/zJIjdMUr+idGp/bLkzZKPGe8SrlCNAsy46b/gGZ2Ot+3fArJf /F5CuwcyXwwYo5m2wXRca+8rYBStvZdFBsPxKPvjhYSygHLL9f/W8fBvm0YUXK1AUWiH c3fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=g/KwcGZJ2ywlDI+GoDm/yLhvbB9i4E8UzpdWkn5/09g=; b=C3ZrYJl396mLXPkMOHL2BrjBDr9Zt9+YbhfI00zIQC1NBMpXUJrci/n42jdKfwR70D tIfKyodtD0kPGUDcDg8uk8bB3JjJ5SxaUxOumpjWUvPFOTT3DQQWd2a5oEqixaAgru4i Vl4s5UrM+O2Wmrk7U8Ys8iMmC8YjO4x54+gNqcZgSiTHRn2NLQUwdV0+g73iKrVA+oNW 3vwfmDufuK4ggbwyhcmbn5kcfmMj52Z5r3zoimYpEcEWBbvkOsvRG87PX395g7ItgAs/ 9++zHFYrALYQePfY+35L5/0AcFAIKSf+34udgi5f7cGY8lAFeMmFMcEJTq+7Q9B2uONY OM4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@isovalent-com.20210112.gappssmtp.com header.s=20210112 header.b=koUs0Dv9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o17si10474511ejy.596.2021.11.04.19.05.27; Thu, 04 Nov 2021 19:05:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@isovalent-com.20210112.gappssmtp.com header.s=20210112 header.b=koUs0Dv9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231605AbhKECFa (ORCPT + 99 others); Thu, 4 Nov 2021 22:05:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58818 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231543AbhKECF3 (ORCPT ); Thu, 4 Nov 2021 22:05:29 -0400 Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E09FC061205 for ; Thu, 4 Nov 2021 19:02:50 -0700 (PDT) Received: by mail-wr1-x42d.google.com with SMTP id d3so11398122wrh.8 for ; Thu, 04 Nov 2021 19:02:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=isovalent-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=g/KwcGZJ2ywlDI+GoDm/yLhvbB9i4E8UzpdWkn5/09g=; b=koUs0Dv9hoJYn22M4mp6QYRlvnl+sg+Ewxmw/b2AU6eDWveCnlK24mI041ZftDlU9Q STQIpo/im7vwfJjBiwO3RW2b58TBsw5XikQP3wZGAyjlJdeaTgmAnrnlXu5bUy7EeVEl LK6jSkE2I1tbzy8NO3iMW3jfWZqseW/wE63MPnIY8iX+3umCU5jD5Vc50Dr65erXrsx5 ExPBfmGHc7/a90YrB22rq/AAlcQAoRoNQAXYgebK+SRiLvmvoRTGUFyExG4Y9kPNb1/x LA6wO4sVHj899uFJjAucqy41xjvDvo2uFdwnyFrZQEkqeNoyr1WLofUpN/3W0aPKiAnH Mp+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=g/KwcGZJ2ywlDI+GoDm/yLhvbB9i4E8UzpdWkn5/09g=; b=A3kv33B8nQHCWpVvhNzBLPO0Rqjy2ZONxI9V7bQbjWO3peo4O+I+aGH9JhDkmSIX7J pfcC2PqeLsEcOL6h/AX9XWOqIoEPLo8tyd3y1Tlfr5VfOO9177hZFwwHxxYq7nyu1zHe FJTmX55WV647mp+3yr2/qDjStl6ePvqdcsu3jfjbe2RKNTylTSbXbYzwsnqDES7dyvEt N/lIqUQSdSDmwWbrCdW06X+13nfSfJu8bf4TMzb9+kWAjiT7ZZ2QzQQf2WM0w/A+X0Oq ObDakKmNCMW9O4P4bhAG5p/4WI61dsq8rmwEboqYfDY8qmTtbF0KPcZNVkYn4a8bWNxm bAOg== X-Gm-Message-State: AOAM531dzRgbjY5gLbRMEGGljYjzOjJ8G1frwFkm+gvXQgsSyOV3/uPi wuQ98WV4fZL1CFcGDBoCTZI+Uad3flkUaQ== X-Received: by 2002:adf:e54a:: with SMTP id z10mr59092064wrm.328.1636077768859; Thu, 04 Nov 2021 19:02:48 -0700 (PDT) Received: from localhost.localdomain ([149.86.70.55]) by smtp.gmail.com with ESMTPSA id u19sm6781708wmm.5.2021.11.04.19.02.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Nov 2021 19:02:48 -0700 (PDT) From: Quentin Monnet To: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Arnaldo Carvalho de Melo Cc: netdev@vger.kernel.org, bpf@vger.kernel.org, Song Liu , Jiri Olsa , Namhyung Kim , Linux Kernel Mailing List , Quentin Monnet Subject: [PATCH bpf-next] perf build: Install libbpf headers locally when building Date: Fri, 5 Nov 2021 02:02:44 +0000 Message-Id: <20211105020244.6869-1-quentin@isovalent.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org API headers from libbpf should not be accessed directly from the library's source directory. Instead, they should be exported with "make install_headers". Let's adjust perf's Makefile to install those headers locally when building libbpf. Signed-off-by: Quentin Monnet --- Note: Sending to bpf-next because it's directly related to libbpf, and to similar patches merged through bpf-next, but maybe Arnaldo prefers to take it? --- tools/perf/Makefile.perf | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index b856afa6eb52..3a81b6c712a9 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -241,7 +241,7 @@ else # force_fixdep LIB_DIR = $(srctree)/tools/lib/api/ TRACE_EVENT_DIR = $(srctree)/tools/lib/traceevent/ -BPF_DIR = $(srctree)/tools/lib/bpf/ +LIBBPF_DIR = $(srctree)/tools/lib/bpf/ SUBCMD_DIR = $(srctree)/tools/lib/subcmd/ LIBPERF_DIR = $(srctree)/tools/lib/perf/ DOC_DIR = $(srctree)/tools/perf/Documentation/ @@ -293,7 +293,6 @@ strip-libs = $(filter-out -l%,$(1)) ifneq ($(OUTPUT),) TE_PATH=$(OUTPUT) PLUGINS_PATH=$(OUTPUT) - BPF_PATH=$(OUTPUT) SUBCMD_PATH=$(OUTPUT) LIBPERF_PATH=$(OUTPUT) ifneq ($(subdir),) @@ -305,7 +304,6 @@ else TE_PATH=$(TRACE_EVENT_DIR) PLUGINS_PATH=$(TRACE_EVENT_DIR)plugins/ API_PATH=$(LIB_DIR) - BPF_PATH=$(BPF_DIR) SUBCMD_PATH=$(SUBCMD_DIR) LIBPERF_PATH=$(LIBPERF_DIR) endif @@ -324,7 +322,10 @@ LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS = $(if $(findstring -static,$(LDFLAGS)),,$(DY LIBAPI = $(API_PATH)libapi.a export LIBAPI -LIBBPF = $(BPF_PATH)libbpf.a +LIBBPF_OUTPUT = $(OUTPUT)libbpf +LIBBPF_DESTDIR = $(LIBBPF_OUTPUT) +LIBBPF_INCLUDE = $(LIBBPF_DESTDIR)/include +LIBBPF = $(LIBBPF_OUTPUT)/libbpf.a LIBSUBCMD = $(SUBCMD_PATH)libsubcmd.a @@ -829,12 +830,14 @@ $(LIBAPI)-clean: $(call QUIET_CLEAN, libapi) $(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) clean >/dev/null -$(LIBBPF): FORCE - $(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) $(OUTPUT)libbpf.a FEATURES_DUMP=$(FEATURE_DUMP_EXPORT) +$(LIBBPF): FORCE | $(LIBBPF_OUTPUT) + $(Q)$(MAKE) -C $(LIBBPF_DIR) FEATURES_DUMP=$(FEATURE_DUMP_EXPORT) \ + O= OUTPUT=$(LIBBPF_OUTPUT)/ DESTDIR=$(LIBBPF_DESTDIR) prefix= \ + $@ install_headers $(LIBBPF)-clean: $(call QUIET_CLEAN, libbpf) - $(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) clean >/dev/null + $(Q)$(RM) -r -- $(LIBBPF_OUTPUT) $(LIBPERF): FORCE $(Q)$(MAKE) -C $(LIBPERF_DIR) EXTRA_CFLAGS="$(LIBPERF_CFLAGS)" O=$(OUTPUT) $(OUTPUT)libperf.a @@ -1036,14 +1039,13 @@ SKELETONS += $(SKEL_OUT)/bperf_cgroup.skel.h ifdef BUILD_BPF_SKEL BPFTOOL := $(SKEL_TMP_OUT)/bootstrap/bpftool -LIBBPF_SRC := $(abspath ../lib/bpf) -BPF_INCLUDE := -I$(SKEL_TMP_OUT)/.. -I$(BPF_PATH) -I$(LIBBPF_SRC)/.. +BPF_INCLUDE := -I$(SKEL_TMP_OUT)/.. -I$(LIBBPF_INCLUDE) -$(SKEL_TMP_OUT): +$(SKEL_TMP_OUT) $(LIBBPF_OUTPUT): $(Q)$(MKDIR) -p $@ $(BPFTOOL): | $(SKEL_TMP_OUT) - CFLAGS= $(MAKE) -C ../bpf/bpftool \ + $(Q)CFLAGS= $(MAKE) -C ../bpf/bpftool \ OUTPUT=$(SKEL_TMP_OUT)/ bootstrap VMLINUX_BTF_PATHS ?= $(if $(O),$(O)/vmlinux) \ -- 2.32.0