elf32ppccommon.sh 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # The PLT-agnostic parts of a generic 32-bit ELF PowerPC target. Included by:
  2. # elf32ppc.sh elf32ppcvxworks.sh elf64ppc.sh
  3. source_sh ${srcdir}/emulparams/dynamic_undefined_weak.sh
  4. TEMPLATE_NAME=elf
  5. GENERATE_SHLIB_SCRIPT=yes
  6. GENERATE_PIE_SCRIPT=yes
  7. SCRIPT_NAME=elf
  8. OUTPUT_FORMAT="elf32-powerpc"
  9. NO_REL_RELOCS=yes
  10. TEXT_START_ADDR=0x01800000
  11. MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
  12. COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
  13. ARCH=powerpc:common
  14. MACHINE=
  15. EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);'
  16. if test -z "${CREATE_SHLIB}"; then
  17. SBSS_START_SYMBOLS="PROVIDE (__sbss_start = .); PROVIDE (___sbss_start = .);"
  18. SBSS_END_SYMBOLS="PROVIDE (__sbss_end = .); PROVIDE (___sbss_end = .);"
  19. else
  20. unset SDATA_START_SYMBOLS
  21. unset SDATA2_START_SYMBOLS
  22. unset SBSS_START_SYMBOLS
  23. unset SBSS_END_SYMBOLS
  24. fi
  25. OTHER_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__end = .${CREATE_SHLIB+)};"
  26. OTHER_RELRO_SECTIONS="
  27. .fixup ${RELOCATING-0} : { *(.fixup) }
  28. .got1 ${RELOCATING-0} : { *(.got1) }
  29. .got2 ${RELOCATING-0} : { *(.got2) }
  30. "
  31. OTHER_GOT_RELOC_SECTIONS="
  32. .rela.got1 ${RELOCATING-0} : { *(.rela.got1) }
  33. .rela.got2 ${RELOCATING-0} : { *(.rela.got2) }
  34. "
  35. # Treat a host that matches the target with the possible exception of "64"
  36. # in the name as if it were native.
  37. if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then
  38. case " $EMULATION_LIBPATH " in
  39. *" ${EMULATION_NAME} "*)
  40. NATIVE=yes
  41. ;;
  42. esac
  43. fi
  44. # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
  45. # Similarly, look for 32 bit libraries in /lib32, /usr/lib32 etc.
  46. case `echo "$target" | sed -e 's/-.*//'`:"$EMULATION_NAME" in
  47. *le:*64lppc*) LIBPATH_SUFFIX=64 ;;
  48. *le:*32lppc*) LIBPATH_SUFFIX=32 ;;
  49. *le:*64*) LIBPATH_SUFFIX=64be ;;
  50. *le:*32*) LIBPATH_SUFFIX=32be ;;
  51. *:*64lppc*) LIBPATH_SUFFIX=64le ;;
  52. *:*32lppc*) LIBPATH_SUFFIX=32le ;;
  53. *:*64*) LIBPATH_SUFFIX=64 ;;
  54. *:*32*) LIBPATH_SUFFIX=32 ;;
  55. esac