1
2
3
4
5
6 OUTPUT_ARCH(riscv)
7
8 SECTIONS
9 {
10 . = SIZEOF_HEADERS;
11
12 .hash : { *(.hash) } :text
13 .gnu.hash : { *(.gnu.hash) }
14 .dynsym : { *(.dynsym) }
15 .dynstr : { *(.dynstr) }
16 .gnu.version : { *(.gnu.version) }
17 .gnu.version_d : { *(.gnu.version_d) }
18 .gnu.version_r : { *(.gnu.version_r) }
19
20 .note : { *(.note.*) } :text :note
21 .dynamic : { *(.dynamic) } :text :dynamic
22
23 .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr
24 .eh_frame : { KEEP (*(.eh_frame)) } :text
25
26 .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
27
28
29
30
31
32
33
34 . = 0x800;
35 .text : { *(.text .text.*) } :text
36
37 .data : {
38 *(.got.plt) *(.got)
39 *(.data .data.* .gnu.linkonce.d.*)
40 *(.dynbss)
41 *(.bss .bss.* .gnu.linkonce.b.*)
42 }
43 }
44
45
46
47
48
49 PHDRS
50 {
51 text PT_LOAD FLAGS(5) FILEHDR PHDRS;
52 dynamic PT_DYNAMIC FLAGS(4);
53 note PT_NOTE FLAGS(4);
54 eh_frame_hdr PT_GNU_EH_FRAME;
55 }
56
57
58
59
60 VERSION
61 {
62 LINUX_4.15 {
63 global:
64 __vdso_rt_sigreturn;
65 __vdso_gettimeofday;
66 __vdso_clock_gettime;
67 __vdso_clock_getres;
68 __vdso_getcpu;
69 __vdso_flush_icache;
70 local: *;
71 };
72 }