Commit a0e3935f authored by Paul Mackerras's avatar Paul Mackerras

PPC32: More sensible arrangement of the sections in vmlinux.lds.S.

This moves the sections which are read-only (e.g. exception table,
kallsyms data) to go before the read/write data section, and the
feature fixup section into the init data area.  It also adds the
initramfs section.
parent 101ddd26
...@@ -51,6 +51,20 @@ SECTIONS ...@@ -51,6 +51,20 @@ SECTIONS
.ctors : { *(.ctors) } .ctors : { *(.ctors) }
.dtors : { *(.dtors) } .dtors : { *(.dtors) }
.fixup : { *(.fixup) }
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
__ksymtab : { *(__ksymtab) }
__stop___ksymtab = .;
__start___kallsyms = .; /* All kernel symbols */
__kallsyms : { *(__kallsyms) }
__stop___kallsyms = .;
/* Read-write section, merged into data segment: */ /* Read-write section, merged into data segment: */
. = ALIGN(4096); . = ALIGN(4096);
.data : .data :
...@@ -63,25 +77,13 @@ SECTIONS ...@@ -63,25 +77,13 @@ SECTIONS
*(.dynamic) *(.dynamic)
CONSTRUCTORS CONSTRUCTORS
} }
_edata = .;
PROVIDE (edata = .);
.fixup : { *(.fixup) }
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
__ksymtab : { *(__ksymtab) }
__stop___ksymtab = .;
__start___ftr_fixup = .;
__ftr_fixup : { *(__ftr_fixup) }
__stop___ftr_fixup = .;
. = ALIGN(32); . = ALIGN(32);
.data.cacheline_aligned : { *(.data.cacheline_aligned) } .data.cacheline_aligned : { *(.data.cacheline_aligned) }
_edata = .;
PROVIDE (edata = .);
. = ALIGN(8192); . = ALIGN(8192);
.data.init_task : { *(.data.init_task) } .data.init_task : { *(.data.init_task) }
...@@ -112,10 +114,21 @@ SECTIONS ...@@ -112,10 +114,21 @@ SECTIONS
*(.initcall7.init) *(.initcall7.init)
} }
__initcall_end = .; __initcall_end = .;
__start___ftr_fixup = .;
__ftr_fixup : { *(__ftr_fixup) }
__stop___ftr_fixup = .;
. = ALIGN(32); . = ALIGN(32);
__per_cpu_start = .; __per_cpu_start = .;
.data.percpu : { *(.data.percpu) } .data.percpu : { *(.data.percpu) }
__per_cpu_end = .; __per_cpu_end = .;
. = ALIGN(4096);
__initramfs_start = .;
.init.ramfs : { *(.init.ramfs) }
__initramfs_end = .;
. = ALIGN(4096); . = ALIGN(4096);
__init_end = .; __init_end = .;
...@@ -147,10 +160,6 @@ SECTIONS ...@@ -147,10 +160,6 @@ SECTIONS
. = ALIGN(4096); . = ALIGN(4096);
__openfirmware_end = .; __openfirmware_end = .;
__start___kallsyms = .; /* All kernel symbols */
__kallsyms : { *(__kallsyms) }
__stop___kallsyms = .;
__bss_start = .; __bss_start = .;
.bss : .bss :
{ {
......
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