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