fixes for host gcc 4.6.1
[zpugcc/jano.git] / toolchain / gcc / libgloss / mips / jmr3904dram-java.ld
blob3bf777c48d39ee3c1ccdb8c3d3d9128b30d55d0b
1 /* Linker script forJMR 3904 board using Java + qthreads */
3 ENTRY(_start)
4 STARTUP(crt0.o)
5 OUTPUT_ARCH("mips:3000")
6 OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-littlemips")
7 GROUP(-lc -ljmr3904 -lgcc -lgcjcoop)
8 SEARCH_DIR(.)
9 __DYNAMIC  =  0;
11 PROVIDE (_mem_size = 0x100000); /* JMR3904 comes as standard with 512k of RAM */
12                                 /* but this is 1 Mb */
14 /* Set the size of the stack for Java with qthreads.  */
15 PROVIDE (_Jv_QthreadsStackSize = 0x10000);
17 /* PROVIDE (__global = 0); */
20  * Initalize some symbols to be zero so we can reference them in the
21  * crt0 without core dumping. These functions are all optional, but
22  * we do this so we can have our crt0 always use them if they exist. 
23  * This is so BSPs work better when using the crt0 installed with gcc.
24  * We have to initalize them twice, so we multiple object file
25  * formats, as some prepend an underscore.
26  */
27 PROVIDE (hardware_exit_hook = 0);
28 PROVIDE (hardware_hazard_hook = 0);
29 PROVIDE (hardware_init_hook = 0);
30 PROVIDE (software_init_hook = 0);
32 SECTIONS
33 {       
34   /* Load everything into DRAM, except for the stack.  Put stack in SRAM */
35   . = 0x88000000;
36       /* This is NOT the address which fits with the monitor from jmr. */
37       /* It fits the Cygmon ROMS */
38   .text : {
39      _ftext = . ;
40     *(.init)
41      eprol  =  .;
42     *(.text)
43     *(.text.*)
44     *(.gnu.linkonce.t*)
45     *(.mips16.fn.*)
46     *(.mips16.call.*)
47     PROVIDE (__runtime_reloc_start = .);
48     *(.rel.sdata)
49     PROVIDE (__runtime_reloc_stop = .);
50     *(.fini)
51      etext  =  .;
52      _etext  =  .;
53   }
54   . = .;
55   .rdata : {
56     *(.rdata)
57     *(.rodata)
58     *(.rodata.*)
59     *(.gnu.linkonce.r*)
60   }
61    _fdata = ALIGN(16);
62   .data : {
63     *(.data)
64     *(.data.*)
65     *(.gnu.linkonce.d*)
66     CONSTRUCTORS
67   }
68   . = ALIGN(8);
69   _gp = . + 0x8000;
70   __global = _gp;
71   .lit8 : {
72     *(.lit8)
73   }
74   .lit4 : {
75     *(.lit4)
76   }
77   .sdata : {
78     *(.sdata)
79     *(.sdata.*)
80     *(.gnu.linkonce.s*)
81   }
82   . = ALIGN(4);
83    edata  =  .;
84    _edata  =  .;
85    _fbss = .;
86   .sbss : {
87     *(.sbss)
88     *(.scommon)
89   }
90   .bss : {
91     _bss_start = . ;
92     *(.bss)
93     *(COMMON)
94   }
96    end = .;
97    _end = .;
99    /* Put stack in SRAM (8 Kb); this size is the same as the stack from
100       the original script (when everything was in SRAM). */
101    __stack = 0x8000A000;
103   /* DWARF debug sections.
104      Symbols in the DWARF debugging sections are relative to 
105      the beginning of the section so we begin them at 0.  */
107   /* DWARF 1 */
108   .debug          0 : { *(.debug) }
109   .line           0 : { *(.line) }
111   /* GNU DWARF 1 extensions */
112   .debug_srcinfo  0 : { *(.debug_srcinfo) }
113   .debug_sfnames  0 : { *(.debug_sfnames) }
115   /* DWARF 1.1 and DWARF 2 */
116   .debug_aranges  0 : { *(.debug_aranges) }
117   .debug_pubnames 0 : { *(.debug_pubnames) }
119   /* DWARF 2 */
120   .debug_info     0 : { *(.debug_info) }
121   .debug_abbrev   0 : { *(.debug_abbrev) }
122   .debug_line     0 : { *(.debug_line) }
123   .debug_frame    0 : { *(.debug_frame) }
124   .debug_str      0 : { *(.debug_str) }
125   .debug_loc      0 : { *(.debug_loc) }
126   .debug_macinfo  0 : { *(.debug_macinfo) }
128   /* SGI/MIPS DWARF 2 extensions */
129   .debug_weaknames 0 : { *(.debug_weaknames) }
130   .debug_funcnames 0 : { *(.debug_funcnames) }
131   .debug_typenames 0 : { *(.debug_typenames) }
132   .debug_varnames  0 : { *(.debug_varnames) }