This commit was manufactured by cvs2svn to create branch 'binutils-
[external/binutils.git] / ld / emulparams / elf32ppc.sh
index 68962d7..8e1a9f3 100644 (file)
@@ -3,6 +3,7 @@
 # elf32ppcsim.sh
 
 . ${srcdir}/emulparams/elf32ppccommon.sh
+. ${srcdir}/emulparams/plt_unwind.sh
 # Yes, we want duplicate .got and .plt sections.  The linker chooses the
 # appropriate one magically in ppc_after_open
 DATA_GOT=
@@ -10,7 +11,16 @@ SDATA_GOT=
 SEPARATE_GOTPLT=0
 BSS_PLT=
 GOT=".got          ${RELOCATING-0} : SPECIAL { *(.got) }"
-PLT=".plt          ${RELOCATING-0} : SPECIAL { *(.plt) }"
-GOTPLT="${PLT}"
+GOTPLT=".plt          ${RELOCATING-0} : SPECIAL { *(.plt) }"
+PLT=".plt          ${RELOCATING-0} : SPECIAL { *(.plt) }
+  .iplt         ${RELOCATING-0} : { *(.iplt) }"
 OTHER_TEXT_SECTIONS="*(.glink)"
 EXTRA_EM_FILE=ppc32elf
+if grep -q 'ld_elf32_spu_emulation' ldemul-list.h; then
+# crt1.o defines data_start and __data_start.  Keep them first.
+# Next put all the .data.spehandle sections, with a trailing zero word.
+  DATA_START_SYMBOLS="${RELOCATING+*crt1.o(.data .data.* .gnu.linkonce.d.*)
+    PROVIDE (__spe_handle = .);
+    *(.data.spehandle)
+    . += 4 * (DEFINED (__spe_handle) || . != 0);}"
+fi