alpha: Clean up linker script using new linker script macros.
Note that .data.page_aligned and .data.cacheline_aligned are now after _data; it was probably a bug that they were before it. Also, some explicit ALIGN(8)'s between various initcall sections were removed; this should be harmless as the implicit alignment of initcall_t was already 8. Signed-off-by: Geoffrey Thomas <geofft@ksplice.com> Signed-off-by: Tim Abbott <tabbott@ksplice.com> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ea12c2ed54
commit
9d93f00580
@ -32,84 +32,21 @@ SECTIONS
|
|||||||
} :kernel
|
} :kernel
|
||||||
|
|
||||||
RODATA
|
RODATA
|
||||||
|
EXCEPTION_TABLE(16)
|
||||||
/* Exception table */
|
|
||||||
. = ALIGN(16);
|
|
||||||
__ex_table : {
|
|
||||||
__start___ex_table = .;
|
|
||||||
*(__ex_table)
|
|
||||||
__stop___ex_table = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Will be freed after init */
|
/* Will be freed after init */
|
||||||
. = ALIGN(PAGE_SIZE);
|
__init_begin = ALIGN(PAGE_SIZE);
|
||||||
/* Init code and data */
|
INIT_TEXT_SECTION(PAGE_SIZE)
|
||||||
__init_begin = .;
|
INIT_DATA_SECTION(16)
|
||||||
.init.text : {
|
|
||||||
_sinittext = .;
|
|
||||||
INIT_TEXT
|
|
||||||
_einittext = .;
|
|
||||||
}
|
|
||||||
.init.data : {
|
|
||||||
INIT_DATA
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN(16);
|
|
||||||
.init.setup : {
|
|
||||||
__setup_start = .;
|
|
||||||
*(.init.setup)
|
|
||||||
__setup_end = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN(8);
|
|
||||||
.initcall.init : {
|
|
||||||
__initcall_start = .;
|
|
||||||
INITCALLS
|
|
||||||
__initcall_end = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_BLK_DEV_INITRD
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
.init.ramfs : {
|
|
||||||
__initramfs_start = .;
|
|
||||||
*(.init.ramfs)
|
|
||||||
__initramfs_end = .;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
. = ALIGN(8);
|
|
||||||
.con_initcall.init : {
|
|
||||||
__con_initcall_start = .;
|
|
||||||
*(.con_initcall.init)
|
|
||||||
__con_initcall_end = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN(8);
|
|
||||||
SECURITY_INIT
|
|
||||||
|
|
||||||
PERCPU(PAGE_SIZE)
|
PERCPU(PAGE_SIZE)
|
||||||
|
/* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page
|
||||||
. = ALIGN(2 * PAGE_SIZE);
|
needed for the THREAD_SIZE aligned init_task gets freed after init */
|
||||||
|
. = ALIGN(THREAD_SIZE);
|
||||||
__init_end = .;
|
__init_end = .;
|
||||||
/* Freed after init ends here */
|
/* Freed after init ends here */
|
||||||
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
.data.page_aligned : {
|
|
||||||
*(.data.page_aligned)
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN(64);
|
|
||||||
.data.cacheline_aligned : {
|
|
||||||
*(.data.cacheline_aligned)
|
|
||||||
}
|
|
||||||
|
|
||||||
_data = .;
|
_data = .;
|
||||||
/* Data */
|
RW_DATA_SECTION(64, PAGE_SIZE, THREAD_SIZE)
|
||||||
.data : {
|
|
||||||
INIT_TASK_DATA(THREAD_SIZE)
|
|
||||||
DATA_DATA
|
|
||||||
CONSTRUCTORS
|
|
||||||
}
|
|
||||||
|
|
||||||
.got : {
|
.got : {
|
||||||
*(.got)
|
*(.got)
|
||||||
@ -119,16 +56,7 @@ SECTIONS
|
|||||||
}
|
}
|
||||||
_edata = .; /* End of data section */
|
_edata = .; /* End of data section */
|
||||||
|
|
||||||
__bss_start = .;
|
BSS_SECTION(0, 0, 0)
|
||||||
.sbss : {
|
|
||||||
*(.sbss)
|
|
||||||
*(.scommon)
|
|
||||||
}
|
|
||||||
.bss : {
|
|
||||||
*(.bss)
|
|
||||||
*(COMMON)
|
|
||||||
}
|
|
||||||
__bss_stop = .;
|
|
||||||
_end = .;
|
_end = .;
|
||||||
|
|
||||||
.mdebug 0 : {
|
.mdebug 0 : {
|
||||||
|
Loading…
Reference in New Issue
Block a user