Explorar o código

compiler_gcc: do not redefine __gnu_attributes

gcc allows extensions to be non compiler specific by defining
__* macros for the attributes supported by gcc. Having a
different definition causes many warnings during the build
(cdefs.h on FreeBSD uses __attribute((__pure__)) where u-boot
uses __attribute__((pure)) for example). Do not redefine
these macros to suppress these warnings.

This patch ignores the checkpatch warning:
WARNING: __packed is preferred over __attribute__((packed))

Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
Jeroen Hofstee %!s(int64=11) %!d(string=hai) anos
pai
achega
7ea50d5284
Modificáronse 2 ficheiros con 12 adicións e 4 borrados
  1. 9 3
      include/linux/compiler-gcc.h
  2. 3 1
      include/linux/compiler-gcc4.h

+ 9 - 3
include/linux/compiler-gcc.h

@@ -50,7 +50,9 @@
 #endif
 
 #define __deprecated			__attribute__((deprecated))
-#define __packed			__attribute__((packed))
+#ifndef __packed
+# define __packed			__attribute__((packed))
+#endif
 #define __weak				__attribute__((weak))
 
 /*
@@ -73,8 +75,12 @@
  * would be.
  * [...]
  */
-#define __pure				__attribute__((pure))
-#define __aligned(x)			__attribute__((aligned(x)))
+#ifndef __pure
+# define __pure				__attribute__((pure))
+#endif
+#ifndef __aligned
+# define __aligned(x)			__attribute__((aligned(x)))
+#endif
 #define __printf(a,b)			__attribute__((format(printf,a,b)))
 #define  noinline			__attribute__((noinline))
 #define __attribute_const__		__attribute__((__const__))

+ 3 - 1
include/linux/compiler-gcc4.h

@@ -12,7 +12,9 @@
 #define __used			__attribute__((__used__))
 #define __must_check 		__attribute__((warn_unused_result))
 #define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
-#define __always_inline		inline __attribute__((always_inline))
+#ifndef __always_inline
+# define __always_inline		inline __attribute__((always_inline))
+#endif
 
 /*
  * A trick to suppress uninitialized variable warning without generating any