H.J. Lu
3496cb2af4
2005-05-05 H.J. Lu <hongjiu.lu@intel.com>
...
* section.c (bfd_make_section_anyway_with_flags): New.
(bfd_make_section_anyway): Call bfd_make_section_anyway_with_flags,
(bfd_make_section_with_flags): New.
(bfd_make_section): Call bfd_make_section_with_flags.
* elf-m10300.c (_bfd_mn10300_elf_create_got_section): Call
bfd_make_section_with_flags/bfd_make_section_anyway_with_flags
instead of bfd_make_section/bfd_make_section and don't call
bfd_set_section_flags.
(mn10300_elf_check_relocs): Likewise.
(_bfd_mn10300_elf_create_dynamic_sections): Likewise.
* elf32-arm.c (create_got_section): Likewise.
(bfd_elf32_arm_add_glue_sections_to_bfd): Likewise.
(elf32_arm_check_relocs): Likewise.
* elf32-cris.c (cris_elf_check_relocs): Likewise.
* elf32-frv.c (elf32_frv_add_symbol_hook): Likewise.
(_frv_create_got_section): Likewise.
(elf32_frvfdpic_create_dynamic_sections): Likewise.
* elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise.
(elf32_hppa_check_relocs): Likewise.
* elf32-i370.c (i370_elf_create_dynamic_sections): Likewise.
(i370_elf_check_relocs): Likewise.
* elf32-i386.c (create_got_section): Likewise.
(elf_i386_check_relocs): Likewise.
* elf32-m32r.c (m32r_elf_add_symbol_hook): Likewise.
(create_got_section): Likewise.
(m32r_elf_create_dynamic_sections): Likewise.
(m32r_elf_check_relocs): Likewise.
* elf32-m68k.c (elf_m68k_check_relocs): Likewise.
* elf32-ppc.c (ppc_elf_create_got): Likewise.
(ppc_elf_create_dynamic_sections): Likewise.
(ppc_elf_add_symbol_hook): Likewise.
(ppc_elf_check_relocs): Likewise.
* elf32-s390.c (create_got_section): Likewise.
(elf_s390_check_relocs): Likewise.
* elf32-sh.c (create_got_section): Likewise.
(sh_elf_create_dynamic_sections): Likewise.
(sh_elf_check_relocs): Likewise.
* elf32-vax.c (elf_vax_check_relocs): Likewise.
* elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise.
* elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise.
(add_extra_plt_sections): Likewise.
* elf64-alpha.c (elf64_alpha_add_symbol_hook): Likewise.
(elf64_alpha_create_got_section): Likewise.
(elf64_alpha_create_dynamic_sections): Likewise.
(elf64_alpha_check_relocs): Likewise.
* elf64-hppa.c (get_reloc_section): Likewise.
(get_opd): Likewise.
(get_plt): Likewise.
(get_dlt): Likewise.
(get_stub): Likewise.
(elf64_hppa_create_dynamic_sectionso): Likewise.
* elf64-mmix.c (mmix_elf_check_common_relocs): Likewise.
* elf64-ppc.c (create_linkage_sections): Likewise.
(ppc64_elf_check_relocs): Likewise.
* elf64-s390.c (create_got_section): Likewise.
(elf_s390_check_relocs): Likewise.
* elf64-sh64.c (sh_elf64_check_relocs): Likewise.
(sh64_elf64_create_dynamic_sections): Likewise.
* elf64-x86-64.c (create_got_section): Likewise.
(elf64_x86_64_check_relocs): Likewise.
* elflink.c (_bfd_elf_create_got_section): Likewise.
(_bfd_elf_link_create_dynamic_sections): Likewise.
(elf_link_add_object_symbols): Likewise.
* elfxx-ia64.c (elfNN_ia64_add_symbol_hook): Likewise.
(elfNN_ia64_create_dynamic_sections): Likewise.
(get_fptr): Likewise.
(get_pltoff): Likewise.
(get_reloc_section): Likewise.
(elfNN_ia64_object_p): Likewise.
* elfxx-mips.c (mips_elf_rel_dyn_section): Likewise.
(mips_elf_create_compact_rel_section): Likewise.
(mips_elf_create_got_section): Likewise.
(_bfd_mips_elf_create_dynamic_sections): Likewise.
* elfxx-sparc.c (create_got_section): Likewise.
(_bfd_sparc_elf_check_relocs): Likewise.
* elf.c (_bfd_elf_new_section_hook): Call _bfd_elf_get_sec_type_attr
on linker created sections.
2005-05-05 14:34:04 +00:00
Nick Clifton
3e11053365
Update the address and phone number of the FSF organization in the GPL notices
2005-05-04 15:53:43 +00:00
Alan Modra
8423293d34
bfd/
...
* section.c (struct bfd_section): Replace link_order_head and
link_order_tail with map_head and map_tail union.
(STD_SECTION): Update.
(_bfd_strip_section_from_output): Delete.
* aoutx.h: Update throughout for above changes.
* coff-ppc.c: Likewise.
* cofflink.c: Likewise.
* ecoff.c: Likewise.
* elf-eh-frame.c: Likewise.
* elf-m10300.c: Likewise.
* elf.c: Likewise.
* elf32-arm.c: Likewise.
* elf32-cris.c: Likewise.
* elf32-hppa.c: Likewise.
* elf32-i386.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-m68hc1x.c: Likewise.
* elf32-m68k.c: Likewise.
* elf32-ppc.c: Likewise.
* elf32-s390.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-vax.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-ppc.c: Likewise.
* elf64-s390.c: Likewise.
* elf64-sh64.c: Likewise.
* elf64-x86-64.c: Likewise.
* elflink.c: Likewise.
* elfxx-ia64.c: Likewise.
* elfxx-mips.c: Likewise.
* elfxx-sparc.c: Likewise.
* linker.c: Likewise.
* merge.c: Likewise.
* pdp11.c: Likewise.
* xcofflink.c: Likewise.
* elflink.c (bfd_boolean bfd_elf_size_dynsym_hash_dynstr): Split
out from bfd_elf_size_dynamic_sections.
* bfd-in.h (bfd_boolean bfd_elf_size_dynsym_hash_dynstr): Declare.
* bfd-in2.h: Regenerate.
ld/
* ldemul.c: Include bfdlink.h.
(ldemul_before_allocation): Assume before_allocation is non-zero.
(before_allocation_default): Call strip_excluded_output_sections.
* ldlang.c (stripped_excluded_sections): New variable.
(lang_add_section): Build input section list for each output
section, attached via map_head and map_tail pointers.
(strip_excluded_output_sections): Make global. Traverse the
input section lists to find which output sections can go. Clear
link_order pointers and set stripped_excluded_sections.
(lang_process): Call strip_excluded_output_sections.
* ldlang.h (strip_excluded_output_sections): Declare.
* ldwrite.c: Update throuhout for link_order_head -> map_head change.
* emultempl/aix.em (before_allocation): Call
strip_excluded_output_sections.
* emultempl/armcoff.em (before_allocation): Likewise.
* emultempl/beos.em (before_allocation): Likewise.
* emultempl/linux.em (before_allocation): Likewise.
* emultempl/pe.em (before_allocation): Likewise.
* emultempl/sunos.em (before_allocation): Likewise.
* emultempl/elf32.em (before_allocation): Likewise. Call
bfd_elf_size_dynsym_hash_dynstr too.
* emultempl/lnk960.em (lnk960_before_allocation): Delete.
(ld_lnk960): Use before_allocation_default.
2005-05-04 11:00:28 +00:00
Nick Clifton
53e09e0aaf
Update the FSF address in the copyright/GPL notice
2005-05-04 07:19:45 +00:00
Paul Brook
c6596c5ecb
2005-05-01 Paul Brook <paul@codesourcery.com>
...
* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Treat
R_ARM_PLT32 the same as R_ARM_PC24.
(arm_add_to_rel): Ditto.
2005-05-01 23:57:21 +00:00
Julian Brown
33bfe77466
* bfd/bfd-in.h (bfd_elf32_arm_set_target_relocs): Update prototype.
...
* bfd/bfd-in2.h: Regenerate.
* bfd/elf32-arm.c (elf32_arm_link_hash_table): New field, 'use_blx'.
(elf32_arm_link_hash_table_create): Initialise fix_v4bx, use_blx.
(bfd_elf32_arm_set_target_relocs): Handle use_blx.
(elf32_arm_final_link_relocate): Use Thumb BLX for R_ARM_THM_PC22
relocations if requested to.
(allocate_dynrelocs): Don't count size of omitted Thumb stubs based on
use_blx rather than symbian_p.
(elf32_arm_finish_dynamic_symbol): Don't output Thumb PLT stubs if
use_blx is in effect.
(elf32_arm_symbian_link_hash_table_create): Enable use_blx by default
for SymbianOS.
* ld/ld.texinfo: Document --use-blx.
* ld/emultempl/armelf.em (use_blx): New variable.
(arm_elf_create_output_section_statements): Communicate value of
use_blx to bfd.
(PARSE_AND_LIST_PROLOGUE): Add OPTION_USE_BLX.
(PARSE_AND_LIST_OPTIONS): Add --use-blx option.
(PARSE_AND_LIST_ARGS_CASES): Add OPTION_USE_BLX case.
2005-04-15 16:37:47 +00:00
Paul Brook
8f6277f5c0
2005-04-08 Paul Brook <paul@codesourcery.com>
...
* elf32-arm.c (ARM2THUMB_GLUE_SIZE): Rename...
(ARM2THUMB_STATIC_GLUE_SIZE): ... to this.
(ARM2THUMB_PIC_GLUE_SIZE): Define.
(a2t1p_ldr_insn, a2t2p_add_pc_insn, a2t3p_bx_r12_insn): Add.
(elf32_arm_to_thumb_stub): Create PIC stubs.
(record_arm_to_thumb_glue): Use different stub size for relocatable
images.
2005-04-08 11:47:59 +00:00
Julian Brown
05ea83ed21
* bfd/bfd-in.h (bfd_is_arm_mapping_symbol_name): Rename from
...
bfd_elf32_is_arm_mapping_symbol_name.
* bfd/bfd-in2.h: Regenerate.
* bfd/cpu-arm.c (bfd_is_arm_mapping_symbol_name): Rename from
bfd_elf32_is_arm_mapping_symbol_name.
* bfd/elf32-arm.c (elf32_arm_is_target_special_symbol): Rename
bfd_elf32_is_arm_mapping_symbol_name to bfd_is_arm_mapping_symbol_name.
(arm_elf_find_function): Likewise.
(elf32_arm_output_symbol_hook): Likewise.
* gas/config/tc-arm.c (arm_adjust_symtab): Likewise.
2005-03-30 17:19:29 +00:00
Julian Brown
9d2da7ca8d
* bfd/bfd-in.h (bfd_elf32_is_arm_mapping_symbol_name): Add prototype.
...
* bfd/bfd-in2.h: Regenerate.
* bfd/elf32-arm.c (elf32_arm_is_target_special_symbol): Rename call to
bfd_elf32_is_arm_mapping_symbol_name.
(elf32_arm_output_symbol_hook): Likewise.
(arm_elf_find_function): Likewise, and include STT_NOTYPE in test for
mapping symbols.
(is_arm_mapping_symbol_name): Function moved from here...
* bfd/cpu-arm.c (bfd_elf32_is_arm_mapping_symbol_name): ...to here,
renamed and made global.
* gas/config/tc-arm.c (mapping_state): Change documentation in function
comment to cross-reference spec instead. Change type of mapping symbols
to BSF_NO_TYPE.
(arm_adjust_symtab): Don't change type of mapping symbols here.
* gas/testsuite/gas/arm/mapping.d: Update expected output.
* ld/testsuite/ld-arm/arm-app-abs32.d: Likewise.
* ld/testsuite/ld-arm/arm-app.d: Likewise.
* ld/testsuite/ld-arm/mixed-app.d: Likewise.
2005-03-30 16:22:07 +00:00
Daniel Jacobowitz
ba93b8aced
bfd/
...
* bfd-in2.h, libbfd.h: Regenerated.
* reloc.c: Add ARM TLS relocations.
* elf32-arm.c (elf32_arm_howto_table): Add dynamic TLS
relocations.
(elf32_arm_tls_gd32_howto, elf32_arm_tls_ldo32_howto)
(elf32_arm_tls_ldm32_howto, elf32_arm_tls_le32_howto)
(elf32_arm_tls_ie32_howto): New.
(elf32_arm_howto_from_type): Support TLS relocations.
(elf32_arm_reloc_map): Likewise.
(elf32_arm_reloc_type_lookup): Likewise.
(TCB_SIZE): Define.
(struct elf32_arm_obj_tdata): New.
(elf32_arm_tdata, elf32_arm_local_got_tls_type): Define.
(elf32_arm_mkobject): New function.
(struct elf32_arm_relocs_copied): Add pc_count.
(elf32_arm_hash_entry, GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD)
(GOT_TLS_IE): Define.
(struct elf32_arm_link_hash_table): Add tls_ldm_got.
(elf32_arm_link_hash_newfunc): Initialize tls_type.
(elf32_arm_copy_indirect_symbol): Copy pc_count and tls_type.
(elf32_arm_link_hash_table_create): Initialize tls_ldm_got.
(dtpoff_base, tpoff): New functions.
(elf32_arm_final_link_relocate): Handle TLS relocations.
(IS_ARM_TLS_RELOC): Define.
(elf32_arm_relocate_section): Warn about TLS mismatches.
(elf32_arm_gc_sweep_hook): Handle TLS relocations and pc_count.
(elf32_arm_check_relocs): Detect invalid symbol indexes. Handle
TLS relocations and pc_count.
(elf32_arm_adjust_dynamic_symbol): Check non_got_ref.
(allocate_dynrelocs): Handle TLS. Bind REL32 relocs to local
calls.
(elf32_arm_size_dynamic_sections): Handle TLS.
(elf32_arm_finish_dynamic_symbol): Likewise.
(bfd_elf32_mkobject): Define.
gas/
* config/tc-arm.c (arm_parse_reloc): Add TLS relocations.
(md_apply_fix3): Mark TLS symbols.
(tc_gen_reloc): Handle TLS relocations.
(arm_fix_adjustable): Ignore TLS relocations.
(s_arm_elf_cons): Support expressions after decorated symbols.
gas/testuite/
* gas/arm/tls.s, gas/arm/tls.d: New files.
* gas/arm/arm.exp: Run TLS test.
include/elf/
* arm.h: Add TLS relocations.
ld/testsuite/
* ld-arm/tls-lib.s, ld-arm/tls-lib.d, ld-arm/tls-lib.r,
ld-arm/tls-app.s, ld-arm/tls-app.d, ld-arm/tls-app.r: New files.
* ld-arm/arm-lib.ld, ld-arm/arm-dyn.ld: Increase data segment
alignment.
* ld-arm/arm-elf.exp: Run TLS tests.
2005-03-29 16:54:22 +00:00
Daniel Jacobowitz
71a976dd82
* elf32-arm.c (elf32_arm_check_relocs): Increment count for all
...
relocation types. Don't count relocations which will use a PLT.
2005-03-29 16:39:51 +00:00
Daniel Jacobowitz
28a094c2cc
* elf32-arm.c (elf32_arm_final_link_relocate): Don't fail for
...
unresolved symbols in R_ARM_NONE relocations.
2005-03-22 15:39:32 +00:00
Daniel Jacobowitz
0945cdfd61
* elf32-arm.c (elf32_arm_final_link_relocate): Add
...
UNRESOLVED_RELOC_P argument. Set it appropriately.
(elf32_arm_relocate_section): Update call to
elf32_arm_final_link_relocate. Don't clobber RELOCATION; use
unresolved_reloc instead.
2005-03-22 15:39:08 +00:00
H.J. Lu
6dc132d920
2005-03-20 H.J. Lu <hongjiu.lu@intel.com>
...
* elf-bfd.h (elf_backend_data): Add int to
elf_backend_section_from_shdr.
(bfd_elf_section_data): Update comment for this_idx.
(_bfd_elf_make_section_from_shdr): Add int.
* elfxx-mips.h (_bfd_mips_elf_section_from_shdr): Likewise.
* elf.c (_bfd_elf_make_section_from_shdr): Take section index
and use it to set this_idx in bfd_elf_section_data.
(bfd_section_from_shdr): Pass shindex to
_bfd_elf_make_section_from_shdr.
(_bfd_elf_section_from_bfd_section): Use this_idx in
bfd_elf_section_data to find section index.
* elf32-arm.c (elf32_arm_section_from_shdr): Take section
index and pass it to _bfd_elf_make_section_from_shdr.
* elf32-i370.c(i370_elf_section_from_shdr): Likewise.
* elf32-ppc.c (ppc_elf_section_from_shdr): Likewise.
* elf32-sh64.c (sh64_backend_section_from_shdr): Likewise.
* elf32-v850.c (v850_elf_section_from_shdr): Likewise.
* elf64-alpha.c (elf64_alpha_section_from_shdr): Likewise.
* elf64-hppa.c (elf64_hppa_section_from_shdr): Likewise.
* elf64-x86-64.c (elf64_x86_64_section_from_shdr): Likewise.
* elfxx-ia64.c (elfNN_ia64_section_from_shdr): Likewise.
* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Likewise.
2005-03-20 23:36:19 +00:00
Mark Mitchell
b294bdf8d0
* elf32-arm.c (elf32_arm_modify_segment_map): New function.
...
(elf32_arm_additional_program_headers): Likewise.
(elf_backend_modify_segment_map): Define.
(elf_backend_additional_program_headers): Likewise.
(elf32_arm_symbian_modify_segment_map): Use
elf32_arm_modify_segment_map.
* binutils/readelf.c (get_arm_segment_type): New function.
(get_segment_type): Use it.
* arm.h (PT_ARM_EXIDX): Define.
2005-03-18 17:06:16 +00:00
Paul Brook
6768797874
2005-02-11 Paul Brook <paul@codesourcery.com>
...
* elf-bfd.h (struct elf_link_hash_table): Add
is_relocatable_executable.
* elf.c (_bfd_elf_link_hash_table_init): Initialize it.
* elflink.c (bfd_elf_link_record_dynamic_symbol): Create local dynamic
symbols in relocatable executables.
(bfd_elf_record_link_assignment): Create dynamic section symbols in
relocatable executables.
(_bfd_elf_link_renumber_dynsyms): Ditto.
(bfd_elf_final_link): Ditto.
* elf32-arm.c (elf32_arm_final_link_relocate): Copy absolute
relocations into relocatable executables.
(elf32_arm_check_relocs): Crate dynamic sections for relocatable
executables. Also copy absolute relocations.
(elf32_arm_adjust_dynamic_symbol): Don't create copy relocations
in relocatable executables.
(allocate_dynrelocs): Copy relocations for relocatable executables.
Output dynamic symbols for symbols defined in linker scripts.
2005-02-11 16:41:09 +00:00
Paul Brook
e37c699c87
2005-02-10 Paul Brook <paul@codesourcery.com>
...
* elf32-arm.c (elf32_arm_final_link_relocate): Handle R_ARM_THM_PC9.
2005-02-10 14:14:25 +00:00
Mark Mitchell
5cd3778de9
* elf32-arm.c (elf32_arm_symbian_special_sections): Do not set
...
SHF_WRITE for .init_array, .fini_array, and .preinit_array.
2005-01-31 17:50:20 +00:00
Daniel Jacobowitz
b134237006
* elf-bfd.h (struct elf_backend_data): Add minpagesize.
...
* elf32-arm.c (ELF_MINPAGESIZE): Define.
* elf32-ppc.c (ELF_MINPAGESIZE): Define.
* elfcode.h (elf_object_p): Use minpagesize instead of
maxpagesize.
* elfxx-target.h (ELF_MINPAGESIZE): Default to ELF_MAXPAGESIZE.
(elfNN_bed): Include ELF_MINPAGESIZE.
2005-01-28 17:58:24 +00:00
Julian Brown
319850b451
* bfd/bin-in.h (bfd_elf32_arm_set_target_relocs): Update prototype.
...
* bfd/bin-in2.h (bfd_elf32_arm_set_target_relocs): Update prototype.
* bfd/elf32-arm.c (elf32_arm_link_hash_table): Add fix_v4bx flag.
(bfd_elf32_arm_set_target_relocs): Add formal parameter fix_v4bx for
passing flag value from ld. Set flag value in global hash table entry.
(elf32_arm_final_link_relocate): Add code to implement R_ARM_V4BX
relocation.
* ld/emultempl/armelf.em (fix_v4bx): New variable.
(arm_elf_create_output_section_statements): Communicate fix_v4bx flag
value to bfd.
(PARSE_AND_LIST_PROLOGUE): Add option token OPTION_FIX_V4BX.
(PARSE_AND_LIST_LONGOPTS): Add option --fix-v4bx.
(PARSE_AND_LIST_OPTIONS): Add option --fix-v4bx.
(PARSE_AND_LIST_ARGS_CASES): Add option OPTION_FIX_V4BX.
* ld/NEWS: Mention --fix-v4bx.
* ld/ld.texinfo: Document --fix-v4bx.
2005-01-28 17:24:41 +00:00
Mark Mitchell
dc4c9c199b
* elf32-arm.c (elf_backend_default_use_rela_p): Define to zero for
...
SymbianOS.
* emulparams/armsymbian.sh (OTHER_READONLY_SECTIONS): Define, so
as to include .ARM.exidx$${Base,Limit}.
* ld/scripttempl/armbpabi.sc: Move .plt to end of text segment.
Define IMAGE$$ER_RO$${Base,Limit} and SHT$$INIT_ARRAY$${Base,Limit}.
Put .init_array, .fini_array, etc. into the read-only data
segment.
2005-01-26 06:10:45 +00:00
Alan Modra
3eb128b2a5
* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Follow indirect and warning
...
symbols.
* elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
* elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
* elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
* elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
* elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
* elf32-ppc.c (ppc_elf_gc_sweep_hook): Likewise.
* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
* elf32-sparc.c (elf32_sparc_gc_sweep_hook): Likewise.
* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
2005-01-11 09:32:53 +00:00
Paul Brook
4e7fd91e3e
2005-01-06 Paul Brook <paul@codesourcery.com>
...
bfd/
* config.bfd: Add entry for arm-*-vxworks and arm-*-windiss.
* configure.in: Add bfd_elf32_{big,little}arm_vxworks_vec.
* configure: Regenerate.
* elf32-arm.c: Add VxWorks target bfd.
(USE_REL): Remove.
(elf32_arm_link_hash_table): Add use_rel.
(elf32_arm_link_hash_table_create, elf32_arm_final_link_relocate,
elf32_arm_relocate_section): Replace USE_REL with runtime check.
Correct offset calculation for RELA case.
(elf_backend_may_use_rel_p, elf_backend_may_use_rela_p,
elf_backend_default_use_rela_p, elf_backend_rela_normal): Define.
(elf32_arm_vxworks_link_hash_table_create): New function.
* targets.c (bfd_elf32_bigarm_vxworks_vec): Add declaration.
(bfd_elf32_littlearm_vxworks_vec): Ditto.
(_bfd_target_vector): Add bfd_elf32_{big,little}arm_vxworks_vec.
gas/
* config/tc-arm.c (FPU_DEFAULT): Define for TE_VXWORKS.
(md_begin): Handle TE_VXWORKS for FP defaults.
(md_apply_fix3): Correct rela offsets.
(elf32_arm_target_format): Add VxWorks targets.
ld/
* Makefie.am: Add earmelf_vxworks.
* Makefile.in: Regenerate.
* configure.tgt: Make arm-*-vxworks a separate case.
* emulparams/armelf_vxworks.sh: New function.
2005-01-06 16:18:25 +00:00
Paul Brook
83a358aab6
* elf32-arm.c (elf32_arm_symbian_plt_entry): Fix comment typo.
2004-12-31 16:22:25 +00:00
Paul Brook
94a3258fc5
2004-12-01 Paul Brook <paul@codesourcery.com>
...
* elf32-arm.c (elf32_arm_copy_private_bfd_data): Set EI_OSABI.
(elf32_arm_post_process_headers): Set EI_OSABI depending on ABI
version.
2004-12-02 15:05:34 +00:00
Paul Brook
dea514f51d
2004-11-30 Paul Brook <paul@codesourcery.com>
...
bfd/
* elf32-arm.c (struct elf32_arm_link_hash_table): Remove
no_pipeline_knowledge
(elf32_arm_link_hash_table_create): Ditto.
(bfd_elf32_arm_process_before_allocation): Ditto.
(elf32_arm_final_link_relocate): Ditto. Remove oabi relocation
handling.
* bfd-in.h (bfd_elf32_arm_process_before_allocation): Update
prototype.
* bfd-in2.h: Regenerate.
ld/
* emultempl/armelf.em: Ignore -p and -no-pipeline-knowledge.
2004-11-30 17:45:54 +00:00
Paul Brook
0beaef2b05
2004-11-24 Paul Brook <paul@codesourcery.com>
...
bfd/
* elf32-arm.c (elf32_arm_swap_symbol_in): New function.
(elf32_arm_swap_symbol_out): New function.
(elf32_arm_size_info): Add.
(elf_backend_size_info): Define.
ld/testsuite/
* ld-arm/mixed-lib.sym: Update for THUMB_FUNC change.
2004-11-24 14:44:47 +00:00
Alan Modra
de52dba4ab
* elf32-arm.c (elf32_arm_finish_dynamic_sections): Warning fix.
...
* elf32-iq2000.c (iq2000_reloc_type_lookup): C90 function decl.
* nlmcode.h (nlm_write_object_contents): Warning fix.
2004-11-19 11:58:02 +00:00
Daniel Jacobowitz
b7693d0213
bfd/
...
* elf32-arm.c (PLT_THUMB_STUB_SIZE): Define.
(elf32_arm_plt_thumb_stub): New.
(struct elf32_arm_link_hash_entry): Add plt_thumb_refcount
and plt_got_offset.
(elf32_arm_link_hash_traverse): Fix typo.
(elf32_arm_link_hash_table): Add obfd.
(elf32_arm_link_hash_newfunc): Initialize new fields.
(elf32_arm_copy_indirect_symbol): Copy plt_thumb_refcount.
(elf32_arm_link_hash_table_create): Initialize obfd.
(record_arm_to_thumb_glue): Mark the glue as a local ARM function.
(record_thumb_to_arm_glue): Mark the glue as a local Thumb function.
(bfd_elf32_arm_get_bfd_for_interworking): Verify that the
interworking BFD is not dynamic.
(bfd_elf32_arm_process_before_allocation): Handle R_ARM_PLT32. Do
not emit glue for PLT references.
(elf32_arm_final_link_relocate): Handle Thumb functions. Do not
emit glue for PLT references. Support the Thumb PLT prefix.
(elf32_arm_gc_sweep_hook): Handle R_ARM_THM_PC22 and
plt_thumb_refcount.
(elf32_arm_check_relocs): Likewise.
(elf32_arm_adjust_dynamic_symbol): Handle Thumb functions and
plt_thumb_refcount.
(allocate_dynrelocs): Handle Thumb PLT references.
(elf32_arm_finish_dynamic_symbol): Likewise.
(elf32_arm_symbol_processing): New function.
(elf_backend_symbol_processing): Define.
opcodes/
* arm-dis.c (WORD_ADDRESS): Define.
(print_insn): Use it. Correct big-endian end-of-section handling.
gas/testsuite/
* gas/arm/mapping.d: Expect F markers for Thumb code.
* gas/arm/unwind.d: Update big-endian pattern.
ld/
* emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Don't use
a dynamic object for stubs.
ld/testsuite/
* ld-arm/mixed-app.d, ld-arm/mixed-app.r, ld-arm/mixed-app.s,
ld-arm/mixed-app.sym, ld-arm/mixed-lib.d, ld-arm/mixed-lib.r,
ld-arm/mixed-lib.s, ld-arm/mixed-lib.sym, ld-arm/arm-dyn.ld,
ld-arm/arm-lib.ld: New files.
* ld-arm/arm-app-abs32.d, ld-arm/arm-app-abs32.r, ld-arm/arm-app.d,
ld-arm/arm-app.r, ld-arm/arm-lib-plt32.d, ld-arm/arm-lib-plt32.r,
ld-arm/arm-lib.d, ld-arm/arm-lib.r, ld-arm/arm-static-app.d,
ld-arm/arm-static-app.r: Update for big-endian.
* ld-arm/arm-elf.exp: Run the new tests.
2004-11-17 17:50:28 +00:00
Mark Mitchell
b32d3aa2a0
* elf32-arm.c (elf32_arm_relocate_section): Use
...
arm_real_reloc_type.
2004-11-16 10:08:00 +00:00
Paul Brook
ee06dc0791
* bfd/elf32-arm.c (elf32_arm_final_link_relocate): Resolve
...
R_ARM_PREL31 relocations to PLT entries.
(elf32_arm_relocate_section, elf32_arm_gc_sweep_hook): Ditto.
(elf32_arm_check_relocs): Ditto.
2004-11-13 13:38:15 +00:00
Mark Mitchell
6366ff1ead
* elf32-arm.c (elf32_arm_final_link_relocate): Correct logic for
...
R_ARM_RELATIVE on Symbian OS.
2004-11-11 18:24:24 +00:00
Mark Mitchell
b34af79cca
* elf32-arm.c (elf32_arm_begin_write_processing): Do not use a K&R
...
declaration.
(elf32_arm_symbian_modify_segment_map): Likewise.
2004-11-09 16:50:38 +00:00
Daniel Jacobowitz
08d1f311bf
From David Poole <daveml@mbuf.com>:
...
* elf32-arm.c (elf32_arm_readonly_dynrelocs): New function.
(elf32_arm_size_dynamic_sections): Call it.
2004-11-09 16:44:31 +00:00
Mark Mitchell
a16385dc25
* elf32-arm.c (elf32_arm_final_link_relocate): When generating an
...
R_ARM_RELATIVE relocation for Symbian OS, mention the section
symbol in the relocation.
2004-11-08 22:08:07 +00:00
Mark Mitchell
c3c766200a
* elf32-arm.c (elf32_arm_symbian_begin_write_processing): Clear
...
D_PAGED.
(elf32_arm_symbian_modify_segment_map): Don't
reset includes_filehdr and includes_phdrs here.
2004-11-04 18:57:34 +00:00
Daniel Jacobowitz
7f266840a2
./
...
* configure.in (arm-*-oabi*, thumb-*-oabi*): Remove.
* configure: Regenerated.
bfd/
* Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Replace
elfarm-nabi with elf32-arm. Remove elfarm-oabi.
(elf32-arm.lo): Replace elfarm-nabi.lo rule. Remove elf32-arm.h
dependency.
* config.bfd: Move arm-*-oabi* and thumb-*-oabi* from obsolete list
to a new removed list. Remove normal configuration stanzas.
* configure.in: (bfd_elf32_bigarm_vec, bfd_elf32_bigarm_symbian_vec)
(bfd_elf32_littlearm_symbian_vec, bfd_elf32_littlearm_vec): Replace
elfarm-nabi.lo with elf32-arm.lo.
(bfd_elf32_bigarm_oabi_vec, bfd_elf32_littlearm_oabi_vec): Remove.
* elf32-arm.c: Renamed from elfarm-nabi.c. Inline elf32-arm.h.
* elf32-arm.h: Remove.
* elfarm-oabi.c: Remove.
* targets.c (_bfd_target_vector): Remove bfd_elf32_bigarm_oabi_vec
and bfd_elf32_littlearm_oabi_vec.
* aclocal.m4, Makefile.in, configure, doc/Makefile.in: Regenerated.
gas/
* configure.in: Remove arm-*-oabi and thumb-*-oabi.
* config/tc-arm.c (target_oabi): Delete.
(md_apply_fix3, elf32_arm_target_format): Remove target_oabi checks.
(arm_opts): Remove moabi.
* doc/as.texinfo (Overview): Remove documentation of -moabi.
* doc/c-arm.texi (ARM Options): Likewise.
* configure: Regenerated.
ld/
* Makefile.am (ALL_EMULATIONS): Remove earmelf_oabi.o.
(earmelf_oabi.c): Remove rule.
* configure.tgt: Remove arm-*-oabi and thumb-*-oabi.
* emulparams/armelf_oabi.sh, emultempl/armelf_oabi.em: Delete files.
* Makefile.in: Regenerated.
2004-11-04 15:54:50 +00:00
Catherine Moore
95c5070c6e
* Makefile.am (elf32-arm-oldabi.lo): New.
...
(elf32-arm-newabi.lo): New.
* Makefile.in: Regenerate.
* config.bfd (thumb-*-elf): Remove definition of targ_underscore.
(arm-*-elf): Likewise.
(arm-*-oabi): New.
(thumb-*-oabi): New.
* configure: Regenerate.
* configure.in (bfd_elf32_littlearm_oabi_vec): New.
(bfd_elf32_bigarm_oabi_vec): New.
* elf32-arm-newabi.c: New.
* elf32-arm-oldabi.c: New.
* elf32-arm.c: Removed.
* elf32-arm.h: New.
1999-02-01 20:21:00 +00:00
Catherine Moore
948beb4a24
* bfd-in.h: Add argument to elf_backend_get_symbol_type.
...
* bfd-in2.h: Rebuild.
* elf.c (swap_out_syms): Pass type to elf_backend_get_symbol_type.
* elf32-arm.c: Add HOWTO entries for R_ARM_GNU_VTINHERIT and
R_ARM_GNU_VTENTRY.
(elf32_arm_gc_mark_hook): New.
(elf32_arm_gc_sweep_hook): New.
(elf32_arm_check_relocs): New.
(elf32_arm_final_link_relocate): Handle VTINHERIT and VTENTRY
relocations.
(elf32_arm_relocate_section): Handle VTINHERIT and VTENTRY
relocations.
1998-09-15 13:52:55 +00:00
Nick Clifton
a61c93863e
fix linker testsuite failure
1998-09-09 21:25:37 +00:00
Catherine Moore
bb3b4377a4
* Makefile.am: Add elf32-arm.c.
...
* Makefile.in: Rebuild.
* elf-bfd.h: Add elf_backend_get_symbol_type.
* elf.c (swap_out_syms): If defined, call
elf_backend_get_symbol_type.
* elf32-arm.c: Define elf_backend_get_symbol_type.
(elf32_arm_get_symbol-type): New routine.
(record_thumb_to_arm_glue): Change to use STT_ARM_TFUNC.
(bfd_elf32_arm_process_before_allocation): Change to
check for STT_ARM_TFUNC.
(elf32_arm_final_link_relocate): Likewise.
* elfxx-target.h: Add elf_backend_get_symbol_type.
1998-08-31 15:50:04 +00:00
Nick Clifton
774852e913
Fix seg fault when displaying linker error message
1998-08-20 22:08:22 +00:00
Catherine Moore
2c3c46ad0c
* elf32-arm.c: Add prefix bfd_ to elf32_arm_get_bfd_for_interworking,
...
elf32_arm_allocate_interworking_sections and
elf32_arm_process_before_allocation.
* bfd-in.h: Ammend prototype for
elf32_arm_process_before_allocation to remove surplus third
argument.
* bfd-in2.h: Regenerate.
1998-08-18 16:55:29 +00:00
Catherine Moore
a17e14c150
* elf32-arm.c (elf32_arm_final_link_relocate): Remove unused
...
argument is_local. Add argument sym_flags. Check sym_flags
in R_ARM_ABS32 case. Include addend for R_ARM_THM_PC22 case.
(elf32_arm_relocate_section): Don't pass local sym and pass
sym_flags to elf32_arm_final_link_relocate.
1998-08-11 19:58:02 +00:00
Nick Clifton
0e7361bcd5
Add ARM ELF private flags
1998-08-05 22:52:27 +00:00
Catherine Moore
efaa65c99c
* Makefile.am: Add support for elf32-arm.lo.
...
* Makefile.in: Rebuild.
* config.bfd (arm-*-elf): Define targ_defvec and targ_selvecs.
(thumb-*-elf): Define targ_defvec and targ_selvecs.
* configure.in: Handle bfd_elf32_littlearm_vec and bfd_elf32_bigarm_vec.
* configure: Regenerate.
* elf.c: (prep_headers): Support arch_type of EM_ARM.
* targets.c: Support new targets bfd_elf32_bigarm_vec and
bfd_target bfd_elf32_littlearm_vec.
* elf32-arm.c: New file.
1998-07-31 21:26:28 +00:00