Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2014-11-13 13:18:57 +0300
committerNick Clifton <nickc@redhat.com>2014-11-13 13:18:57 +0300
commitb7d6a7c805565ab550458c863ad1aaa7031de2b0 (patch)
tree19e9d4dd0b446a0fa0a7e7375a6b715658ba1d46 /libgloss/msp430/msp430-sim.ld
parent58d35b961ea4fcf575b8aedd3f285311c5b0e6a2 (diff)
* msp430/Makefile.in (CRT_OBJS): Add crt_high_bss.o.
* msp430/crt0.S (high_bss): Add. * msp430/msp430-sim.ld: Add error message if .upper sections are detected. * msp430/msp430xl-sim.ld (MEMORY): Adjust to better mimic real life MCUs. Add support for upper and lower sections.
Diffstat (limited to 'libgloss/msp430/msp430-sim.ld')
-rw-r--r--libgloss/msp430/msp430-sim.ld59
1 files changed, 37 insertions, 22 deletions
diff --git a/libgloss/msp430/msp430-sim.ld b/libgloss/msp430/msp430-sim.ld
index 35a91ea3b..01b3f217c 100644
--- a/libgloss/msp430/msp430-sim.ld
+++ b/libgloss/msp430/msp430-sim.ld
@@ -1,4 +1,4 @@
-/* Copyright (c) 2005,2008,2009,2011,2013 Red Hat, Inc. All rights reserved.
+/* Copyright (c) 2013-2014 Red Hat, Inc. All rights reserved.
This copyrighted material is made available to anyone wishing to use, modify,
copy, or redistribute it subject to the terms and conditions of the BSD
@@ -8,22 +8,18 @@
is available at http://www.opensource.org/licenses. Any Red Hat trademarks that
are incorporated in the source code or documentation are not subject to the BSD
License and may only be used or replicated with the express permission of
- Red Hat, Inc.
-*/
+ Red Hat, Inc. */
+
+/* Default linker script, for normal MSP430 executables. */
-/* Default linker script, for normal executables */
OUTPUT_ARCH(msp430)
ENTRY(_start)
-/* Do we need any of these for elf?
- __DYNAMIC = 0; */
-
INCLUDE intr_vectors.ld
MEMORY
{
- RAM (w) : ORIGIN = 0x00200, LENGTH = 0x0ee00
- RESETVEC (w) : ORIGIN = 0x0fffe, LENGTH = 0x00002
+ RAM (w) : ORIGIN = 0x00200, LENGTH = 0x0ee00
}
SECTIONS
@@ -31,11 +27,13 @@ SECTIONS
.resetvec :
{
*(.resetvec)
- } > RESETVEC
+ } > VECT31
- .rodata : {
+ .rodata :
+ {
. = ALIGN(2);
*(.plt)
+ *(.lower.rodata.* .lower.rodata)
*(.rodata .rodata.* .gnu.linkonce.r.* .const .const:*)
*(.rodata1)
*(.eh_frame_hdr)
@@ -76,12 +74,14 @@ SECTIONS
KEEP (*(.dtors))
} > RAM
- .text :
+ .text :
{
. = ALIGN(2);
PROVIDE (_start = .);
KEEP (*(SORT(.crt_*)))
- *(.lowtext .text .stub .text.* .gnu.linkonce.t.* .text:*)
+ *(.lowtext)
+ *(.lower.text.* .lower.text)
+ *(.text .stub .text.* .gnu.linkonce.t.* .text:*)
KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
@@ -95,10 +95,12 @@ SECTIONS
KEEP (*(.tm_clone_table))
} > RAM
- .data : {
+ .data :
+ {
. = ALIGN(2);
PROVIDE (__datastart = .);
+ *(.lower.data.* .lower.data)
KEEP (*(.jcr))
*(.data.rel.ro.local) *(.data.rel.ro*)
*(.dynamic)
@@ -126,9 +128,11 @@ SECTIONS
PROVIDE(__romdatastart = LOADADDR(.data));
PROVIDE (__romdatacopysize = SIZEOF(.data));
- .bss : {
+ .bss :
+ {
. = ALIGN(2);
PROVIDE (__bssstart = .);
+ *(.lower.bss.* .lower.bss)
*(.dynbss)
*(.sbss .sbss.*)
*(.bss .bss.* .gnu.linkonce.b.*)
@@ -137,7 +141,8 @@ SECTIONS
PROVIDE (__bsssize = SIZEOF(.bss));
/* This section contains data that is not initialised at startup. */
- .noinit : {
+ .noinit (NOLOAD) :
+ {
. = ALIGN(2);
PROVIDE (__noinit_start = .);
*(.noinit)
@@ -145,7 +150,7 @@ SECTIONS
*(COMMON)
PROVIDE (__noinit_end = .);
} > RAM
-
+
_end = .;
PROVIDE (end = .);
@@ -155,6 +160,16 @@ SECTIONS
*(.stack)
}
+ /* Make sure that .upper sections are not used without -mlarge support. */
+ .upper :
+ {
+ *(.upper.rodata.* .upper.rodata)
+ *(.upper.data.* .upper.data)
+ *(.upper.bss.* .upper.bss)
+ *(.upper.text.* .upper.text)
+ ASSERT (SIZEOF(.upper) == 0, ".upper sections present in a binary linked without -mlarge support");
+ }
+
/* The rest are all not normally part of the runtime image. */
.MP430.attributes 0 :
@@ -175,13 +190,13 @@ SECTIONS
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
- /* DWARF 1 */
+ /* DWARF 1. */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
+ /* GNU DWARF 1 extensions. */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
+ /* DWARF 1.1 and DWARF 2. */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
@@ -192,12 +207,12 @@ SECTIONS
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
+ /* SGI/MIPS DWARF 2 extensions. */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
- /* DWARF 3 */
+ /* DWARF 3. */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges) }
/* DWARF Extension. */