1OUTPUT_ARCH(mips)
2
3/**** Start point ****/
4
5ENTRY(_start)			/* Entry point of application		*/
6
7SECTIONS
8{
9  /**** Code and read-only data ****/
10
11  .vector_0x000 0x80000000 :
12  {
13  }
14
15  .vector_0x100 0x80000100 :
16  {
17  }
18
19  .vector_0x180 0x80000180 :
20  {
21  }
22
23  .vector_0x200 0x80000200 :
24  {
25  }
26
27  .vector_0x280 0x80000280 :
28  {
29  }
30
31  .vector_0x300 0x80000300 :
32  {
33  }
34
35  .text 0x80100000 :
36  {
37    _ftext = ABSOLUTE(.) ;	/* Start of code and read-only data	*/
38    start.o(.text)		    /* Reset entry point		    */
39    *(.text*)
40    _ecode = ABSOLUTE(.) ;	/* End of code				*/
41
42    *(.rodata*)
43
44    . = ALIGN(8);
45    _etext = ABSOLUTE(.) ;	/* End of code and read-only data	*/
46  } = 0
47
48  /**** Initialised data ****/
49
50  .data :
51  {
52    _fdata = ABSOLUTE(.);	/* Start of initialised data		*/
53    *(.data*)
54
55    . = ALIGN(8);
56
57    _gp = ABSOLUTE(. + 0x7ff0); /* Base of small data			*/
58    LC8 = ABSOLUTE(. + 0x7ff0); /* Base of small data			*/
59
60    *(.lit8)
61    *(.lit4)
62    *(.sdata*)
63
64    . = ALIGN(8);
65
66    _edata  = ABSOLUTE(.) ;	/* End of initialised data		*/
67  }
68
69  /**** Uninitialised data ****/
70
71  .sbss :
72  {
73    _start_sbss = .;
74    *(.sbss*)
75    *(.scommon)
76    _end_sbss = .;
77  }
78  .bss :
79  {
80    _start_bss = .;
81    *(.bss*)
82    *(COMMON)
83    _ebss = ABSOLUTE(.) ;
84    _end_bss =  .;
85  }
86
87  .stack _ebss :
88  {
89    /* Allocate room for stack */
90    .   =  ALIGN(8) ;
91    .   += 4096 ;
92    _sp =  . - 16 ;
93    _stack_top = ABSOLUTE(.) ;
94  }
95
96  _free_memory =  _stack_top + 4 ;
97
98  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
99  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
100
101  /DISCARD/ :
102  {
103    *(.reginfo)
104  }
105
106  PROVIDE(etext = _etext);
107  PROVIDE (end = _stack_top);
108}
109
110