source: rtems/c/src/lib/libbsp/m68k/csb360/startup/linkcmds @ 960fd85

4.115
Last change on this file since 960fd85 was 960fd85, checked in by Sebastian Huber <sebastian.huber@…>, on 01/28/14 at 10:52:17

bsps: Thread-local storage (TLS) for linkcmds

  • Property mode set to 100644
File size: 2.8 KB
Line 
1/*
2 * This file contains GNU linker directives for the Cogent
3 * CSB360 development board.
4 *
5 * Copyright (C) 2004 Cogent Computer Systems
6 * Author: Jay Monkman <jtm@lopingdog.com>
7 */
8
9/*
10 * Declare size of heap.
11 * A heap size of 0 means "Use all available memory for the heap".
12 * Initial stack located in on-chip SRAM and not declared there.
13 */
14HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
15RamBase = DEFINED(RamBase) ? RamBase : 0x00100000;
16RamSize = DEFINED(RamSize) ? RamSize : 31M;
17
18/* This is needed for _CPU_ISR_install_vector -
19*  WARNING: it MUST match BSP_RAMBAR !!!!!!!!!!! */
20_VBR = 0x20000000;
21
22/*
23 * Setup the memory map of the CSB360 board
24 *
25 * The "ram" section is placed in RAM after the space used by umon.
26 *
27 */
28MEMORY
29{
30  ram     : ORIGIN = 0x00100000, LENGTH = 31M
31}
32
33SECTIONS
34{
35     
36  /*
37   * Text, data and bss segments
38   */
39   .text :
40   {
41        RamBase = .;
42        RamBase = .;
43        CREATE_OBJECT_SYMBOLS
44        *(.text*)
45
46        /*
47         * C++ constructors/destructors
48         */
49        *(.gnu.linkonce.t.*)
50
51        /*
52         * Initialization and finalization code.
53         */
54        . = ALIGN (16);
55        PROVIDE (_init = .);
56        *crti.o(.init)
57        *(.init)
58        *crtn.o(.init)
59        . = ALIGN (16);
60        PROVIDE (_fini = .);
61        *crti.o(.fini)
62        *(.fini)
63        *crtn.o(.fini)
64
65        /*
66         * Special FreeBSD sysctl sections.
67         */
68        . = ALIGN (16);
69        __start_set_sysctl_set = .;
70        *(set_sysctl_*);
71        __stop_set_sysctl_set = ABSOLUTE(.);
72        *(set_domain_*);
73        *(set_pseudo_*);
74
75        /*
76         * C++ constructors/destructors
77         */
78        . = ALIGN (16);
79        *crtbegin.o(.ctors)
80        *(.ctors)
81        *crtend.o(.ctors)
82        *crtbegin.o(.dtors)
83        *(.dtors)
84        *crtend.o(.dtors)
85
86        /*
87         * Exception frame info
88         */
89        . = ALIGN (16);
90        *(.eh_frame)
91
92        /*
93         * Read-only data
94         */
95        . = ALIGN (16);
96        _rodata_start = .;
97        *(.rodata*)
98        *(.gnu.linkonce.r*)
99
100        . = ALIGN (16);
101        PROVIDE (etext = .);
102
103   } > ram
104
105   .tdata : {
106        _TLS_Data_begin = .;
107        *(.tdata .tdata.* .gnu.linkonce.td.*)
108        _TLS_Data_end = .;
109   } >ram
110
111   .tbss : {
112        _TLS_BSS_begin = .;
113        *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
114        _TLS_BSS_end = .;
115   } >ram
116
117   _TLS_Data_size = _TLS_Data_end - _TLS_Data_begin;
118   _TLS_BSS_size = _TLS_BSS_end - _TLS_BSS_begin;
119   _TLS_Size = _TLS_BSS_end - _TLS_Data_begin;
120   _TLS_Alignment = ALIGNOF (.tdata);
121
122
123   .data :
124   {
125        copy_start = .;
126        *(.shdata)
127        . = ALIGN (0x10);
128        *(.data*)
129        . = ALIGN (0x10);
130        *(.gcc_exc)
131        *(.gcc_except_table*)
132        *(.jcr)
133        . = ALIGN (0x10);
134        *(.gnu.linkonce.d*)
135        . = ALIGN (0x10);
136        _edata = .;
137         copy_end = .;
138   } > ram
139
140  .bss :
141  {
142        clear_start = . ;
143        *(.shbss)
144        *(.dynbss)
145        *(.bss* .gnu.linkonce.b.*)
146        *(COMMON)
147        . = ALIGN(0x10);
148        _end = .;
149   
150        clear_end = .;
151
152        WorkAreaBase = .;
153        WorkAreaBase = .;
154
155  } > ram
156
157  .stab 0 (NOLOAD) :
158  {
159    *(.stab)
160  }
161
162  .stabstr 0 (NOLOAD) :
163  {
164    *(.stabstr)
165  }
166 
167}
Note: See TracBrowser for help on using the repository browser.