Commit f153b821 authored by Linus Torvalds's avatar Linus Torvalds

Sanitize gcc version header includes

 - include the gcc version-dependent header files from the generic gcc
   header file, rather than the other way around (iow: don't make the
   non-gcc header file have to know about gcc versions)

 - don't include compiler-gcc4.h for gcc 5 (for whenever it gets
   released).  That's just confusing and made us do odd things in the
   gcc4 header file (testing that we really had version 4!)

 - generate the name from the __GNUC__ version directly, rather than
   having a mess of #if conditionals.
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent b58602a4
...@@ -61,3 +61,8 @@ ...@@ -61,3 +61,8 @@
#define noinline __attribute__((noinline)) #define noinline __attribute__((noinline))
#define __attribute_const__ __attribute__((__const__)) #define __attribute_const__ __attribute__((__const__))
#define __maybe_unused __attribute__((unused)) #define __maybe_unused __attribute__((unused))
#define __gcc_header(x) #x
#define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h)
#define gcc_header(x) _gcc_header(x)
#include gcc_header(__GNUC__)
...@@ -2,9 +2,6 @@ ...@@ -2,9 +2,6 @@
#error "Please don't include <linux/compiler-gcc3.h> directly, include <linux/compiler.h> instead." #error "Please don't include <linux/compiler-gcc3.h> directly, include <linux/compiler.h> instead."
#endif #endif
/* These definitions are for GCC v3.x. */
#include <linux/compiler-gcc.h>
#if __GNUC_MINOR__ >= 3 #if __GNUC_MINOR__ >= 3
# define __used __attribute__((__used__)) # define __used __attribute__((__used__))
#else #else
......
...@@ -2,9 +2,6 @@ ...@@ -2,9 +2,6 @@
#error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead." #error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead."
#endif #endif
/* These definitions are for GCC v4.x. */
#include <linux/compiler-gcc.h>
#define __used __attribute__((__used__)) #define __used __attribute__((__used__))
#define __must_check __attribute__((warn_unused_result)) #define __must_check __attribute__((warn_unused_result))
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b) #define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
...@@ -16,7 +13,7 @@ ...@@ -16,7 +13,7 @@
*/ */
#define uninitialized_var(x) x = x #define uninitialized_var(x) x = x
#if !(__GNUC__ == 4 && __GNUC_MINOR__ < 3) #if __GNUC_MINOR__ >= 3
/* Mark functions as cold. gcc will assume any path leading to a call /* Mark functions as cold. gcc will assume any path leading to a call
to them will be unlikely. This means a lot of manual unlikely()s to them will be unlikely. This means a lot of manual unlikely()s
are unnecessary now for any paths leading to the usual suspects are unnecessary now for any paths leading to the usual suspects
......
...@@ -36,12 +36,8 @@ extern void __chk_io_ptr(const volatile void __iomem *); ...@@ -36,12 +36,8 @@ extern void __chk_io_ptr(const volatile void __iomem *);
#ifdef __KERNEL__ #ifdef __KERNEL__
#if __GNUC__ >= 4 #ifdef __GNUC__
# include <linux/compiler-gcc4.h> #include <linux/compiler-gcc.h>
#elif __GNUC__ == 3 && __GNUC_MINOR__ >= 2
# include <linux/compiler-gcc3.h>
#else
# error Sorry, your compiler is too old/not recognized.
#endif #endif
#define notrace __attribute__((no_instrument_function)) #define notrace __attribute__((no_instrument_function))
......
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