aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-spu.h
diff options
context:
space:
mode:
authorTrevor Smigiel <Trevor_Smigiel@playstation.sony.com>2009-08-05 20:40:34 +0000
committerTrevor Smigiel <Trevor_Smigiel@playstation.sony.com>2009-08-05 20:40:34 +0000
commit9cc305ec2050ff3cda567d40cf87a2814d8d2ff3 (patch)
treed6ac66ada9f1a228988e8beb6030f1b673d5e413 /bfd/elf32-spu.h
parent99e008fef7268b84c5122b8a49ca7aa25edd7282 (diff)
downloadfsf-binutils-gdb-9cc305ec2050ff3cda567d40cf87a2814d8d2ff3.zip
fsf-binutils-gdb-9cc305ec2050ff3cda567d40cf87a2814d8d2ff3.tar.gz
fsf-binutils-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.h4
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 *);