9cc305ec20
* elf32-spu.h (spu_elf_params): Add member emit_fixups. (spu_elf_size_sections): Declare prototype. * elf32-spu.c (spu_link_hash_table): Add member sfixup. (FIXUP_RECORD_SIZE, FIXUP_GET, FIXUP_PUT): New macros. (spu_elf_emit_fixup): New function. (spu_elf_relocate_section): Emit fixup for each SPU_ADDR32. (spu_elf_size_sections): New function. ld/ * emulparams/elf32_spu.sh (OTHER_READONLY_SECTIONS): Add .fixup section and __fixup_start symbol. * emultempl/spuelf.em (params): Initialize emit_fixups member. (spu_before_allocation): Call spu_elf_size_sections. (OPTION_SPU_EMIT_FIXUPS): Define. (PARSE_AND_LIST_LONGOPTS): Add --emit-fixups. (PARSE_AND_LIST_ARGS_CASES): Handle --emit-fixups. * ld.texinfo (--emit-fixups): Document. ld/testsuite/ * ld-spu/fixup.d: New. * ld-spu/fixup.s: New.
20 lines
614 B
Makefile
20 lines
614 B
Makefile
#source: fixup.s
|
|
#ld: --emit-fixups
|
|
#objdump: -s
|
|
|
|
.*elf32-spu
|
|
|
|
Contents of section .text:
|
|
0000 00000000 ....
|
|
Contents of section .fixup:
|
|
0004 0000008b 00000091 000000c1 00000000 ................
|
|
Contents of section .data:
|
|
0080 000000d0 00000000 00000000 000000c0 ................
|
|
0090 00000000 00000000 00000000 000000b0 ................
|
|
00a0 00000001 00000000 00000000 00000000 ................
|
|
00b0 00000002 00000000 00000000 00000000 ................
|
|
00c0 00000000 00000000 00000000 00000080 ................
|
|
Contents of section .note.spu_name:
|
|
.*
|
|
.*
|
|
#pass
|