Message ID | 20221116072211.2837834-1-irogers@google.com |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a40e:b0:83:7221:86ba with SMTP id ck14csp252388dyb; Tue, 15 Nov 2022 23:28:02 -0800 (PST) X-Google-Smtp-Source: AA0mqf7fv6zpZ49/LYzXbEbKcIOnc/UxlshlBj7AYLtxuTgXNdytXnyedBp+KOwA1Q1RpiOBUOxd X-Received: by 2002:a17:906:cec2:b0:78c:895e:2ff9 with SMTP id si2-20020a170906cec200b0078c895e2ff9mr16721435ejb.403.1668583682474; Tue, 15 Nov 2022 23:28:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668583682; cv=none; d=google.com; s=arc-20160816; b=sn4RvTj0AoaKqxUBHpK+qjsMi6JQiln+PUl7jI2OQqoejLcHNjN2fL4jDeQupVr9y/ 2xqwXVoFPfLkrwpV9R1FtvICFnnqGzV2u5lzA/dxL37ty/x2ntizrBr7DkbZQ+7AYfEi +4ymV+FOe4Phkq2D2+j0gjyQOeBt1xUZEb7laxjLvw2NNEu0SBrVwMZzgRfs8HYYkTYz 7GOrGGx1564q5GMg91jkzykM8x70XMYGrg2Yw3EwUb8jucmNz2ifCjSKGBJoauyBxp+B hz8bHqdrxDgJP48lxEnpFp47TxJOFBdvFCtwiT2ViODkORXqqA3W5umdx1mHyPuWNUQN 3l2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:mime-version:message-id:date :dkim-signature; bh=VVBCM8+4ewIYbqSIURDFLLj3mOBnhhjT5+m4tbboLyQ=; b=Ej5lJxdXHhh3vssW4kGWJiH79R9l/1KMA2YJa9UgiA6sa9crTt6B+lIBMrs3jwAwIo ZQ9fmPP2MedhMhrN4qYJnbnb5/sOWq6fDzqMJJSPVWR00gyc7aC4WKrXWhQVX54f60ug d1y+l9hOYRM/+wJy9ClxsrEIA5IYWJIajTcYCigz95jgXchSjIQN1Te+FeTNSq/k0LNW WUHLGGoXzZQzmbojwkmwNFRY5NxELGDHm6mRmax9/xqPCaozeCtzGytMogXqMYspolTm JTPBPg1ZnhWUL6Qm9K5XmfyLueKVCdUXZZvHUWrHH8HoP0UNBqsMncbqJbELp1vFX6xn oqyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=T2CTy0cX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b11-20020a17090630cb00b00711da52c6e4si9547555ejb.309.2022.11.15.23.27.38; Tue, 15 Nov 2022 23:28:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=T2CTy0cX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229907AbiKPHWS (ORCPT <rfc822;maxim.cournoyer@gmail.com> + 99 others); Wed, 16 Nov 2022 02:22:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44208 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229826AbiKPHWQ (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 16 Nov 2022 02:22:16 -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 DA1C3A18F for <linux-kernel@vger.kernel.org>; Tue, 15 Nov 2022 23:22:15 -0800 (PST) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-367f94b9b16so156237687b3.11 for <linux-kernel@vger.kernel.org>; Tue, 15 Nov 2022 23:22:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:mime-version:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=VVBCM8+4ewIYbqSIURDFLLj3mOBnhhjT5+m4tbboLyQ=; b=T2CTy0cXc+GbTTmMdiCb9Zgs01lpkfqGh1mujEL0GETIM00jpRJOTM9isl/57BYYpO am7/2xYPhQGL51IQmeSydcgTMgOaCbBe/iWEF/1QaNs4uMmDGOjEvr6tThLTBP3xiTiu qHPrsTyARDCHIwmhf8qzvhgHN23WAFC155FXfQcUEMwQV117ZtFFqH+O50YFhgh70Lma P1Jyk6OLy9hgpbPJwnr+QQng0IkyDGXVKgZgY8bk5ZQGLHQ6yXAPN9Ft9qPzLO7+v4EV GNSDYjSHCj6mSU/5ZwuQxW88YpPNfWX0MEcWIElm4vIJpR4TkovIKaI5bhMOUMYLpEAD QKxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:mime-version:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=VVBCM8+4ewIYbqSIURDFLLj3mOBnhhjT5+m4tbboLyQ=; b=szu39fpqH0oXE7ydrM+C6gd/M9eK3Zwb/GlLAZ7dduUSelcc1C3LjNLANzxQGK1gpM 46M6lLlWs+FpC43y2Aow5CsPXGx0QDLdQ/ejKzrz9OzGXOL55OqoWl7I6w1APH3zwp2h CfyLy1+QoYYiDy5cNuNaBWwxUABq6MjFh49Qi1HJuEBDlG/4h3crmEaMHvlryu0kSRuR 9LR8BOqV37JeAnuWA1ia3JjoD7QW0a2xLdwkt8Ee4VC8ZU+V9SfnaCjGiU4HHICMDchV 0RW8i/iJtgTkcPOwkGVn6+hpn7CpB5762oREI1VJtoI1uZKJU3V2YoWCTaqOffiSEnTm kjyQ== X-Gm-Message-State: ANoB5pnAwzG8moO2pVxr/snFk1qRoKbtB9uxp1IgOcFJ/h+zpDRzwJ+H uiMfJ0ovRhFtRcRXWsgTz0kSfLzPVYgu X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:bf0f:58f3:342e:c1ec]) (user=irogers job=sendgmr) by 2002:a05:6902:10c4:b0:6ca:1f22:2bed with SMTP id w4-20020a05690210c400b006ca1f222bedmr19587576ybu.462.1668583335191; Tue, 15 Nov 2022 23:22:15 -0800 (PST) Date: Tue, 15 Nov 2022 23:22:10 -0800 Message-Id: <20221116072211.2837834-1-irogers@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.38.1.431.g37b22c650d-goog Subject: [PATCH 0/1] Fix perf tools/lib includes From: Ian Rogers <irogers@google.com> To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Arnaldo Carvalho de Melo <acme@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>, Masahiro Yamada <masahiroy@kernel.org>, Nicolas Schier <nicolas@fjasle.eu>, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, bpf@vger.kernel.org, Nick Desaulniers <ndesaulniers@google.com>, Andrii Nakryiko <andrii.nakryiko@gmail.com> Cc: Stephane Eranian <eranian@google.com>, Ian Rogers <irogers@google.com> Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748912685335033811?= X-GMAIL-MSGID: =?utf-8?q?1749636803209914601?= |
Series |
Fix perf tools/lib includes
|
|
Message
Ian Rogers
Nov. 16, 2022, 7:22 a.m. UTC
This patch replaces the last on kernel/git/acme/linux.git branch perf/tools-libs-includes and fixes the race issue by using the prepare dependency. pmu-events.c needs this dependency too, as the header files it includes also include libperf - using perpare as a dependency rather than $(LIBPERF) is more consistent with the rest of the makefile. Ian Rogers (1): perf build: Use tools/lib headers from install path tools/perf/Makefile.config | 2 -- tools/perf/Makefile.perf | 14 +++++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-)
Comments
Em Tue, Nov 15, 2022 at 11:22:10PM -0800, Ian Rogers escreveu: > This patch replaces the last on kernel/git/acme/linux.git branch > perf/tools-libs-includes and fixes the race issue by using the prepare > dependency. pmu-events.c needs this dependency too, as the header > files it includes also include libperf - using perpare as a dependency > rather than $(LIBPERF) is more consistent with the rest of the makefile. > > Ian Rogers (1): > perf build: Use tools/lib headers from install path Testing. > tools/perf/Makefile.config | 2 -- > tools/perf/Makefile.perf | 14 +++++++++++++- > 2 files changed, 13 insertions(+), 3 deletions(-) > > -- > 2.38.1.431.g37b22c650d-goog
Em Wed, Nov 16, 2022 at 12:19:27PM -0300, Arnaldo Carvalho de Melo escreveu: > Em Tue, Nov 15, 2022 at 11:22:10PM -0800, Ian Rogers escreveu: > > This patch replaces the last on kernel/git/acme/linux.git branch > > perf/tools-libs-includes and fixes the race issue by using the prepare > > dependency. pmu-events.c needs this dependency too, as the header > > files it includes also include libperf - using perpare as a dependency > > rather than $(LIBPERF) is more consistent with the rest of the makefile. > > > > Ian Rogers (1): > > perf build: Use tools/lib headers from install path > > Testing. ⬢[acme@toolbox perf]$ git log acme/perf/core.. --oneline 0a1e208afdccce71 (HEAD -> perf/tools-libs-includes) perf build: Use tools/lib headers from install path 17ca352f2aff834e perf cpumap: Tidy libperf includes fd3f518fc1140622 perf thread_map: Reduce exposure of libperf internal API bd560973c5d3b2a3 perf expr: Tidy hashmap dependency 84bec6f0b31fb2ac perf build: Install libsymbol locally when building 160be157eaba2a37 tool lib symbol: Add Makefile/Build a6e8caf5db2e1db8 tools lib perf: Add missing install headers 8d1f68bd76a6517c tools lib api: Add missing install headers ef019df01e207971 perf build: Install libtraceevent locally when building 91009a3a9913f275 perf build: Install libperf locally when building 00314c9bca8faad4 perf build: Install libapi locally when building 911920b06e6be3fa perf build: Install libsubcmd locally when building 630ae80ea1dd2536 tools lib subcmd: Add install target a6efaa2c89bf35c3 tools lib api: Add install target ⬢[acme@toolbox perf]$ ⬢[acme@toolbox perf]$ git show commit 0a1e208afdccce7193cbe4031dfd255c89c425d6 Author: Ian Rogers <irogers@google.com> Date: Tue Nov 15 23:22:11 2022 -0800 perf build: Use tools/lib headers from install path Switch -I from tools/lib to the install path for the tools/lib libraries. Add the include_headers build targets to prepare target, as well as pmu-events.c compilation that dependes on libperf. Signed-off-by: Ian Rogers <irogers@google.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Masahiro Yamada <masahiroy@kernel.org> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: Nicolas Schier <nicolas@fjasle.eu> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: bpf@vger.kernel.org Link: http://lore.kernel.org/lkml/20221109184914.1357295-15-irogers@google.com Link: http://lore.kernel.org/lkml/20221116072211.2837834-2-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index a7f6c0669fae4d24..9cc3c48f32881c8b 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config @@ -349,7 +349,6 @@ ifeq ($(DEBUG),0) endif endif -INC_FLAGS += -I$(srctree)/tools/lib/perf/include INC_FLAGS += -I$(src-perf)/util/include INC_FLAGS += -I$(src-perf)/arch/$(SRCARCH)/include INC_FLAGS += -I$(srctree)/tools/include/ @@ -367,7 +366,6 @@ endif INC_FLAGS += -I$(src-perf)/util INC_FLAGS += -I$(src-perf) -INC_FLAGS += -I$(srctree)/tools/lib/ CORE_CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 6c1a2a3ccc38195f..dd096aba4430e3e4 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -305,6 +305,7 @@ LIBTRACEEVENT_INCLUDE = $(LIBTRACEEVENT_DESTDIR)/include LIBTRACEEVENT = $(LIBTRACEEVENT_OUTPUT)/libtraceevent.a export LIBTRACEEVENT LIBTRACEEVENT_DYNAMIC_LIST = $(LIBTRACEEVENT_PLUGINS_OUTPUT)/libtraceevent-dynamic-list +CFLAGS += -I$(LIBTRACEEVENT_OUTPUT)/include # # The static build has no dynsym table, so this does not work for @@ -322,6 +323,7 @@ LIBAPI_DESTDIR = $(LIBAPI_OUTPUT) LIBAPI_INCLUDE = $(LIBAPI_DESTDIR)/include LIBAPI = $(LIBAPI_OUTPUT)/libapi.a export LIBAPI +CFLAGS += -I$(LIBAPI_OUTPUT)/include ifneq ($(OUTPUT),) LIBBPF_OUTPUT = $(abspath $(OUTPUT))/libbpf @@ -331,6 +333,7 @@ endif LIBBPF_DESTDIR = $(LIBBPF_OUTPUT) LIBBPF_INCLUDE = $(LIBBPF_DESTDIR)/include LIBBPF = $(LIBBPF_OUTPUT)/libbpf.a +CFLAGS += -I$(LIBBPF_OUTPUT)/include ifneq ($(OUTPUT),) LIBSUBCMD_OUTPUT = $(abspath $(OUTPUT))/libsubcmd @@ -340,6 +343,7 @@ endif LIBSUBCMD_DESTDIR = $(LIBSUBCMD_OUTPUT) LIBSUBCMD_INCLUDE = $(LIBSUBCMD_DESTDIR)/include LIBSUBCMD = $(LIBSUBCMD_OUTPUT)/libsubcmd.a +CFLAGS += -I$(LIBSUBCMD_OUTPUT)/include ifneq ($(OUTPUT),) LIBSYMBOL_OUTPUT = $(abspath $(OUTPUT))/libsymbol @@ -349,6 +353,7 @@ endif LIBSYMBOL_DESTDIR = $(LIBSYMBOL_OUTPUT) LIBSYMBOL_INCLUDE = $(LIBSYMBOL_DESTDIR)/include LIBSYMBOL = $(LIBSYMBOL_OUTPUT)/libsymbol.a +CFLAGS += -I$(LIBSYMBOL_OUTPUT)/include ifneq ($(OUTPUT),) LIBPERF_OUTPUT = $(abspath $(OUTPUT))/libperf @@ -359,6 +364,7 @@ LIBPERF_DESTDIR = $(LIBPERF_OUTPUT) LIBPERF_INCLUDE = $(LIBPERF_DESTDIR)/include LIBPERF = $(LIBPERF_OUTPUT)/libperf.a export LIBPERF +CFLAGS += -I$(LIBPERF_OUTPUT)/include # python extension build directories PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/ @@ -691,7 +697,7 @@ build := -f $(srctree)/tools/build/Makefile.build dir=. obj $(PERF_IN): prepare FORCE $(Q)$(MAKE) $(build)=perf -$(PMU_EVENTS_IN): FORCE +$(PMU_EVENTS_IN): FORCE prepare $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=pmu-events obj=pmu-events $(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) $(LIBTRACEEVENT_DYNAMIC_LIST) @@ -774,6 +780,12 @@ prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h archheaders $(drm_ioc $(rename_flags_array) \ $(arch_errno_name_array) \ $(sync_file_range_arrays) \ + $(LIBAPI) \ + $(LIBBPF) \ + $(LIBPERF) \ + $(LIBSUBCMD) \ + $(LIBSYMBOL) \ + $(LIBTRACEEVENT) \ bpf-skel $(OUTPUT)%.o: %.c prepare FORCE ⬢[acme@toolbox perf]$ git log --oneline -1 ; time make -C tools/perf build-test 0a1e208afdccce71 (HEAD -> perf/tools-libs-includes) perf build: Use tools/lib headers from install path make: Entering directory '/var/home/acme/git/perf/tools/perf' - tarpkg: ./tests/perf-targz-src-pkg . make_static: cd . && make LDFLAGS=-static NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 NO_JVMTI=1 -j32 DESTDIR=/tmp/tmp.YueDE1rSyh make_with_gtk2: cd . && make GTK2=1 -j32 DESTDIR=/tmp/tmp.YuHTyobvdL cd . && make GTK2=1 -j32 DESTDIR=/tmp/tmp.YuHTyobvdL BUILD: Doing 'make -j32' parallel build HOSTCC fixdep.o HOSTLD fixdep-in.o LINK fixdep Warning: Kernel ABI header at 'tools/arch/arm64/include/uapi/asm/perf_regs.h' differs from latest version at 'arch/arm64/include/uapi/asm/perf_regs.h' diff -u tools/arch/arm64/include/uapi/asm/perf_regs.h arch/arm64/include/uapi/asm/perf_regs.h Warning: Kernel ABI header at 'tools/arch/arm64/include/asm/cputype.h' differs from latest version at 'arch/arm64/include/asm/cputype.h' diff -u tools/arch/arm64/include/asm/cputype.h arch/arm64/include/asm/cputype.h Warning: Kernel ABI header at 'tools/perf/arch/powerpc/entry/syscalls/syscall.tbl' differs from latest version at 'arch/powerpc/kernel/syscalls/syscall.tbl' diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl arch/powerpc/kernel/syscalls/syscall.tbl Auto-detecting system features: ... dwarf: [ on ] ... dwarf_getlocations: [ on ] ... glibc: [ on ] ... libbfd: [ on ] ... libbfd-buildid: [ on ] ... libcap: [ on ] ... libelf: [ on ] ... libnuma: [ on ] ... numa_num_possible_cpus: [ on ] ... libperl: [ on ] ... libpython: [ on ] ... libcrypto: [ on ] ... libunwind: [ on ] ... libdw-dwarf-unwind: [ on ] ... zlib: [ on ] ... lzma: [ on ] ... get_cpuid: [ on ] ... bpf: [ on ] ... libaio: [ on ] ... libzstd: [ on ] GEN common-cmds.h CC perf-read-vdso32 CC dlfilters/dlfilter-test-api-v0.o CC dlfilters/dlfilter-show-cycles.o CC jvmti/libjvmti.o CC jvmti/jvmti_agent.o CC jvmti/libstring.o CC jvmti/libctype.o CC ui/gtk/browser.o CC ui/gtk/hists.o CC ui/gtk/setup.o CC ui/gtk/util.o CC ui/gtk/helpline.o CC ui/gtk/progress.o CC ui/gtk/annotate.o LINK dlfilters/dlfilter-show-cycles.so CC ui/gtk/zalloc.o LINK dlfilters/dlfilter-test-api-v0.so INSTALL headers CC /var/home/acme/git/perf/tools/perf/libsubcmd/exec-cmd.o CC /var/home/acme/git/perf/tools/perf/libsubcmd/help.o CC /var/home/acme/git/perf/tools/perf/libsubcmd/pager.o CC /var/home/acme/git/perf/tools/perf/libsubcmd/parse-options.o CC /var/home/acme/git/perf/tools/perf/libsubcmd/run-command.o CC /var/home/acme/git/perf/tools/perf/libsubcmd/sigchain.o CC /var/home/acme/git/perf/tools/perf/libsubcmd/subcmd-config.o LD jvmti/jvmti-in.o INSTALL headers In file included from ui/gtk/hists.c:2: /var/home/acme/git/perf/tools/perf/util/include/../evlist.h:9:10: fatal error: api/fd/array.h: No such file or directory 9 | #include <api/fd/array.h> | ^~~~~~~~~~~~~~~~ compilation terminated. make[6]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:97: ui/gtk/hists.o] Error 1 make[6]: *** Waiting for unfinished jobs.... In file included from ui/gtk/browser.c:2: /var/home/acme/git/perf/tools/perf/util/include/../evsel.h:10:10: fatal error: internal/evsel.h: No such file or directory 10 | #include <internal/evsel.h> | ^~~~~~~~~~~~~~~~~~ compilation terminated. make[6]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:97: ui/gtk/browser.o] Error 1 make -f /var/home/acme/git/perf/tools/build/Makefile.build dir=. obj=libsymbol V=1 CC /var/home/acme/git/perf/tools/perf/libtraceevent/event-parse.o CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_jbd2.o CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_hrtimer.o INSTALL headers CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kmem.o CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kvm.o CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_mac80211.o CC /var/home/acme/git/perf/tools/perf/libperf/core.o CC /var/home/acme/git/perf/tools/perf/libperf/cpumap.o CC /var/home/acme/git/perf/tools/perf/libperf/threadmap.o INSTALL headers gcc -Wp,-MD,/var/home/acme/git/perf/tools/perf/libsymbol/.kallsyms.o.d -Wp,-MT,/var/home/acme/git/perf/tools/perf/libsymbol/kallsyms.o -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-system-headers -Wold-style-definition -Wpacked -Wredundant-decls -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wwrite-strings -Wformat -Wno-type-limits -Wstrict-aliasing=3 -Wshadow -ggdb3 -Wall -Wextra -std=gnu11 -U_FORTIFY_SOURCE -fPIC -Werror -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/var/home/acme/git/perf/tools/lib -I/var/home/acme/git/perf/tools/include -D"BUILD_STR(s)=#s" -c -o /var/home/acme/git/perf/tools/perf/libsymbol/kallsyms.o kallsyms.c CC /var/home/acme/git/perf/tools/perf/libperf/evsel.o LINK libperf-jvmti.so CC /var/home/acme/git/perf/tools/perf/libperf/evlist.o CC /var/home/acme/git/perf/tools/perf/libperf/mmap.o MKDIR /var/home/acme/git/perf/tools/perf/libapi/fd/ LD /var/home/acme/git/perf/tools/perf/libsubcmd/libsubcmd-in.o PERF_VERSION = 6.1.rc5.g0a1e208afdcc CC /var/home/acme/git/perf/tools/perf/libperf/zalloc.o LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_jbd2-in.o CC /var/home/acme/git/perf/tools/perf/libperf/xyarray.o LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_hrtimer-in.o CC /var/home/acme/git/perf/tools/perf/libapi/fd/array.o GEN /var/home/acme/git/perf/tools/perf/libbpf/bpf_helper_defs.h LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kmem-in.o LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_mac80211-in.o LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kvm-in.o INSTALL /var/home/acme/git/perf/tools/perf/libbpf/include/bpf/bpf.h
On Wed, Nov 16, 2022 at 7:23 AM Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > Em Wed, Nov 16, 2022 at 12:19:27PM -0300, Arnaldo Carvalho de Melo escreveu: > > Em Tue, Nov 15, 2022 at 11:22:10PM -0800, Ian Rogers escreveu: > > > This patch replaces the last on kernel/git/acme/linux.git branch > > > perf/tools-libs-includes and fixes the race issue by using the prepare > > > dependency. pmu-events.c needs this dependency too, as the header > > > files it includes also include libperf - using perpare as a dependency > > > rather than $(LIBPERF) is more consistent with the rest of the makefile. > > > > > > Ian Rogers (1): > > > perf build: Use tools/lib headers from install path > > > > Testing. > > ⬢[acme@toolbox perf]$ git log acme/perf/core.. --oneline > 0a1e208afdccce71 (HEAD -> perf/tools-libs-includes) perf build: Use tools/lib headers from install path > 17ca352f2aff834e perf cpumap: Tidy libperf includes > fd3f518fc1140622 perf thread_map: Reduce exposure of libperf internal API > bd560973c5d3b2a3 perf expr: Tidy hashmap dependency > 84bec6f0b31fb2ac perf build: Install libsymbol locally when building > 160be157eaba2a37 tool lib symbol: Add Makefile/Build > a6e8caf5db2e1db8 tools lib perf: Add missing install headers > 8d1f68bd76a6517c tools lib api: Add missing install headers > ef019df01e207971 perf build: Install libtraceevent locally when building > 91009a3a9913f275 perf build: Install libperf locally when building > 00314c9bca8faad4 perf build: Install libapi locally when building > 911920b06e6be3fa perf build: Install libsubcmd locally when building > 630ae80ea1dd2536 tools lib subcmd: Add install target > a6efaa2c89bf35c3 tools lib api: Add install target > ⬢[acme@toolbox perf]$ > > ⬢[acme@toolbox perf]$ git show > commit 0a1e208afdccce7193cbe4031dfd255c89c425d6 > Author: Ian Rogers <irogers@google.com> > Date: Tue Nov 15 23:22:11 2022 -0800 > > perf build: Use tools/lib headers from install path > > Switch -I from tools/lib to the install path for the tools/lib > libraries. Add the include_headers build targets to prepare target, as > well as pmu-events.c compilation that dependes on libperf. > > Signed-off-by: Ian Rogers <irogers@google.com> > Acked-by: Namhyung Kim <namhyung@kernel.org> > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com> > Cc: Jiri Olsa <jolsa@kernel.org> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Masahiro Yamada <masahiroy@kernel.org> > Cc: Nick Desaulniers <ndesaulniers@google.com> > Cc: Nicolas Schier <nicolas@fjasle.eu> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Stephane Eranian <eranian@google.com> > Cc: bpf@vger.kernel.org > Link: http://lore.kernel.org/lkml/20221109184914.1357295-15-irogers@google.com > Link: http://lore.kernel.org/lkml/20221116072211.2837834-2-irogers@google.com > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config > index a7f6c0669fae4d24..9cc3c48f32881c8b 100644 > --- a/tools/perf/Makefile.config > +++ b/tools/perf/Makefile.config > @@ -349,7 +349,6 @@ ifeq ($(DEBUG),0) > endif > endif > > -INC_FLAGS += -I$(srctree)/tools/lib/perf/include > INC_FLAGS += -I$(src-perf)/util/include > INC_FLAGS += -I$(src-perf)/arch/$(SRCARCH)/include > INC_FLAGS += -I$(srctree)/tools/include/ > @@ -367,7 +366,6 @@ endif > > INC_FLAGS += -I$(src-perf)/util > INC_FLAGS += -I$(src-perf) > -INC_FLAGS += -I$(srctree)/tools/lib/ > > CORE_CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE > > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > index 6c1a2a3ccc38195f..dd096aba4430e3e4 100644 > --- a/tools/perf/Makefile.perf > +++ b/tools/perf/Makefile.perf > @@ -305,6 +305,7 @@ LIBTRACEEVENT_INCLUDE = $(LIBTRACEEVENT_DESTDIR)/include > LIBTRACEEVENT = $(LIBTRACEEVENT_OUTPUT)/libtraceevent.a > export LIBTRACEEVENT > LIBTRACEEVENT_DYNAMIC_LIST = $(LIBTRACEEVENT_PLUGINS_OUTPUT)/libtraceevent-dynamic-list > +CFLAGS += -I$(LIBTRACEEVENT_OUTPUT)/include > > # > # The static build has no dynsym table, so this does not work for > @@ -322,6 +323,7 @@ LIBAPI_DESTDIR = $(LIBAPI_OUTPUT) > LIBAPI_INCLUDE = $(LIBAPI_DESTDIR)/include > LIBAPI = $(LIBAPI_OUTPUT)/libapi.a > export LIBAPI > +CFLAGS += -I$(LIBAPI_OUTPUT)/include > > ifneq ($(OUTPUT),) > LIBBPF_OUTPUT = $(abspath $(OUTPUT))/libbpf > @@ -331,6 +333,7 @@ endif > LIBBPF_DESTDIR = $(LIBBPF_OUTPUT) > LIBBPF_INCLUDE = $(LIBBPF_DESTDIR)/include > LIBBPF = $(LIBBPF_OUTPUT)/libbpf.a > +CFLAGS += -I$(LIBBPF_OUTPUT)/include > > ifneq ($(OUTPUT),) > LIBSUBCMD_OUTPUT = $(abspath $(OUTPUT))/libsubcmd > @@ -340,6 +343,7 @@ endif > LIBSUBCMD_DESTDIR = $(LIBSUBCMD_OUTPUT) > LIBSUBCMD_INCLUDE = $(LIBSUBCMD_DESTDIR)/include > LIBSUBCMD = $(LIBSUBCMD_OUTPUT)/libsubcmd.a > +CFLAGS += -I$(LIBSUBCMD_OUTPUT)/include > > ifneq ($(OUTPUT),) > LIBSYMBOL_OUTPUT = $(abspath $(OUTPUT))/libsymbol > @@ -349,6 +353,7 @@ endif > LIBSYMBOL_DESTDIR = $(LIBSYMBOL_OUTPUT) > LIBSYMBOL_INCLUDE = $(LIBSYMBOL_DESTDIR)/include > LIBSYMBOL = $(LIBSYMBOL_OUTPUT)/libsymbol.a > +CFLAGS += -I$(LIBSYMBOL_OUTPUT)/include > > ifneq ($(OUTPUT),) > LIBPERF_OUTPUT = $(abspath $(OUTPUT))/libperf > @@ -359,6 +364,7 @@ LIBPERF_DESTDIR = $(LIBPERF_OUTPUT) > LIBPERF_INCLUDE = $(LIBPERF_DESTDIR)/include > LIBPERF = $(LIBPERF_OUTPUT)/libperf.a > export LIBPERF > +CFLAGS += -I$(LIBPERF_OUTPUT)/include > > # python extension build directories > PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/ > @@ -691,7 +697,7 @@ build := -f $(srctree)/tools/build/Makefile.build dir=. obj > $(PERF_IN): prepare FORCE > $(Q)$(MAKE) $(build)=perf > > -$(PMU_EVENTS_IN): FORCE > +$(PMU_EVENTS_IN): FORCE prepare > $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=pmu-events obj=pmu-events > > $(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) $(LIBTRACEEVENT_DYNAMIC_LIST) > @@ -774,6 +780,12 @@ prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h archheaders $(drm_ioc > $(rename_flags_array) \ > $(arch_errno_name_array) \ > $(sync_file_range_arrays) \ > + $(LIBAPI) \ > + $(LIBBPF) \ > + $(LIBPERF) \ > + $(LIBSUBCMD) \ > + $(LIBSYMBOL) \ > + $(LIBTRACEEVENT) \ > bpf-skel > > $(OUTPUT)%.o: %.c prepare FORCE > > ⬢[acme@toolbox perf]$ git log --oneline -1 ; time make -C tools/perf build-test > 0a1e208afdccce71 (HEAD -> perf/tools-libs-includes) perf build: Use tools/lib headers from install path > make: Entering directory '/var/home/acme/git/perf/tools/perf' > - tarpkg: ./tests/perf-targz-src-pkg . > make_static: cd . && make LDFLAGS=-static NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 NO_JVMTI=1 -j32 DESTDIR=/tmp/tmp.YueDE1rSyh > make_with_gtk2: cd . && make GTK2=1 -j32 DESTDIR=/tmp/tmp.YuHTyobvdL > cd . && make GTK2=1 -j32 DESTDIR=/tmp/tmp.YuHTyobvdL > BUILD: Doing 'make -j32' parallel build > HOSTCC fixdep.o > HOSTLD fixdep-in.o > LINK fixdep > Warning: Kernel ABI header at 'tools/arch/arm64/include/uapi/asm/perf_regs.h' differs from latest version at 'arch/arm64/include/uapi/asm/perf_regs.h' > diff -u tools/arch/arm64/include/uapi/asm/perf_regs.h arch/arm64/include/uapi/asm/perf_regs.h > Warning: Kernel ABI header at 'tools/arch/arm64/include/asm/cputype.h' differs from latest version at 'arch/arm64/include/asm/cputype.h' > diff -u tools/arch/arm64/include/asm/cputype.h arch/arm64/include/asm/cputype.h > Warning: Kernel ABI header at 'tools/perf/arch/powerpc/entry/syscalls/syscall.tbl' differs from latest version at 'arch/powerpc/kernel/syscalls/syscall.tbl' > diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl arch/powerpc/kernel/syscalls/syscall.tbl > > Auto-detecting system features: > ... dwarf: [ on ] > ... dwarf_getlocations: [ on ] > ... glibc: [ on ] > ... libbfd: [ on ] > ... libbfd-buildid: [ on ] > ... libcap: [ on ] > ... libelf: [ on ] > ... libnuma: [ on ] > ... numa_num_possible_cpus: [ on ] > ... libperl: [ on ] > ... libpython: [ on ] > ... libcrypto: [ on ] > ... libunwind: [ on ] > ... libdw-dwarf-unwind: [ on ] > ... zlib: [ on ] > ... lzma: [ on ] > ... get_cpuid: [ on ] > ... bpf: [ on ] > ... libaio: [ on ] > ... libzstd: [ on ] > > GEN common-cmds.h > CC perf-read-vdso32 > CC dlfilters/dlfilter-test-api-v0.o > CC dlfilters/dlfilter-show-cycles.o > CC jvmti/libjvmti.o > CC jvmti/jvmti_agent.o > CC jvmti/libstring.o > CC jvmti/libctype.o > CC ui/gtk/browser.o > CC ui/gtk/hists.o > CC ui/gtk/setup.o > CC ui/gtk/util.o > CC ui/gtk/helpline.o > CC ui/gtk/progress.o > CC ui/gtk/annotate.o > LINK dlfilters/dlfilter-show-cycles.so > CC ui/gtk/zalloc.o > LINK dlfilters/dlfilter-test-api-v0.so > INSTALL headers > CC /var/home/acme/git/perf/tools/perf/libsubcmd/exec-cmd.o > CC /var/home/acme/git/perf/tools/perf/libsubcmd/help.o > CC /var/home/acme/git/perf/tools/perf/libsubcmd/pager.o > CC /var/home/acme/git/perf/tools/perf/libsubcmd/parse-options.o > CC /var/home/acme/git/perf/tools/perf/libsubcmd/run-command.o > CC /var/home/acme/git/perf/tools/perf/libsubcmd/sigchain.o > CC /var/home/acme/git/perf/tools/perf/libsubcmd/subcmd-config.o > LD jvmti/jvmti-in.o > INSTALL headers > In file included from ui/gtk/hists.c:2: > /var/home/acme/git/perf/tools/perf/util/include/../evlist.h:9:10: fatal error: api/fd/array.h: No such file or directory > 9 | #include <api/fd/array.h> > | ^~~~~~~~~~~~~~~~ > compilation terminated. > make[6]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:97: ui/gtk/hists.o] Error 1 > make[6]: *** Waiting for unfinished jobs.... > In file included from ui/gtk/browser.c:2: > /var/home/acme/git/perf/tools/perf/util/include/../evsel.h:10:10: fatal error: internal/evsel.h: No such file or directory > 10 | #include <internal/evsel.h> > | ^~~~~~~~~~~~~~~~~~ > compilation terminated. > make[6]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:97: ui/gtk/browser.o] Error 1 > make -f /var/home/acme/git/perf/tools/build/Makefile.build dir=. obj=libsymbol V=1 > CC /var/home/acme/git/perf/tools/perf/libtraceevent/event-parse.o > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_jbd2.o > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_hrtimer.o > INSTALL headers > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kmem.o > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kvm.o > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_mac80211.o > CC /var/home/acme/git/perf/tools/perf/libperf/core.o > CC /var/home/acme/git/perf/tools/perf/libperf/cpumap.o > CC /var/home/acme/git/perf/tools/perf/libperf/threadmap.o > INSTALL headers > gcc -Wp,-MD,/var/home/acme/git/perf/tools/perf/libsymbol/.kallsyms.o.d -Wp,-MT,/var/home/acme/git/perf/tools/perf/libsymbol/kallsyms.o -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-system-headers -Wold-style-definition -Wpacked -Wredundant-decls -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wwrite-strings -Wformat -Wno-type-limits -Wstrict-aliasing=3 -Wshadow -ggdb3 -Wall -Wextra -std=gnu11 -U_FORTIFY_SOURCE -fPIC -Werror -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/var/home/acme/git/perf/tools/lib -I/var/home/acme/git/perf/tools/include -D"BUILD_STR(s)=#s" -c -o /var/home/acme/git/perf/tools/perf/libsymbol/kallsyms.o kallsyms.c > CC /var/home/acme/git/perf/tools/perf/libperf/evsel.o > LINK libperf-jvmti.so > CC /var/home/acme/git/perf/tools/perf/libperf/evlist.o > CC /var/home/acme/git/perf/tools/perf/libperf/mmap.o > MKDIR /var/home/acme/git/perf/tools/perf/libapi/fd/ > LD /var/home/acme/git/perf/tools/perf/libsubcmd/libsubcmd-in.o > PERF_VERSION = 6.1.rc5.g0a1e208afdcc > CC /var/home/acme/git/perf/tools/perf/libperf/zalloc.o > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_jbd2-in.o > CC /var/home/acme/git/perf/tools/perf/libperf/xyarray.o > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_hrtimer-in.o > CC /var/home/acme/git/perf/tools/perf/libapi/fd/array.o > GEN /var/home/acme/git/perf/tools/perf/libbpf/bpf_helper_defs.h > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kmem-in.o > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_mac80211-in.o > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kvm-in.o > INSTALL /var/home/acme/git/perf/tools/perf/libbpf/include/bpf/bpf.h > Looks like the GTK part of the build isn't depending on the prepare step. I'll take a look. Thanks, Ian
On Wed, Nov 16, 2022 at 8:45 AM Ian Rogers <irogers@google.com> wrote: > > On Wed, Nov 16, 2022 at 7:23 AM Arnaldo Carvalho de Melo > <acme@kernel.org> wrote: > > > > Em Wed, Nov 16, 2022 at 12:19:27PM -0300, Arnaldo Carvalho de Melo escreveu: > > > Em Tue, Nov 15, 2022 at 11:22:10PM -0800, Ian Rogers escreveu: > > > > This patch replaces the last on kernel/git/acme/linux.git branch > > > > perf/tools-libs-includes and fixes the race issue by using the prepare > > > > dependency. pmu-events.c needs this dependency too, as the header > > > > files it includes also include libperf - using perpare as a dependency > > > > rather than $(LIBPERF) is more consistent with the rest of the makefile. > > > > > > > > Ian Rogers (1): > > > > perf build: Use tools/lib headers from install path > > > > > > Testing. > > > > ⬢[acme@toolbox perf]$ git log acme/perf/core.. --oneline > > 0a1e208afdccce71 (HEAD -> perf/tools-libs-includes) perf build: Use tools/lib headers from install path > > 17ca352f2aff834e perf cpumap: Tidy libperf includes > > fd3f518fc1140622 perf thread_map: Reduce exposure of libperf internal API > > bd560973c5d3b2a3 perf expr: Tidy hashmap dependency > > 84bec6f0b31fb2ac perf build: Install libsymbol locally when building > > 160be157eaba2a37 tool lib symbol: Add Makefile/Build > > a6e8caf5db2e1db8 tools lib perf: Add missing install headers > > 8d1f68bd76a6517c tools lib api: Add missing install headers > > ef019df01e207971 perf build: Install libtraceevent locally when building > > 91009a3a9913f275 perf build: Install libperf locally when building > > 00314c9bca8faad4 perf build: Install libapi locally when building > > 911920b06e6be3fa perf build: Install libsubcmd locally when building > > 630ae80ea1dd2536 tools lib subcmd: Add install target > > a6efaa2c89bf35c3 tools lib api: Add install target > > ⬢[acme@toolbox perf]$ > > > > ⬢[acme@toolbox perf]$ git show > > commit 0a1e208afdccce7193cbe4031dfd255c89c425d6 > > Author: Ian Rogers <irogers@google.com> > > Date: Tue Nov 15 23:22:11 2022 -0800 > > > > perf build: Use tools/lib headers from install path > > > > Switch -I from tools/lib to the install path for the tools/lib > > libraries. Add the include_headers build targets to prepare target, as > > well as pmu-events.c compilation that dependes on libperf. > > > > Signed-off-by: Ian Rogers <irogers@google.com> > > Acked-by: Namhyung Kim <namhyung@kernel.org> > > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > > Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com> > > Cc: Jiri Olsa <jolsa@kernel.org> > > Cc: Mark Rutland <mark.rutland@arm.com> > > Cc: Masahiro Yamada <masahiroy@kernel.org> > > Cc: Nick Desaulniers <ndesaulniers@google.com> > > Cc: Nicolas Schier <nicolas@fjasle.eu> > > Cc: Peter Zijlstra <peterz@infradead.org> > > Cc: Stephane Eranian <eranian@google.com> > > Cc: bpf@vger.kernel.org > > Link: http://lore.kernel.org/lkml/20221109184914.1357295-15-irogers@google.com > > Link: http://lore.kernel.org/lkml/20221116072211.2837834-2-irogers@google.com > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > > > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config > > index a7f6c0669fae4d24..9cc3c48f32881c8b 100644 > > --- a/tools/perf/Makefile.config > > +++ b/tools/perf/Makefile.config > > @@ -349,7 +349,6 @@ ifeq ($(DEBUG),0) > > endif > > endif > > > > -INC_FLAGS += -I$(srctree)/tools/lib/perf/include > > INC_FLAGS += -I$(src-perf)/util/include > > INC_FLAGS += -I$(src-perf)/arch/$(SRCARCH)/include > > INC_FLAGS += -I$(srctree)/tools/include/ > > @@ -367,7 +366,6 @@ endif > > > > INC_FLAGS += -I$(src-perf)/util > > INC_FLAGS += -I$(src-perf) > > -INC_FLAGS += -I$(srctree)/tools/lib/ > > > > CORE_CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE > > > > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > > index 6c1a2a3ccc38195f..dd096aba4430e3e4 100644 > > --- a/tools/perf/Makefile.perf > > +++ b/tools/perf/Makefile.perf > > @@ -305,6 +305,7 @@ LIBTRACEEVENT_INCLUDE = $(LIBTRACEEVENT_DESTDIR)/include > > LIBTRACEEVENT = $(LIBTRACEEVENT_OUTPUT)/libtraceevent.a > > export LIBTRACEEVENT > > LIBTRACEEVENT_DYNAMIC_LIST = $(LIBTRACEEVENT_PLUGINS_OUTPUT)/libtraceevent-dynamic-list > > +CFLAGS += -I$(LIBTRACEEVENT_OUTPUT)/include > > > > # > > # The static build has no dynsym table, so this does not work for > > @@ -322,6 +323,7 @@ LIBAPI_DESTDIR = $(LIBAPI_OUTPUT) > > LIBAPI_INCLUDE = $(LIBAPI_DESTDIR)/include > > LIBAPI = $(LIBAPI_OUTPUT)/libapi.a > > export LIBAPI > > +CFLAGS += -I$(LIBAPI_OUTPUT)/include > > > > ifneq ($(OUTPUT),) > > LIBBPF_OUTPUT = $(abspath $(OUTPUT))/libbpf > > @@ -331,6 +333,7 @@ endif > > LIBBPF_DESTDIR = $(LIBBPF_OUTPUT) > > LIBBPF_INCLUDE = $(LIBBPF_DESTDIR)/include > > LIBBPF = $(LIBBPF_OUTPUT)/libbpf.a > > +CFLAGS += -I$(LIBBPF_OUTPUT)/include > > > > ifneq ($(OUTPUT),) > > LIBSUBCMD_OUTPUT = $(abspath $(OUTPUT))/libsubcmd > > @@ -340,6 +343,7 @@ endif > > LIBSUBCMD_DESTDIR = $(LIBSUBCMD_OUTPUT) > > LIBSUBCMD_INCLUDE = $(LIBSUBCMD_DESTDIR)/include > > LIBSUBCMD = $(LIBSUBCMD_OUTPUT)/libsubcmd.a > > +CFLAGS += -I$(LIBSUBCMD_OUTPUT)/include > > > > ifneq ($(OUTPUT),) > > LIBSYMBOL_OUTPUT = $(abspath $(OUTPUT))/libsymbol > > @@ -349,6 +353,7 @@ endif > > LIBSYMBOL_DESTDIR = $(LIBSYMBOL_OUTPUT) > > LIBSYMBOL_INCLUDE = $(LIBSYMBOL_DESTDIR)/include > > LIBSYMBOL = $(LIBSYMBOL_OUTPUT)/libsymbol.a > > +CFLAGS += -I$(LIBSYMBOL_OUTPUT)/include > > > > ifneq ($(OUTPUT),) > > LIBPERF_OUTPUT = $(abspath $(OUTPUT))/libperf > > @@ -359,6 +364,7 @@ LIBPERF_DESTDIR = $(LIBPERF_OUTPUT) > > LIBPERF_INCLUDE = $(LIBPERF_DESTDIR)/include > > LIBPERF = $(LIBPERF_OUTPUT)/libperf.a > > export LIBPERF > > +CFLAGS += -I$(LIBPERF_OUTPUT)/include > > > > # python extension build directories > > PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/ > > @@ -691,7 +697,7 @@ build := -f $(srctree)/tools/build/Makefile.build dir=. obj > > $(PERF_IN): prepare FORCE > > $(Q)$(MAKE) $(build)=perf > > > > -$(PMU_EVENTS_IN): FORCE > > +$(PMU_EVENTS_IN): FORCE prepare > > $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=pmu-events obj=pmu-events > > > > $(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) $(LIBTRACEEVENT_DYNAMIC_LIST) > > @@ -774,6 +780,12 @@ prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h archheaders $(drm_ioc > > $(rename_flags_array) \ > > $(arch_errno_name_array) \ > > $(sync_file_range_arrays) \ > > + $(LIBAPI) \ > > + $(LIBBPF) \ > > + $(LIBPERF) \ > > + $(LIBSUBCMD) \ > > + $(LIBSYMBOL) \ > > + $(LIBTRACEEVENT) \ > > bpf-skel > > > > $(OUTPUT)%.o: %.c prepare FORCE > > > > ⬢[acme@toolbox perf]$ git log --oneline -1 ; time make -C tools/perf build-test > > 0a1e208afdccce71 (HEAD -> perf/tools-libs-includes) perf build: Use tools/lib headers from install path > > make: Entering directory '/var/home/acme/git/perf/tools/perf' > > - tarpkg: ./tests/perf-targz-src-pkg . > > make_static: cd . && make LDFLAGS=-static NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 NO_JVMTI=1 -j32 DESTDIR=/tmp/tmp.YueDE1rSyh > > make_with_gtk2: cd . && make GTK2=1 -j32 DESTDIR=/tmp/tmp.YuHTyobvdL > > cd . && make GTK2=1 -j32 DESTDIR=/tmp/tmp.YuHTyobvdL > > BUILD: Doing 'make -j32' parallel build > > HOSTCC fixdep.o > > HOSTLD fixdep-in.o > > LINK fixdep > > Warning: Kernel ABI header at 'tools/arch/arm64/include/uapi/asm/perf_regs.h' differs from latest version at 'arch/arm64/include/uapi/asm/perf_regs.h' > > diff -u tools/arch/arm64/include/uapi/asm/perf_regs.h arch/arm64/include/uapi/asm/perf_regs.h > > Warning: Kernel ABI header at 'tools/arch/arm64/include/asm/cputype.h' differs from latest version at 'arch/arm64/include/asm/cputype.h' > > diff -u tools/arch/arm64/include/asm/cputype.h arch/arm64/include/asm/cputype.h > > Warning: Kernel ABI header at 'tools/perf/arch/powerpc/entry/syscalls/syscall.tbl' differs from latest version at 'arch/powerpc/kernel/syscalls/syscall.tbl' > > diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl arch/powerpc/kernel/syscalls/syscall.tbl > > > > Auto-detecting system features: > > ... dwarf: [ on ] > > ... dwarf_getlocations: [ on ] > > ... glibc: [ on ] > > ... libbfd: [ on ] > > ... libbfd-buildid: [ on ] > > ... libcap: [ on ] > > ... libelf: [ on ] > > ... libnuma: [ on ] > > ... numa_num_possible_cpus: [ on ] > > ... libperl: [ on ] > > ... libpython: [ on ] > > ... libcrypto: [ on ] > > ... libunwind: [ on ] > > ... libdw-dwarf-unwind: [ on ] > > ... zlib: [ on ] > > ... lzma: [ on ] > > ... get_cpuid: [ on ] > > ... bpf: [ on ] > > ... libaio: [ on ] > > ... libzstd: [ on ] > > > > GEN common-cmds.h > > CC perf-read-vdso32 > > CC dlfilters/dlfilter-test-api-v0.o > > CC dlfilters/dlfilter-show-cycles.o > > CC jvmti/libjvmti.o > > CC jvmti/jvmti_agent.o > > CC jvmti/libstring.o > > CC jvmti/libctype.o > > CC ui/gtk/browser.o > > CC ui/gtk/hists.o > > CC ui/gtk/setup.o > > CC ui/gtk/util.o > > CC ui/gtk/helpline.o > > CC ui/gtk/progress.o > > CC ui/gtk/annotate.o > > LINK dlfilters/dlfilter-show-cycles.so > > CC ui/gtk/zalloc.o > > LINK dlfilters/dlfilter-test-api-v0.so > > INSTALL headers > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/exec-cmd.o > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/help.o > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/pager.o > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/parse-options.o > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/run-command.o > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/sigchain.o > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/subcmd-config.o > > LD jvmti/jvmti-in.o > > INSTALL headers > > In file included from ui/gtk/hists.c:2: > > /var/home/acme/git/perf/tools/perf/util/include/../evlist.h:9:10: fatal error: api/fd/array.h: No such file or directory > > 9 | #include <api/fd/array.h> > > | ^~~~~~~~~~~~~~~~ > > compilation terminated. > > make[6]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:97: ui/gtk/hists.o] Error 1 > > make[6]: *** Waiting for unfinished jobs.... > > In file included from ui/gtk/browser.c:2: > > /var/home/acme/git/perf/tools/perf/util/include/../evsel.h:10:10: fatal error: internal/evsel.h: No such file or directory > > 10 | #include <internal/evsel.h> > > | ^~~~~~~~~~~~~~~~~~ > > compilation terminated. > > make[6]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:97: ui/gtk/browser.o] Error 1 > > make -f /var/home/acme/git/perf/tools/build/Makefile.build dir=. obj=libsymbol V=1 > > CC /var/home/acme/git/perf/tools/perf/libtraceevent/event-parse.o > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_jbd2.o > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_hrtimer.o > > INSTALL headers > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kmem.o > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kvm.o > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_mac80211.o > > CC /var/home/acme/git/perf/tools/perf/libperf/core.o > > CC /var/home/acme/git/perf/tools/perf/libperf/cpumap.o > > CC /var/home/acme/git/perf/tools/perf/libperf/threadmap.o > > INSTALL headers > > gcc -Wp,-MD,/var/home/acme/git/perf/tools/perf/libsymbol/.kallsyms.o.d -Wp,-MT,/var/home/acme/git/perf/tools/perf/libsymbol/kallsyms.o -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-system-headers -Wold-style-definition -Wpacked -Wredundant-decls -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wwrite-strings -Wformat -Wno-type-limits -Wstrict-aliasing=3 -Wshadow -ggdb3 -Wall -Wextra -std=gnu11 -U_FORTIFY_SOURCE -fPIC -Werror -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/var/home/acme/git/perf/tools/lib -I/var/home/acme/git/perf/tools/include -D"BUILD_STR(s)=#s" -c -o /var/home/acme/git/perf/tools/perf/libsymbol/kallsyms.o kallsyms.c > > CC /var/home/acme/git/perf/tools/perf/libperf/evsel.o > > LINK libperf-jvmti.so > > CC /var/home/acme/git/perf/tools/perf/libperf/evlist.o > > CC /var/home/acme/git/perf/tools/perf/libperf/mmap.o > > MKDIR /var/home/acme/git/perf/tools/perf/libapi/fd/ > > LD /var/home/acme/git/perf/tools/perf/libsubcmd/libsubcmd-in.o > > PERF_VERSION = 6.1.rc5.g0a1e208afdcc > > CC /var/home/acme/git/perf/tools/perf/libperf/zalloc.o > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_jbd2-in.o > > CC /var/home/acme/git/perf/tools/perf/libperf/xyarray.o > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_hrtimer-in.o > > CC /var/home/acme/git/perf/tools/perf/libapi/fd/array.o > > GEN /var/home/acme/git/perf/tools/perf/libbpf/bpf_helper_defs.h > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kmem-in.o > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_mac80211-in.o > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kvm-in.o > > INSTALL /var/home/acme/git/perf/tools/perf/libbpf/include/bpf/bpf.h > > > > Looks like the GTK part of the build isn't depending on the prepare > step. I'll take a look. > > Thanks, > Ian Yep. The target: $(GTK_IN): FORCE should be: $(GTK_IN): FORCE prepare Could you try this, or do you want me to resend? Thanks, Ian
Em Wed, Nov 16, 2022 at 08:47:51AM -0800, Ian Rogers escreveu: > On Wed, Nov 16, 2022 at 8:45 AM Ian Rogers <irogers@google.com> wrote: > > > > On Wed, Nov 16, 2022 at 7:23 AM Arnaldo Carvalho de Melo > > <acme@kernel.org> wrote: > > > > > > Em Wed, Nov 16, 2022 at 12:19:27PM -0300, Arnaldo Carvalho de Melo escreveu: > > > > Em Tue, Nov 15, 2022 at 11:22:10PM -0800, Ian Rogers escreveu: > > > > > This patch replaces the last on kernel/git/acme/linux.git branch > > > > > perf/tools-libs-includes and fixes the race issue by using the prepare > > > > > dependency. pmu-events.c needs this dependency too, as the header > > > > > files it includes also include libperf - using perpare as a dependency > > > > > rather than $(LIBPERF) is more consistent with the rest of the makefile. > > > > > > > > > > Ian Rogers (1): > > > > > perf build: Use tools/lib headers from install path > > > > > > > > Testing. > > > > > > ⬢[acme@toolbox perf]$ git log acme/perf/core.. --oneline > > > 0a1e208afdccce71 (HEAD -> perf/tools-libs-includes) perf build: Use tools/lib headers from install path > > > 17ca352f2aff834e perf cpumap: Tidy libperf includes > > > fd3f518fc1140622 perf thread_map: Reduce exposure of libperf internal API > > > bd560973c5d3b2a3 perf expr: Tidy hashmap dependency > > > 84bec6f0b31fb2ac perf build: Install libsymbol locally when building > > > 160be157eaba2a37 tool lib symbol: Add Makefile/Build > > > a6e8caf5db2e1db8 tools lib perf: Add missing install headers > > > 8d1f68bd76a6517c tools lib api: Add missing install headers > > > ef019df01e207971 perf build: Install libtraceevent locally when building > > > 91009a3a9913f275 perf build: Install libperf locally when building > > > 00314c9bca8faad4 perf build: Install libapi locally when building > > > 911920b06e6be3fa perf build: Install libsubcmd locally when building > > > 630ae80ea1dd2536 tools lib subcmd: Add install target > > > a6efaa2c89bf35c3 tools lib api: Add install target > > > ⬢[acme@toolbox perf]$ > > > > > > ⬢[acme@toolbox perf]$ git show > > > commit 0a1e208afdccce7193cbe4031dfd255c89c425d6 > > > Author: Ian Rogers <irogers@google.com> > > > Date: Tue Nov 15 23:22:11 2022 -0800 > > > > > > perf build: Use tools/lib headers from install path > > > > > > Switch -I from tools/lib to the install path for the tools/lib > > > libraries. Add the include_headers build targets to prepare target, as > > > well as pmu-events.c compilation that dependes on libperf. > > > > > > Signed-off-by: Ian Rogers <irogers@google.com> > > > Acked-by: Namhyung Kim <namhyung@kernel.org> > > > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > > > Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com> > > > Cc: Jiri Olsa <jolsa@kernel.org> > > > Cc: Mark Rutland <mark.rutland@arm.com> > > > Cc: Masahiro Yamada <masahiroy@kernel.org> > > > Cc: Nick Desaulniers <ndesaulniers@google.com> > > > Cc: Nicolas Schier <nicolas@fjasle.eu> > > > Cc: Peter Zijlstra <peterz@infradead.org> > > > Cc: Stephane Eranian <eranian@google.com> > > > Cc: bpf@vger.kernel.org > > > Link: http://lore.kernel.org/lkml/20221109184914.1357295-15-irogers@google.com > > > Link: http://lore.kernel.org/lkml/20221116072211.2837834-2-irogers@google.com > > > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > > > > > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config > > > index a7f6c0669fae4d24..9cc3c48f32881c8b 100644 > > > --- a/tools/perf/Makefile.config > > > +++ b/tools/perf/Makefile.config > > > @@ -349,7 +349,6 @@ ifeq ($(DEBUG),0) > > > endif > > > endif > > > > > > -INC_FLAGS += -I$(srctree)/tools/lib/perf/include > > > INC_FLAGS += -I$(src-perf)/util/include > > > INC_FLAGS += -I$(src-perf)/arch/$(SRCARCH)/include > > > INC_FLAGS += -I$(srctree)/tools/include/ > > > @@ -367,7 +366,6 @@ endif > > > > > > INC_FLAGS += -I$(src-perf)/util > > > INC_FLAGS += -I$(src-perf) > > > -INC_FLAGS += -I$(srctree)/tools/lib/ > > > > > > CORE_CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE > > > > > > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > > > index 6c1a2a3ccc38195f..dd096aba4430e3e4 100644 > > > --- a/tools/perf/Makefile.perf > > > +++ b/tools/perf/Makefile.perf > > > @@ -305,6 +305,7 @@ LIBTRACEEVENT_INCLUDE = $(LIBTRACEEVENT_DESTDIR)/include > > > LIBTRACEEVENT = $(LIBTRACEEVENT_OUTPUT)/libtraceevent.a > > > export LIBTRACEEVENT > > > LIBTRACEEVENT_DYNAMIC_LIST = $(LIBTRACEEVENT_PLUGINS_OUTPUT)/libtraceevent-dynamic-list > > > +CFLAGS += -I$(LIBTRACEEVENT_OUTPUT)/include > > > > > > # > > > # The static build has no dynsym table, so this does not work for > > > @@ -322,6 +323,7 @@ LIBAPI_DESTDIR = $(LIBAPI_OUTPUT) > > > LIBAPI_INCLUDE = $(LIBAPI_DESTDIR)/include > > > LIBAPI = $(LIBAPI_OUTPUT)/libapi.a > > > export LIBAPI > > > +CFLAGS += -I$(LIBAPI_OUTPUT)/include > > > > > > ifneq ($(OUTPUT),) > > > LIBBPF_OUTPUT = $(abspath $(OUTPUT))/libbpf > > > @@ -331,6 +333,7 @@ endif > > > LIBBPF_DESTDIR = $(LIBBPF_OUTPUT) > > > LIBBPF_INCLUDE = $(LIBBPF_DESTDIR)/include > > > LIBBPF = $(LIBBPF_OUTPUT)/libbpf.a > > > +CFLAGS += -I$(LIBBPF_OUTPUT)/include > > > > > > ifneq ($(OUTPUT),) > > > LIBSUBCMD_OUTPUT = $(abspath $(OUTPUT))/libsubcmd > > > @@ -340,6 +343,7 @@ endif > > > LIBSUBCMD_DESTDIR = $(LIBSUBCMD_OUTPUT) > > > LIBSUBCMD_INCLUDE = $(LIBSUBCMD_DESTDIR)/include > > > LIBSUBCMD = $(LIBSUBCMD_OUTPUT)/libsubcmd.a > > > +CFLAGS += -I$(LIBSUBCMD_OUTPUT)/include > > > > > > ifneq ($(OUTPUT),) > > > LIBSYMBOL_OUTPUT = $(abspath $(OUTPUT))/libsymbol > > > @@ -349,6 +353,7 @@ endif > > > LIBSYMBOL_DESTDIR = $(LIBSYMBOL_OUTPUT) > > > LIBSYMBOL_INCLUDE = $(LIBSYMBOL_DESTDIR)/include > > > LIBSYMBOL = $(LIBSYMBOL_OUTPUT)/libsymbol.a > > > +CFLAGS += -I$(LIBSYMBOL_OUTPUT)/include > > > > > > ifneq ($(OUTPUT),) > > > LIBPERF_OUTPUT = $(abspath $(OUTPUT))/libperf > > > @@ -359,6 +364,7 @@ LIBPERF_DESTDIR = $(LIBPERF_OUTPUT) > > > LIBPERF_INCLUDE = $(LIBPERF_DESTDIR)/include > > > LIBPERF = $(LIBPERF_OUTPUT)/libperf.a > > > export LIBPERF > > > +CFLAGS += -I$(LIBPERF_OUTPUT)/include > > > > > > # python extension build directories > > > PYTHON_EXTBUILD := $(OUTPUT)python_ext_build/ > > > @@ -691,7 +697,7 @@ build := -f $(srctree)/tools/build/Makefile.build dir=. obj > > > $(PERF_IN): prepare FORCE > > > $(Q)$(MAKE) $(build)=perf > > > > > > -$(PMU_EVENTS_IN): FORCE > > > +$(PMU_EVENTS_IN): FORCE prepare > > > $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=pmu-events obj=pmu-events > > > > > > $(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) $(LIBTRACEEVENT_DYNAMIC_LIST) > > > @@ -774,6 +780,12 @@ prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h archheaders $(drm_ioc > > > $(rename_flags_array) \ > > > $(arch_errno_name_array) \ > > > $(sync_file_range_arrays) \ > > > + $(LIBAPI) \ > > > + $(LIBBPF) \ > > > + $(LIBPERF) \ > > > + $(LIBSUBCMD) \ > > > + $(LIBSYMBOL) \ > > > + $(LIBTRACEEVENT) \ > > > bpf-skel > > > > > > $(OUTPUT)%.o: %.c prepare FORCE > > > > > > ⬢[acme@toolbox perf]$ git log --oneline -1 ; time make -C tools/perf build-test > > > 0a1e208afdccce71 (HEAD -> perf/tools-libs-includes) perf build: Use tools/lib headers from install path > > > make: Entering directory '/var/home/acme/git/perf/tools/perf' > > > - tarpkg: ./tests/perf-targz-src-pkg . > > > make_static: cd . && make LDFLAGS=-static NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 NO_JVMTI=1 -j32 DESTDIR=/tmp/tmp.YueDE1rSyh > > > make_with_gtk2: cd . && make GTK2=1 -j32 DESTDIR=/tmp/tmp.YuHTyobvdL > > > cd . && make GTK2=1 -j32 DESTDIR=/tmp/tmp.YuHTyobvdL > > > BUILD: Doing 'make -j32' parallel build > > > HOSTCC fixdep.o > > > HOSTLD fixdep-in.o > > > LINK fixdep > > > Warning: Kernel ABI header at 'tools/arch/arm64/include/uapi/asm/perf_regs.h' differs from latest version at 'arch/arm64/include/uapi/asm/perf_regs.h' > > > diff -u tools/arch/arm64/include/uapi/asm/perf_regs.h arch/arm64/include/uapi/asm/perf_regs.h > > > Warning: Kernel ABI header at 'tools/arch/arm64/include/asm/cputype.h' differs from latest version at 'arch/arm64/include/asm/cputype.h' > > > diff -u tools/arch/arm64/include/asm/cputype.h arch/arm64/include/asm/cputype.h > > > Warning: Kernel ABI header at 'tools/perf/arch/powerpc/entry/syscalls/syscall.tbl' differs from latest version at 'arch/powerpc/kernel/syscalls/syscall.tbl' > > > diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl arch/powerpc/kernel/syscalls/syscall.tbl > > > > > > Auto-detecting system features: > > > ... dwarf: [ on ] > > > ... dwarf_getlocations: [ on ] > > > ... glibc: [ on ] > > > ... libbfd: [ on ] > > > ... libbfd-buildid: [ on ] > > > ... libcap: [ on ] > > > ... libelf: [ on ] > > > ... libnuma: [ on ] > > > ... numa_num_possible_cpus: [ on ] > > > ... libperl: [ on ] > > > ... libpython: [ on ] > > > ... libcrypto: [ on ] > > > ... libunwind: [ on ] > > > ... libdw-dwarf-unwind: [ on ] > > > ... zlib: [ on ] > > > ... lzma: [ on ] > > > ... get_cpuid: [ on ] > > > ... bpf: [ on ] > > > ... libaio: [ on ] > > > ... libzstd: [ on ] > > > > > > GEN common-cmds.h > > > CC perf-read-vdso32 > > > CC dlfilters/dlfilter-test-api-v0.o > > > CC dlfilters/dlfilter-show-cycles.o > > > CC jvmti/libjvmti.o > > > CC jvmti/jvmti_agent.o > > > CC jvmti/libstring.o > > > CC jvmti/libctype.o > > > CC ui/gtk/browser.o > > > CC ui/gtk/hists.o > > > CC ui/gtk/setup.o > > > CC ui/gtk/util.o > > > CC ui/gtk/helpline.o > > > CC ui/gtk/progress.o > > > CC ui/gtk/annotate.o > > > LINK dlfilters/dlfilter-show-cycles.so > > > CC ui/gtk/zalloc.o > > > LINK dlfilters/dlfilter-test-api-v0.so > > > INSTALL headers > > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/exec-cmd.o > > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/help.o > > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/pager.o > > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/parse-options.o > > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/run-command.o > > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/sigchain.o > > > CC /var/home/acme/git/perf/tools/perf/libsubcmd/subcmd-config.o > > > LD jvmti/jvmti-in.o > > > INSTALL headers > > > In file included from ui/gtk/hists.c:2: > > > /var/home/acme/git/perf/tools/perf/util/include/../evlist.h:9:10: fatal error: api/fd/array.h: No such file or directory > > > 9 | #include <api/fd/array.h> > > > | ^~~~~~~~~~~~~~~~ > > > compilation terminated. > > > make[6]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:97: ui/gtk/hists.o] Error 1 > > > make[6]: *** Waiting for unfinished jobs.... > > > In file included from ui/gtk/browser.c:2: > > > /var/home/acme/git/perf/tools/perf/util/include/../evsel.h:10:10: fatal error: internal/evsel.h: No such file or directory > > > 10 | #include <internal/evsel.h> > > > | ^~~~~~~~~~~~~~~~~~ > > > compilation terminated. > > > make[6]: *** [/var/home/acme/git/perf/tools/build/Makefile.build:97: ui/gtk/browser.o] Error 1 > > > make -f /var/home/acme/git/perf/tools/build/Makefile.build dir=. obj=libsymbol V=1 > > > CC /var/home/acme/git/perf/tools/perf/libtraceevent/event-parse.o > > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_jbd2.o > > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_hrtimer.o > > > INSTALL headers > > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kmem.o > > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kvm.o > > > CC /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_mac80211.o > > > CC /var/home/acme/git/perf/tools/perf/libperf/core.o > > > CC /var/home/acme/git/perf/tools/perf/libperf/cpumap.o > > > CC /var/home/acme/git/perf/tools/perf/libperf/threadmap.o > > > INSTALL headers > > > gcc -Wp,-MD,/var/home/acme/git/perf/tools/perf/libsymbol/.kallsyms.o.d -Wp,-MT,/var/home/acme/git/perf/tools/perf/libsymbol/kallsyms.o -Wbad-function-cast -Wdeclaration-after-statement -Wformat-security -Wformat-y2k -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-system-headers -Wold-style-definition -Wpacked -Wredundant-decls -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wwrite-strings -Wformat -Wno-type-limits -Wstrict-aliasing=3 -Wshadow -ggdb3 -Wall -Wextra -std=gnu11 -U_FORTIFY_SOURCE -fPIC -Werror -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/var/home/acme/git/perf/tools/lib -I/var/home/acme/git/perf/tools/include -D"BUILD_STR(s)=#s" -c -o /var/home/acme/git/perf/tools/perf/libsymbol/kallsyms.o kallsyms.c > > > CC /var/home/acme/git/perf/tools/perf/libperf/evsel.o > > > LINK libperf-jvmti.so > > > CC /var/home/acme/git/perf/tools/perf/libperf/evlist.o > > > CC /var/home/acme/git/perf/tools/perf/libperf/mmap.o > > > MKDIR /var/home/acme/git/perf/tools/perf/libapi/fd/ > > > LD /var/home/acme/git/perf/tools/perf/libsubcmd/libsubcmd-in.o > > > PERF_VERSION = 6.1.rc5.g0a1e208afdcc > > > CC /var/home/acme/git/perf/tools/perf/libperf/zalloc.o > > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_jbd2-in.o > > > CC /var/home/acme/git/perf/tools/perf/libperf/xyarray.o > > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_hrtimer-in.o > > > CC /var/home/acme/git/perf/tools/perf/libapi/fd/array.o > > > GEN /var/home/acme/git/perf/tools/perf/libbpf/bpf_helper_defs.h > > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kmem-in.o > > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_mac80211-in.o > > > LD /var/home/acme/git/perf/tools/perf/libtraceevent_plugins/plugin_kvm-in.o > > > INSTALL /var/home/acme/git/perf/tools/perf/libbpf/include/bpf/bpf.h > > > > > > > Looks like the GTK part of the build isn't depending on the prepare > > step. I'll take a look. > > > > Thanks, > > Ian > > Yep. The target: > > $(GTK_IN): FORCE > > should be: > > $(GTK_IN): FORCE prepare > > Could you try this, or do you want me to resend? I'll try it, thanks - Arnaldo
Em Wed, Nov 16, 2022 at 08:47:51AM -0800, Ian Rogers escreveu: > On Wed, Nov 16, 2022 at 8:45 AM Ian Rogers <irogers@google.com> wrote: > > Looks like the GTK part of the build isn't depending on the prepare > > step. I'll take a look. > Yep. The target: > $(GTK_IN): FORCE > should be: > $(GTK_IN): FORCE prepare > Could you try this, or do you want me to resend? Trying it, so far so good: [perfbuilder@five ~]$ export BUILD_TARBALL=http://192.168.86.14/perf/perf-6.1.0-rc5.tar.xz [perfbuilder@five ~]$ time dm 1 197.40 almalinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) , clang version 12.0.1 (Red Hat 12.0.1-4.module_el8.5.0+1025+93159d6c) 2 195.05 almalinux:9 : Ok gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) , clang version 13.0.1 (Red Hat 13.0.1-1.el9) 3 160.09 alpine:3.12 : Ok gcc (Alpine 9.3.0) 9.3.0 , Alpine clang version 10.0.0 (https://gitlab.alpinelinux.org/alpine/aports.git 7445adce501f8473efdb93b17b5eaf2f1445ed4c) 4 151.66 alpine:3.13 : Ok gcc (Alpine 10.2.1_pre1) 10.2.1 20201203 , Alpine clang version 10.0.1 5 151.66 alpine:3.14 : Ok gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424 , Alpine clang version 11.1.0 [perfbuilder@pumpkin ~]$ export BUILD_TARBALL=http://192.168.86.14/perf/perf-6.1.0-rc5.tar.xz [perfbuilder@pumpkin ~]$ time dm from fedora:24 22 40.30 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) 23 2.64 fedora:24-x-ARC-uClibc : FAIL gcc version 7.1.1 20170710 (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) libbpf.c:46:10: fatal error: libelf.h: No such file or directory #include <libelf.h> ^~~~~~~~~~ compilation terminated. 24 40.29 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1) 25 42.61 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) 26 41.70 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6) 27 44.11 fedora:28 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) 28 46.22 fedora:29 : Ok gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2) 29 45.02 fedora:30 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) 30 178.98 fedora:31 : Ok gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) , clang version 9.0.1 (Fedora 9.0.1-4.fc31) 31 159.04 fedora:32 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 10.0.1 (Fedora 10.0.1-3.fc32) 32 178.60 fedora:33 : Ok gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) , clang version 11.0.0 (Fedora 11.0.0-3.fc33) 33: fedora:34