diff --git a/dev-libs/elfutils/elfutils-0.196.ebuild b/dev-libs/elfutils/elfutils-0.196-r1.ebuild
similarity index 95%
rename from dev-libs/elfutils/elfutils-0.196.ebuild
rename to dev-libs/elfutils/elfutils-0.196-r1.ebuild
index 64e3da562586d..865d082432685 100644
--- a/dev-libs/elfutils/elfutils-0.196.ebuild
+++ b/dev-libs/elfutils/elfutils-0.196-r1.ebuild
@@ -28,7 +28,7 @@ fi
LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )"
SLOT="0"
-IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls static-libs test +utils valgrind zstd"
+IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls stackprof static-libs test +utils valgrind zstd"
RESTRICT="!test? ( test )"
REQUIRED_USE="debuginfod? ( libarchive )"
@@ -44,7 +44,10 @@ RDEPEND="
)
libarchive? ( >=app-arch/libarchive-3.1.2:= )
lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] )
- utils? ( libpfm? ( dev-libs/libpfm:= ) )
+ stackprof? (
+ >=dev-libs/json-c-0.11:=
+ libpfm? ( dev-libs/libpfm:= )
+ )
zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] )
elibc_musl? (
dev-libs/libbsd
@@ -131,7 +134,7 @@ multilib_src_configure() {
# Could do dummy if needed? We could also split libdebuginfod
# (client support) into its own USE if required.
$(multilib_native_use_enable debuginfod libdebuginfod)
- $(multilib_native_use_enable utils stackprof)
+ $(multilib_native_use_enable stackprof)
$(use_enable valgrind valgrind-annotations)
# Explicitly disable thread safety, it's not recommended by upstream
diff --git a/dev-libs/elfutils/elfutils-9999.ebuild b/dev-libs/elfutils/elfutils-9999.ebuild
index 6f43af1f01f90..865d082432685 100644
--- a/dev-libs/elfutils/elfutils-9999.ebuild
+++ b/dev-libs/elfutils/elfutils-9999.ebuild
@@ -28,7 +28,7 @@ fi
LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )"
SLOT="0"
-IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls static-libs test +utils valgrind zstd"
+IUSE="bzip2 +debuginfod +libarchive libpfm +lzma nls stackprof static-libs test +utils valgrind zstd"
RESTRICT="!test? ( test )"
REQUIRED_USE="debuginfod? ( libarchive )"
@@ -44,7 +44,10 @@ RDEPEND="
)
libarchive? ( >=app-arch/libarchive-3.1.2:= )
lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] )
- utils? ( libpfm? ( dev-libs/libpfm:= ) )
+ stackprof? (
+ >=dev-libs/json-c-0.11:=
+ libpfm? ( dev-libs/libpfm:= )
+ )
zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] )
elibc_musl? (
dev-libs/libbsd
@@ -66,6 +69,7 @@ BDEPEND+="
PATCHES=(
"${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch
"${FILESDIR}"/${PN}-0.191-musl-macros.patch
+ "${FILESDIR}"/${PN}-0.196-skip-static-test.patch
)
src_prepare() {
@@ -130,7 +134,7 @@ multilib_src_configure() {
# Could do dummy if needed? We could also split libdebuginfod
# (client support) into its own USE if required.
$(multilib_native_use_enable debuginfod libdebuginfod)
- $(multilib_native_use_enable utils stackprof)
+ $(multilib_native_use_enable stackprof)
$(use_enable valgrind valgrind-annotations)
# Explicitly disable thread safety, it's not recommended by upstream
diff --git a/dev-libs/elfutils/metadata.xml b/dev-libs/elfutils/metadata.xml
index 07f3fae0ecc55..b27e7e0f1b31a 100644
--- a/dev-libs/elfutils/metadata.xml
+++ b/dev-libs/elfutils/metadata.xml
@@ -20,6 +20,9 @@
See https://developers.redhat.com/articles/2024/06/11/get-system-wide-profiles-binaries-without-frame-pointers.
+
+ Build eu-stackprof tool: a tool for collecting system-wide stacktrace profiles.
+
Install command-line utilities (all the eu-* programs).
diff --git a/profiles/arch/amd64/package.use.mask b/profiles/arch/amd64/package.use.mask
index e74494132d4e2..19b8d0a3dc512 100644
--- a/profiles/arch/amd64/package.use.mask
+++ b/profiles/arch/amd64/package.use.mask
@@ -17,6 +17,10 @@
#--- END OF EXAMPLES ---
+# Sam James (2026-09-23)
+# Only supported on some arches.
+dev-libs/elfutils -stackprof
+
# Michał Górny (2026-09-22)
# Fortran modules require llvm-core/flang.
llvm-runtimes/openmp -fortran
diff --git a/profiles/arch/arm/package.use.mask b/profiles/arch/arm/package.use.mask
index f2cbbb0fc8990..eda1f0b85bde6 100644
--- a/profiles/arch/arm/package.use.mask
+++ b/profiles/arch/arm/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# Sam James (2026-09-23)
+# Only supported on some arches.
+dev-libs/elfutils -stackprof
+
# Volkmar W. Pogatzki (2026-08-16)
# Blocks removal of vulnerable old dev-java/openjdk-bin-8.492_p09
~sys-devel/gettext-0.21.1 java
diff --git a/profiles/arch/arm64/package.use.mask b/profiles/arch/arm64/package.use.mask
index a467bce989e23..20907b5c26df3 100644
--- a/profiles/arch/arm64/package.use.mask
+++ b/profiles/arch/arm64/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# Sam James (2026-09-23)
+# Only supported on some arches.
+dev-libs/elfutils -stackprof
+
# Michał Górny (2026-09-22)
# Fortran modules require llvm-core/flang.
llvm-runtimes/openmp -fortran
diff --git a/profiles/arch/base/package.use.mask b/profiles/arch/base/package.use.mask
index 621a5da6f8453..7531c2cb2c018 100644
--- a/profiles/arch/base/package.use.mask
+++ b/profiles/arch/base/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# Sam James (2026-09-23)
+# Only supported on some arches.
+dev-libs/elfutils stackprof
+
# Michał Górny (2026-09-22)
# Fortran modules require llvm-core/flang.
llvm-runtimes/openmp fortran
diff --git a/profiles/arch/x86/package.use.mask b/profiles/arch/x86/package.use.mask
index 35cd2372bf69d..aa93d132b8424 100644
--- a/profiles/arch/x86/package.use.mask
+++ b/profiles/arch/x86/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# Sam James (2026-09-23)
+# Only supported on some arches.
+dev-libs/elfutils -stackprof
+
# Michał Górny (2026-09-19)
# Dekeywording dev-python/pyarrow.
sci-libs/gdal parquet
diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
index 3b85983dafe0a..116f30bedcf80 100644
--- a/profiles/base/package.use.mask
+++ b/profiles/base/package.use.mask
@@ -6,6 +6,10 @@
# New entries go on top.
+# Sam James (2026-09-23)
+# Only supported on Linux.
+dev-libs/elfutils stackprof
+
# Andreas Sturmlechner (2026-09-19)
# Building documentation is broken in this version. Bug #976293
~dev-cpp/eigen-3.4.1 doc
diff --git a/profiles/default/linux/package.use.mask b/profiles/default/linux/package.use.mask
index 2fd0d30e1ad27..8d689c51c5767 100644
--- a/profiles/default/linux/package.use.mask
+++ b/profiles/default/linux/package.use.mask
@@ -1,6 +1,10 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# Sam James (2026-09-23)
+# Only supported on Linux.
+dev-libs/elfutils -stackprof
+
# Ben Kohler