8374f9d4b5
* elf32-spu.c (spu_elf_special_sections): Add "._ea". (spu_elf_relocate_section): Handle relocations against symbols defined in ._ea specially. binutils/ * embedspu.sh: Take note of R_SPU_PPU32/64 relocs without a symbol, and if present, put image in ".data.speelf". Put program handle in ".data.spehandle". ld/emulparams/ * elf32_spu.sh (OTHER_SECTIONS): Add "._ea". * elf32ppc.sh: If building with spu support, put ".data.spehandle" sections at the start of ".data" and provide a symbol to locate the directory of embedded spe programs. ld/testsuite/ * ld-spu/ear.s: Align various sections. * ld-spu/embed.rd: Update.
25 lines
930 B
Bash
25 lines
930 B
Bash
# If you change this file, please also look at files which source this one:
|
|
# elf32lppcnto.sh elf32lppc.sh elf32ppclinux.sh elf32ppcnto.sh
|
|
# elf32ppcsim.sh
|
|
|
|
. ${srcdir}/emulparams/elf32ppccommon.sh
|
|
# Yes, we want duplicate .got and .plt sections. The linker chooses the
|
|
# appropriate one magically in ppc_after_open
|
|
DATA_GOT=
|
|
SDATA_GOT=
|
|
SEPARATE_GOTPLT=0
|
|
BSS_PLT=
|
|
GOT=".got ${RELOCATING-0} : SPECIAL { *(.got) }"
|
|
PLT=".plt ${RELOCATING-0} : SPECIAL { *(.plt) }"
|
|
GOTPLT="${PLT}"
|
|
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
|