diff options
Diffstat (limited to 'binutils-2.21/ld/emulparams/elf64_ia64.sh')
-rw-r--r-- | binutils-2.21/ld/emulparams/elf64_ia64.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/binutils-2.21/ld/emulparams/elf64_ia64.sh b/binutils-2.21/ld/emulparams/elf64_ia64.sh new file mode 100644 index 0000000..7e5e54d --- /dev/null +++ b/binutils-2.21/ld/emulparams/elf64_ia64.sh @@ -0,0 +1,39 @@ +# See genscripts.sh and ../scripttempl/elf.sc for the meaning of these. +SCRIPT_NAME=elf +ELFSIZE=64 +TEMPLATE_NAME=elf32 +EXTRA_EM_FILE=ia64elf +OUTPUT_FORMAT="elf64-ia64-little" +ARCH=ia64 +MACHINE= +MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" +# FIXME: It interferes with linker relaxation. Disable it until it is +# fixed. +if test "0" = "1" -a -n "$CREATE_SHLIB"; then + # Optimize shared libraries for 16K page size + COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" +fi +TEXT_START_ADDR="0x4000000000000000" +DATA_ADDR="0x6000000000000000 + (. & (${MAXPAGESIZE} - 1))" +GENERATE_SHLIB_SCRIPT=yes +GENERATE_PIE_SCRIPT=yes +NOP=0x00300000010070000002000001000400 # a bundle full of nops +OTHER_GOT_SECTIONS=" + .IA_64.pltoff ${RELOCATING-0} : { *(.IA_64.pltoff) }" +OTHER_PLT_RELOC_SECTIONS=" + .rela.IA_64.pltoff ${RELOCATING-0} : { *(.rela.IA_64.pltoff) }" +OTHER_READONLY_SECTIONS= +OTHER_READWRITE_SECTIONS= +test -z "$CREATE_PIE" && OTHER_READONLY_SECTIONS=" + .opd ${RELOCATING-0} : { *(.opd) }" +test -n "$CREATE_PIE" && OTHER_READWRITE_SECTIONS=" + .opd ${RELOCATING-0} : { *(.opd) }" +test -n "$CREATE_PIE" && OTHER_GOT_RELOC_SECTIONS=" + .rela.opd ${RELOCATING-0} : { *(.rela.opd) }" +OTHER_READONLY_SECTIONS="${OTHER_READONLY_SECTIONS} + .IA_64.unwind_info ${RELOCATING-0} : { *(.IA_64.unwind_info${RELOCATING+* .gnu.linkonce.ia64unwi.*}) } + .IA_64.unwind ${RELOCATING-0} : { *(.IA_64.unwind${RELOCATING+* .gnu.linkonce.ia64unw.*}) }" +# Intel C++ compiler, prior to 9.0, puts small data in .ctors and +# .dtors. They have to be next to .sbss/.sbss2/.sdata/.sdata2. +SMALL_DATA_CTOR=" " +SMALL_DATA_DTOR=" " |