X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=20b91e899d916460812f0f54fe5bb4323d883f1f;hb=d3ce72d070fa3a519388b0eca00d6cb45d337071;hp=2e0759a2d7514987682628160f1f5a0cb5dc9be5;hpb=77ae44b0d39284201a63877b175d5ac622fe9b60;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2e0759a2d7..20b91e899d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,2125 @@ +2009-08-29 Martin Thuresson + + * elf32-arm.c (struct stub_def): Rename member template to + template_sequence. (arm_build_one_stub, + find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub): + Rename variable template to template_sequence. + * elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl): + Rename variable template to template_val. + * aoutx.h (NAME (aout, make_empty_symbol)): Rename variable + new to new_symbol. + * coffgen.c (coff_make_empty_symbol) + (coff_bfd_make_debug_symbol): Rename variable new to new_symbol. + * cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable + new to new_insn. + * ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new + to new_symbol. + * elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument + new to new_reloc. + * hash.c (bfd_hash_lookup): Rename variable new to new_string. + * ieee.c (ieee_make_empty_symbol): Rename variable new to + new_symbol. + * linker.c (bfd_new_link_order): Rename variable new to + new_lo. + * mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to + symbol. + * oasys.c (oasys_make_empty_symbol): Rename variable new to + new_symbol_type. + * pdp11.c (NAME (aout, make_empty_symbol)): Rename variable + new to new_symbol_type. + * plugin.c (bfd_plugin_make_empty_symbol): Rename variable new + to new_symbol. + * rs6000-core.c (CoreHdr, VmInfo): Rename union member new to + new_dump. + (read_hdr, rs6000coff_core_p) + (rs6000coff_core_file_matches_executable_p) + (rs6000coff_core_file_failing_command) + (rs6000coff_core_file_failing_signal): Updated function to use new + union member name. + * som.c (som_make_empty_symbol): Rename variable new to + new_symbol_type. + * syms.c (_bfd_generic_make_empty_symbol): Rename variable new + to new_symbol. + * tekhex.c (first_phase, tekhex_make_empty_symbol): Rename + variable new to new_symbol. + +2009-08-27 Ralf Wildenhues + + * acinclude.m4 (AM_INSTALL_LIBBFD): Call AM_SUBST_NOTMAKE for + bfdlibdir and bfdincludedir. + * Makefile.am (bfdlibdir, bfdincludedir): Move definition ... + [INSTALL_LIBBFD]: ... here, ... + [INSTALL_LIBBFD]: ... and empty overrides here. + [!INSTALL_LIBBFD]: (rpath_bfdlibdir): New variable. + [!INSTALL_LIBBFD] (libbfd_la_LDFLAGS): Use it. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2009-08-26 Maxim Kuvyrkov + + * elf32-m68k.c: Rewrite initialization of GOT entries for TLS + relocations. Rewrite output of dynamic TLS relocations. + (DTP_OFFSET, TP_OFFSET): New constants. + (dtpoff_base): Update. + (tpoff): Rename to tpoff_base, update. + (elf_m68k_init_got_entry_static, elf_m68k_init_got_entry_local_shared): + New functions. Move code from elf_m68k_relocate_section here. + (elf_m68k_relocate_section): Update. + (elf_m68k_finish_dynamic_symbol): Fix handling of local TLS symbols. + +2009-08-26 Maxim Kuvyrkov + + * elf32-m68k.c (elf_m68k_copy_indirect_symbol): Propagate + non_got_ref value. + (elf_m68k_check_relocs): Handle dynamic TLS relocations. + Handle non_got_ref field. + (elf_m68k_adjust_dynamic_symbol): Handle non_got_ref field. + +2009-08-26 Alan Modra + + PR ld/10518 + * linker.c (bfd_find_version_for_sym): Revert warning. + +2009-08-26 Alan Modra + + PR ld/10518 + * linker.c (bfd_find_version_for_sym): Override a "*" match by any + other wildcard match. Warn on multiple wildcard matches. + +2009-08-22 Ralf Wildenhues + + * Makefile.am (libbfd_la_LDFLAGS): Initialize early, to allow + appending. + [INSTALL_LIBBFD] (bfdlib_LTLIBRARIES, bfdinclude_HEADERS): Set + only in this condition. + [!INSTALL_LIBBFD] (noinst_LTLIBRARIES, libbfd_la_LDFLAGS): New, + to build but not install libbfd.la in this condition. + (install-bfdlibLTLIBRARIES, uninstall-bfdlibLTLIBRARIES) + (install_libbfd, install_libbfd): Remove. + * Makefile.in: Regenerate. + * doc/Makefile.am (AM_CPPFLAGS): Renamed from ... + (INCLUDES): ... this. + ($(MKDOC)): Adjust. + * doc/Makefile.in: Regenerate. + + * Makefile.am (AUTOMAKE_OPTIONS): Remove cygnus, instead use + no-dist and foreign. + (EXTRA_libbfd_la_SOURCES): New, list $(CFILES) to allow + dependency tracking to work for them. + (targets.lo, archures.lo, dwarf.lo): Rewrite to + use automake dependency tracking mechanism. + (MKDEP, DEP, DEP1, dep.sed, dep, dep-in, dep-am): Remove. + (mkdep section): Remove. + (BUILT_SOURCES): New, list $(BUILD_HFILES). + * Makefile.in: Regenerate. + * po/SRC-POTFILES.in, po/bfd.pot: Regenerate. + + * Makefile.am (datarootdir, docdir, htmldor, pdfdir) + (install-pdf, install-pdf-recursive, install-html) + (install-html-recursive): Remove. + * Makefile.in: Regenerate. + + * Makefile.in: Regenerate. + * aclocal.m4: Likewise. + * config.in: Likewise. + * configure: Likewise. + +2009-08-21 Daniel Gutson + + * elf32-arm.c (arch_has_thumb2_nop): New function. + (arch_has_arm_nop): New function. + (elf32_arm_final_link_relocate): NOP opcodes changed. + +2009-08-16 Doug Evans + + * opncls.c (bfd_close): Until BFD_IN_MEMORY has an iovec, + at least don't leak memory. + +2009-08-13 DJ Delorie + + * elf32-m32c.c (m32c_elf_relax_delete_bytes): Adjust symbol sizes + if needed. + +2009-08-12 Nick Clifton + + * po/fi.po: Updated Finnish translation. + +2009-08-11 Bernd Schmidt + + Merge some FRV FDPIC changes into the Blackfin code. + * elf32-bfin.c (struct bfinfdpic_elf_link_hash_table): Add pointer to + summary reloc information. + (bfinfdpic_dynamic_got_plt_info): New. + (_bfin_create_got_section): Create the PLT section here. + (elf32_bfinfdpic_create_dynamic_sections): Not here. + (_bfinfdpic_count_nontls_entries): Move out of... + (_bfinfdpic_count_got_plt_entries): ... here. + (_bfinfdpic_count_relocs_fixups): Likewise. + (_bfinfdpic_reset_got_plt_entries): New. + (_bfinfdpic_size_got_plt): Move out of... + (elf32_bfinfdpic_size_dynamic_sections): ... here. + (bfinfdpic_relocate_section): Be careful not to call + _bfinfdpic_add_rofixup or _bfinfdpic_add_dyn_reloc for deleted relocs. + (bfinfdpic_check_discarded_relocs, bfinfdpic_elf_discard_info): + New functions. + (elf_backend_discard_info): Define for FD-PIC. + +2009-08-11 Alan Modra + + * elflink.c: Add FIXMEs for some places that require octets_per_byte + adjustments. + * elf-eh-frame.c: Likewise. + * merge.c: Likewise. + +2009-08-11 Alan Modra + + * configure.in: Remove elf-ifunc.lo from common ELF files. Add + to x86 and x86_64 configurations. + * configure: Regenerate. + +2009-08-10 Jan Kratochvil + + Stop using bfd_usrdata in libbfd. + * coff-stgo32.c (bfd_coff_go32stub): Remove. + (stub_bytes, comment): Replace STUBSIZE by GO32_STUBSIZE. + (adjust_filehdr_in_post): Declare the abfd parameter as unused. + Replace STUBSIZE by GO32_STUBSIZE. Save now the stub in + filehdr_dst->u.go32.stub. New comment with the reason. + (adjust_filehdr_out_pre): Replace STUBSIZE by GO32_STUBSIZE. + Substitute the removed macro bfd_coff_go32stub. + (adjust_filehdr_out_post, adjust_scnhdr_in_post, adjust_scnhdr_out_pre) + (adjust_scnhdr_out_post, adjust_aux_in_post, adjust_aux_out_pre) + (adjust_aux_out_post): Replace STUBSIZE by GO32_STUBSIZE. + (create_go32_stub, go32_stubbed_coff_bfd_copy_private_bfd_data): + Replace STUBSIZE by GO32_STUBSIZE. Substitute the removed macro + bfd_coff_go32stub. + * coffcode.h (coff_mkobject_hook): Initialize coff->go32stub. + * libcoff-in.h (coff_data_type): New field go32stub. + * libcoff.h: Regenerated. + +2009-08-10 Jan Kratochvil + + Fix go32 stub preservation by objcopy. + * coff-stgo32.c (adjust_filehdr_in_post): Use bfd_malloc. + (go32_stubbed_coff_bfd_copy_private_bfd_data): Optionally allocate OBFD + go32stub. + +2009-08-10 Nathan Sidwell + + * elf32-arm.c (elf32_arm_size_stubs): Don't die on undefined local + symbols. + (elf32_arm_final_link_relocate): Treat local undefined symbols the + same as global undefined symbols. + (elf32_arm_relocate_section): Give an error for local undefined + non-weak symbols, unless the reloc will not use the symbol. + +2009-08-10 Nathan Sidwell + + * elf32-ppc.c (shared_stub_entry, stub_entry): Use r12, not r11. + (ppc_elf_relax_section): Use symbol index to distinguish + relocatable stubs. + +2009-08-10 Alan Modra + + * elf32-ppc.c (ppc_elf_relax_section): Ignore non-code sections. + +2009-08-10 Alan Modra + + * elflink.c (_bfd_elf_adjust_dynamic_symbol): Don't clear plt + info for STT_GNU_IFUNC. + * elf32-ppc.c (ppc_elf_check_relocs): Count a needed plt entry + on got refs in case the symbol turns out to be ifunc. + (ppc_elf_gc_sweep_hook): Similarly. + (ppc_elf_adjust_dynamic_symbol): Adjust assertion. + (allocate_dynrelocs): Don't specially allocate got relocs for ifunc. + (ppc_elf_size_dynamic_sections): Likewise. + (ppc_elf_relocate_section): Likewise. + +2009-08-09 Bernd Schmidt + + From Mike Frysinger + * elf32-bfin.c (bfin_howto_table, bfin_reloc_map, bfin_check_relocs, + bfin_final_link_relocate, bfin_relocate_section, bfin_gc_sweep_hook, + _bfinfdpic_emit_got_relocs_plt_entries, bfinfdpic_relocate_section, + bfinfdpic_gc_sweep_hook, bfinfdpic_check_relocs, + bfin_finish_dynamic_symbol, bfd_bfin_elf32_create_embedded_relocs): + Adjust to match the renamed reloc definitions. + +2009-08-08 Alan Modra + + PR 10494 + * elf.c (_bfd_elf_make_section_from_shdr): When setting up section + LMAs, use ELF_IS_SECTION_IN_SEGMENT to match sections with headers. + +2009-08-07 Tom Tromey + + * elf32-microblaze.c (microblaze_elf_check_relocs): Avoid strict + aliasing error. + +2009-08-06 Michael Eager + + * Makefile.am: Add cpu-microblaze.{lo,c}, elf32-microblaze.{lo,c}. + * Makefile.in: Regenerate. + * archures.c: Add bfd_arch_microblaze. + * bfd-in2.h: Regenerate. + * config.bfd: Add microblaze target. + * configure.in: Add bfd_elf32_microblaze_vec target. + * configure: Regenerate. + * cpu-microblaze.c: New. + * elf32-microblaze.c: New. + * libbfd-in.h: Add prototype _bfd_dwarf2_fixup_section_debug_loc(). + * libbfd.h: Regenerate. + * reloc.c: Add MICROBLAZE relocations. + * section.c: Add struct relax_table and relax_count to section. + * targets.c: Add bfd_elf32_microblaze_vec. + +2009-08-06 Jakub Jelinek + Alan Modra + + PR binutils/10492 + * elf.c (sym_is_global): Return true even for BSF_GNU_UNIQUE + symbols. + * elf32-mips.c (mips_elf_sym_is_global): Likewise. + * elfn32-mips.c (mips_elf_sym_is_global): Likewise. + +2009-08-06 Nathan Sidwell + + * elf32-arm.c (elf32_arm_size_stubs): Call layout_sections_again + at least once when fixing cortex-a8. + +2009-08-05 Chao-ying Fu + + * elf32-mips.c (mips_reloc_map): Add BFD_RELOC_MIPS_JALR. + * elfxx-mips.c (JAL_TO_BAL_P): New define to transform JAL to BAL + for CPUs. It is true for RM9000. + (JALR_TO_BAL_P): New define to transform JALR to BAL. It is true + for all CPUs. + (mips_elf_perform_relocation): Use JAL_TO_BAL_P and JALR_TO_BAL_P + to guard the transformation. + +2009-08-05 Trevor Smigiel + + * elf32-spu.h (spu_elf_params): Add member emit_fixups. + (spu_elf_size_sections): Declare prototype. + * elf32-spu.c (spu_link_hash_table): Add member sfixup. + (FIXUP_RECORD_SIZE, FIXUP_GET, FIXUP_PUT): New macros. + (spu_elf_emit_fixup): New function. + (spu_elf_relocate_section): Emit fixup for each SPU_ADDR32. + (spu_elf_size_sections): New function. + +2009-08-05 Nathan Sidwell + + * elf32-arm.c (elf32_arm_stub_type): Add arm_stub_a8_veneer_lwm. + (arm_build_one_stub): Build a8 veneers as a separate pass. + (cortex_a8_erratum_scan): Add prev_num_a8_fixes and stub_changed_p + parameters. Use them to check if we create a different a8 fixup + than the previous pass. + (elf32_arm_size_stubs): Move scope of stub_changed and + prev_num_a8_fixes into main loop. + (elf32_arm_build_stubs): Build a8 veneers in a second pass. + +2009-08-04 Alan Modra + + * elf32-ppc.c (ppc_elf_relax_section): Correct conditions under + which find_plt_ent is called. Delete redundant code. + +2009-08-03 H.J. Lu + + PR binutils/10363 + * elf.c (bfd_elf_string_from_elf_section): Return NULL on + invalid string offset. + +2009-08-03 H.J. Lu + + PR ld/10433 + * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Set got + to htab->init_got_offset and plt to htab->init_plt_offset + when discarding space for dynamic relocations. + +2009-08-03 Alan Modra + + * elf32-ppc.c (struct plt_entry): Revise comments. + (ppc_elf_check_relocs): Don't create needless plt_entry info + for non-pie executables. Don't test info->pie when info->shared + already covers that case. + (ppc_elf_gc_sweep_hook): Adjust for above change. + (add_stub_sym): Don't test info->pie when info->shared tested. + (allocate_dynrelocs, ppc_elf_size_dynamic_sections): Likewise. + (write_glink_stub, ppc_elf_finish_dynamic_symbol): Likewise. + (ppc_elf_relax_section): Adjust find_plt_ent arguments. + (ppc_elf_relocate_section): Likewise. + +2009-08-03 Alan Modra + + * elf32-ppc.c (ppc_elf_check_relocs): Always add a plt ref count + for local ifunc symbols in non-pie executables, regardless of + reloc type. Don't specially create ifunc dyn relocs. Tidy ifunc + code so that it's obvious that we only do anything special for + local ifunc syms. + (ppc_elf_gc_sweep_hook): Adjust to suit check_relocs changes. + (allocate_dynrelocs): Correct comment for syms defined in plt. + Don't specially allocate ifunc dyn relocs. + (ppc_elf_relax_section): Relax branches to ifunc plt entries too. + (ppc_elf_relocate_section): Set "relocation" value for ifunc + syms in non-pie executables. No specially allocated dyn relocs + for ifunc to write. Allow for local sym on R_PPC_RELAX32_PLT. + (ppc_elf_finish_dynamic_symbol): Set value of ifunc symbols in + a non-pie executable. + +2009-08-02 H.J. Lu + Jakub Jelinek + + PR ld/6443 + * elf32-i386.c (elf_i386_tls_transition): Check executable + instead of shared for TLS when building PIE. + (elf_i386_check_relocs): Likewise. + (elf_i386_allocate_dynrelocs): Likewise. + (elf_i386_relocate_section): Likewise. + + * elf64-x86-64.c (elf64_x86_64_tls_transition): Check executable + instead of shared for TLS when building PIE. + (elf64_x86_64_check_relocs): Likewise. + (elf64_x86_64_allocate_dynrelocs): Likewise. + (elf64_x86_64_relocate_section): Likewise. + +2009-07-31 Anthony Green + + * config.bfd (targ_cpu): Add moxie-uclinux support. + +2009-07-31 Hans-Peter Nilsson + + * linker.c (fix_syms): Consider SEC_LOAD when choosing section. + +2009-07-30 Alan Modra + + * elf32-ppc.c (ppc_elf_check_relocs): Always set up sections + used by indirect function support. Count dynamic relocs for + ifunc syms. + (ppc_elf_adjust_dynamic_symbol): Tweak for ifunc. + (allocate_dynrelocs): Allocate all non-dynamic ifunc plt entries + in iplt and their relocs in reliplt. Don't make ifunc syms + dynamic. Allocate got entry relocs for non-dynamic ifunc in + reliplt. Handle other dynamic relocs for ifunc. + (ppc_elf_size_dynamic_sections): Alloc dyn relocs for static + ifunc in reliplt, likewise relocs for got against local ifunc. + Typo fix on reliplt size adjust. + (ppc_elf_relocate_section): Don't use plt scheme of allocating + relocs 1-1 with entries for iplt, instead just add using + reloc_count. Write got relocs and dyn relocs for ifunc to reliplt. + Error on invalid ifunc dyn relocs. + (ppc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc plt + in iplt/reliplt. + * elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_JMP_IREL, + R_PPC64_REL16, R_PPC64_REL16_LO, R_PPC64_REL16_HI, R_PPC64_REL16_HA. + (ppc64_elf_reloc_type_lookup): Handle new relocs. + (ppc64_elf_check_relocs): Likewise. Count dyn relocs for ifunc. + (allocate_dynrelocs): As for elf32-ppc.c above. + (ppc64_elf_size_dynamic_sections): Likewise. + (ppc_build_one_stub): Put non-dynamic ifunc plt call stubs in iplt, + and their relocs in reliplt. Use R_PPC64_JMP_IREL. + (ppc_size_one_stub): Similarly. + (ppc64_elf_relocate_section): As for elf32-ppc.c above. Handle new + relocs too. + (ppc64_elf_finish_dynamic_symbol): As for elf32-ppc.c above. + +2009-07-29 Hans-Peter Nilsson + + * elf64-mmix.c (mmix_elf_relax_section): Revert 2009-05-27 + change. Add note to head comment. + +2009-07-28 Jan Beulich + + * archive.c (get_extended_arelt_filename): Remove redundant + range check on index. + +2009-07-27 Doug Kwan + + * elf32-arm.c (stub_hash_newfunc): Initialize field output_name. + +2009-07-27 H.J. Lu + + * archures.c bfd_*_arch): Sorted. + (bfd_archures_list): Likewise. + +2009-07-27 M R Swami Reddy + + * elf32-cr16.c (elf_cr16_final_link_relocate): Add code to handle + to R_cr16_NUM32 relocation. + +2009-07-26 Michael Eager + + * archures.c: Add bfd_mach_ppc_405 + * bfd-in2.h: Same. + +2009-07-25 H.J. Lu + + * cpu-i386.c (bfd_x86_64_arch): Fix comment typos. + * cpu-l1om.c (bfd_l1om_arch): Likewise. + +2009-07-25 H.J. Lu + + * archures.c (bfd_architecture): Add bfd_arch_l1om. + (bfd_l1om_arch): New. + (bfd_archures_list): Add &bfd_l1om_arch. + * bfd-in2.h: Regenerated. + + * config.bfd (targ64_selvecs): Add bfd_elf64_l1om_vec if + bfd_elf64_x86_64_vec is supported. Add bfd_elf64_l1om_freebsd_vec + if bfd_elf64_x86_64_freebsd_vec is supported. + (targ_selvecs): Likewise. + + * configure.in: Support bfd_elf64_l1om_vec and + bfd_elf64_l1om_freebsd_vec. + * configure: Regenerated. + + * cpu-l1om.c: New. + + * elf64-x86-64.c (elf64_l1om_elf_object_p): New. + (bfd_elf64_l1om_vec): Likewise. + (bfd_elf64_l1om_freebsd_vec): Likewise. + + * Makefile.am (ALL_MACHINES): Add cpu-l1om.lo. + (ALL_MACHINES_CFILES): Add cpu-l1om.c. + * Makefile.in: Regenerated. + + * targets.c (bfd_elf64_l1om_vec): New. + (bfd_elf64_l1om_freebsd_vec): Likewise. + (_bfd_target_vector): Add bfd_elf64_l1om_vec and + bfd_elf64_l1om_freebsd_vec. + +2009-07-24 Trevor Smigiel + Alan Modra + + * reloc.c (BFD_RELOC_SPU_ADD_PIC): Define. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + * elf32-spu.c (elf_howto_table): Add entries SPU_ADD_PIC. + (spu_elf_bfd_to_reloc_type): Handle SPU_ADD_PIC. + (spu_elf_relocate_section): Patch instructions marked by SPU_ADD_PIC. + +2009-07-23 H.J. Lu + + PR ld/10434 + * elf64-x86-64.c (elf64_x86_64_check_relocs): Check executable + instead of shared for R_X86_64_TPOFF32. + (elf64_x86_64_relocate_section): Likewise. + +2009-07-23 Ulrich Drepper + + * elf-bfd.h (struct elf_link_hash_entry): Add unique_global field. + * elf.c (swap_out_syms): Set binding to STB_GNU_UNIQUE for symbols + with the BSF_GNU_UNIQUE flag bit set. + * elfcode.h (elf_slurp_symbol_table): Set the BSF_GNU_UNIQUE flag + for symbols with STB_GNU_UNIQUE binding. + * elflink.c (_bfd_elf_merge_symbol): Set unique_global for symbols + with the STB_GNU_UNIQUE binding. + (elf_link_add_object_symbols): Set the BSF_GNU_UNIQUE flag for + symbols with STB_GNU_UNIQUE binding. Set STB_GNU_UNIQUE for + symbols with the unique_global field set. + (elf_link_output_extsym): Set unique_global field for symbols with + the STB_GNU_UNIQUE binding. + * syms.c (struct bfd_symbol): Define BSF_GNU_UNIQUE flag bit. + (bfd_print_symbol_vandf): Print a 'u' character for BSF_GNU_UNIQUE + symbols. + (bfd_decode_symclass): Return a 'u' character for BSF_GNU_UNIQUE + symbols. + * bfd-in2.h: Regenerate. + +2009-07-22 H.J. Lu + + * elflink.c (elf_link_output_extsym): Revert the last change. + +2009-07-22 H.J. Lu + + PR ld/10433 + * elflink.c (elf_link_output_extsym): Special case ifunc syms + when ref_regular, not def_regular. + +2009-07-21 H.J. Lu + + PR ld/10426 + * elflink.c (elf_link_add_object_symbols): Turn an IFUNC symbol + from a DSO into a normal FUNC symbol. + (elf_link_output_extsym): Turn an undefined IFUNC symbol into + a normal FUNC symbol. + +2009-07-17 Chao-ying Fu + + * elfxx-mips.c (LOAD_INTERLOCKS_P): New define. + (_bfd_mips_elf_size_dynamic_sections): For CPUs without load + interlocking, the last PLT entry needs a nop in the branch delay slot. + (_bfd_mips_elf_finish_dynamic_symbol): For CPUs with load itnerlocking, + output the last two PLT entries in reverse order. + +2009-07-16 H.J. Lu + + * elf32-i386.c (elf_i386_relocate_section): Don't get local + STT_GNU_IFUNC symbol for relocatable link. + * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise. + +2009-07-10 H.J. Lu + + * bfdio.c (bfd_iovec): Add comments for bmmap. + * bfd-in2.h: Regenerated. + +2009-07-10 H.J. Lu + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerated. + +2009-07-10 Doug Kwan + + * elf32-arm.c (stub_hash_newfunc): Initialize fields + target_addend and orig_insn. + +2009-07-10 Tom Tromey + + * Makefile.am (dwarf2.lo): Use dwarf2.h, not elf/dwarf2.h. + (elf-eh-frame.lo): Likewise. + (elf32-bfin.lo): Likewise. + (elf32-frv.lo): Likewise. + (elf32-xc16x.lo): Likewise. + * Makefile.in: Rebuild. + * dwarf2.c: Included dwarf.h, not elf/dwarf2.h. + * elf-eh-frame.c: Likewise. + * elf32-bfin.c: Likewise. + * elf32-frv.c: Likewise. + * elf32-xc16x.c: Likewise. + +2009-07-10 Julian Brown + + * elf32-arm.c (arm_build_one_stub): Use the hash entry of the + symbol a stub entry is derived from, not the entry for the stub + itself, in call to elf32_arm_final_link_relocate. + +2009-07-10 H.J. Lu + + * elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros + when reporting addends. + +2009-07-10 Alan Modra + + * elf32-spu.c (spu_elf_size_stubs): Do set up soft-icache manager + data even when no stubs. + (spu_elf_place_overlay_data, spu_elf_build_stubs): Adjust. + +2009-07-10 Alan Modra + + * elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_IRELATIVE. + (ppc_elf_get_synthetic_symtab): Report addend. + (PLT_IFUNC): Define. + (struct ppc_elf_link_hash_table): Add iplt and reliplt. + (ppc_elf_create_glink): New function. + (ppc_elf_create_dynamic_sections): Use it. + (ppc_elf_add_symbol_hook): Set has_ifunc_symbols. + (update_local_sym_info): Allocate space for local_plt array. + Don't bump local_got_refcounts for PLT_IFUNC. Return local_plt + entry pointer. + (is_branch_reloc): New function. + (ppc_elf_check_relocs): Handle STT_GNU_IFUNC symbols. + (ppc_elf_gc_sweep_hook): Likewise. + (ppc_elf_adjust_dynamic_symbol): Likewise. + (allocate_dynrelocs): Likewise. + (ppc_elf_size_dynamic_sections): Likewise. + (ppc_elf_relocate_section): Likewise. + (branch_reloc_hash_match): Use is_branch_reloc. + (ppc_elf_tls_optimize): Adjust for local_plt. + (write_glink_stub): New function, extracted from.. + (ppc_elf_finish_dynamic_symbol): ..here. Handle STT_GNU_IFUNC. + (ppc_elf_finish_dynamic_sections): Only write plt resolver and + branch table when dynamic. + (elf_backend_post_process_headers): Define. + * elf64-ppc.c (elf_backend_post_process_headers): Define. + (ppc64_elf_howto_raw): Add R_PPC64_IRELATIVE. + (ppc64_elf_get_synthetic_symtab): Report addend. + (struct ppc_stub_hash_entry): Add plt_ent. + (PLT_IFUNC): Define. + (struct ppc_link_hash_table): Add iplt and reliplt. + (create_linkage_sections): Make .iplt and .rela.iplt sections. + (ppc64_elf_add_symbol_hook): Set has_ifunc_symbols. + (update_local_sym_info): Allocate space for local_plt array. + Don't bump local_got_ents for PLT_IFUNC. Return local_plt + entry pointer. + (update_plt_info): Pass pointer to plt_entry rather than sym hash, + and don't change hash flags here. + (is_branch_reloc): New function. + (ppc64_elf_check_relocs): Handle STT_GNU_IFUNC. + (ppc64_elf_gc_sweep_hook): Likewise. + (ppc64_elf_adjust_dynamic_symbol): Likewise. + (allocate_dynrelocs): Likewise. + (ppc64_elf_size_dynamic_sections): Likewise. + (ppc_build_one_stub, ppc_size_one_stub): Likewise. + (ppc64_elf_size_stubs): Likewise. + (ppc64_elf_relocate_section): Likewise. + (get_sym_h): Adjust for local_plt. + (branch_reloc_hash_match): Use is_branch_reloc. + (ppc_type_of_stub): Pass plt_entry pointer and handle ifunc. + (ppc64_elf_toc): Ignore SEC_EXCLUDE sections. + +2009-07-10 Alan Modra + + * elf.c (_bfd_elf_get_synthetic_symtab): Report addends. + +2009-07-10 Alan Modra + + * elf-bfd.h (struct elf_link_hash_entry): Clarify ref_regular + and ref_regular_nonweak comment. + * elflink.c (elf_link_output_extsym): Special case ifunc syms + when def_regular, not ref_regular. + (elf_link_add_object_symbols): Don't set needs_plt on ifunc syms,.. + * elf32-i386.c (elf_i386_check_relocs): ..set it here instead.. + * elf64-x86-64.c (elf64_x86_64_check_relocs): ..and here. + +2009-07-09 Alan Modra + + * elf32-spu.c (mark_functions_via_relocs): Init broken_cycle field + of malloc'd struct call_info. + (pasted_function): Likewise, priority too. + +2009-07-07 Alan Modra + + * elf32-spu.c (spu_elf_auto_overlay): Take into account section + alignment when packing sections into overlays. + +2009-07-03 Cary Coutant + + * dwarf2.c (decode_line_info): Ignore DW_LNE_set_discriminator. + +2009-07-03 Dave Korn + + * coffcode.h (sec_to_styp_flags): Partially revert (functional + changes only) earlier patch:- + + 2009-06-25 Kai Tietz + + * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and + give .debug and .reloc data characteristics. + (DOT_RELOC): New define for .reloc section string. + (coff_write_object_contents): Use DOT_RELOC instead of string. + +2009-07-02 Tom Tromey + + * aoutx.h (aout_get_external_symbols): Declare 'amt' locally. + * bfdwin.c (bfd_free_window): Cast to unsigned long. + +2009-07-01 Nick Clifton + + * elf-m10300.c: Remove trailing white space. + * reloc.c: Likewise. + +2009-07-01 Douglas B Rupp + + * bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER, + BFD_HAVE_SYS_STAT_TYPE_MEMBER): New config functions. + * configure.in: Use them. + * configure: Regenerate. + * config.in: Regnerate. + * vmsutil.c: Include sysdep.h, remove ansidecl.h. + #define _BSD_SOURCE. Add comments. + (vms_file_stats_name): Calculate creation date based on available + runtime data. Return 1 for version instead of 0. + +2009-07-01 Nick Clifton + + PR 10072 + * elf32-arm.c (elf32_arm_final_link_relocate): Add code to handle + to R_ARM_THM_PC8 relocation. + +2009-06-29 Nick Clifton + + * elf-m10300.c (mn10300_elf_relax_section): Allow for the + different uses of the relocations addend when a symbol is in a + merged section. + +2009-06-27 H.J. Lu + + PR ld/10337 + * elf.c (bfd_section_from_shdr): Don't change sh_link for + SHT_REL/SHT_RELA sections on executable nor shared library. + Treat SHT_REL/SHT_RELA sections with sh_link set to SHN_UNDEF + as a normal section. + +2009-06-25 Nick Clifton + + * elf-m10300.c (mn10300_elf_relax_section): Handle non-section + symbols with SEC_MERGE flag. + +2009-06-25 Kai Tietz + + * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and + give .debug and .reloc data characteristics. + (DOT_RELOC): New define for .reloc section string. + (coff_write_object_contents): Use DOT_RELOC instead of string. + +2009-06-25 Tristan Gingold + + * mach-o-target.c (bfd_mach_o_get_dynamic_symtab_upper_bound) + (bfd_mach_o_canonicalize_dynamic_symtab) + (bfd_mach_o_get_synthetic_symtab): Defines. + (TARGET_NAME_BACKEND): Add bfd_mach_o_print_thread entry. + (TARGET_NAME): Use Mach-O specific functions for dynamic. + + * mach-o-i386.c (bfd_mach_o_i386_swap_reloc_in): Fix howto indexes + for scattered relocations. + (bfd_mach_o_i386_print_thread): New function. + (bfd_mach_o_print_thread): Define. + + * mach-o.c (text_section_names_xlat): Add an entry for __const. + (bfd_mach_o_canonicalize_one_reloc, bfd_mach_o_canonicalize_relocs): + New functions extracted from ... + (bfd_mach_o_canonicalize_reloc): ... This. Simplified. + (bfd_mach_o_get_dynamic_reloc_upper_bound): New function. + (bfd_mach_o_canonicalize_dynamic_reloc): New function. + (bfd_mach_o_i386_flavour_string): Adjusted after enum renaming. + (bfd_mach_o_ppc_flavour_string): Reindentation. Add 64 bits cases. + (bfd_mach_o_scan_read_dylinker): Do not create a section anymore. + Set name_str field. + (bfd_mach_o_scan_read_dylib): Ditto. + (bfd_mach_o_scan_read_thread): Set mdata at declaration. Add comments, + reindent. + (bfd_mach_o_scan_read_dysymtab): Set mdata at declaration. Correctly + decode isym and flags on little endian targets. Set dysymtab field. + (bfd_mach_o_scan_start_address): Adjust for enum names. + (bfd_mach_o_lookup_section): Do not look for segments anymore. + (bfd_mach_o_print_section): Display bfd section name. + (bfd_mach_o_print_segment): Display none if no name. + (bfd_mach_o_print_dysymtab): Display next index for local, external + and undefined symbols. + (bfd_mach_o_bfd_print_private_bfd_data): Adjust code by using name_str. + Display dylinker name. Display thread and unixthread commands content. + (bfd_mach_o_print_thread): New macro. + + * mach-o.h (bfd_mach_o_mach_header_magic): Align numbers. + (bfd_mach_o_ppc_thread_flavour): Ditto. + (bfd_mach_o_i386_thread_flavour): Ditto. + (BFD_MACH_O_PPC_THREAD_STATE_NONE): New enum. + (BFD_MACH_O_x86_THREAD_STATE_NONE): Replaces + BFD_MACH_O_THREAD_STATE_NONE. + (bfd_mach_o_segment_command): Remove segment field. + (bfd_mach_o_thread_flavour): Field offset is now unsigned long. + (bfd_mach_o_dylinker_command): Remove section field, add name_str. + (bfd_mach_o_prebound_dylib_command): Ditto. + (bfd_mach_o_dylib_command): Ditto. + (bfd_mach_o_prebound_dylib_command): Remove section field. + (mach_o_data_struct): Add dysymtab field. + (bfd_mach_o_backend_data): Add _bfd_mach_o_print_thread field. + (bfd_mach_o_get_reloc_upper_bound, bfd_mach_o_canonicalize_reloc) + (bfd_mach_o_build_commands): Remove parameter names and attributes. + (bfd_mach_o_get_dynamic_reloc_upper_bound) + (bfd_mach_o_canonicalize_dynamic_reloc): New prototypes. + +2009-06-25 Rafael Avila de Espindola + + * plugin.c (load_plugin): Use stat and S_ISREG instead of the d_type + field of struct dirent. + +2009-06-23 Tristan Gingold + + * vms.c (vms_get_synthetic_symtab): Remove duplicate definition + of this macro. Fix indentation. + +2009-06-22 Christophe Lyon + + * elf32-arm.c (elf32_arm_size_stubs): Use PLT address as + destination for defined dynamic symbols when deciding whether to + insert a stub or not. + (allocate_dynrelocs): Make sure functions are not marked as Thumb + when actually accessed through a PLT, even when generating a + shared lib. + +2009-06-22 Tristan Gingold + + * mach-o.c (bfd_mach_o_canonicalize_reloc): Append a sentinel to + the relocs array. + +2009-06-22 Alan Modra + + * elf32-ppc.c (ppc_elf_check_relocs): Handle R_PPC_RELAX* in switch. + * elf32-v850.c (v850_elf_relocate_section): Warning fix. + +2009-06-22 Alan Modra + + * elf64-ppc.c (ppc64_elf_edit_opd): Avoid gcc warning. + +2009-06-19 H.J. Lu + + * elflink.c (elf_link_add_object_symbols): Avoid warning + from -Wjump-misses-init in gcc 4.5.0. + +2009-06-19 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Properly check local + symbol on error. + * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. + +2009-06-19 H.J. Lu + + * elf32-i386.c (elf_i386_tls_transition): Add a parameter, + r_symndx. Report local symbol name on error. + (elf_i386_check_relocs): Updated. Report local symbol name on + error. + (elf_i386_gc_sweep_hook): Updated. + (elf_i386_relocate_section): Likewise. + + * elf64-x86-64.c (elf64_x86_64_tls_transition): Add a parameter, + r_symndx. Report local symbol name on error. + (elf64_x86_64_check_relocs): Updated. Report local symbol name + on error. + (elf64_x86_64_gc_sweep_hook): Updated. + (elf64_x86_64_relocate_section): Likewise. + +2009-06-19 Tristan Gingold + + * mach-o.c (bfd_mach_o_print_private_header): Fix format character. + +2009-06-19 Tristan Gingold + + * mach-o.c (bfd_mach_o_scan_read_symtab_symbols): Add prototype. + (bfd_mach_o_version): Use bfd_mach_o_get_data instead of direct access. + (bfd_mach_o_valid): Ditto. + (bfd_mach_o_wide_p): Ditto. + (bfd_mach_o_canonicalize_reloc): Ditto. + (bfd_mach_o_build_commands): Ditto. + (bfd_mach_o_scan_read_thread): Ditto. + (bfd_mach_o_flatten_sections): Ditto. + (bfd_mach_o_scan_start_address): Ditto. + (bfd_mach_o_lookup_section): Ditto. + (bfd_mach_o_core_fetch_environment): Ditto. + (bfd_mach_o_write_contents): Ditto. Handle reexport_dylib. + (bfd_mach_o_scan_write_relocs): Adjust for bfd_mach_o_get_data. + (bfd_mach_o_scan_write_symtab): Ditto. + Use macros instead of hard-coded values. + (bfd_mach_o_scan_read_symtab_symbol): Make the function static. + Use bfd_mach_o_get_data instead of direct access. Use macros + instead of hard-coded values. + (bfd_mach_o_scan_read_symtab_strtab): Make the function static. + Remove sym argument and get section from mdata. + Move code into the else branch. + (bfd_mach_o_scan_read_symtab_symbols): Make the function static. + Remove sym argument and get section from mdata. Adjust code. + (bfd_mach_o_scan_read_dylib): Move assertion into the created + switch (which replaces consecutive if statements). + (bfd_mach_o_scan_read_dysymtab): Rename seg to cmd. Load + module table, table of content, indirect symbols and external + referenced symbols. + (bfd_mach_o_scan_read_symtab): Renames seg to symtab. Set symtab + field. + (bfd_mach_o_scan_read_linkedit): New function. + (bfd_mach_o_scan_read_str): Ditto. + (bfd_mach_o_count_symbols): Simplify the code by using the symtab + field of mdata. + (bfd_mach_o_get_symtab_upper_bound): Remove check as + bfd_mach_o_count_symbols never returns an error. + (bfd_mach_o_canonicalize_symtab): Simplify the code by using the + symtab field (there might be only one symtab). + (bfd_mach_o_scan_read_command): Handle reexported dylib. + Handle sub frameworks, sub umbrella, sub library and sub client. + Read code signature and segment split info commands. + (bfd_mach_o_scan): Reindent. + (bfd_mach_o_xlat_name): New type. + (bfd_mach_o_print_flags): New function. + (bfd_mach_o_get_name): Ditto. + (bfd_mach_o_cpu_name): New variable. + (bfd_mach_o_filetype_name, bfd_mach_o_header_flags_name) + (bfd_mach_o_section_type_name) + (bfd_mach_o_section_attribute_name) + (bfd_mach_o_load_command_name): New variables. + (bfd_mach_o_print_private_header): New function. + (bfd_mach_o_print_section_map): New function extracted from + bfd_mach_o_print_private_bfd_data. + (bfd_mach_o_print_section): Ditto. Print more infos. + (bfd_mach_o_print_segment): Ditto. + (bfd_mach_o_print_dysymtab): Ditto. + (bfd_mach_o_bfd_print_private_bfd_data): Reworked. Handle + load weak dylib, reexport dylib and id dylib. + Handle code signature and segment_split info. + Handle sub frameworks, sub umbrella, sub library and sub client. + (bfd_mach_o_section_get_nbr_indirect): New function. + + * mach-o.h (BFD_MACH_O_REFERENCE_MASK): New macro. Add comment. + (bfd_mach_o_header_flags): New enum to define header flags. + (bfd_mach_o_section_attribute): New enum to replace ... + (BFD_MACH_O_S_ATTR_LOC_RELOC, BFD_MACH_O_S_ATTR_EXT_RELOC, + BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS, BFD_MACH_O_S_ATTR_DEBUG, + BFD_MACH_O_S_SELF_MODIFYING_CODE, BFD_MACH_O_S_ATTR_LIVE_SUPPORT, + BFD_MACH_O_S_ATTR_NO_DEAD_STRIP, BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS, + BFD_MACH_O_S_ATTR_NO_TOC, BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS): ... + these removed macros. + (BFD_MACH_O_NLIST_SIZE, BFD_MACH_O_NLIST_64_SIZE): New macros. + (bfd_mach_o_dylib_module): New type. + (BFD_MACH_O_DYLIB_MODULE_SIZE, BFD_MACH_O_DYLIB_MODULE_64_SIZE): New + macros. + (bfd_mach_o_dylib_table_of_content): New type. + (BFD_MACH_O_TABLE_OF_CONTENT_SIZE): New macro. + (bfd_mach_o_dylib_reference): New type. + (BFD_MACH_O_REFERENCE_SIZE): New macro. + (bfd_mach_o_dysymtab_command): Add fields for loaded and decoded + modules, toc, references and indirect syms. + (BFD_MACH_O_INDIRECT_SYMBOL_SIZE): New macro. + (bfd_mach_o_dylinker_command): Remove cmd and cmdsize fields (were + unused). Add comment. + (bfd_mach_o_dylib_command): Ditto. + (bfd_mach_o_prebound_dylib_command): Ditto. + (bfd_mach_o_linkedit_command): New type. + (bfd_mach_o_str_command): New type. + (bfd_mach_o_load_command): Add linkedit and str fields. + (mach_o_data_struct): Add symtab field. + (bfd_get_mach_o_data): Renamed to ... + (bfd_mach_o_get_data): ... this new macro. + (bfd_mach_o_scan_read_symtab_symbol, + bfd_mach_o_scan_read_symtab_strtab, + bfd_mach_o_scan_read_symtab_symbols): Prototypes removed. + + * mach-o-i386.c (bfd_mach_o_i386_mkobject): Use bfd_mach_o_get_data + instead of direct access. + +2009-06-19 Alan Modra + + * elf32-ppc.c (ppc_elf_check_relocs): Allow local symbols for + R_PPC_PLTREL24 relocs. + (ppc_elf_relocate_section): Likewise. + +2009-06-19 Alan Modra + + * elf32-ppc.c (find_plt_ent): Pass pointer to plist rather than + pointer to sym hash. Update all uses. + (update_plt_info): Likewise. Don't check addend here. + +2009-06-18 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Remove isymbuf and use + bfd_sym_from_r_symndx. + * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. + +2009-06-18 Alan Modra + + * elf-bfd.h (struct sym_sec_cache): Delete. + (struct sym_cache): New. + (bfd_section_from_r_symndx): Delete prototype. + (bfd_sym_from_r_symndx): Define prototype. + * elf.c (bfd_section_from_r_symndx): Delete, replace with.. + (bfd_sym_from_r_symndx): ..new function. + * elf32-arm.c: Update all uses of struct sym_sec_cache and + bfd_section_from_r_symndx to new struct and function. + * elf32-bfin.c: Likewise. + * elf32-hppa.c: Likewise. + * elf32-i386.c: Likewise. + * elf32-m32r.c: Likewise. + * elf32-m68hc1x.c: Likewise. + * elf32-m68hc1x.h: Likewise. + * elf32-m68k.c: Likewise. + * elf32-ppc.c: Likewise. + * elf32-s390.c: Likewise. + * elf32-sh.c: Likewise. + * elf64-ppc.c: Likewise. + * elf64-s390.c: Likewise. + * elf64-x86-64.c: Likewise. + * elfxx-sparc.c: Likewise. + * elfxx-sparc.h: Likewise. + +2009-06-18 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Cache or free isymbuf. + * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. + +2009-06-18 Nick Clifton + + * elflink.c (elf_link_sort_relocs): Return early if there are no + relocs to sort. + +2009-06-18 Dave Korn + + Merge cegcc and mingw32ce target name changes from + CeGCC project: + + 2007-12-25 Pedro Alves + + * config.bfd: Add arm*-*-cegcc* target. + + 2007-12-17 Pedro Alves + + * config.bfd: Add arm-*-mingw32ce* target. + +2009-06-17 H.J. Lu + + * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): New. + * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Likewise. + * elf32-i386.c (elf_i386_allocate_dynrelocs): Use it. + * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise. + +2009-06-17 H.J. Lu + + * elf-bfd.h (_bfd_elf_create_ifunc_dyn_reloc): New. + * elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Likewise. + * elf32-i386.c (elf_i386_check_relocs): Use it. + * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. + +2009-06-17 H.J. Lu + + * elf-bfd.h (elf_dyn_relocs): New. + + * elf32-i386.c (elf_i386_dyn_relocs): Removed. + (elf_i386_link_hash_entry): Replace elf_i386_dyn_relocs with + elf_dyn_relocs. + (elf_i386_copy_indirect_symbol): Likewise. + (elf_i386_check_relocs): Likewise. + (elf_i386_gc_sweep_hook): Likewise. + (elf_i386_allocate_dynrelocs): Likewise. + (elf_i386_readonly_dynrelocs): Likewise. + (elf_i386_size_dynamic_sections): Likewise. + + * elf64-x86-64.c (elf64_x86_64_dyn_relocs): Removed. + (elf64_x86_64_link_hash_entry): Replace elf64_x86_64_dyn_relocs + with elf_dyn_relocs. + (elf64_x86_64_copy_indirect_symbol): Updated. + (elf64_x86_64_check_relocs): Likewise. + (elf64_x86_64_gc_sweep_hook): Likewise. + (elf64_x86_64_adjust_dynamic_symbol): Likewise. + (elf64_x86_64_allocate_dynrelocs): Likewise. + (elf64_x86_64_readonly_dynrelocs): Likewise. + (elf64_x86_64_size_dynamic_sections): Likewise. + +2009-06-17 H.J. Lu + + * elf32-arm.c (create_got_section): Get existing .rela.got + section. + * elf32-hppa.c (elf32_hppa_create_dynamic_sections): Likewise. + * elf32-lm32.c (create_got_section): Likewise. + * elf32-m32r.c (create_got_section): Likewise. + * elf32-ppc.c (ppc_elf_create_got): Likewise. + * elf32-s390.c (create_got_section): Likewise. + * elf32-sh.c (create_got_section): Likewise. + * elf32-xtensa.c (elf_xtensa_create_dynamic_sections): Likewise. + * elf64-s390.c (create_got_section): Likewise. + * elfxx-sparc.c (create_got_section): Likewise. + + * elflink.c (_bfd_elf_create_got_section): Properly initialize + the GOT size. + +2009-06-16 H.J. Lu + + * elf-bfd.h (ELF_LOCAL_SYMBOL_HASH): New. + + * elf32-i386.c (elf_i386_local_hash): Removed. + (elf_i386_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH. + (elf_i386_get_local_sym_hash): Likewise. + + * elf64-x86-64.c (elf64_x86_64_local_hash): Removed. + (elf64_x86_64_local_htab_hash): Use ELF_LOCAL_SYMBOL_HASH. + (elf64_x86_64_get_local_sym_hash): Likewise. + * elfxx-ia64.c (elfNN_ia64_local_htab_hash): Likewise. + (get_local_sym_hash): Likewise. + +2009-06-16 H.J. Lu + + * elfxx-ia64.c (elfNN_ia64_link_hash_table): Remove got_sec, + rel_got_sec and plt_sec. + (elfNN_ia64_relax_section): Updated. + (elfNN_ia64_create_dynamic_sections): Likewise. + (get_got): Likewise. + (allocate_dynrel_entries): Likewise. + (elfNN_ia64_size_dynamic_sections): Likewise. + (set_got_entry): Likewise. + (elfNN_ia64_choose_gp): Likewise. + (elfNN_ia64_relocate_section): Likewise. + (elfNN_ia64_finish_dynamic_symbol): Likewise. + (elfNN_ia64_finish_dynamic_sections): Likewise. + +2009-06-16 Ulrich Weigand + + * elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits + also for calls. + +2009-06-16 H.J. Lu + + * configure.in (elf): Add elf-ifunc.lo. + + * configure: Regenerated. + * Makefile.in: Likewise. + + * elf-bfd.h (elf_link_hash_table): Add sgot, sgotplt, + srelgot, splt, srelplt, igotplt, iplt, irelplt and irelifunc. + + * elf32-i386.c (elf_i386_link_hash_table): Remove sgot, + sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and + irelifunc. + (elf_i386_link_hash_table_create): Likewise. + (elf_i386_create_dynamic_sections): Likewise. + (elf_i386_check_relocs): Likewise. + (elf_i386_allocate_dynrelocs): Likewise. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Likewise. + (elf_i386_finish_dynamic_symbol): Likewise. + (elf_i386_finish_dynamic_sections): Likewise. + (elf_i386_create_got_section): Removed. + + * elf64-x86-64.c (elf64_x86_64_link_hash_table): Remove sgot, + sgotplt, srelgot, splt, srelplt, igotplt, iplt, irelplt and + irelifunc. + (elf64_x86_64_compute_jump_table_size): Updated. + (elf64_x86_64_link_hash_table_create): Likewise. + (elf64_x86_64_create_dynamic_sections): Likewise. + (elf64_x86_64_check_relocs): Likewise. + (elf64_x86_64_allocate_dynrelocs): Likewise. + (elf64_x86_64_size_dynamic_sections): Likewise. + (elf64_x86_64_relocate_section): Likewise. + (elf64_x86_64_finish_dynamic_symbol): Likewise. + (elf64_x86_64_finish_dynamic_sections): Likewise. + (elf64_x86_64_create_got_section): Removed. + + * elflink.c (_bfd_elf_create_got_section): Use log_file_align + for pointer alignment. Set up section pointers. + (_bfd_elf_create_dynamic_sections): Likewise. + (_bfd_elf_create_ifunc_sections): Moved to ... + * elf-ifunc.c: Here. New. + + * Makefile.am (BFD32_BACKENDS): Add elf-ifunc.lo. + (BFD32_BACKENDS_CFILES): Add elf-ifunc.c. + Run "make dep-am". + +2009-06-16 Doug Kwan + + * elf32-arm.c (cortex_a8_erratum_scan): Change type of offset + to bfd_signed_vma. Cast constant operands which are used in + offset related expressions to bfd_signed_vma type as appropriate. + +2009-06-16 Maciej W. Rozycki + + * elf32-vax.c (elf_vax_plt_sym_val): New function. + (elf_backend_plt_sym_val): Define. + +2009-06-16 Maciej W. Rozycki + + * elf32-vax.c (elf_vax_reloc_type_class): New function. + (elf_backend_reloc_type_class): Define. + +2009-06-16 Maciej W. Rozycki + + * elf32-vax.c (elf_vax_relocate_section): For symbol references + from an executable to a shared library treat R_VAX_PC32 + relocations as R_VAX_PLT32 ones. + +2009-06-16 Maciej W. Rozycki + + * elf32-vax.c (elf_vax_instantiate_got_entries): Skip local + symbols in GOT space calculation. + (elf_vax_relocate_section): Adjust accordingly. + +2009-06-16 Maciej W. Rozycki + + * elf32-vax.c (elf_vax_plt_entry): Set the entry mask to + include . + +2009-06-16 Maciej W. Rozycki + + * elf32-vax.c (elf_vax_check_relocs): Handle the visibility + attribute. + (elf_vax_relocate_section): Likewise. + +2009-06-15 H.J. Lu + + * elf32-i386.c (elf_i386_allocate_dynrelocs): Update comments. + * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise. + +2009-06-15 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Reformat. + * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. + +2009-06-15 H.J. Lu + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerated. + +2009-06-15 H.J. Lu + + * elf32-i386.c (elf_i386_allocate_dynrelocs): Fix a typo. + * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise. + +2009-06-15 Nick Clifton + + * po/ru.po: New Russian translation. + * configure.in (ALL_LINGUAS): Add ru. + * configure: Regenerate. + +2009-06-14 H.J. Lu + + * elf32-i386.c: Remove duplicated comments. + +2009-06-14 H.J. Lu + + PR ld/10270 + * elf32-i386.c (elf_i386_allocate_dynrelocs): Disallow + dynamic IFUNC pointer in non-shared object. Use .got.plt + for IFUNC definition in PIE. + (elf_i386_allocate_dynrelocs): Resolve IFUNC definition in + PIE locally. + + * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Disallow + dynamic IFUNC pointer in non-shared object. Use .got.plt + for IFUNC definition in PIE. + (elf64_x86_64_relocate_section): Resolve IFUNC definition in + PIE locally. + +2009-06-13 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Properly report + local symbol for unhandled relocation against STT_GNU_IFUNC + symbol. + (elf_i386_relocate_section): Likewise. + * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. + (elf64_x86_64_relocate_section): Likewise. + +2009-06-13 H.J. Lu + + PR ld/10269 + * elf32-i386.c: Include "objalloc.h" and "hashtab.h". + (elf_i386_link_hash_table): Add loc_hash_table and + loc_hash_memory. + (elf_i386_local_hash): New. + (elf_i386_local_htab_hash): Likewise. + (elf_i386_local_htab_eq): Likewise. + (elf_i386_get_local_sym_hash): Likewise. + (elf_i386_link_hash_table_free): Likewise. + (elf_i386_allocate_local_dynrelocs): Likewise. + (elf_i386_finish_local_dynamic_symbol): Likewise. + (bfd_elf64_bfd_link_hash_table_free): Likewise. + (elf_i386_link_hash_table_create): Create loc_hash_table and + loc_hash_memory. + (elf_i386_check_relocs): Handle local STT_GNU_IFUNC symbols. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Likewise. + (elf_i386_finish_dynamic_sections): Likewise. + (elf_i386_finish_dynamic_symbol): Check _DYNAMIC only if sym + isn't NULL. + + * elf64-x86-64.c: Include "objalloc.h" and "hashtab.h". + (elf64_x86_64_link_hash_table): Add loc_hash_table and + loc_hash_memory. + (elf64_x86_64_local_hash): New. + (elf64_x86_64_local_htab_hash): Likewise. + (elf64_x86_64_local_htab_eq): Likewise. + (elf64_x86_64_get_local_sym_hash): Likewise. + (elf64_x86_64_link_hash_table_free): Likewise. + (elf64_x86_64_allocate_local_dynrelocs): Likewise. + (elf64_x86_64_finish_local_dynamic_symbol): Likewise. + (bfd_elf64_bfd_link_hash_table_free): Likewise. + (elf64_x86_64_link_hash_table_create): Create loc_hash_table + and loc_hash_memory. + (elf64_x86_64_check_relocs): Handle local STT_GNU_IFUNC + symbols. + (elf64_x86_64_size_dynamic_sections): Likewise. + (elf64_x86_64_relocate_section): Likewise. + (elf64_x86_64_finish_dynamic_sections): Likewise. + (elf64_x86_64_finish_dynamic_symbol): Check _DYNAMIC only if + sym isn't NULL. + +2009-06-10 Philip Blundell + + * elf32-arm.c (elf32_arm_fix_exidx_coverage): Avoid crash if + elf_sec->this_hdr == NULL. + +2009-06-12 Tristan Gingold + + * reloc.c: Add BFD_RELOC_MACH_O_SECTDIFF and BFD_RELOC_MACH_O_PAIR. + * bfd-in2.h: Regenerated. + * libbfd.h: Regenerated. + + * mach-o.c (FILE_ALIGN): New macro. + (bfd_mach_o_canonicalize_symtab): Adjust for bfd_mach_o_asymbol. + (bfd_mach_o_print_symbol): Ditto. + (bfd_mach_o_scan_write_thread): Adjust type of variable offset. + (bfd_mach_o_get_reloc_upper_bound): New function. + (bfd_mach_o_canonicalize_reloc): Ditto. + (bfd_mach_o_scan_write_relocs): Ditto. + (bfd_mach_o_scan_write_section_32): Remove offset argument. + (bfd_mach_o_scan_write_section_64): Ditto. + (bfd_mach_o_scan_write_segment_32): Write relocs. Fix size of data + written for load command. Do not compute section file offset. + (bfd_mach_o_scan_write_segment_64): Ditto. + (bfd_mach_o_scan_write_symtab): Compute file offset first. + Adjust for bfd_mach_o_asymbol. Move code to convert from BFD to + Mach-O to ... + (bfd_mach_o_mangle_symbols): ... this new function. + (bfd_mach_o_write_contents): Be sure to have load commands built. + Call bfd_mach_o_mangle_symbols. + (bfd_mach_o_build_commands): Adjust for filelen field. + Use FILE_ALIGN macro. Clear section file offset if section is empty. + Do not set symtab file offset anymore here. + (bfd_mach_o_make_empty_symbol): Allocate a bfd_mach_o_asymbol. + (bfd_mach_o_make_bfd_section): Set SEC_RELOC if has reloc. + Set reloc_count and rel_filepos section fields. + (bfd_mach_o_scan_read_section_32): Type of argument offset is now + unsigned int. + (bfd_mach_o_scan_read_section_64): Ditto. + (bfd_mach_o_scan_read_section): Ditto. + (bfd_mach_o_scan_read_symtab_symbol): Typr of argument s is now + bfd_mach_o_asymbol. Use unsigned int for file offset type. + (bfd_mach_o_scan_read_symtab_symbol): Adjust for bfd_mach_o_asymbol. + Handle weak-ref symbols. + (bfd_mach_o_scan_read_symtab_symbols): Adjust for bfd_mach_o_asymbol. + (bfd_mach_o_scan_read_dysymtab_symbol): Ditto. + (bfd_mach_o_scan): Remove assignment to removed field. + (bfd_mach_o_mkobject_init): Ditto. + (bfd_mach_o_bfd_print_private_bfd_data): Adjust printf formatter. + (bfd_mach_o_bfd_reloc_type_lookup): New macro. + (bfd_mach_o_bfd_reloc_name_lookup): Ditto. + (bfd_mach_o_swap_reloc_in): Ditto. + (bfd_mach_o_swap_reloc_out): Ditto. + + * mach-o.h (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_NON_LAZY) + (BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_LAZY) + (BFD_MACH_O_REFERENCE_FLAG_DEFINED) + (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_DEFINED) + (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY) + (BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY) + (BFD_MACH_O_REFERENCED_DYNAMICALLY, BFD_MACH_O_N_DESC_DISCARDED) + (BFD_MACH_O_N_NO_DEAD_STRIP, BFD_MACH_O_N_WEAK_REF) + (BFD_MACH_O_N_WEAK_DEF): New macros. + Add comments. + (bfd_mach_o_section_type): Add new enumeration values. + (BFD_MACH_O_S_SELF_MODIFYING_CODE) + (BFD_MACH_O_S_ATTR_LIVE_SUPPORT) + (BFD_MACH_O_S_ATTR_NO_DEAD_STRIP) + (BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS, BFD_MACH_O_S_ATTR_NO_TOC): New + macros. + (BFD_MACH_O_GENERIC_RELOC_VANILLA) + (BFD_MACH_O_GENERIC_RELOC_PAIR) + (BFD_MACH_O_GENERIC_RELOC_SECTDIFF) + (BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR) + (BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF): Ditto. + (BFD_MACH_O_RELENT_SIZE): Ditto. + (BFD_MACH_O_R_PCREL, BFD_MACH_O_GET_R_LENGTH) + (BFD_MACH_O_R_EXTERN, BFD_MACH_O_GET_R_TYPE) + (BFD_MACH_O_GET_R_SYMBOLNUM, BFD_MACH_O_SET_R_LENGTH) + (BFD_MACH_O_SET_R_TYPE, BFD_MACH_O_SET_R_SYMBOLNUM): Ditto. + (BFD_MACH_O_SR_SCATTERED, BFD_MACH_O_SR_PCREL) + (BFD_MACH_O_GET_SR_LENGTH, BFD_MACH_O_GET_SR_TYPE) + (BFD_MACH_O_GET_SR_ADDRESS, BFD_MACH_O_SET_SR_LENGTH) + (BFD_MACH_O_SET_SR_TYPE, BFD_MACH_O_SET_SR_ADDRESS): Ditto. + (bfd_mach_o_reloc_info): New struct. + (bfd_mach_o_asymbol): New struct. + (bfd_mach_o_symtab_command): The symbols field is now of type + bfd_mach_o_asymbol. + (bfd_mach_o_load_command): The offset and len fields are now of type + unsigned int. + (mach_o_data_struct): Remove symbols, nsymbols and ibfd fields. + Add a filelen field. Add comments. + (bfd_mach_o_backend_data): New struct. + (bfd_mach_o_get_backend_data): New macro. + (bfd_mach_o_scan_read_symtab_symbol): Parameter symbol now of type + bfd_mach_o_asymbol. + (bfd_mach_o_scan_read_dysymtab_symbol): Ditto. + (bfd_mach_o_get_reloc_upper_bound): New prototype. + (bfd_mach_o_canonicalize_reloc): Ditto. + + * mach-o-target.c (bfd_mach_o_bfd_is_local_label_name): Remove + duplicated macro. Now defined to _bfd_generic_is_local_label. + (TARGET_NAME_BACKEND): New macro... + (TARGET_NAME_BACKEND): ... used to name a new variable. + (TARGET_NAME): Define relocs table using bfd_mach_o, reference + Mach-O backend data. + + * mach-o-i386.c (i386_howto_table): New variable. + (bfd_mach_o_i386_swap_reloc_in): New function. + (bfd_mach_o_i386_swap_reloc_out): Ditto. + (bfd_mach_o_i386_bfd_reloc_type_lookup): Ditto. + (bfd_mach_o_i386_bfd_reloc_name_lookup): Ditto. + (bfd_mach_o_swap_reloc_in, bfd_mach_o_swap_reloc_out): New macros. + (bfd_mach_o_bfd_reloc_type_lookup) + (bfd_mach_o_bfd_reloc_name_lookup): Ditto. + +2009-06-11 Eric Paris + Nick Clifton + + * opncls.c (_maybe_make_executable): New function. Gives execute + permission to an executable bfd that was opened for writing + provided that it is a regular file. Replaces common code found in... + (bfd_close): here and ... + (bfd_close_all_done): here. + +2009-06-11 Anthony Green + + * reloc.c: Add BFD_RELOC_MOXIE_10_PCREL. + * bfd-in2.h: Rebuilt. + * libbfd.h: Rebuilt. + * elf32-moxie.c (moxie_elf_howto_table): Add R_MOXIE_PCREL10 + relocation support. + (moxie_reloc_map): Ditto. + Clean up copyright notice. + +2009-06-10 Paul Pluzhnikov + + * bfd-in2.h: bfd_mmap prototype. + * bfdio.c (bfd_mmap): New function. + * libbfd.h (bfd_iovec): Add bmmap. + * cache.c (cache_bmmap): New function. + (cache_iovec): Initialize bmmap member. + * opencls.c (opncls_bmmap): New function. + (opncls_iovec): Initialize bmmap member. + +2009-06-09 Tristan Gingold + + * mach-o.h (bfd_mach_o_symtab_command): Remove stabs_segment + and stabstr_segment fields. + (mach_o_be_vec, mach_o_le_vec): Removed + (bfd_mach_o_version): New prototype. + + * mach-o.c (bfd_mach_o_version): Make this function public. + (mach_o_wide_p): New function. + (bfd_mach_o_wide_p): Ditto. + (bfd_mach_o_convert_section_name_to_bfd): Add prefix only for + weird names. + (bfd_mach_o_convert_section_name_to_mach_o): Fix typo in comment. + Search in the list only if the name starts with a dot. + (bfd_mach_o_write_header): Use mach_o_wide_p instead of hard-coded + test. Check bfd_seek status. + (bfd_mach_o_scan_write_thread): Check bfd_seek status. + (bfd_mach_o_scan_write_section_32): Ditto. + (bfd_mach_o_scan_write_section_64): Ditto. + (bfd_mach_o_scan_write_section): Removed. + (bfd_mach_o_scan_write_segment): Split into ... + (bfd_mach_o_scan_write_segment_32): ... this and ... + (bfd_mach_o_scan_write_segment_64): ... this. Check bfd_seek status. + (bfd_mach_o_scan_write_symtab_symbols): Moved into ... + (bfd_mach_o_scan_write_symtab): ... this. Write symtab from BFD + symbol table. Now returns a boolean. + (bfd_mach_o_write_contents): Set filetype. Check bfd_seek status. + Adjust for status type. + (bfd_mach_o_build_commands): Use mach_o_wide_p instead of hard-coded + test. Write symbol table. Numbers the sections. + (bfd_mach_o_read_header): Check bfd_seek status. + Use mach_o_wide_p instead of hard-coded test. + (bfd_mach_o_scan_read_section_32): Check bfd_seek status. + (bfd_mach_o_scan_read_section_64): Ditto. + (bfd_mach_o_scan_read_symtab_symbol): Ditto. Check bfd_seek status. + Use BFD_MACH_O_N_TYPE instead of hard-coded value. Correctly + handled common symbols. + (bfd_mach_o_scan_read_symtab_strtab): Check bfd_seek status. + (bfd_mach_o_scan_read_dysymtab_symbol): Ditto. + (bfd_mach_o_scan_read_dylinker): Ditto. + (bfd_mach_o_scan_read_dylib): Ditto. + (bfd_mach_o_scan_read_thread): Ditto. + (bfd_mach_o_scan_read_symtab): Ditto. + Do not create a section for the stabs. + (bfd_mach_o_scan_read_uuid): Check bfd_seek status. + (bfd_mach_o_scan_read_segment): Ditto. + (bfd_mach_o_scan_read_command): Ditto. + (bfd_mach_o_scan_start_address): Ditto. + (bfd_mach_o_scan): Use mach_o_wide_p instead of hard-coded test. + (bfd_mach_o_archive_p): Check bfd_seek status. + (bfd_mach_o_core_fetch_environment): Ditto. + + * mach-o-i386.c (bfd_mach_o_i386_mkobject): Don't set filetype. + +2009-06-06 H.J. Lu + + * elf32-i386.c (elf_i386_link_hash_table): Add irelifunc. + (elf_i386_link_hash_table_create): Initialize irelifunc. + (elf_i386_check_relocs): Updated. Set up irelifunc for + shared objects. + (elf_i386_allocate_dynrelocs): Use irelifunc for dynamic + relocation for non-GOT reference of STT_GNU_IFUNC symbol in + shared objects. + (elf_i386_relocate_section): Likewise. + + * elf64-x86-64.c (elf64_x86_64_link_hash_table): Add irelifunc. + (elf64_x86_64_link_hash_table_create): Initialize irelifunc. + (elf64_x86_64_check_relocs): Updated. Set up irelifunc for + shared objects. + (elf64_x86_64_allocate_dynrelocs): Use irelifunc for dynamic + relocation for non-GOT reference of STT_GNU_IFUNC symbol in + shared objects. + (elf64_x86_64_relocate_section): Likewise. + + * elf-bfd.h (_bfd_elf_create_static_ifunc_sections): Renamed to + ... + (_bfd_elf_create_ifunc_sections): This. + + * elflink.c (_bfd_elf_create_static_ifunc_sections): Renamed to + ... + (_bfd_elf_create_ifunc_sections): This. Create .rel[a].ifunc + for shared objects. + +2009-06-06 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Make room for dynamic + relocation for R_386_32 against STT_GNU_IFUNC symbol when + building shared object. Check info->executable instead of + !info->shared when setting non_got_ref. + (elf_i386_allocate_dynrelocs): Allocate dynamic relocation + for non-GOT reference of STT_GNU_IFUNC symbol in shared + object. Allocate GOT relocation agsinst STT_GNU_IFUNC + symbol if needed. + (elf_i386_relocate_section): Output dynamic relocation for + R_386_32 against STT_GNU_IFUNC symbol to get the real + function address when building shared object. + (elf_i386_finish_dynamic_symbol): Output R_386_GLOB_DAT + relocation for STT_GNU_IFUNC symbol in shared object. + + * elf64-x86-64.c (elf64_x86_64_check_relocs): Make room for + dynamic relocation for R_X86_64_64 against STT_GNU_IFUNC + symbol when building shared object. Check info->executable + instead of !info->shared when setting non_got_ref. + (elf64_x86_64_allocate_dynrelocs): Allocate dynamic relocation + for non-GOT reference of STT_GNU_IFUNC symbol in shared + library. Allocate GOT relocation agsinst STT_GNU_IFUNC symbol + if needed. + (elf64_x86_64_relocate_section): Output dynamic relocation + for R_X86_64_64 against STT_GNU_IFUNC symbol to get the real + function address when building shared object. + (elf64_x86_64_finish_dynamic_symbol): Output R_X86_64_GLOB_DAT + relocation for STT_GNU_IFUNC symbol in shared object. + +2009-06-06 Jan Kratochvil + + * Makefile.am: Run "make dep-am". + (BFD32_BACKENDS): Add mach-o-i386.lo. + (BFD32_BACKENDS_CFILES): Add mach-o-i386.c. + * Makefile.in: Regenerate. + +2009-06-06 Alan Modra + + * elf32-spu.c (spu_elf_relocate_section): Match overlay number + when looking for soft-icache stubs. + +2009-06-05 Tristan Gingold + + * mach-o.h: Update copyright year. + (bfd_mach_o_mach_header_magic): New enum. + (bfd_mach_o_cpu_subtype): Now an enum. + (BFD_MACH_O_HEADER_SIZE, BFD_MACH_O_HEADER_64_SIZE): New macros. + (BFD_MACH_O_SECTION_SIZE, BFD_MACH_O_SECTION_64_SIZE): Ditto. + (BFD_MACH_O_LC_SEGMENT_SIZE, BFD_MACH_O_LC_SEGMENT_64_SIZE): Ditto. + (bfd_mach_o_load_command): Field type_required is now a boolean. + Reindent prototypes. + (bfd_mach_o_object_p, bfd_mach_o_core_p): Remove. + (bfd_mach_o_bfd_copy_private_symbol_data): Add a prototype. + (bfd_mach_o_bfd_copy_private_section_data): Ditto. + (bfd_mach_o_bfd_copy_private_bfd_data): Ditto. + (bfd_mach_o_get_symtab_upper_bound): Ditto. + (bfd_mach_o_canonicalize_symtab): Ditto. + (bfd_mach_o_get_symbol_info): Ditto. + (bfd_mach_o_print_symbol): Ditto. + (bfd_mach_o_bfd_print_private_bfd_data): Ditto. + (bfd_mach_o_make_empty_symbol): Ditto. + (bfd_mach_o_write_contents): Ditto. + + * mach-o.c (bfd_mach_o_object_p, bfd_mach_o_core_p, + bfd_mach_o_mkobject): Defines. + (bfd_mach_o_valid): Returns FALSE/TRUE instead of 0/1. + Do not check with target vector but with flavour. + (struct mach_o_section_name_xlat): New declaration. + (dwarf_section_names_xlat): Ditto. + (text_section_names_xlat): Ditto. + (data_section_names_xlat): Ditto. + (struct mach_o_segment_name_xlat): Ditto. + (segsec_names_xlat): Ditto. + (bfd_mach_o_convert_section_name_to_bfd): New function. + (bfd_mach_o_convert_section_name_to_mach_o): Ditto. + (bfd_mach_o_bfd_copy_private_symbol_data): Make it public. + (bfd_mach_o_bfd_copy_private_section_data): Ditto. + (bfd_mach_o_bfd_copy_private_bfd_data): Ditto. + Accept any input and output flavour. Do not share private data + anymore. + (bfd_mach_o_count_symbols): Add a comment. + (bfd_mach_o_get_symtab_upper_bound): Make it public. + (bfd_mach_o_canonicalize_symtab): Ditto. + (bfd_mach_o_get_symbol_info): Ditto. + (bfd_mach_o_print_symbol): Ditto. + (bfd_mach_o_write_header): Now returns a boolean instead of an int. + Use constants instead of hard-coded values. + (bfd_mach_o_scan_write_section_32): Use constants instead of hard-coded + values. + (bfd_mach_o_scan_write_section_64): Ditto. + (bfd_mach_o_scan_write_segment): Ditto. + Do not copy sections anymore. + (bfd_mach_o_write_contents): Make it public. + Remove dead code. Rewrite typeflag assignment. + (bfd_mach_o_build_commands): New function. + (bfd_mach_o_set_section_contents): Ditto. + (bfd_mach_o_make_empty_symbol): Make it public. + (bfd_mach_o_read_header): Make it static. + Convert to bfd_boolean. + Use constants instead of hard-coded values. + (bfd_mach_o_make_bfd_section): Call + bfd_mach_o_convert_section_name_to_bfd to create name. + (bfd_mach_o_scan_read_section_32): Use constants instead of hard-coded + values. + (bfd_mach_o_scan_read_section_64): Ditto. + (bfd_mach_o_scan_read_segment): Do not create a bfd section for + a segment anymore. Use constants instead of hard-coded values. + (bfd_mach_o_scan_read_command): Fix style. + (bfd_mach_o_scan): Use constants instead of hard-coded values. + Get rid of BFD_IO_FUNCS. + (bfd_mach_o_mkobject_init): Renamed from bfd_mach_o_mkobject. + (bfd_mach_o_header_p): Created from bfd_mach_o_object_p. + (bfd_mach_o_gen_object_p): New function, replaces bfd_mach_o_object_p. + (bfd_mach_o_object_p): Removed. + (bfd_mach_o_gen_core_p): New function, replaces ... + (bfd_mach_o_core_p): ... deleted. + (bfd_mach_o_bfd_print_private_bfd_data): Make it public. + + * mach-o-i386.c: New file. + * config.bfd: Use mach_o_i386_vec as targ_defvec for ix86-darwin. + * configure.in (TDEFINES): Add mach_o_i386_vec. + * configure: Regenerated. + * targets.c: Add mach_o_i386_vec. + + * mach-o.c: Update copyright years. + (BFD_IO_FUNCS): Remove (was not used). + (bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr, bfd_mach_o_slurp_armap + bfd_mach_o_slurp_extended_name_table, + bfd_mach_o_construct_extended_name_table, + bfd_mach_o_truncate_arname, bfd_mach_o_write_armap, + bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt, + bfd_mach_o_update_armap_timestamp, bfd_mach_o_close_and_cleanup, + bfd_mach_o_bfd_free_cached_info, bfd_mach_o_new_section_hook, + bfd_mach_o_get_section_contents_in_window, + bfd_mach_o_bfd_is_local_label_name, + bfd_mach_o_bfd_is_target_special_symbol, + bfd_mach_o_bfd_is_local_label_name, bfd_mach_o_get_lineno, + bfd_mach_o_find_nearest_line, bfd_mach_o_find_inliner_info, + bfd_mach_o_bfd_make_debug_symbol, bfd_mach_o_read_minisymbols, + bfd_mach_o_minisymbol_to_symbol, + bfd_mach_o_bfd_get_relocated_section_contents, + bfd_mach_o_bfd_relax_section, bfd_mach_o_bfd_link_hash_table_create, + bfd_mach_o_bfd_link_hash_table_free, bfd_mach_o_bfd_link_add_symbols, + bfd_mach_o_bfd_link_just_syms, bfd_mach_o_bfd_final_link, + bfd_mach_o_bfd_link_split_section, bfd_mach_o_set_arch_mach, + bfd_mach_o_bfd_merge_private_bfd_data, + bfd_mach_o_bfd_set_private_flags, bfd_mach_o_get_section_contents, + bfd_mach_o_bfd_gc_sections, bfd_mach_o_bfd_merge_sections, + bfd_mach_o_bfd_is_group_section, bfd_mach_o_bfd_discard_group, + bfd_mach_o_section_already_linked, bfd_mach_o_bfd_define_common_symbol, + bfd_mach_o_bfd_copy_private_header_data, + bfd_mach_o_core_file_matches_executable_p): Move these defines ... + * mach-o-target.c: ... here. + Update copyright years. + +2009-06-04 Alan Modra + + * dep-in.sed: Don't use \n in replacement part of s command. + * Makefile.am (DEP1): LC_ALL for uniq. + Run "make dep-am". + * Makefile.in: Regenerate. + +2009-06-03 H.J. Lu + + * elf32-i386.c (elf_i386_allocate_dynrelocs): Remove check of + h->plt.refcount > 0 on STT_GNU_IFUNC symbol. + * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Likewise. + +2009-06-03 H.J. Lu + + * elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate + GOT entry for STT_GNU_IFUNC symbol with pointer equality. + (elf_i386_relocate_section): Adjust R_386_GOT32 relocation + against STT_GNU_IFUNC symbols for static executables. + (elf_i386_finish_dynamic_symbol): Load GOT entry with + PLT entry for STT_GNU_IFUNC symbol with pointer equality. + + * elf64-x86-64.c (elf64_x86_64_allocate_dynrelocs): Allocate + GOT entry for STT_GNU_IFUNC symbol with pointer equality. + (elf64_x86_64_finish_dynamic_symbol): Load GOT entry with + PLT entry for STT_GNU_IFUNC symbol with pointer equality. + +2009-06-02 Richard Sandiford + + * coff-rs6000.c (xcoff_ppc_relocate_section): Allow undefined + symbols to be left unimported when linking statically. + * xcofflink.c (xcoff_link_add_symbols): Ignore global linkage + code when linking statically. + +2009-06-02 H.J. Lu + + * elf32-i386.c (elf_i386_check_relocs): Increment + got.refcount for R_386_GOT32/R_386_GOTOFF relocations + against STT_GNU_IFUNC symbol. + (elf_i386_allocate_dynrelocs): Set got.refcount to 0 if + local STT_GNU_IFUNC definition is used. + (elf_i386_relocate_section): Handle got.offset != -1 for + R_386_GOT32/R_386_GOTOFF relocations against STT_GNU_IFUNC + symbol. + + * elf64-x86-64.c (elf64_x86_64_check_relocs): Increment + got.refcount for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64 + relocations against STT_GNU_IFUNC symbol. + (elf64_x86_64_allocate_dynrelocs): Set got.refcount to 0 if + local STT_GNU_IFUNC definition is used. + (elf64_x86_64_relocate_section): Handle got.offset != -1 + for R_X86_64_GOTPCREL/R_X86_64_GOTPCREL64 relocations against + STT_GNU_IFUNC symbol. + +2009-06-01 H.J. Lu + + PR ld/10205 + * elf32-i386.c (elf_howto_table): Add R_386_IRELATIVE. + (elf_i386_reloc_type_lookup): Likewise. + (R_386_tls): Removed. + (R_386_irelative): New. + (R_386_vt_offset): Updated. + (elf_i386_rtype_to_howto): Likewise. + (elf_i386_link_hash_table): Add igotplt, iplt and irelplt. + (elf_i386_link_hash_table_create): Initialize igotplt, + iplt and irelplt. + (elf_i386_check_relocs): Handle STT_GNU_IFUNC symbol first. + (elf_i386_adjust_dynamic_symbol): Likewise. + (elf_i386_allocate_dynrelocs): Likewise. + (elf_i386_relocate_section): Likewise. + (elf_i386_size_dynamic_sections): Set up .iplt and .igot.plt + sections. + (elf_i386_finish_dynamic_symbol): When building a static + executable, use .iplt, .igot.plt and .rel.iplt sections for + STT_GNU_IFUNC symbols. Generate R_386_IRELATIVE relocation for + locally defined STT_GNU_IFUNC symbol. + + * elf64-x86-64.c (x86_64_elf_howto): Add R_X86_64_IRELATIVE. + (x86_64_reloc_map): Likewise. + (R_X86_64_standard): Updated. + (elf64_x86_64_link_hash_table): Add igotplt, iplt and irelplt. + (elf64_x86_64_link_hash_table_create): Initialize igotplt, + iplt and irelplt. + (elf64_x86_64_check_relocs): Handle STT_GNU_IFUNC symbol first. + (elf64_x86_64_adjust_dynamic_symbol): Likewise. + (elf64_x86_64_allocate_dynrelocs): Likewise. + (elf64_x86_64_relocate_section): Likewise. + (elf64_x86_64_size_dynamic_sections): Set up .iplt and .igot.plt + sections. + (elf64_x86_64_finish_dynamic_symbol): When building a static + executable, use .iplt, .igot.plt and .rela.iplt sections for + STT_GNU_IFUNC symbols. Generate R_X86_64_IRELATIVE relocation + for locally defined STT_GNU_IFUNC symbol. + + * reloc.c (BFD_RELOC_386_IRELATIVE): New. + (BFD_RELOC_X86_64_IRELATIVE): Likewise. + + * bfd-in2.h: Regenerated. + * libbfd.h: Likewise. + +2009-06-01 H.J. Lu + + * elf-bfd.h (struct bfd_elf_section_data): Remove indirect_relocs. + (_bfd_elf_make_ifunc_reloc_section): Removed. + (_bfd_elf_is_ifunc_symbol): Likewise. + (_bfd_elf_create_static_ifunc_sections): New. + + * elflink.c (_bfd_elf_adjust_dynamic_symbol): Move STT_GNU_IFUNC + symbol check to ... + (elf_link_add_object_symbols): Here. + (_bfd_elf_link_hash_hide_symbol): Don't clean plt on + STT_GNU_IFUNC symbol. + (elf_link_output_extsym): Call elf_backend_finish_dynamic_symbol + if a STT_GNU_IFUNC symbol is referenced in a non-shared object. + (IFUNC_INFIX): Removed. + (get_ifunc_reloc_section_name): Likewise. + (_bfd_elf_make_ifunc_reloc_section): Likewise. + (_bfd_elf_is_ifunc_symbol): Likewise. + (_bfd_elf_create_static_ifunc_sections): New. + +2009-05-29 H.J. Lu + + * elf32-i386.c (link_hash_newfunc): Add elf_i386_ prefix. + (create_got_section): Likewise. + (allocate_dynrelocs): Likewise. + (readonly_dynrelocs): Likewise. + (set_tls_module_base): Likewise. + (dtpoff_base): Likewise. + (tpoff): Likewise. + (elf_i386_link_hash_table_create): Updated. + (elf_i386_create_dynamic_sections): Likewise. + (elf_i386_check_relocs): Likewise. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Likewise. + + * elf64-x86-64.c (link_hash_newfunc): Add elf64_x86_64_ prefix. + (create_got_section): Likewise. + (allocate_dynrelocs): Likewise. + (readonly_dynrelocs): Likewise. + (set_tls_module_base): Likewise. + (dtpoff_base): Likewise. + (tpoff): Likewise. + (elf64_x86_64_link_hash_table_create): Updated. + (elf64_x86_64_create_dynamic_sections): Likewise. + (elf64_x86_64_check_relocs): Likewise. + (elf64_x86_64_size_dynamic_sections): Likewise. + (elf64_x86_64_relocate_section): Likewise. + +2009-05-28 Nick Clifton + + * targets.c (_bfd_target_vector): Only include plugin target in + all-targets build if BFD_SUPPORTS_PLUGINS is non-zero. + +2009-05-28 Ulrich Weigand + + * elf32-spu.c (struct call_info): New member broken_cycle. + (remove_cycle): Instead of physically removing call_info structures + to break call graph cycles, mark them using the broken_cycle flag. + (mark_overlay_section): Respect broken_cycle flag. + (unmark_overlay_section): Likewise. + (collect_lib_sections): Likewise. + (collect_overlays): Likewise. + (sum_stack): Likewise. + +2009-05-28 Ulrich Weigand + + * elf32-spu.c (insert_callee): Accumulate incoming callee->count. + (mark_functions_via_relocs): Initialize callee->count to 1. + (pasted_function): Likewise. + (spu_elf_auto_overlay): Honor call counts when determining number + of stubs required in software i-cache mode. + +2009-05-27 Rafael Avila de Espindola + + * plugin.c (program_name): Remove. + (plugin_program_name): New. + (bfd_plugin_set_program_name): New. + (try_load_plugin): Use plugin_program_name. + * plugin.h (bfd_plugin_set_program_name): New. + +2009-05-27 Rafael Avila de Espindola + + * aclocal.m4: Include ../config/plugins.m4. + * configure.in: Use AC_PLUGINS. + * configure: Regenerate. + * Makefile.in: Regenerate. + * doc/Makefile.in: Regenerate. + +2009-05-27 Nathan Sidwell + + * elf32-ppc.c (ppc_elf_relax_section): Work with a partial + link. + * bout.c (b_out_bfd_relax_section): Reject relocatable links. + * elf32-m10300.c (mn10300_elf_relax_section): Likewise. + * elf32-avr.c (elf32_avr_relax_section): Likewise. + * elf32-frv.c (elf32_avr_relax_section): Likewise. + * elf32-xtensa.c (elf_xtensa_relax_section): Likewise. + * elf64-mmix.c (mmix_elf_relax_section): Likewise. + * elfxx-ia64.c (elfNN_ia64_relax_section): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_relax_section): Likewise. + * reloc.c (bfd_generic_relax_section): Likewise. + * reloc16.c (bfd_coff_reloc16_relax_section): Likewise. + * vms.c (vms_bfd_relax_section): Likewise. + +2009-05-26 H.J. Lu + + * elf-bfd.h (_bfd_elf_is_ifunc_symbol): New. + + * elf32-i386.c (is_indirect_symbol): Renamed to ... + * elflink.c (_bfd_elf_is_ifunc_symbol): This. + + * elf32-i386.c (allocate_dynrelocs): Updated. + (elf_i386_relocate_section): Likewise. + * elf64-x86-64.c (allocate_dynrelocs): Likewise. + (elf64_x86_64_relocate_section): Likewise. + + * elf64-x86-64.c (is_indirect_symbol): Removed. + +2009-05-26 Nick Clifton + + * po/id.po: Updated Indonesian translation. + +2009-05-26 Rafael Avila de Espindola + + * Makefile.am: Run "make dep-am". + (AM_CPPFLAGS): New. + (LIBDL): New. + (ALL_MACHINES): Add cpu-plugin.lo. + (ALL_MACHINES_CFILES): Add cpu-plugin.c. + (BFD32_BACKENDS): Add plugin.lo. + (BFD32_BACKENDS_CFILES): Add plugin.c. + (libbfd_la_LIBADD): Add LIBDL + * archures.c (bfd_architecture): Add bfd_arch_plugin. + (bfd_plugin_arch): Declare. + * bfd-in.h (BFD_SUPPORTS_PLUGINS): New. + * bfd.c (bfd): Add plugin_data. + * config.bfd: Handle the plugin target. + * configure.in: Check for --enable-plugins. + (LT_INIT): Use the dlopen option. + * cpu-plugin.c: New. + * plugin.c: New. + * plugin.h: New. + * targets.c (plugin_vec): Declare. + (_bfd_target_vector): Add plugin_vec. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + +2009-05-26 Alan Modra + + * dep-in.sed: Don't modify .o to .lo here. Output one filename + per line with all lines having continuation backslash. Prefix + first line with "A", following lines with "B". + * Makefile.am (DEP): Don't use dep.sed here. + (DEP1): Run $MKDEP on single files, modify .o to .lo here. Use + dep.sed here on dependencies, sort and uniq. + * Makefile.in: Regenerate. + +2009-05-25 Tristan Gingold + + * makefile.vms: Add verilog.obj to object list OBJS. + +2009-05-24 Alan Modra + + * bfdio.c (bfd_seek): Formatting. Ensure newly allocated memory + for BFD_IN_MEMORY is cleared. + (bfd_bwrite): Zero excess memory allocated. + +2009-05-22 Julian Brown + + * elf32-arm.c (THUMB16_BCOND_INSN, THUMB32_INSN, THUMB32_B_INSN): New + macros. + (elf32_arm_stub_a8_veneer_b_cond, elf32_arm_stub_a8_veneer_b) + (elf32_arm_stub_a8_veneer_blx): New stub sequences. + (elf32_arm_stub_type): Add arm_stub_a8_veneer_b_cond, + arm_stub_a8_veneer_b and arm_stub_a8_veneer_blx. + (elf32_arm_stub_hash_entry): Add target_addend, orig_insn fields. + (a8_erratum_fix, a8_erratum_reloc): New structs. + (elf32_arm_link_hash_table): Add a8_erratum_fixes, + num_a8_erratum_fixes, fix_cortex_a8 fields. + (elf32_arm_link_hash_table_create): Zero fix_cortex_a8. + (elf32_arm_add_stub): Split into two parts, creating... + (elf32_arm_create_or_find_stub_sec): New function. + (elf32_arm_final_link_relocate): Add forward declaration. + (arm_build_one_stub): Add support for THUMB32_TYPE, Thumb-2 + relocations, multiple relocations per stub. + (find_stub_size_and_template): New (using parts of arm_size_one_stub). + (arm_size_one_stub): Use find_stub_size_and_template. + (a8_reloc_compare): New. + (find_thumb_glue): Add forward declaration. + (cortex_a8_erratum_scan): New. + (elf32_arm_size_stubs): Add Cortex-A8 erratum workaround support. + (bfd_elf32_arm_set_cortex_a8_fix): New. + (bfd_elf32_arm_set_target_relocs): Add fix_cortex_a8 argument. + (arm_map_one_stub): Add THUMB32_TYPE support. + (a8_branch_to_stub_data): New. + (make_branch_to_a8_stub): New. + (elf32_arm_write_section): Add Cortex-A8 erratum workaround support. + * bfd-in.h (bfd_elf32_arm_set_cortex_a8_fix): New. + (bfd_elf32_arm_set_target_relocs): Add argument for controlling + Cortex-A8 erratum workaround. + * bfd-in2.h: Regenerate. + +2009-05-22 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2009-05-21 Alan Modra + + * elflink.c (elf_link_input_bfd): Correct *pindex change in last + commit. + +2009-05-21 Alan Modra + + * elf-bfd.h (struct elf_backend_data + ): Return an int. + * elf64-ppc.c (ppc64_elf_output_symbol_hook): Return 2 to drop + symbols on deleted .opd entries. + * elflink.c (elf_link_output_sym): Return without outputting sym + if output_symbol_hook returns 2. + (elf_link_output_extsym): Don't assign h->indx when symbol discarded. + Abort if we must not discard sym. + (elf_link_input_bfd): Similarly, don't set finfo->indices for + local syms. + (bfd_elf_final_link): Adjust elf_link_output_sym calls. + * elf-vxworks.c (elf_vxworks_link_output_symbol_hook): Adjust for + elf_backend_link_output_symbol_hook return type change. + * elf32-arm.c (output_arch_syminfo): Likewise. + (elf32_arm_output_map_sym, elf32_arm_output_stub_sym): Likewise. + (elf32_arm_output_arch_local_syms): Likewise. + * elf32-cr16c.c (elf32_cr16c_link_output_symbol_hook): Likewise. + * elf32-score.c (s3_bfd_score_elf_link_output_symbol_hook): Likewise. + (bfd_score_elf_link_output_symbol_hook): Likewise. + * elf32-score.h (s7_bfd_score_elf_link_output_symbol_hook): Likewise. + * elf32-score7.c (s7_bfd_score_elf_link_output_symbol_hook): Likewise. + * elf32-sh64.c (sh64_elf_link_output_symbol_hook): Likewise. + * elf32-spu.c (spu_elf_output_symbol_hook): Likewise. + * elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise. + * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise. + * elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise. + * elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise. + * elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise. + * elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise. + * elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise. + +2009-05-21 Alan Modra + + * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't segfault on + out of range .opd symbols. + +2009-05-21 Dave Korn + + * coffgen.c (coff_print_symbol): Use bfd_fprintf_vma, not + fprintf_vma directly. + * peXXigen.c (pe_print_edata): Likewise. + (pe_print_pdata): Likewise. + (_bfd_XX_print_ce_compressed_pdata): Likewise. + (_bfd_XX_print_private_bfd_data_common): Likewise. + +2009-05-19 Dave Korn + + * cofflink.c (process_embedded_commands): Ignore "-aligncomm". + +2009-05-15 Andrew Stubbs + Paul Brook + + * elf32-arm.c (elf32_arm_fix_exidx_coverage): Don't attempt to + fix discarded sections. + +2009-05-14 Ulrich Weigand + + * elf32-spu.c (mark_overlay_section): Move .init and .fini + sections into the software icache. + +2009-05-14 Ulrich Weigand + + * elf32-spu.c (build_stub): Always build "compact" sofware + i-cache stubs. + +2009-05-14 Ulrich Weigand + + * elf32-spu.c (struct spu_link_hash_table): Add fromelem_size_log2. + (spu_elf_setup): Initialize it. + (spu_elf_size_stubs): Move .ovtab into .bss for software i-cache. + Update to new-sytle cache manager data structures. + (spu_elf_build_stubs): Generate new-style cache manager data + structures and symbols. + (spu_elf_auto_overlay): Update size computation. + +2009-05-14 Ulrich Weigand + + * elf32-spu.c (spu_elf_modify_segment_map): Move all PF_OVERLAY + segments first amongst the program headers. + +2009-05-14 Ulrich Weigand + + * elf32-spu.c (spu_elf_relocate_section): Only encode overlay index + into addresses for relocation types that look at high bits. Remove + special handling of relocation overflow warnings. + +2009-05-14 Ulrich Weigand + + * elf32-spu.c (mark_functions_via_relocs): Handle cycles in the + control flow graph between fragments of a function. + +2009-05-14 Ulrich Weigand + + * elf32-spu.c (spu_elf_size_stubs): Even in software i-cache mode, + generate only a 16-byte .toe section. + (spu_elf_build_stubs, spu_elf_auto_overlay): Likewise. + +2009-05-14 Alan Modra + + * elf32-spu.c (spu_elf_size_stubs): Split out section placement to.. + (spu_elf_place_overlay_data): ..here. New function. + * elf32-spu.h (spu_elf_place_overlay_data): Declare. + +2009-05-13 Andrew Jenner + + * elf32-arm.c: Move sysdep.h to start of file. + 2009-05-11 Ulrich Weigand * elf32-spu.c (spu_elf_find_overlays): Don't use .ovl.init lma as @@ -141,7 +2263,7 @@ 2009-04-21 H.J. Lu * coff-ia64.c (COFF_PAGE_SIZE): Changed to 8K. - + * coffcode.h (coff_compute_section_file_positions): Clear D_PAGED if PE section alignment is smaller than COFF_PAGE_SIZE. @@ -394,7 +2516,7 @@ 2009-04-02 Sterling Augustine - * elf32-xtensa.c (relax_property_section): Always set r_offset + * elf32-xtensa.c (relax_property_section): Always set r_offset to zero. 2009-04-02 Christophe Lyon @@ -410,7 +2532,7 @@ * elf32-vax.c (elf_vax_check_relocs): Do not put relocations against hidden symbols into the GOT or PLT.GOT. - (elf_vax_relocate_section): Do not emit a PCREL reloc + (elf_vax_relocate_section): Do not emit a PCREL reloc into a shared object if it is against a hidden symbol. 2009-04-01 Richard Sandiford