:: limine / common / linker_uefi_loongarch64.ld.in 1.4 KB raw

1
OUTPUT_FORMAT(elf64-loongarch)
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
43
#ifdef LINKER_NOMAP
44
   full_map = .;
45
#else
46
   *(.full_map)
47
#endif
48
    } :rodata
49
50
    .data : {
51
   data_begin = .;
52
        *(.data .data.*)
53
    } :data
54
55
    .bss : {
56
        *(.bss .bss.*)
57
        *(COMMON)
58
   data_end = .;
59
    } :data
60
61
    .no_unwind : {
62
        *(.no_unwind)
63
    } :data
64
65
    .dynamic : {
66
        *(.dynamic)
67
    } :data :dynamic
68
69
    __data_end = ABSOLUTE(ALIGN(0x1000));
70
    __data_size = ABSOLUTE(__data_end - __data_start);
71
72
    __image_end = ABSOLUTE(ALIGN(0x1000));
73
74
    /DISCARD/ : {
75
        *(.eh_frame*)
76
        *(.note .note.*)
77
        *(.interp)
78
    }
79
}
tab: 248 wrap: offon