commit: c4b2dcc656e8f642b5c6d0fcf3938a95101f9428 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Mon Mar 16 09:20:24 2026 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Mon Mar 16 09:20:24 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c4b2dcc6
dev-debug/dtrace: drop 2.0.3-r2 Signed-off-by: Sam James <sam <AT> gentoo.org> dev-debug/dtrace/Manifest | 1 - dev-debug/dtrace/dtrace-2.0.3-r2.ebuild | 236 --------------------- ...-BPF-library-functions-with-ffreestanding.patch | 34 --- 3 files changed, 271 deletions(-) diff --git a/dev-debug/dtrace/Manifest b/dev-debug/dtrace/Manifest index a6465786219d..64df0fb933b9 100644 --- a/dev-debug/dtrace/Manifest +++ b/dev-debug/dtrace/Manifest @@ -1,3 +1,2 @@ -DIST dtrace-2.0.3.tar.gz 1482755 BLAKE2B 8cbf4e0f3c500ae6b022692b3c2ba4a4eacca3feeab88e0712435863a4148217efb6d513a551510bf9e29ba9f8e543fccf5b246ed68c3a04d47259fc5a94f3f9 SHA512 74fe7cd73346a3b1a134128e1f612693739ffa1460fb0d9534cf1d31d70379a717a94ff11d23e1c4be55f3c23b95cc4f940b66a01abf7ac08ca2963049a66210 DIST dtrace-2.0.4.tar.gz 1699279 BLAKE2B 3fb610e2c233accbe36c372ab8e4f5012cdd314750dd64f7d411955038cdafeaeda038e63a06f6995f8cb89fd2df482f34fd5583f130f21f2b7a03747e33c778 SHA512 63623ce70d21dadf9e1de5d85e6d0a1a3043c0bd5f2255d32793209c1774e9be774699fdd70218a840f7060a1027388bf20d1d6c5e06b9e5671113c133ce390f DIST dtrace-2.0.5.tar.gz 1727649 BLAKE2B 387f0de25f04ed884ffbf4184b2c5e42330ea575f62a2c9f23d1413f945906e8ec6ddccdd00755ce2f2c43f41928201782b46519cbafeb17f526bfa06c0e15ab SHA512 131120602147b5cdbf7ac0c53a5c42547f80eeb5239f642bee4ea7083d991070514b838b850ded51b0bc8a31b64062c8102cd41517a6cd9bbc898afc20a87466 diff --git a/dev-debug/dtrace/dtrace-2.0.3-r2.ebuild b/dev-debug/dtrace/dtrace-2.0.3-r2.ebuild deleted file mode 100644 index c04226e48754..000000000000 --- a/dev-debug/dtrace/dtrace-2.0.3-r2.ebuild +++ /dev/null @@ -1,236 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo flag-o-matic linux-info multilib systemd toolchain-funcs udev - -DESCRIPTION="Dynamic BPF-based system-wide tracing tool" -HOMEPAGE="https://github.com/oracle/dtrace-utils https://wiki.gentoo.org/wiki/DTrace" - -if [[ ${PV} == 9999 ]]; then - EGIT_BRANCH="devel" - EGIT_REPO_URI="https://github.com/oracle/dtrace-utils" - inherit git-r3 -else - SRC_URI="https://github.com/oracle/dtrace-utils/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" - S="${WORKDIR}"/dtrace-utils-${PV} - - KEYWORDS="-* amd64 arm64" -fi - -LICENSE="UPL-1.0" -SLOT="0" -IUSE="test-install valgrind" - -# TODO: can we make the wireshark dep conditional? -DEPEND=" - dev-libs/elfutils - dev-libs/libbpf - dev-libs/libpfm:= - net-analyzer/wireshark[dumpcap] - net-libs/libpcap - >=sys-fs/fuse-3.2.0:3= - >=sys-libs/binutils-libs-2.42:= - virtual/zlib:= -" -RDEPEND=" - ${DEPEND} - !dev-debug/systemtap[dtrace-symlink(+)] - net-analyzer/wireshark - test-install? ( - app-alternatives/bc - app-editors/vim-core - dev-build/make - dev-lang/perl - dev-util/perf - net-fs/nfs-utils - sys-apps/coreutils - sys-fs/xfsprogs - sys-process/time - virtual/jdk - ) -" -BDEPEND=" - dev-build/make - sys-apps/gawk - sys-devel/bison - >=sys-devel/bpf-toolchain-14.1.0 - sys-devel/flex -" -DEPEND+=" valgrind? ( dev-debug/valgrind )" - -QA_PRESTRIPPED=" - usr/.*/dtrace/testsuite/test/triggers/.* -" -QA_FLAGS_IGNORED=" - usr/.*/dtrace/testsuite/test/triggers/.* -" - -# TODO: report upstream (bug #938221) although it seems like it's -# not relevant given it's a BPF object. -QA_EXECSTACK=" - usr/*/dtrace/bpf_dlib.* -" - -PATCHES=( - "${FILESDIR}"/0001-bpf-compile-BPF-library-functions-with-ffreestanding.patch -) - -pkg_pretend() { - # TODO: optional kernel patches - - # Basics for debugging information, BPF - local CONFIG_CHECK="~BPF ~DEBUG_INFO_BTF ~KALLSYMS_ALL" - - CONFIG_CHECK+=" ~CUSE" - - # Tracing - CONFIG_CHECK+=" ~TRACING" - CONFIG_CHECK+=" ~UPROBES ~UPROBE_EVENTS" - CONFIG_CHECK+=" ~FTRACE ~FTRACE_SYSCALLS ~DYNAMIC_FTRACE ~FUNCTION_TRACER" - CONFIG_CHECK+=" ~FPROBE" - # DTrace can fallback to kprobes for fbt but people often want them off - # for security and newer kernels work fine with BPF for that, so - # let's omit it. kprobes are slower and scale poorly. - - # https://gcc.gnu.org/PR84052 - CONFIG_CHECK+=" !GCC_PLUGIN_RANDSTRUCT" - - if use test-install ; then - # See test/modules - CONFIG_CHECK+=" ~EXT4_FS ~ISO9660_FS ~NFS_FS ~RDS ~TUN" - fi - - check_extra_config -} - -pkg_setup() { - eval unset ${!LC_*} LANG -} - -src_configure() { - if tc-is-cross-compiler; then - die "DTrace does not yet support cross-compilation." - fi - - tc-export CC - - # lld does this by default, so fix that, although lld fails anyway... - # 'LIBDTRACE_1.0' to symbol 'dtrace_provider_modules' failed: symbol not defined - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) - # mold and lld can't cope with some relocation types used, e.g. - # 'test-triggers--usdt-tst-forker-prov.o:(.SUNW_dof): unknown relocation: R_X86_64_GLOB_DAT' - tc-ld-force-bfd - - # -fno-semantic-interposition seems to lead to a broken dtrace - # that can't actually obtain results from probes, even trivial examples - # just hang. - filter-flags -fno-semantic-interposition - # While it builds as of 2025-06-08, it's broken at runtime - # in the same way as -fno-semantic-interposition (hangs, no probes fire). - filter-lto - - local confargs=( - # TODO: Maybe we should set the UNPRIV_UID to something? -3 is a bit... kludgy - --prefix="${EPREFIX}"/usr - --mandir="${EPREFIX}"/usr/share/man - --docdir="${EPREFIX}"/usr/share/doc/${PF} - --with-systemd - HAVE_LIBCTF=yes - HAVE_BPFV3=yes - HAVE_VALGRIND=$(usex valgrind) - ) - - edo ./configure "${confargs[@]}" -} - -src_compile() { - local myemakeargs=( - verbose=1 - $(usev !test-install TRIGGERS='') - ) - - if use amd64 ; then - ! has_multilib_profile && myemakeargs+=( NATIVE_BITNESS_ONLY=1 ) - fi - - # -j1: https://github.com/oracle/dtrace-utils/issues/82 - emake -j1 "${myemakeargs[@]}" -} - -src_test() { - # Needs root and is also very time-consuming - :; -} - -src_install() { - emake DESTDIR="${D}" -j1 install $(usev test-install install-test) - - # We want to strip neither the BPF libraries nor libdtrace.so itself - # as probes attach to some symbols that would get removed otherwise. - dostrip -x "/usr/$(get_libdir)" - - # It's a binary (TODO: move it?) - docompress -x /usr/share/doc/${PF}/showUSDT - - newinitd "${FILESDIR}"/dtprobed.init dtprobed -} - -pkg_postinst() { - # We need a udev reload to pick up the CUSE device node rules. - udev_reload - - if [[ -n ${REPLACING_VERSIONS} ]]; then - # TODO: Make this more intelligent wrt comparison - # One option for this is to detect when it's needed (DOF stash layout changes) - # and then e.g. sleep and restart for the user. - if systemd_is_booted ; then - einfo "Restart the DTrace 'dtprobed' service after upgrades once all dtraces are stopped with:" - einfo " systemctl try-restart dtprobed" - else - einfo "Restart the DTrace 'dtprobed' service after upgrades once all dtraces are stopped with:" - einfo " /etc/init.d/dtprobed restart" - fi - else - einfo "See https://wiki.gentoo.org/wiki/DTrace for getting started." - - # We can't do magic for people with ROOT=. - if [[ -n ${ROOT} ]] ; then - einfo "Enable and start the DTrace 'dtprobed' service for systemd with:" - einfo " systemctl enable --now dtprobed" - einfo - einfo "Enable and start the DTrace 'dtprobed' service for OpenRC with:" - einfo " rc-update add dtprobed" - einfo " /etc/init.d/dtprobed start" - return - fi - - # For first installs, we enable the service and start it. - # - # This is unusual, but the behaviour without dtprobed running - # is untested/unsupported. It's not a network service, it - # has no configuration, reads a single device node, and - # does all parsing within a seccomp jail. It also leads - # to hard-to-diagnose issues because USDT probes won't - # be registered and an application might have already - # started up which needs to be traced. - if systemd_is_booted ; then - ebegin "Enabling & starting DTrace 'dtprobed' service" - systemctl enable --now dtprobed - eend $? - else - ebegin "Enabling DTrace 'dtprobed' service" - rc-update add dtprobed - eend $? - - ebegin "Starting DTrace 'dtprobed' service" - rc-service dtprobed start - eend $? - fi - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/dev-debug/dtrace/files/0001-bpf-compile-BPF-library-functions-with-ffreestanding.patch b/dev-debug/dtrace/files/0001-bpf-compile-BPF-library-functions-with-ffreestanding.patch deleted file mode 100644 index 67111d6ab740..000000000000 --- a/dev-debug/dtrace/files/0001-bpf-compile-BPF-library-functions-with-ffreestanding.patch +++ /dev/null @@ -1,34 +0,0 @@ -https://lore.kernel.org/dtrace/sj0pr10mb567217e9df1f38898f33711bc2...@sj0pr10mb5672.namprd10.prod.outlook.com/ -https://gcc.gnu.org/PR121259 -https://bugs.gentoo.org/959876 - -From 2e027482c1bb19597a5f6ed51fac76f621b0163c Mon Sep 17 00:00:00 2001 -Message-ID: <2e027482c1bb19597a5f6ed51fac76f621b0163c.1753935317.git....@gentoo.org> -From: Kris Van Hees <[email protected]> -Date: Wed, 30 Jul 2025 23:09:03 -0400 -Subject: [PATCH] bpf: compile BPF library functions with -ffreestanding - -Per Jose, we should be compiling our BPF code with -ffreestanding to -ensure that BPF-specific standard header files are used instead of -host-specific ones. - -Signed-off-by: Kris Van Hees <[email protected]> -Tested-by: Sam James <[email protected]> -Reviewed-by: Sam James <[email protected]> -Reviewed-by: Eugene Loh <[email protected]> ---- a/GNUmakefile -+++ b/GNUmakefile -@@ -127,7 +127,7 @@ PREPROCESS = $(CC) -E - export BPFC ?= bpf-unknown-none-gcc - - BPFCPPFLAGS += -D$(subst sparc64,__sparc,$(subst aarch64,__aarch64__,$(subst x86_64,__amd64,$(ARCH)))) --BPFCFLAGS ?= -O2 -Wall -Wno-unknown-pragmas $(if $(HAVE_BPFV3),-mcpu=v3) $(if $(HAVE_BPFMASM),-masm=normal) -+BPFCFLAGS ?= -O2 -Wall -Wno-unknown-pragmas $(if $(HAVE_BPFV3),-mcpu=v3) $(if $(HAVE_BPFMASM),-masm=normal) -ffreestanding - export BPFLD ?= bpf-unknown-none-ld - - all:: - -base-commit: 6642cf0c84de770b93a235581183a644664513a5 --- -2.50.1 -
