old-cross-binutils/ld/scripttempl/ia64vms.sc
Nick Clifton 202e23565d * configure.ac (ia64*-*-*vms*): Add support for ld.
* configure: Regenerate.

	* scripttempl/ia64vms.sc: New file.
	* emultempl/vms.em (_before_parse): Support for ia64.
	(elf64-ia64-vms): New fragment for ia64.
	* emulparams/elf64_ia64_vms.sh: New file.
	* configure.tgt (ia64-*-*vms*): Add.
	* Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf64_ia64_vms.c
	(eelf64_ia64_vms.c): New rule.
	* Makefile.in: Regenerate.

	* elflink.c (elf_link_output_extsym): Add a guard.
	(bfd_elf_final_link): Remove assertion.
	(bfd_elf_final_link): Add a guard.
	* elfnn-ia64.c (INCLUDE_IA64_VMS): Removed.
	(elfNN_vms_section_from_shdr, elfNN_vms_object_p)
	(elfNN_vms_post_process_headers, elfNN_vms_section_processing)
	(elfNN_vms_final_write_processing, elfNN_vms_close_and_cleanup):
	Remove.
	(elfNN-ia64-vms target): Move to ...
	* elf64-ia64-vms.c: New file.
	* configure.in (bfd_elf64_ia64_vms_vec): Add elf64-ia64-vms.lo
	* Makefile.am (BFD64_BACKENDS): Add elf64-ia64-vms.lo.
	(BFD64_BACKENDS_CFILES): Ad elf64-ia64-vms.c.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
2012-04-12 07:35:07 +00:00

129 lines
2.8 KiB
Scala

# Linker script for Itanium VMS systems.
# Tristan Gingold <gingold@adacore.com>.
PAGESIZE=0x10000
BLOCKSIZE=0x200
cat <<EOF
OUTPUT_FORMAT("${OUTPUT_FORMAT}")
${LIB_SEARCH_DIRS}
ENTRY(__entry)
SECTIONS
{
/* RW segment. */
${RELOCATING+. = ${PAGESIZE};}
\$DATA\$ ALIGN (${BLOCKSIZE}) : {
*(\$DATA\$ .data .data.*)
*(\$BSS\$ .bss)
}
/* Code segment. Note: name must be \$CODE\$ */
${RELOCATING+. = ALIGN (${PAGESIZE});}
\$CODE\$ ALIGN (${BLOCKSIZE}) : {
*(\$CODE\$ .text)
}
.plt ALIGN (8) : {
*(.plt)
}
/* RO segment. */
${RELOCATING+. = ALIGN (${PAGESIZE});}
/* RO initialized data. */
\$LITERAL\$ ALIGN (${BLOCKSIZE}) : {
*(\$LITERAL\$)
*(\$READONLY\$ .rodata)
*(.jcr)
*(.ctors)
*(.dtors)
*(.opd)
*(.gcc_except_table)
/* LIB$INITIALIZE stuff. */
*(LIB\$INITIALIZDZ) /* Start marker. */
*(LIB\$INITIALIZD_) /* Hi priority. */
*(LIB\$INITIALIZE) /* User. */
*(LIB\$INITIALIZE$) /* End marker. */
}
/* Short segment. */
${RELOCATING+. = ALIGN (${PAGESIZE});}
.srodata : {
*(.srodata)
}
.got ALIGN (8) : {
*(.got)
}
.IA_64.pltoff ALIGN (16) : {
*(.IA_64.pltoff)
}
\$TFR\$ ALIGN (16) : {
/* Tranfer vector. */
__entry = .;
*(.transfer)
}
${RELOCATING+. = ALIGN (${PAGESIZE});}
\$RW_SHORT\$ ALIGN (${BLOCKSIZE}) : {
*(.sdata .sdata.*)
*(.sbss)
}
${RELOCATING+. = ALIGN (${PAGESIZE});}
.IA_64.unwind ALIGN (${BLOCKSIZE}) : {
*(.IA_64.unwind .IA_64.unwind.*)
}
.IA_64.unwind_info ALIGN (8) : {
*(.IA_64.unwind_info .IA_64.unwind_info.*)
}
${RELOCATING+. = ALIGN (${PAGESIZE});}
.dynamic /* \$DYNAMIC\$ */ ALIGN (${BLOCKSIZE}) : {
*(.dynamic)
*(.vmsdynstr)
*(.fixups)
}
${RELOCATING+. = ALIGN (${PAGESIZE});}
.dynstr : { *(.dynstr) }
.dynsym ${RELOCATING-0} : { *(.dynsym) }
.rela.got : { *(.rela.got) }
.got.plt : { *(.got.plt) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version : { *(.gnu.version) }
.gnu.version_r : { *(.gnu.version_r) }
.rela.IA_64.pltoff : { *(.rela.IA_64.pltoff) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info${RELOCATING+ .gnu.linkonce.wi.*}) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.trace_info 0 : { *(.trace_info) }
.trace_abbrev 0 : { *(.trace_abbrev) }
.trace_aranges 0 : { *(.trace_aranges) }
/* DWARF 3 */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges) }
.note : { *(.vms.note) }
/DISCARD/ : { *(.note) }
}
EOF