Skip to content

Commit

Permalink
MIPS: Clean up linker script using new linker script macros.
Browse files Browse the repository at this point in the history
This patch results in fewer output sections and in some data being
reordered, but should have no functional impact.

Signed-off-by: Nelson Elhage <[email protected]>
Signed-off-by: Tim Abbott <[email protected]>
Signed-off-by: Ralf Baechle <[email protected]>
  • Loading branch information
nelhage authored and ralfbaechle committed Sep 17, 2009
1 parent a0b54e2 commit 6eb10bc
Showing 1 changed file with 8 additions and 78 deletions.
86 changes: 8 additions & 78 deletions arch/mips/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,7 @@ SECTIONS
} :text = 0
_etext = .; /* End of text section */

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

/* Exception table for data bus errors */
__dbe_table : {
Expand All @@ -66,20 +60,10 @@ SECTIONS
/* writeable */
.data : { /* Data */
. = . + DATAOFFSET; /* for CONFIG_MAPPED_KERNEL */
/*
* This ALIGN is needed as a workaround for a bug a
* gcc bug upto 4.1 which limits the maximum alignment
* to at most 32kB and results in the following
* warning:
*
* CC arch/mips/kernel/init_task.o
* arch/mips/kernel/init_task.c:30: warning: alignment
* of ‘init_thread_union’ is greater than maximum
* object file alignment. Using 32768
*/
. = ALIGN(PAGE_SIZE);
*(.data.init_task)

INIT_TASK_DATA(PAGE_SIZE)
NOSAVE_DATA
CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
DATA_DATA
CONSTRUCTORS
}
Expand All @@ -96,51 +80,13 @@ SECTIONS
.sdata : {
*(.sdata)
}

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

. = ALIGN(1 << CONFIG_MIPS_L1_CACHE_SHIFT);
.data.cacheline_aligned : {
*(.data.cacheline_aligned)
}
_edata = .; /* End of data section */

/* will be freed after init */
. = ALIGN(PAGE_SIZE); /* Init code and data */
__init_begin = .;
.init.text : {
_sinittext = .;
INIT_TEXT
_einittext = .;
}
.init.data : {
INIT_DATA
}
. = ALIGN(16);
.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
INIT_TEXT_SECTION(PAGE_SIZE)
INIT_DATA_SECTION(16)

/* .exit.text is discarded at runtime, not link time, to deal with
* references from .rodata
Expand All @@ -151,29 +97,13 @@ SECTIONS
.exit.data : {
EXIT_DATA
}
#if defined(CONFIG_BLK_DEV_INITRD)
. = ALIGN(PAGE_SIZE);
.init.ramfs : {
__initramfs_start = .;
*(.init.ramfs)
__initramfs_end = .;
}
#endif

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

__bss_start = .; /* BSS */
.sbss : {
*(.sbss)
*(.scommon)
}
.bss : {
*(.bss)
*(COMMON)
}
__bss_stop = .;
BSS_SECTION(0, 0, 0)

_end = . ;

Expand Down

0 comments on commit 6eb10bc

Please sign in to comment.