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 /bfd/elf32-spu.h | |
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 'bfd/elf32-spu.h')
-rw-r--r-- | bfd/elf32-spu.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/bfd/elf32-spu.h b/bfd/elf32-spu.h index fc4d84e..a31c76e 100644 --- a/bfd/elf32-spu.h +++ b/bfd/elf32-spu.h @@ -57,6 +57,9 @@ struct spu_elf_params /* Set if non-icache code should be allowed in icache lines. */ unsigned int non_ia_text : 1; + /* Set when the .fixup section should be generated. */ + unsigned int emit_fixups : 1; + /* Range of valid addresses for loadable sections. */ bfd_vma local_store_lo; bfd_vma local_store_hi; @@ -114,6 +117,7 @@ extern void spu_elf_plugin (int); extern bfd_boolean spu_elf_open_builtin_lib (bfd **, const struct _ovl_stream *); extern bfd_boolean spu_elf_create_sections (struct bfd_link_info *); +extern bfd_boolean spu_elf_size_sections (bfd *, struct bfd_link_info *); extern int spu_elf_find_overlays (struct bfd_link_info *); extern int spu_elf_size_stubs (struct bfd_link_info *); extern void spu_elf_place_overlay_data (struct bfd_link_info *); |