summaryrefslogtreecommitdiff
path: root/arch/amd64/linker.sc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/amd64/linker.sc')
-rw-r--r--arch/amd64/linker.sc34
1 files changed, 34 insertions, 0 deletions
diff --git a/arch/amd64/linker.sc b/arch/amd64/linker.sc
new file mode 100644
index 0000000..16d9330
--- /dev/null
+++ b/arch/amd64/linker.sc
@@ -0,0 +1,34 @@
+OUTPUT(elf64-x86-64)
+ENTRY(amd64_quirks)
+
+SECTIONS {
+ . = 0xffffffff80000000;
+
+ .stack (NOLOAD) : {
+ . = ALIGN(8);
+ . += 0x10000;
+ . = ALIGN(8);
+ kernel_stack_high = .;
+ } :stack
+
+ kernel_begin = .;
+ .text : {
+ KEEP(*(.text .text.*))
+ } :text
+
+ . += CONSTANT(MAXPAGESIZE);
+
+ .rodata : {
+ KEEP(*(.rodata .rodata.*))
+ } :rodata
+
+ .data : {
+ KEEP(*(.data .data.*))
+ } :data
+
+ .bss (NOLOAD) : {
+ KEEP(*(COMMON))
+ KEEP(*(.bss .bss.*))
+ } :data
+ kernel_end = .;
+} \ No newline at end of file