diff options
Diffstat (limited to 'kernel/linker.ld')
-rw-r--r-- | kernel/linker.ld | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/kernel/linker.ld b/kernel/linker.ld new file mode 100644 index 0000000..00f4dff --- /dev/null +++ b/kernel/linker.ld @@ -0,0 +1,40 @@ +ENTRY (loader) + +SECTIONS{ + k_highhalf_addr = 0xC0000000; + + . = 0x00100000; + + .setup : { + *(.setup) + } + + . += k_highhalf_addr; + + .text : AT(ADDR(.text) - k_highhalf_addr) { + *(.text) + } + + .rodata ALIGN (0x1000) : AT(ADDR(.rodata) - k_highhalf_addr) { + *(.rodata) + } + + .data ALIGN (0x1000) : AT(ADDR(.data) - k_highhalf_addr) { + start_ctors = .; + *(.ctor*) + end_ctors = .; + start_dtors = .; + *(.dtor*) + end_dtors = .; + *(.data) + } + + .bss : AT(ADDR(.bss) - k_highhalf_addr) { + sbss = .; + *(COMMON) + *(.bss) + ebss = .; + } + + end = .; _end = .; __end = .; +} |