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