Fix: define old_sigaction as compat_old_sigaction in arm32 compat
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 13 Dec 2022 17:32:06 +0000 (12:32 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 13 Dec 2022 21:24:25 +0000 (16:24 -0500)
In a follow-up patch which updates the instrumentation for arm32, the
instrumentation of the old_sigaction() syscall would fail to build when
targeting a 64-bit kernel.

In that context, old_sigaction becomes compat_old_sigaction which is a
syscall that can be disabled (it was superseded by rt_sigaction a long
time ago).

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3d9e155f7943cc4b768e13ebd25b671e46df9659

include/instrumentation/syscalls/headers/arm-32-syscalls_pointers_override.h

index 68ba1c4edecb835f67219a6af3e740baf2e0df42..96fb731f7212a5e025a059f498e3f6d94315f7cd 100644 (file)
 
 #ifndef CREATE_SYSCALL_TABLE
 
+#ifdef CONFIG_ARM64
+#ifdef CONFIG_COMPAT_OLD_SIGACTION
+/*
+ * From the point of view of the 64-bit ABI, old_sigaction
+ * becomes compat_old_sigaction.
+ */
+#define old_sigaction compat_old_sigaction
+#else /* CONFIG_COMPAT_OLD_SIGACTION */
+/*
+ * The target 64-bit kernel does not enable the support for
+ * the 32-bit compat version of OLD_SIGACTION. Defining
+ * OVERRIDE_32_sigaction ensures we don't build a tracepoint
+ * for this syscall.
+ */
+#define OVERRIDE_32_sigaction
+#endif /* CONFIG_COMPAT_OLD_SIGACTION */
+#endif
+
 #define OVERRIDE_32_pipe
 SC_LTTNG_TRACEPOINT_EVENT(pipe,
        TP_PROTO(sc_exit(long ret,) int * fildes),
This page took 0.025796 seconds and 4 git commands to generate.