Add a build-id to the kernel
[akaros.git] / kern / arch / riscv / kernel.ld
1 /* Simple linker script for the ROS kernel.
2    See the GNU ld 'info' manual ("info ld") to learn the syntax. */
3
4 OUTPUT_ARCH("riscv")
5 ENTRY(_start)
6
7 SECTIONS
8 {
9         /* Link the kernel for 0xFFFFFFFF80002000, but load it at 0x2000) */
10
11         .text 0xFFFFFFFF80002000 : AT(0x2000) {
12                 *(.text .stub .text.* .gnu.linkonce.t.*)
13         }
14
15         PROVIDE(etext = .);     /* Define the 'etext' symbol to this value */
16
17         INCLUDE kern/linker_tables.ld
18         INCLUDE kern/build_id.ld
19
20         .rodata : {
21                 *(.rodata .rodata.* .gnu.linkonce.r.*)
22         }
23
24         /* Include debugging information in kernel memory */
25         .stab : {
26                 PROVIDE(stab = .);
27                 PROVIDE(__STAB_BEGIN__ = .);
28                 *(.stab);
29                 PROVIDE(estab = .);
30                 PROVIDE(__STAB_END__ = .);
31                 BYTE(0)         /* Force the linker to allocate space
32                                    for this section */
33         }
34
35         .stabstr : {
36                 PROVIDE(stabstr = .);
37                 PROVIDE(__STABSTR_BEGIN__ = .);
38                 *(.stabstr);
39                 PROVIDE(estabstr = .);
40                 PROVIDE(__STABSTR_END__ = .);
41                 BYTE(0)         /* Force the linker to allocate space
42                                    for this section */
43         }
44
45         /* Adjust the address for the data segment to the next page */
46         . = ALIGN(0x1000);
47
48         /* The data segment */
49         .data : {
50                 *(.data)
51                 *(.sdata)
52         }
53
54         .bss : {
55                 PROVIDE(__start_bss = .);
56                 *(.bss)
57                 *(.sbss)
58                 PROVIDE(__stop_bss = .);
59         }
60
61         PROVIDE(end = .);
62
63         /DISCARD/ : {
64                 *(.eh_frame .note.GNU-stack)
65         }
66 }