ppc: make kernel inline redefinition ubiquitous
PATCH 1/1 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:
Signed-off-by Tim Bird <[email protected]>
--- asm-ppc/delay.h | 1 + asm-ppc/processor.h | 1 + linux/compiler-gcc3.h | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-)
include/asm-ppc/delay.h +1 -0
@@ -2,6 +2,7 @@#ifndef _PPC_DELAY_H#define _PPC_DELAY_H +#include <linux/compiler.h> /* for kernel inline definition */ #include <asm/param.h> /*
include/asm-ppc/processor.h +1 -0
@@ -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>
include/linux/compiler-gcc3.h +1 -1
@@ -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))
Signature · 6 lines
============================= Tim Bird Architecture Group Co-Chair, CE Linux Forum Senior Staff Engineer, Sony Electronics E-mail: [email protected] =============================