ldscript.ia64 revision 83364
183364Sdfr/* $FreeBSD: head/sys/boot/ia64/ski/ldscript.ia64 83364 2001-09-12 08:34:27Z dfr $ */ 283364SdfrOUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little") 383364SdfrOUTPUT_ARCH(ia64) 483364SdfrENTRY(__start) 583364SdfrSECTIONS 683364Sdfr{ 783364Sdfr /* Read-only sections, merged into text segment: */ 883364Sdfr . = 0x100000; 983364Sdfr 1083364Sdfr .text : 1183364Sdfr { 1283364Sdfr *(.text.ivt) 1383364Sdfr . += 8192; 1483364Sdfr *(.text) 1583364Sdfr *(.stub) 1683364Sdfr /* .gnu.warning sections are handled specially by elf32.em. */ 1783364Sdfr *(.gnu.warning) 1883364Sdfr *(.gnu.linkonce.t*) 1983364Sdfr } =0x47ff041f 2083364Sdfr .interp : { *(.interp) } 2183364Sdfr .hash : { *(.hash) } 2283364Sdfr .dynsym : { *(.dynsym) } 2383364Sdfr .dynstr : { *(.dynstr) } 2483364Sdfr .gnu.version : { *(.gnu.version) } 2583364Sdfr .gnu.version_d : { *(.gnu.version_d) } 2683364Sdfr .gnu.version_r : { *(.gnu.version_r) } 2783364Sdfr .rel.text : 2883364Sdfr { *(.rel.text) *(.rel.gnu.linkonce.t*) } 2983364Sdfr .rela.text : 3083364Sdfr { *(.rela.text) *(.rela.gnu.linkonce.t*) } 3183364Sdfr .rel.data : 3283364Sdfr { *(.rel.data) *(.rel.gnu.linkonce.d*) } 3383364Sdfr .rela.data : 3483364Sdfr { *(.rela.data) *(.rela.gnu.linkonce.d*) } 3583364Sdfr .rel.rodata : 3683364Sdfr { *(.rel.rodata) *(.rel.gnu.linkonce.r*) } 3783364Sdfr .rela.rodata : 3883364Sdfr { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } 3983364Sdfr .rel.got : { *(.rel.got) } 4083364Sdfr .rela.got : { *(.rela.got) } 4183364Sdfr .rel.ctors : { *(.rel.ctors) } 4283364Sdfr .rela.ctors : { *(.rela.ctors) } 4383364Sdfr .rel.dtors : { *(.rel.dtors) } 4483364Sdfr .rela.dtors : { *(.rela.dtors) } 4583364Sdfr .rel.init : { *(.rel.init) } 4683364Sdfr .rela.init : { *(.rela.init) } 4783364Sdfr .rel.fini : { *(.rel.fini) } 4883364Sdfr .rela.fini : { *(.rela.fini) } 4983364Sdfr .rel.bss : { *(.rel.bss) } 5083364Sdfr .rela.bss : { *(.rela.bss) } 5183364Sdfr .rel.plt : { *(.rel.plt) } 5283364Sdfr .rela.plt : { *(.rela.plt) } 5383364Sdfr .init : { *(.init) } =0x47ff041f 5483364Sdfr _etext = .; 5583364Sdfr PROVIDE (etext = .); 5683364Sdfr .fini : { *(.fini) } =0x47ff041f 5783364Sdfr .rodata : { *(.rodata) *(.gnu.linkonce.r*) } 5883364Sdfr .rodata1 : { *(.rodata1) } 5983364Sdfr .reginfo : { *(.reginfo) } 6083364Sdfr /* Adjust the address for the data segment. We want to adjust up to 6183364Sdfr the same address within the page on the next page up. */ 6283364Sdfr . = .; 6383364Sdfr .data : 6483364Sdfr { 6583364Sdfr *(.data) 6683364Sdfr *(.gnu.linkonce.d*) 6783364Sdfr CONSTRUCTORS 6883364Sdfr } 6983364Sdfr .data1 : { *(.data1) } 7083364Sdfr .ctors : 7183364Sdfr { 7283364Sdfr *(.ctors) 7383364Sdfr } 7483364Sdfr .dtors : 7583364Sdfr { 7683364Sdfr *(.dtors) 7783364Sdfr } 7883364Sdfr .plt : { *(.plt) } 7983364Sdfr /* gp points at .got+(1<<21) */ 8083364Sdfr __gp = ALIGN(8) + 0x200000; 8183364Sdfr .got : { *(.got.plt) *(.got) } 8283364Sdfr .dynamic : { *(.dynamic) } 8383364Sdfr /* We want the small data sections together, so single-instruction offsets 8483364Sdfr can access them all, and initialized data all before uninitialized, so 8583364Sdfr we can shorten the on-disk segment size. */ 8683364Sdfr .sdata : { *(.sdata) } 8783364Sdfr _edata = .; 8883364Sdfr PROVIDE (edata = .); 8983364Sdfr __bss_start = .; 9083364Sdfr .sbss : { *(.sbss) *(.scommon) } 9183364Sdfr .bss : 9283364Sdfr { 9383364Sdfr *(.dynbss) 9483364Sdfr *(.bss) 9583364Sdfr *(COMMON) 9683364Sdfr } 9783364Sdfr . = ALIGN(64 / 8); 9883364Sdfr _end = . ; 9983364Sdfr PROVIDE (end = .); 10083364Sdfr /* Stabs debugging sections. */ 10183364Sdfr .stab 0 : { *(.stab) } 10283364Sdfr .stabstr 0 : { *(.stabstr) } 10383364Sdfr .stab.excl 0 : { *(.stab.excl) } 10483364Sdfr .stab.exclstr 0 : { *(.stab.exclstr) } 10583364Sdfr .stab.index 0 : { *(.stab.index) } 10683364Sdfr .stab.indexstr 0 : { *(.stab.indexstr) } 10783364Sdfr .comment 0 : { *(.comment) } 10883364Sdfr /* DWARF debug sections. 10983364Sdfr Symbols in the DWARF debugging sections are relative to the beginning 11083364Sdfr of the section so we begin them at 0. */ 11183364Sdfr /* DWARF 1 */ 11283364Sdfr .debug 0 : { *(.debug) } 11383364Sdfr .line 0 : { *(.line) } 11483364Sdfr /* GNU DWARF 1 extensions */ 11583364Sdfr .debug_srcinfo 0 : { *(.debug_srcinfo) } 11683364Sdfr .debug_sfnames 0 : { *(.debug_sfnames) } 11783364Sdfr /* DWARF 1.1 and DWARF 2 */ 11883364Sdfr .debug_aranges 0 : { *(.debug_aranges) } 11983364Sdfr .debug_pubnames 0 : { *(.debug_pubnames) } 12083364Sdfr /* DWARF 2 */ 12183364Sdfr .debug_info 0 : { *(.debug_info) } 12283364Sdfr .debug_abbrev 0 : { *(.debug_abbrev) } 12383364Sdfr .debug_line 0 : { *(.debug_line) } 12483364Sdfr .debug_frame 0 : { *(.debug_frame) } 12583364Sdfr .debug_str 0 : { *(.debug_str) } 12683364Sdfr .debug_loc 0 : { *(.debug_loc) } 12783364Sdfr .debug_macinfo 0 : { *(.debug_macinfo) } 12883364Sdfr /* SGI/MIPS DWARF 2 extensions */ 12983364Sdfr .debug_weaknames 0 : { *(.debug_weaknames) } 13083364Sdfr .debug_funcnames 0 : { *(.debug_funcnames) } 13183364Sdfr .debug_typenames 0 : { *(.debug_typenames) } 13283364Sdfr .debug_varnames 0 : { *(.debug_varnames) } 13383364Sdfr /* These must appear regardless of . */ 13483364Sdfr} 13583364Sdfr 136