mirror of https://gitee.com/openkylin/linux.git
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: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
b58602a4ba
commit
f153b82121
|
@ -61,3 +61,8 @@
|
|||
#define noinline __attribute__((noinline))
|
||||
#define __attribute_const__ __attribute__((__const__))
|
||||
#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 @@
|
|||
#error "Please don't include <linux/compiler-gcc3.h> directly, include <linux/compiler.h> instead."
|
||||
#endif
|
||||
|
||||
/* These definitions are for GCC v3.x. */
|
||||
#include <linux/compiler-gcc.h>
|
||||
|
||||
#if __GNUC_MINOR__ >= 3
|
||||
# define __used __attribute__((__used__))
|
||||
#else
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
#error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead."
|
||||
#endif
|
||||
|
||||
/* These definitions are for GCC v4.x. */
|
||||
#include <linux/compiler-gcc.h>
|
||||
|
||||
#define __used __attribute__((__used__))
|
||||
#define __must_check __attribute__((warn_unused_result))
|
||||
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
|
||||
|
@ -16,7 +13,7 @@
|
|||
*/
|
||||
#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
|
||||
to them will be unlikely. This means a lot of manual unlikely()s
|
||||
are unnecessary now for any paths leading to the usual suspects
|
||||
|
|
|
@ -36,12 +36,8 @@ extern void __chk_io_ptr(const volatile void __iomem *);
|
|||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#if __GNUC__ >= 4
|
||||
# include <linux/compiler-gcc4.h>
|
||||
#elif __GNUC__ == 3 && __GNUC_MINOR__ >= 2
|
||||
# include <linux/compiler-gcc3.h>
|
||||
#else
|
||||
# error Sorry, your compiler is too old/not recognized.
|
||||
#ifdef __GNUC__
|
||||
#include <linux/compiler-gcc.h>
|
||||
#endif
|
||||
|
||||
#define notrace __attribute__((no_instrument_function))
|
||||
|
|
Loading…
Reference in New Issue