[DTrace-devel] [PATCH 05/61] Explicitly define BPF helper function IDs if necessary
eugene.loh at oracle.com
eugene.loh at oracle.com
Fri Jul 8 14:44:49 UTC 2022
From: Eugene Loh <eugene.loh at oracle.com>
Some Oracle Linux systems have very out-of-date linux/bpf.h header
files. E.g. they may not have BPF_FUNC_send_signal (which appeared
in Linux 5.2) or BPF_FUNC_get_stack (which appeared in 4.17).
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
libdtrace/dt_cg.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 58f0ddd1..3c97a6c9 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -1670,6 +1670,9 @@ dt_cg_act_raise(dt_pcb_t *pcb, dt_node_t *dnp, dtrace_actkind_t kind)
dt_cg_node(dnp->dn_args, &pcb->pcb_ir, drp);
+#ifndef BPF_FUNC_send_signal
+#define BPF_FUNC_send_signal 109
+#endif
if (dt_regset_xalloc_args(drp) == -1)
longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
emit(dlp, BPF_MOV_REG(BPF_REG_1, dnp->dn_args->dn_reg));
@@ -1779,6 +1782,9 @@ dt_cg_act_stack(dt_pcb_t *pcb, dt_node_t *dnp, dtrace_actkind_t kind)
sizeof(uint64_t) * nframes, sizeof(uint64_t),
NULL, nframes);
+#ifndef BPF_FUNC_get_stack
+#define BPF_FUNC_get_stack 67
+#endif
/* Now call bpf_get_stack(ctx, buf, size, flags). */
if (dt_regset_xalloc_args(drp) == -1)
longjmp(yypcb->pcb_jmpbuf, EDT_NOREG);
--
2.18.4
More information about the DTrace-devel
mailing list