Dan Malek wrote:
> > I've made yet another update to my dead function optimisation
> This is the way the kernel used to be, with the kernel objects
> as *.a files instead of *.o files. I remember a discussion on
> some mailing lists when things changed from *.a to *.o, and I
> asked why it had changed. The response I received was the change
> was due to loadable modules, that when you link the kernel as a
> bunch of *.a files the result is usually missing lots of functions
> that a loadable module may want to call. I was told to trim down
> the size of my embedded kernel by using configuration options
> (and loadable modules) rather than selective loading of functions
> by 'ld'.
These days, kernel/ksyms.c lists some of the symbols and EXPORT_SYMBOL
handles the rest.
Those symbols and everything they refer to should remain in a kernel
with dead function optimisation. (I don't know if they do, but they
probably should do that).
So loadable modules will continue to load.
-- Jamie