source: trunk/libs/newlib/src/libgloss/m68k/mvme162.ld @ 546

Last change on this file since 546 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 2.8 KB
Line 
1STARTUP(crt0.o)
2OUTPUT_ARCH(m68k)
3/* Uncomment this if you want srecords. This is needed for a.out
4 * if you plan to use GDB.
5OUTPUT_FORMAT(srec)
6 */
7SEARCH_DIR(.)
8GROUP(-lmvme162 -lc -lgcc)
9__DYNAMIC  =  0;
10
11/*
12 * Setup the memory map of the Motorola MVME135 Board
13 * stack grows down from high memory.
14 *
15 * The memory map look like this:
16 * +--------------------+ <- low memory
17 * | .text              |
18 * |        _etext      |
19 * |        ctor list   | the ctor and dtor lists are for
20 * |        dtor list   | C++ support
21 * +--------------------+
22 * | .data              | initialized data goes here
23 * |        _edata      |
24 * +--------------------+
25 * | .bss               |
26 * |        __bss_start | start of bss, cleared by crt0
27 * |        _end        | start of heap, used by sbrk()
28 * +--------------------+
29 * .                    .
30 * .                    .
31 * .                    .
32 * |        __stack     | top of stack
33 * +--------------------+
34 */
35
36MEMORY
37{
38  monitor   : ORIGIN = 0x0000, LENGTH = 64K
39  ram (rwx) : ORIGIN = 0x10000, LENGTH = 16M
40}
41
42/*
43 * allocate the stack to be at the top of memory, since the stack
44 * grows down
45 */
46
47PROVIDE (__stack = 16M - 8);
48
49/*
50 * Initalize some symbols to be zero so we can reference them in the
51 * crt0 without core dumping. These functions are all optional, but
52 * we do this so we can have our crt0 always use them if they exist.
53 * This is so BSPs work better when using the crt0 installed with gcc.
54 * We have to initalize them twice, so we cover a.out (which prepends
55 * an underscore) and coff object file formats.
56 */
57PROVIDE (hardware_init_hook = 0);
58PROVIDE (_hardware_init_hook = 0);
59PROVIDE (software_init_hook = 0);
60PROVIDE (_software_init_hook = 0);
61/*
62 * stick everything in ram (of course)
63 */
64SECTIONS
65{
66  .text :
67  {
68    *(.text .text.*)
69    . = ALIGN(0x4);
70     __CTOR_LIST__ = .;
71    ___CTOR_LIST__ = .;
72    LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
73    *(.ctors)
74    LONG(0)
75    __CTOR_END__ = .;
76    __DTOR_LIST__ = .;
77    ___DTOR_LIST__ = .;
78    LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
79    *(.dtors)
80     LONG(0)
81    __DTOR_END__ = .;
82    *(.rodata .rodata.*)
83    *(.gcc_except_table)
84
85    . = ALIGN(0x2);
86    __INIT_SECTION__ = . ;
87    LONG (0x4e560000)   /* linkw %fp,#0 */
88    *(.init)
89    SHORT (0x4e5e)      /* unlk %fp */
90    SHORT (0x4e75)      /* rts */
91
92    __FINI_SECTION__ = . ;
93    LONG (0x4e560000)   /* linkw %fp,#0 */
94    *(.fini)
95    SHORT (0x4e5e)      /* unlk %fp */
96    SHORT (0x4e75)      /* rts */
97
98    _etext = .;
99    *(.lit)
100  } > ram
101
102  .data :
103  {
104    *(.got.plt) *(.got)
105    *(.shdata)
106    *(.data .data.*)
107    _edata = .;
108  } > ram
109
110  .bss :
111  {
112    . = ALIGN(0x4);
113    __bss_start = . ;
114    *(.shbss)
115    *(.bss .bss.*)
116    *(COMMON)
117    _end =  ALIGN (0x8);
118    __end = _end;
119  } > ram
120
121  .stab 0 (NOLOAD) :
122  {
123    *(.stab)
124  }
125
126  .stabstr 0 (NOLOAD) :
127  {
128    *(.stabstr)
129  }
130}
Note: See TracBrowser for help on using the repository browser.