Control: tags 1142164 + patch
Control: tags 1142164 + pending

Dear maintainer,

I've prepared an NMU for bpftrace (versioned as 0.26.1-1.1) and uploaded 
it to DELAYED/2. Please feel free to tell me if I should cancel it.

cu
Adrian
diffstat for bpftrace-0.26.1 bpftrace-0.26.1

 changelog                                                               |    8 +
 patches/0001-Fix-mismatch-between-size_t-and-unsigned-long-on-arm.patch |   43 ++++++++++
 patches/series                                                          |    1 
 3 files changed, 52 insertions(+)

diff -Nru bpftrace-0.26.1/debian/changelog bpftrace-0.26.1/debian/changelog
--- bpftrace-0.26.1/debian/changelog	2026-06-13 17:26:06.000000000 +0300
+++ bpftrace-0.26.1/debian/changelog	2026-08-29 14:46:54.000000000 +0300
@@ -1,3 +1,11 @@
+bpftrace (0.26.1-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Backport upstream fix for FTBFS on 32-bit with 64-bit time_t.
+    (Closes: #1142164)
+
+ -- Adrian Bunk <[email protected]>  Sat, 29 Aug 2026 14:46:54 +0300
+
 bpftrace (0.26.1-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru bpftrace-0.26.1/debian/patches/0001-Fix-mismatch-between-size_t-and-unsigned-long-on-arm.patch bpftrace-0.26.1/debian/patches/0001-Fix-mismatch-between-size_t-and-unsigned-long-on-arm.patch
--- bpftrace-0.26.1/debian/patches/0001-Fix-mismatch-between-size_t-and-unsigned-long-on-arm.patch	1970-01-01 02:00:00.000000000 +0200
+++ bpftrace-0.26.1/debian/patches/0001-Fix-mismatch-between-size_t-and-unsigned-long-on-arm.patch	2026-08-29 14:46:54.000000000 +0300
@@ -0,0 +1,43 @@
+From 87ef0663e6456b7b66e219c9d0484b84f1386e76 Mon Sep 17 00:00:00 2001
+From: Vincent Bernat <[email protected]>
+Date: Fri, 17 Jul 2026 09:42:49 +0200
+Subject: Fix mismatch between size_t and unsigned long on armhf (#5261)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On armhf, a `size_t` does not have the same size as an `unsigned long`.
+We get this error when compiling:
+
+```
+cd /build/reproducible-path/bpftrace-0.26.1/obj-arm-linux-gnueabihf/src && /usr/bin/arm-linux-gnueabihf-g++ -DHAVE_BFD_DISASM -DHAVE_LIBDW -DHAVE_NAME_TO_HANDLE_AT=1 -DKERNEL_HEADERS_DIR=\"\" -DLIBBFD_INIT_DISASM_INFO_FOUR_ARGS_SIGNATURE -I/build/reproducible-path/bpftrace-0.26.1/src -I/build/reproducible-path/bpftrace-0.26.1/obj-arm-linux-gnueabihf/src -I/build/reproducible-path/bpftrace-0.26.1/obj-arm-linux-gnueabihf -isystem /usr/lib/llvm-21/include -g -O2 -ffile-prefix-map=/build/reproducible-path/bpftrace-0.26.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++20   -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DEXPERIMENTAL_KEY_INSTRUCTIONS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Wall -Wextra -Werror=undef -Wpointer-arith -Wcast-align -Wwrite-strings -Wcast-qual -Wunreachable-code -Wdisabled-optimization -Wno-missing-field-initializers -MD -MT src/CMakeFiles/runtime.dir/bfd-disasm.cpp.o -MF CMakeFiles/runtime.dir/bfd-disasm.cpp.o.d -o CMakeFiles/runtime.dir/bfd-disasm.cpp.o -c /build/reproducible-path/bpftrace-0.26.1/src/bfd-disasm.cpp
+/build/reproducible-path/bpftrace-0.26.1/src/dwarf/dwunwind_table.cpp: In function ‘std::vector<unsigned char> dwunwind_build_table(const std::vector<std::pair<long long unsigned int, long long unsigned int> >&, size_t, size_t, size_t&)’:
+/build/reproducible-path/bpftrace-0.26.1/src/dwarf/dwunwind_table.cpp:334:24: error: no matching function for call to ‘max(size_t, long unsigned int)’
+  334 |     auto adj = std::max(static_cast<size_t>(labs(diff) / 2.6), 1UL);
+      |                ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+```
+
+Cast 1 to `size_t` to workaround this issue.
+
+Signed-off-by: Vincent Bernat <[email protected]>
+---
+ src/dwarf/dwunwind_table.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/dwarf/dwunwind_table.cpp b/src/dwarf/dwunwind_table.cpp
+index 482aaf95..a547f85d 100644
+--- a/src/dwarf/dwunwind_table.cpp
++++ b/src/dwarf/dwunwind_table.cpp
+@@ -331,7 +331,8 @@ std::vector<uint8_t> dwunwind_build_table(
+ 
+     auto diff = static_cast<signed long>(buf.size()) -
+                 static_cast<signed long>(max_size);
+-    auto adj = std::max(static_cast<size_t>(labs(diff) / 2.6), 1UL);
++    auto adj = std::max(static_cast<size_t>(labs(diff) / 2.6),
++                        static_cast<size_t>(1));
+     if (buf.size() > max_size) {
+       right = n - 1;
+       n = std::max(n - adj, left);
+-- 
+2.47.3
+
diff -Nru bpftrace-0.26.1/debian/patches/series bpftrace-0.26.1/debian/patches/series
--- bpftrace-0.26.1/debian/patches/series	1970-01-01 02:00:00.000000000 +0200
+++ bpftrace-0.26.1/debian/patches/series	2026-08-29 14:46:54.000000000 +0300
@@ -0,0 +1 @@
+0001-Fix-mismatch-between-size_t-and-unsigned-long-on-arm.patch

Reply via email to