#5492·bcc

USDT Probe Test Failures on RISCV Architecture.

Author: harishsadineni1Created Mar 11, 2026Updated Mar 11, 2026

Hi all,

When running the BCC test suite on a riscv64 Yocto build, several tests that rely on USDT probes fail because the sample probes are not embedded in the test binaries.

The tests that failed include: cc test finding a probe in our own process cc test find a probe in our own binary with C++ API cc test find probes in our own binary with C++ API cc test find a probe in our process with C++ API cc test find a probe in our process' shared libs with C++ API cc test uprobe refcnt semaphore activation cc test usdt partial init with fail init_usdt

After building the test binary tests/cc/test_libbcc_no_libbpf, inspecting it with readelf shows no USDT probe notes: $ readelf -n ./tests/cc/test_libbcc_no_libbpf | grep -A5 stapsdt no output

On a supported architecture (e.g., x86_64) the same command would produce output similar to: Displaying notes found in: .note.stapsdt Owner Data size Description stapsdt 0x00000044 NT_STAPSDT (SystemTap probe descriptors) Provider: libbcc_test Name: sample_probe_2

The absence of the .note.stapsdt section on riscv64 confirms that the probes were not generated.

From my analysis FOLLY_SDT macro from Facebook's Folly library is used to define the probes in bcc. At present, Folly does not have full support for riscv64 in StaticTracepoint.h (the required architecture specific definitions are missing ). As a result, on riscv64 the FOLLY_SDT macros likely expand to nothing, and no probe information is emitted