1217044Snwhitehorn/* $FreeBSD: releng/10.3/sys/boot/powerpc/ps3/ldscript.powerpc 217657 2011-01-20 19:26:28Z imp $ */ 2217044Snwhitehorn 3217044SnwhitehornOUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc") 4217044SnwhitehornOUTPUT_ARCH(powerpc:common) 5217044SnwhitehornENTRY(_start) 6217044SnwhitehornSEARCH_DIR(/usr/lib); 7217044SnwhitehornPROVIDE (__stack = 0); 8217044SnwhitehornSECTIONS 9217044Snwhitehorn{ 10217044Snwhitehorn /* Read-only sections, merged into text segment: */ 11217044Snwhitehorn . = 0x0; 12217044Snwhitehorn .text : 13217044Snwhitehorn { 14217044Snwhitehorn *(.text) 15217044Snwhitehorn /* .gnu.warning sections are handled specially by elf32.em. */ 16217044Snwhitehorn *(.gnu.warning) 17217044Snwhitehorn *(.gnu.linkonce.t*) 18217044Snwhitehorn } =0 19217044Snwhitehorn _etext = .; 20217044Snwhitehorn .interp : { *(.interp) } 21217044Snwhitehorn .hash : { *(.hash) } 22217044Snwhitehorn .dynsym : { *(.dynsym) } 23217044Snwhitehorn .dynstr : { *(.dynstr) } 24217044Snwhitehorn .gnu.version : { *(.gnu.version) } 25217044Snwhitehorn .gnu.version_d : { *(.gnu.version_d) } 26217044Snwhitehorn .gnu.version_r : { *(.gnu.version_r) } 27217044Snwhitehorn .rela.text : 28217044Snwhitehorn { *(.rela.text) *(.rela.gnu.linkonce.t*) } 29217044Snwhitehorn .rela.data : 30217044Snwhitehorn { *(.rela.data) *(.rela.gnu.linkonce.d*) } 31217044Snwhitehorn .rela.rodata : 32217044Snwhitehorn { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } 33217044Snwhitehorn .rela.got : { *(.rela.got) } 34217044Snwhitehorn .rela.got1 : { *(.rela.got1) } 35217044Snwhitehorn .rela.got2 : { *(.rela.got2) } 36217044Snwhitehorn .rela.ctors : { *(.rela.ctors) } 37217044Snwhitehorn .rela.dtors : { *(.rela.dtors) } 38217044Snwhitehorn .rela.init : { *(.rela.init) } 39217044Snwhitehorn .rela.fini : { *(.rela.fini) } 40217044Snwhitehorn .rela.bss : { *(.rela.bss) } 41217044Snwhitehorn .rela.plt : { *(.rela.plt) } 42217044Snwhitehorn .rela.sbss : { *(.rela.sbss) } 43217044Snwhitehorn .rela.sbss2 : { *(.rela.sbss2) } 44217044Snwhitehorn .text : 45217044Snwhitehorn { 46217044Snwhitehorn *(.text) 47217044Snwhitehorn /* .gnu.warning sections are handled specially by elf32.em. */ 48217044Snwhitehorn *(.gnu.warning) 49217044Snwhitehorn *(.gnu.linkonce.t*) 50217044Snwhitehorn } =0 51217044Snwhitehorn _etext = .; 52217044Snwhitehorn PROVIDE (etext = .); 53217044Snwhitehorn .init : { *(.init) } =0 54217044Snwhitehorn .fini : { *(.fini) } =0 55217044Snwhitehorn .rodata : { *(.rodata) *(.gnu.linkonce.r*) } 56217044Snwhitehorn .rodata1 : { *(.rodata1) } 57217044Snwhitehorn .sbss2 : { *(.sbss2) } 58217044Snwhitehorn /* Adjust the address for the data segment to the next page up. */ 59217044Snwhitehorn . = ((. + 0x1000) & ~(0x1000 - 1)); 60217044Snwhitehorn .data : 61217044Snwhitehorn { 62217044Snwhitehorn *(.data) 63217044Snwhitehorn *(.gnu.linkonce.d*) 64217044Snwhitehorn CONSTRUCTORS 65217044Snwhitehorn } 66217044Snwhitehorn .data1 : { *(.data1) } 67217044Snwhitehorn .got1 : { *(.got1) } 68217044Snwhitehorn .dynamic : { *(.dynamic) } 69217044Snwhitehorn /* Put .ctors and .dtors next to the .got2 section, so that the pointers 70217044Snwhitehorn get relocated with -mrelocatable. Also put in the .fixup pointers. 71217044Snwhitehorn The current compiler no longer needs this, but keep it around for 2.7.2 */ 72217044Snwhitehorn PROVIDE (_GOT2_START_ = .); 73217044Snwhitehorn .got2 : { *(.got2) } 74217044Snwhitehorn PROVIDE (__CTOR_LIST__ = .); 75217044Snwhitehorn .ctors : { *(.ctors) } 76217044Snwhitehorn PROVIDE (__CTOR_END__ = .); 77217044Snwhitehorn PROVIDE (__DTOR_LIST__ = .); 78217044Snwhitehorn .dtors : { *(.dtors) } 79217044Snwhitehorn PROVIDE (__DTOR_END__ = .); 80217044Snwhitehorn PROVIDE (_FIXUP_START_ = .); 81217044Snwhitehorn .fixup : { *(.fixup) } 82217044Snwhitehorn PROVIDE (_FIXUP_END_ = .); 83217044Snwhitehorn PROVIDE (_GOT2_END_ = .); 84217044Snwhitehorn PROVIDE (_GOT_START_ = .); 85217044Snwhitehorn .got : { *(.got) } 86217044Snwhitehorn .got.plt : { *(.got.plt) } 87217044Snwhitehorn PROVIDE (_GOT_END_ = .); 88217044Snwhitehorn _edata = .; 89217044Snwhitehorn PROVIDE (edata = .); 90217044Snwhitehorn .sbss : 91217044Snwhitehorn { 92217044Snwhitehorn PROVIDE (__sbss_start = .); 93217044Snwhitehorn *(.sbss) 94217044Snwhitehorn *(.scommon) 95217044Snwhitehorn *(.dynsbss) 96217044Snwhitehorn PROVIDE (__sbss_end = .); 97217044Snwhitehorn } 98217044Snwhitehorn .plt : { *(.plt) } 99217044Snwhitehorn .bss : 100217044Snwhitehorn { 101217044Snwhitehorn PROVIDE (__bss_start = .); 102217044Snwhitehorn *(.dynbss) 103217044Snwhitehorn *(.bss) 104217044Snwhitehorn *(COMMON) 105217044Snwhitehorn } 106217044Snwhitehorn . = ALIGN(4096); 107217044Snwhitehorn _end = . ; 108217044Snwhitehorn PROVIDE (end = .); 109217044Snwhitehorn} 110217044Snwhitehorn 111