Messages in this thread Patch in this message | | | Date | Fri, 03 Sep 2004 12:09:41 -0700 | From | Tim Bird <> | Subject | [PATCH] ppc: make kernel inline redefinition ubiquitous |
| |
Sometimes, the kernel redefinition for inline (with attribute(__always_inline)) is not being used when it should be. Most of the time, this has no detectable effect. However, under certain conditions, such as when one is using the gcc -finstrument-functions feature, this results in link errors.
This patch adds some include lines needed to avoid this situation (at least for configurations that I tested). Also, this patch removes a conditional which disables the kernel redefinition of inline for gcc 3.4 and above. (IOW, for gcc 3.4 and above, currently the kernel does NOT redefine 'inline' to be always inline, but with this change it will.)
This was discussed before at:
http://groups.google.com/groups?q=always_inline&hl=en&lr=&ie=UTF-8&selm=2hjY2-7YV-9%40gated-at.bofh.it&rnum=1
Signed-off-by: Tim Bird <tim.bird@am.sony.com> --- asm-ppc/delay.h | 1 + asm-ppc/processor.h | 1 + linux/compiler-gcc3.h | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-)
diff -ruN -X ../../dontdiff linux-2.6.7/include/asm-ppc/delay.h branch_KFI/include/asm-ppc/delay.h --- linux-2.6.7/include/asm-ppc/delay.h 2004-06-15 22:19:42.000000000 -0700 +++ branch_KFI/include/asm-ppc/delay.h 2004-08-11 15:30:22.000000000 -0700 @@ -2,6 +2,7 @@ #ifndef _PPC_DELAY_H #define _PPC_DELAY_H
+#include <linux/compiler.h> /* for kernel inline definition */ #include <asm/param.h>
/* diff -ruN -X ../../dontdiff linux-2.6.7/include/asm-ppc/processor.h branch_KFI/include/asm-ppc/processor.h --- linux-2.6.7/include/asm-ppc/processor.h 2004-06-15 22:18:38.000000000 -0700 +++ branch_KFI/include/asm-ppc/processor.h 2004-08-11 15:35:25.000000000 -0700 @@ -10,6 +10,7 @@
#include <linux/config.h> #include <linux/stringify.h> +#include <linux/compiler.h> /* for kernel inline definition */
#include <asm/ptrace.h> #include <asm/types.h> diff -ruN -X ../../dontdiff linux-2.6.7/include/linux/compiler-gcc3.h branch_KFI/include/linux/compiler-gcc3.h --- linux-2.6.7/include/linux/compiler-gcc3.h 2004-06-15 22:18:45.000000000 -0700 +++ branch_KFI/include/linux/compiler-gcc3.h 2004-08-11 14:16:34.000000000 -0700 @@ -3,7 +3,7 @@ /* These definitions are for GCC v3.x. */ #include <linux/compiler-gcc.h>
-#if __GNUC_MINOR__ >= 1 && __GNUC_MINOR__ < 4 +#if __GNUC_MINOR__ >= 1 # define inline __inline__ __attribute__((always_inline)) # define __inline__ __inline__ __attribute__((always_inline)) # define __inline __inline__ __attribute__((always_inline))
-- ============================= Tim Bird Architecture Group Co-Chair, CE Linux Forum Senior Staff Engineer, Sony Electronics E-mail: tim.bird@am.sony.com ============================= - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |