202e23565d
* 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.
129 lines
2.8 KiB
Scala
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
|