elf64_ia64.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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=" "