Usermode/ld-acess - Overhaul cleanup of ELF loader
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / arch / x86.ld
1 ENTRY(_start)
2 OUTPUT_FORMAT(elf32-i386)
3
4 SECTIONS {
5     . = 0xBBFF0000;
6     gLinkedBase = .;
7         . += SIZEOF_HEADERS;
8         .interp         : { *(.interp) }
9         .note.gnu.build-id : { *(.note.gnu.build-id) }
10         .hash           : { *(.hash) }
11         .gnu.hash       : { *(.gnu.hash) }
12         .dynsym         : { *(.dynsym) }
13         .dynstr         : { *(.dynstr) }
14         .gnu.version    : { *(.gnu.version) }
15         .gnu.version_d  : { *(.gnu.version_d) }
16         .gnu.version_r  : { *(.gnu.version_r) }
17         .rel.dyn        :
18         {
19                 *(.rel.init)
20                 *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
21                 *(.rel.fini)
22                 *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
23                 *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
24                 *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
25                 *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
26                 *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
27                 *(.rel.ctors)
28                 *(.rel.dtors)
29                 *(.rel.got)
30                 *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
31         }
32         .rela.dyn       :
33         {
34                 *(.rela.init)
35                 *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
36                 *(.rela.fini)
37                 *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
38                 *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
39                 *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
40                 *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
41                 *(.rela.ctors)
42                 *(.rela.dtors)
43                 *(.rela.got)
44                 *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
45         }
46
47    .text : AT(ADDR(.text)) {
48         code = .;
49         *(.text)
50    }
51
52    .rodata : AT(ADDR(.rodata)) {
53         *(.rodata .rodata.*)
54    }
55
56    .data ALIGN (0x1000) : AT(ADDR(.data)) {
57         data = .;
58         *(.data)
59    }
60
61    .bss ALIGN (0x1000) : AT(ADDR(.bss)) {
62         _sbss = .;
63         *(COMMON)
64         *(.bss)
65         _ebss = .;
66         bss = .;
67    }
68    _end = .;
69    
70   /* DWARF 1 */
71   .debug 0 : { *(.debug) }
72   .line 0 : { *(.line) }
73   /* GNU DWARF 1 extensions */
74   .debug_srcinfo 0 : { *(.debug_srcinfo) }
75   .debug_sfnames 0 : { *(.debug_sfnames) }
76   /* DWARF 1.1 and DWARF 2 */
77   .debug_aranges 0 : { *(.debug_aranges) }
78   .debug_pubnames 0 : { *(.debug_pubnames) }
79   /* DWARF 2 */
80   .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
81   .debug_abbrev 0 : { *(.debug_abbrev) }
82   .debug_line 0 : { *(.debug_line) }
83   .debug_frame 0 : { *(.debug_frame) }
84   .debug_str 0 : { *(.debug_str) }
85   .debug_loc 0 : { *(.debug_loc) }
86   .debug_macinfo 0 : { *(.debug_macinfo) }
87   /* SGI/MIPS DWARF 2 extensions */
88   .debug_weaknames 0 : { *(.debug_weaknames) }
89   .debug_funcnames 0 : { *(.debug_funcnames) }
90   .debug_typenames 0 : { *(.debug_typenames) }
91   .debug_varnames 0 : { *(.debug_varnames) }
92   /* DWARF 3 */
93   .debug_pubtypes 0 : { *(.debug_pubtypes) }
94   .debug_ranges 0 : { *(.debug_ranges) }
95   .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
96   /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) }
97 }

UCC git Repository :: git.ucc.asn.au