Re: [RFC] Add EXPORT_INIT_SYMBOL()?

From: Sam Ravnborg
Date: Sat Feb 02 2008 - 17:39:25 EST


On Sat, Feb 02, 2008 at 02:52:22PM +0100, Sam Ravnborg wrote:
> While analysing some of the section mismatches reported
> by modpost I came to the conclusion that there
> was no good way to say that a certain function could
> both be annotated say __cpuinit and exported.
>
> One example is register_cpu_notifier() in kernel/cpu.c
> The function is annotated __cpuinit which is correct
> as this function is used only in the startup phase
> of a non HOTPLUG_CPU kernel and always available if
> CONFIG_HOTPLUG_CPU is equal 'y'.
>
> There are more examples in the tree - I have used
> register_cpu_notifier as an example.
>
> So that left me with the following choices:
> a) Drop the annotation of register_cpu_notifier()
> thus wasting memory and loosing the checks
> performed by modpost.
> b) Add a small helper function annotated __ref
> that would call the __cpuinit annotated
> __register_cpu_notifier()
> c) Drop all section mismatch checks for exported
> symbols expect those annotated with __init

For the record I have just committed a patch
to kbuild.git implmenting approach c)

If we need to change this later to something
more or less smart we can always do so.

Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/