2005-03-29 Julian Brown * elf32-arm.c (elf32_arm_final_link_relocate): Use blx to get to symbian plt entries from thumb mode. 2005-03-28 Daniel Jacobowitz Phil Blundell * bfd/bfd-in2.h, libbfd.h: Regenerated. * bfd/reloc.c: Add ARM TLS relocations. * bfd/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/testsuite/gas/arm/tls.s, gas/testsuite/gas/arm/tls.d: New files. * gas/testsuite/gas/arm/arm.exp: Run TLS test. * include/elf/arm.h: Add TLS relocations. * ld/testsuite/ld-arm/tls-lib.s, ld/testsuite/ld-arm/tls-lib.d, ld/testsuite/ld-arm/tls-lib.r, ld/testsuite/ld-arm/tls-app.s, ld/testsuite/ld-arm/tls-app.d, ld/testsuite/ld-arm/tls-app.r: New files. * ld/testsuite/ld-arm/arm-lib.ld, ld/testsuite/ld-arm/arm-dyn.ld: Increase data segment alignment. * ld/testsuite/ld-arm/arm-elf.exp: Run TLS tests. 2005-03-28 Daniel Jacobowitz * bfd/elf32-arm.c (elf32_arm_check_relocs): Increment count for all relocation types. Don't count relocations which will use a PLT. 2005-03-23 Jim Blandy * config/tc-arm.c (arm_adjust_symtab): Fetch elf_sym's binding attributes properly. 2005-03-21 Nick Clifton * gas/testsuite/gas/arm/iwmmxt.s: Update instructions that use the "never" value in the conditional field to use "le" instead. This is so that the disassembler will disassemble them. * gas/testsuite/gas/arm/iwmmxt.d: Update expected disassemblies. 2005-03-18 Julian Brown * ld/scripttempl/armbpapi.sc (.rel.dyn): Add .rel.init_array, .rel.fini_array. (.rela.dyn): Add .rela.init_array, .rela.fini_array. (SECTIONS): Add .rel.other, .rela.other, .reli.other after PLT relocs. 2005-03-16 Daniel Jacobowitz * gas/configure.tgt: Set emulation for arm-*-eabi*. * gas/config/tc-arm.c (meabi_flags): Check EABI_DEFAULT. * gas/config/te-armeabi.h: New file. * gas/config/te-armlinuxeabi.h (EABI_DEFAULT): Define. * gas/config/te-symbian.h: Include "te-armeabi.h". 2005-03-15 Zack Weinberg * gas/config/tc-arm.c (do_mla): Rename to do_mlas, take second is_mls parameter; do not diagnose Rm==Rd when is_mls. (do_mla, do_mls, five_bit_unsigned_immediate, bfci_lsb_and_width) (do_bfc, do_bfi, do_bfx, do_rbit, do_mov16, do_ldsttv4): New functions. (insns): Add ARMv6T2 instructions: bfc bfi mls movw movt rbit sbfx ubfx ldrht ldrsht ldrsbt strht. (arm_archs): Add V6T2 variants. 2005-03-12 Zack Weinberg * gas/config/tc-arm.c (tinsns): Add ARMv6K instructions sev, wfe, wfi, yield. * opcodes/arm-dis.c (thumb_opcodes): Add ARMv6K instructions nop, sev, wfe, wfi, yield. * gas/testsuite/gas/arm/thumbv6k.d, gas/arm/thumbv6k.s: New dump test. * gas/testsuite/gas/arm/arm.exp: Run it. 2005-03-12 Zack Weinberg * opcodes/arm-dis.c (arm_opcodes): Document %E and %V. Add entries for v6T2 ARM instructions: bfc bfi mls strht ldrht ldrsht ldrsbt movw movt rbit ubfx sbfx. (print_insn_arm): Add support for %E and %V. * include/opcode/arm.h: Adjust comments for ARM_EXT_V4T and ARM_EXT_V5T. Add ARM_EXT_V6T2, ARM_ARCH_V6T2, ARM_ARCH_V6KT2, ARM_ARCH_V6ZT2, and ARM_ARCH_V6ZKT2.