summaryrefslogtreecommitdiff
path: root/src/link.ld
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-02-08 17:50:57 -0800
committer3gg <3gg@shellblade.net>2025-02-08 17:50:57 -0800
commit1b5d7cd40eb1c1f55deedf34d3d6324498b5f000 (patch)
treea0bc21168f8270ee5fcb139498131dff884a7450 /src/link.ld
parent0e1595330211351823e68691fca013bb47772aeb (diff)
Hello world.
Diffstat (limited to 'src/link.ld')
-rw-r--r--src/link.ld53
1 files changed, 38 insertions, 15 deletions
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 @@
1ENTRY(_start)
2
1SECTIONS 3SECTIONS
2{ 4{
3 . = 0x80000; /* Kernel load address for AArch64 */ 5 /* Starts at LOADER_ADDR. */
4 .text (READONLY) : { KEEP(*(.text.boot)) *(.text .text.* .gnu.linkonce.t*) } 6 . = 0x80000;
5 .rodata (READONLY) : { *(.rodata .rodata.* .gnu.linkonce.r*) } 7 __start = .;
6 PROVIDE(_data = .); 8 __text_start = .;
7 .data : { *(.data .data.* .gnu.linkonce.d*) } 9 .text :
8 .bss (NOLOAD) : { 10 {
9 . = ALIGN(16); 11 KEEP(*(.text.boot))
10 __bss_start = .; 12 *(.text)
11 *(.bss .bss.*)
12 *(COMMON)
13 __bss_end = .;
14 } 13 }
15 _end = .; 14 . = ALIGN(4096); /* align to page size */
15 __text_end = .;
16 16
17 /DISCARD/ : { *(.comment) *(.gnu*) *(.note*) *(.eh_frame*) } 17 __rodata_start = .;
18} 18 .rodata :
19__bss_size = (__bss_end - __bss_start); 19 {
20 *(.rodata)
21 }
22 . = ALIGN(4096); /* align to page size */
23 __rodata_end = .;
20 24
25 __data_start = .;
26 .data :
27 {
28 *(.data)
29 }
30 . = ALIGN(4096); /* align to page size */
31 __data_end = .;
32
33 __bss_start = .;
34 .bss :
35 {
36 bss = .;
37 *(.bss)
38 }
39 . = ALIGN(4096); /* align to page size */
40 __bss_end = .;
41 __bss_size = __bss_end - __bss_start;
42 __end = .;
43}