wires

summary refs log tree commit diff
path: root/src/Link.ld
blob: aec6d6a3b1b278db8922d6eedee4457fdadd0cf6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
ENTRY(_start)
OUTPUT_FORMAT("elf64-littleaarch64")

SECTIONS {
  __kernel_load_address = 0x80000;
  __stack_base = __kernel_load_address;

  . = __kernel_load_address;

  .init : {
    KEEP(*(.init))
  }

  .text : {
    *(.text)
    *(.text.*)
    *(.gnu.linkonce.t*)
  }

  . = ALIGN(CONSTANT(MAXPAGESIZE));
  __bss_start = .;
  .bss (NOLOAD) : {
    *(.bss*)
    *(.gnu.linkonce.b*)
    *(COMMON)
  }
  __bss_end = .;
  __bss_size = (__bss_end - __bss_start) / 8;

  . = ALIGN(CONSTANT(COMMONPAGESIZE));
  .rodata : { *(.rodata*) *(.gnu.linkonce.d*) }

  . = ALIGN(CONSTANT(COMMONPAGESIZE));
  .data : { *(.data*) *(.gnu.linkonce.d*) }
}