summaryrefslogtreecommitdiff
path: root/ld/scripttempl
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2012-04-12 07:34:56 +0000
committerNick Clifton <nickc@redhat.com>2012-04-12 07:34:56 +0000
commit6733cb337d3a3d1898d6453d65c1ca2df678b614 (patch)
tree7bfa6924e56c3e05c582c98a3d4657b75900e84c /ld/scripttempl
parent929e6407764b144f5ebc0f2734a58dc3d368f305 (diff)
downloadbinutils-redhat-6733cb337d3a3d1898d6453d65c1ca2df678b614.tar.gz
* 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.
Diffstat (limited to 'ld/scripttempl')
-rw-r--r--ld/scripttempl/ia64vms.sc129
1 files changed, 129 insertions, 0 deletions
diff --git a/ld/scripttempl/ia64vms.sc b/ld/scripttempl/ia64vms.sc
new file mode 100644
index 0000000000..b0b1c42a17
--- /dev/null
+++ b/ld/scripttempl/ia64vms.sc
@@ -0,0 +1,129 @@
+# 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