Commit 6e25bcf0 authored by Jose E. Marchesi's avatar Jose E. Marchesi Committed by Daniel Borkmann

bpf_helpers.h: Define bpf_tail_call_static when building with GCC

The definition of bpf_tail_call_static in tools/lib/bpf/bpf_helpers.h
is guarded by a preprocessor check to assure that clang is recent
enough to support it.  This patch updates the guard so the function is
compiled when using GCC 13 or later as well.

Tested in bpf-next master. No regressions.
Signed-off-by: default avatarJose E. Marchesi <jose.marchesi@oracle.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20240426145158.14409-1-jose.marchesi@oracle.com
parent e51b907d
...@@ -137,7 +137,8 @@ ...@@ -137,7 +137,8 @@
/* /*
* Helper function to perform a tail call with a constant/immediate map slot. * Helper function to perform a tail call with a constant/immediate map slot.
*/ */
#if __clang_major__ >= 8 && defined(__bpf__) #if (defined(__clang__) && __clang_major__ >= 8) || (!defined(__clang__) && __GNUC__ > 12)
#if defined(__bpf__)
static __always_inline void static __always_inline void
bpf_tail_call_static(void *ctx, const void *map, const __u32 slot) bpf_tail_call_static(void *ctx, const void *map, const __u32 slot)
{ {
...@@ -165,6 +166,7 @@ bpf_tail_call_static(void *ctx, const void *map, const __u32 slot) ...@@ -165,6 +166,7 @@ bpf_tail_call_static(void *ctx, const void *map, const __u32 slot)
: "r0", "r1", "r2", "r3", "r4", "r5"); : "r0", "r1", "r2", "r3", "r4", "r5");
} }
#endif #endif
#endif
enum libbpf_pin_type { enum libbpf_pin_type {
LIBBPF_PIN_NONE, LIBBPF_PIN_NONE,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment