elf32_x86_64.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. source_sh ${srcdir}/emulparams/plt_unwind.sh
  2. source_sh ${srcdir}/emulparams/extern_protected_data.sh
  3. source_sh ${srcdir}/emulparams/dynamic_undefined_weak.sh
  4. source_sh ${srcdir}/emulparams/reloc_overflow.sh
  5. source_sh ${srcdir}/emulparams/call_nop.sh
  6. source_sh ${srcdir}/emulparams/cet.sh
  7. source_sh ${srcdir}/emulparams/x86-report-relative.sh
  8. source_sh ${srcdir}/emulparams/x86-64-level.sh
  9. source_sh ${srcdir}/emulparams/static.sh
  10. source_sh ${srcdir}/emulparams/dt-relr.sh
  11. SCRIPT_NAME=elf
  12. ELFSIZE=32
  13. OUTPUT_FORMAT="elf32-x86-64"
  14. NO_REL_RELOCS=yes
  15. TEXT_START_ADDR=0x400000
  16. MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
  17. COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
  18. ARCH="i386:x64-32"
  19. MACHINE=
  20. TEMPLATE_NAME=elf
  21. EXTRA_EM_FILE="elf-x86"
  22. GENERATE_SHLIB_SCRIPT=yes
  23. GENERATE_PIE_SCRIPT=yes
  24. NO_SMALL_DATA=yes
  25. LARGE_SECTIONS=yes
  26. LARGE_BSS_AFTER_BSS=
  27. SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 24 ? 24 : 0"
  28. IREL_IN_PLT=
  29. # These sections are placed right after .plt section.
  30. OTHER_PLT_SECTIONS="
  31. .plt.got ${RELOCATING-0} : { *(.plt.got) }
  32. .plt.sec ${RELOCATING-0} : { *(.plt.sec) }
  33. "
  34. if [ "x${host}" = "x${target}" ]; then
  35. case " $EMULATION_LIBPATH " in
  36. *" ${EMULATION_NAME} "*)
  37. NATIVE=yes
  38. esac
  39. fi
  40. # Linux modifies the default library search path to first include
  41. # a 32-bit specific directory.
  42. case "$target" in
  43. x86_64*-linux*|i[3-7]86-*-linux-*)
  44. case "$EMULATION_NAME" in
  45. *32*)
  46. LIBPATH_SUFFIX=x32
  47. LIBPATH_SUFFIX_SKIP=64
  48. ;;
  49. *64*)
  50. LIBPATH_SUFFIX=64
  51. ;;
  52. esac
  53. ;;
  54. esac