1 1.1.10.2 tls /* Default linker script, for normal executables */ 2 1.1.10.2 tls OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc", 3 1.1.10.2 tls "elf64-powerpc") 4 1.1.10.2 tls OUTPUT_ARCH(powerpc:common64) 5 1.1.10.2 tls ENTRY(_start) 6 1.1.10.2 tls SECTIONS 7 1.1.10.2 tls { 8 1.1.10.2 tls /* Read-only sections, merged into text segment. Assumes the 9 1.1.10.2 tls kernel Makefile sets the start address via -Ttext. */ 10 1.1.10.2 tls .text : 11 1.1.10.2 tls { 12 1.1.10.2 tls PROVIDE_HIDDEN (__eprol = .); 13 1.1.10.2 tls *(.text) 14 1.1.10.2 tls *(.text.unlikely .text.*_unlikely) 15 1.1.10.2 tls *(.text.exit .text.exit.*) 16 1.1.10.2 tls *(.text.startup .text.startup.*) 17 1.1.10.2 tls *(.text.hot .text.hot.*) 18 1.1.10.2 tls *(.text.* .gnu.linkonce.t.*) 19 1.1.10.2 tls __stub_start = .; 20 1.1.10.2 tls *(.stub) 21 1.1.10.2 tls __stub_end = .; 22 1.1.10.2 tls __stub_pmap_start = .; 23 1.1.10.2 tls *(.stub.pmap) 24 1.1.10.2 tls __stub_pmap_end = .; 25 1.1.10.2 tls /* .gnu.warning sections are handled specially by elf32.em. */ 26 1.1.10.2 tls *(.gnu.warning) 27 1.1.10.2 tls *(.glink) 28 1.1.10.2 tls } =0x60000000 29 1.1.10.2 tls _etext = .; 30 1.1.10.2 tls PROVIDE (__etext = .); 31 1.1.10.2 tls PROVIDE (_etext = .); 32 1.1.10.2 tls PROVIDE (etext = .); 33 1.1.10.2 tls .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } 34 1.1.10.2 tls .rodata1 : { *(.rodata1) } 35 1.1.10.2 tls .sdata2 : 36 1.1.10.2 tls { 37 1.1.10.2 tls *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) 38 1.1.10.2 tls } 39 1.1.10.2 tls .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) } 40 1.1.10.2 tls .jcr : { KEEP (*(.jcr)) } 41 1.1.10.2 tls . = DATA_SEGMENT_RELRO_END (0, .); 42 1.1.10.2 tls .data : 43 1.1.10.2 tls { 44 1.1.10.2 tls _fdata = .; 45 1.1.10.2 tls *(.data .data.* .gnu.linkonce.d.*) 46 1.1.10.2 tls SORT(CONSTRUCTORS) 47 1.1.10.2 tls } 48 1.1.10.2 tls .data1 : { *(.data1) } 49 1.1.10.2 tls .toc1 : ALIGN(8) { *(.toc1) } 50 1.1.10.2 tls .opd : ALIGN(8) { KEEP (*(.opd)) } 51 1.1.10.2 tls .branch_lt : ALIGN(8) { *(.branch_lt) } 52 1.1.10.2 tls .got : ALIGN(8) { *(.got .toc) } 53 1.1.10.2 tls /* We want the small data sections together, so single-instruction offsets 54 1.1.10.2 tls can access them all, and initialized data all before uninitialized, so 55 1.1.10.2 tls we can shorten the on-disk segment size. */ 56 1.1.10.2 tls . = ALIGN(64); /* COHERENCY UNIT */ 57 1.1.10.2 tls .data.cacheline_aligned : { *(.data.cacheline_aligned) } 58 1.1.10.2 tls . = ALIGN(64); /* COHERENCY UNIT */ 59 1.1.10.2 tls .data.read_mostly : { *(.data.read_mostly) } 60 1.1.10.2 tls . = ALIGN(64); /* COHERENCY UNIT */ 61 1.1.10.2 tls .sdata : 62 1.1.10.2 tls { 63 1.1.10.2 tls *(.sdata .sdata.* .gnu.linkonce.s.*) 64 1.1.10.2 tls } 65 1.1.10.2 tls _edata = .; PROVIDE (edata = .); 66 1.1.10.2 tls __bss_start = .; 67 1.1.10.2 tls .tocbss : ALIGN(8) { *(.tocbss)} 68 1.1.10.2 tls .sbss : 69 1.1.10.2 tls { 70 1.1.10.2 tls *(.dynsbss) 71 1.1.10.2 tls *(.sbss .sbss.* .gnu.linkonce.sb.*) 72 1.1.10.2 tls *(.scommon) 73 1.1.10.2 tls } 74 1.1.10.2 tls .plt : { *(.plt) } 75 1.1.10.2 tls .iplt : { *(.iplt) } 76 1.1.10.2 tls .bss : 77 1.1.10.2 tls { 78 1.1.10.3 jdolecek *(.dynbss) 79 1.1.10.3 jdolecek *(.bss .bss.* .gnu.linkonce.b.*) 80 1.1.10.3 jdolecek *(COMMON) 81 1.1.10.3 jdolecek /* Align here to ensure that the .bss section occupies space up to 82 1.1.10.3 jdolecek _end. Align after .bss to ensure correct alignment even if the 83 1.1.10.3 jdolecek .bss section disappears because there are no input sections. 84 1.1.10.3 jdolecek FIXME: Why do we need it? When there is no .bss section, we don't 85 1.1.10.3 jdolecek pad the .data section. */ 86 1.1.10.3 jdolecek . = ALIGN(. != 0 ? 64 / 8 : 1); 87 1.1.10.2 tls } 88 1.1.10.2 tls . = ALIGN(64 / 8); 89 1.1.10.2 tls . = ALIGN(64 / 8); 90 1.1.10.2 tls _end = .; PROVIDE (end = .); 91 1.1.10.2 tls . = DATA_SEGMENT_END (.); 92 1.1.10.2 tls } 93