Commit 1ab37c01 authored by Kai Germaschewski's avatar Kai Germaschewski

Clean up arch/i386/vmlinux.lds.S

Add some comments indicating read-only, writeable and freed-after-init
sections.

Move .data_nosave, .data.page_aligned, .data.cacheline_aligned next
to the "normal" data area, the only difference this should make, 
apart from being more logical, is a more truthful printk() during boot.
parent cc1d5f88
...@@ -8,6 +8,7 @@ jiffies = jiffies_64; ...@@ -8,6 +8,7 @@ jiffies = jiffies_64;
SECTIONS SECTIONS
{ {
. = 0xC0000000 + 0x100000; . = 0xC0000000 + 0x100000;
/* read-only */
_text = .; /* Text and read-only data */ _text = .; /* Text and read-only data */
.text : { .text : {
*(.text) *(.text)
...@@ -33,16 +34,30 @@ SECTIONS ...@@ -33,16 +34,30 @@ SECTIONS
__kallsyms : { *(__kallsyms) } __kallsyms : { *(__kallsyms) }
__stop___kallsyms = .; __stop___kallsyms = .;
/* writeable */
.data : { /* Data */ .data : { /* Data */
*(.data) *(.data)
CONSTRUCTORS CONSTRUCTORS
} }
. = ALIGN(4096);
__nosave_begin = .;
.data_nosave : { *(.data.nosave) }
. = ALIGN(4096);
__nosave_end = .;
. = ALIGN(4096);
.data.page_aligned : { *(.data.idt) }
. = ALIGN(32);
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
_edata = .; /* End of data section */ _edata = .; /* End of data section */
. = ALIGN(8192); /* init_task */ . = ALIGN(8192); /* init_task */
.data.init_task : { *(.data.init_task) } .data.init_task : { *(.data.init_task) }
/* will be freed after init */
. = ALIGN(4096); /* Init code and data */ . = ALIGN(4096); /* Init code and data */
__init_begin = .; __init_begin = .;
.text.init : { *(.text.init) } .text.init : { *(.text.init) }
...@@ -68,19 +83,8 @@ SECTIONS ...@@ -68,19 +83,8 @@ SECTIONS
__per_cpu_end = .; __per_cpu_end = .;
. = ALIGN(4096); . = ALIGN(4096);
__init_end = .; __init_end = .;
/* freed after init ends here */
. = ALIGN(4096);
__nosave_begin = .;
.data_nosave : { *(.data.nosave) }
. = ALIGN(4096);
__nosave_end = .;
. = ALIGN(4096);
.data.page_aligned : { *(.data.idt) }
. = ALIGN(32);
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
__bss_start = .; /* BSS */ __bss_start = .; /* BSS */
.bss : { *(.bss) } .bss : { *(.bss) }
__bss_stop = .; __bss_stop = .;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment