123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- # Linker script for Itanium VMS systems.
- # Tristan Gingold <gingold@adacore.com>.
- #
- # Copyright (C) 2014-2022 Free Software Foundation, Inc.
- #
- # Copying and distribution of this file, with or without modification,
- # are permitted in any medium without royalty provided the copyright
- # notice and this notice are preserved.
- # Using an empty script for ld -r is better than mashing together
- # sections. This hack likely leaves ld -Ur broken.
- test -n "${RELOCATING}" || exit 0
- PAGESIZE=0x10000
- BLOCKSIZE=0x200
- cat <<EOF
- /* Copyright (C) 2014-2022 Free Software Foundation, Inc.
- Copying and distribution of this script, with or without modification,
- are permitted in any medium without royalty provided the copyright
- notice and this notice are preserved. */
- OUTPUT_FORMAT("${OUTPUT_FORMAT}")
- ${LIB_SEARCH_DIRS}
- ENTRY(__entry)
- SECTIONS
- {
- /* RW segment. */
- ${RELOCATING+. = ${PAGESIZE};}
- \$DATA\$ ALIGN (${BLOCKSIZE}) : {
- *(\$DATA\$ .data .data.*)
- *(\$BSS\$ .bss .bss.*)
- }
- /* Code segment. Note: name must be \$CODE\$ */
- ${RELOCATING+. = ALIGN (${PAGESIZE});}
- \$CODE\$ ALIGN (${BLOCKSIZE}) : {
- *(\$CODE\$ .text .text.*)
- }
- .plt ALIGN (8) : {
- *(.plt)
- }
- /* RO segment. */
- ${RELOCATING+. = ALIGN (${PAGESIZE});}
- /* RO initialized data. */
- \$LITERAL\$ ALIGN (${BLOCKSIZE}) : {
- *(\$LITERAL\$)
- *(\$READONLY\$ .rodata .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 .srodata.*)
- }
- .got ALIGN (8) : {
- *(.got)
- }
- .IA_64.pltoff ALIGN (16) : {
- *(.IA_64.pltoff)
- }
- \$TFR\$ ALIGN (16) : {
- /* Transfer vector. */
- __entry = .;
- *(.transfer)
- }
- ${RELOCATING+. = ALIGN (${PAGESIZE});}
- \$RW_SHORT\$ ALIGN (${BLOCKSIZE}) : {
- *(.sdata .sdata.*)
- *(.sbss .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) }
- EOF
- . $srcdir/scripttempl/DWARF.sc
- cat <<EOF
- .note : { *(.vms.note) }
- /DISCARD/ : { *(.note) *(.vms_display_name_info) }
- }
- EOF
|