commit:     3f171f5cdba3205beb661623a1fb0322c2624967
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue May  6 19:33:49 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May  6 19:33:49 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3f171f5c

dev-libs/elfutils: fix build on some arches

Closes: https://bugs.gentoo.org/955065
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/elfutils/elfutils-0.193.ebuild           |  1 +
 dev-libs/elfutils/files/elfutils-0.193-perf.patch | 53 +++++++++++++++++++++++
 2 files changed, 54 insertions(+)

diff --git a/dev-libs/elfutils/elfutils-0.193.ebuild 
b/dev-libs/elfutils/elfutils-0.193.ebuild
index cdd63bff7f42..1ad8bec40d5c 100644
--- a/dev-libs/elfutils/elfutils-0.193.ebuild
+++ b/dev-libs/elfutils/elfutils-0.193.ebuild
@@ -65,6 +65,7 @@ BDEPEND+="
 PATCHES=(
        "${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch
        "${FILESDIR}"/${PN}-0.191-musl-macros.patch
+       "${FILESDIR}"/${P}-perf.patch
 )
 
 src_prepare() {

diff --git a/dev-libs/elfutils/files/elfutils-0.193-perf.patch 
b/dev-libs/elfutils/files/elfutils-0.193-perf.patch
new file mode 100644
index 000000000000..d256d2586501
--- /dev/null
+++ b/dev-libs/elfutils/files/elfutils-0.193-perf.patch
@@ -0,0 +1,53 @@
+https://sourceware.org/git/?p=elfutils.git;a=commit;h=d05241ce690018548857199bd34d7734c7164679
+https://bugs.gentoo.org/955065
+
+From d05241ce690018548857199bd34d7734c7164679 Mon Sep 17 00:00:00 2001
+From: Serhei Makarov <[email protected]>
+Date: Mon, 5 May 2025 12:08:55 -0400
+Subject: [PATCH] PR32930 backends/: guard asm/perf_regs.h include
+
+asm/perf_regs.h is an arch-specific linux include, not present on
+architectures like hppa and m68k that lack perf_events support.
+
+Only one place we need to fix; others already guard the include by
+architecture, or use architecture-independent headers (e.g.
+linux/perf_events.h).
+
+* backends/libebl_PERF_FLAGS.h: Only include asm/perf_regs.h on
+  architectures where we use it.
+
+Signed-off-by: Serhei Makarov <[email protected]>
+---
+ backends/libebl_PERF_FLAGS.h | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/backends/libebl_PERF_FLAGS.h b/backends/libebl_PERF_FLAGS.h
+index 2ed45f0f..51c20ea6 100644
+--- a/backends/libebl_PERF_FLAGS.h
++++ b/backends/libebl_PERF_FLAGS.h
+@@ -32,8 +32,12 @@
+ #define _LIBEBL_PERF_FLAGS_H 1
+ 
+ #if defined(__linux__)
++/* XXX Need to exclude __linux__ arches without perf_regs.h. */
++#if defined(__x86_64__) || defined(__i386__)
++/* || defined(other_architecture)... */
+ # include <asm/perf_regs.h>
+ #endif
++#endif
+ 
+ #if defined(_ASM_X86_PERF_REGS_H)
+ /* See the code in x86_initreg_sample.c for list of required regs and
+@@ -49,8 +53,8 @@
+    see the code in tools/perf/util/intel-pt.c intel_pt_add_gp_regs()
+    and note how regs are added in the same order as the perf_regs.h enum.  */
+ #else
+-/* Since asm/perf_regs.h gives the register layout for a different arch,
+-   we can't unwind x86_64 frames.  */
++/* Since asm/perf_regs.h is absent, or gives the register layout for a
++   different arch, we can't unwind i386 and x86_64 frames. */
+ #define PERF_FRAME_REGISTERS_I386 0
+ #define PERF_FRAME_REGISTERS_X86_64 0
+ #endif
+-- 
+2.43.5

Reply via email to