Work around FOR PFS BUG with O_TRUNC
[open-ps2-loader/simon.git] / ee_core / linkfile
blobcb25bb889e212447bea4118c7488c7227eb13aa1
1 /*\r
2         Copyright 2009-2010, Ifcaro, jimmikaelkael & Polo\r
3         Copyright 2006-2008 Polo\r
4         Licenced under Academic Free License version 3.0\r
5         Review OPNPS2LD README & LICENSE files for further details.\r
6         \r
7         Copyright 2001-2004, ps2dev - http://www.ps2dev.org\r
8         Licenced under Academic Free License version 2.0\r
9         Review ps2sdk README & LICENSE files for further details.\r
10         \r
11         Standard linkfile\r
12         Loader section begin at 0x000e7000\r
13 */\r
15 ENTRY(_start);\r
17 SECTIONS {\r
18         .text 0x000e7000: {\r
19                 _ftext = . ;\r
20                 *(.text)\r
21                 *(.text.*)\r
22                 *(.gnu.linkonce.t*)\r
23                 KEEP(*(.init))\r
24                 KEEP(*(.fini))\r
25                 QUAD(0)\r
26         }\r
28         PROVIDE(_etext = .);\r
29         PROVIDE(etext = .);\r
31         .reginfo : { *(.reginfo) }\r
33         /* Global/static constructors and deconstructors. */\r
34         .ctors ALIGN(16): {\r
35                 KEEP(*crtbegin*.o(.ctors))\r
36                 KEEP(*(EXCLUDE_FILE(*crtend*.o) .ctors))\r
37                 KEEP(*(SORT(.ctors.*)))\r
38                 KEEP(*(.ctors))\r
39         }\r
40         .dtors ALIGN(16): {\r
41                 KEEP(*crtbegin*.o(.dtors))\r
42                 KEEP(*(EXCLUDE_FILE(*crtend*.o) .dtors))\r
43                 KEEP(*(SORT(.dtors.*)))\r
44                 KEEP(*(.dtors))\r
45         }\r
47         /* Static data.  */\r
48         .rodata ALIGN(128): {\r
49                 *(.rodata)\r
50                 *(.rodata.*)\r
51                 *(.gnu.linkonce.r*)\r
52         }\r
54         .data ALIGN(128): {\r
55                 _fdata = . ;\r
56                 *(.data)\r
57                 *(.data.*)\r
58                 *(.gnu.linkonce.d*)\r
59                 SORT(CONSTRUCTORS)\r
60         }\r
62         .rdata ALIGN(128): { *(.rdata) }\r
63         .gcc_except_table ALIGN(128): { *(.gcc_except_table) }\r
65         _gp = ALIGN(128) + 0x7ff0;\r
66         .lit4 ALIGN(128): { *(.lit4) }\r
67         .lit8 ALIGN(128): { *(.lit8) }\r
69         .sdata ALIGN(128): {\r
70                 *(.sdata)\r
71                 *(.sdata.*)\r
72                 *(.gnu.linkonce.s*)\r
73         }\r
75         _edata = .;\r
76         PROVIDE(edata = .);\r
78         /* Uninitialized data.  */\r
79         .sbss ALIGN(128) : {\r
80                 _fbss = . ;\r
81                 *(.sbss)\r
82                 *(.sbss.*)\r
83                 *(.gnu.linkonce.sb*)\r
84                 *(.scommon)\r
85         }\r
87         .bss ALIGN(128) : {\r
88                 *(.bss)\r
89                 *(.bss.*)\r
90                 *(.gnu.linkonce.b*)\r
91                 *(COMMON)\r
92         }\r
93         _end_bss = .;\r
95         _end = . ;\r
96         PROVIDE(end = .);\r
98         /* Symbols needed by crt0.s.  */\r
99         PROVIDE(_heap_size = -1);\r
100         PROVIDE(_stack = -1);\r
101         PROVIDE(_stack_size = 128 * 1024);\r