[PATCH 03/14] ARM: v6k: remove CPU_32v6K dependencies in asm/spinlock.h
From: Russell King - ARM Linux <hidden>
Date: 2011-01-26 12:44:52
Also in:
linux-omap
On Wed, Jan 26, 2011 at 11:11:31AM +0000, Dave Martin wrote:
Do we need to consider any other discarded sections? In vmlinux.lds, I have:
/* Default discards */
/DISCARD/ : { *(.exit.text) *(.cpuexit.text) *(.memexit.text)
*(.exit.data) *(.cpuexit.data) *(.cpuexit.rodata) *(.memexit.data)
*(.memexit.rodata) *(.exitcall.exit) *(.discard) *(.discard.*) }We need to keep all the text exit stuff, and that could well want data exit stuff, so I think we need ot keep most of that. Maybe not the .discard* stuff though.
If we put every fixup in its own _section_ we might be able to collapse those out of the list at link time too. However, that seems hard to achieve, since in order to do the correct link-time filtering we would need the fixup's section name to be based on the referenced section's name ... due to preprocessor limitations I don't think we can do that automatically (and manual maintenance would be a bad plan).
I suspect if it was sanely possible to do, then x86 would already be doing it as they've had this problem for a lot longer than we have. It might be worth talking to toolchain people to see if it can be made to work somehow - but we really don't want to get rid of all discarded section warnings. IOW, if we have a text segment which is included in the image and it references discarded .exit text, we really do want it to fail at link time.