Skip to content

Commit

Permalink
[S390] clean up linker script using new linker script macros.
Browse files Browse the repository at this point in the history
Note that this patch moves .data.init_task inside _edata.  In
addition, the alignment of .init.ramfs changes: It is now PAGE_ALIGNED
and __initramfs_end is arbitrarily aligned; Previously it was
only aligned to a 0x100-byte boundary, and always ended on an even
byte.

This change results in fewer output sections and in some data being
reordered, but should have no functional effect.

Signed-off-by: Nelson Elhage <[email protected]>
Signed-off-by: Tim Abbott <[email protected]>
Cc: Martin Schwidefsky <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: [email protected]
Signed-off-by: Martin Schwidefsky <[email protected]>
  • Loading branch information
nelhage authored and Martin Schwidefsky committed Sep 11, 2009
1 parent 2680314 commit 04a95f6
Showing 1 changed file with 7 additions and 76 deletions.
83 changes: 7 additions & 76 deletions arch/s390/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -52,51 +52,18 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
_eshared = .; /* End of shareable data */

. = ALIGN(16); /* Exception table */
__ex_table : {
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
} :data

.data : { /* Data */
PAGE_ALIGNED_DATA(PAGE_SIZE)
DATA_DATA
CONSTRUCTORS
}

. = ALIGN(PAGE_SIZE);
.data_nosave : {
__nosave_begin = .;
*(.data.nosave)
}
. = ALIGN(PAGE_SIZE);
__nosave_end = .;
EXCEPTION_TABLE(16) :data

. = ALIGN(0x100);
.data.cacheline_aligned : {
*(.data.cacheline_aligned)
}
RW_DATA_SECTION(0x100, PAGE_SIZE, THREAD_SIZE)

. = ALIGN(0x100);
.data.read_mostly : {
*(.data.read_mostly)
}
_edata = .; /* End of data section */

. = ALIGN(THREAD_SIZE); /* init_task */
.data.init_task : {
*(.data.init_task)
}

/* will be freed after init */
. = ALIGN(PAGE_SIZE); /* Init code and data */
__init_begin = .;
.init.text : {
_sinittext = .;
INIT_TEXT
_einittext = .;
}

INIT_TEXT_SECTION(PAGE_SIZE)

/*
* .exit.text is discarded at runtime, not link time,
* to deal with references from __bug_table
Expand All @@ -107,49 +74,13 @@ SECTIONS

/* early.c uses stsi, which requires page aligned data. */
. = ALIGN(PAGE_SIZE);
.init.data : {
INIT_DATA
}
. = ALIGN(0x100);
.init.setup : {
__setup_start = .;
*(.init.setup)
__setup_end = .;
}
.initcall.init : {
__initcall_start = .;
INITCALLS
__initcall_end = .;
}

.con_initcall.init : {
__con_initcall_start = .;
*(.con_initcall.init)
__con_initcall_end = .;
}
SECURITY_INIT

#ifdef CONFIG_BLK_DEV_INITRD
. = ALIGN(0x100);
.init.ramfs : {
__initramfs_start = .;
*(.init.ramfs)
. = ALIGN(2);
__initramfs_end = .;
}
#endif
INIT_DATA_SECTION(0x100)

PERCPU(PAGE_SIZE)
. = ALIGN(PAGE_SIZE);
__init_end = .; /* freed after init ends here */

/* BSS */
.bss : {
__bss_start = .;
*(.bss)
. = ALIGN(2);
__bss_stop = .;
}
BSS_SECTION(0, 2, 0)

_end = . ;

Expand Down

0 comments on commit 04a95f6

Please sign in to comment.