fixes for host gcc 4.6.1
[zpugcc/jano.git] / toolchain / gcc / libgloss / m68k / mvme162.ld
blobfd3ae1014694dab66f1c0f29492e2d1a8eb4d901
1 STARTUP(crt0.o)
2 OUTPUT_ARCH(m68k)
3 /* Uncomment this if you want srecords. This is needed for a.out
4  * if you plan to use GDB.
5 OUTPUT_FORMAT(srec)
6  */
7 SEARCH_DIR(.)
8 GROUP(-lmvme162 -lc -lgcc)
9 __DYNAMIC  =  0;
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  */
36 MEMORY
38   monitor   : ORIGIN = 0x0000, LENGTH = 64K
39   ram (rwx) : ORIGIN = 0x10000, LENGTH = 16M
43  * allocate the stack to be at the top of memory, since the stack
44  * grows down
45  */
47 PROVIDE (__stack = 16M - 8);
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  */
57 PROVIDE (hardware_init_hook = 0);
58 PROVIDE (_hardware_init_hook = 0);
59 PROVIDE (software_init_hook = 0);
60 PROVIDE (_software_init_hook = 0);
62  * stick everything in ram (of course)
63  */
64 SECTIONS
66   .text :
67   {
68     *(.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)
83     *(.gcc_except_table) 
85     . = ALIGN(0x2);
86     __INIT_SECTION__ = . ;
87     LONG (0x4e560000)   /* linkw %fp,#0 */
88     *(.init)
89     SHORT (0x4e5e)      /* unlk %fp */
90     SHORT (0x4e75)      /* rts */
92     __FINI_SECTION__ = . ;
93     LONG (0x4e560000)   /* linkw %fp,#0 */
94     *(.fini)
95     SHORT (0x4e5e)      /* unlk %fp */
96     SHORT (0x4e75)      /* rts */
98     _etext = .;
99     *(.lit)
100   } > ram
102   .data :
103   {
104     *(.shdata)
105     *(.data)
106     _edata = .;
107   } > ram
109   .bss :
110   {
111     . = ALIGN(0x4);
112     __bss_start = . ;
113     *(.shbss)
114     *(.bss)
115     *(COMMON)
116     _end =  ALIGN (0x8);
117     __end = _end;
118   } > ram
120   .stab 0 (NOLOAD) :
121   {
122     *(.stab)
123   }
125   .stabstr 0 (NOLOAD) :
126   {
127     *(.stabstr)
128   }