diff options
author | Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> | 2009-08-05 20:40:34 +0000 |
---|---|---|
committer | Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> | 2009-08-05 20:40:34 +0000 |
commit | 9cc305ec2050ff3cda567d40cf87a2814d8d2ff3 (patch) | |
tree | d6ac66ada9f1a228988e8beb6030f1b673d5e413 /ld/emulparams | |
parent | 99e008fef7268b84c5122b8a49ca7aa25edd7282 (diff) | |
download | gdb-9cc305ec2050ff3cda567d40cf87a2814d8d2ff3.zip gdb-9cc305ec2050ff3cda567d40cf87a2814d8d2ff3.tar.gz gdb-9cc305ec2050ff3cda567d40cf87a2814d8d2ff3.tar.bz2 |
bfd/
* 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.
Diffstat (limited to 'ld/emulparams')
-rw-r--r-- | ld/emulparams/elf32_spu.sh | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ld/emulparams/elf32_spu.sh b/ld/emulparams/elf32_spu.sh index 1ed58c3..6993ca7 100644 --- a/ld/emulparams/elf32_spu.sh +++ b/ld/emulparams/elf32_spu.sh @@ -20,3 +20,8 @@ DATA_ADDR="ALIGN(${MAXPAGESIZE})" OTHER_BSS_SECTIONS=".toe ALIGN(128) : { *(.toe) } = 0" OTHER_SECTIONS=".note.spu_name 0 : { KEEP(*(.note.spu_name)) } ._ea 0 : { KEEP(*(._ea)) KEEP(*(._ea.*)) }" +OTHER_READONLY_SECTIONS=" + .fixup ${RELOCATING-0} : { + PROVIDE (__fixup_start = .); + KEEP(*(.fixup)) + }" |