From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
bpf@vger.kernel.org
Cc: Guilherme Amadio <amadio@gentoo.org>,
Namhyung Kim <namhyung@kernel.org>,
Andrii Nakryiko <andrii@kernel.org>
Subject: Re: perf tools build clash with capstone
Date: Fri, 26 Jul 2024 10:33:40 -0300 [thread overview]
Message-ID: <ZqOltPk9VQGgJZAA@x1> (raw)
In-Reply-To: <ZqFz1eKplFvhOx16@x1>
On Wed, Jul 24, 2024 at 06:36:25PM -0300, Arnaldo Carvalho de Melo wrote:
> Still investigating, but seems just a namespace clash, haven't yet
> pinpointed the cset where this problem was introduced.
So this happens with fedora:40 as well, the current "fix" is to avoid
including util/sort.h from util/disasm.c to avoid the clash, I added
this to the "perf annotate: Add support to capture and parse raw
instruction in powerpc using dso__data_read_offset utility" patch since
all we need is the sort_order extern for that hack with "sym" +
"powerpc", that we need to get rid off at some point anyway.
- Arnaldo
diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c
index 0aac35c5f1bcfda9..bab15cce612f8ff0 100644
--- a/tools/perf/util/disasm.c
+++ b/tools/perf/util/disasm.c
@@ -25,7 +25,6 @@
#include "srcline.h"
#include "symbol.h"
#include "util.h"
-#include "sort.h"
static regex_t file_lineno;
@ -1855,6 +1854,8 @@ int symbol__disassemble(struct symbol *sym, struct annotate_args *args)
* not required in case of powerpc.
*/
if (arch__is(args->arch, "powerpc")) {
+ extern const char *sort_order;
+
if (sort_order && !strstr(sort_order, "sym")) {
err = symbol__disassemble_raw(symfs_filename, sym, args);
if (err == 0)
> Probably alpine:3.19/archlinux:base are the first where capstone devel
> files are available.
>
> perfbuilder@number:~$ export BUILD_TARBALL=http://192.168.86.42/perf/perf-6.10.0.tar.xz
> perfbuilder@number:~$ time dm
> 1 101.28 almalinux:8 : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-22) , clang version 17.0.6 (Red Hat 17.0.6-1.module_el8.10.0+3757+fc27b834) flex 2.6.1
> 2 100.50 almalinux:9 : Ok gcc (GCC) 11.4.1 20231218 (Red Hat 11.4.1-3) , clang version 17.0.6 (AlmaLinux OS Foundation 17.0.6-5.el9) flex 2.6.4
> 3 119.65 alpine:3.15 : Ok gcc (Alpine 10.3.1_git20211027) 10.3.1 20211027 , Alpine clang version 12.0.1 flex 2.6.4
> 4 117.18 alpine:3.16 : Ok gcc (Alpine 11.2.1_git20220219) 11.2.1 20220219 , Alpine clang version 13.0.1 flex 2.6.4
> 5 99.97 alpine:3.17 : Ok gcc (Alpine 12.2.1_git20220924-r4) 12.2.1 20220924 , Alpine clang version 15.0.7 flex 2.6.4
> 6 92.95 alpine:3.18 : Ok gcc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924 , Alpine clang version 16.0.6 flex 2.6.4
> 7 13.59 alpine:3.19 : FAIL gcc version 13.2.1 20231014 (Alpine 13.2.1_git20231014)
> from util/disasm.c:29:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> In file included from /usr/include/capstone/capstone.h:325,
> from /git/perf-6.10.0/tools/perf/util/print_insn.h:23,
> from builtin-script.c:38:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> make[3]: *** [/git/perf-6.10.0/tools/build/Makefile.build:158: util] Error 2
> CC /tmp/build/perf/util/event.o
> CC /tmp/build/perf/builtin-script.o
> CC /tmp/build/perf/util/evlist.o
> CC /tmp/build/perf/arch/x86/util/env.o
> In file included from /usr/include/capstone/capstone.h:325,
> from util/print_insn.h:23,
> from util/disasm.c:29:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> CC /tmp/build/perf/arch/x86/util/dwarf-regs.o
> CC /tmp/build/perf/util/sideband_evlist.o
> CC /tmp/build/perf/arch/x86/util/unwind-libunwind.o
> CC /tmp/build/perf/builtin-kvm.o
> CC /tmp/build/perf/builtin-inject.o
> make[4]: *** [/git/perf-6.10.0/tools/build/Makefile.build:106: /tmp/build/perf/util/disasm.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
> CC /tmp/build/perf/builtin-mem.o
> In file included from /usr/include/capstone/capstone.h:325,
> from /git/perf-6.10.0/tools/perf/util/print_insn.h:23,
> from builtin-script.c:38:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> CC /tmp/build/perf/builtin-data.o
> CC /tmp/build/perf/bench/breakpoint.o
> CC /tmp/build/perf/tests/evsel-roundtrip-name.o
> CC /tmp/build/perf/arch/x86/util/auxtrace.o
> CC /tmp/build/perf/tests/evsel-tp-sched.o
> 8 13.68 alpine:3.20 : FAIL gcc version 13.2.1 20240309 (Alpine 13.2.1_git20240309)
> from util/disasm.c:29:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> In file included from /usr/include/capstone/capstone.h:325,
> from /git/perf-6.10.0/tools/perf/util/print_insn.h:23,
> from builtin-script.c:38:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> make[3]: *** [/git/perf-6.10.0/tools/build/Makefile.build:158: util] Error 2
> CC /tmp/build/perf/bench/breakpoint.o
> CC /tmp/build/perf/tests/hists_link.o
> CC /tmp/build/perf/builtin-kvm.o
> CC /tmp/build/perf/util/env.o
> In file included from /usr/include/capstone/capstone.h:325,
> from util/print_insn.h:23,
> from util/disasm.c:29:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> In file included from /usr/include/capstone/capstone.h:325,
> from /git/perf-6.10.0/tools/perf/util/print_insn.h:23,
> from builtin-script.c:38:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> CC /tmp/build/perf/builtin-inject.o
> CC /tmp/build/perf/arch/x86/util/intel-pt.o
> CC /tmp/build/perf/util/event.o
> make[4]: *** [/git/perf-6.10.0/tools/build/Makefile.build:106: /tmp/build/perf/util/disasm.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
> 9 13.56 alpine:edge : FAIL gcc version 13.2.1 20240309 (Alpine 13.2.1_git20240309)
> from util/disasm.c:29:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> In file included from /usr/include/capstone/capstone.h:325,
> from /git/perf-6.10.0/tools/perf/util/print_insn.h:23,
> from builtin-script.c:38:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> CC /tmp/build/perf/builtin-script.o
> CC /tmp/build/perf/tests/hists_output.o
> CC /tmp/build/perf/tests/hists_cumulate.o
> CC /tmp/build/perf/bench/epoll-ctl.o
> In file included from /usr/include/capstone/capstone.h:325,
> from util/print_insn.h:23,
> from util/disasm.c:29:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> CC /tmp/build/perf/util/sideband_evlist.o
> CC /tmp/build/perf/builtin-kvm.o
> CC /tmp/build/perf/arch/x86/util/auxtrace.o
> In file included from /usr/include/capstone/capstone.h:325,
> from /git/perf-6.10.0/tools/perf/util/print_insn.h:23,
> from builtin-script.c:38:
> /usr/include/capstone/bpf.h:94:14: error: 'bpf_insn' defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> CC /tmp/build/perf/tests/python-use.o
> CC /tmp/build/perf/util/evsel.o
> make[4]: *** [/git/perf-6.10.0/tools/build/Makefile.build:106: /tmp/build/perf/util/disasm.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
> CC /tmp/build/perf/builtin-inject.o
> 10 12.00 amazonlinux:2 : FAIL gcc version 7.3.1 20180712 (Red Hat 7.3.1-17) (GCC)
> 11 87.71 amazonlinux:2023 : Ok gcc (GCC) 11.4.1 20230605 (Red Hat 11.4.1-2) , clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1) flex 2.6.4
> 12 86.71 amazonlinux:devel : Ok gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4) , clang version 15.0.6 (Amazon Linux 15.0.6-3.amzn2023.0.2) flex 2.6.4
> 13 18.34 archlinux:base : FAIL gcc version 13.2.1 20230801 (GCC)
> from builtin-script.c:38:
> /usr/include/capstone/bpf.h:94:14: error: ‘bpf_insn’ defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> In file included from /usr/include/capstone/capstone.h:325,
> from util/print_insn.h:23,
> from util/disasm.c:29:
> /usr/include/capstone/bpf.h:94:14: error: ‘bpf_insn’ defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> CC /tmp/build/perf/util/copyfile.o
> CC /tmp/build/perf/ui/browsers/scripts.o
> CC /tmp/build/perf/bench/epoll-wait.o
> CC /tmp/build/perf/arch/x86/util/mem-events.o
> In file included from /usr/include/capstone/capstone.h:325,
> from /git/perf-6.10.0/tools/perf/util/print_insn.h:23,
> from builtin-script.c:38:
> /usr/include/capstone/bpf.h:94:14: error: ‘bpf_insn’ defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> CC /tmp/build/perf/builtin-data.o
> CC /tmp/build/perf/ui/browsers/header.o
> CC /tmp/build/perf/builtin-version.o
> CC /tmp/build/perf/builtin-c2c.o
> CC /tmp/build/perf/arch/x86/util/evsel.o
> --
> CC /tmp/build/perf/arch/x86/util/intel-pt.o
> CC /tmp/build/perf/util/sideband_evlist.o
> CC /tmp/build/perf/util/evsel.o
> CC /tmp/build/perf/arch/x86/util/intel-bts.o
> In file included from /usr/include/capstone/capstone.h:325,
> from util/print_insn.h:23,
> from util/disasm.c:29:
> /usr/include/capstone/bpf.h:94:14: error: ‘bpf_insn’ defined as wrong kind of tag
> 94 | typedef enum bpf_insn {
> | ^~~~~~~~
> CC /tmp/build/perf/tests/pmu-events.o
> CC /tmp/build/perf/util/evsel_fprintf.o
> CC /tmp/build/perf/bench/kallsyms-parse.o
> CC /tmp/build/perf/bench/find-bit-bench.o
> CC /tmp/build/perf/tests/hists_common.o
> 14 103.85 centos:stream : Ok gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-21) , clang version 17.0.6 (Red Hat 17.0.6-1.module_el8+767+9fa966b8) flex 2.6.1
> 15 98.52 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 14.1.1 20240717 releases/gcc-14.1.0-275-g3a963d441a , clang version 17.0.6 flex 2.6.4
prev parent reply other threads:[~2024-07-26 13:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-24 21:36 perf tools build clash with capstone Arnaldo Carvalho de Melo
2024-07-26 13:33 ` Arnaldo Carvalho de Melo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZqOltPk9VQGgJZAA@x1 \
--to=acme@kernel.org \
--cc=amadio@gentoo.org \
--cc=andrii@kernel.org \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=bpf@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.