Skip to contentSkip to conversation

tools include: Introduce linux/compiler-gcc.h

tip:perf/core tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Feb 14, 2017 perf events

lore
Share & tools
lore
#0 lore raw
Commit-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.

---
 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
new file mode 100644
index 0000000..48af2f1
@@ -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
index d94179f..6326ede 100644
@@ -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
index a511e5f..8672f83 100644
@@ -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