__always_inline now includes inline
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 31 Dec 2014 03:29:12 +0000 (22:29 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 31 Dec 2014 18:03:10 +0000 (13:03 -0500)
Newer gcc's complain about always_inline attribs without inline.  See the
comments on this bug for some info:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49614

kern/arch/x86/arch.h

index 2bf8dbc..edff711 100644 (file)
@@ -8,7 +8,11 @@
 /* Arch Constants */
 #define ARCH_CL_SIZE                            64
 
-#define __always_inline __attribute__((always_inline))
+/* Used by arch/bitops.h.  Everyone else (so far) does it manually, but maybe
+ * other Linux code will use this.  We need to say both inline and apply the
+ * attrib, o/w newer gcc's complain. */
+#define __always_inline inline __attribute__((always_inline))
+
 static inline void breakpoint(void) __attribute__((always_inline));
 static inline void invlpg(void *addr) __attribute__((always_inline));  
 static inline void tlbflush(void) __attribute__((always_inline));