From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-debug/bpftrace/, dev-debug/bpftrace/files/
Date: Tue, 17 Dec 2024 14:35:28 +0000 (UTC) [thread overview]
Message-ID: <1734446095.8f506bd2f62493dda21b28b51a04912d4eb2c2af.sam@gentoo> (raw)
commit: 8f506bd2f62493dda21b28b51a04912d4eb2c2af
Author: Holger Hoffstätte <holger <AT> applied-asynchrony <DOT> com>
AuthorDate: Tue Dec 17 12:53:25 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Dec 17 14:34:55 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f506bd2
dev-debug/bpftrace: add 0.21.3
This minor update switches to llvm-r1 and fixes building with
gcc-15 and LTO.
Closes: https://bugs.gentoo.org/939711
Closes: https://bugs.gentoo.org/945342
Closes: https://bugs.gentoo.org/946095
Closes: https://bugs.gentoo.org/946097
Signed-off-by: Holger Hoffstätte <holger <AT> applied-asynchrony.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-debug/bpftrace/Manifest | 2 +
dev-debug/bpftrace/bpftrace-0.21.3.ebuild | 99 ++++++++++++++++++++++
.../files/bpftrace-0.21.3-allow-llvm-19.patch | 18 ++++
.../bpftrace/files/bpftrace-0.21.3-cstdint.patch | 28 ++++++
dev-debug/bpftrace/files/bpftrace-0.21.3-odr.patch | 37 ++++++++
5 files changed, 184 insertions(+)
diff --git a/dev-debug/bpftrace/Manifest b/dev-debug/bpftrace/Manifest
index d57a01aec469..c41907a14253 100644
--- a/dev-debug/bpftrace/Manifest
+++ b/dev-debug/bpftrace/Manifest
@@ -3,3 +3,5 @@ DIST bpftrace-0.20.4.gh.tar.gz 1233327 BLAKE2B ef98dbae80285c42b6322c10666345600
DIST bpftrace-0.21.1.gh.tar.gz 1293781 BLAKE2B 154acfd076bd10d1ea7f81b77f8fe6b94812be7fc82bf798f508fa94a5558b068e1ec4bde7cecf51d1076593032d7674a5c0cde6432be7bb6dc4781656104915 SHA512 db6f5faf65fc2ac55ffbd1799b70941b8a6e4036c7fc2f56fe134f932dcf8a14fdd11a5a8b1d4b20261932d2d1ac18636cc1d7d4b87b31e366a9e53514a84ad3
DIST bpftrace-0.21.2-man.gh.tar.xz 73044 BLAKE2B 3adcd021ae6849933d488ab140cc0608cd9d1aa9df125f180a67bc85965105ae07f645ecf885ce8b6ac3a340c5f73761e0fab14309f3654b52c9deaeacf521fc SHA512 95b05a04dec92a9c24f84a2603436e0c2f5fc7b08aafa69a2cf0843497f9100a7a104f8d3b4e654e5eb0640f272756d8d86ed4563d40ea592edbcad34af2dfa7
DIST bpftrace-0.21.2.gh.tar.gz 1299415 BLAKE2B 5a5d00c94c188ea4bc5008a88c9c244b0da4ac6f74c2b7083e13b8da9b0c566efc30fd9c7164f562505a4c72e6def1f2be4e360e3cd4556366e9a0aa3e1d3cf8 SHA512 8c64de94da29030dcde0680be90e3c16a5cd965a0066b1abe3c0740f11a78d70f383bf2e0bbe2fce639eddc7d45cb44508cc8a78743c205d7efa45734151e743
+DIST bpftrace-0.21.3-man.gh.tar.xz 73044 BLAKE2B 3adcd021ae6849933d488ab140cc0608cd9d1aa9df125f180a67bc85965105ae07f645ecf885ce8b6ac3a340c5f73761e0fab14309f3654b52c9deaeacf521fc SHA512 95b05a04dec92a9c24f84a2603436e0c2f5fc7b08aafa69a2cf0843497f9100a7a104f8d3b4e654e5eb0640f272756d8d86ed4563d40ea592edbcad34af2dfa7
+DIST bpftrace-0.21.3.gh.tar.gz 1299643 BLAKE2B 138e767fd074911e643ed7582ed5666736fff6df58162a458d942220594e9e47b5817e999ef91a967c31ae2f84d8dae4499524eba87fa835da0ef539f92b98bd SHA512 8c76b20601f49b08dcbcd947b3da0dcaf59c9e8beb7c56961c7f57bb05aa6130e83b0a664f654978305fa6ceb0507d24a0d446ff1420a1447db5bd52a36fbb75
diff --git a/dev-debug/bpftrace/bpftrace-0.21.3.ebuild b/dev-debug/bpftrace/bpftrace-0.21.3.ebuild
new file mode 100644
index 000000000000..0c97af5ec0f6
--- /dev/null
+++ b/dev-debug/bpftrace/bpftrace-0.21.3.ebuild
@@ -0,0 +1,99 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_COMPAT=( {15..19} )
+
+inherit cmake linux-info llvm-r1
+
+DESCRIPTION="High-level tracing language for eBPF"
+HOMEPAGE="https://github.com/bpftrace/bpftrace"
+MY_PV="${PV//_/}"
+# the man page version may trail the release
+MAN_V="0.21.2"
+SRC_URI="https://github.com/bpftrace/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.gh.tar.gz"
+SRC_URI+=" https://github.com/bpftrace/${PN}/releases/download/v${MAN_V}/man.tar.xz -> ${P}-man.gh.tar.xz"
+S="${WORKDIR}/${PN}-${MY_PV:-${PV}}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="lldb test"
+
+# lots of fixing needed
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-libs/libbpf-1.1:=
+ >=dev-util/bcc-0.25.0:=
+ $(llvm_gen_dep '
+ lldb? ( =llvm-core/lldb-${LLVM_SLOT}* )
+ llvm-core/clang:${LLVM_SLOT}=
+ llvm-core/llvm:${LLVM_SLOT}=[llvm_targets_BPF(+)]
+ ')
+ sys-process/procps
+ sys-libs/binutils-libs:=
+ virtual/libelf:=
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ dev-libs/cereal:=
+ test? ( dev-cpp/gtest )
+"
+BDEPEND="
+ app-arch/xz-utils
+ app-alternatives/lex
+ app-alternatives/yacc
+ test? (
+ app-editors/vim-core
+ dev-util/pahole
+ )
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/bpftrace-0.11.4-old-kernels.patch"
+ "${FILESDIR}/bpftrace-0.21.0-dont-compress-man.patch"
+ "${FILESDIR}/bpftrace-0.21.3-allow-llvm-19.patch"
+ "${FILESDIR}/bpftrace-0.21.3-cstdint.patch"
+ "${FILESDIR}/bpftrace-0.21.3-odr.patch"
+)
+
+pkg_pretend() {
+ local CONFIG_CHECK="
+ ~BPF
+ ~BPF_EVENTS
+ ~BPF_JIT
+ ~BPF_SYSCALL
+ ~FTRACE_SYSCALLS
+ ~HAVE_EBPF_JIT
+ "
+
+ check_extra_config
+}
+
+src_configure() {
+ local mycmakeargs=(
+ # prevent automagic lldb use
+ $(cmake_use_find_package lldb LLDB)
+ # DO NOT build the internal libs as shared
+ -DBUILD_SHARED_LIBS=OFF
+ # DO dynamically link the bpftrace executable
+ -DSTATIC_LINKING:BOOL=OFF
+ # bug 809362, 754648
+ -DBUILD_TESTING:BOOL=$(usex test)
+ -DBUILD_FUZZ:BOOL=OFF
+ -DENABLE_MAN:BOOL=OFF
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ doman man/man8/*.?
+ gunzip "${WORKDIR}/man/man8/bpftrace.8.gz" || die
+ doman "${WORKDIR}/man/man8/bpftrace.8"
+}
diff --git a/dev-debug/bpftrace/files/bpftrace-0.21.3-allow-llvm-19.patch b/dev-debug/bpftrace/files/bpftrace-0.21.3-allow-llvm-19.patch
new file mode 100644
index 000000000000..297c096a37a0
--- /dev/null
+++ b/dev-debug/bpftrace/files/bpftrace-0.21.3-allow-llvm-19.patch
@@ -0,0 +1,18 @@
+
+Patch adapted from from https://github.com/bpftrace/bpftrace/pull/3433
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2b60fa26d990..11927a434731 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -156,8 +156,8 @@ else()
+ find_package(LLVM REQUIRED)
+ endif()
+
+-set(MIN_LLVM_MAJOR 6)
++set(MIN_LLVM_MAJOR 13)
+-set(MAX_LLVM_MAJOR 18)
++set(MAX_LLVM_MAJOR 19)
+
+ if((${LLVM_VERSION_MAJOR} VERSION_LESS ${MIN_LLVM_MAJOR}) OR (${LLVM_VERSION_MAJOR} VERSION_GREATER ${MAX_LLVM_MAJOR}))
+ message(SEND_ERROR "Unsupported LLVM version found via ${LLVM_INCLUDE_DIRS}: ${LLVM_VERSION_MAJOR}")
diff --git a/dev-debug/bpftrace/files/bpftrace-0.21.3-cstdint.patch b/dev-debug/bpftrace/files/bpftrace-0.21.3-cstdint.patch
new file mode 100644
index 000000000000..60f8ea53d4d6
--- /dev/null
+++ b/dev-debug/bpftrace/files/bpftrace-0.21.3-cstdint.patch
@@ -0,0 +1,28 @@
+
+Patch from: https://github.com/bpftrace/bpftrace/commit/9996177e80f66e1d991f960fa9eb39c221ed7f45
+
+From 9996177e80f66e1d991f960fa9eb39c221ed7f45 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Holger=20Hoffst=C3=A4tte?= <holger@applied-asynchrony.com>
+Date: Tue, 20 Aug 2024 12:12:45 +0200
+Subject: [PATCH] Explicitly include <cstdint> for gcc-15
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes: https://github.com/bpftrace/bpftrace/issues/3406
+Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
+---
+ src/disasm.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/disasm.h b/src/disasm.h
+index b5411f2e416c..d8d7fde8aa46 100644
+--- a/src/disasm.h
++++ b/src/disasm.h
+@@ -1,5 +1,6 @@
+ #pragma once
+
++#include <cstdint>
+ #include <memory>
+ #include <string>
+
diff --git a/dev-debug/bpftrace/files/bpftrace-0.21.3-odr.patch b/dev-debug/bpftrace/files/bpftrace-0.21.3-odr.patch
new file mode 100644
index 000000000000..fb1c8840d7b8
--- /dev/null
+++ b/dev-debug/bpftrace/files/bpftrace-0.21.3-odr.patch
@@ -0,0 +1,37 @@
+
+Patch from: https://github.com/bpftrace/bpftrace/pull/3648
+
+From 986acde60552af60c0a28aac234c38a7542d2f69 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Holger=20Hoffst=C3=A4tte?= <holger@applied-asynchrony.com>
+Date: Tue, 17 Dec 2024 13:27:41 +0100
+Subject: [PATCH] Fix ODR violation warning when compiling with LTO
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+yy_scan_string is declared to return void* due to a lack of a proper
+type definition of struct yy_buffer_state, which is only available in
+lex.yy.cc. Provide a struct forward declaration so that a proper
+return type can be used. This fixes the LTO complaint.
+
+Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
+---
+ src/driver.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/driver.cpp b/src/driver.cpp
+index 0cd0267323b8..b1d2f91111cd 100644
+--- a/src/driver.cpp
++++ b/src/driver.cpp
+@@ -5,7 +5,10 @@
+ #include "log.h"
+ #include "parser.tab.hh"
+
+-extern void *yy_scan_string(const char *yy_str, yyscan_t yyscanner);
++struct yy_buffer_state;
++
++extern struct yy_buffer_state *yy_scan_string(const char *yy_str,
++ yyscan_t yyscanner);
+ extern int yylex_init(yyscan_t *scanner);
+ extern int yylex_destroy(yyscan_t yyscanner);
+ extern bpftrace::location loc;
next reply other threads:[~2024-12-17 14:35 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-17 14:35 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-12-17 14:35 [gentoo-commits] repo/gentoo:master commit in: dev-debug/bpftrace/, dev-debug/bpftrace/files/ Sam James
2024-03-26 18:19 Patrick McLean
2024-03-02 6:33 Sam James
2024-01-23 20:51 Patrick McLean
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=1734446095.8f506bd2f62493dda21b28b51a04912d4eb2c2af.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox