Re: OMAP34xx

Russell King - ARM Linux
2012-02-07T10:11:05Z

On Mon, Feb 06, 2012 at 10:13:15AM -0800, Tony Lindgren wrote:
> FYI, I'm now seeing the same warning as Igor posted with
> omap2plus_defconfig using the same compiler as Igor:
>
> gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202)
>
> Still no other warnings though.

If you're not getting the twl4030_power_init() you still need to
investigate why. For example, are you sure you're building with
CONFIG_TWL4030_POWER enabled?

Secondly, check what you're actually getting:

$ arm-linux-objdump -t ../build/omap4/drivers/mfd/twl4030-power.o | grep twl4030_power_init
000000c0 g F .init.text 0000066c twl4030_power_init
$ arm-linux-objdump -r ../build/omap4/drivers/mfd/twl-core.o | grep 'twl4030_power_init\|^RELOC'
RELOCATION RECORDS FOR [.text]:
RELOCATION RECORDS FOR [.init.text]:
RELOCATION RECORDS FOR [.exit.text]:
RELOCATION RECORDS FOR [.devinit.text]:
00000258 R_ARM_PC24 twl4030_power_init

and from this we can see that the compiler is doing what they're told
wrt the sections the code is being placed into, and secondly that the
section mismatch tool is working correctly.

So, if you have all that, but you're still not getting this mismatch
warning:

WARNING: drivers/mfd/built-in.o(.devinit.text+0x258): Section mismatch in reference from the function twl_probe() to the function .init.text:twl4030_power_init()
The function __devinit twl_probe() references
a function __init twl4030_power_init().
If twl4030_power_init is only used by twl_probe then
annotate twl4030_power_init with a matching annotation.

then, quite simply, your build setup is broken and can't be relied
upon to give proper warnings.

As I mentioned previously, there's no way that the compiler could
optimize this to get rid of this warning as the function definition is
in a completely separate file to where it's being called.