| 1 | # See genscripts.sh and ../scripttempl/elf.sc for the meaning of these. |
| 2 | SCRIPT_NAME=elf |
| 3 | ELFSIZE=64 |
| 4 | TEMPLATE_NAME=elf32 |
| 5 | EXTRA_EM_FILE=ia64elf |
| 6 | OUTPUT_FORMAT="elf64-ia64-little" |
| 7 | ARCH=ia64 |
| 8 | MACHINE= |
| 9 | MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" |
| 10 | # FIXME: It interferes with linker relaxation. Disable it until it is |
| 11 | # fixed. |
| 12 | if test "0" = "1" -a -n "$CREATE_SHLIB"; then |
| 13 | # Optimize shared libraries for 16K page size |
| 14 | COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" |
| 15 | fi |
| 16 | TEXT_START_ADDR="0x4000000000000000" |
| 17 | DATA_ADDR="0x6000000000000000 + (. & (${MAXPAGESIZE} - 1))" |
| 18 | GENERATE_SHLIB_SCRIPT=yes |
| 19 | GENERATE_PIE_SCRIPT=yes |
| 20 | NOP=0x00300000010070000002000001000400 # a bundle full of nops |
| 21 | OTHER_GOT_SECTIONS=" |
| 22 | .IA_64.pltoff ${RELOCATING-0} : { *(.IA_64.pltoff) }" |
| 23 | OTHER_PLT_RELOC_SECTIONS=" |
| 24 | .rela.IA_64.pltoff ${RELOCATING-0} : { *(.rela.IA_64.pltoff) }" |
| 25 | OTHER_READONLY_SECTIONS= |
| 26 | OTHER_READWRITE_SECTIONS= |
| 27 | test -z "$CREATE_PIE" && OTHER_READONLY_SECTIONS=" |
| 28 | .opd ${RELOCATING-0} : { *(.opd) }" |
| 29 | test -n "$CREATE_PIE" && OTHER_READWRITE_SECTIONS=" |
| 30 | .opd ${RELOCATING-0} : { *(.opd) }" |
| 31 | test -n "$CREATE_PIE" && OTHER_GOT_RELOC_SECTIONS=" |
| 32 | .rela.opd ${RELOCATING-0} : { *(.rela.opd) }" |
| 33 | OTHER_READONLY_SECTIONS="${OTHER_READONLY_SECTIONS} |
| 34 | .IA_64.unwind_info ${RELOCATING-0} : { *(.IA_64.unwind_info${RELOCATING+* .gnu.linkonce.ia64unwi.*}) } |
| 35 | .IA_64.unwind ${RELOCATING-0} : { *(.IA_64.unwind${RELOCATING+* .gnu.linkonce.ia64unw.*}) }" |
| 36 | # Intel C++ compiler, prior to 9.0, puts small data in .ctors and |
| 37 | # .dtors. They have to be next to .sbss/.sbss2/.sdata/.sdata2. |
| 38 | SMALL_DATA_CTOR=" " |
| 39 | SMALL_DATA_DTOR=" " |