1b1994897Sopenharmony_ci/* Huawei Technologies Co.,Ltd. */
2b1994897Sopenharmony_ci
3b1994897Sopenharmony_ci/*
4b1994897Sopenharmony_ci    Panda linker script for placement of sections above 4GB.
5b1994897Sopenharmony_ci*/
6b1994897Sopenharmony_ciSECTIONS {
7b1994897Sopenharmony_ci    /*
8b1994897Sopenharmony_ci        ASAN reserves (mmap) addresses for its own needs,
9b1994897Sopenharmony_ci        so we have difference start addresses for asan and default buildings
10b1994897Sopenharmony_ci    */
11b1994897Sopenharmony_ci    . = DEFINED(LSFLAG_ASAN) ? 0x100100000000 : 0x100010000;
12b1994897Sopenharmony_ci
13b1994897Sopenharmony_ci    .interp : { *(.interp) }
14b1994897Sopenharmony_ci    .note : { *SORT(.note*) }
15b1994897Sopenharmony_ci    .hash : { *(.hash) *(.gnu.hash) }
16b1994897Sopenharmony_ci
17b1994897Sopenharmony_ci    .dynsym : { *(.dynsym) }
18b1994897Sopenharmony_ci    .dynstr : { *(.dynstr) }
19b1994897Sopenharmony_ci
20b1994897Sopenharmony_ci    .gnu.version : { *(.gnu.version*) }
21b1994897Sopenharmony_ci
22b1994897Sopenharmony_ci    .rela.dyn : {
23b1994897Sopenharmony_ci        *(.rela.init)
24b1994897Sopenharmony_ci        *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
25b1994897Sopenharmony_ci        *(.rela.fini)
26b1994897Sopenharmony_ci        *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
27b1994897Sopenharmony_ci        *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
28b1994897Sopenharmony_ci        *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
29b1994897Sopenharmony_ci        *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
30b1994897Sopenharmony_ci        *(.rela.ctors)
31b1994897Sopenharmony_ci        *(.rela.dtors)
32b1994897Sopenharmony_ci        *(.rela.got)
33b1994897Sopenharmony_ci        *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
34b1994897Sopenharmony_ci        *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
35b1994897Sopenharmony_ci        *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
36b1994897Sopenharmony_ci        *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
37b1994897Sopenharmony_ci        *(.rela.ifunc)
38b1994897Sopenharmony_ci    }
39b1994897Sopenharmony_ci    .rela.plt : {
40b1994897Sopenharmony_ci        *(.rela.plt)
41b1994897Sopenharmony_ci        PROVIDE_HIDDEN (__rela_iplt_start = .);
42b1994897Sopenharmony_ci        *(.rela.iplt)
43b1994897Sopenharmony_ci        PROVIDE_HIDDEN (__rela_iplt_end = .);
44b1994897Sopenharmony_ci    }
45b1994897Sopenharmony_ci
46b1994897Sopenharmony_ci    .init : { KEEP (*(SORT_NONE(.init))) }
47b1994897Sopenharmony_ci    .plt : { *(.plt) *(.iplt) }
48b1994897Sopenharmony_ci    .plt.got : { *(.plt.got) }
49b1994897Sopenharmony_ci    .plt.sec : { *(.plt.sec) }
50b1994897Sopenharmony_ci    .text : { *(.text .stub .text.*) }
51b1994897Sopenharmony_ci    .fini : { KEEP (*(SORT_NONE(.fini))) }
52b1994897Sopenharmony_ci
53b1994897Sopenharmony_ci    .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
54b1994897Sopenharmony_ci    .rodata1 : { *(.rodata1) }
55b1994897Sopenharmony_ci
56b1994897Sopenharmony_ci    .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
57b1994897Sopenharmony_ci    .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
58b1994897Sopenharmony_ci    
59b1994897Sopenharmony_ci    .preinit_array : {
60b1994897Sopenharmony_ci        PROVIDE_HIDDEN (__preinit_array_start = .);
61b1994897Sopenharmony_ci        KEEP (*(.preinit_array))
62b1994897Sopenharmony_ci        PROVIDE_HIDDEN (__preinit_array_end = .);
63b1994897Sopenharmony_ci    }
64b1994897Sopenharmony_ci    .init_array : {
65b1994897Sopenharmony_ci        PROVIDE_HIDDEN (__init_array_start = .);
66b1994897Sopenharmony_ci        KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
67b1994897Sopenharmony_ci        KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
68b1994897Sopenharmony_ci        PROVIDE_HIDDEN (__init_array_end = .);
69b1994897Sopenharmony_ci    }
70b1994897Sopenharmony_ci    .fini_array : {
71b1994897Sopenharmony_ci        PROVIDE_HIDDEN (__fini_array_start = .);
72b1994897Sopenharmony_ci        KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
73b1994897Sopenharmony_ci        KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
74b1994897Sopenharmony_ci        PROVIDE_HIDDEN (__fini_array_end = .);
75b1994897Sopenharmony_ci    }
76b1994897Sopenharmony_ci
77b1994897Sopenharmony_ci    .ctors : {
78b1994897Sopenharmony_ci        KEEP (*crtbegin.o(.ctors))
79b1994897Sopenharmony_ci        KEEP (*crtbegin?.o(.ctors))
80b1994897Sopenharmony_ci        KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
81b1994897Sopenharmony_ci        KEEP (*(SORT(.ctors.*)))
82b1994897Sopenharmony_ci        KEEP (*(.ctors))
83b1994897Sopenharmony_ci    }
84b1994897Sopenharmony_ci    .dtors : {
85b1994897Sopenharmony_ci        KEEP (*crtbegin.o(.dtors))
86b1994897Sopenharmony_ci        KEEP (*crtbegin?.o(.dtors))
87b1994897Sopenharmony_ci        KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
88b1994897Sopenharmony_ci        KEEP (*(SORT(.dtors.*)))
89b1994897Sopenharmony_ci        KEEP (*(.dtors))
90b1994897Sopenharmony_ci    }
91b1994897Sopenharmony_ci
92b1994897Sopenharmony_ci    .jcr : { KEEP (*(.jcr)) }
93b1994897Sopenharmony_ci
94b1994897Sopenharmony_ci    .dynamic : { *(.dynamic) }
95b1994897Sopenharmony_ci
96b1994897Sopenharmony_ci    .got : { *(.got) *(.igot) }
97b1994897Sopenharmony_ci    .got.plt : { *(.got.plt) *(.igot.plt) }
98b1994897Sopenharmony_ci
99b1994897Sopenharmony_ci    .data : { *(.data .data.* .gnu.linkonce.d.*) }
100b1994897Sopenharmony_ci    .data1 : { *(.data1) }
101b1994897Sopenharmony_ci    .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) }
102b1994897Sopenharmony_ci
103b1994897Sopenharmony_ci    .lbss : { *(.dynlbss) *(.lbss .lbss.* .gnu.linkonce.lb.*) *(LARGE_COMMON) }
104b1994897Sopenharmony_ci    .lrodata : { *(.lrodata .lrodata.* .gnu.linkonce.lr.*) }
105b1994897Sopenharmony_ci    .ldata : { *(.ldata .ldata.* .gnu.linkonce.l.*) }
106b1994897Sopenharmony_ci
107b1994897Sopenharmony_ci    .comment : { *(.comment) }
108b1994897Sopenharmony_ci}
109