2008-02-26  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_check_relocs): Set pointer_equality_needed
	for R_PPC_REL32 syms.  Don't set non_got_ref on branch reloc syms,
	and assume branch relocs are not dynamic when non-shared.
	(readonly_dynrelocs): New function, split out from..
	(maybe_set_textrel): ..here, renamed from old readonly_dynrelocs.
	(ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries,
	clear non_got_ref..
	(allocate_dynrelocs): ..and don't set u.def for undefined weak.
	Do allow dynamic relocs on undefined symbols.
	(ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
	(ppc_elf_relocate_section): Mirror dynamic reloc changes in
	check_relocs.
	(ppc_elf_finish_dynamic_symbol): Don't give a warning on weak
	plt symbols needing pointer_equality_needed.

2008-02-23  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change.

2008-02-23  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy
	pointer_equality_needed.
	(ppc_elf_check_relocs): Split out non-branch relocs from others
	that might emit dynamic relocs.  Set pointer_equality_needed
	for their symbols.  Don't set non_got_ref on branch reloc symbols.
	(ppc_elf_hash_symbol): New function.
	(elf_backend_hash_symbol): Define.
	(ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed.
	Error if pointer_equality_needed on weak plt symbol.

2008-02-22  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/5788
	* elflink.c (elf_create_symbuf): Correct buffer size and
	position.

2008-02-22  Nick Clifton  <nickc@redhat.com>

	PR 868
	* dwarf2.c: Revert previous patch.  All of the allocate memory is
	on an obstack which will be freed at some other time.

2008-02-20  Nick Clifton  <nickc@redhat.com>

	PR 868
	* libbfd.c (bfd_realloc_or_free): New function.  Performs like
	bfd_realloc, but if the (re)allocation fails, the pointer is
	freed.
	* libbfd-in.h: Prototype.
	* libbfd.h: Regenerate.
	* bfdio.c (bfd_bwrite): Use the new function.
	(bfd_seek): Likewise.
	* bfdwin.c:(bfd_get_file_window): Likewise.
	* elf-strtab.c (_bfd_elf_strtab_add): Likewise.
	* elf32-ppc.c (ppc_elf_relax_section): Likewise.
	* elf32-xtensa.c (vsprintf_msg): Likewise.
	* mach-o.c (bfd_mach_o_core_fetch_environment): Likewise.
	* stabs.c (_bfd_link_seciton_stabs): Likewise.
	* vms-misc.c (_bfd_vms_get_record): Likewise.
	* vms-tir.c (check_section): Likewise.
	* vms.c (vms_new_section_hook): Likewise.
	* elf32-arm.c (elf32_arm_section_map_add): Check that the
	allocation of sec_data->map succeeded before using it.
	* elflink.c (elf_link_output_sym): Do not overwrite finfo->
	symshndxbuf until it is known that the reallocation succeeded.

2008-02-20  Diogo de Carvalho Kraemer  <diogo@kraemer.eng.br>
	    Nick Clifton  <nickc@redhat.com>

	PR 868
	* dwarf2.c (read_abbrevs): Free the abbreviation table if we run
	out of memory.
	(decode_line_info): Free the line_info_table before returning a
	failure result.
	(_bfd_dwarf2_cleanup_debug_info): Free the abbreviation table.
	Free the line table.  Free the function table.  Free the variable
	table.

2008-02-17  Mark Kettenis  <kettenis@gnu.org>

	* elf.c (swap_out_syms): Avoid preprocessing directive within
	macro arg.

2008-02-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* elf.c (assign_file_positions_for_load_sections): Set the type of
	PT_NOTE sections to SHT_NOTE.

2008-02-17  Ulrich Weigand  <uweigand@de.ibm.com>

	* simple.c (bfd_simple_get_relocated_section_contents): Set
	link_info.output_bfd.

2008-02-16  Nathan Sidwell  <nathan@codesourcery.com>

	* dwarf2.c (find_line): Don't trust debug information after an
	unparseable compilation unit.

2008-02-15  Alan Modra  <amodra@bigpond.net.au>

	PR 5765
	* section.c (SEC_LINK_DUPLICATES): Correct.  Renumber following flags.
	* bfd-in2.h: Regenerate.

2008-02-15  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (enum elf_object_id): Add HPPA_ELF_TDATA.
	* elf.c (bfd_elf_allocate_object): Don't check for already allocated
	tdata.
	* elf32-hppa.c (elf32_hppa_mkobject): New function.
	(bfd_elf32_mkobject): Define.
	* elf32-ppc.c (is_ppc_elf_target): Delete.  Replace all uses with..
	(is_ppc_elf): ..this new macro.
	* elf64-ppc.c (is_ppc64_elf_target): Delete.  Replace all uses with..
	(is_ppc64_elf): ..this new macro.

2008-02-15  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c: Replace all accesses to hash->creator field with
	output_bfd->xvec.
	* cofflink.c: Likewise.
	* coff-h8300.c: Likewise.
	* ecoff.c: Likewise.
	* elf32-m68hc1x.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-sparc.c: Likewise.
	* elfxx-mips.c: Likewise.
	* i386linux.c: Likewise.
	* m68klinux.c: Likewise.
	* sparclinux.c: Likewise.
	* sunos.c: Likewise.
	* xcofflink.c: Likewise.
	* linker.c: Likewise.
	(_bfd_link_hash_table_init): Don't store creator.

2008-02-14  Peter Jones  <pjones@redhat.com>

	* efi-rtdrv-ia32.c: New file.
	* efi-bsdrv-ia32.c: New file.
	* efi-rtdrv-ia64.c: New file.
	* efi-bsdrv-ia64.c: New file.
	* efi-rtdrv-x86_64.c: New file.
	* efi-bsdrv-x86_64.c: New file.
	* peicode.h (pe_bfd_object_p): Add support for boot service and
	runtime service drivers.
	* libpei.h: Add macros for EFI formats, and rename the efi application
	format macros to disambiguate.
	* targets.c: Add bfd_target _vec externs.
	(_bfd_tar): Add EFI _vec entries.
	* config.bfd: Add EFI vectors into the selection routines.
	* configure.in: add EFI _vec entries.
	* configure: Regenerate.
	* Makefile.am: Add EFI files.
	* Makefile.in: Regenerate.

2008-02-14  Nathan Sidwell  <nathan@codesourcery.com>

	* dwarf1.c (struct dwarf1_debug): Add syms member.
	(alloc_dwarf1_unit, alloc_dwarf1_func): Check for out of memory.
	(parse_line_table, _bfd_dwarf1_find_nearest_line): Relocate
	section contents, check for out of memory.

	* dwarf1.c (struct dwarf1_debug): Change data pointers to bfd_byte.
	(parse_die): Change data pointers to bfd_byte.
	(parse_line_table, parse_functions_in_unit): Likewise.

2008-02-14  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (compute_bucket_count): Warning fixes.

2008-02-12  DJ Delorie  <dj@redhat.com>

	* elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of
	relocation pointing to local symbol in merged section.

	* elf32-iq2000.c (iq2000_elf_relocate_offset16): New.
	(iq2000_elf_relocate_section): Call it.

2008-02-12  Nick Clifton  <nickc@redhat.com>

	PR ld/5692
	* elf-bfd.h (enum elf_object_id): New enum, used to identify
	target specific extensions to the elf_obj_tdata structure.
	(struct elf_obj_tdata): New field 'object_id'.
	(elf_object_id, elf_program_header_size, elf_symtab_hdr): New
	macros for accessing fields in the elf_obj_tdata structure.
	(bfd_elf_mkobject): Rename to bfd_elf_make_generic_object.
	(bfd_elf_allocate_object): New function.
	* elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object
	and implement by calling bfd_elf_allocate_object.
	(bfd_elf_allocate_object): New function: Allocates an
	elf_obj_tdata structure, possibly with a target specific
	extension.
	* elfxx-target.h (bfd_elfNN_mkobject): Use
	bfd_elf_make_generic_object as the default value.
	* elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata
	for consistency with other, similar structures.
	(is_arm_elf): New macro.  Checks a BFD to make sure that is an ARM
	ELF bfd.
	(elf32_arm_mkobject): Call bfd_elf_allocate_object.
	(bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check
	the bfd being processed.
	(bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
	(bfd_elf32_arm_set_target_relocs): Likewise.
	(bfd_elf32_arm_final_link_relocate): Likewise.
	(bfd_elf32_arm_copy_private_bfd_data): Likewise.
	(bfd_elf32_arm_merge_eabi_attributes): Likewise.
	(bfd_elf32_arm_merge_private_bfd_data): Likewise.
	(bfd_elf32_arm_check_relocs): Likewise.
	(bfd_elf32_arm_gc_mark_extra_sections): Likewise.
	(bfd_elf32_arm_size_dynamic_sections): Likewise.
	(bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr.
	(bfd_elf32_arm_init_maps): Likewise.
	(bfd_elf32_arm_final_link_relocate): Likewise.
	(bfd_elf32_arm_relocate_section): Likewise.
	(bfd_elf32_arm_gc_sweep_hook): Likewise.
	(bfd_elf32_arm_check_relocs): Likewise.
	(bfd_elf32_arm_size_dynamic_sections): Likewise.
	* elf32-i386.c (elf_i386_mkobject): Call bfd_elf_allocate_object.
	(is_i386_elf): New macro.  Checks a BFD to make sure that is an x86
	ELF bfd.
	(elf_i386_check_relocs): Use is_i386_elf macro to check    the bfd
	being processed.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_check_relocs): Use elf_symtab_hdr.
	(elf_i386_gc_sweep_hook): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object.
	(elf_create_pointer_linker_section): Use is_ppc_elf_target to
	verify that the bfd before accessing target specific fields.
	(ppc_elf_check_relocs): Likewise.
	(elf_finish_pointer_linker_section): Likewise.
	(elf_create_pointer_linker_section): Use elf_symtab_hdr.
	(ppc_elf_check_relocs): Likewise.
	(ppc_elf_gc_sweep_hook): Likewise.
	(ppc_elf_tls_optimize): Likewise.
	(ppc_elf_size_dynamic_sections): Likewise.
	(ppc_elf_relax_section): Likewise.
	(ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (struct elf_s390_obj_tdata): Add a comment
	reminding programmers to keep this structure in sync with the one
	defined in elf64-s390.c.
	(elf_s390_mkobject): Call bfd_elf_allocate_object.
	(is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
	ELF bfd.
	(elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
	being processed.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_check_relocs): Use elf_symtab_hdr.
	(elf_s390_gc_sweep_hook): Likewise.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object.
	(is_sh_elf): New macro.  Checks a BFD to make sure that is an SH
	ELF bfd.
	(sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the
	bfd being processed.
	(sh_elf_relocate_section): Likewise.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_copy_private_data): Likewise.
	(sh_elf_relax_section): Use elf_symtab_hdr.
	(sh_elf_size_dynamic_sections): Likewise.
	(sh_elf_relocate_section): Likewise.
	(sh_elf_get_relocated_section_contents): Likewise.
	(sh_elf_gc_sweep_hook): Likewise.
	(sh_elf_check_relocs): Likewise.
	* elf64-alpha.c (elf64_alpha_mkobject): Call bfd_elf_allocate_object.
	(is_alpha_elf): New macro.  Checks a BFD to make sure that is an
	Alpha ELF bfd.
	(elf64_alpha_create_got_section): Use is_alpha_elf macro to check
	the bfd being processed.
	(elf64_alpha_create_dynamic_section): Likewise.
	(elf64_alpha_check_relocs): Likewise.
	(elf64_alpha_size_got_sections): Likewise.
	(elf64_alpha_relax_section): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	(elf64_alpha_final_link): Likewise.
	(elf64_alpha_check_relocs): Use elf_symtab_hdr.
	(elf64_alpha_relax_section): Likewise.
	(elf64_alpha_relocate_section_r): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object.
	(ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd
	being processed.
	(opd_entry_value): Likewise.
	(allocate_dynrelocs): Likewise.
	(ppc64_elf_relocate_section): Likewise.
	(ppc64_elf_check_relocs): Use elf_symtab_hdr.
	(opd_entry_value): Likewise.
	(ppc64_elf_gc_sweep_hook): Likewise.
	(get_sym_h): Likewise.
	(ppc64_elf_edit_opd): Likewise.
	(ppc64_elf_tls_optimize): Likewise.
	(ppc64_elf_edit_toc): Likewise.
	(ppc64_elf_size_dynamic_sections): Likewise.
	(toc_adjusting_stub_needed): Likewise.
	(ppc64_elf_size_stubs): Likewise.
	(ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (struct elf_s390_obj_tdata): Add a comment
	reminding programmers to keep this structure in sync with the one
	defined in elf32-s390.c.
	(elf_s390_mkobject): Call bfd_elf_allocate_object.
	(is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
	ELF bfd.
	(elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
	being processed.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_check_relocs): Use elf_symtab_hdr.
	(elf_s390_gc_sweep_hook): Likewise.
	(elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_relocate_section): Likewise.
	* elf64-x86_64.c (elf64_x86_64_mkobject): Call bfd_elf_allocate_object.
	(is_x86_64_elf): New macro.  Checks a BFD to make sure that is an
	x86_64 ELF bfd.
	(elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd
	being processed.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_check_relocs): Use elf_symtab_hdr.
	(elf64_x86_64_gc_sweep_hook): Likewise.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(elf64_x86_64_relocate_section): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_mkobject): Call bfd_elf_allocate_object.
	(is_sparc_elf): New macro.  Checks a BFD to make sure that is a Sparc
	ELF bfd.
	(_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the
	bfd being processed.
	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
	(_bfd_sparc_elf_size_dynamic_sections): Likewise.
	(_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr.
	(_bfd_sparc_elf_gc_sweep_hook): Likewise.
	(_bfd_sparc_elf_size_dynamic_sections): Likewise.
	(_bfd_sparc_elf_relocate_section): Likewise.

2008-02-12  Alan Modra  <amodra@bigpond.net.au>

	PR 5303, 5755
	* arange-set.c: Delete.
	* arange-set.h: Delete.
	* dwarf2.c: Revert 2007-09-21 changes.
	* Makefile.am: Likewise.
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2008-02-11  Bernd Schmidt  <bernd.schmidt@analog.com>

	* elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it
	if necessary.
	(elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type
	mismatches are detected.

	* elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to
	emit invalid relocs or rofixup entries for deleted .eh_frame entries.

2008-02-11  Daniel Jacobowitz  <dan@codesourcery.com>

	* cache.c (cache_bread): Set bfd_error_file_truncated if EOF
	was reached.
	* srec.c (srec_scan): Calculate the checksum.  Complain on mismatch.

2008-02-07  Alan Modra  <amodra@bigpond.net.au>

	* elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling
	of _ovly_buf_table size.
	(spu_elf_build_stubs): Use low bit of .size as "present" bit.
	Adjust initialisations relating to _ovly_buf_table.

2008-02-04  Bob Wilson  <bob.wilson@acm.org>

	* elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid
	relocation, do not continue processing it.  Ignore R_XTENSA_ASM_EXPAND
	relocations against dynamic symbols.
	(elf_xtensa_finish_dynamic_sections): Do not fail if there is no
	.xt.lit section.

2008-02-04  Kai Tietz  <kai.tietz@onevision.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	PR 5715
	* warning.m4: Enable -Wno-format by default when using gcc on
	mingw.
	* configure: Regenerated.

2008-02-04  Adam Nemet  <anemet@caviumnetworks.com>

	* archures.c: Update copyright.
	(bfd_mach_mips_octeon): New macro.
	* bfd-in2.h: Regenerate.
	* elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon.
	(mips_set_isa_flags): Likewise.
	(mips_mach_extensions): Add Octeon.
	* cpu-mips.c: Update copyright.
	(I_mipsocteon): New enum constant.
	(arch_info_struct): Add Octeon.

2008-02-04  Alan Modra  <amodra@bigpond.net.au>

	* elf32-spu.c (spu_elf_relocate_section): Correct return type.
	Return error status on unexpected relocation errors.

2008-02-04  Alan Modra  <amodra@bigpond.net.au>

	PR ld/5692
	* elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31.  Instead abort
	on non-ELF input.
	* elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue
	processing on non-ELF input.

2008-01-31  Marc Gauthier  <marc@tensilica.com>

	* config.bfd (xtensa*-*-*): Recognize processor variants.

2008-01-31  Nick Clifton  <nickc@redhat.com>

	PR ld/5692
	* elf.c (bfd_elf_get_elf_syms): Check the return value of
	get_elf_backend_data.

2008-01-28  Fabian Groffen  <grobian@gentoo.org>

	* config.bfd (x86_64-*-solaris2): Add support for this target.

2008-01-28  Alan Modra  <amodra@bigpond.net.au>

	Rewrite SPU overlay handling code.  Put overlay calls stubs in the
	overlays where possible.  Use a faster call stub, or optionally at
	compile time, a more compact stub.  Double size of _ovly_buf_table
	so that low bit of _ovly_table.buf can be used as a "present" bit.
	Reserve an extra _ovly_table entry for index zero.
	* elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields,
	add new ones.
	(struct got_entry): New.
	(struct spu_stub_hash_entry): Delete.
	(stub_hash_newfunc, spu_elf_link_hash_table_free): Delete.
	(spu_elf_link_hash_table_create): Adjust for struct changes.
	(spu_stub_name): Delete.
	(spu_elf_find_overlays): Don't track sections from overlay regions.
	Instead set ovl_buf number in spu elf section data.  Error if
	overlays in one region don't start at the same address.  Adjust
	for struct _spu_elf_section_data changes.
	(SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete.
	(OVL_STUB_SIZE, BRSL, LNOP, ILA): Define.
	(needs_ovl_stub): Adjust for struct _spu_elf_section_data changes.
	(enum _insn_type): New.
	(count_stub, build_stub): New functions.
	(allocate_spuear_stubs): Use count_stub.
	(build_spuear_stubs): Use build_stub.
	(populate_stubs, sort_stubs): Delete.
	(process_stubs): New function.
	(write_one_stub): Delete.
	(spu_elf_size_stubs, spu_elf_build_stubs): Rewrite.
	(alloc_stack_info): Adjust for struct _spu_elf_section_data changes.
	(maybe_insert_function, check_function_ranges): Likewise.
	(find_function, pasted_function, build_call_tree): Likewise.
	(spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise.
	(spu_elf_modify_program_headers): Likewise.
	(interesting_section): Detect stub sections differently.  Delete
	htab param, adjust all callers.
	(spu_elf_relocate_section): Rewrite stub handling.
	(spu_elf_output_symbol_hook): Likewise.
	(bfd_elf32_bfd_link_hash_table_free): Delete.
	* elf32-spu.h (struct _spu_elf_section_data): Move input-only and
	output-only fields into a union.  Add ovl_buf.
	(spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes.

2008-01-25  DJ Delorie  <dj@redhat.com>

	* elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New.

2008-01-25  Kai Tietz  <kai.tietz@onevision.com>

	* bfd-in.h: Add mingw I64 support.
	* bfd-in2.h: Regenerated.
	* bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	PR 4453
	* format.c (bfd_check_format_matches): Don't accept archives as
	fully matching unless they have a map.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (_bfd_elf_link_output_relocs): Correct error return.

2008-01-21  Alan Modra  <amodra@bigpond.net.au>

	* ecoff.c (_bfd_ecoff_archive_p): Delete.
	* libecoff.h (_bfd_ecoff_archive_p): Delete.
	* coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p.
	* coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
	(ecoff_biglittle_vec): Likewise.

2008-01-19  Alan Modra  <amodra@bigpond.net.au>

	PR 5646
	* elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
	non-NULL before dereferencing.

2008-01-15  Alan Modra  <amodra@bigpond.net.au>

	PR 5604
	* elf-bfd.h (struct elf_backend_data): Add gc_keep.  Remove param
	names from others.
	(_bfd_elf_gc_keep): Declare.
	* elfxx-target.h (elf_backend_gc_keep): Define.
	(elfNN_bed): Init new field.
	* elflink.c (_bfd_elf_gc_keep): New function.
	(bfd_elf_gc_sections): Call gc_keep.
	* elf64-ppc.c (elf_backend_gc_keep): Define.
	(struct _ppc64_elf_section_data): Move .opd related fields to
	a struct so they don't occupy the same storage.  Adjust accesses
	throughout file.
	(ppc64_elf_gc_keep): New function, split out from..
	(ppc64_elf_gc_mark_hook): ..here.  Don't call _bfd_elf_gc_mark
	to mark .opd section, just set gc_mark.
	(ppc64_elf_edit_opd): Remove no_opd_opt parm.  Don't set opd->adjust
	unless we are changing .opd.  Test non-NULL opd->adjust at all
	accesses throughout file.
	* elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.

2008-01-15  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h (BFD_HOST_LONG_LONG): Delete.
	* bfd-in2.h: Regenerate.

2008-01-11  Tristan Gingold  <gingold@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a
	relocatable.
	* elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
	* elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
	* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
	* elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
	* elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
	* elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
	* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
	* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
	* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
	* elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output
	or executable output with relocations.

2008-01-09  Nick Clifton  <nickc@redhat.com>

	PR gas/5552
	* elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field
	to FALSE for all relocs.

2008-01-09  Richard Sandiford  <rsandifo@nildram.co.uk>

	PR ld/5526
	* elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged
	fields.  Rename u.cie.u.merged to u.cie.u.merged_with.
	(eh_frame_sec_info): Add a cies field.
	(eh_frame_hdr_info): Add a merge_cies field.
	* elf-eh-frame.c (cie): Add a reloc_index member to the personality
	union.
	(_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead
	of hdr_info->cies.
	(_bfd_elf_parse_eh_frame): Remove tmp_cie.  Ccreate an array of
	cie structures in all cases and use it instead of extended_cies.
	If merging, store the cie array in sec_info->cies and point each
	CIE's eh_fde_cie at the associated element.  Do not try to
	calculate the value of the personality routine here; record the
	offset of the relocation instead.  Do not merge CIEs here.
	(_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here...
	(_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead.
	(_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE.
	(find_merged_cie): New function.
	(_bfd_elf_gc_mark_fdes): Use it.  Free sec_info->cies.

2008-01-07  Nick Clifton  <nickc@redhat.com>

	PR binutils/5535
	* vms.c (vms_close_and_cleanup): Check for the presence of a
	vms_private_data_struct before examining any of its fields.

2008-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/5522
	* elflink.c (elf_link_input_bfd): Don't write out a section if
	its output section is marked with SEC_NEVER_LOAD.

For older changes see ChangeLog-2007

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
