Here are the architecture-independent macro definitions needed for to clean up the kernel's section names. The overall diffstat from this section name cleanup project is: 96 files changed, 261 insertions(+), 503 deletions(-) The decrease results from removing a lot of redundancy in the linker scripts. The long-term goal here is to add support for building the kernel with -ffunction-sections -fdata-sections. This requires renaming all the magic section names in the kernel of the form .text.foo, .data.foo, .bss.foo, and .rodata.foo to not have collisions with sections generated for code like: static int nosave = 0; /* -fdata-sections places in .data.nosave */ static void head(); /* -ffunction-sections places in .text.head */ Sam Ravnborg proposed that rather than just renaming all the sections outright, we should start by first getting more control over the section names used in the kernel so that we can later rename sections without touching too many files. These patch series implement that cleanup. Later, there will be another patch series to actually rename the sections. I'm hoping we can get just these macro definitions into 2.6.30 so that the arch maintainers don't have to grab the macro definitions for their trees while reviewing the patches for 2.6.31. Shortly, I'm going to send one patch series for each of the architectures updating those architectures to use these new macros (and otherwise cleaning up section names on those architectures). -Tim Abbott Tim Abbott (6): Add new macros for page-aligned data and bss sections. Add new NOSAVE_DATA linker script macro. Add new CACHELINE_ALIGNED_DATA linker script macro. Add new INIT_TASK_DATA() linker script macro. Add new READ_MOSTLY_DATA(align) linker script macro. Add support for __read_mostly to linux/cache.h include/asm-generic/vmlinux.lds.h | 27 +++++++++++++++++++++++++++ include/linux/cache.h | 6 ++++++ include/linux/init_task.h | 3 +++ include/linux/linkage.h | 9 +++++++++ 4 files changed, 45 insertions(+), 0 deletions(-)