* [gentoo-commits] repo/gentoo:master commit in: dev-util/perf/files/
@ 2019-03-04 3:14 Aaron Bauman
0 siblings, 0 replies; 5+ messages in thread
From: Aaron Bauman @ 2019-03-04 3:14 UTC (permalink / raw
To: gentoo-commits
commit: d1c490b9c9c522f663e841e4a59baabdac8f5c45
Author: Michael Mair-Keimberger <m.mairkeimberger <AT> gmail <DOT> com>
AuthorDate: Sun Mar 3 15:57:42 2019 +0000
Commit: Aaron Bauman <bman <AT> gentoo <DOT> org>
CommitDate: Mon Mar 4 03:10:50 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1c490b9
dev-util/perf: remove unused patch(es)
Signed-off-by: Michael Mair-Keimberger <m.mairkeimberger <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/11236
Signed-off-by: Aaron Bauman <bman <AT> gentoo.org>
dev-util/perf/files/perf-4.1.5-prefix.patch | 43 -----------------------------
1 file changed, 43 deletions(-)
diff --git a/dev-util/perf/files/perf-4.1.5-prefix.patch b/dev-util/perf/files/perf-4.1.5-prefix.patch
deleted file mode 100644
index 0c4dff01130..00000000000
--- a/dev-util/perf/files/perf-4.1.5-prefix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-commit 75e84ab906ef8935cff3df3d8929f1bafea81599
-Author: Lukas Wunner <lukas@wunner.de>
-Date: Thu Jun 18 13:00:32 2015 +0200
-
- perf tools: Fix build breakage if prefix= is specified
-
- Invoking Makefile.perf with prefix= breaks the build since Makefile.perf
- hands that variable down to Makefile.build where it overrides
-
- prefix := $(subst ./,,$(OUTPUT)$(dir)/)
-
- leading to errors like this:
-
- No rule to make target '/usrabspath.o', needed by '/usrlibperf-in.o'
-
- Signed-off-by: Lukas Wunner <lukas@wunner.de>
- Acked-by: Jiri Olsa <jolsa@kernel.org>
- Cc: David Ahern <dsahern@gmail.com>
- Fixes: c819e2cf2eb6f65d3208d195d7a0edef6108d5
- Link: http://lkml.kernel.org/r/5582c48a.84a22b0a.a918.5285SMTPIN_ADDED_MISSING@mx.google.com
- Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-
-diff --git a/tools/build/Makefile.build b/tools/build/Makefile.build
-index 10df572..98cfc38 100644
---- a/tools/build/Makefile.build
-+++ b/tools/build/Makefile.build
-@@ -94,12 +94,12 @@ obj-y := $(patsubst %/, %/$(obj)-in.o, $(obj-y))
- subdir-obj-y := $(filter %/$(obj)-in.o, $(obj-y))
-
- # '$(OUTPUT)/dir' prefix to all objects
--prefix := $(subst ./,,$(OUTPUT)$(dir)/)
--obj-y := $(addprefix $(prefix),$(obj-y))
--subdir-obj-y := $(addprefix $(prefix),$(subdir-obj-y))
-+objprefix := $(subst ./,,$(OUTPUT)$(dir)/)
-+obj-y := $(addprefix $(objprefix),$(obj-y))
-+subdir-obj-y := $(addprefix $(objprefix),$(subdir-obj-y))
-
- # Final '$(obj)-in.o' object
--in-target := $(prefix)$(obj)-in.o
-+in-target := $(objprefix)$(obj)-in.o
-
- PHONY += $(subdir-y)
-
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-util/perf/files/
@ 2020-01-05 2:04 Georgy Yakovlev
0 siblings, 0 replies; 5+ messages in thread
From: Georgy Yakovlev @ 2020-01-05 2:04 UTC (permalink / raw
To: gentoo-commits
commit: 2f0984a4ca63a39961bf113bb2b7bdbfe0442ea8
Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 5 02:01:53 2020 +0000
Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Sun Jan 5 02:03:27 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2f0984a4
dev-util/perf: add missing patch for 5.4.7
Closes: https://bugs.gentoo.org/704798
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>
.../perf/files/perf-5.4.7-propagate-cflags.patch | 44 ++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/dev-util/perf/files/perf-5.4.7-propagate-cflags.patch b/dev-util/perf/files/perf-5.4.7-propagate-cflags.patch
new file mode 100644
index 00000000000..b1a9bcc25a1
--- /dev/null
+++ b/dev-util/perf/files/perf-5.4.7-propagate-cflags.patch
@@ -0,0 +1,44 @@
+From 55542113c690a567e728e40d4181d7d037fc21b0 Mon Sep 17 00:00:00 2001
+From: Jiri Olsa <jolsa@kernel.org>
+Date: Fri, 11 Oct 2019 14:21:55 +0200
+Subject: perf tools: Propagate CFLAGS to libperf
+
+Andi reported that 'make DEBUG=1' does not propagate to the libbperf
+code. It's true also for the other flags. Changing the code to propagate
+the global build flags to libperf compilation.
+
+Reported-by: Andi Kleen <ak@linux.intel.com>
+Signed-off-by: Jiri Olsa <jolsa@kernel.org>
+Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
+Cc: Michael Petlan <mpetlan@redhat.com>
+Cc: Namhyung Kim <namhyung@kernel.org>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Link: http://lore.kernel.org/lkml/20191011122155.15738-1-jolsa@kernel.org
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ tools/perf/lib/core.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+(limited to 'tools/perf/lib/core.c')
+
+diff --git a/tools/perf/lib/core.c b/tools/perf/lib/core.c
+index d0b9ae422b9f..58fc894b76c5 100644
+--- a/tools/perf/lib/core.c
++++ b/tools/perf/lib/core.c
+@@ -5,11 +5,12 @@
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <unistd.h>
++#include <linux/compiler.h>
+ #include <perf/core.h>
+ #include <internal/lib.h>
+ #include "internal.h"
+
+-static int __base_pr(enum libperf_print_level level, const char *format,
++static int __base_pr(enum libperf_print_level level __maybe_unused, const char *format,
+ va_list args)
+ {
+ return vfprintf(stderr, format, args);
+--
+cgit 1.2-0.3.lf.el7
+
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-util/perf/files/
@ 2021-02-18 23:06 Conrad Kostecki
0 siblings, 0 replies; 5+ messages in thread
From: Conrad Kostecki @ 2021-02-18 23:06 UTC (permalink / raw
To: gentoo-commits
commit: b0e6a7dc74c51984376d4f0a70087ce0d7c26eeb
Author: Michael Mair-Keimberger <mmk <AT> levelnine <DOT> at>
AuthorDate: Thu Feb 18 16:56:52 2021 +0000
Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Thu Feb 18 23:02:46 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0e6a7dc
dev-util/perf: remove unused patch(es)
Closes: https://github.com/gentoo/gentoo/pull/19521
Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: Michael Mair-Keimberger <mmk <AT> levelnine.at>
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>
dev-util/perf/files/perf-5.1.15-fix-clang8.patch | 17 ------
.../perf/files/perf-5.4.20-binutil-libs-2.34.patch | 60 ----------------------
dev-util/perf/files/perf-5.4.6-fix-clang9.patch | 17 ------
.../perf/files/perf-5.4.7-propagate-cflags.patch | 44 ----------------
4 files changed, 138 deletions(-)
diff --git a/dev-util/perf/files/perf-5.1.15-fix-clang8.patch b/dev-util/perf/files/perf-5.1.15-fix-clang8.patch
deleted file mode 100644
index 743f4b017b1..00000000000
--- a/dev-util/perf/files/perf-5.1.15-fix-clang8.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-https://bugs.gentoo.org/678652
-Created-By: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
----
---- a/tools/build/feature/test-clang.cpp 2018-12-24 00:55:59.000000000 +0100
-+++ b/tools/build/feature/test-clang.cpp 2019-04-06 16:05:56.828757243 +0200
-@@ -1,10 +1,10 @@
- // SPDX-License-Identifier: GPL-2.0
--#include "clang/Basic/VirtualFileSystem.h"
- #include "clang/Driver/Driver.h"
- #include "clang/Frontend/TextDiagnosticPrinter.h"
- #include "llvm/ADT/IntrusiveRefCntPtr.h"
- #include "llvm/Support/ManagedStatic.h"
- #include "llvm/Support/raw_ostream.h"
-+#include "llvm/Support/VirtualFileSystem.h"
-
- using namespace clang;
- using namespace clang::driver;
diff --git a/dev-util/perf/files/perf-5.4.20-binutil-libs-2.34.patch b/dev-util/perf/files/perf-5.4.20-binutil-libs-2.34.patch
deleted file mode 100644
index 9fa191f720a..00000000000
--- a/dev-util/perf/files/perf-5.4.20-binutil-libs-2.34.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 0ada120c883d4f1f6aafd01cf0fbb10d8bbba015 Mon Sep 17 00:00:00 2001
-From: Changbin Du <changbin.du@gmail.com>
-Date: Tue, 28 Jan 2020 23:29:38 +0800
-Subject: perf: Make perf able to build with latest libbfd
-
-libbfd has changed the bfd_section_* macros to inline functions
-bfd_section_<field> since 2019-09-18. See below two commits:
- o http://www.sourceware.org/ml/gdb-cvs/2019-09/msg00064.html
- o https://www.sourceware.org/ml/gdb-cvs/2019-09/msg00072.html
-
-This fix make perf able to build with both old and new libbfd.
-
-Signed-off-by: Changbin Du <changbin.du@gmail.com>
-Acked-by: Jiri Olsa <jolsa@redhat.com>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Link: http://lore.kernel.org/lkml/20200128152938.31413-1-changbin.du@gmail.com
-Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----
- tools/perf/util/srcline.c | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c
-index 6ccf6f6..5b7d6c1 100644
---- a/tools/perf/util/srcline.c
-+++ b/tools/perf/util/srcline.c
-@@ -193,16 +193,30 @@ static void find_address_in_section(bfd *abfd, asection *section, void *data)
- bfd_vma pc, vma;
- bfd_size_type size;
- struct a2l_data *a2l = data;
-+ flagword flags;
-
- if (a2l->found)
- return;
-
-- if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0)
-+#ifdef bfd_get_section_flags
-+ flags = bfd_get_section_flags(abfd, section);
-+#else
-+ flags = bfd_section_flags(section);
-+#endif
-+ if ((flags & SEC_ALLOC) == 0)
- return;
-
- pc = a2l->addr;
-+#ifdef bfd_get_section_vma
- vma = bfd_get_section_vma(abfd, section);
-+#else
-+ vma = bfd_section_vma(section);
-+#endif
-+#ifdef bfd_get_section_size
- size = bfd_get_section_size(section);
-+#else
-+ size = bfd_section_size(section);
-+#endif
-
- if (pc < vma || pc >= vma + size)
- return;
---
-cgit v1.1
-
diff --git a/dev-util/perf/files/perf-5.4.6-fix-clang9.patch b/dev-util/perf/files/perf-5.4.6-fix-clang9.patch
deleted file mode 100644
index 614e62f676d..00000000000
--- a/dev-util/perf/files/perf-5.4.6-fix-clang9.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-https://bugs.gentoo.org/695726
-Created-By: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
-Created-By: Dennis Schridde <devurandom@gmx.net>
---- a/tools/perf/util/c++/clang.cpp.orig 2019-12-20 16:39:21.015363866 +0100
-+++ b/tools/perf/util/c++/clang.cpp 2019-12-20 16:40:04.051639185 +0100
-@@ -71,7 +71,11 @@
- CompilerInstance Clang;
- Clang.createDiagnostics();
-
-+#if CLANG_VERSION_MAJOR < 9
- Clang.setVirtualFileSystem(&*VFS);
-+#else
-+ Clang.createFileManager(&*VFS);
-+#endif
-
- #if CLANG_VERSION_MAJOR < 4
- IntrusiveRefCntPtr<CompilerInvocation> CI =
diff --git a/dev-util/perf/files/perf-5.4.7-propagate-cflags.patch b/dev-util/perf/files/perf-5.4.7-propagate-cflags.patch
deleted file mode 100644
index b1a9bcc25a1..00000000000
--- a/dev-util/perf/files/perf-5.4.7-propagate-cflags.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 55542113c690a567e728e40d4181d7d037fc21b0 Mon Sep 17 00:00:00 2001
-From: Jiri Olsa <jolsa@kernel.org>
-Date: Fri, 11 Oct 2019 14:21:55 +0200
-Subject: perf tools: Propagate CFLAGS to libperf
-
-Andi reported that 'make DEBUG=1' does not propagate to the libbperf
-code. It's true also for the other flags. Changing the code to propagate
-the global build flags to libperf compilation.
-
-Reported-by: Andi Kleen <ak@linux.intel.com>
-Signed-off-by: Jiri Olsa <jolsa@kernel.org>
-Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
-Cc: Michael Petlan <mpetlan@redhat.com>
-Cc: Namhyung Kim <namhyung@kernel.org>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Link: http://lore.kernel.org/lkml/20191011122155.15738-1-jolsa@kernel.org
-Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
----
- tools/perf/lib/core.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-(limited to 'tools/perf/lib/core.c')
-
-diff --git a/tools/perf/lib/core.c b/tools/perf/lib/core.c
-index d0b9ae422b9f..58fc894b76c5 100644
---- a/tools/perf/lib/core.c
-+++ b/tools/perf/lib/core.c
-@@ -5,11 +5,12 @@
- #include <stdio.h>
- #include <stdarg.h>
- #include <unistd.h>
-+#include <linux/compiler.h>
- #include <perf/core.h>
- #include <internal/lib.h>
- #include "internal.h"
-
--static int __base_pr(enum libperf_print_level level, const char *format,
-+static int __base_pr(enum libperf_print_level level __maybe_unused, const char *format,
- va_list args)
- {
- return vfprintf(stderr, format, args);
---
-cgit 1.2-0.3.lf.el7
-
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-util/perf/files/
@ 2024-03-18 20:00 Conrad Kostecki
0 siblings, 0 replies; 5+ messages in thread
From: Conrad Kostecki @ 2024-03-18 20:00 UTC (permalink / raw
To: gentoo-commits
commit: 9ae67d65c63c3236ec11a8f94439af32e0637fa3
Author: Michael Mair-Keimberger <mmk <AT> levelnine <DOT> at>
AuthorDate: Sun Mar 17 12:23:44 2024 +0000
Commit: Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Mon Mar 18 20:00:22 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9ae67d65
dev-util/perf: remove unused patch
Signed-off-by: Michael Mair-Keimberger <mmk <AT> levelnine.at>
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>
dev-util/perf/files/perf-6.6-ia64.patch | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/dev-util/perf/files/perf-6.6-ia64.patch b/dev-util/perf/files/perf-6.6-ia64.patch
deleted file mode 100644
index 111efe2ff2e7..000000000000
--- a/dev-util/perf/files/perf-6.6-ia64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/tools/arch/ia64/include/asm/barrier.h b/tools/arch/ia64/include/asm/barrier.h
-index 6fffe5682713..9753f11d79ad 100644
---- a/tools/arch/ia64/include/asm/barrier.h
-+++ b/tools/arch/ia64/include/asm/barrier.h
-@@ -14,6 +14,7 @@
- #ifndef _TOOLS_LINUX_ASM_IA64_BARRIER_H
- #define _TOOLS_LINUX_ASM_IA64_BARRIER_H
-
-+#include <asm/intrinsics.h>
- #include <linux/compiler.h>
-
- /*
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-util/perf/files/
@ 2024-11-19 10:49 Guilherme Amadio
0 siblings, 0 replies; 5+ messages in thread
From: Guilherme Amadio @ 2024-11-19 10:49 UTC (permalink / raw
To: gentoo-commits
commit: 6a78e0d02acdaa1f5583b3b9d36d87decdd5b784
Author: Guilherme Amadio <amadio <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 19 10:48:25 2024 +0000
Commit: Guilherme Amadio <amadio <AT> gentoo <DOT> org>
CommitDate: Tue Nov 19 10:48:25 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6a78e0d0
dev-util/perf/files: drop unused patches
Signed-off-by: Guilherme Amadio <amadio <AT> gentoo.org>
dev-util/perf/files/perf-6.10-bpf-capstone.patch | 456 --------------------
dev-util/perf/files/perf-6.10-expr.patch | 22 -
dev-util/perf/files/perf-6.10.3-bpf-capstone.patch | 455 --------------------
dev-util/perf/files/perf-6.11-bpf-capstone.patch | 469 ---------------------
4 files changed, 1402 deletions(-)
diff --git a/dev-util/perf/files/perf-6.10-bpf-capstone.patch b/dev-util/perf/files/perf-6.10-bpf-capstone.patch
deleted file mode 100644
index ebae9a3ad080..000000000000
--- a/dev-util/perf/files/perf-6.10-bpf-capstone.patch
+++ /dev/null
@@ -1,456 +0,0 @@
-From a7728af2f25fe99ee72d211bb4ddec17a8601f5f Mon Sep 17 00:00:00 2001
-From: Guilherme Amadio <amadio@gentoo.org>
-Date: Tue, 6 Aug 2024 11:34:05 +0200
-Subject: [PATCH] Fix bug #936439. Replay of upstream commit onto v6.10.
-
-Signed-off-by: Guilherme Amadio <amadio@gentoo.org>
----
- tools/perf/util/Build | 1 +
- tools/perf/util/disasm.c | 187 +--------------------------------
- tools/perf/util/disasm_bpf.c | 197 +++++++++++++++++++++++++++++++++++
- tools/perf/util/disasm_bpf.h | 12 +++
- 4 files changed, 211 insertions(+), 186 deletions(-)
- create mode 100644 tools/perf/util/disasm_bpf.c
- create mode 100644 tools/perf/util/disasm_bpf.h
-
-diff --git a/tools/perf/util/Build b/tools/perf/util/Build
-index da64efd8718f..384c4e06b838 100644
---- a/tools/perf/util/Build
-+++ b/tools/perf/util/Build
-@@ -13,6 +13,7 @@ perf-y += copyfile.o
- perf-y += ctype.o
- perf-y += db-export.o
- perf-y += disasm.o
-+perf-y += disasm_bpf.o
- perf-y += env.o
- perf-y += event.o
- perf-y += evlist.o
-diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c
-index 72aec8f61b94..766cbd005f32 100644
---- a/tools/perf/util/disasm.c
-+++ b/tools/perf/util/disasm.c
-@@ -15,6 +15,7 @@
- #include "build-id.h"
- #include "debug.h"
- #include "disasm.h"
-+#include "disasm_bpf.h"
- #include "dso.h"
- #include "env.h"
- #include "evsel.h"
-@@ -1164,192 +1165,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
- return 0;
- }
-
--#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
--#define PACKAGE "perf"
--#include <bfd.h>
--#include <dis-asm.h>
--#include <bpf/bpf.h>
--#include <bpf/btf.h>
--#include <bpf/libbpf.h>
--#include <linux/btf.h>
--#include <tools/dis-asm-compat.h>
--
--#include "bpf-event.h"
--#include "bpf-utils.h"
--
--static int symbol__disassemble_bpf(struct symbol *sym,
-- struct annotate_args *args)
--{
-- struct annotation *notes = symbol__annotation(sym);
-- struct bpf_prog_linfo *prog_linfo = NULL;
-- struct bpf_prog_info_node *info_node;
-- int len = sym->end - sym->start;
-- disassembler_ftype disassemble;
-- struct map *map = args->ms.map;
-- struct perf_bpil *info_linear;
-- struct disassemble_info info;
-- struct dso *dso = map__dso(map);
-- int pc = 0, count, sub_id;
-- struct btf *btf = NULL;
-- char tpath[PATH_MAX];
-- size_t buf_size;
-- int nr_skip = 0;
-- char *buf;
-- bfd *bfdf;
-- int ret;
-- FILE *s;
--
-- if (dso->binary_type != DSO_BINARY_TYPE__BPF_PROG_INFO)
-- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
--
-- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
-- sym->name, sym->start, sym->end - sym->start);
--
-- memset(tpath, 0, sizeof(tpath));
-- perf_exe(tpath, sizeof(tpath));
--
-- bfdf = bfd_openr(tpath, NULL);
-- if (bfdf == NULL)
-- abort();
--
-- if (!bfd_check_format(bfdf, bfd_object))
-- abort();
--
-- s = open_memstream(&buf, &buf_size);
-- if (!s) {
-- ret = errno;
-- goto out;
-- }
-- init_disassemble_info_compat(&info, s,
-- (fprintf_ftype) fprintf,
-- fprintf_styled);
-- info.arch = bfd_get_arch(bfdf);
-- info.mach = bfd_get_mach(bfdf);
--
-- info_node = perf_env__find_bpf_prog_info(dso->bpf_prog.env,
-- dso->bpf_prog.id);
-- if (!info_node) {
-- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
-- goto out;
-- }
-- info_linear = info_node->info_linear;
-- sub_id = dso->bpf_prog.sub_id;
--
-- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
-- info.buffer_length = info_linear->info.jited_prog_len;
--
-- if (info_linear->info.nr_line_info)
-- prog_linfo = bpf_prog_linfo__new(&info_linear->info);
--
-- if (info_linear->info.btf_id) {
-- struct btf_node *node;
--
-- node = perf_env__find_btf(dso->bpf_prog.env,
-- info_linear->info.btf_id);
-- if (node)
-- btf = btf__new((__u8 *)(node->data),
-- node->data_size);
-- }
--
-- disassemble_init_for_target(&info);
--
--#ifdef DISASM_FOUR_ARGS_SIGNATURE
-- disassemble = disassembler(info.arch,
-- bfd_big_endian(bfdf),
-- info.mach,
-- bfdf);
--#else
-- disassemble = disassembler(bfdf);
--#endif
-- if (disassemble == NULL)
-- abort();
--
-- fflush(s);
-- do {
-- const struct bpf_line_info *linfo = NULL;
-- struct disasm_line *dl;
-- size_t prev_buf_size;
-- const char *srcline;
-- u64 addr;
--
-- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
-- count = disassemble(pc, &info);
--
-- if (prog_linfo)
-- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
-- addr, sub_id,
-- nr_skip);
--
-- if (linfo && btf) {
-- srcline = btf__name_by_offset(btf, linfo->line_off);
-- nr_skip++;
-- } else
-- srcline = NULL;
--
-- fprintf(s, "\n");
-- prev_buf_size = buf_size;
-- fflush(s);
--
-- if (!annotate_opts.hide_src_code && srcline) {
-- args->offset = -1;
-- args->line = strdup(srcline);
-- args->line_nr = 0;
-- args->fileloc = NULL;
-- args->ms.sym = sym;
-- dl = disasm_line__new(args);
-- if (dl) {
-- annotation_line__add(&dl->al,
-- ¬es->src->source);
-- }
-- }
--
-- args->offset = pc;
-- args->line = buf + prev_buf_size;
-- args->line_nr = 0;
-- args->fileloc = NULL;
-- args->ms.sym = sym;
-- dl = disasm_line__new(args);
-- if (dl)
-- annotation_line__add(&dl->al, ¬es->src->source);
--
-- pc += count;
-- } while (count > 0 && pc < len);
--
-- ret = 0;
--out:
-- free(prog_linfo);
-- btf__free(btf);
-- fclose(s);
-- bfd_close(bfdf);
-- return ret;
--}
--#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
--static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused,
-- struct annotate_args *args __maybe_unused)
--{
-- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
--}
--#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
--
--static int
--symbol__disassemble_bpf_image(struct symbol *sym,
-- struct annotate_args *args)
--{
-- struct annotation *notes = symbol__annotation(sym);
-- struct disasm_line *dl;
--
-- args->offset = -1;
-- args->line = strdup("to be implemented");
-- args->line_nr = 0;
-- args->fileloc = NULL;
-- dl = disasm_line__new(args);
-- if (dl)
-- annotation_line__add(&dl->al, ¬es->src->source);
--
-- zfree(&args->line);
-- return 0;
--}
--
- #ifdef HAVE_LIBCAPSTONE_SUPPORT
- #include <capstone/capstone.h>
-
-diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c
-new file mode 100644
-index 000000000000..010b961c4ae9
---- /dev/null
-+++ b/tools/perf/util/disasm_bpf.c
-@@ -0,0 +1,197 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+
-+#include "util/annotate.h"
-+#include "util/disasm_bpf.h"
-+#include "util/symbol.h"
-+#include <linux/zalloc.h>
-+#include <string.h>
-+
-+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
-+#define PACKAGE "perf"
-+#include <bfd.h>
-+#include <bpf/bpf.h>
-+#include <bpf/btf.h>
-+#include <bpf/libbpf.h>
-+#include <dis-asm.h>
-+#include <errno.h>
-+#include <linux/btf.h>
-+#include <tools/dis-asm-compat.h>
-+
-+#include "util/bpf-event.h"
-+#include "util/bpf-utils.h"
-+#include "util/debug.h"
-+#include "util/dso.h"
-+#include "util/map.h"
-+#include "util/env.h"
-+#include "util/util.h"
-+
-+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args)
-+{
-+ struct annotation *notes = symbol__annotation(sym);
-+ struct bpf_prog_linfo *prog_linfo = NULL;
-+ struct bpf_prog_info_node *info_node;
-+ int len = sym->end - sym->start;
-+ disassembler_ftype disassemble;
-+ struct map *map = args->ms.map;
-+ struct perf_bpil *info_linear;
-+ struct disassemble_info info;
-+ struct dso *dso = map__dso(map);
-+ int pc = 0, count, sub_id;
-+ struct btf *btf = NULL;
-+ char tpath[PATH_MAX];
-+ size_t buf_size;
-+ int nr_skip = 0;
-+ char *buf;
-+ bfd *bfdf;
-+ int ret;
-+ FILE *s;
-+
-+ if (dso->binary_type != DSO_BINARY_TYPE__BPF_PROG_INFO)
-+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
-+
-+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
-+ sym->name, sym->start, sym->end - sym->start);
-+
-+ memset(tpath, 0, sizeof(tpath));
-+ perf_exe(tpath, sizeof(tpath));
-+
-+ bfdf = bfd_openr(tpath, NULL);
-+ if (bfdf == NULL)
-+ abort();
-+
-+ if (!bfd_check_format(bfdf, bfd_object))
-+ abort();
-+
-+ s = open_memstream(&buf, &buf_size);
-+ if (!s) {
-+ ret = errno;
-+ goto out;
-+ }
-+ init_disassemble_info_compat(&info, s,
-+ (fprintf_ftype) fprintf,
-+ fprintf_styled);
-+ info.arch = bfd_get_arch(bfdf);
-+ info.mach = bfd_get_mach(bfdf);
-+
-+ info_node = perf_env__find_bpf_prog_info(dso->bpf_prog.env,
-+ dso->bpf_prog.id);
-+ if (!info_node) {
-+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
-+ goto out;
-+ }
-+ info_linear = info_node->info_linear;
-+ sub_id = dso->bpf_prog.sub_id;
-+
-+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
-+ info.buffer_length = info_linear->info.jited_prog_len;
-+
-+ if (info_linear->info.nr_line_info)
-+ prog_linfo = bpf_prog_linfo__new(&info_linear->info);
-+
-+ if (info_linear->info.btf_id) {
-+ struct btf_node *node;
-+
-+ node = perf_env__find_btf(dso->bpf_prog.env,
-+ info_linear->info.btf_id);
-+ if (node)
-+ btf = btf__new((__u8 *)(node->data),
-+ node->data_size);
-+ }
-+
-+ disassemble_init_for_target(&info);
-+
-+#ifdef DISASM_FOUR_ARGS_SIGNATURE
-+ disassemble = disassembler(info.arch,
-+ bfd_big_endian(bfdf),
-+ info.mach,
-+ bfdf);
-+#else
-+ disassemble = disassembler(bfdf);
-+#endif
-+ if (disassemble == NULL)
-+ abort();
-+
-+ fflush(s);
-+ do {
-+ const struct bpf_line_info *linfo = NULL;
-+ struct disasm_line *dl;
-+ size_t prev_buf_size;
-+ const char *srcline;
-+ u64 addr;
-+
-+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
-+ count = disassemble(pc, &info);
-+
-+ if (prog_linfo)
-+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
-+ addr, sub_id,
-+ nr_skip);
-+
-+ if (linfo && btf) {
-+ srcline = btf__name_by_offset(btf, linfo->line_off);
-+ nr_skip++;
-+ } else
-+ srcline = NULL;
-+
-+ fprintf(s, "\n");
-+ prev_buf_size = buf_size;
-+ fflush(s);
-+
-+ if (!annotate_opts.hide_src_code && srcline) {
-+ args->offset = -1;
-+ args->line = strdup(srcline);
-+ args->line_nr = 0;
-+ args->fileloc = NULL;
-+ args->ms.sym = sym;
-+ dl = disasm_line__new(args);
-+ if (dl) {
-+ annotation_line__add(&dl->al,
-+ ¬es->src->source);
-+ }
-+ }
-+
-+ args->offset = pc;
-+ args->line = buf + prev_buf_size;
-+ args->line_nr = 0;
-+ args->fileloc = NULL;
-+ args->ms.sym = sym;
-+ dl = disasm_line__new(args);
-+ if (dl)
-+ annotation_line__add(&dl->al, ¬es->src->source);
-+
-+ pc += count;
-+ } while (count > 0 && pc < len);
-+
-+ ret = 0;
-+out:
-+ free(prog_linfo);
-+ btf__free(btf);
-+ fclose(s);
-+ bfd_close(bfdf);
-+ return ret;
-+}
-+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
-+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused,
-+ struct annotate_args *args __maybe_unused)
-+{
-+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
-+}
-+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
-+
-+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args)
-+{
-+ struct annotation *notes = symbol__annotation(sym);
-+ struct disasm_line *dl;
-+
-+ args->offset = -1;
-+ args->line = strdup("to be implemented");
-+ args->line_nr = 0;
-+ args->fileloc = NULL;
-+ dl = disasm_line__new(args);
-+ if (dl)
-+ annotation_line__add(&dl->al, ¬es->src->source);
-+
-+ zfree(&args->line);
-+ return 0;
-+}
-+
-diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h
-new file mode 100644
-index 000000000000..2ecb19545388
---- /dev/null
-+++ b/tools/perf/util/disasm_bpf.h
-@@ -0,0 +1,12 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+
-+#ifndef __PERF_DISASM_BPF_H
-+#define __PERF_DISASM_BPF_H
-+
-+struct symbol;
-+struct annotate_args;
-+
-+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args);
-+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args);
-+
-+#endif /* __PERF_DISASM_BPF_H */
---
-2.45.2
-
diff --git a/dev-util/perf/files/perf-6.10-expr.patch b/dev-util/perf/files/perf-6.10-expr.patch
deleted file mode 100644
index b4220a062f61..000000000000
--- a/dev-util/perf/files/perf-6.10-expr.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
-index bc980fd..a7f1e1e 100644
---- a/tools/perf/Makefile.config
-+++ b/tools/perf/Makefile.config
-@@ -1184,7 +1184,7 @@ ifneq ($(NO_LIBTRACEEVENT),1)
- CFLAGS += -DHAVE_LIBTRACEEVENT $(LIBTRACEEVENT_CFLAGS)
- LDFLAGS += $(LIBTRACEEVENT_LDFLAGS)
- EXTLIBS += ${TRACEEVENTLIBS}
-- LIBTRACEEVENT_VERSION := $(shell PKG_CONFIG_PATH=$(LIBTRACEEVENT_DIR) $(PKG_CONFIG) --modversion libtraceevent)
-+ LIBTRACEEVENT_VERSION := $(shell PKG_CONFIG_PATH=$(LIBTRACEEVENT_DIR) $(PKG_CONFIG) --modversion libtraceevent).0
- LIBTRACEEVENT_VERSION_1 := $(word 1, $(subst ., ,$(LIBTRACEEVENT_VERSION)))
- LIBTRACEEVENT_VERSION_2 := $(word 2, $(subst ., ,$(LIBTRACEEVENT_VERSION)))
- LIBTRACEEVENT_VERSION_3 := $(word 3, $(subst ., ,$(LIBTRACEEVENT_VERSION)))
-@@ -1198,7 +1198,7 @@ ifneq ($(NO_LIBTRACEEVENT),1)
- $(call feature_check,libtracefs)
- ifeq ($(feature-libtracefs), 1)
- EXTLIBS += -ltracefs
-- LIBTRACEFS_VERSION := $(shell $(PKG_CONFIG) --modversion libtracefs)
-+ LIBTRACEFS_VERSION := $(shell $(PKG_CONFIG) --modversion libtracefs).0
- LIBTRACEFS_VERSION_1 := $(word 1, $(subst ., ,$(LIBTRACEFS_VERSION)))
- LIBTRACEFS_VERSION_2 := $(word 2, $(subst ., ,$(LIBTRACEFS_VERSION)))
- LIBTRACEFS_VERSION_3 := $(word 3, $(subst ., ,$(LIBTRACEFS_VERSION)))
diff --git a/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch b/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch
deleted file mode 100644
index 57b298d8ccd7..000000000000
--- a/dev-util/perf/files/perf-6.10.3-bpf-capstone.patch
+++ /dev/null
@@ -1,455 +0,0 @@
-From b382a433e0178d3840a8fb4b05ba3dbecba075fa Mon Sep 17 00:00:00 2001
-From: Guilherme Amadio <amadio@gentoo.org>
-Date: Tue, 6 Aug 2024 11:34:05 +0200
-Subject: [PATCH] Fix bug #936439. Replay of upstream commit onto v6.10.3.
-
-Signed-off-by: Guilherme Amadio <amadio@gentoo.org>
----
- tools/perf/util/Build | 1 +
- tools/perf/util/disasm.c | 187 +--------------------------------
- tools/perf/util/disasm_bpf.c | 196 +++++++++++++++++++++++++++++++++++
- tools/perf/util/disasm_bpf.h | 12 +++
- 4 files changed, 210 insertions(+), 186 deletions(-)
- create mode 100644 tools/perf/util/disasm_bpf.c
- create mode 100644 tools/perf/util/disasm_bpf.h
-
-diff --git a/tools/perf/util/Build b/tools/perf/util/Build
-index da64efd8718f..384c4e06b838 100644
---- a/tools/perf/util/Build
-+++ b/tools/perf/util/Build
-@@ -13,6 +13,7 @@ perf-y += copyfile.o
- perf-y += ctype.o
- perf-y += db-export.o
- perf-y += disasm.o
-+perf-y += disasm_bpf.o
- perf-y += env.o
- perf-y += event.o
- perf-y += evlist.o
-diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c
-index e10558b79504..766cbd005f32 100644
---- a/tools/perf/util/disasm.c
-+++ b/tools/perf/util/disasm.c
-@@ -15,6 +15,7 @@
- #include "build-id.h"
- #include "debug.h"
- #include "disasm.h"
-+#include "disasm_bpf.h"
- #include "dso.h"
- #include "env.h"
- #include "evsel.h"
-@@ -1164,192 +1165,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
- return 0;
- }
-
--#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
--#define PACKAGE "perf"
--#include <bfd.h>
--#include <dis-asm.h>
--#include <bpf/bpf.h>
--#include <bpf/btf.h>
--#include <bpf/libbpf.h>
--#include <linux/btf.h>
--#include <tools/dis-asm-compat.h>
--
--#include "bpf-event.h"
--#include "bpf-utils.h"
--
--static int symbol__disassemble_bpf(struct symbol *sym,
-- struct annotate_args *args)
--{
-- struct annotation *notes = symbol__annotation(sym);
-- struct bpf_prog_linfo *prog_linfo = NULL;
-- struct bpf_prog_info_node *info_node;
-- int len = sym->end - sym->start;
-- disassembler_ftype disassemble;
-- struct map *map = args->ms.map;
-- struct perf_bpil *info_linear;
-- struct disassemble_info info;
-- struct dso *dso = map__dso(map);
-- int pc = 0, count, sub_id;
-- struct btf *btf = NULL;
-- char tpath[PATH_MAX];
-- size_t buf_size;
-- int nr_skip = 0;
-- char *buf;
-- bfd *bfdf;
-- int ret;
-- FILE *s;
--
-- if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO)
-- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
--
-- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
-- sym->name, sym->start, sym->end - sym->start);
--
-- memset(tpath, 0, sizeof(tpath));
-- perf_exe(tpath, sizeof(tpath));
--
-- bfdf = bfd_openr(tpath, NULL);
-- if (bfdf == NULL)
-- abort();
--
-- if (!bfd_check_format(bfdf, bfd_object))
-- abort();
--
-- s = open_memstream(&buf, &buf_size);
-- if (!s) {
-- ret = errno;
-- goto out;
-- }
-- init_disassemble_info_compat(&info, s,
-- (fprintf_ftype) fprintf,
-- fprintf_styled);
-- info.arch = bfd_get_arch(bfdf);
-- info.mach = bfd_get_mach(bfdf);
--
-- info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env,
-- dso__bpf_prog(dso)->id);
-- if (!info_node) {
-- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
-- goto out;
-- }
-- info_linear = info_node->info_linear;
-- sub_id = dso__bpf_prog(dso)->sub_id;
--
-- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
-- info.buffer_length = info_linear->info.jited_prog_len;
--
-- if (info_linear->info.nr_line_info)
-- prog_linfo = bpf_prog_linfo__new(&info_linear->info);
--
-- if (info_linear->info.btf_id) {
-- struct btf_node *node;
--
-- node = perf_env__find_btf(dso__bpf_prog(dso)->env,
-- info_linear->info.btf_id);
-- if (node)
-- btf = btf__new((__u8 *)(node->data),
-- node->data_size);
-- }
--
-- disassemble_init_for_target(&info);
--
--#ifdef DISASM_FOUR_ARGS_SIGNATURE
-- disassemble = disassembler(info.arch,
-- bfd_big_endian(bfdf),
-- info.mach,
-- bfdf);
--#else
-- disassemble = disassembler(bfdf);
--#endif
-- if (disassemble == NULL)
-- abort();
--
-- fflush(s);
-- do {
-- const struct bpf_line_info *linfo = NULL;
-- struct disasm_line *dl;
-- size_t prev_buf_size;
-- const char *srcline;
-- u64 addr;
--
-- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
-- count = disassemble(pc, &info);
--
-- if (prog_linfo)
-- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
-- addr, sub_id,
-- nr_skip);
--
-- if (linfo && btf) {
-- srcline = btf__name_by_offset(btf, linfo->line_off);
-- nr_skip++;
-- } else
-- srcline = NULL;
--
-- fprintf(s, "\n");
-- prev_buf_size = buf_size;
-- fflush(s);
--
-- if (!annotate_opts.hide_src_code && srcline) {
-- args->offset = -1;
-- args->line = strdup(srcline);
-- args->line_nr = 0;
-- args->fileloc = NULL;
-- args->ms.sym = sym;
-- dl = disasm_line__new(args);
-- if (dl) {
-- annotation_line__add(&dl->al,
-- ¬es->src->source);
-- }
-- }
--
-- args->offset = pc;
-- args->line = buf + prev_buf_size;
-- args->line_nr = 0;
-- args->fileloc = NULL;
-- args->ms.sym = sym;
-- dl = disasm_line__new(args);
-- if (dl)
-- annotation_line__add(&dl->al, ¬es->src->source);
--
-- pc += count;
-- } while (count > 0 && pc < len);
--
-- ret = 0;
--out:
-- free(prog_linfo);
-- btf__free(btf);
-- fclose(s);
-- bfd_close(bfdf);
-- return ret;
--}
--#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
--static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused,
-- struct annotate_args *args __maybe_unused)
--{
-- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
--}
--#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
--
--static int
--symbol__disassemble_bpf_image(struct symbol *sym,
-- struct annotate_args *args)
--{
-- struct annotation *notes = symbol__annotation(sym);
-- struct disasm_line *dl;
--
-- args->offset = -1;
-- args->line = strdup("to be implemented");
-- args->line_nr = 0;
-- args->fileloc = NULL;
-- dl = disasm_line__new(args);
-- if (dl)
-- annotation_line__add(&dl->al, ¬es->src->source);
--
-- zfree(&args->line);
-- return 0;
--}
--
- #ifdef HAVE_LIBCAPSTONE_SUPPORT
- #include <capstone/capstone.h>
-
-diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c
-new file mode 100644
-index 000000000000..c76a7d2be1a7
---- /dev/null
-+++ b/tools/perf/util/disasm_bpf.c
-@@ -0,0 +1,196 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+
-+#include "util/annotate.h"
-+#include "util/disasm_bpf.h"
-+#include "util/symbol.h"
-+#include <linux/zalloc.h>
-+#include <string.h>
-+
-+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
-+#define PACKAGE "perf"
-+#include <bfd.h>
-+#include <bpf/bpf.h>
-+#include <bpf/btf.h>
-+#include <bpf/libbpf.h>
-+#include <dis-asm.h>
-+#include <errno.h>
-+#include <linux/btf.h>
-+#include <tools/dis-asm-compat.h>
-+
-+#include "util/bpf-event.h"
-+#include "util/bpf-utils.h"
-+#include "util/debug.h"
-+#include "util/dso.h"
-+#include "util/map.h"
-+#include "util/env.h"
-+#include "util/util.h"
-+
-+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args)
-+{
-+ struct annotation *notes = symbol__annotation(sym);
-+ struct bpf_prog_linfo *prog_linfo = NULL;
-+ struct bpf_prog_info_node *info_node;
-+ int len = sym->end - sym->start;
-+ disassembler_ftype disassemble;
-+ struct map *map = args->ms.map;
-+ struct perf_bpil *info_linear;
-+ struct disassemble_info info;
-+ struct dso *dso = map__dso(map);
-+ int pc = 0, count, sub_id;
-+ struct btf *btf = NULL;
-+ char tpath[PATH_MAX];
-+ size_t buf_size;
-+ int nr_skip = 0;
-+ char *buf;
-+ bfd *bfdf;
-+ int ret;
-+ FILE *s;
-+
-+ if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO)
-+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
-+
-+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
-+ sym->name, sym->start, sym->end - sym->start);
-+
-+ memset(tpath, 0, sizeof(tpath));
-+ perf_exe(tpath, sizeof(tpath));
-+
-+ bfdf = bfd_openr(tpath, NULL);
-+ if (bfdf == NULL)
-+ abort();
-+
-+ if (!bfd_check_format(bfdf, bfd_object))
-+ abort();
-+
-+ s = open_memstream(&buf, &buf_size);
-+ if (!s) {
-+ ret = errno;
-+ goto out;
-+ }
-+ init_disassemble_info_compat(&info, s,
-+ (fprintf_ftype) fprintf,
-+ fprintf_styled);
-+ info.arch = bfd_get_arch(bfdf);
-+ info.mach = bfd_get_mach(bfdf);
-+
-+ info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env,
-+ dso__bpf_prog(dso)->id);
-+ if (!info_node) {
-+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
-+ goto out;
-+ }
-+ info_linear = info_node->info_linear;
-+ sub_id = dso__bpf_prog(dso)->sub_id;
-+
-+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
-+ info.buffer_length = info_linear->info.jited_prog_len;
-+
-+ if (info_linear->info.nr_line_info)
-+ prog_linfo = bpf_prog_linfo__new(&info_linear->info);
-+
-+ if (info_linear->info.btf_id) {
-+ struct btf_node *node;
-+
-+ node = perf_env__find_btf(dso__bpf_prog(dso)->env,
-+ info_linear->info.btf_id);
-+ if (node)
-+ btf = btf__new((__u8 *)(node->data),
-+ node->data_size);
-+ }
-+
-+ disassemble_init_for_target(&info);
-+
-+#ifdef DISASM_FOUR_ARGS_SIGNATURE
-+ disassemble = disassembler(info.arch,
-+ bfd_big_endian(bfdf),
-+ info.mach,
-+ bfdf);
-+#else
-+ disassemble = disassembler(bfdf);
-+#endif
-+ if (disassemble == NULL)
-+ abort();
-+
-+ fflush(s);
-+ do {
-+ const struct bpf_line_info *linfo = NULL;
-+ struct disasm_line *dl;
-+ size_t prev_buf_size;
-+ const char *srcline;
-+ u64 addr;
-+
-+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
-+ count = disassemble(pc, &info);
-+
-+ if (prog_linfo)
-+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
-+ addr, sub_id,
-+ nr_skip);
-+
-+ if (linfo && btf) {
-+ srcline = btf__name_by_offset(btf, linfo->line_off);
-+ nr_skip++;
-+ } else
-+ srcline = NULL;
-+
-+ fprintf(s, "\n");
-+ prev_buf_size = buf_size;
-+ fflush(s);
-+
-+ if (!annotate_opts.hide_src_code && srcline) {
-+ args->offset = -1;
-+ args->line = strdup(srcline);
-+ args->line_nr = 0;
-+ args->fileloc = NULL;
-+ args->ms.sym = sym;
-+ dl = disasm_line__new(args);
-+ if (dl) {
-+ annotation_line__add(&dl->al,
-+ ¬es->src->source);
-+ }
-+ }
-+
-+ args->offset = pc;
-+ args->line = buf + prev_buf_size;
-+ args->line_nr = 0;
-+ args->fileloc = NULL;
-+ args->ms.sym = sym;
-+ dl = disasm_line__new(args);
-+ if (dl)
-+ annotation_line__add(&dl->al, ¬es->src->source);
-+
-+ pc += count;
-+ } while (count > 0 && pc < len);
-+
-+ ret = 0;
-+out:
-+ free(prog_linfo);
-+ btf__free(btf);
-+ fclose(s);
-+ bfd_close(bfdf);
-+ return ret;
-+}
-+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
-+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, struct annotate_args *args __maybe_unused)
-+{
-+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
-+}
-+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
-+
-+int
-+symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args)
-+{
-+ struct annotation *notes = symbol__annotation(sym);
-+ struct disasm_line *dl;
-+
-+ args->offset = -1;
-+ args->line = strdup("to be implemented");
-+ args->line_nr = 0;
-+ args->fileloc = NULL;
-+ dl = disasm_line__new(args);
-+ if (dl)
-+ annotation_line__add(&dl->al, ¬es->src->source);
-+
-+ zfree(&args->line);
-+ return 0;
-+}
-diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h
-new file mode 100644
-index 000000000000..2ecb19545388
---- /dev/null
-+++ b/tools/perf/util/disasm_bpf.h
-@@ -0,0 +1,12 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+
-+#ifndef __PERF_DISASM_BPF_H
-+#define __PERF_DISASM_BPF_H
-+
-+struct symbol;
-+struct annotate_args;
-+
-+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args);
-+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args);
-+
-+#endif /* __PERF_DISASM_BPF_H */
---
-2.45.2
-
diff --git a/dev-util/perf/files/perf-6.11-bpf-capstone.patch b/dev-util/perf/files/perf-6.11-bpf-capstone.patch
deleted file mode 100644
index 7d8b376869f3..000000000000
--- a/dev-util/perf/files/perf-6.11-bpf-capstone.patch
+++ /dev/null
@@ -1,469 +0,0 @@
-commit ea59b70a8418a313d6f2ab48a957de015fc33018
-Author: Arnaldo Carvalho de Melo <acme@redhat.com>
-Date: Wed Jul 31 11:58:56 2024 -0300
-
- perf bpf: Move BPF disassembly routines to separate file to avoid clash with capstone bpf headers
-
- There is a clash of the libbpf and capstone libraries, that ends up
- with:
-
- In file included from /usr/include/capstone/capstone.h:325,
- from util/disasm.c:1513:
- /usr/include/capstone/bpf.h:94:14: error: ‘bpf_insn’ defined as wrong kind of tag
- 94 | typedef enum bpf_insn {
-
- So far we're just trying to avoid this by not having both headers
- included in the same .c or .h file, do it one more time by moving the
- BPF diassembly routines from util/disasm.c to util/disasm_bpf.c.
-
- This is only being hit when building with BUILD_NONDISTRO=1, i.e.
- building with binutils-devel, that isn't the in the default build due to
- a licencing clash. We need to reimplement what is now isolated in
- util/disasm_bpf.c using some other library to have BPF annotation
- feature that now only is available with BUILD_NONDISTRO=1.
-
- Fixes: 6d17edc113de1e21 ("perf annotate: Use libcapstone to disassemble")
- Cc: Adrian Hunter <adrian.hunter@intel.com>
- Cc: Ian Rogers <irogers@google.com>
- Cc: Jiri Olsa <jolsa@kernel.org>
- Cc: Kan Liang <kan.liang@linux.intel.com>
- Cc: Namhyung Kim <namhyung@kernel.org>
- Link: https://lore.kernel.org/lkml/ZqpUSKPxMwaQKORr@x1
- Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-
-diff --git a/tools/perf/util/Build b/tools/perf/util/Build
-index 0f18fe81ef0b..b24360c04aae 100644
---- a/tools/perf/util/Build
-+++ b/tools/perf/util/Build
-@@ -13,6 +13,7 @@ perf-util-y += copyfile.o
- perf-util-y += ctype.o
- perf-util-y += db-export.o
- perf-util-y += disasm.o
-+perf-util-y += disasm_bpf.o
- perf-util-y += env.o
- perf-util-y += event.o
- perf-util-y += evlist.o
-diff --git a/tools/perf/util/disasm.c b/tools/perf/util/disasm.c
-index 410e52cd9cfd..85fb0cfedf94 100644
---- a/tools/perf/util/disasm.c
-+++ b/tools/perf/util/disasm.c
-@@ -16,6 +16,7 @@
- #include "build-id.h"
- #include "debug.h"
- #include "disasm.h"
-+#include "disasm_bpf.h"
- #include "dso.h"
- #include "env.h"
- #include "evsel.h"
-@@ -1323,192 +1324,6 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
- return 0;
- }
-
--#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
--#define PACKAGE "perf"
--#include <bfd.h>
--#include <dis-asm.h>
--#include <bpf/bpf.h>
--#include <bpf/btf.h>
--#include <bpf/libbpf.h>
--#include <linux/btf.h>
--#include <tools/dis-asm-compat.h>
--
--#include "bpf-event.h"
--#include "bpf-utils.h"
--
--static int symbol__disassemble_bpf(struct symbol *sym,
-- struct annotate_args *args)
--{
-- struct annotation *notes = symbol__annotation(sym);
-- struct bpf_prog_linfo *prog_linfo = NULL;
-- struct bpf_prog_info_node *info_node;
-- int len = sym->end - sym->start;
-- disassembler_ftype disassemble;
-- struct map *map = args->ms.map;
-- struct perf_bpil *info_linear;
-- struct disassemble_info info;
-- struct dso *dso = map__dso(map);
-- int pc = 0, count, sub_id;
-- struct btf *btf = NULL;
-- char tpath[PATH_MAX];
-- size_t buf_size;
-- int nr_skip = 0;
-- char *buf;
-- bfd *bfdf;
-- int ret;
-- FILE *s;
--
-- if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO)
-- return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
--
-- pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
-- sym->name, sym->start, sym->end - sym->start);
--
-- memset(tpath, 0, sizeof(tpath));
-- perf_exe(tpath, sizeof(tpath));
--
-- bfdf = bfd_openr(tpath, NULL);
-- if (bfdf == NULL)
-- abort();
--
-- if (!bfd_check_format(bfdf, bfd_object))
-- abort();
--
-- s = open_memstream(&buf, &buf_size);
-- if (!s) {
-- ret = errno;
-- goto out;
-- }
-- init_disassemble_info_compat(&info, s,
-- (fprintf_ftype) fprintf,
-- fprintf_styled);
-- info.arch = bfd_get_arch(bfdf);
-- info.mach = bfd_get_mach(bfdf);
--
-- info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env,
-- dso__bpf_prog(dso)->id);
-- if (!info_node) {
-- ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
-- goto out;
-- }
-- info_linear = info_node->info_linear;
-- sub_id = dso__bpf_prog(dso)->sub_id;
--
-- info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
-- info.buffer_length = info_linear->info.jited_prog_len;
--
-- if (info_linear->info.nr_line_info)
-- prog_linfo = bpf_prog_linfo__new(&info_linear->info);
--
-- if (info_linear->info.btf_id) {
-- struct btf_node *node;
--
-- node = perf_env__find_btf(dso__bpf_prog(dso)->env,
-- info_linear->info.btf_id);
-- if (node)
-- btf = btf__new((__u8 *)(node->data),
-- node->data_size);
-- }
--
-- disassemble_init_for_target(&info);
--
--#ifdef DISASM_FOUR_ARGS_SIGNATURE
-- disassemble = disassembler(info.arch,
-- bfd_big_endian(bfdf),
-- info.mach,
-- bfdf);
--#else
-- disassemble = disassembler(bfdf);
--#endif
-- if (disassemble == NULL)
-- abort();
--
-- fflush(s);
-- do {
-- const struct bpf_line_info *linfo = NULL;
-- struct disasm_line *dl;
-- size_t prev_buf_size;
-- const char *srcline;
-- u64 addr;
--
-- addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
-- count = disassemble(pc, &info);
--
-- if (prog_linfo)
-- linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
-- addr, sub_id,
-- nr_skip);
--
-- if (linfo && btf) {
-- srcline = btf__name_by_offset(btf, linfo->line_off);
-- nr_skip++;
-- } else
-- srcline = NULL;
--
-- fprintf(s, "\n");
-- prev_buf_size = buf_size;
-- fflush(s);
--
-- if (!annotate_opts.hide_src_code && srcline) {
-- args->offset = -1;
-- args->line = strdup(srcline);
-- args->line_nr = 0;
-- args->fileloc = NULL;
-- args->ms.sym = sym;
-- dl = disasm_line__new(args);
-- if (dl) {
-- annotation_line__add(&dl->al,
-- ¬es->src->source);
-- }
-- }
--
-- args->offset = pc;
-- args->line = buf + prev_buf_size;
-- args->line_nr = 0;
-- args->fileloc = NULL;
-- args->ms.sym = sym;
-- dl = disasm_line__new(args);
-- if (dl)
-- annotation_line__add(&dl->al, ¬es->src->source);
--
-- pc += count;
-- } while (count > 0 && pc < len);
--
-- ret = 0;
--out:
-- free(prog_linfo);
-- btf__free(btf);
-- fclose(s);
-- bfd_close(bfdf);
-- return ret;
--}
--#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
--static int symbol__disassemble_bpf(struct symbol *sym __maybe_unused,
-- struct annotate_args *args __maybe_unused)
--{
-- return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
--}
--#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
--
--static int
--symbol__disassemble_bpf_image(struct symbol *sym,
-- struct annotate_args *args)
--{
-- struct annotation *notes = symbol__annotation(sym);
-- struct disasm_line *dl;
--
-- args->offset = -1;
-- args->line = strdup("to be implemented");
-- args->line_nr = 0;
-- args->fileloc = NULL;
-- dl = disasm_line__new(args);
-- if (dl)
-- annotation_line__add(&dl->al, ¬es->src->source);
--
-- zfree(&args->line);
-- return 0;
--}
--
- #ifdef HAVE_LIBCAPSTONE_SUPPORT
- #include <capstone/capstone.h>
-
-diff --git a/tools/perf/util/disasm_bpf.c b/tools/perf/util/disasm_bpf.c
-new file mode 100644
-index 000000000000..1fee71c79b62
---- /dev/null
-+++ b/tools/perf/util/disasm_bpf.c
-@@ -0,0 +1,195 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+
-+#include "util/annotate.h"
-+#include "util/disasm_bpf.h"
-+#include "util/symbol.h"
-+#include <linux/zalloc.h>
-+#include <string.h>
-+
-+#if defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
-+#define PACKAGE "perf"
-+#include <bfd.h>
-+#include <bpf/bpf.h>
-+#include <bpf/btf.h>
-+#include <bpf/libbpf.h>
-+#include <dis-asm.h>
-+#include <errno.h>
-+#include <linux/btf.h>
-+#include <tools/dis-asm-compat.h>
-+
-+#include "util/bpf-event.h"
-+#include "util/bpf-utils.h"
-+#include "util/debug.h"
-+#include "util/dso.h"
-+#include "util/map.h"
-+#include "util/env.h"
-+#include "util/util.h"
-+
-+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args)
-+{
-+ struct annotation *notes = symbol__annotation(sym);
-+ struct bpf_prog_linfo *prog_linfo = NULL;
-+ struct bpf_prog_info_node *info_node;
-+ int len = sym->end - sym->start;
-+ disassembler_ftype disassemble;
-+ struct map *map = args->ms.map;
-+ struct perf_bpil *info_linear;
-+ struct disassemble_info info;
-+ struct dso *dso = map__dso(map);
-+ int pc = 0, count, sub_id;
-+ struct btf *btf = NULL;
-+ char tpath[PATH_MAX];
-+ size_t buf_size;
-+ int nr_skip = 0;
-+ char *buf;
-+ bfd *bfdf;
-+ int ret;
-+ FILE *s;
-+
-+ if (dso__binary_type(dso) != DSO_BINARY_TYPE__BPF_PROG_INFO)
-+ return SYMBOL_ANNOTATE_ERRNO__BPF_INVALID_FILE;
-+
-+ pr_debug("%s: handling sym %s addr %" PRIx64 " len %" PRIx64 "\n", __func__,
-+ sym->name, sym->start, sym->end - sym->start);
-+
-+ memset(tpath, 0, sizeof(tpath));
-+ perf_exe(tpath, sizeof(tpath));
-+
-+ bfdf = bfd_openr(tpath, NULL);
-+ if (bfdf == NULL)
-+ abort();
-+
-+ if (!bfd_check_format(bfdf, bfd_object))
-+ abort();
-+
-+ s = open_memstream(&buf, &buf_size);
-+ if (!s) {
-+ ret = errno;
-+ goto out;
-+ }
-+ init_disassemble_info_compat(&info, s,
-+ (fprintf_ftype) fprintf,
-+ fprintf_styled);
-+ info.arch = bfd_get_arch(bfdf);
-+ info.mach = bfd_get_mach(bfdf);
-+
-+ info_node = perf_env__find_bpf_prog_info(dso__bpf_prog(dso)->env,
-+ dso__bpf_prog(dso)->id);
-+ if (!info_node) {
-+ ret = SYMBOL_ANNOTATE_ERRNO__BPF_MISSING_BTF;
-+ goto out;
-+ }
-+ info_linear = info_node->info_linear;
-+ sub_id = dso__bpf_prog(dso)->sub_id;
-+
-+ info.buffer = (void *)(uintptr_t)(info_linear->info.jited_prog_insns);
-+ info.buffer_length = info_linear->info.jited_prog_len;
-+
-+ if (info_linear->info.nr_line_info)
-+ prog_linfo = bpf_prog_linfo__new(&info_linear->info);
-+
-+ if (info_linear->info.btf_id) {
-+ struct btf_node *node;
-+
-+ node = perf_env__find_btf(dso__bpf_prog(dso)->env,
-+ info_linear->info.btf_id);
-+ if (node)
-+ btf = btf__new((__u8 *)(node->data),
-+ node->data_size);
-+ }
-+
-+ disassemble_init_for_target(&info);
-+
-+#ifdef DISASM_FOUR_ARGS_SIGNATURE
-+ disassemble = disassembler(info.arch,
-+ bfd_big_endian(bfdf),
-+ info.mach,
-+ bfdf);
-+#else
-+ disassemble = disassembler(bfdf);
-+#endif
-+ if (disassemble == NULL)
-+ abort();
-+
-+ fflush(s);
-+ do {
-+ const struct bpf_line_info *linfo = NULL;
-+ struct disasm_line *dl;
-+ size_t prev_buf_size;
-+ const char *srcline;
-+ u64 addr;
-+
-+ addr = pc + ((u64 *)(uintptr_t)(info_linear->info.jited_ksyms))[sub_id];
-+ count = disassemble(pc, &info);
-+
-+ if (prog_linfo)
-+ linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
-+ addr, sub_id,
-+ nr_skip);
-+
-+ if (linfo && btf) {
-+ srcline = btf__name_by_offset(btf, linfo->line_off);
-+ nr_skip++;
-+ } else
-+ srcline = NULL;
-+
-+ fprintf(s, "\n");
-+ prev_buf_size = buf_size;
-+ fflush(s);
-+
-+ if (!annotate_opts.hide_src_code && srcline) {
-+ args->offset = -1;
-+ args->line = strdup(srcline);
-+ args->line_nr = 0;
-+ args->fileloc = NULL;
-+ args->ms.sym = sym;
-+ dl = disasm_line__new(args);
-+ if (dl) {
-+ annotation_line__add(&dl->al,
-+ ¬es->src->source);
-+ }
-+ }
-+
-+ args->offset = pc;
-+ args->line = buf + prev_buf_size;
-+ args->line_nr = 0;
-+ args->fileloc = NULL;
-+ args->ms.sym = sym;
-+ dl = disasm_line__new(args);
-+ if (dl)
-+ annotation_line__add(&dl->al, ¬es->src->source);
-+
-+ pc += count;
-+ } while (count > 0 && pc < len);
-+
-+ ret = 0;
-+out:
-+ free(prog_linfo);
-+ btf__free(btf);
-+ fclose(s);
-+ bfd_close(bfdf);
-+ return ret;
-+}
-+#else // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
-+int symbol__disassemble_bpf(struct symbol *sym __maybe_unused, struct annotate_args *args __maybe_unused)
-+{
-+ return SYMBOL_ANNOTATE_ERRNO__NO_LIBOPCODES_FOR_BPF;
-+}
-+#endif // defined(HAVE_LIBBFD_SUPPORT) && defined(HAVE_LIBBPF_SUPPORT)
-+
-+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args)
-+{
-+ struct annotation *notes = symbol__annotation(sym);
-+ struct disasm_line *dl;
-+
-+ args->offset = -1;
-+ args->line = strdup("to be implemented");
-+ args->line_nr = 0;
-+ args->fileloc = NULL;
-+ dl = disasm_line__new(args);
-+ if (dl)
-+ annotation_line__add(&dl->al, ¬es->src->source);
-+
-+ zfree(&args->line);
-+ return 0;
-+}
-diff --git a/tools/perf/util/disasm_bpf.h b/tools/perf/util/disasm_bpf.h
-new file mode 100644
-index 000000000000..2ecb19545388
---- /dev/null
-+++ b/tools/perf/util/disasm_bpf.h
-@@ -0,0 +1,12 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+
-+#ifndef __PERF_DISASM_BPF_H
-+#define __PERF_DISASM_BPF_H
-+
-+struct symbol;
-+struct annotate_args;
-+
-+int symbol__disassemble_bpf(struct symbol *sym, struct annotate_args *args);
-+int symbol__disassemble_bpf_image(struct symbol *sym, struct annotate_args *args);
-+
-+#endif /* __PERF_DISASM_BPF_H */
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-11-19 10:50 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-05 2:04 [gentoo-commits] repo/gentoo:master commit in: dev-util/perf/files/ Georgy Yakovlev
-- strict thread matches above, loose matches on Subject: below --
2024-11-19 10:49 Guilherme Amadio
2024-03-18 20:00 Conrad Kostecki
2021-02-18 23:06 Conrad Kostecki
2019-03-04 3:14 Aaron Bauman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox