diff options
author | M R Swami Reddy <MR.Swami.Reddy@nsc.com> | 2008-11-27 12:26:49 +0000 |
---|---|---|
committer | M R Swami Reddy <MR.Swami.Reddy@nsc.com> | 2008-11-27 12:26:49 +0000 |
commit | 99706f3093b86ab5071023955eba76fef416b493 (patch) | |
tree | 69fe2213255e46fadd1f846f7256d682af1978ba /bfd/bfd-in2.h | |
parent | 95beeee886309181b5308c94af0fe1a76792c594 (diff) | |
download | gdb-99706f3093b86ab5071023955eba76fef416b493.zip gdb-99706f3093b86ab5071023955eba76fef416b493.tar.gz gdb-99706f3093b86ab5071023955eba76fef416b493.tar.bz2 |
* Add PIC support for CR16 target.
* elf32-cr16.c (R_CR16_GOT_REGREL20, R_CR16_GOTC_REGREL20 and
R_CR16_GLOB_DAT): New macros
(cr16_elf_howto_table): Add entries for for R_CR16_GOT_REGREL20,
R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
(cr16_reloc_map): Ditto
(_bfd_cr16_elf_create_got_section): New function to create GOT section.
(_bfd_cr16_elf_create_dynamic_sections): New function to create dynamic
section.
(_bfd_cr16_elf_adjust_dynamic_symbol): New function to adjust symbol
defined by dynamic object.
(_bfd_cr16_elf_size_dynamic_sections): New function to find the size
of dynamic section.
(_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
symbols.
(_bfd_cr16_elf_finish_dynamic_symbol): New function to handle dynamic
sections.
(bfd_cr16_elf32_create_embedded_relocs): New function to create
embedded relocs in .emreloc section in memory for .data.rel section.
(_bfd_cr16_elf_reloc_type_class): New function for classify reloc types.
(cr16_elf_check_relocs): New function for checking reloc types in
first phase.
(cr16_elf_final_link_relocate): Update for handling the new reloc
types R_CR16_GOT_REGREL20 and R_CR16_GOTC_REGREL20.
(elf32_cr16_relax_section): Update relax implementation.
* reloc.c (bfd_reloc_code_type): Add entries for R_CR16_GOT_REGREL20,
R_CR16_GOTC_REGREL20 and R_CR16_GLOB_DAT.
* bfd-in.h (bfd_boolean bfd_cr16_elf32_create_embedded_relocs): Declared
* libbfd.h, bfd-in2.h: Regenerate.
Diffstat (limited to 'bfd/bfd-in2.h')
-rw-r--r-- | bfd/bfd-in2.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 16609cb..226bbf0 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -720,6 +720,10 @@ extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); +extern bfd_boolean bfd_cr16_elf32_create_embedded_relocs + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, + char **); + /* SunOS shared library support routines for the linker. */ extern struct bfd_link_needed_list *bfd_sunos_get_needed_list @@ -4129,6 +4133,9 @@ This is the 5 bits of a value. */ BFD_RELOC_CR16_SWITCH8, BFD_RELOC_CR16_SWITCH16, BFD_RELOC_CR16_SWITCH32, + BFD_RELOC_CR16_GOT_REGREL20, + BFD_RELOC_CR16_GOTC_REGREL20, + BFD_RELOC_CR16_GLOB_DAT, /* NS CRX Relocations. */ BFD_RELOC_CRX_REL4, |