From 407d34ca790ea224c79e17a5cbe33976bf02a6fc Mon Sep 17 00:00:00 2001 From: Vaze Date: Wed, 27 May 2026 13:18:52 +0200 Subject: Removed bootloader sub-project. ZenOS will focus on the kernel from now on. BOOTBOOT will be used as the only supported bootloader for now. Development of a custom bootloader might resume at a much later date. --- kernel/link.ld | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 kernel/link.ld (limited to 'kernel/link.ld') diff --git a/kernel/link.ld b/kernel/link.ld new file mode 100644 index 0000000..b61cd01 --- /dev/null +++ b/kernel/link.ld @@ -0,0 +1,54 @@ +OUTPUT_FORMAT(elf64-x86-64) +ENTRY(_start) + +KERNEL_BASE = 0xffffffff80000000; + +PHDRS +{ + text PT_LOAD; + rodata PT_LOAD; + data PT_LOAD; +} + +SECTIONS +{ + . = KERNEL_BASE; + .text : { + *(.text .text.*) + } : text + + . = ALIGN(CONSTANT(MAXPAGESIZE)); + + .rodata : { + *(.rodata .rodata.*) + } :rodata + + /* Add a .note.gnu.build-id output section in case a build ID flag is added to the */ + /* linker command. */ + .note.gnu.build-id : { + *(.note.gnu.build-id) + } :rodata + + /* Move to the next memory page for .data */ + . = ALIGN(CONSTANT(MAXPAGESIZE)); + + .data : { + *(.data .data.*) + } :data + + /* NOTE: .bss needs to be the last thing mapped to :data, otherwise lots of */ + /* unnecessary zeros will be written to the binary. */ + /* If you need, for example, .init_array and .fini_array, those should be placed */ + /* above this. */ + .bss : { + *(.bss .bss.*) + *(COMMON) + } :data + + /* Discard .note.* and .eh_frame* since they may cause issues on some hosts. */ + /DISCARD/ : { + *(.eh_frame*) + *(.note .note.*) + } +} + -- cgit v1.2.3