From 1b5d7cd40eb1c1f55deedf34d3d6324498b5f000 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 8 Feb 2025 17:50:57 -0800 Subject: Hello world. --- src/link.ld | 53 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 15 deletions(-) (limited to 'src/link.ld') diff --git a/src/link.ld b/src/link.ld index f1d1730..1f51675 100644 --- a/src/link.ld +++ b/src/link.ld @@ -1,20 +1,43 @@ +ENTRY(_start) + SECTIONS { - . = 0x80000; /* Kernel load address for AArch64 */ - .text (READONLY) : { KEEP(*(.text.boot)) *(.text .text.* .gnu.linkonce.t*) } - .rodata (READONLY) : { *(.rodata .rodata.* .gnu.linkonce.r*) } - PROVIDE(_data = .); - .data : { *(.data .data.* .gnu.linkonce.d*) } - .bss (NOLOAD) : { - . = ALIGN(16); - __bss_start = .; - *(.bss .bss.*) - *(COMMON) - __bss_end = .; + /* Starts at LOADER_ADDR. */ + . = 0x80000; + __start = .; + __text_start = .; + .text : + { + KEEP(*(.text.boot)) + *(.text) } - _end = .; + . = ALIGN(4096); /* align to page size */ + __text_end = .; - /DISCARD/ : { *(.comment) *(.gnu*) *(.note*) *(.eh_frame*) } -} -__bss_size = (__bss_end - __bss_start); + __rodata_start = .; + .rodata : + { + *(.rodata) + } + . = ALIGN(4096); /* align to page size */ + __rodata_end = .; + __data_start = .; + .data : + { + *(.data) + } + . = ALIGN(4096); /* align to page size */ + __data_end = .; + + __bss_start = .; + .bss : + { + bss = .; + *(.bss) + } + . = ALIGN(4096); /* align to page size */ + __bss_end = .; + __bss_size = __bss_end - __bss_start; + __end = .; +} -- cgit v1.2.3