Commit 0205e9de authored by Pedro Tammela's avatar Pedro Tammela Committed by Andrii Nakryiko

libbpf: Avoid inline hint definition from 'linux/stddef.h'

Linux headers might pull 'linux/stddef.h' which defines
'__always_inline' as the following:

   #ifndef __always_inline
   #define __always_inline inline
   #endif

This becomes an issue if the program picks up the 'linux/stddef.h'
definition as the macro now just hints inline to clang.

This change now enforces the proper definition for BPF programs
regardless of the include order.
Signed-off-by: default avatarPedro Tammela <pctammela@gmail.com>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210314173839.457768-1-pctammela@gmail.com
parent 6503b9f2
...@@ -29,9 +29,10 @@ ...@@ -29,9 +29,10 @@
*/ */
#define SEC(NAME) __attribute__((section(NAME), used)) #define SEC(NAME) __attribute__((section(NAME), used))
#ifndef __always_inline /* Avoid 'linux/stddef.h' definition of '__always_inline'. */
#undef __always_inline
#define __always_inline inline __attribute__((always_inline)) #define __always_inline inline __attribute__((always_inline))
#endif
#ifndef __noinline #ifndef __noinline
#define __noinline __attribute__((noinline)) #define __noinline __attribute__((noinline))
#endif #endif
......
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