bcc: Add ARM and AArch64 support to static tracepoints

This resolves USDT probe test failures on ARM64 platforms.
Without these changes, the .note.stapsdt section containing probe
information was missing entirely on ARM64, causing test failures when
attempting to find and attach to USDT probes in the BCC test suite.

Upstream-Status: Submitted [https://github.com/iovisor/bcc/pull/5491]

Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Harish Sadineni 2026-03-07 21:54:12 -08:00 committed by Khem Raj
parent cdf9d099b9
commit 4937ed55d8
No known key found for this signature in database
GPG Key ID: BB053355919D3314
3 changed files with 94 additions and 0 deletions

View File

@ -0,0 +1,25 @@
From c2bd977c6c885d5cdca94ef5ac31bfcd9c4347ea Mon Sep 17 00:00:00 2001
From: Harish Sadineni <Harish.Sadineni@windriver.com>
Date: Sat, 7 Mar 2026 21:44:41 +0000
Subject: [PATCH 1/2] folly/tracing: Remove x86-specific naming from tracing
header
Rename StaticTracepoint-ELFx86.h to StaticTracepoint-ELF.h so the header
name is no longer tied to a specific architecture, enabling future
support for additional architectures.
Upstream-Status: Submitted [https://github.com/iovisor/bcc/pull/5491]
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
.../tracing/{StaticTracepoint-ELFx86.h => StaticTracepoint-ELF.h} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename tests/python/include/folly/tracing/{StaticTracepoint-ELFx86.h => StaticTracepoint-ELF.h} (100%)
diff --git a/tests/python/include/folly/tracing/StaticTracepoint-ELFx86.h b/tests/python/include/folly/tracing/StaticTracepoint-ELF.h
similarity index 100%
rename from tests/python/include/folly/tracing/StaticTracepoint-ELFx86.h
rename to tests/python/include/folly/tracing/StaticTracepoint-ELF.h
--
2.49.1

View File

@ -0,0 +1,67 @@
From f290f9df0556735041bfee8e67fcad55edb4c70b Mon Sep 17 00:00:00 2001
From: Harish Sadineni <Harish.Sadineni@windriver.com>
Date: Sat, 7 Mar 2026 22:02:07 +0000
Subject: [PATCH 2/2] folly/tracing: Add ARM and AArch64 support to static
tracepoints
Extend the static tracepoint (SDT) macros to work on ARM and AArch64
by:
- Defining FOLLY_SDT_NOP as "nop" (the same mnemonic works for both
ARM and AArch64)
- Adding `defined(__aarch64__) || defined(__arm__)` to the preprocessor
guard in StaticTracepoint.h
This resolves USDT probe test failures on ARM64 platforms.
Without these changes, the .note.stapsdt section containing probe
information was missing entirely on ARM64, causing test failures when
attempting to find and attach to USDT probes in the BCC test suite.
Fixes: #5354
Upstream-Status: Submitted [https://github.com/iovisor/bcc/pull/5491]
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
tests/python/include/folly/tracing/StaticTracepoint-ELF.h | 6 ++++++
tests/python/include/folly/tracing/StaticTracepoint.h | 4 ++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/tests/python/include/folly/tracing/StaticTracepoint-ELF.h b/tests/python/include/folly/tracing/StaticTracepoint-ELF.h
index 033809cb..47828309 100644
--- a/tests/python/include/folly/tracing/StaticTracepoint-ELF.h
+++ b/tests/python/include/folly/tracing/StaticTracepoint-ELF.h
@@ -25,7 +25,13 @@
#endif
// Instruction to emit for the probe.
+#if defined(__x86_64__) || defined(__i386__)
#define FOLLY_SDT_NOP nop
+#elif defined(__aarch64__) || defined(__arm__)
+#define FOLLY_SDT_NOP nop
+#else
+#error "Unsupported architecture"
+#endif
// Note section properties.
#define FOLLY_SDT_NOTE_NAME "stapsdt"
diff --git a/tests/python/include/folly/tracing/StaticTracepoint.h b/tests/python/include/folly/tracing/StaticTracepoint.h
index 858b7dbc..86f8e40c 100644
--- a/tests/python/include/folly/tracing/StaticTracepoint.h
+++ b/tests/python/include/folly/tracing/StaticTracepoint.h
@@ -16,10 +16,10 @@
#pragma once
-#if defined(__ELF__) && (defined(__x86_64__) || defined(__i386__)) && \
+#if defined(__ELF__) && (defined(__x86_64__) || defined(__i386__) || defined(__aarch64__) || defined(__arm__)) && \
!FOLLY_DISABLE_SDT
-#include <folly/tracing/StaticTracepoint-ELFx86.h>
+#include <folly/tracing/StaticTracepoint-ELF.h>
#define FOLLY_SDT(provider, name, ...) \
FOLLY_SDT_PROBE_N( \
--
2.49.0

View File

@ -24,6 +24,8 @@ SRC_URI = "gitsm://github.com/iovisor/bcc;branch=master;protocol=https;tag=v${PV
file://0001-Fix-a-build-failure-with-clang21-5369.patch \
file://0001-Add-ARM64-syscall-prefix-detection-in-C-API.patch \
file://0002-Add-riscv-syscall-prefix-detection-in-C-API.patch \
file://0003-folly-tracing-Remove-x86-specific-naming-from-tracin.patch \
file://0004-folly-tracing-Add-ARM-and-AArch64-support-to-static-.patch \
file://run-ptest \
file://ptest_wrapper.sh \
file://fix_for_memleak.patch \