* 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.
This commit is contained in:
parent
b8bfc9e13d
commit
43850d5b4b
@ -1,3 +1,38 @@
|
||||
2004-05-05 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2004-05-05 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR/136
|
||||
|
@ -339,10 +339,15 @@ case "${targ}" in
|
||||
targ_defvec=bfd_elf32_fr30_vec
|
||||
;;
|
||||
|
||||
frv-*-elf | frv-*-*linux*)
|
||||
frv-*-elf)
|
||||
targ_defvec=bfd_elf32_frv_vec
|
||||
targ_selvecs=bfd_elf32_frvfdpic_vec
|
||||
;;
|
||||
|
||||
frv-*-*linux*)
|
||||
targ_defvec=bfd_elf32_frvfdpic_vec
|
||||
targ_selvecs=bfd_elf32_frv_vec
|
||||
;;
|
||||
|
||||
h8300*-*-elf)
|
||||
targ_defvec=bfd_elf32_h8300_vec
|
||||
|
681
bfd/configure
vendored
681
bfd/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -601,6 +601,7 @@ do
|
||||
bfd_elf32_dlx_big_vec) tb="$tb elf32-dlx.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_fr30_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_frv_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_frvfdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_h8300_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_hppa_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
|
1294
bfd/elf32-frv.c
1294
bfd/elf32-frv.c
File diff suppressed because it is too large
Load Diff
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user