all archs: consolidate init and exit sections in vmlinux.lds.h
This patch consolidate all definitions of .init.text, .init.data and .exit.text, .exit.data section definitions in the generic vmlinux.lds.h. This is a preparational patch - alone it does not buy us much good. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
This commit is contained in:
Родитель
6c5bd235bf
Коммит
01ba2bdc6b
|
@ -46,11 +46,11 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : {
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
}
|
||||
|
||||
. = ALIGN(16);
|
||||
|
@ -136,8 +136,8 @@ SECTIONS
|
|||
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ SECTIONS
|
|||
}
|
||||
|
||||
.init : { /* Init code and data */
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
__proc_info_begin = .;
|
||||
*(.proc.info.init)
|
||||
|
@ -70,15 +70,15 @@ SECTIONS
|
|||
__per_cpu_end = .;
|
||||
#ifndef CONFIG_XIP_KERNEL
|
||||
__init_begin = _stext;
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
. = ALIGN(4096);
|
||||
__init_end = .;
|
||||
#endif
|
||||
}
|
||||
|
||||
/DISCARD/ : { /* Exit code and data */
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
#ifndef CONFIG_MMU
|
||||
*(.fixup)
|
||||
|
@ -130,7 +130,7 @@ SECTIONS
|
|||
#ifdef CONFIG_XIP_KERNEL
|
||||
. = ALIGN(4096);
|
||||
__init_begin = .;
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
. = ALIGN(4096);
|
||||
__init_end = .;
|
||||
#endif
|
||||
|
|
|
@ -27,19 +27,19 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
_sinittext = .;
|
||||
*(.text.reset)
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
/*
|
||||
* .exit.text is discarded at runtime, not
|
||||
* link time, to deal with references from
|
||||
* __bug_table
|
||||
*/
|
||||
*(.exit.text)
|
||||
EXIT_TEXT
|
||||
_einittext = .;
|
||||
. = ALIGN(4);
|
||||
__tagtable_begin = .;
|
||||
*(.taglist.init)
|
||||
__tagtable_end = .;
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
*(.init.setup)
|
||||
|
@ -135,7 +135,7 @@ SECTIONS
|
|||
* thrown away, as cleanup code is never called unless it's a module.
|
||||
*/
|
||||
/DISCARD/ : {
|
||||
*(.exit.data)
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -91,13 +91,13 @@ SECTIONS
|
|||
{
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
__sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
__einittext = .;
|
||||
}
|
||||
.init.data :
|
||||
{
|
||||
. = ALIGN(16);
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
}
|
||||
.init.setup :
|
||||
{
|
||||
|
@ -198,8 +198,8 @@ SECTIONS
|
|||
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,10 +57,10 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : { *(.init.data) }
|
||||
.init.data : { INIT_DATA }
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
.init.setup : { *(.init.setup) }
|
||||
|
@ -109,8 +109,8 @@ SECTIONS
|
|||
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
*(.text.exit)
|
||||
*(.data.exit)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -61,10 +61,10 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : { *(.init.data) }
|
||||
.init.data : { INIT_DATA }
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
.init.setup : { *(.init.setup) }
|
||||
|
@ -124,8 +124,8 @@ SECTIONS
|
|||
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
*(.text.exit)
|
||||
*(.data.exit)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -28,14 +28,14 @@ SECTIONS
|
|||
.init.text : {
|
||||
*(.text.head)
|
||||
#ifndef CONFIG_DEBUG_INFO
|
||||
*(.init.text)
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
INIT_TEXT
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
#endif
|
||||
}
|
||||
_einittext = .;
|
||||
.init.data : { *(.init.data) }
|
||||
.init.data : { INIT_DATA }
|
||||
|
||||
. = ALIGN(8);
|
||||
__setup_start = .;
|
||||
|
@ -106,8 +106,8 @@ SECTIONS
|
|||
LOCK_TEXT
|
||||
#ifdef CONFIG_DEBUG_INFO
|
||||
*(
|
||||
.init.text
|
||||
.exit.text
|
||||
INIT_TEXT
|
||||
EXIT_TEXT
|
||||
.exitcall.exit
|
||||
)
|
||||
#endif
|
||||
|
@ -138,7 +138,7 @@ SECTIONS
|
|||
.data : { /* Data */
|
||||
DATA_DATA
|
||||
*(.data.*)
|
||||
*(.exit.data)
|
||||
EXIT_DATA
|
||||
CONSTRUCTORS
|
||||
}
|
||||
|
||||
|
|
|
@ -110,9 +110,9 @@ SECTIONS
|
|||
. = ALIGN(0x4) ;
|
||||
___init_begin = .;
|
||||
__sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
__einittext = .;
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
. = ALIGN(0x4) ;
|
||||
___setup_start = .;
|
||||
*(.init.setup)
|
||||
|
@ -124,8 +124,8 @@ SECTIONS
|
|||
___con_initcall_start = .;
|
||||
*(.con_initcall.init)
|
||||
___con_initcall_end = .;
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
#if defined(CONFIG_BLK_DEV_INITRD)
|
||||
. = ALIGN(4);
|
||||
___initramfs_start = .;
|
||||
|
|
|
@ -27,8 +27,8 @@ SECTIONS
|
|||
{
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
*(.IA_64.unwind.exit.text)
|
||||
*(.IA_64.unwind_info.exit.text)
|
||||
|
@ -119,12 +119,12 @@ SECTIONS
|
|||
.init.text : AT(ADDR(.init.text) - LOAD_OFFSET)
|
||||
{
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
|
||||
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET)
|
||||
{ *(.init.data) }
|
||||
{ INIT_DATA }
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET)
|
||||
|
|
|
@ -76,10 +76,10 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : { *(.init.data) }
|
||||
.init.data : { INIT_DATA }
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
.init.setup : { *(.init.setup) }
|
||||
|
@ -100,8 +100,8 @@ SECTIONS
|
|||
.altinstr_replacement : { *(.altinstr_replacement) }
|
||||
/* .exit.text is discard at runtime, not link time, to deal with references
|
||||
from .altinstructions and .eh_frame */
|
||||
.exit.text : { *(.exit.text) }
|
||||
.exit.data : { *(.exit.data) }
|
||||
.exit.text : { EXIT_TEXT }
|
||||
.exit.data : { EXIT_DATA }
|
||||
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
. = ALIGN(4096);
|
||||
|
@ -124,8 +124,8 @@ SECTIONS
|
|||
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -45,10 +45,10 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : { *(.init.data) }
|
||||
.init.data : { INIT_DATA }
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
.init.setup : { *(.init.setup) }
|
||||
|
@ -82,8 +82,8 @@ SECTIONS
|
|||
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -38,10 +38,10 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : { *(.init.data) }
|
||||
.init.data : { INIT_DATA }
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
.init.setup : { *(.init.setup) }
|
||||
|
@ -77,8 +77,8 @@ __init_begin = .;
|
|||
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -143,9 +143,9 @@ SECTIONS {
|
|||
. = ALIGN(4096);
|
||||
__init_begin = .;
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
*(.init.setup)
|
||||
|
@ -170,8 +170,8 @@ SECTIONS {
|
|||
} > INIT
|
||||
|
||||
/DISCARD/ : {
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -114,11 +114,11 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : {
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
}
|
||||
. = ALIGN(16);
|
||||
.init.setup : {
|
||||
|
@ -144,10 +144,10 @@ SECTIONS
|
|||
* references from .rodata
|
||||
*/
|
||||
.exit.text : {
|
||||
*(.exit.text)
|
||||
EXIT_TEXT
|
||||
}
|
||||
.exit.data : {
|
||||
*(.exit.data)
|
||||
EXIT_DATA
|
||||
}
|
||||
#if defined(CONFIG_BLK_DEV_INITRD)
|
||||
. = ALIGN(_PAGE_SIZE);
|
||||
|
|
|
@ -172,11 +172,11 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : {
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
}
|
||||
. = ALIGN(16);
|
||||
.init.setup : {
|
||||
|
@ -215,10 +215,10 @@ SECTIONS
|
|||
* from .altinstructions and .eh_frame
|
||||
*/
|
||||
.exit.text : {
|
||||
*(.exit.text)
|
||||
EXIT_TEXT
|
||||
}
|
||||
.exit.data : {
|
||||
*(.exit.data)
|
||||
EXIT_DATA
|
||||
}
|
||||
#ifdef CONFIG_BLK_DEV_INITRD
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
|
|
|
@ -23,7 +23,7 @@ SECTIONS
|
|||
/* Sections to be discarded. */
|
||||
/DISCARD/ : {
|
||||
*(.exitcall.exit)
|
||||
*(.exit.data)
|
||||
EXIT_DATA
|
||||
}
|
||||
|
||||
. = KERNELBASE;
|
||||
|
@ -76,17 +76,19 @@ SECTIONS
|
|||
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
|
||||
/* .exit.text is discarded at runtime, not link time,
|
||||
* to deal with references from __bug_table
|
||||
*/
|
||||
.exit.text : { *(.exit.text) }
|
||||
.exit.text : {
|
||||
EXIT_TEXT
|
||||
}
|
||||
|
||||
.init.data : {
|
||||
*(.init.data);
|
||||
INIT_DATA
|
||||
__vtop_table_begin = .;
|
||||
*(.vtop_fixup);
|
||||
__vtop_table_end = .;
|
||||
|
|
|
@ -97,14 +97,14 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
/* .exit.text is discarded at runtime, not link time,
|
||||
to deal with references from __bug_table */
|
||||
.exit.text : { *(.exit.text) }
|
||||
.exit.text : { EXIT_TEXT }
|
||||
.init.data : {
|
||||
*(.init.data);
|
||||
INIT_DATA
|
||||
__vtop_table_begin = .;
|
||||
*(.vtop_fixup);
|
||||
__vtop_table_end = .;
|
||||
|
@ -164,6 +164,6 @@ SECTIONS
|
|||
/* Sections to be discarded. */
|
||||
/DISCARD/ : {
|
||||
*(.exitcall.exit)
|
||||
*(.exit.data)
|
||||
EXIT_DATA
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,7 +97,7 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
/*
|
||||
|
@ -105,11 +105,11 @@ SECTIONS
|
|||
* to deal with references from __bug_table
|
||||
*/
|
||||
.exit.text : {
|
||||
*(.exit.text)
|
||||
EXIT_TEXT
|
||||
}
|
||||
|
||||
.init.data : {
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
}
|
||||
. = ALIGN(0x100);
|
||||
.init.setup : {
|
||||
|
@ -156,7 +156,7 @@ SECTIONS
|
|||
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
*(.exit.data)
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -84,9 +84,9 @@ SECTIONS
|
|||
. = ALIGN(PAGE_SIZE); /* Init code and data */
|
||||
__init_begin = .;
|
||||
_sinittext = .;
|
||||
.init.text : { *(.init.text) }
|
||||
.init.text : { INIT_TEXT }
|
||||
_einittext = .;
|
||||
.init.data : { *(.init.data) }
|
||||
.init.data : { INIT_DATA }
|
||||
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
|
@ -122,8 +122,8 @@ SECTIONS
|
|||
* .exit.text is discarded at runtime, not link time, to deal with
|
||||
* references from __bug_table
|
||||
*/
|
||||
.exit.text : { *(.exit.text) }
|
||||
.exit.data : { *(.exit.data) }
|
||||
.exit.text : { EXIT_TEXT }
|
||||
.exit.data : { EXIT_DATA }
|
||||
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
.bss : {
|
||||
|
|
|
@ -96,9 +96,9 @@ SECTIONS
|
|||
. = ALIGN(PAGE_SIZE); /* Init code and data */
|
||||
__init_begin = .;
|
||||
_sinittext = .;
|
||||
.init.text : C_PHYS(.init.text) { *(.init.text) }
|
||||
.init.text : C_PHYS(.init.text) { INIT_TEXT }
|
||||
_einittext = .;
|
||||
.init.data : C_PHYS(.init.data) { *(.init.data) }
|
||||
.init.data : C_PHYS(.init.data) { INIT_DATA }
|
||||
. = ALIGN(L1_CACHE_BYTES); /* Better if Cache Line aligned */
|
||||
__setup_start = .;
|
||||
.init.setup : C_PHYS(.init.setup) { *(.init.setup) }
|
||||
|
@ -134,8 +134,8 @@ SECTIONS
|
|||
* .exit.text is discarded at runtime, not link time, to deal with
|
||||
* references from __bug_table
|
||||
*/
|
||||
.exit.text : C_PHYS(.exit.text) { *(.exit.text) }
|
||||
.exit.data : C_PHYS(.exit.data) { *(.exit.data) }
|
||||
.exit.text : C_PHYS(.exit.text) { EXIT_TEXT }
|
||||
.exit.data : C_PHYS(.exit.data) { EXIT_DATA }
|
||||
|
||||
. = ALIGN(PAGE_SIZE);
|
||||
.bss : C_PHYS(.bss) {
|
||||
|
|
|
@ -48,12 +48,12 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
__init_text_end = .;
|
||||
.init.data : {
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
}
|
||||
. = ALIGN(16);
|
||||
.init.setup : {
|
||||
|
@ -102,8 +102,8 @@ SECTIONS
|
|||
_end = . ;
|
||||
PROVIDE (end = .);
|
||||
/DISCARD/ : {
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -56,11 +56,11 @@ SECTIONS
|
|||
.init.text : {
|
||||
__init_begin = .;
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : {
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
}
|
||||
. = ALIGN(16);
|
||||
.init.setup : {
|
||||
|
@ -137,8 +137,8 @@ SECTIONS
|
|||
PROVIDE (end = .);
|
||||
|
||||
/DISCARD/ : {
|
||||
*(.exit.text)
|
||||
*(.exit.data)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ SECTIONS
|
|||
|
||||
#include "asm/common.lds.S"
|
||||
|
||||
init.data : { *(.init.data) }
|
||||
init.data : { INIT_DATA }
|
||||
|
||||
/* Ensure the __preinit_array_start label is properly aligned. We
|
||||
could instead move the label definition inside the section, but
|
||||
|
|
|
@ -23,7 +23,7 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
. = ALIGN(4096);
|
||||
|
@ -48,7 +48,7 @@ SECTIONS
|
|||
|
||||
#include "asm/common.lds.S"
|
||||
|
||||
init.data : { *(init.data) }
|
||||
init.data : { INIT_DATA }
|
||||
.data :
|
||||
{
|
||||
. = ALIGN(KERNEL_STACK_SIZE); /* init_task */
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
#define DATA_CONTENTS \
|
||||
__sdata = . ; \
|
||||
DATA_DATA \
|
||||
*(.exit.data) /* 2.5 convention */ \
|
||||
EXIT_DATA /* 2.5 convention */ \
|
||||
*(.data.exit) /* 2.4 convention */ \
|
||||
. = ALIGN (16) ; \
|
||||
*(.data.cacheline_aligned) \
|
||||
|
@ -157,9 +157,9 @@
|
|||
. = ALIGN (4096) ; \
|
||||
__init_start = . ; \
|
||||
__sinittext = .; \
|
||||
*(.init.text) /* 2.5 convention */ \
|
||||
INIT_TEXT /* 2.5 convention */ \
|
||||
__einittext = .; \
|
||||
*(.init.data) \
|
||||
INIT_DATA \
|
||||
*(.text.init) /* 2.4 convention */ \
|
||||
*(.data.init) \
|
||||
INITCALL_CONTENTS \
|
||||
|
@ -170,7 +170,7 @@
|
|||
#define ROMK_INIT_RAM_CONTENTS \
|
||||
. = ALIGN (4096) ; \
|
||||
__init_start = . ; \
|
||||
*(.init.data) /* 2.5 convention */ \
|
||||
INIT_DATA /* 2.5 convention */ \
|
||||
*(.data.init) /* 2.4 convention */ \
|
||||
__init_end = . ; \
|
||||
. = ALIGN (4096) ;
|
||||
|
@ -179,7 +179,7 @@
|
|||
should go into ROM. */
|
||||
#define ROMK_INIT_ROM_CONTENTS \
|
||||
_sinittext = .; \
|
||||
*(.init.text) /* 2.5 convention */ \
|
||||
INIT_TEXT /* 2.5 convention */ \
|
||||
_einittext = .; \
|
||||
*(.text.init) /* 2.4 convention */ \
|
||||
INITCALL_CONTENTS \
|
||||
|
|
|
@ -131,10 +131,12 @@ SECTIONS
|
|||
.init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
|
||||
__init_begin = .;
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { *(.init.data) }
|
||||
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
|
||||
INIT_DATA
|
||||
}
|
||||
. = ALIGN(16);
|
||||
.init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
|
||||
__setup_start = .;
|
||||
|
@ -169,8 +171,12 @@ SECTIONS
|
|||
}
|
||||
/* .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) }
|
||||
.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(4096);
|
||||
.init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
|
||||
|
|
|
@ -155,12 +155,15 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
|
||||
_sinittext = .;
|
||||
*(.init.text)
|
||||
INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
__initdata_begin = .;
|
||||
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { *(.init.data) }
|
||||
__initdata_end = .;
|
||||
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) {
|
||||
__initdata_begin = .;
|
||||
INIT_DATA
|
||||
__initdata_end = .;
|
||||
}
|
||||
|
||||
. = ALIGN(16);
|
||||
__setup_start = .;
|
||||
.init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { *(.init.setup) }
|
||||
|
@ -187,8 +190,12 @@ SECTIONS
|
|||
}
|
||||
/* .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) }
|
||||
.exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
|
||||
EXIT_TEXT
|
||||
}
|
||||
.exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
|
||||
EXIT_DATA
|
||||
}
|
||||
|
||||
/* vdso blob that is mapped into user space */
|
||||
vdso_start = . ;
|
||||
|
|
|
@ -136,13 +136,13 @@ SECTIONS
|
|||
__init_begin = .;
|
||||
.init.text : {
|
||||
_sinittext = .;
|
||||
*(.init.literal) *(.init.text)
|
||||
*(.init.literal) INIT_TEXT
|
||||
_einittext = .;
|
||||
}
|
||||
|
||||
.init.data :
|
||||
{
|
||||
*(.init.data)
|
||||
INIT_DATA
|
||||
. = ALIGN(0x4);
|
||||
__tagtable_begin = .;
|
||||
*(.taglist)
|
||||
|
@ -278,8 +278,9 @@ SECTIONS
|
|||
/* Sections to be discarded */
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.exit.literal .exit.text)
|
||||
*(.exit.data)
|
||||
*(.exit.literal)
|
||||
EXIT_TEXT
|
||||
EXIT_DATA
|
||||
*(.exitcall.exit)
|
||||
}
|
||||
|
||||
|
|
|
@ -183,6 +183,13 @@
|
|||
*(.kprobes.text) \
|
||||
VMLINUX_SYMBOL(__kprobes_text_end) = .;
|
||||
|
||||
/* init and exit section handling */
|
||||
#define INIT_TEXT *(.init.text)
|
||||
#define INIT_DATA *(.init.data)
|
||||
#define EXIT_TEXT *(.exit.text)
|
||||
#define EXIT_DATA *(.exit.data)
|
||||
|
||||
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to
|
||||
the beginning of the section so we begin them at 0. */
|
||||
|
|
Загрузка…
Ссылка в новой задаче