:: limine / common / linker_uefi_riscv64.ld.in 1.5 KB raw

1
OUTPUT_FORMAT(elf64-littleriscv)
2
ENTRY(_start)
3
4
PHDRS
5
{
6
    text    PT_LOAD    FLAGS(0x05);
7
    rodata  PT_LOAD    FLAGS(0x04);
8
    data    PT_LOAD    FLAGS(0x06);
9
    dynamic PT_DYNAMIC FLAGS(0x06);
10
}
11
12
SECTIONS
13
{
14
    . = 0;
15
    __slide = .;
16
    __image_base = ABSOLUTE(.);
17
    __image_size = ABSOLUTE(__image_end - __image_base);
18
19
    .text : {
20
        KEEP(*(.pe_header))
21
22
        . = ALIGN(0x1000);
23
24
        __text_start = ABSOLUTE(.);
25
        *(.text .text.*)
26
    } :text
27
28
    . = ALIGN(0x1000);
29
    __text_end = ABSOLUTE(.);
30
    __text_size = ABSOLUTE(__text_end - __text_start);
31
32
    .rodata : {
33
        __reloc_start = ABSOLUTE(.);
34
        *(.dummy_reloc)
35
36
        . = ALIGN(0x1000);
37
        __reloc_end = ABSOLUTE(.);
38
        __reloc_size = ABSOLUTE(__reloc_end - __reloc_start);
39
40
        __data_start = ABSOLUTE(.);
41
        *(.rodata .rodata.*)
42
        *(.srodata .srodata.*)
43
        *(.sdata2 .sdata2.*)
44
45
#ifdef LINKER_NOMAP
46
   full_map = .;
47
#else
48
   *(.full_map)
49
#endif
50
    } :rodata
51
52
    .data : {
53
   data_begin = .;
54
        *(.data .data.*)
55
        *(.sdata .sdata.*)
56
    } :data
57
58
    .bss : {
59
        *(.bss .bss.*)
60
        *(.sbss .sbss.*)
61
        *(COMMON)
62
   data_end = .;
63
    } :data
64
65
    .no_unwind : {
66
        *(.no_unwind)
67
    } :data
68
69
    .dynamic : {
70
        *(.dynamic)
71
    } :data :dynamic
72
73
    __data_end = ABSOLUTE(ALIGN(0x1000));
74
    __data_size = ABSOLUTE(__data_end - __data_start);
75
76
    __image_end = ABSOLUTE(ALIGN(0x1000));
77
78
    /DISCARD/ : {
79
        *(.eh_frame*)
80
        *(.note .note.*)
81
        *(.interp)
82
    }
83
}
tab: 248 wrap: offon