diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-08-30 22:09:51 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-08-30 22:09:51 +0000 |
commit | c86158e591edd8450f49f8cd75f82e4313d4b6d8 (patch) | |
tree | e17ece37589761df543fb981c2c1dd6391dab4e5 /bfd/libbfd.h | |
parent | 787d66bb4d1d8ded6de1a1f3bf7b3d32ec516b20 (diff) | |
download | gdb-c86158e591edd8450f49f8cd75f82e4313d4b6d8.zip gdb-c86158e591edd8450f49f8cd75f82e4313d4b6d8.tar.gz gdb-c86158e591edd8450f49f8cd75f82e4313d4b6d8.tar.bz2 |
Add SH ELF support.
* elf32-sh.c: New file.
* elf.c (prep_headers): Handle bfd_arch_sh.
* elfcode.h (write_relocs): Handle absolute symbol.
* elf-bfd.h (_bfd_elf32_link_read_relocs): Declare.
(_bfd_elf64_link_read_relocs): Declare.
* elflink.h (NAME(_bfd_elf,link_read_relocs)): Rename from
elf_link_read_relocs. Make globally visible. Change all
callers.
(elf_link_input_bfd): Get external symbols from cache in
symtab_hdr->contents. Get contents from cache in
elf_section_data.
* elfxx-target.h (bfD_elfNN_bfd_relax_section): Only define if not
already defined.
* reloc.c: Define BFD_RELOC_SH_* relocs.
* libbfd-in.h (_bfd_sh_align_load_span): Declare.
* coff-sh.c (sh_insns_conflict): Fix a return value.
(_bfd_sh_align_load_span): New globally visible function, broken
out of sh_align_load.
(sh_align_load): Call _bfd_sh_align_load_span.
(sh_swap_insns): Change relocs parameter to PTR.
* bfd-in2.h, libbfd.h: Rebuild.
* targets.c (bfd_elf32_sh_vec): Declare.
(bfd_elf32_shl_vec): Declare.
* config.bfd (sh-*-elf*): New target.
* configure.in (bfd_elf32_sh_vec): New target vector.
(bfd_elf32_shl_vec): New target vector.
* configure: Rebuild.
* Makefile.in: Rebuild dependencies.
(BFD32_BACKENDS): Add elf32-sh.o.
(BFD32_BACKENDS_CFILES): Add elf32-sh.c.
* elf.c (map_sections_to_segments): Check that LMA does not skip a
page before checking D_PAGED.
Diffstat (limited to 'bfd/libbfd.h')
-rw-r--r-- | bfd/libbfd.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/bfd/libbfd.h b/bfd/libbfd.h index eb34a43..28ce15b 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -506,6 +506,14 @@ extern boolean _bfd_ecoff_get_accumulated_ss PARAMS ((PTR, bfd_byte *)); extern bfd_vma _bfd_get_gp_value PARAMS ((bfd *)); extern void _bfd_set_gp_value PARAMS ((bfd *, bfd_vma)); +/* Function shared by the COFF and ELF SH backends, which have no + other common header files. */ + +extern boolean _bfd_sh_align_load_span + PARAMS ((bfd *, asection *, bfd_byte *, + boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), + PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *)); + /* And more follows */ void @@ -703,6 +711,28 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_ARM_IN_POOL", "BFD_RELOC_ARM_OFFSET_IMM8", "BFD_RELOC_ARM_HWLITERAL", + "BFD_RELOC_ARM_THUMB_ADD", + "BFD_RELOC_ARM_THUMB_IMM", + "BFD_RELOC_ARM_THUMB_SHIFT", + "BFD_RELOC_ARM_THUMB_OFFSET", + "BFD_RELOC_SH_PCDISP8BY2", + "BFD_RELOC_SH_PCDISP12BY2", + "BFD_RELOC_SH_IMM4", + "BFD_RELOC_SH_IMM4BY2", + "BFD_RELOC_SH_IMM4BY4", + "BFD_RELOC_SH_IMM8", + "BFD_RELOC_SH_IMM8BY2", + "BFD_RELOC_SH_IMM8BY4", + "BFD_RELOC_SH_PCRELIMM8BY2", + "BFD_RELOC_SH_PCRELIMM8BY4", + "BFD_RELOC_SH_SWITCH16", + "BFD_RELOC_SH_SWITCH32", + "BFD_RELOC_SH_USES", + "BFD_RELOC_SH_COUNT", + "BFD_RELOC_SH_ALIGN", + "BFD_RELOC_SH_CODE", + "BFD_RELOC_SH_DATA", + "BFD_RELOC_SH_LABEL", /* start-sanitize-arc */ "BFD_RELOC_ARC_B22_PCREL", "BFD_RELOC_ARC_B26", |