+2009-07-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * 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 <Trevor_Smigiel@playstation.sony.com>
+ Alan Modra <amodra@bigpond.net.au>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ 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 <drepper@redhat.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * elflink.c (elf_link_output_extsym): Revert the last change.
+
+2009-07-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ 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 <hongjiu.lu@intel.com>
+
+ 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 <fu@mips.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * bfdio.c (bfd_iovec): Add comments for bmmap.
+ * bfd-in2.h: Regenerated.
+
+2009-07-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.am: Run "make dep-am".
+ * Makefile.in: Regenerated.
+
+2009-07-10 Doug Kwan <dougkwan@google.com>
+
+ * elf32-arm.c (stub_hash_newfunc): Initialize fields
+ target_addend and orig_insn.
+
+2009-07-10 Tom Tromey <tromey@redhat.com>
+
+ * 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 <julian@codesourcery.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * elf.c (_bfd_elf_get_synthetic_symtab): Remove leading zeros
+ when reporting addends.
+
+2009-07-10 Alan Modra <amodra@bigpond.net.au>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * elf.c (_bfd_elf_get_synthetic_symtab): Report addends.
+
+2009-07-10 Alan Modra <amodra@bigpond.net.au>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * elf32-spu.c (spu_elf_auto_overlay): Take into account section
+ alignment when packing sections into overlays.
+
+2009-07-03 Cary Coutant <ccoutant@google.com>
+
+ * dwarf2.c (decode_line_info): Ignore DW_LNE_set_discriminator.
+
+2009-07-03 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ * coffcode.h (sec_to_styp_flags): Partially revert (functional
+ changes only) earlier patch:-
+
+ 2009-06-25 Kai Tietz <kai.tietz@onevision.com>
+
+ * 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 <tromey@redhat.com>
+
+ * aoutx.h (aout_get_external_symbols): Declare 'amt' locally.
+ * bfdwin.c (bfd_free_window): Cast to unsigned long.
+
+2009-07-01 Nick Clifton <nickc@redhat.com>
+
+ * elf-m10300.c: Remove trailing white space.
+ * reloc.c: Likewise.
+
+2009-07-01 Douglas B Rupp <rupp@gnat.com>
+
+ * 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 <nickc@redhat.com>
+
+ 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 <nickc@redhat.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ 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 <nickc@redhat.com>
+
+ * elf-m10300.c (mn10300_elf_relax_section): Handle non-section
+ symbols with SEC_MERGE flag.
+
+2009-06-25 Kai Tietz <kai.tietz@onevision.com>
+
+ * 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 <gingold@adacore.com>
+
+ * 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 <espindola@google.com>
+
+ * plugin.c (load_plugin): Use stat and S_ISREG instead of the d_type
+ field of struct dirent.
+
+2009-06-23 Tristan Gingold <gingold@adacore.com>
+
+ * vms.c (vms_get_synthetic_symtab): Remove duplicate definition
+ of this macro. Fix indentation.
+
+2009-06-22 Christophe Lyon <christophe.lyon@st.com>
+
+ * 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 <gingold@adacore.com>
+
+ * mach-o.c (bfd_mach_o_canonicalize_reloc): Append a sentinel to
+ the relocs array.
+
+2009-06-22 Alan Modra <amodra@bigpond.net.au>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_edit_opd): Avoid gcc warning.
+
+2009-06-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.c (elf_link_add_object_symbols): Avoid warning
+ from -Wjump-misses-init in gcc 4.5.0.
+
+2009-06-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * 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 <gingold@adacore.com>
+
+ * mach-o.c (bfd_mach_o_print_private_header): Fix format character.
+
+2009-06-19 Tristan Gingold <gingold@adacore.com>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * 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 <nickc@redhat.com>
+
+ * elflink.c (elf_link_sort_relocs): Return early if there are no
+ relocs to sort.
+
+2009-06-18 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ Merge cegcc and mingw32ce target name changes from
+ CeGCC project:
+
+ 2007-12-25 Pedro Alves <pedro_alves@portugalmail.pt>
+
+ * config.bfd: Add arm*-*-cegcc* target.
+
+ 2007-12-17 Pedro Alves <pedro_alves@portugalmail.pt>
+
+ * config.bfd: Add arm-*-mingw32ce* target.
+
+2009-06-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * 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 <hongjiu.lu@intel.com>
+
+ * 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 <uweigand@de.ibm.com>
+
+ * elf32-spu.c (needs_ovl_stub): Respect .brinfo lrlive bits
+ also for calls.
+
+2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
+
+ * 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 <dougkwan@google.com>
+
+ * 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 <macro@linux-mips.org>
+
+ * elf32-vax.c (elf_vax_plt_sym_val): New function.
+ (elf_backend_plt_sym_val): Define.
+
+2009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
+
+ * elf32-vax.c (elf_vax_reloc_type_class): New function.
+ (elf_backend_reloc_type_class): Define.
+
+2009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
+
+ * 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 <macro@linux-mips.org>
+
+ * 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 <macro@linux-mips.org>
+
+ * elf32-vax.c (elf_vax_plt_entry): Set the entry mask to
+ include <R11:R2>.
+
+2009-06-16 Maciej W. Rozycki <macro@linux-mips.org>
+
+ * elf32-vax.c (elf_vax_check_relocs): Handle the visibility
+ attribute.
+ (elf_vax_relocate_section): Likewise.
+
2009-06-15 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_allocate_dynrelocs): Update comments.
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 habe load commands built.
+ (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.