ARM: vmlinux.lds: rearrange .init output section

Keep the various linker tables as separate output sections rather
than combining them together into one big .init section.  This
makes the 'vmlinux' easier to see what is placed where.

Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Tested-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Russell King 2011-07-05 22:56:41 +01:00
parent 39df88872f
commit 1604d79d37

View file

@ -65,48 +65,59 @@ SECTIONS
#else #else
. = PAGE_OFFSET + TEXT_OFFSET; . = PAGE_OFFSET + TEXT_OFFSET;
#endif #endif
.head.text : {
.init : { /* Init code and data */
_stext = .; _stext = .;
_sinittext = .; HEAD_TEXT
HEAD_TEXT }
INIT_TEXT INIT_TEXT_SECTION(8)
ARM_EXIT_KEEP(EXIT_TEXT) .exit.text : {
_einittext = .; ARM_EXIT_KEEP(EXIT_TEXT)
}
.init.proc.info : {
ARM_CPU_DISCARD(PROC_INFO) ARM_CPU_DISCARD(PROC_INFO)
}
.init.arch.info : {
__arch_info_begin = .; __arch_info_begin = .;
*(.arch.info.init) *(.arch.info.init)
__arch_info_end = .; __arch_info_end = .;
}
.init.tagtable : {
__tagtable_begin = .; __tagtable_begin = .;
*(.taglist.init) *(.taglist.init)
__tagtable_end = .; __tagtable_end = .;
}
#ifdef CONFIG_SMP_ON_UP #ifdef CONFIG_SMP_ON_UP
.init.smpalt : {
__smpalt_begin = .; __smpalt_begin = .;
*(.alt.smp.init) *(.alt.smp.init)
__smpalt_end = .; __smpalt_end = .;
}
#endif #endif
.init.pv_table : {
__pv_table_begin = .; __pv_table_begin = .;
*(.pv_table) *(.pv_table)
__pv_table_end = .; __pv_table_end = .;
}
.init.data : {
#ifndef CONFIG_XIP_KERNEL
INIT_DATA
#endif
INIT_SETUP(16) INIT_SETUP(16)
INIT_CALLS INIT_CALLS
CON_INITCALL CON_INITCALL
SECURITY_INITCALL SECURITY_INITCALL
INIT_RAM_FS INIT_RAM_FS
#ifndef CONFIG_XIP_KERNEL
__init_begin = _stext;
INIT_DATA
ARM_EXIT_KEEP(EXIT_DATA)
#endif
} }
#ifndef CONFIG_XIP_KERNEL
.exit.data : {
ARM_EXIT_KEEP(EXIT_DATA)
}
#endif
PERCPU_SECTION(32) PERCPU_SECTION(32)
#ifndef CONFIG_XIP_KERNEL #ifndef CONFIG_XIP_KERNEL
__init_begin = _stext;
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
__init_end = .; __init_end = .;
#endif #endif