tools include: Introduce linux/compiler-gcc.h
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 192614010a5052fe92611c7076ef664fd9bb60e8 Gitweb: http://git.kernel.org/tip/192614010a5052fe92611c7076ef664fd9bb60e8 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Fri, 10 Feb 2017 11:41:11 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 13 Feb 2017 14:29:29 -0300
tools include: Introduce linux/compiler-gcc.h
To match the kernel headers structure, setting up things that are specific to gcc or to some specific version of gcc.
It gets included by linux/compiler.h when gcc is the compiler being used.
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Joe Perches <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Wang Nan <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/include/linux/compiler-gcc.h | 14 ++++++++++++++ tools/include/linux/compiler.h | 10 +++++----- tools/perf/MANIFEST | 1 + 3 files changed, 20 insertions(+), 5 deletions(-)
tools/include/linux/compiler-gcc.h new file +14 -0
@@ -0,0 +1,14 @@ +#ifndef _TOOLS_LINUX_COMPILER_H_ +#error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead." +#endif + +/* +* Common definitions for all gcc versions go here. +*/ +#define GCC_VERSION (__GNUC__ * 10000 \ + + __GNUC_MINOR__ * 100 \ + + __GNUC_PATCHLEVEL__) + +#if GCC_VERSION >=70000 && !defined(__CHECKER__) +# define __fallthrough __attribute__ ((fallthrough)) +#endif
tools/include/linux/compiler.h +5 -5
@@ -1,6 +1,10 @@#ifndef _TOOLS_LINUX_COMPILER_H_#define _TOOLS_LINUX_COMPILER_H_ +#ifdef __GNUC__ +#include <linux/compiler-gcc.h> +#endif +/* Optimization barrier */ /* The "volatile" is due to gcc bugs */ #define barrier () __asm__ __volatile__("": : :"memory")
@@ -128,11 +132,7 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s#ifndef __fallthrough -# if defined(__GNUC__) && __GNUC__ >=7 -# define __fallthrough __attribute__ ((fallthrough)) -# else -# define __fallthrough -# endif +# define __fallthrough#endif #endif /* _TOOLS_LINUX_COMPILER_H */
tools/perf/MANIFEST +1 -0
@@ -61,6 +61,7 @@ tools/include/asm-generic/bitops.h tools/include/linux/atomic.h tools/include/linux/bitops.h tools/include/linux/compiler.h +tools/include/linux/compiler-gcc.h tools/include/linux/coresight-pmu.h tools/include/linux/filter.h tools/include/linux/hash.h