X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=include%2Fwrapper%2Fcompiler.h;h=ade06fe702de4e4133868fb7ece4509b4c0369de;hb=77d6fd12836060e4354c08179ecc9e0a9f7e2aba;hp=4efe0cfa671fab25b6b283543512b25903668425;hpb=585e5dcc4bf017c03b86dc84371f9c6170e12785;p=lttng-modules.git diff --git a/include/wrapper/compiler.h b/include/wrapper/compiler.h index 4efe0cfa..ade06fe7 100644 --- a/include/wrapper/compiler.h +++ b/include/wrapper/compiler.h @@ -9,7 +9,7 @@ #define _LTTNG_WRAPPER_COMPILER_H #include -#include +#include /* * Don't allow compiling with buggy compiler. @@ -25,6 +25,16 @@ # error Your gcc version produces clobbered frame accesses # endif # endif + +/* + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63293 + */ +# ifdef __aarch64__ +# if GCC_VERSION < 50100 +# error Your gcc version performs unsafe access to deallocated stack +# endif +# endif + #endif /* @@ -46,7 +56,7 @@ * and remove calls to smp_read_barrier_depends which was dropped * in v5.9. */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,15,0)) #define LTTNG_READ_ONCE(x) READ_ONCE(x) #else #define LTTNG_READ_ONCE(x) \ @@ -59,4 +69,16 @@ #define __LTTNG_COMPOUND_LITERAL(type, ...) (type[]) { __VA_ARGS__ } +/* + * The static_assert macro was defined by the kernel in v5.1. + * If the macro is not defined, we define it. + * (kernel source: include/linux/build_bug.h) + */ +#ifndef static_assert + +# define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr) +# define __static_assert(expr, msg, ...) _Static_assert(expr, msg) + +#endif + #endif /* _LTTNG_WRAPPER_COMPILER_H */