x86: beautify vmlinux_32.lds.S
Beautify vmlinux_32.lds.S: - Use tabs for indent - Located curly braces like in C code - Rearranged a few comments To see actual differences use "git diff -b" which ignore 'whitespace' changes. The beautification is done to prepare a unification of the _32 and _64 variants of the linker scripts. [ Impact: cleanup ] Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Tim Abbott <tabbott@MIT.EDU> Cc: Linus Torvalds <torvalds@linux-foundation.org> LKML-Reference: <1240991249-27117-1-git-send-email-sam@ravnborg.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
51b26ada79
commit
aee6a166a5
@@ -22,196 +22,220 @@ ENTRY(phys_startup_32)
|
|||||||
jiffies = jiffies_64;
|
jiffies = jiffies_64;
|
||||||
|
|
||||||
PHDRS {
|
PHDRS {
|
||||||
text PT_LOAD FLAGS(5); /* R_E */
|
text PT_LOAD FLAGS(5); /* R_E */
|
||||||
data PT_LOAD FLAGS(7); /* RWE */
|
data PT_LOAD FLAGS(7); /* RWE */
|
||||||
note PT_NOTE FLAGS(0); /* ___ */
|
note PT_NOTE FLAGS(0); /* ___ */
|
||||||
}
|
}
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
|
. = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
|
||||||
phys_startup_32 = startup_32 - LOAD_OFFSET;
|
phys_startup_32 = startup_32 - LOAD_OFFSET;
|
||||||
|
|
||||||
.text.head : AT(ADDR(.text.head) - LOAD_OFFSET) {
|
/* Text and read-only data */
|
||||||
_text = .; /* Text and read-only data */
|
.text.head : AT(ADDR(.text.head) - LOAD_OFFSET) {
|
||||||
*(.text.head)
|
_text = .;
|
||||||
} :text = 0x9090
|
*(.text.head)
|
||||||
|
} :text = 0x9090
|
||||||
|
|
||||||
/* read-only */
|
/* read-only */
|
||||||
.text : AT(ADDR(.text) - LOAD_OFFSET) {
|
.text : AT(ADDR(.text) - LOAD_OFFSET) {
|
||||||
. = ALIGN(PAGE_SIZE); /* not really needed, already page aligned */
|
/* not really needed, already page aligned */
|
||||||
*(.text.page_aligned)
|
. = ALIGN(PAGE_SIZE);
|
||||||
TEXT_TEXT
|
*(.text.page_aligned)
|
||||||
SCHED_TEXT
|
TEXT_TEXT
|
||||||
LOCK_TEXT
|
SCHED_TEXT
|
||||||
KPROBES_TEXT
|
LOCK_TEXT
|
||||||
IRQENTRY_TEXT
|
KPROBES_TEXT
|
||||||
*(.fixup)
|
IRQENTRY_TEXT
|
||||||
*(.gnu.warning)
|
*(.fixup)
|
||||||
_etext = .; /* End of text section */
|
*(.gnu.warning)
|
||||||
} :text = 0x9090
|
/* End of text section */
|
||||||
|
_etext = .;
|
||||||
|
} :text = 0x9090
|
||||||
|
|
||||||
NOTES :text :note
|
NOTES :text :note
|
||||||
|
|
||||||
. = ALIGN(16); /* Exception table */
|
/* Exception table */
|
||||||
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
|
. = ALIGN(16);
|
||||||
__start___ex_table = .;
|
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
|
||||||
*(__ex_table)
|
__start___ex_table = .;
|
||||||
__stop___ex_table = .;
|
*(__ex_table)
|
||||||
} :text = 0x9090
|
__stop___ex_table = .;
|
||||||
|
} :text = 0x9090
|
||||||
|
|
||||||
RODATA
|
RODATA
|
||||||
|
|
||||||
/* writeable */
|
/* writeable */
|
||||||
. = ALIGN(PAGE_SIZE);
|
. = ALIGN(PAGE_SIZE);
|
||||||
.data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */
|
/* Data */
|
||||||
DATA_DATA
|
.data : AT(ADDR(.data) - LOAD_OFFSET) {
|
||||||
CONSTRUCTORS
|
DATA_DATA
|
||||||
|
CONSTRUCTORS
|
||||||
} :data
|
} :data
|
||||||
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
|
|
||||||
__nosave_begin = .;
|
|
||||||
*(.data.nosave)
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
__nosave_end = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
.data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
|
|
||||||
*(.data.page_aligned)
|
|
||||||
*(.data.idt)
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN(32);
|
|
||||||
.data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
|
|
||||||
*(.data.cacheline_aligned)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* rarely changed data like cpu maps */
|
|
||||||
. = ALIGN(32);
|
|
||||||
.data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) {
|
|
||||||
*(.data.read_mostly)
|
|
||||||
_edata = .; /* End of data section */
|
|
||||||
}
|
|
||||||
|
|
||||||
. = ALIGN(THREAD_SIZE); /* init_task */
|
|
||||||
.data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
|
|
||||||
*(.data.init_task)
|
|
||||||
}
|
|
||||||
|
|
||||||
/* might get freed after init */
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
.smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
|
|
||||||
__smp_locks = .;
|
|
||||||
*(.smp_locks)
|
|
||||||
__smp_locks_end = .;
|
|
||||||
}
|
|
||||||
/* will be freed after init
|
|
||||||
* Following ALIGN() is required to make sure no other data falls on the
|
|
||||||
* same page where __smp_alt_end is pointing as that page might be freed
|
|
||||||
* after boot. Always make sure that ALIGN() directive is present after
|
|
||||||
* the section which contains __smp_alt_end.
|
|
||||||
*/
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
|
|
||||||
/* will be freed after init */
|
|
||||||
. = ALIGN(PAGE_SIZE); /* Init code and data */
|
|
||||||
.init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
|
|
||||||
__init_begin = .;
|
|
||||||
_sinittext = .;
|
|
||||||
INIT_TEXT
|
|
||||||
_einittext = .;
|
|
||||||
}
|
|
||||||
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
|
|
||||||
INIT_DATA
|
|
||||||
}
|
|
||||||
. = ALIGN(16);
|
|
||||||
.init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
|
|
||||||
__setup_start = .;
|
|
||||||
*(.init.setup)
|
|
||||||
__setup_end = .;
|
|
||||||
}
|
|
||||||
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
|
|
||||||
__initcall_start = .;
|
|
||||||
INITCALLS
|
|
||||||
__initcall_end = .;
|
|
||||||
}
|
|
||||||
.con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
|
|
||||||
__con_initcall_start = .;
|
|
||||||
*(.con_initcall.init)
|
|
||||||
__con_initcall_end = .;
|
|
||||||
}
|
|
||||||
.x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
|
|
||||||
__x86_cpu_dev_start = .;
|
|
||||||
*(.x86_cpu_dev.init)
|
|
||||||
__x86_cpu_dev_end = .;
|
|
||||||
}
|
|
||||||
SECURITY_INIT
|
|
||||||
. = ALIGN(4);
|
|
||||||
.altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
|
|
||||||
__alt_instructions = .;
|
|
||||||
*(.altinstructions)
|
|
||||||
__alt_instructions_end = .;
|
|
||||||
}
|
|
||||||
.altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
|
|
||||||
*(.altinstr_replacement)
|
|
||||||
}
|
|
||||||
. = ALIGN(4);
|
|
||||||
.parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
|
|
||||||
__parainstructions = .;
|
|
||||||
*(.parainstructions)
|
|
||||||
__parainstructions_end = .;
|
|
||||||
}
|
|
||||||
/* .exit.text is discard at runtime, not link time, to deal with references
|
|
||||||
from .altinstructions and .eh_frame */
|
|
||||||
.exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
|
|
||||||
EXIT_TEXT
|
|
||||||
}
|
|
||||||
.exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
|
|
||||||
EXIT_DATA
|
|
||||||
}
|
|
||||||
#if defined(CONFIG_BLK_DEV_INITRD)
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
|
|
||||||
__initramfs_start = .;
|
|
||||||
*(.init.ramfs)
|
|
||||||
__initramfs_end = .;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
PERCPU(PAGE_SIZE)
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
|
||||||
/* freed after init ends here */
|
|
||||||
|
|
||||||
.bss : AT(ADDR(.bss) - LOAD_OFFSET) {
|
|
||||||
__init_end = .;
|
|
||||||
__bss_start = .; /* BSS */
|
|
||||||
*(.bss.page_aligned)
|
|
||||||
*(.bss)
|
|
||||||
. = ALIGN(4);
|
|
||||||
__bss_stop = .;
|
|
||||||
}
|
|
||||||
|
|
||||||
.brk : AT(ADDR(.brk) - LOAD_OFFSET) {
|
|
||||||
. = ALIGN(PAGE_SIZE);
|
. = ALIGN(PAGE_SIZE);
|
||||||
__brk_base = . ;
|
.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
|
||||||
. += 64 * 1024 ; /* 64k alignment slop space */
|
__nosave_begin = .;
|
||||||
*(.brk_reservation) /* areas brk users have reserved */
|
*(.data.nosave)
|
||||||
__brk_limit = . ;
|
. = ALIGN(PAGE_SIZE);
|
||||||
}
|
__nosave_end = .;
|
||||||
|
|
||||||
.end : AT(ADDR(.end) - LOAD_OFFSET) {
|
|
||||||
_end = . ;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sections to be discarded */
|
|
||||||
/DISCARD/ : {
|
|
||||||
*(.exitcall.exit)
|
|
||||||
*(.discard)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
STABS_DEBUG
|
. = ALIGN(PAGE_SIZE);
|
||||||
|
.data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
|
||||||
|
*(.data.page_aligned)
|
||||||
|
*(.data.idt)
|
||||||
|
}
|
||||||
|
|
||||||
DWARF_DEBUG
|
. = ALIGN(32);
|
||||||
|
.data.cacheline_aligned :
|
||||||
|
AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
|
||||||
|
*(.data.cacheline_aligned)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* rarely changed data like cpu maps */
|
||||||
|
. = ALIGN(32);
|
||||||
|
.data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) {
|
||||||
|
*(.data.read_mostly)
|
||||||
|
|
||||||
|
/* End of data section */
|
||||||
|
_edata = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* init_task */
|
||||||
|
. = ALIGN(THREAD_SIZE);
|
||||||
|
.data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
|
||||||
|
*(.data.init_task)
|
||||||
|
}
|
||||||
|
|
||||||
|
. = ALIGN(PAGE_SIZE);
|
||||||
|
.smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
|
||||||
|
/* might get freed after init */
|
||||||
|
__smp_locks = .;
|
||||||
|
*(.smp_locks)
|
||||||
|
__smp_locks_end = .;
|
||||||
|
}
|
||||||
|
/* will be freed after init
|
||||||
|
* Following ALIGN() is required to make sure no other data falls on the
|
||||||
|
* same page where __smp_alt_end is pointing as that page might be freed
|
||||||
|
* after boot. Always make sure that ALIGN() directive is present after
|
||||||
|
* the section which contains __smp_alt_end.
|
||||||
|
*/
|
||||||
|
. = ALIGN(PAGE_SIZE);
|
||||||
|
|
||||||
|
/* Init code and data - will be freed after init */
|
||||||
|
. = ALIGN(PAGE_SIZE);
|
||||||
|
.init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
|
||||||
|
__init_begin = .;
|
||||||
|
_sinittext = .;
|
||||||
|
INIT_TEXT
|
||||||
|
_einittext = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
|
||||||
|
INIT_DATA
|
||||||
|
}
|
||||||
|
|
||||||
|
. = ALIGN(16);
|
||||||
|
.init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
|
||||||
|
__setup_start = .;
|
||||||
|
*(.init.setup)
|
||||||
|
__setup_end = .;
|
||||||
|
}
|
||||||
|
.initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
|
||||||
|
__initcall_start = .;
|
||||||
|
INITCALLS
|
||||||
|
__initcall_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
|
||||||
|
__con_initcall_start = .;
|
||||||
|
*(.con_initcall.init)
|
||||||
|
__con_initcall_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
|
||||||
|
__x86_cpu_dev_start = .;
|
||||||
|
*(.x86_cpu_dev.init)
|
||||||
|
__x86_cpu_dev_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
SECURITY_INIT
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
.altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
|
||||||
|
__alt_instructions = .;
|
||||||
|
*(.altinstructions)
|
||||||
|
__alt_instructions_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
|
||||||
|
*(.altinstr_replacement)
|
||||||
|
}
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
.parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
|
||||||
|
__parainstructions = .;
|
||||||
|
*(.parainstructions)
|
||||||
|
__parainstructions_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* .exit.text is discard at runtime, not link time, to deal with
|
||||||
|
* references from .altinstructions and .eh_frame
|
||||||
|
*/
|
||||||
|
.exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
|
||||||
|
EXIT_TEXT
|
||||||
|
}
|
||||||
|
|
||||||
|
.exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
|
||||||
|
EXIT_DATA
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(CONFIG_BLK_DEV_INITRD)
|
||||||
|
. = ALIGN(PAGE_SIZE);
|
||||||
|
.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
|
||||||
|
__initramfs_start = .;
|
||||||
|
*(.init.ramfs)
|
||||||
|
__initramfs_end = .;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
PERCPU(PAGE_SIZE)
|
||||||
|
|
||||||
|
. = ALIGN(PAGE_SIZE);
|
||||||
|
/* freed after init ends here */
|
||||||
|
|
||||||
|
/* BSS */
|
||||||
|
.bss : AT(ADDR(.bss) - LOAD_OFFSET) {
|
||||||
|
__init_end = .;
|
||||||
|
__bss_start = .;
|
||||||
|
*(.bss.page_aligned)
|
||||||
|
*(.bss)
|
||||||
|
. = ALIGN(4);
|
||||||
|
__bss_stop = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brk : AT(ADDR(.brk) - LOAD_OFFSET) {
|
||||||
|
. = ALIGN(PAGE_SIZE);
|
||||||
|
__brk_base = .;
|
||||||
|
. += 64 * 1024; /* 64k alignment slop space */
|
||||||
|
*(.brk_reservation) /* areas brk users have reserved */
|
||||||
|
__brk_limit = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.end : AT(ADDR(.end) - LOAD_OFFSET) {
|
||||||
|
_end = . ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sections to be discarded */
|
||||||
|
/DISCARD/ : {
|
||||||
|
*(.exitcall.exit)
|
||||||
|
*(.discard)
|
||||||
|
}
|
||||||
|
|
||||||
|
STABS_DEBUG
|
||||||
|
DWARF_DEBUG
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user