From 50e526d72f1fd9cb895d743a1353b54505b48025 Mon Sep 17 00:00:00 2001 From: Nathan Lee Date: Sun, 20 Sep 2026 21:12:49 -0500 Subject: add x86 support --- kernel/x86/linker.ld | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 kernel/x86/linker.ld (limited to 'kernel/x86/linker.ld') diff --git a/kernel/x86/linker.ld b/kernel/x86/linker.ld new file mode 100644 index 0000000..067d4e4 --- /dev/null +++ b/kernel/x86/linker.ld @@ -0,0 +1,87 @@ +OUTPUT_ARCH(i386:x86-64) +ENTRY(_start) + +MEMORY +{ + ROM (rx) : ORIGIN = 0x1000000, LENGTH = 1M + RAM (rwx) : ORIGIN = 0x1040000, LENGTH = 1M + LOGRAM (rw) : ORIGIN = 0x1080000, LENGTH = 1M +} + +SECTIONS +{ + .header : { + KEEP(*(.header)) + *(.header) + } > ROM + + .text : { + KEEP(*(.text._start)) + KEEP(*(.text.start)) + *(.text) + *(.text.*) + } > ROM + + .rodata : { + *(.rodata) + *(.rodata.*) + } > ROM + + .init_array : { + __init_array_start = .; + KEEP(*(.init_array)) + KEEP(*(.init_array.*)) + __init_array_end = .; + } > ROM + + .data : { + __data_start = .; + *(.data) + *(.data.*) + __data_end = .; + } > RAM AT> ROM + __data_load = LOADADDR(.data); + + .bss : { + __bss_start = .; + *(.bss) + *(.bss.*) + *(COMMON) + __bss_end = .; + } > RAM + + .stack (NOLOAD) : { + . = ALIGN(16); + __stack_bottom = .; + . += 8K; + __stack_top = .; + } > RAM + + .ringbuf (NOLOAD) : ALIGN(64) + { + __ringbuf_start = .; + KEEP(*(.ringbuf)) + . = ALIGN(64); + __ringbuf_end = .; + } > LOGRAM + + .image_end (NOLOAD) : { + . = ALIGN(4); + __image_end = .; + } > ROM + + /DISCARD/ : { + *(.eh_frame) + *(.eh_frame.*) + *(.eh_frame_hdr) + *(.comment) + *(.note.*) + *(.debug_*) + *(.stab*) + *(.llvm_*) + *(.rela.*) + } + + __image_start = ORIGIN(ROM); + __image_size = __image_end - __image_start; +} -- cgit v1.2.3