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:
Sam Ravnborg 2008-01-20 14:15:03 +01:00
parent 6c5bd235bf
commit 01ba2bdc6b
29 changed files with 140 additions and 117 deletions

View File

@ -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)
}

View File

@ -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

View File

@ -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)
}

View File

@ -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)
}
}

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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
}

View File

@ -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 = .;

View File

@ -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)

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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);

View File

@ -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);

View File

@ -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 = .;

View File

@ -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
}
}

View File

@ -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)
}

View File

@ -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 : {

View File

@ -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) {

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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

View File

@ -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 */

View File

@ -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 \

View File

@ -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) {

View File

@ -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 = . ;

View File

@ -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)
}

View File

@ -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. */