diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2004-05-06 02:46:29 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@redhat.com> | 2004-05-06 02:46:29 +0000 |
commit | 43850d5b4bc33f27ee2c8b66073a16350927b44c (patch) | |
tree | 58962ad869d3595ceaf7c32c71a51b1450c4b819 /bfd/targets.c | |
parent | b8bfc9e13d8b2634e6b10602148bdaf08be7d764 (diff) | |
download | gdb-43850d5b4bc33f27ee2c8b66073a16350927b44c.zip gdb-43850d5b4bc33f27ee2c8b66073a16350927b44c.tar.gz gdb-43850d5b4bc33f27ee2c8b66073a16350927b44c.tar.bz2 |
* configure.in (bfd_elf32_frvfdpic_vec): New.
* configure: Rebuilt.
* targets.c (bfd_elf32_frvfdpic_vec): New.
* config.bfd: Enable it on frv-*-elf and frv-*-*linux*, as default
on the latter.
* elf32-frv.c: Prefix all identifiers added for FDPIC support with
frvfdpic instead of frv. Rearrange elf-target macros such that
the FDPIC-specific ones are only defined for this new target
vector.
(bfd_elf32_frvfdpic_vec): Declare.
(IS_FDPIC): New.
(elf32_frv_relocate_section): Use it to enable segment checking
and to control rofixup emission. Add output section vma to
applied relocation in non-LOAD non-ALLOC sections. Use
_bfd_error_handler for errors.
(_frv_create_got_section): Create .rel.got and .rofixup only in
FDPIC. Create non-dynamic _gp at .got+2048 in non-FDPIC, like the
linker script.
(elf32_frvfdpic_size_dynamic_sections): Assume FDPIC.
(elf32_frvfdpic_modify_segment_map): Likewise.
(elf32_frv_finish_dynamic_sections): New, do-nothing.
(elf32_frvfdpic_finish_dynamic_sections): Assume FDPIC. Improve
error message if we miscompute the rofixup size.
(frvfdpic_elf_use_relative_eh_frame): Assume FDPIC.
(frvfdpic_elf_encode_eh_address): Likewise.
(elf32_frv_check_relocs): Reject FDPIC-only relocs in non-FDPIC.
Record relocs only in FDPIC. Make sure _gp is defined for GPREL
relocs. Reject unknown relocation types.
(elf32_frv_object_p): Make sure target vector matches FDPIC bits.
(frv_elf_merge_private_bfd_data): Likewise.
(ELF_MAXPAGESIZE): Revert to 0x1000 for elf32-frv; keep it as
0x4000 for newly-added elf32-frvfdpic.
Diffstat (limited to 'bfd/targets.c')
-rw-r--r-- | bfd/targets.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/bfd/targets.c b/bfd/targets.c index 29e3f62..ad6362a 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -532,6 +532,7 @@ extern const bfd_target bfd_elf32_d30v_vec; extern const bfd_target bfd_elf32_dlx_big_vec; extern const bfd_target bfd_elf32_fr30_vec; extern const bfd_target bfd_elf32_frv_vec; +extern const bfd_target bfd_elf32_frvfdpic_vec; extern const bfd_target bfd_elf32_h8300_vec; extern const bfd_target bfd_elf32_hppa_linux_vec; extern const bfd_target bfd_elf32_hppa_vec; @@ -823,6 +824,7 @@ static const bfd_target * const _bfd_target_vector[] = { &bfd_elf32_dlx_big_vec, &bfd_elf32_fr30_vec, &bfd_elf32_frv_vec, + &bfd_elf32_frvfdpic_vec, &bfd_elf32_h8300_vec, &bfd_elf32_hppa_linux_vec, &bfd_elf32_hppa_vec, |