Blackfin arch: vmlinux.lds.S, break up our .init into separate sections

Break up our .init into separate section like all other ports do and
so that we dont mix text and data (causes disassembly headaches as
pointed out by Robin)

Cc: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
This commit is contained in:
Mike Frysinger 2007-08-27 16:08:53 +08:00 committed by Bryan Wu
parent d8350e704e
commit 27d875f2c1

View file

@ -46,11 +46,11 @@ SECTIONS
__text = .;
_text = .;
__stext = .;
*(.text.*)
TEXT_TEXT
SCHED_TEXT
LOCK_TEXT
*(.text.lock)
KPROBES_TEXT
*(.text.*)
*(.fixup)
. = ALIGN(16);
@ -62,7 +62,7 @@ SECTIONS
__etext = .;
}
RODATA
RO_DATA(PAGE_SIZE)
.data :
{
@ -73,51 +73,63 @@ SECTIONS
__sdata = .;
. = ALIGN(THREAD_SIZE);
*(.data.init_task)
DATA_DATA
*(.data.*)
CONSTRUCTORS
. = ALIGN(32);
*(.data.cacheline_aligned)
DATA_DATA
*(.data.*)
CONSTRUCTORS
. = ALIGN(THREAD_SIZE);
__edata = .;
}
___init_begin = .;
.init :
.init.text :
{
. = ALIGN(PAGE_SIZE);
__sinittext = .;
*(.init.text)
__einittext = .;
}
.init.data :
{
. = ALIGN(16);
*(.init.data)
}
.init.setup :
{
. = ALIGN(16);
___setup_start = .;
*(.init.setup)
___setup_end = .;
___start___param = .;
*(__param)
___stop___param = .;
}
.initcall.init :
{
___initcall_start = .;
INITCALLS
___initcall_end = .;
}
.con_initcall.init :
{
___con_initcall_start = .;
*(.con_initcall.init)
___con_initcall_end = .;
___security_initcall_start = .;
*(.security_initcall.init)
___security_initcall_end = .;
}
SECURITY_INIT
.init.ramfs :
{
. = ALIGN(4);
___initramfs_start = .;
*(.init.ramfs)
___initramfs_end = .;
. = ALIGN(4);
}
__l1_lma_start = .;
.text_l1 L1_CODE_START : AT(LOADADDR(.init) + SIZEOF(.init))
.text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs))
{
. = ALIGN(4);
__stext_l1 = .;