This is the core patch of the series. It adds CONFIG_DISCARD_UNUSED_SECTIONS, adds KEEP() directives to linker scripts, adds custom module linker script which is needed to avoid having modules with many small sections. Modules got a bit smaller too, as a result. This patch is slighty more risky than first three, probably need to go into -mm first. It should be safe with CONFIG_DISCARD_UNUSED_SECTIONS off, though. Signed-off-by: Denys Vlasenko -- vda