x86_64 support, requiring a slight refactor to the build system.
[tpg/acess2.git] / Kernel / arch / x86_64 / link.ld
1 /*
2  * AcessMicro Kernel
3  * Linker Script
4  */
5
6 _kernel_base = 0xFFFF800000000000;
7
8 //lowStart = start - _kernel_base;
9 ENTRY(start)
10 OUTPUT_FORMAT(elf64-x86-64)
11
12 SECTIONS {
13         . = 0x100000;
14         __load_addr = .;
15         .multiboot : AT(ADDR(.multiboot)) {
16                 *(.multiboot)
17         }
18         
19         . += _kernel_base;
20         
21         .text ALIGN(0x1000): AT(ADDR(.text) - _kernel_base) {
22                 *(.text)
23         }
24         
25         .usertext ALIGN(0x1000): AT(ADDR(.usertext) - _kernel_base) {
26                 _UsertextBase = .;
27                 *(.usertext)
28         }
29         _UsertextEnd = .;
30         
31         .rodata ALIGN(0x1000): AT(ADDR(.rodata) - _kernel_base) {
32                 *(.initpd)
33                 *(.rodata)
34                 *(.rdata)
35                 gKernelModules = .;
36                 *(KMODULES)
37                 gKernelModulesEnd = .;
38                 . = ALIGN(4);
39                 gKernelSymbols = .;
40                 *(KEXPORT)
41                 gKernelSymbolsEnd = .;
42
43
44         }
45         /*
46         .debug_abbrev : { *(.debug_abbrev) }
47         .debug_info : { *(.debug_info) }
48         .debug_line : { *(.debug_line) }
49         .debug_loc : { *(.debug_loc) }
50         .debug_pubnames : { *(.debug_pubnames) }
51         .debug_aranges : { *(.debug_aranges) }
52         .debug_ranges : { *(.debug_ranges) }
53         .debug_str : { *(.debug_str) }
54         .debug_frame : { *(.debug_frame) }
55         */
56         
57         .padata ALIGN (0x1000) : AT(ADDR(.padata) - _kernel_base) {
58                 *(.padata)
59         }
60         
61         .data ALIGN (0x1000) : AT(ADDR(.data) - _kernel_base) {
62                 *(.data)
63         }
64
65         __bss_start = .;
66         .bss : AT(ADDR(.bss) - _kernel_base) {
67                 _sbss = .;
68                 *(COMMON)
69                 *(.bss)
70                 _ebss = .;
71         }
72         gKernelEnd = (. + 0xFFF)&0xFFFFFFFFFFFFF000;
73 }

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