Re: [PATCH] Remove inline from clock framework function definitionsto build the kernel with GCC 4.7

From: Paul Walmsley
Date: Thu Nov 15 2012 - 13:44:56 EST


On Thu, 15 Nov 2012, Jon Hunter wrote:

>
> On 11/15/2012 11:07 AM, Igor Mazanov wrote:
> > Remove inline from clock framework function definitions to
> > build the kernel with GCC 4.7
>
> Adding Mike to the party ...
>
> May be good to add some details about the exact problem seen.
>
> I am seeing the same problem today with GCC 4.7 and Tony's master
> branch. For a bit of background it seems that for 4.7 not having
> the body of the inlined function available in the header is
> causing this error. Another example here [1].
>
> The actual compiler error seen for OMAP is ...
>
> In file included from arch/arm/mach-omap2/clockdomain.c:25:0:
> arch/arm/mach-omap2/clockdomain.c: In function âclkdm_clk_disableâ:
> include/linux/clk-provider.h:338:12: error: inlining failed in call to always_inline â__clk_get_enable_countâ: function body not available
> arch/arm/mach-omap2/clockdomain.c:1001:28: error: called from here
> make[1]: *** [arch/arm/mach-omap2/clockdomain.o] Error 1
> make: *** [arch/arm/mach-omap2] Error 2

Yep this one is for Mike to fix in the main CCF code; it's not an
OMAP-specific issue. sparse warns about this too, so it's not just a gcc
4.7 problem.

> Do we also need to remove the inline from the functions declared in
> drivers/clk/clk.c too?

It's usually best to just let the compiler decide whether to inline
functions. For example, Documentation/CodingStyle Chapter 15.


- Paul