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

