elf_x86_64.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. . ${srcdir}/emulparams/plt_unwind.sh
  2. . ${srcdir}/emulparams/extern_protected_data.sh
  3. SCRIPT_NAME=elf
  4. ELFSIZE=64
  5. OUTPUT_FORMAT="elf64-x86-64"
  6. NO_REL_RELOCS=yes
  7. TEXT_START_ADDR=0x400000
  8. MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
  9. COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
  10. ARCH="i386:x86-64"
  11. MACHINE=
  12. TEMPLATE_NAME=elf32
  13. GENERATE_SHLIB_SCRIPT=yes
  14. GENERATE_PIE_SCRIPT=yes
  15. NO_SMALL_DATA=yes
  16. LARGE_SECTIONS=yes
  17. LARGE_BSS_AFTER_BSS=
  18. SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
  19. IREL_IN_PLT=
  20. # Reuse TINY_READONLY_SECTION which is placed right after .plt section.
  21. TINY_READONLY_SECTION="
  22. .plt.got ${RELOCATING-0} : { *(.plt.got) }
  23. .plt.bnd ${RELOCATING-0} : { *(.plt.bnd) }
  24. "
  25. if [ "x${host}" = "x${target}" ]; then
  26. case " $EMULATION_LIBPATH " in
  27. *" ${EMULATION_NAME} "*)
  28. NATIVE=yes
  29. esac
  30. fi
  31. # Linux/Solaris modify the default library search path to first include
  32. # a 64-bit specific directory.
  33. case "$target" in
  34. x86_64*-linux*|i[3-7]86-*-linux-*)
  35. case "$EMULATION_NAME" in
  36. *64*)
  37. LIBPATH_SUFFIX=64
  38. PARSE_AND_LIST_OPTIONS_BNDPLT='
  39. fprintf (file, _("\
  40. -z bndplt Always generate BND prefix in PLT entries\n"));
  41. '
  42. PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT='
  43. else if (strcmp (optarg, "bndplt") == 0)
  44. link_info.bndplt = TRUE;
  45. '
  46. PARSE_AND_LIST_OPTIONS="$PARSE_AND_LIST_OPTIONS $PARSE_AND_LIST_OPTIONS_BNDPLT"
  47. PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z $PARSE_AND_LIST_ARGS_CASE_Z_BNDPLT"
  48. ;;
  49. esac
  50. ;;
  51. *-*-solaris2*)
  52. LIBPATH_SUFFIX=/amd64
  53. ELF_INTERPRETER_NAME=\"/lib/amd64/ld.so.1\"
  54. ;;
  55. esac