2002-12-23  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_output_extsym): Heed strip_discarded.

2002-12-23  Nick Clifton  <nickc@redhat.com>

	* archures.c (bfd_arch_get_compatible): Add third parameter
	'accept_unknowns'.  Only accept unknown format BFDs if
	accept_unknowns is true, or if the format is "binary".
        * bfd-in2.h: Regenerate.

2002-12-21  Nick Clifton  <nickc@redhat.com>

	* coff-arm.c (coff_arm_relocate_section): Disable WINCE workaround
	that subtracted 8 from pc relative relocations.

2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>

	* coff-h8300.c: Fix comment typos.
	* coffcode.h: Likewise.
	* cpu-cris.c: Likewise.
	* elf32-vax.c: Likewise.
	* genlink.h: Likewise.
	* linker.c: Likewise.
	* som.c: Likewise.
	* tekhex.c: Likewise.
	* vms-misc.c: Likewise.

2002-12-20  DJ Delorie  <dj@redhat.com>

	* reloc.c: Add BFD_RELOC_XSTORMY16_12.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_12.
	(xstormy16_reloc_map): Add R_XSTORMY16_12.
	
2002-12-19  Kazu Hirata  <kazu@cs.umass.edu>

	* doc/bfdint.texi: Fix typos.

2002-12-20  Paul Eggert  <eggert@twinsun.com>

	Port to POSIX 1003.1-2001.
	* acinclude.m4 (AM_INSTALL_LIBBFD): Do not rely on "test -o".
	* configure.in (build-warnings): Likewise.
	(Horrible hacks to build DLLs on Windows): Do not rely on "tail -1".
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

2002-12-19  Alan Modra  <amodra@bigpond.net.au>

	* coff-h8300.c: Include libiberty.h.
	(h8300_reloc16_extra_cases): Check the hash table creator before
	referencing h8300 specific fields.  Stash the hash table pointer
	in a local var.  Comment typo fixes.
	(h8300_bfd_link_add_symbols): Likewise.

	* bfd/reloc.c (struct reloc_howto_struct): Revise src_mask and
	dst_mask comments.
	* bfd-in2.h: Regenerate.

2002-12-18  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_relocate_section): Reorganize dynamic reloc
	code a little.  Comment on dynamic relocs against section symbols.

2002-12-17  Roger Sayle  <roger@eyesopen.com>

	* configure.host (ia64-*-hpux*): Support 64 bit targets using
	the HP compiler's "long long".

2002-12-16  Andrew MacLeod  <amacleod@redhat.com>

	* elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_LO16
	and R_XSTORMY16_HI16) howto entries.
	(xstormy16_reloc_map): Map R_XSTORMY16_{LO,HI}16 to BFD_RELOC_{LO,HI}16.
	(xstormy16_info_to_howto_rela): Use R_XSTORMY16_GNU_VTINHERIT to
	determine the start of the second reloc table.

2002-12-16  Nathan Tallent  <eraxxon@alumni.rice.edu>

	* ecofflink.c: Fix the reading of the debugging information
	of Tru64/Alpha binaries that are produced by recent Compaq
	compilers.
	(mk_fdrtab): Fix error in creating the FDR (file descriptor)
	table.
	(lookup_line): Because of the strange information sometimes
	generated by Compaq's recent compilers, change how the FDR
	table is searched so that PDRs (procedure descriptors) are
	correctly found.  Note that this change is really more of a hack;
	however, I have included extensive documentation as to why
	this is the best solution short of an extensive rewrite or
	another hack.
	(fdrtab_lookup): Add comments to explain the algorithm.

2002-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* elf-m10300.c (elf32_mn10300_link_hash_newfunc): Reorder
	initializers to match struct declaration.

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

	* dwarf2.c (comp_unit_contains_address): Comment typo fix.
	* elf.c (get_program_header_size): Likewise.
	* elf32-m32r.c (m32r_elf_lo16_reloc): Likewise.
	(m32r_elf_generic_reloc): Likewise.
	* elf32-ppc.c (ppc_elf_howto_init): Likewise.
	* elflink.h (elf_bfd_discard_info): Likewise.

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

	* elf32-i386.c (elf_i386_finish_dynamic_sections): Add output_offset
	to DT_JMPREL.  Use srelplt input section size for DT_PLTRELSZ and
	DT_RELSZ adjustment, not output section.  Avoid writing tags when
	unchanged.  Don't assume linker script is sane, adjust DT_REL too.
	* elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Just use raw
	size of srelplt for DT_PLTRELSZ.  Use srelplt input section size for
	DT_RELASZ adjustment, not output section.  Avoid writing tags when
	unchanged.  Adjust DT_RELA.
	* elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Tweaks for better
	formatting.  Avoid writing tags when unchanged.  Adjust DT_RELA.

2002-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Don't divide
	addend by 4.

2002-12-12  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (struct mips_got_entry): New.
	(struct mips_got_info): Added got_entries field.
	(mips_elf_got_entry_hash, mips_elf_got_entry_eq): New functions.
	(mips_elf_local_got_index, mips_elf_got_page,
	mips_elf_got16_entry): Re-implement in terms of new...
	(mips_elf_create_local_got_entry): Rewrite to use got_entries.
	Change return type.
	(mips_elf_highest): Warning clean-up.
	(mips_elf_create_got_section): Initialize got_entries.
	(_bfd_mips_elf_check_relocs): Use got_entries to estimate
	local got size.
	(_bfd_mips_elf_size_dynamic_sections): Do not account for
	GOT_PAGE entries, since we now reuse GOT16 entries.

2002-12-10  Jason Thorpe  <thorpej@wasabisystems.com>

	* aoutx.h (set_section_contents): Allow an otherwise unrepresentable
	read-only section that lies after .text and before .data to be
	written into the output file and included in a_text.
	(translate_to_native_sym_flags): If an otherwise unrepresentable
	section was merged with .text, convert its symbols to N_TEXT
	symbols.
	* libaout.h (aout_section_merge_with_text_p): New macro.

2002-12-08  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h: Comment typo fix.  Formatting.
	* bfd-in2.h: Regenerate.
	* coff64-rs6000.c (xcoff64_openr_next_archived_file): Warning fix.
	* elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): Prototype.
	* elf64-mmix.c (mmix_dump_bpo_gregs): Warning fix.

2002-12-05  Richard Henderson  <rth@redhat.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21BI.
	Only send PCREL21B though the plt.  Fix installed reloc type.
	(elfNN_ia64_relocate_section): Give error for dynamic reloc
	against PCREL22 or PCREL64I; clean up error messages for
	branch relocs.

2002-12-04  Kevin Buettner  <kevinb@redhat.com>

	* elf64-mips.c (elf64_mips_grok_prstatus, elf64_mips_grok_psinfo):
	New functions.
	(elf_backend_grok_prstatus, elf_backend_grok_psinfo): Define.

2002-12-04  David Mosberger  <davidm@hpl.hp.com>

	* cpu-ia64-opc.c: Add operand constant "ar.csd".

2002-12-04  H.J. Lu <hjl@gnu.org>

	* elfxx-ia64.c (get_local_sym_hash): Use section ID instead of
	BFD address when constructing local name.

2002-12-04  Andreas Schwab  <schwab@suse.de>

	* elf32-m68k.c (struct elf_m68k_link_hash_table): Add sym_sec
	member.
	(elf_m68k_link_hash_table_create): Initialize it.
	(elf_m68k_check_relocs): Handle symbols that are forced to be
	local due to visibility changes.
	(elf_m68k_adjust_dynamic_symbol): Likewise.
	(elf_m68k_size_dynamic_sections): Likewise.
	(elf_m68k_discard_copies): Likewise.
	(elf_m68k_relocate_section): Likewise.

2002-12-04  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_edit_opd): Correct typo.

2002-12-04  Alan Modra  <amodra@bigpond.net.au>

	* srec.c (srec_write_symbols): Restore '$' prefix to address
	accidentally removed in 2002-04-04 change.
	(srec_get_symtab): Use 0 instead of `(long) FALSE'.

2002-12-03  Nick Clifton  <nickc@redhat.com>

	* elf32-ppc.c (apuinfo_list_init): New function.
	(apuinfo_list_add): New function: Add a value to the list.
	(apuinfo_list_length): New function: Return the number of
	values on the list.
	(apuinfo_list_element): New function: Return a value on the
	list.
	(apuinfo_list_finish): New function: Free the resources used
	by the list.
	(ppc_elf_begin_write_processing): New function.  Scan the
	input bfds for apuinfo sections.
	(ppc_elf_write_section): New function: Delay the creation of
	the contents of an apuinfo section in an output bfd.
	(ppc_elf_final_write_processing): New function.  Create the
	contents of an apuinfo section in an output bfd.
	(elf_backend_begin_write_processing): Define.
	(elf_backend_final_write_processing): Define.
	(elf_backend_write_section): Define.

2002-12-03  Richard Henderson  <rth@redhat.com>

	* cpu-ia64-opc.c (elf64_ia64_operands): Add ldxmov entry.

2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>

	Fix PR savannah/1417:
	* elf32-m68hc11.c (m68hc11_elf_relax_delete_bytes): Don't adjust
	branch if it goes to the start of the deleted region.

2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>

	* bfd-in2.h (bfd_mach_m6812): Rebuild.
	* archures.c (bfd_mach_m6812_default, bfd_mach_m6812,
	bfd_mach_m6812s): Declare.

	* elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): New function.
	(_bfd_m68hc12_elf_set_private_flags): Call it.
	(_bfd_m68hc12_elf_print_private_bfd_data): Report processor version.
	(_bfd_m68hc12_elf_merge_private_bfd_data): Merge the flags and
	report microcontroller incompatibilities (HC12 vs HCS12).
	(elf_backend_object_p): Update.

2002-11-30  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in.h (TRUE_FALSE_ALREADY_DEFINED, BFD_TRUE_FALSE): Delete.
	(enum bfd_boolean, boolean): Delete.
	(bfd_boolean): Typedef to an int.
	(FALSE, TRUE): Define.
	* aix386-core.c, aix5ppc-core.c, aout-adobe.c, aout-arm.c, aout-cris.c,
	aout-encap.c, aout-ns32k.c, aout-target.h, aout-tic30.c, aoutf1.h,
	aoutx.h, archive.c, archive64.c, archures.c, bfd-in.h, bfd.c, bfdwin.c,
	binary.c, bout.c, cache.c, cisco-core.c, coff-a29k.c, coff-alpha.c,
	coff-apollo.c, coff-arm.c, coff-aux.c, coff-h8300.c, coff-h8500.c,
	coff-i386.c, coff-i860.c, coff-i960.c, coff-ia64.c, coff-m68k.c,
	coff-m88k.c, coff-mcore.c, coff-mips.c, coff-or32.c, coff-ppc.c,
	coff-rs6000.c, coff-sh.c, coff-sparc.c, coff-stgo32.c, coff-tic30.c,
	coff-tic4x.c, coff-tic54x.c, coff-tic80.c, coff-w65.c, coff-we32k.c,
	coff-z8k.c, coff64-rs6000.c, coffcode.h, coffgen.c, cofflink.c,
	corefile.c, cpu-a29k.c, cpu-alpha.c, cpu-arc.c, cpu-arm.c, cpu-avr.c,
	cpu-cris.c, cpu-d10v.c, cpu-d30v.c, cpu-dlx.c, cpu-fr30.c, cpu-frv.c,
	cpu-h8300.c, cpu-h8500.c, cpu-hppa.c, cpu-i370.c, cpu-i386.c,
	cpu-i860.c, cpu-i960.c, cpu-ia64.c, cpu-ip2k.c, cpu-m10200.c,
	cpu-m10300.c, cpu-m32r.c, cpu-m68hc11.c, cpu-m68hc12.c, cpu-m68k.c,
	cpu-m88k.c, cpu-mcore.c, cpu-mips.c, cpu-mmix.c, cpu-ns32k.c,
	cpu-openrisc.c, cpu-or32.c, cpu-pdp11.c, cpu-pj.c, cpu-powerpc.c,
	cpu-rs6000.c, cpu-s390.c, cpu-sh.c, cpu-sparc.c, cpu-tic30.c,
	cpu-tic4x.c, cpu-tic54x.c, cpu-tic80.c, cpu-v850.c, cpu-vax.c,
	cpu-w65.c, cpu-we32k.c, cpu-xstormy16.c, cpu-z8k.c, dwarf1.c,
	dwarf2.c, ecoff.c, ecofflink.c, efi-app-ia32.c, efi-app-ia64.c,
	elf-bfd.h, elf-eh-frame.c, elf-hppa.h, elf-m10200.c, elf-m10300.c,
	elf-strtab.c, elf.c, elf32-arc.c, elf32-arm.h, elf32-avr.c,
	elf32-cris.c, elf32-d10v.c, elf32-d30v.c, elf32-dlx.c, elf32-fr30.c,
	elf32-frv.c, elf32-gen.c, elf32-h8300.c, elf32-hppa.c, elf32-hppa.h,
	elf32-i370.c, elf32-i386.c, elf32-i860.c, elf32-i960.c, elf32-ip2k.c,
	elf32-m32r.c, elf32-m68hc11.c, elf32-m68hc12.c, elf32-m68k.c,
	elf32-mcore.c, elf32-mips.c, elf32-openrisc.c, elf32-or32.c,
	elf32-pj.c, elf32-ppc.c, elf32-s390.c, elf32-sh.c, elf32-sh64-com.c,
	elf32-sh64.c, elf32-sparc.c, elf32-v850.c, elf32-vax.c,
	elf32-xstormy16.c, elf64-alpha.c, elf64-gen.c, elf64-hppa.c,
	elf64-mips.c, elf64-mmix.c, elf64-ppc.c, elf64-ppc.h, elf64-s390.c,
	elf64-sh64.c, elf64-sparc.c, elf64-x86-64.c, elfarm-nabi.c,
	elfarm-oabi.c, elfcode.h, elfcore.h, elflink.c, elflink.h,
	elfn32-mips.c, elfxx-ia64.c, elfxx-mips.c, elfxx-mips.h,
	elfxx-target.h, format.c, freebsd.h, genlink.h, hash.c, hp300hpux.c,
	hppabsd-core.c, hpux-core.c, i386aout.c, i386linux.c, i386lynx.c,
	i386mach3.c, i386msdos.c, i386os9k.c, ieee.c, ihex.c, irix-core.c,
	libaout.h, libbfd-in.h, libbfd.c, libcoff-in.h, libecoff.h, libieee.h,
	libnlm.h, liboasys.h, libpei.h, libxcoff.h, linker.c, lynx-core.c,
	m68klinux.c, m68klynx.c, mach-o.c, mach-o.h, merge.c, mipsbsd.c,
	mmo.c, netbsd-core.c, netbsd.h, nlm.c, nlm32-alpha.c, nlm32-i386.c,
	nlm32-ppc.c, nlm32-sparc.c, nlmcode.h, oasys.c, opncls.c, osf-core.c,
	pc532-mach.c, pdp11.c, pe-arm.c, pe-i386.c, pe-mcore.c, pe-mips.c,
	pe-sh.c, peXXigen.c, pef.c, pei-arm.c, pei-i386.c, pei-mcore.c,
	pei-mips.c, pei-sh.c, peicode.h, ppcboot.c, ptrace-core.c, reloc.c,
	reloc16.c, riscix.c, rs6000-core.c, sco5-core.c, section.c, simple.c,
	som.c, som.h, sparclinux.c, sparclynx.c, srec.c, stabs.c, sunos.c,
	syms.c, targets.c, tekhex.c, ticoff.h, trad-core.c, versados.c,
	vms-gsd.c, vms-hdr.c, vms-misc.c, vms-tir.c, vms.c, vms.h,
	xcoff-target.h, xcofflink.c, xsym.c, xsym.h: Replace boolean with
	bfd_boolean, true with TRUE, false with FALSE.  Simplify comparisons
	of bfd_boolean vars with TRUE/FALSE.  Formatting.
	* bfd-in2.h, libbfd.h, libcoff.h: Regenerate

2002-11-28  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h: Replace occurrences of Elf32_Internal_* and
	Elf64_Internal_* with Elf_Internal_*.  Replace Elf_Internal_Rel
	with Elf_Internal_Rela.
	* elf-hppa.h, elf-m10200.c, elf-m10300.c, elf32-arc.c, elf32-arm.h,
	elf32-avr.c, elf32-cris.c, elf32-d10v.c, elf32-d30v.c, elf32-dlx.c,
	elf32-fr30.c, elf32-frv.c, elf32-gen.c, elf32-h8300.c, elf32-hppa.c,
	elf32-i370.c, elf32-i386.c, elf32-i860.c, elf32-i960.c, elf32-ip2k.c,
	elf32-m32r.c, elf32-m68hc11.c, elf32-m68hc12.c, elf32-m68k.c,
	elf32-mcore.c, elf32-mips.c, elf32-openrisc.c, elf32-or32.c,
	elf32-ppc.c, elf32-s390.c, elf32-sh.c, elf32-v850.c, elf32-vax.c,
	elf32-xstormy16.c, elf64-alpha.c, elf64-gen.c, elf64-hppa.c,
	elf64-mips.c, elf64-mmix.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c,
	elf64-sparc.c, elf64-x86-64.c, elfarm-nabi.c, elfarm-oabi.c,
	elfcode.h, elflink.h, elfn32-mips.c, elfxx-ia64.c, elfxx-mips.c: Ditto.
	* elf-hppa.h (elf_hppa_internal_shdr): Delete.  Use Elf_Internal_Shdr
	throughout instead.
	* elf.c (_bfd_elf_no_info_to_howto_rel): Delete.
	* elfcode.h (elf_swap_reloca_in): Pass source operand as a bfd_byte *.
	Remove INLINE keyword.
	(elf_swap_reloc_in): Likewise.  Also clear r_addend.
	(elf_swap_reloc_out, elf_swap_reloca_out): Pass destination operand
	as a bfd_byte *.
	(elf_write_relocs): Consolidate REL and RELA code.
	(elf_slurp_reloc_table_from_section): Simplify REL code.
	(NAME(_bfd_elf,size_info)): Populate reloc swap entries.
	* elf-bfd.h (MAX_INT_RELS_PER_EXT_REL): Define.
	* elflink.h (elf_link_read_relocs_from_section): Consolidate REL and
	RELA code.
	(elf_link_adjust_relocs): Likewise.  Don't malloc space for temp
	reloc array, use a fixed size of MAX_INT_RELS_PER_EXT_REL.
	(elf_link_output_relocs): Likewise.
	(elf_reloc_link_order): Likewise.
	(elf_finish_pointer_linker_section): Likewise.
	(struct elf_link_sort_rela): Remove union.
	(elf_link_sort_cmp1): Update to suit.
	(elf_link_sort_cmp2): Here too.
	(elf_link_sort_relocs): Consolidate REL and RELA code.  Fix memory
	over-allocation for int_rels_per_ext_rel != 1 case.
	* elf32-arm.h: Update all bfd_elf32_swap_reloc_out calls.
	* elf32-i386.c: Likewise.
	* elf32-cris.c: Likewise for bfd_elf32_swap_reloca_out.
	* elf32-hppa.c, elf32-i370.c, elf32-m68k.c, elf32-ppc.c, elf32-s390.c,
	elf32-sh.c, elf32-vax.c, elfxx-mips.c: Likewise.
	* elf64-alpha.c: Likewise for bfd_elf64_swap_reloca_out.
	* elf64-hppa.c, elf64-mips.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c,
	elf64-sparc.c, elf64-x86-64.c: Likewise.
	* elfxx-ia64.c: Likewise for bfd_elfNN_swap_reloca_out.
	* elfxx-mips.c (sort_dynamic_relocs): Likewise for
	bfd_elf32_swap_reloc_in.

	* elf32-arm.h: Update elf32_arm_info_to_howto calls.
	* elf32-mips.c: Likewise for mips_info_to_howto_rel.
	(mips_elf64_swap_reloc_in): Zero r_addend.
	(mips_elf64_be_swap_reloc_in): Likewise.
	(mips_elf64_slurp_one_reloc_table): Simplify.

	* elf64-alpha.c (alpha_elf_size_info): Populate reloc swap entries.
	* elf64-hppa.c (hppa64_elf_size_info): Likewise.
	* elf64-sparc.c (sparc64_elf_size_info): Likewise.

2002-11-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* elf32-sh.c (sh_elf_relocate_section): Don't complain about
	unresolved debugging relocs in dynamic applications.
	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.

2002-11-26  Alan Modra  <amodra@bigpond.net.au>

	* elf-eh-frame.c (ENSURE_NO_RELOCS): Disregard R_*_NONE relocs.
	(_bfd_elf_discard_section_eh_frame): Don't discard duplicate CIEs
	on a relocatable link.  Comment typos.
	* elf.c (_bfd_elf_link_hash_newfunc): Assign elements of structure
	in the order they are declared.  Clear elf_hash_value too.
	(_bfd_elf_link_hash_table_init): Likewise assign in order.  Clear
	eh_info and tls_segment.
	* elflink.h (elf_link_input_bfd <emit_relocs>): Keep reloc offsets
	sorted when discarding relocs by turning them into R_*_NONE.

	* libbfd.c (warn_deprecated): Comment spelling.
	* po/SRC-POTFILES.in: Regenerate.

2002-11-21  Richard Henderson  <rth@redhat.com>

	* elflink.h (elf_link_add_object_symbols): Don't overwrite the
	arch's st_other bits when merging visibilities.
	(elf_link_output_extsym): Tidy clearing of visibility field.

2002-11-21  Alan Modra  <amodra@bigpond.net.au>

	* coff-mcore.c (SWAP_IN_RELOC_OFFSET): Define.
	(SWAP_OUT_RELOC_OFFSET): Define.

2002-11-20  Alexandre Oliva  <aoliva@redhat.com>

	* elf.c (_bfd_elf_link_hash_table_init): Make sure
	can_refcount is properly extended to the type of
	init_refcount.

2002-11-19  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (MIPS_RELOC_RELA_P): New macro.
	(_bfd_mips_elf_relocate_section): Use it.

	* elfxx-mips.c (MNAME): New macro.
	(_bfd_mips_elf_check_relocs): Use it.
	(_bfd_mips_elf_discard_info): Likewise.
	(_bfd_mips_elf_final_link): Likewise.

2002-11-19  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_edit_opd): When deleting relocs, adjust
	rel_hdr.sh_size too.

2002-11-18  Klee Dienes  <kdienes@apple.com>

	* Makefile.am (BFD32_LIBS): Add bfdwin.lo, bfdio.lo.
	(BFD32_LIBS_CFILES): Add bfdwin.c, bfdio.c.
	(BFD_H_FILES): Add bfdwin.c, bfdio.c.
	(LIBBFD_H_FILES): Add bfdwin.c, bfdio.c.
	Add dependencies for bfdwin.c, bfdio.c.
	* bfd.c: Remove bfd_get_mtime, bfd_get_size.
	* libbfd.c: Remove real_read, bfd_bread, _bfd_window_internal,
	bfd_init_window, bfd_free_window, bfd_get_file_window, bfd_bwrite,
	bfd_tell, bfd_flush, bfd_stat, bfd_seek.
	* bfdio.c: New file.  Contains real_read, bfd_bread, bfd_write,
	bfd_tell, bfd_flush, bfd_stat, bfd_seek, bfd_ge_mtime,
	bfd_get_size (moved from libbfd.c and bfd.c).
	* bfdwin.c New file.  Contains _bfd_window_internal,
	bfd_init_window, bfd_free_window, bfd_get_file_window (moved from
	libbfd.c and bfd.c).
	* po/SRC-POTFILES.in: Regenerate.
	* po/bfd.pot: Regenerate.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* aclocal.m4: Regenerate.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

2002-11-18  Klee Dienes  <kdienes@apple.com>

	* bfd.c (bfd_preserve_save): Don't zero BFD_IN_MEMORY.

2002-11-15  Kazu Hirata  <kazu@cs.umass.edu>

	* coff-h8300.c (h8300_reloc16_estimate): Do not optimize away
	jsr after a short jump.
	* elf32-h8300.c (elf32_h8_relax_section): Likewise.

2002-11-15  Klee Dienes  <kdienes@apple.com>

	* pef.c (bfd_pef_convert_architecture): Move declaration of
	ARCH_POWERPC and ARCH_M68K to the start of the function.

2002-11-14  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* coff-tic4x.c (tic4x_howto_table): Formatting fixup

2002-11-14  Hans-Peter Nilsson  <hp@bitrange.com>

	* elf64-mmix.c (_bfd_mmix_finalize_linker_allocated_gregs):
	For bpo_gregs_section->contents, allocate _raw_size, not
	_cooked_size.

2002-11-13  Klee Dienes  <kdienes@apple.com>

	* config.bfd: Add entries for powerpc-*-darwin and cousins.

2002-11-13  H.J. Lu <hjl@gnu.org>

	* elfcode.h (elf_object_p): Don't restore abfd->arch_info.

2002-11-13  Klee Dienes  <kdienes@apple.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* bfd.c (struct bfd_preserve): New.
	(bfd_preserve_save): New function.
	(bfd_preserve_restore): Ditto.
	(bfd_preserve_finish): Ditto.
	* bfd-in2.h: Regenerate.
	* mach-o.c: Formatting.
	(bfd_mach_o_scan_read_symtab_symbol): Make "value" unsigned.
	(bfd_mach_o_object_p): Use bfd_preserve_save/restore/finish.
	(bfd_mach_o_core_p): Ditto.
	(bfd_mach_o_scan): Pass in mdata.
	* mach-o.h (bfd_mach_o_scan): Update prototype.
	* pef.c: Formatting.
	(bfd_pef_object_p): Use bfd_preserve_save/restore/finish.
	(bfd_pef_xlib_object_p): Ditto.
	(bfd_pef_scan): Pass in mdata.  Move version check to bfd_pef_object_p.
	* pef.h (bfd_pef_scan): Update prototype.
	* xsym.c: Formatting, K&R fixes.
	(bfd_sym_object_p): Use bfd_preserve_save/restore/finish.
	(bfd_sym_scan): New function split out from bfd_sym_object_p.
	* xsym.h (bfd_sym_scan): Declare.
	* elfcode.h (elf_object_p): Use bfd_preserve_save/restore/finish.
	* elfcore.h (elf_core_file_p): Likewise.
	* targets.c (_bfd_target_vector): Revert 2002-11-08 change.

2002-11-12  Nick Clifton  <nickc@redhat.com>

	* po/da.po: Updated Danish translation.

2002-11-12  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_add_object_symbols): Optimize stabs for
	relocatable link too.
	(elf_link_input_bfd): When emitting relocs, adjust offsets for
	eh_frame and stab sections.  Zap deleted relocs.
	(elf_reloc_symbol_deleted_p): Return true for zero r_symndx.
	(elf_bfd_discard_info): Run for relocatable link too.
	* elf64-ppc.c (ppc64_elf_edit_opd): Rename from edit_opd.  Make global.
	Handle ld -r case.
	(ppc64_elf_size_dynamic_sections): Don't call edit_opd from here.
	* elf64-ppc.h (ppc64_elf_edit_opd): Declare.

	* elf-bfd.h (struct cie_header): Move from elf_eh-frame.c.
	(struct cie, struct eh_cie_fde, struct eh_frame_sec_info): Likewise.
	(struct eh_frame_array_ent, struct eh_frame_hdr_info): Likewise.
	(enum elf_link_info_type): Remove ELF_INFO_TYPE_EH_FRAME_HDR.
	(struct eh_frame_hdr_info): Add "hdr_sec", remove "split".
	(struct elf_link_hash_table): Add eh_info.
	(struct elf_obj_tdata): Change eh_frame_hdr to an asection *.
	(_bfd_elf_discard_section_eh_frame): Update prototype.
	(_bfd_elf_discard_section_eh_frame_hdr): Likewise.
	(_bfd_elf_write_section_eh_frame): Likewise.
	(_bfd_elf_write_section_eh_frame_hdr): Likewise.
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Remove "ehdrsec"
	param.  Get "hdr_info" from link hash table.
	(_bfd_elf_discard_section_eh_frame_hdr): Remove "sec" param.  Get
	header section from link hash table.  Save header section to elf_tdata.
	(_bfd_elf_maybe_strip_eh_frame_hdr): Remove local "sec".  Use
	header section from link hash table.  Don't alloc hdr_info.  Clear
	hdr_sec instead of setting "strip".
	(_bfd_elf_eh_frame_section_offset): Formatting.
	(_bfd_elf_write_section_eh_frame): Remove "ehdrsec", add "info" param.
	Get header section from link hash table.
	(_bfd_elf_write_section_eh_frame_hdr): Remove "sec", add "info" param.
	Get header section from link hash table.
	* elf.c (map_sections_to_segments): Use cached eh_frame_hdr.
	(get_program_header_size): Likewise.
	(_bfd_elf_section_offset): Formatting.
	* elflink.h (elf_link_create_dynamic_sections): Stash eh frame header
	section pointer in link hash table.
	(elf_bfd_final_link): Adjust _bfd_elf_write_section_eh_frame_hdr
	and _bfd_elf_write_section_eh_frame calls.  Update comment about
	eh_frame entries.
	(elf_bfd_discard_info): Adjust _bfd_elf_discard_section_eh_frame and
	_bfd_elf_discard_section_eh_frame_hdr calls.  Remove "ehdr".

	* po/SRC-POTFILES.in: Regenerate.

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't zero
	relocs for discarded FDEs.  Remove dead code.
	(_bfd_elf_write_section_eh_frame_hdr): Remove dead code.
	* elflink.h (elf_bfd_discard_info): Don't save edited relocs.
	Tidy conditions under which stabs are edited.  Formatting.
	* elf64-sparc.c (sparc64_elf_relocate_section): Ignore overflows
	from discarded relocs.
	* elfxx-ia64.c (elfNN_ia64_install_dyn_reloc): Add reloc output
	section adjustments after testing magic values.

2002-11-12  Thomas Moestl <tmm@FreeBSD.org>

	* elf64-sparc.c (sparc64_elf_adjust_dynamic_symbol): Correct
	references to large plt symbols.

2002-11-12  Klee Dienes  <kdienes@apple.com>

	* mach-o.c (bfd_mach_o_scan_read_thread): Don't re-use 'i' when
	looking for an unused section name.

2002-11-11  Kazu Hirata  <kazu@cs.umass.edu>

	* coff-h8300.c: Fix formatting.
	* elf32-h8300.c: Likewise.
	* reloc16.c: Likewise.

2002-11-09  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>

	* elf32-arm.h (elf32_arm_size_dynamic_sections): Don't strip output
	section when dynamic section unused;  _bfd_strip_section_from_output
	instead.

2002-11-08  Alan Modra  <amodra@bigpond.net.au>

	* targets.c (_bfd_target_vector): Disable pef_vec, pef_xlib_vec
	and sym_vec.

	* dwarf2.c: Revert last change.

2002-11-07  Michal Ludvig  <mludvig@suse.cz>

	* dwarf2.c (read_indirect_string, read_abbrevs,	decode_line_info,
	_bfd_dwarf2_find_nearest_line): Use
	bfd_simple_get_relocated_section_contents() instead of
	bfd_get_section_contents().
	* reloc.c (bfd_perform_relocation): Add sanity check.
	* simple.c (simple_get_relocated_section_contents): If the section
	does not have any relocs associated with it, just return the
	unadjusted contents.

2002-11-07  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_GOT,
	case R_CRIS_32_GOT>: Correct test for filling in constant .got
	contents, enabling for a non-DSO, for symbols defined in the
	program with --export-dynamic.

2002-11-07  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c: Comment typo fixes.
	(ppc64_elf_merge_private_bfd_data): Allow BFD_ENDIAN_UNKNOWN input.

2002-11-07  Nick Clifton  <nickc@redhat.com>

	* po/da.po: Updated Danish translation.

2002-11-06  Alexandre Oliva  <aoliva@redhat.com>

	* elf64-mips.c (mips_elf64_slurp_one_reloc_table): Generate
	exactly three internal relocs per external reloc.  Set reloc_count
	to the external reloc count.

2002-11-06  Klee Dienes  <kdienes@apple.com>

	 * coff-stgo32.c (stub_bytes): Mark as const.
	 Fix comment formatting.

2002-11-06  Klee Dienes  <kdienes@apple.com>

	* Makefile.am (BFD32_BACKENDS): Add mach-o.lo, pef.lo, and
	xsym.lo.
	(BFD32_BACKENDS_CFILES): Add mach-o.c, pef.c, and xsym.c.
	(SOURCE_HFILES): Add mach-o.h, pef.h, pef-traceback.h, xsym.h
	* archures.c (enum bfd_architecture): Add bfd_arch_m98k.
	* bfd.c (struct bfd): Add private data for mach-o, pef, and sym.
	* targets.c (enum bfd_flavour): Add flavours for mach-o, pef, and
	sym.
	(_bfd_target_vector): Add target vectors for mach-o, pef, and sym.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* xsym.c: New file.  Contains support for the Apple/Metrowerks
	xSYM debugging format.
	* xsym.h: New file.
	* pef.c: New file.  Contains support for the Apple Code Fragment
	Manager Preferred Executable Format
	* pef.h: New file.
	* pef-traceback.h: New file.  Contains support for parsing PowerPC
	traceback tables as used by PEF executables (and perhaps other
	systems as well).
	* mach-o.c: New file.  Contains support for the Mach-O object file
	format.
	* mach-o.h: New file.
	* mach-o-target.c: New file.  Declares the mach-o targets
	themselves.  Included three times by mach-o.c; each time with a
	different set of macros set.

2002-11-06  Graeme Peterson  <gp@qnx.com>

	* Makefile.am: Remove entries for elf32-qnx.[ch].
	* Makefile.in: Regenerate.
	* config.bfd: Change arm-nto to use bfd_elf32_{big|little}arm_vec,
	ppc-nto to use bfd_elf32_powerpc{le}_vec, sh-nto to use
	bfd_elf32_sh{l}_vec, and i386-nto to use bfd_elf32_i386_vec.
	* configure.in: Remove support for bfd_elf32_sh{l}qnx_vec,
	bfd_elf32_powerpc{le}qnx_vec, bfd_elf32_{big|little}armqnx_vec,
	and bfd_elf32_i386qnx_vec, and removed elf32-qnx.lo from other targets.
	bfd_elf32_sh{l}_vec, and i386-nto to use bfd_elf32_i386_vec.
	* configure: Regenerate.
	* elf32-qnx.c: Remove.
	* elf32-qnx.h: Remove.
	* elf.c: Remove calls to QNX specific set_nonloadable_filepos,
	is_contained_by_filepos, and copy_private_bfd_data_p.
	* elf-bfd.h (struct elf_backend_data): Remove set_nonloadable_filepos,
	is_contained_by_filepos, and copy_private_bfd_data_p.
	* elf32-i386.c: Remove QNX extended bfd support.
	* elf32-ppc.c: Remove QNX extended bfd support.
	* elf32-sh.c: Remove QNX extended bfd support.
	* elfarm-nabi.c: Remove QNX extended bfd support.
	* targets.c: Remove qnx vectors.
	* elfxx-target.h (elf_backend_set_nonloadable_filepos): Remove
	(elf_backend_is_contained_by_filepos): Remove.
	(elf_backend_copy_private_bfd_data_p): Remove.
	* po/SRC-POTFILES.in: Regenerate.

2002-11-06  David O'Brien  <obrien@FreeBSD.org>
	    Alan Modra  <amodra@bigpond.net.au>

	* elf64-sparc.c (sparc64_elf_relocate_section): Adjust addend of
	dynamic relocs against section symbols for the output section vma.

2002-11-05  Alan Modra  <amodra@bigpond.net.au>

	* elf32-arm.h (t2a1_push_insn, t2a2_ldr_insn, t2a3_mov_insn,
	t2a4_bx_insn, t2a5_pop_insn, t2a6_bx_insn): Remove.

2002-11-05  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
	    Alan Modra  <amodra@bigpond.net.au>

	* config.bfd (sh-*-linux*): Use bfd_elf*_sh64*lin_vec as sh64
	vectors in target_selvecs.
	(shle-*-netbsdelf*): Use bfd_elf*_sh64*nbsd_vec as sh64 vectors
	in target_selvecs.
	(sh-*-netbsdelf*): Likewise.
	* configure.in (assocvecs): New variable.  Handle assocvecs like
	selvecs.
	* configure: Regenerate.
	* format.c (bfd_check_format_matches): Store bfd_target pointers
	in matching_vector instead of target names.  Select first target
	from bfd_associated_vector that matches a list of ambiguous targets.
	* targets.c (_bfd_associated_vector): New array.
	(bfd_associated_vector): New variable.
	(_bfd_target_vector): Add bfd_elf*_sh64*lin_vec.
	* libbfd-in.h (bfd_associated_vector): Declare.
	* libbfd.h: Regenerate.

2002-11-05  Elias Athanasopoulos  <eathan@otenet.gr>

	* vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is
	non-NULL before dereferencing.

2002-11-04  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* vms.c (vms_object_p): Restore the start address when returning
	NULL.

2002-11-04  Alan Modra  <amodra@bigpond.net.au>
	    Hans-Peter Nilsson  <hp@axis.com>

	* elflink.h (struct elf_final_link_info): Add shndxbuf_size.
	(elf_bfd_final_link): Don't bother zeroing symtab_hdr fields.
	Set up a larger symshndxbuf, and write it out.  Free it on
	exit rather than freeing symbuf twice.  Correct section index
	on output section symbol loop.
	(elf_link_output_sym): Accumulate symbol extension section
	indices, reallocating symshndxbuf rather than writing it out.
	(elf_link_flush_output_syms): Don't flush symshndxbuf.
	* elf.c (assign_section_numbers): Init i_shdrp to all zero.
	Use bfd_zalloc to clear i_shdrp[0] too.

2002-11-03  Stephen Clarke <stephen.clarke@earthling.net>

	 * elf32-sh64-com.c (sh64_address_in_cranges): Use
	_raw_size of cranges section if _cooked_size not yet set.

2002-11-03  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-v850.c (v850_elf_relax_delete_bytes): Correct parameters
	for bfd_elf32_swap_symbol_out.

2002-10-31  David O'Brien  <obrien@FreeBSD.org>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't mix
	signed and unsigned in comparison.

2002-10-30  Daniel Jacobowitz  <drow@mvista.com>

	* coffcode.h: Remove extraneous '\'.

2002-10-28  H.J. Lu <hjl@gnu.org>

	* Makefile.am (targets.lo): Depend on Makefile instead of
	config.status.
	(archures.lo): Likewise.
	* Makefile.in: Regenerated.

2002-10-25  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.bfd (mips*el-*-netbsd*, mips*-*-netbsd*): Add
	bfd_elf64_bigmips_vec and bfd_elf64_littlemips_vec to
	targ_selvecs.

2002-10-25  Jim Wilson  <wilson@redhat.com>

	* elf64-sh64.c (sh_elf64_relocate_section): Call
	_bfd_elf_rela_local_sym.  Handle relocs against STT_SECTION symbol
	of SHF_MERGE section.

2002-10-25  Hans-Peter Nilsson  <hp@axis.com>

	* simple.c: Correct placement of ATTRIBUTE_UNUSED.

2002-10-24  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* aoutx.h (NAME(aout,swap_ext_reloc_in)): Cast bytes->r_index to
	unsigned int.  Cast RELOC_BASE10, RELOC_BASE13 and RELOC_BASE22 to
	unsigned int.
	(NAME(aout,final_link)): Cast enum used in assignment.
	(aout_link_write_symbols): Cast enums in comparisons, int values to
	boolean, enums in assignments to int.
	(aout_link_input_section_std): Cast rel->r_index to unsigned int.
	(aout_link_input_section_ext): Likewise.  Cast enums used in comparisons
	with unsigned ints.
	(aout_link_reloc_link_order): Cast enum to int in assignment.
	* archive.c (_bfd_generic_read_ar_hdr_mag): Cast result of memchr
	calls to char *.
	* bfd-in.h (bfd_set_section_vma): Cast enum true to unsigned int in
	assignment.
	* bfd-in2.h (bfd_set_section_vma): Likewise.
	* bfd.c (bfd_record_phdr): Cast enums in assignments.
	* binary.c (bfd_alloc): Cast enum to long.
	* coffgen.c (_bfd_coff_is_local_label_name): Cast return to boolean.
	* dwarf2.c (read_abbrevs): Add casts to enum types.
	(read_attribute_value): Likewise.
	(arange_add): Cast result of bfd_zalloc call.
	(comp_unit_contains_address): Return true and false.
	(comp_unit_find_nearest_line): Cast return to boolean.
	* format.c (bfd_check_format_matches, bfd_set_format): Likewise.
	* gen-aout.c: define macro '_' if not defined.
	* libbfd.c (bfd_realloc): Cast malloc and realloc to PTR.
	(bfd_bwrite): Cast bfd_realloc to bfd_byte *.
	(bfd_write_bigendian_4byte_int): Cast return to boolean.
	(bfd_seek): Cast bfd_realloc to bfd_byte *.
	(bfd_generic_is_local_label_name): Cast return to boolean.
	* libcoff.h (_bfd_coff_adjust_symndx): Remove extraneous '\'.
	* linker.c (_bfd_link_hash_newfunc): Cast bfd_hash_allocate result to
	struct bfd_hash_entry *.
	(_bfd_generic_link_hash_newfunc): likewise.
	(_bfd_generic_final_link): Cast enum to unsigned int.
	* merge.c (sec_merge_emit): Cast return to boolean.
	(merge_strings): Add casts to const unsigned char *.
	* reloc.c (bfd_get_reloc_code_name): Cast enums in comparison to int.
	(bfd_generic_get_relocated_section_content): Cast enum to unsigned int.
	* section.c (bfd_section_hash_newfunc): Cast bfd_hash_allocate result to
	struct bfd_hash_entry *.
	(bfd_set_section_content): Add cast to PTR in comparison.
	* simple.c (simple_dummy_warning, simple_dummy_undefined_symbol,
	simple_dummy_reloc_overflow, simple_dummy_reloc_dangerous,
	simple_dummy_unattached_reloc,
	bfd_simple_get_relocated_section_contents): Add K&R declarations and
	function definitions.
	* srec.c (S3Forced): Initialize to false.
	(srec_get_symtab): Cast return value from bfd_alloc to asymbol *.
	* stabs.c (_bfd_link_section_stabs): Cast enum to int in comparisons.
	(_bfd_discard_section_stabs): Likewise.  Also cast return to boolean.
	* syms.c (bfd_is_undefined_symclass): Cast return to boolean.
	(_bfd_stab_section_find_nearest_line): Cast enum to bfd_byte in
	comparisons.

2002-10-23  Jakub Jelinek  <jakub@redhat.com>

	* elf64-alpha.c (elf64_alpha_check_relocs): Only put maybe_dynamic
	relocs into shared lib non-allocated reloc sections.

2002-10-23  Nathan Tallent  <eraxxon@alumni.rice.edu>

	* dwarf2.c (add_line_info): Ensure that the line_info_table is
	sorted even when given an out-of-order line sequence.
	(lookup_address_in_line_info_table): When an exact VMA match is
	not found, return line information with the closest VMA.

2002-10-23 Ross Alexander <ross.alexander@uk.neceur.com>

	* elf64-hppa.c: Force DT_FLAGS to always be set.  Required by
	HPUX 11.00 patch PHSS_26559.

2002-10-22  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Don't move
	the options section into a separate section unless IRIX 6
	compatibility is enabled.

2002-10-22  Alexandre Oliva  <aoliva@redhat.com>

	* elflink.h (struct elf_link_sort_rela): Turn rel and rela
	into arrays.
	(elf_link_sort_cmp1, elf_link_sort_cmp2): Adjust.
	(elf_link_sort_relocs): Likewise.  Take int_rels_per_ext_rel
	into account.
	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Compose
	R_MIPS_REL32 with R_MIPS64 if ABI_64_P.

2002-10-21  Graeme Peterson  <gp@qnx.com>

	* targets.c (_bfd_target_vector): Add missing qnx vectors.

2002-10-21  Alan Modra  <amodra@bigpond.net.au>

	* targets.c (bfd_target_list): Don't return the default target twice.

2002-10-21  Elias Athanasopoulos  <eathan@otenet.gr>

	* archive.c (_bfd_archive_bsd_update_armap_timestamp): Replace
	perror with bfd_perror.

2002-10-19  H.J. Lu <hjl@gnu.org>

	* elflink.h (elf_link_add_object_symbols): Correctly handle
	DT_RPATH and DT_RUNPATH.

2002-10-19  Mark Kettenis  <kettenis@gnu.org>

	* elf.c (elfcore_grok_note): Fix recognition on NT_PRXFPREG notes.

2002-10-17  Denis Chertykov  <denisc@overta.ru>

	* elf32-ip2k.c (ELF_MACHINE_ALT1): Define alternate machine code
	for ip2k port.

2002-10-17  Alan Modra  <amodra@bigpond.net.au>

	* elfxx-target.h (USE_REL): Don't define as 1.
	* elf32-arm.h (USE_REL): Provide a default define of 0.
	Use #if rather than #ifdef when testing USE_REL.
	* elf32-m32r.c: Likewise.

	* elf32-arc.c (USE_REL): Define as 1.
	* elf32-d10v.c (USE_REL): Likewise.
	* elf32-m32r.c (USE_REL): Likewise.
	* elf32-m68hc11.c (USE_REL): Likewise.
	* elf32-m68hc12.c (USE_REL): Likewise.
	* elf32-or32.c (USE_REL): Likewise.
	* elfarm-nabi.c (USE_REL): Likewise.

2002-10-16  Jakub Jelinek  <jakub@redhat.com>

	* config.bfd (s390-*-linux*): Add targ64_selvecs.
	(s390x-*-linux*): Add targ_selvecs.

2002-10-16  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (BFD32_BACKENDS): Remove elfarmqnx-nabi.lo,
	elf32-i386-fbsd.lo, elf32-i386qnx.lo, elf32-ppcqnx.lo,
	elf32-sh-lin.lo, elf32-sh64-lin.lo, elf32-sh-nbsd.lo,
	elf32-sh64-nbsd.lo, elf32-shqnx.lo.  Add elf32-qnx.lo.
	(BFD32_BACKENDS_CFILES): Likewise for corresponding C files.
	(BFD64_BACKENDS): Remove elf64-sh64-lin.lo, elf64-sh64-nbsd.lo.
	(BFD64_BACKENDS_CFILES): Likewise for corresponding C files.
	(SOURCE_HFILES): Add elf32-qnx.h.
	(BUILD_HFILES): Add bfdver.h.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* configure.in Update bfd vector dependencies.
	* configure: Regenerate.
	* elf32-i386-fbsd.c: Delete.  Move code to elf32-i386.c.
	* elf32-i386qnx.c: Likewise.
	* elf32-ppcqnx.c: Delete.  Move code to elf32-ppc.c.
	* elf32-sh-nbsd.c: Delete.  Move code to elf32-sh.c.
	* elf32-sh-lin.c: Likewise.
	* elf32-shqnx.c: Likewise.
	* elf32-sh64-lin.c: Delete.  Move code to elf32-sh64.c.
	* elf32-sh64-nbsd.c: Likewise.
	* elf64-sh64-lin.c: Delete.  Move code to elf64-sh64.c.
	* elf64-sh64-nbsd.c: Likewise.
	* elfarmqnx-nabi.c: Delete.  Move code to elfarm-nabi.c.
	* elf32-arm.h (ELF_MAXPAGESIZE): Always define.
	* elf32-i386.c: Remove ELF_ARCH and ELF32_I386_C_INCLUDED tests.
	* elf32-ppc.c: Remove ELF32_PPC_C_INCLUDED tests.
	* elf32-qnx.h (elf_backend_set_nonloadable_filepos): Always define.
	(elf_backend_is_contained_by_filepos): Likewise.
	(elf_backend_copy_private_bfd_data_p): Likewise.
	Globalize and move functions to..
	* elf32-qnx.c: ..here.  New file.
	* elf32-sh.c: Remove ELF_ARCH and ELF32_SH_C_INCLUDED tests.  Don't
	emit target vectors when INCLUDE_SHMEDIA.
	* elf32-sh64.c: Remove ELF_ARCH test.  Move TARGET_* etc. defines to
	end of file.
	* elf64-sh64.c: Remove ELF_ARCH test.
	* elfarm-nabi.c: Remove ELFARM_NABI_C_INCLUDED test.
	* po/BLD-POTFILES.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2002-10-16  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_add_object_symbols): Error out on dynamic objects
	loaded with --just-symbols.

	* elf32-i386qnx.c (TARGET_LITTLE_NAME): Define.
	* elf32-ppcqnx.c (TARGET_LITTLE_NAME, TARGET_BIG_NAME): Define.
	* elf32-shqnx.c (TARGET_LITTLE_NAME, TARGET_BIG_NAME): Define.
	* elfarmqnx-nabi.c (TARGET_LITTLE_NAME, TARGET_BIG_NAME): Define.

2002-10-15  Richard Henderson  <rth@redhat.com>

	* Makefile.am (BFD64_BACKENDS): Remove elf64-alpha-fbsd.
	(BFD64_BACKENDS_CFILES): Likewise.
	* configure.in (bfd_elf64_alpha_freebsd_vec): Use elf64-alpha.
	* elf64-alpha-fbsd.c: Remove file, move code ...
	* elf64-alpha.c: ... here.
	* Makefile.in, configure: Rebuild.

2002-10-14  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relocate_section) [BRSGP]: Increment
	VALUE, not ADDEND.

2002-10-14  Stephen Clarke <stephen.clarke@superh.com>

	* elf32-sh.c (elf_sh_link_hash_entry): Replace
	datalabel_got_offset with union of datalabel_got
	offset and refcount.
	(sh_elf_link_hash_newfunc): Initialize datalabel_got.refcount.
	(allocate_dynrelocs): Delete unnecessary code for
	STT_DATALABEL type.  Create entry in got for
	datalabel version of symbol if datalabel_got.refcount > 0.
	(sh_elf_relocate_section): Use datalabel_got union.
	(sh_elf_gc_sweep_hook): Pull common code to initialize
	h and eh out of switch statement.  Declare seen_stt_datalabel.
	Initialize it.  Decrement datalabel_got.refcount for
	got relocs when seen_stt_datalabel is true.
	Decrement local_got_refcounts entry for datalabel got relocs
	of local symbols.
	(sh_elf_copy_indirect_symbol): Copy datalabel_got field over.
	(sh_elf_check_relocs): Declare seen_stt_datalabel.
	Initialize it.  When seen_stt_datalabel is true, increment
	datalabel_got refcount rather than got.refcount.
	(sh_elf_finish_dynamic_symbol): Create relocs to
	initialize got entry for datalabel version of symbol.

2002-10-14  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	(BFD_H_FILES): Remove version.h.
	* bfd-in.h (BFD_VERSION, BFD_VERSION_DATE, BFD_VERSION_STRING): Move..
	* version.h: ..to here.
	* configure.in (bfd_version_date): Remove.
	(AC_OUTPUT): Make bfdver.h from version.h.
	* bfd.c: #include "bfdver.h".
	* vms-hdr.c: Likewise.
	* Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2002-10-14  Alan Modra  <amodra@bigpond.net.au>

	* archures.c (bfd_mach_i386_i386, bfd_mach_i386_i8086,
	bfd_mach_i386_i386_intel_syntax, bfd_mach_x86_64,
	bfd_mach_x86_64_intel_syntax bfd_mach_ppc, bfd_mach_ppc64,
	bfd_mach_rs6k, bfd_mach_d10v, bfd_mach_sh, bfd_mach_v850,
	bfd_mach_arc_5, bfd_mach_arc_6, bfd_mach_arc_7, bfd_mach_arc_8,
	bfd_mach_m32r, bfd_mach_frv, bfd_mach_frvsimple,
	bfd_mach_ia64_elf64, bfd_mach_ia64_elf32,
	bfd_mach_ip2022, bfd_mach_ip2022ext,
	bfd_mach_s390_31, bfd_mach_s390_64, bfd_mach_xstormy16): Renumber.
	* bfd-in2.h: Regenerate.

2002-10-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* config.bfd (sh*eb-*-linux*, sh*-*-linux*): Add the alternative
	endian vector to targ_selvecs.

2002-10-13  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_calculate_relocation): Take
	save_addend argument.  Don't apply the 32-bit mask to a
	GPREL32 value if it's to be used in another relocation.  Don't
	use forced-check computation of local_p to decide whether to
	add gp0 to GPREL16 value.  Don't use only the lowest 16 bits
	of the addend of a non-in-place GPREL16 relocation.
	(_bfd_mips_elf_relocate_section): Pass use_saved_addend_p to
	mips_elf_calculate_relocation().

2002-10-12  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (m68hc11_elf_relax_section): Don't treat relocs
	with symbols in other sections if we relaxed something;  the sections
	output offsets must be re-computed before.

2002-10-12  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (m68hc11_elf_relax_section): Update symbols
	handling to use Elf_Internal_Sym.
	(m68hc11_elf_relax_delete_bytes): Likewise.

2002-10-11  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* elf32-sh.c (sh_elf_optimized_tls_reloc, sh_elf_mkobject,
	sh_elf_object_p, dtpoff_base): New functions.
	(sh_elf_howto_table): Add TLS relocs.
	(sh_reloc_map): Likewise.
	(sh_elf_info_to_howto): Support TLS relocs.
	(elf_sh_link_hash_entry): Add tls_type and tls_tpoff32.
	(sh_elf_hash_entry, sh_elf_tdata, sh_elf_local_got_tls_type):
	New macros.
	(sh_elf_obj_tdata): New.
	(elf_sh_link_hash_table): Add tls_ldm_got.
	(sh_elf_link_hash_table_create): Clear refcount of tls_ldm_got.
	(allocate_dynrelocs): Support TLS relocs.
	(sh_elf_size_dynamic_sections): Likewise.
	(sh_elf_relocate_section): Support TLS relocs.  Don't try to find
	.rela.got section when found already.  Return false after printing
	error about unresolvable relocation.
	(sh_elf_gc_sweep_hook): Support TLS relocs.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject, elf_backend_object_p): Define for TLS case.
	* reloc.c: Add SH TLS relocs.
	* bfd-in2.h, libbfd.h: Regenerate.

2002-10-11  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.in: Regenerated.

2002-10-11  Daniel Jacobowitz  <drow@mvista.com>

	* Makefile.am: Run dep-am.
	(BFD_H_DEP): Add simple.c and linker.c.
	(BFD32_LIBS): Add simple.lo.
	(BFD32_LIBS_CFILES): Add simple.c.
	* Makefile.in: Regenerated.
	* bfd-in2.h: Regenerated.
	* simple.c: New file.

2002-10-11  Alan Modra  <amodra@bigpond.net.au>

	* coff-arm.c (record_arm_to_thumb_glue): Avoid type-punned pointers.
	(record_thumb_to_arm_glue): Likewise.
	* ecoff.c (ecoff_link_add_externals): Likewise.
	* elf32-arm.h (record_arm_to_thumb_glue): Likewise.
	(record_thumb_to_arm_glue): Likewise.
	* elf32-m32r.c (m32r_elf_add_symbol_hook): Likewise.
	* elf32-sh.c (sh_elf_create_dynamic_sections): Likewise.
	* elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise.
	* elf64-alpha.c (elf64_alpha_create_dynamic_sections): Likewise.
	* elf64-ppc.c (func_desc_adjust): Likewise.
	* elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise.
	(sh64_elf64_create_dynamic_sections): Likewise.
	* elflink.c (_bfd_elf_create_got_section): Likewise.
	(_bfd_elf_create_dynamic_sections): Likewise.
	(_bfd_elf_create_linker_section): Likewise.
	* elflink.h (elf_add_default_symbol): Likewise.
	(elf_link_create_dynamic_sections): Likewise.
	(NAME(bfd_elf,size_dynamic_sections)): Likewise.
	* elfxx-ia64.c (elfNN_ia64_aix_add_symbol_hook): Likewise.
	* elfxx-mips.c (mips_elf_create_got_section): Likewise.
	(_bfd_mips_elf_add_symbol_hook): Likewise.
	(_bfd_mips_elf_create_dynamic_sections): Likewise.
	* linker.c (generic_link_add_symbol_list): Likewise.
	* xcofflink.c (xcoff_link_add_symbols): Likewise.

	* elfxx-ia64.c (oor_brl, oor_ip): Conditionally define.

	* elf64-ppc.c (edit_opd): Only zero opd syms when function is
	completely removed.  Correct local sym adjustment.

2002-10-10  Stephen Clarke <stephen.clarke@superh.com>

	* elf32-sh.c (elf_sh_pic_plt_entry_be, elf_sh_pic_plt_entry_le):
	Correct mistake in calculation of address of .got.
	* elf64-sh64.c (elf_sh64_pic_plt_entry_be,
	elf_sh64_pic_plt_entry_le): Likewise.

2002-10-09  Richard Shann <richard.shann@superh.com>
	    Stephen Clarke <stephen.clarke@superh.com>

	* Makefile.am: Add entries for elf32-sh64-lin.c and
	elf64-sh64-lin.c. Regenerate.
	* Makefile.in: Regenerate.
	* config.bfd:  Change sh64eb-*-linux* and sh64-*-linux*
	to use sh64 vectors rather than sh vectors.
	* configure.in: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec,
	bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec.
	* configure: Regenerate.
	* elf32-sh64-lin.c: New file.
	* elf64-sh64-lin.c: New file.
	* targets.c: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec,
	bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec.

2002-10-08  H.J. Lu <hjl@gnu.org>

	* elf32-i386.c (elf_i386_relocate_section): Re-arrange the
	IE->LE transition for R_386_TLS_IE.

2002-10-08  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (edit_opd): Correct test for discarded sections.

2002-10-07  Mark Elbrecht  <snowball3@softhome.net>

	* cofflink.c (mark_relocs): Don't mark relocations in excluded
	sections.

2002-10-07  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_input_bfd): Remove BFD_VERSION_DATE dependent
	code.

	* elf64-ppc.c (ppc64_elf_build_stubs): Increment .glink indx.

2002-10-06  Alan Modra  <amodra@bigpond.net.au>

	* opncls.c: Formatting.
	(_bfd_new_bfd): Use a smaller section hash table.

2002-10-05  Alexandre Oliva  <aoliva@redhat.com>

	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Set the type
	of the other two relocations packed with a REL32 to NONE.

2002-10-02  Stephen Clarke <stephen.clarke@superh.com>

	* elf32-sh.c (elf_sh_link_hash_entry): Add gotplt_refcount.
	(sh_elf_link_hash_newfunc): Initialize it.
	(allocate_dynrelocs): Transfer gotplt refs from plt.refcount
	to got.refcount for symbols that are forced local or when
	we have direct got refs.
	(sh_elf_gc_sweep_hook): Adjust gotplt_refcount.  Use it
	to correctly adjust got.refcount and plt.refcount.
	(sh_elf_copy_indirect_symbol): Copy gotplt_refcount across.
	(sh_elf_check_relocs): Increment gotplt_refcount.

2002-10-01  Jakub Jelinek  <jakub@redhat.com>

	* elf32-i386.c (elf_i386_relocate_section): Fix
	movl foo@indntpoff, %eax IE->LE transition.

2002-10-01  Jakub Jelinek  <jakub@redhat.com>

	* elf64-x86-64.c (elf64_x86_64_relocate_section): Change TLSGD
	sequence and its transitions.

2002-10-01  Jakub Jelinek  <jakub@redhat.com>

	* elf32-i386.c (elf_i386_relocate_section): Resolve R_386_TLS_LDO_32
	to st_value + addend in non-code sections.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Resolve
	R_X86_64_DTPOFF32 to st_value + addend in non-code sections.

2002-09-30  Gavin Romig-Koch  <gavin@redhat.com>
	    Ken Raeburn  <raeburn@cygnus.com>
	    Aldy Hernandez  <aldyh@redhat.com>
	    Eric Christopher  <echristo@redhat.com>
	    Richard Sandiford  <rsandifo@redhat.com>

	* archures.c (bfd_mach_mips4120, bfd_mach_mips5400): New.
	(bfd_mach_mips5500): New.
	* cpu-mips.c (I_mips4120, I_mips5400, I_mips5500): New.
	(arch_info_struct): Add corresponding entries here.
	* elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_4120,
	E_MIPS_MACH_5400 and E_MIPS_MACH_5500.
	(_bfd_mips_elf_final_write_processing): Handle bfd_mach_mips4120,
	bfd_mach_mips5400 and bfd_mach_mips5500.
	(_bfd_mips_elf_mach_extends_p): New function.
	(_bfd_mips_elf_merge_private_bfd_data): Use it to help merge
	the EF_MIPS_MACH flags.
	* bfd-in2.h: Regenerate.

2002-09-28  Jason Thorpe  <thorpej@wasabisystems.com>

	* elf32-vax.c (elf_vax_size_dynamic_section): Don't strip
	.got sections.

2002-09-28  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (map_sections_to_segments): Correct test for start of
	writable section in the same page as end of read-only section.

2002-09-27  Matt Thomas  <matt@3am-software.com>

	* elf32-vax.c (elf_vax_check_relocs): Remove unused
	local_got_refcounts usage.  Remove allocation of got slot.
	(elf_vax_gc_sweep_hook): Remove unused local_got_refcounts usage.
	Remove de-allocation of got slot.
	(elf_vax_size_dynamic_section): Fix some indentation.  Add hash
	traversal for elf_vax_instantiate_got_entries.  Allow empty .got
	sections to be GC'ed.
	(elf_vax_instantiate_got_entries): New function.
	(elf_vax_relocate_section): Simplify R_VAX_GOT32 handling.  Remove
	tests that are now handled by elf_vax_instantiate_got_entries.
	Assert GOT entry falls within .got section size.  Remove redundant
	comparisions.  Fix comments.

2002-09-27  Jakub Jelinek  <jakub@redhat.com>

	* reloc.c: Add x86-64 TLS relocs.
	* bfd-in2.h, libbfd.h: Rebuilt.
	* elf64-x86-64.c (x86_64_elf_howto): Fix size fields for 32-bit
	relocs.  Add TLS relocs.
	(x86_64_reloc_map): Add TLS relocs.
	(elf64_x86_64_info_to_howto): Adjust for added TLS relocs.
	(struct elf64_x86_64_link_hash_entry): Add tls_type field.
	(GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE): Define.
	(elf64_x86_64_hash_entry): Define.
	(struct elf64_x86_64_obj_tdata): New.
	(elf64_x86_64_tdata, elf64_x86_64_local_got_tls_type): Define.
	(struct elf64_x86_64_link_hash_table): Add tls_ld_got.
	(link_hash_newfunc): Initialize tls_type.
	(elf64_x86_64_link_hash_table_create): Initialize tls_ld_got.
	(elf64_x86_64_copy_indirect_symbol): Swap tls_type if necessary.
	(elf64_x86_64_mkobject): New.
	(elf64_x86_64_elf_object_p): Allocate struct elf64_x86_64_obj_tdata.
	(elf64_x86_64_tls_transition): New.
	(elf64_x86_64_check_relocs): Add r_type variable and use it.
	Handle TLS relocs.
	(elf64_x86_64_gc_sweep_hook): Handle TLS relocs.
	(allocate_dynrelocs): Allocate GOT space for TLS relocs.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(dtpoff_base, tpoff): New.
	(elf64_x86_64_relocate_section): Handle TLS relocs.
	(elf64_x86_64_finish_dynamic_symbol): Only handle non-TLS GOT
	entries.
	(bfd_elf64_mkobject): Define.

	* elf32-i386.c (elf_i386_check_relocs) [R_386_TLS_LE]: Set
	DF_STATIC_TLS if shared.

2002-09-26  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (_bfd_mips_elf_fake_sections): Don't emit unneeded
	empty relocation sections.

2002-09-26  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc_build_one_stub): Don't build glink stubs here.
	(ppc64_elf_build_stubs): Build them here instead.

2002-09-24  Jakub Jelinek  <jakub@redhat.com>

	* elf32-sparc.c (elf32_sparc_relocate_section): Put R_SPARC_RELATIVE
	addend into r_addend, not *r_offset.
	(elf32_sparc_finish_dynamic_symbol): Likewise.
	* elf64-sparc.c (sparc64_elf_finish_dynamic_symbol): Clear xword at
	R_SPARC_RELATIVE's r_offset.

2002-09-23  Nathan Tallent  <eraxxon@alumni.rice.edu>

	* dwarf2.c (decode_line_info): Update to correctly decode
	the (non-standard DWARF2) out-of-order address sequences
	generated by the Intel C++ 6.0 compiler for ia64-Linux.

2002-09-23  Mark Elbrecht  <snowball3@softhome.net>

	* config.bfd: For DJGPP targets, match with any cpu and any machine.

2002-09-23  Alan Modra  <amodra@bigpond.net.au>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Zero relocs
	for discarded FDEs.  Remove redundant assignment.
	* elflink.h (elf_bfd_discard_info): Save edited relocs.

2002-09-22  H.J. Lu <hjl@gnu.org>

	* elf64-alpha.c (elf64_alpha_merge_ind_symbols): Don't merge
	the relocation count between different .reloc sections.

2002-09-21  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_relocate_section): Allow ".sbss.*" and
	".sdata.*" for R_PPC_SDAREL16, ".sbss2*" and ".sdata2*" for
	R_PPC_EMB_SDA2REL.  Similarly for R_PPC_EMB_SDA21 and
	R_PPC_EMB_RELSDA.

	* elfcode.h (elf_slurp_reloc_table_from_section): Make "symcount"
	unsigned.  Move "symcount" assignment out of loop.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* po/SRC-POTFILES.in: Regnerate.

2002-09-19  Nathan Tallent  <eraxxon@alumni.rice.edu>

	* dwarf2.c (_bfd_dwarf2_find_nearest_line): If address length is
	zero, set it to 8 for (non-standard) 64-bit DWARF2 formats
	(e.g. IRIX64).

2002-09-19  Jakub Jelinek  <jakub@redhat.com>

	* elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Clear .got word
	even if generating R_PPC_RELATIVE reloc.
	(ppc_elf_relocate_section): Make sure relocation is performed
	if skip == -2.  Clear memory at r_offset when creating dynamic
	relocation.

2002-09-19  Jakub Jelinek  <jakub@redhat.com>

	* reloc.c (BFD_RELOC_386_TLS_TPOFF, BFD_RELOC_386_TLS_IE,
	BFD_RELOC_386_TLS_GOTIE): Add.
	* bfd-in2.h, libbfd.h: Rebuilt.
	* elf32-i386.c (elf_howto_table): Add R_386_TLS_TPOFF, R_386_TLS_IE
	and R_386_TLS_GOTIE.
	(elf_i386_reloc_type_lookup): Handle it.
	(struct elf_i386_link_hash_entry): Change tls_type type to unsigned
	char instead of enum, change GOT_* into defines.
	(GOT_TLS_IE_POS, GOT_TLS_IE_NEG, GOT_TLS_IE_BOTH): Define.
	(elf_i386_tls_transition): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
	(elf_i386_check_relocs): Likewise.  Avoid crash if local symbol is
	accessed both as normal and TLS symbol.  Move R_386_TLS_LDM and
	R_386_PLT32 cases so that R_386_TLS_IE can fall through.
	Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
	(elf_i386_gc_sweep_hook): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
	Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
	(allocate_dynrelocs): Allocate 2 .got and 2 .rel.got entries if
	tls_type is GOT_TLS_IE_BOTH.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
	Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
	(elf_i386_finish_dynamic_symbol): Use tls_type & GOT_TLS_IE to catch
	all 4 GOT_TLS_* TLS types.

2002-09-19  Nick Clifton  <nickc@redhat.com>

	* elflink.h (elf_fix_symbol_flags): When examining weak symbols,
	follow indirect links.

2002-09-19  Nathan Tallent  <eraxxon@alumni.rice.edu>

	* ecoffswap.h (ecoff_swap_pdr_in) <isym, iline>: Update to
	correctly sign-extend 32-bit ECOFF null values (0xffffffff, -1)
	on 64 bit machines.
	(ecoff_swap_sym_in) <iss>: Likewise.
	* ecoff.c (_bfd_ecoff_slurp_symbolic_info): Fix error reading
	ECOFF information: 'ioptMax' refers to the actual *size*
	of the optimization symtab, not the number of entries.

2002-09-19  Daniel Jacobowitz  <drow@mvista.com>

	* elf32-arm.h (elf32_arm_adjust_dynamic_symbol): Update
	ELF_LINK_HASH_NEEDS_PLT logic.

2002-09-18  Daniel Jacobowitz  <drow@mvista.com>

	* elfcode.h (elf_slurp_reloc_table_from_section): Check
	correct relocation count.

2002-09-17  Daniel Jacobowitz  <drow@mvista.com>

	* bfd-in.h (bfd_get_dynamic_symcount): Define.
	* bfd.c (struct _bfd): Add dynsymcount.
	* bfd-in2.h: Regenerated.
	* elf.c (_bfd_elf_canonicalize_dynamic_symtab): Set
	abfd->dynsymcount.
	* elfcode.h (elf_slurp_reloc_table_from_section): Check
	for overflow.

2002-09-17  Stan Cox <scox@redhat.com>

	* elf64-mips.c (mips_elf64_be_swap_reloca_out): Handle type2 and type3.
	(mips_elf64_final_gp): Don't make up gp value.
	* elfn32-mips.c (mips_elf_final_gp): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_final_link): Always create
	.MIPS.options/.options section.

2002-09-17  David O'Brien  <obrien@FreeBSD.org>

	* elf32-i386-fbsd.c: Always label using the EI_OSABI method.
	It is benign for FreeBSD < 4.1.  Minor reformatting.
	* elf64-alpha-fbsd.c: Likewise.

2002-09-17  Jakub Jelinek  <jakub@redhat.com>

	* elf32-i386.c (elf_i386_relocate_section) [R_386_TLS_TPOFF32]: Negate
	addend.

2002-09-17  Alan Modra  <amodra@bigpond.net.au>

	* elf64-alpha.c (alpha_elf_size_info): Make static.

2002-09-17  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* coff-tic4x.c: Add function declarations and ATTRIBUTE_UNUSED.
	* cpu-tic4x.c: Ditto.

2002-09-17  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elf64-mips.c (define elf_backend_ignore_discarded_relocs): Remove
	duplicate define.

2002-09-16  Bruno Haible  <bruno@clisp.org>

	* elf32-i386.c: Don't defined ELF_ARCH etc. if this file is included
	by a target variant implementation.
	* elf64-alpha.c: Likewise.
	* elf32-i386-fbsd.c: New file.
	* elf64-alpha-fbsd.c: New file.
	* targets.c: Support bfd_elf32_i386_freebsd_vec and
	bfd_elf64_alpha_freebsd_vec.
	* configure.in: Accept the vectors bfd_elf32_i386_freebsd_vec,
	bfd_elf64_alpha_freebsd_vec.
	* Makefile.am (BFD32_BACKENDS): Add elf32-i386-fbsd.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-i386-fbsd.c.
	(BFD64_BACKENDS): Add elf64-alpha-fbsd.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-alpha-fbsd.c.
	(elf32-i386-fbsd.lo, elf64-alpha-fbsd.lo): Add dependencies.
	* config.bfd: For FreeBSD targets, set targ_defvec to a FreeBSD
	specific targets. Define OLD_FREEBSD_ABI_LABEL if appropriate.

2002-09-12  Jakub Jelinek  <jakub@redhat.com>

	* elf32-i386.c (dtpoff_base, tpoff): Don't crash if tls_segment is
	NULL.
	(elf_i386_relocate_section): Return false after printing error about
	unresolvable relocation.

2002-09-12  Nick Clifton  <nickc@redhat.com>

	* elf32-arm.h (elf32_arm_final_link_relocate): Fix handling of
	R_ARM_THM_PC11.

2002-09-11  Jeffrey Law  <law@redhat.com>

	* elf32-h8300.c (elf32_h8_relax_section): Fix typo.

2002-09-11  Andrew Haley  <aph@cambridge.redhat.com>

	* elf.c (_bfd_elf_find_nearest_line): Check functionname_ptr and
	line_ptr before deciding we've found a symbol.

2002-09-11  Nick Clifton  <nickc@redhat.com>

	* po/da.po: New Danish translation file.
	* configure.in (LINGUAS): Add 'da'.
	* configure: Regenerate.

2002-09-10  Michael Snyder  <msnyder@redhat.com>

	* irix-core.c (do_sections, do_sections64): New functions.
	(irix_core_core_file_p): Call new functions do_sections,
	do_sections64, depending on corefile (32-bit or 64-bit).

2002-09-09  Richard Henderson  <rth@redhat.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21M
	and PCREL21F like PCREL21B.

2002-09-04  Kevin Buettner  <kevinb@redhat.com>

	* config.bfd (mips*-*-irix6*): Add new ABI vectors.  Make n32 default
	vector.

2002-09-02  Nick Clifton  <nickc@redhat.com>

	* elf32-v850.c (v850_elf_final_link_relocate): Use helpful
	names instead of cryptically overloaded bfd_reloc error
	codes.
	(v850_elf_relocate_section): Likewise.
	(v850_elf_relax_section): Replace caching of external symbols
	with caching of internal symbols obtained from calling
	bfd_elf_get_elf_syms().
	Fixup problems with freeing cached allocated memory blocks.

2002-09-02  Alan Modra  <amodra@bigpond.net.au>

	* cpu-pj.c (scan_mach, compatible, arch_info_struct): Remove.
	(bfd_pj_arch): Use bfd_default_scan.
	* cpu-v850.c (scan): Remove.
	(N): Use bfd_default_scan.
	* cpu-z8k.c (scan_mach): Remove.
	(arch_info_struct, bfd_z8k_arch): Reorganize so that the default is
	first.  Use bfd_default_scan.

	* ecoff.c (_bfd_ecoff_set_arch_mach_hook): Don't use hard-coded
	bfd_mach constants.
	(ecoff_get_magic): Likewise.
	* elf32-v850.c (v850_elf_object_p): Likewise.
	(v850_elf_final_write_processing): Likewise.
	* mipsbsd.c (MY(set_arch_mach)): Likewise.
	(MY(write_object_contents)): Likewise.
	* coff64-rs6000.c (xcoff64_write_object_contents): Likewise.
	* coffcode.h (coff_write_object_contents): Likewise.
	(coff_set_arch_mach_hook): Add comment describing machine == 0.
	Remove unnecessary "machine" assignments.
	(coff_write_relocs): Test for the absolute section sym by testing
	section and flags.

	* aoutx.h (NAME(aout,machine_type)): Recognize bfd_mach_i386_i386
	and bfd_mach_i386_i386_intel_syntax.
	* pdp11.c (NAME(aout,machine_type)): Likewise.

2002-08-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* bfd-in.h (align_power): Cast constants to bfd_vma type.
	* bfd-in2.h (align_power): Likewise.

2002-08-30  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

	* cpu-avr.c (compatible): Don't use hard-coded mach constants.
	* cpu-powerpc.c (powerpc_compatible): Likewise.
	* cpu-rs6000.c (rs6000_compatible): Likewise.

2002-08-28  Catherine Moore  <clm@redhat.com>

	* elf32-v850.c (v850_elf_reloc_map):  Add new relocs.
	(v850-elf-reloc): Don't resolve pc relative relocs.
	(v850_elf_ignore_reloc): New routine.
	(v850_elf_final_link_relocate): Handle new relocs.
	(v850_elf_relax_delete_bytes ): New routine.
	(v850_elf_relax_section): New routine.
	(bfd_elf32_bfd_relax_section): Define.
	(HOWTO): New entries for new relocs.
	* reloc.c (BFD_RELOC_V850_LONGCALL): New reloc.
	(BFD_RELOC_V850_LONGJUMP): New reloc.
	(BFD_RELOC_V850_ALIGN): New reloc.
	* archures.c: Remove redundant v850ea architecture.
	* cpu-v850.c: Remove redundant v850ea support.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerated.

2002-08-28  Svein E. Seldal  <Svein.Seldal@solidas.com>

	* config.bfd: Add tic4x-*-*coff* and c4x-*-*coff* target.
	* configure.in: Add tic4x_coff vector files.
	* configure: Regenerate.
	* Makefile.am: Add tic4x target.
	* Makefile.in: Regenerate.

2002-08-27  Michael Hayes <m.hayes@elec.canterbury.ac.nz>

	* archures.c: Add the BFD arch type tic4x.
	* bfd-in.h: Add BFD_IN_MEMORY flag.
	* coff-tic4x.c: New file.
	* coffswap.h (coff_swap_sym_out): Add preadjuster.
	* cpu-tic4x.c: New file.
	* targets.c: Added tic4x- in list of xvecs.
	* ticoff.h: New file.
	* bfd-in2.h: Regenerate.

2002-08-27  Adam Nemet  <anemet@lnxw.com>

	* elf32-arm.h (elf32_arm_finish_dynamic_sections): Set the last
	bit of DT_INIT and DT_FINI for Thumb functions.

2002-08-26  Alan Modra  <amodra@bigpond.net.au>

	* coffcode.h (coff_set_arch_mach_hook): Handle W65MAGIC.

2002-08-26  Alan Modra  <amodra@bigpond.net.au>

	* aoutx.h (NAME(aout,reloc_type_lookup)): Handle BFD_RELOC_8.

2002-08-24  Kaz Kojima  <kkojima@rr.iij4u.or.jp>

	* elf32-sh.c (sh_elf_copy_indirect_symbol): New.
	(create_got_section, allocate_dynrelocs, readonly_dynrelocs):
	Likewise.
	(struct elf_sh_pcrel_relocs_copied): Removed.
	(struct elf_sh_dyn_relocs): New.
	(struct elf_sh_link_hash_entry): Replace pcrel_relocs_copied
	field with dyn_relocs.
	(struct elf_sh_link_hash_table): Add short-cuts to get dynamic
	sections and sym_sec.
	(sh_elf_link_hash_newfunc): Clear dyn_relocs.
	(sh_elf_link_hash_table_create): Clear shorts-cuts and sym_sec.
	(sh_elf_create_dynamic_sections): Use create_got_section instead
	of _bfd_elf_create_got_section.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_create_dynamic_sections): Use short-cuts to the dynamic
	sections.
	(sh_elf_adjust_dynamic_symbol, sh_elf_size_dynamic_sections,
	sh_elf_relocate_section, sh_elf_check_relocs,
	sh_elf_finish_dynamic_symbol, sh_elf_finish_dynamic_sections):
	Likewise.
	(sh_elf_adjust_dynamic_symbol): Handle nocopyreloc. Keep the
	dynamic relocations and avoiding the copy relocation when we
	didn't find any dynamic relocations in the section which has
	contents or is read-only.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
	(sh_elf_size_dynamic_sections): Don't reset the size of
	.rela.got section even if dynamic_sections_created flag is off.
	Don't use sh_elf_discard_copies. Scan all input bfd and use
	allocate_dynrelocs. Call readonly_dynrelocs to determine
	whether we need DT_TEXTREL.
	(sh_elf_adjust_dynamic_symbol): Use plt.refcount to determine
	whether the symbol was never referred to.
	(sh_elf_relocate_section): Use WILL_CALL_FINISH_DYNAMIC_SYMBOL.
	(sh_elf_gc_sweep_hook): Fill with the real sweep function.
	(sh_elf_check_relocs): Call create_got_section if the short-cut
	to .got is null. Increment reference counters only instead of
	allocating space on dynamic sections here. Don't conditionalize
	uninitialized got.offset value when marking the symbol as a
	global offset table entry. Keep relocations for symbols satisfied
	by a dynamic library to avoid copy relocations for the symbol.
	Set dynobj field of an elf hash table if needed.
	(sh_elf_finish_dynamic_sections): Handle null section pointer
	correctly.
	(elf_backend_copy_indirect_symbol): Defined.
	(elf_backend_can_refcount): Defined.

2002-08-23  Nick Clifton  <nickc@redhat.com>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Undo
	previous change.  Add comment explaining why.

2002-08-23  Stephen Clarke <stephen.clarke@superh.com>

	* elf32-sh.c (elf_sh_plt0_entry_be, elf_sh_plt0_entry_le): Copy
	contents of .got.plt[2] to tr0, not address of .got.plt.
	(sh_elf_finish_dynamic_symbol): Do not apply GOT_BIAS when
	patching absolute plt entry. For shmedia plt entry, set bottom bit
	of branch to plt0 as this is a branch to an shmedia instruction.
	* elf64-sh64.c (elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le):
	Copy contents of .got.plt[2] to tr0, not address of .got.plt.
	(elf_sh64_plt_entry_be, elf_sh64_plt_entry_le): Use ptrel to
	branch to plt0.
	(sh64_elf64_finish_dynamic_symbol): Do not apply GOT_BIAS when
	patching absolute plt entry. For shmedia plt entry, branch to
	plt0 is now ptrel, so use relative offset.  Set bottom bit of
	branch target as it is a branch to an shmedia instruction.

2002-08-23  Stephen Clarke <stephen.clarke@superh.com>,
	    Richard Shann <richard.shann@superh.com>

	* elf32-sh.c (sh_elf_finish_dynamic_sections): Set LSB of DT_INIT
	value if .init is an SHmedia function.  Similarly for DT_FINI.
	* elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise.

2002-08-23  Stephen Clarke <stephen.clarke@superh.com>

	* elf32-sh.c (sh_elf_size_dynamic_sections): Zero initialize
	dynamic section.
	* elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.

2002-08-22  Kaz Kojima <kkojima@rr.iij4u.or.jp>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use a simple
	byte read when reading the return address register column.

2002-08-22  Nick Clifton  <nickc@redhat.com>

	* config.bfd: Add powepc64-*-*bsd* target.

2002-08-22  Graeme Peterson  <gp@qnx.com>

	* Makefile.am: Add entries for elf32-shqnx.c
	* Makefile.in: Regenerate.
	* config.bfd: Add support sh-*-nto* target.
	* configure.in: Add support for bfd_elf32_sh{l}qnx_vec.
	* configure: Regenerate.
	* elf32-qnx.h: Changed typo "elf_i386qnx_*" to "elf_qnx_*" .
	* elf32-sh.c: Do not include elf32-target.h if
	ELF32_SH_C_INCLUDED is defined.
	* elf32-shqnx.c: New file: Support for QNX.
	* targets.c: Add bfd_elf32_sh{l}qnx_vec.

2002-08-22  Nick Clifton  <nickc@redhat.com>

	* po/tr.po: Updated Turkish translation.

	* syms.c (_bfd_generic_read_minisymbols): Set bfd_error if the
	symbols are not read.

2002-08-22  Alan Modra  <amodra@bigpond.net.au>

	* elf32-m68hc11.c: Formatting fixes.
	(elf32_m68hc11_gc_mark_hook): Correct params.  Remove unnecessary test.
	* elf32-m68hc12.c: Formatting fixes.
	(elf32_m68hc11_gc_mark_hook): Correct params.  Remove unnecessary test.

2002-08-22  Alan Modra  <amodra@bigpond.net.au>

	* coff-rs6000.c (rs6000coff_vec <object_flags>): Add SEC_CODE and
	SEC_DATA.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Likewise.
	(aix5coff64_vec): Likewise.

2002-08-22  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (struct elf_backend_data): Add struct elf_backend_data
	param to elf_backend_copy_indirect_symbol.
	(_bfd_elf_link_hash_copy_indirect): Likewise.
	* elflink.h (elf_add_default_symbol, elf_fix_symbol_flags): Adjust
	calls to copy_indirect_symbol.
	* elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Likewise.
	* elf32-i386.c (elf_i386_copy_indirect_symbol): Likewise.
	* elf32-s390.c (elf_s390_copy_indirect_symbol): Likewise.
	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
	* elf64-s390.c (elf_s390_copy_indirect_symbol): Likewise.
	* elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Likewise.
	* elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_copy_indirect_symbol): Likewise.
	* elf.c (_bfd_elf_link_hash_copy_indirect): Likewise.  Properly
	test refcounts for "used" values.

2002-08-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Add PARAMS to
	argument declaration.

2002-08-19  Elena Zannoni <ezannoni@redhat.com>

	* archures.c (bfd_mach_ppc_e500): Added.
	* bfd-in2.h: Rebuilt.
	* cpu-powerpc.c (bfd_powerpc_archs): Added e500.

2002-08-19  Alan Modra  <amodra@bigpond.net.au>

	* elf32-m68hc12.c (elf_backend_can_gc_sections): False.

2002-08-17  Andrew Cagney  <ac131313@redhat.com>

	* elf.c (bfd_elf_get_elf_syms): Change type of `esym' to
	`bfd_byte'.

2002-08-17  Stan Cox  <scox@redhat.com>

	* elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Use the
	IRIX 6 segment layout for NEWABI.

2002-08-16  Stephen Clarke <stephen.clarke@superh.com>

	* bfd/elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect
	symbols when looking for section referred to by a relocation.
	* bfd/elf64-sh.c (sh_elf64_gc_mark_hook): Likewise.

2002-08-15  Alan Modra  <amodra@bigpond.net.au>

	* elf32-i370.c: Move reloc enum to include/elf/i370.h.

2002-08-15  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Add
	missing check for whether the symbol is referenced by DSO before
	unexporting it as an unneeded dynamic symbol.

2002-08-14  H.J. Lu <hjl@gnu.org>

	* libbfd.h: Regenerate.

2002-08-14  H.J. Lu <hjl@gnu.org>

	* config.bfd: Always add 64bit vectors to 32bit Linux/mips.

2002-08-14  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (m68hc11_relax_group): New to relax group of
	instructions.
	(m68hc11_direct_relax): New to define table of relaxable instructions.
	(find_relaxable_insn): New, find a relaxable insn.
	(compare_reloc): New to compare two relocs.
	(m68hc11_elf_relax_section): New, relax text sections.
	(m68hc11_elf_relax_delete_bytes): New, delete bytes and adjust branchs.
	(elf32_m68hc11_check_relocs): New function for GC support.
	(elf32_m68hc11_relocate_section): New function for GC support.
	(bfd_elf32_bfd_relax_section): Define to support linker relaxation.
	(elf_backend_check_relocs): Likewise.
	(elf_backend_relocate_section): Likewise.

2002-08-13  H.J. Lu <hjl@gnu.org>

	* elflink.h (NAME(bfd_elf,size_dynamic_sections): Don't count
	definitions in shared objects when checking symbol with
	undefined version.

2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (elf32_m68hc11_gc_mark_hook): New for section GC.
	(elf32_m68hc11_gc_sweep_hook): Likewise.
	(elf_backend_gc_mark_hook): Define for GC section support.
	(elf_backend_gc_sweep_hook): Likewise.
	(elf_backend_can_gc_sections): Likewise.

	* elf32-m68hc12.c: Likewise.

2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (_bfd_m68hc11_elf_print_private_bfd_data): New.
	(_bfd_m68hc11_elf_merge_private_bfd_data): New function.
	(_bfd_m68hc11_elf_set_private_flags): New function.
	Use them to set/check/print ELF flags specific to 68HC11.

	* elf32-m68hc12.c (_bfd_m68hc12_elf_print_private_bfd_data): New.
	(_bfd_m68hc12_elf_merge_private_bfd_data): New function.
	(_bfd_m68hc12_elf_set_private_flags): New function.
	Use them to set/check/print ELF flags specific to 68HC12.

2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>

	* elf32-m68hc11.c (elf_m68hc11_howto_table): Add the new relocs;
	fix masks for PC-rel relocs.
	(m68hc11_elf_ignore_reloc): New function.

	* elf32-m68hc12.c (m68hc12_elf_special_reloc): New to handle specific
	68HC12 banked addressing relocs.
	(m68hc12_phys_addr): New to compute physical address of banked memory.
	(m68hc12_phys_page): Likewise for page.
	(m68hc12_addr_is_banked): New to see if address is in banked area.
	(elf_m68hc12_howto_table): Add new relocs and rename to xx12.

2002-08-13  Stephane Carrez  <stcarrez@nerim.fr>

	* reloc.c (BFD_RELOC_M68HC11_RL_JUMP, BFD_RELOC_M68HC11_RL_GROUP,
	BFD_RELOC_M68HC11_LO16, BFD_RELOC_M68HC11_PAGE,
	BFD_RELOC_M68HC11_24): New relocs for 68HC11/68HC12.
	* bfd-in2.h: Regenerate.

2002-08-12  H.J. Lu <hjl@gnu.org>

	* elflink.h (elf_add_default_symbol): Preserve section across
	elf_merge_symbol.

2002-08-09  Graeme Peterson  <gp@qnx.com>

	* Makefile.am: Add entries for elf32-ppcqnx.c, and add
	elf32-qnx.h dependency to elfarmqnx-nabi.c and elf32-i386qnx.c.
	* Makefile.in: Regenerate.
	* config.bfd: Add support for powerpc{le}-*-nto targets.
	* configure.in: Add support for bfd_elf32_powerpc{le}qnx_vec.
	* configure: Regenerate.
	* elf32-i386qnx.c: Moved backend functions into a QNX specific
	common file "elf32-qnx.h", and now include that file.
	* elf32-qnx.h: New file: QNX specific common elf backend.
	* elf32-ppc.c: Do not include elf32-target.h if
	ELF32_PPC_C_INCLUDED is defined.
	* elf32-ppcqnx.c: New file: Support for QNX.
	* elfarmqnx-nabi.c: Include elf32-qnx.h for qnx elf backend.
	* targets.c: Add bfd_elf32_powerpc{le}qnx_vec.

2002-08-09  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.

2002-08-09  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (mips_elf_global_got_index): Avoid segfault if
	g->global_gotsym is NULL.

2002-08-08  H.J. Lu <hjl@gnu.org>

	* elflink.h (elf_add_default_symbol): Don't warn if a definition
	overrides an indirect versioned symbol.

2002-08-08  Jakub Jelinek  <jakub@redhat.com>

	* elf32-i386.c (elf_i386_relocate_section): Fill in proper addend
	for R_386_TLS_TPOFF32 relocs against symndx 0.

2002-08-07  H.J. Lu <hjl@gnu.org>

	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Check symbol
	with undefined version if needed.
	(elf_link_assign_sym_version): Match a default symbol with a
	version without definition. No need to hide the default
	definition separately.

2002-08-08  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_output_extsym): Don't output symbols from
	SEC_EXCLUDE sections.

	* aoutx.h (aout_link_write_symbols): Correct handling of warning syms.

2002-08-07  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (edit_opd): Arrange to drop symbols for discarded .opd
	entries.

2002-08-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (mips_elf_create_dynamic_relocation): Cast signedness
	mismatch.

2002-08-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (ABI_64_P): Remove superfluous check.

2002-08-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elf32-mips.c (mips_reloc_map): Fix typo.

2002-08-06  Alan Modra  <amodra@bigpond.net.au>

	* xcofflink.c (xcoff_write_global_symbol): Set n_scnum for abs_section.

2002-08-06  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_howto_raw): Zero all src_mask entries.

2002-08-06  Alan Modra  <amodra@bigpond.net.au>

	* libxcoff.h: Use PARAMS on function declarations.
	* coff-rs6000.c (xcoff_generate_rtinit): Simplify size calc.
	* coff64-rs6000.c (xcoff64_generate_rtinit): Likewise.

	* coff-rs6000.c: (xcoff_rtype2howto): Don't place reloc address in
	addend.
	* coff64-rs6000.c: (xcoff64_rtype2howto): Likewise.

2002-08-06  Alan Modra  <amodra@bigpond.net.au>

	* coff-rs6000.c: Formatting fixes.
	(xcoff_calculate_relocation): Use PARAMS in declaration.
	(xcoff_complain_overflow): Likewise.
	(xcoff_ppc_relocate_section): Use old-style function pointer call.
	(bfd_xcoff_backend_data): Remove useless comments.
	(rs6000coff_vec): Likewise.
	(bfd_pmac_xcoff_backend_data): Likewise.
	(pmac_xcoff_vec): Likewise.

	* coff64-rs6000.c: Formatting fixes.
	(xcoff64_calculate_relocation): Use PARAMS in declaration.
	(xcoff64_ppc_relocate_section): Use old-style function pointer call.
	(bfd_xcoff_backend_data): Remove useless comments.
	(rs6000coff64_vec): Likewise.
	(bfd_xcoff_aix5_backend_data): Likewise.
	(aix5coff64_vec): Likewise.

2002-08-06  Alan Modra  <amodra@bigpond.net.au>

	* coff-rs6000.c (xcoff_howto_table): Revert some of last change to
	mask entries.  Use complain_overflow_dont for R_REF.
	(xcoff_reloc_type_ba): Revert last change.
	(xcoff_reloc_type_br): Likewise.
	(xcoff_reloc_type_crel): Likewise.
	(xcoff_ppc_relocate_section): Likewise.
	* coff64-rs6000.c (xcoff64_reloc_type_br): Likewise.
	(xcoff64_ppc_relocate_section): Likewise.
	(xcoff64_howto_table): Revert some of last change to mask entries.
	Use complain_overflow_dont for R_REF.

	* coff-rs6000.c (xcoff_howto_table): Fix src_mask entries.  Make all
	relocs with bitsize == 16 have size = 1.
	(xcoff_reloc_type_ba): Correct src_mask and dst_mask adjustment.
	(xcoff_reloc_type_br): Likewise.
	(xcoff_reloc_type_crel): Likewise.
	(xcoff_ppc_relocate_section): Set up src_mask and dst_mask correctly.
	* coff64-rs6000.c (xcoff64_reloc_type_br): Correct src_mask and
	dst_mask adjustment.
	(xcoff64_ppc_relocate_section): Set up src_mask and dst_mask correctly.
	(xcoff64_howto_table): Fix src_mask entries.  Make all relocs with
	bitsize == 16 have size = 1.

2002-08-01  Denis Chertykov  <denisc@overta.ru>

	* elf32-ip2k.c: Processor manufacturer changed to Ubicom.
	(struct misc): New field isymbuf. All free_* fields removed.
	(symbol_value): Pass in internal syms. No need to swap syms in.
	(ip2k_elf_relax_section): Use bfd_elf_get_elf_syms. Properly free
	possibly cached info.
	(tidyup_after_error): Removed.
	(ip2k_elf_relax_section_pass1): Don't use removed fields of struct
	misc. Use new field.
	(adjust_all_relocations): Use internal syms. No need to swap syms
	in and out.
	(add_page_insn): Don't use removed fields of struct misc.

2002-08-01  Nick Clifton  <nickc@redhat.com>

	* elf32-arm.h: Revert previous delta.

2002-08-01  Nick Clifton  <nickc@redhat.com>

	* configure.in (AM_INIT_AUTOMAKE): Bump version number.
	* configure: Regenerate.

2002-07-31  H.J. Lu <hjl@gnu.org>

	* config.bfd: Add x86-64 vector to Linux/i386 if 64bit BFD is
	selected.

2002-07-31  H.J. Lu <hjl@gnu.org>

	* config.bfd: Add n32 vectors to 32bit Linux/mips if 64bit BFD
	is selected.

2002-07-31  Jakub Jelinek  <jakub@redhat.com>

	* elf32-i386.c (elf_i386_copy_indirect_symbol): Swap tls_type
	if _bfd_elf_link_hash_copy_indirect will swap got.refcount.

2002-07-31  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* cpu-ns32k.c (_bfd_ns32k_put_immdeiate, _bfd_ns32k_get_immediate):
	There is no 8 byte relocation type for this architecture.
	(do_ns32k_reloc): Use bfd_vma instead of native types.
	(bfd_ns32k_put_immediate, _bfd_ns32k_relocate_contents) put_data
	returns void.
	(_bfd_ns32k_put_displacement): Don't check for overflow. We can
	rely on generic code to do that.
	* aout-ns32k.c (howto_table): Add appropriate overflow detection
	to all table entries.
	(_bfd_ns32k_relocate_contents): put_data returns void.
	* ns32k.h: (_bfd_ns32k_put_displacement, _bfd_ns32k_put_immediate)
	(_bfd_do_ns32k_reloc_contents): Fix prototypes. put data functions
	return void.

2002-07-31  Ian Dall  <ian@sibyl.beware.dropbear.id.au>

	* aoutx.h (aout_link_check_ar_symbols): Whether to include an
	archive object is target dependant.

2002-07-31  Adam Nemet  <anemet@lnxw.com>

	* elf32-arm.h (ARM_PLT_ENTRY_SIZE): Rename PLT_ENTRY_SIZE.
	(THUMB_PLT_ENTRY_SIZE): New macro.
	(PLT_ENTRY_SIZE): Return the appropriate *_PLT_ENTRY_SIZE.
	(elf32_arm_plt0_entry): Rename PLT_ENTRY_SIZE to
	ARM_PLT_ENTRY_SIZE.
	(elf32_arm_plt_entry): Likewise.
	(elf_backend_plt_header_size): Likewise.
	(elf32_thumb_plt0_entry): New global.
	(elf32_arm_finish_dynamic_sections): Use it.  Put Thumb entries
	into .plt.thumb.
	(elf32_thumb_plt_entry): New global.
	(elf32_arm_finish_dynamic_symbol): Use it.  Use .thumb.plt for
	Thumb entries.  Set the bottom bit of the corresponding GOT entry
	for a Thumb PLT entry.
	(struct elf32_arm_plt_entry_info): New structure.
	(struct elf32_arm_link_hash_entry, plt_info): New member of this
	type.
	(elf32_arm_link_hash_newfunc): Initialize new member.
	(elf32_arm_final_link_relocate, R_ARM_THM_PC22 case): Handle
	relocations against the PLT.
	(elf32_arm_check_relocs, case R_ARM_PLT32 case): Set
	first_rel_type if this is the first time we encounter the symbol.
	(elf32_arm_check_relocs, case R_ARM_THM_PC22 case): New case.
	Determine if relocation needs a PLT entry.  Set first_rel_type if
	this is the first time we encounter the symbol
	(elf32_arm_adjust_dynamic_symbol): Create PLT entries for Thumb
	functions as well.
	(elf32_arm_size_dynamic_sections): Handle .plt.thumb like .plt.
	(elf32_arm_create_dynamic_sections): New function.  Create the
	.plt.thumb section.
	(elf_backend_create_dynamic_sections): Call it.

2002-07-31  Nick Clifton  <nickc@redhat.com>

	* bfd.c (bfd_alt_mach_code): Rename parameter 'index' to
	'alternative' in order to avoid shadowing global symbol of the
	same name.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* libcoff.h: Regenerate.

2002-07-31  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* Makefile.am: Add n32 ABI support.
	* Makefile.in: Regenerate.
	* config.bfd: Add n32 vectors to mips64*-*-linux* targets. Treat 64
	bit vectors for mips*-*-linux targets as optional.
	* configure.in: Add n32 ABI vectors.
	* configure: Regenerate.
	* elf32-mips.c (mips_elf32_object_p): Reject n32 ABI files.
	* elfn32-mips.c: New file, n32 ABI support.
	* targets.c: Add n32 ABI vectors.

2002-07-30  Graeme Peterson  <gp@qnx.com>

	* elfarmqnx-nabi.c: New file: Support for QNX.
	* config.bfd: Add support for arm-*-nto target.
	* configure.in: Add support for bfd_elf32_{big|little}armqnx_vec.
	* configure: Regenerate.
	* Makefile.am: Add entries for elfarmqnx-nabi.c.
	* Makefile.in: Regenerate.
	* elf32-arm.h (ELF_MAXPAGESIZE): Do not define if already defined.
	Do not define global function if ELFARM_NABI_C_INCLUDED is defined.
	* elfarm-nabi.c: Do not include elf32-arm.h if
	ELFARM_NABI_C_INCLUDED is defined.
	* targets.c: Add bfd_elf32_{big|little}armqnx_vec.

2002-07-30  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.

2002-07-30  Jakub Jelinek  <jakub@redhat.com>

	* elf.c (elf_fake_sections): Fix up .tbss sh_size and sh_type.

2002-07-30  Alan Modra  <amodra@bigpond.net.au>

	* aoutx.h (some_aout_object_p): Clean up tdata properly on error.
	* archive.c (bfd_generic_archive_p): Likewise.
	* coff-rs6000.c (_bfd_xcoff_archive_p): Likewise.
	(_bfd_xcoff_archive_p): Use bfd_scan_vma in place of strtol.
	* coff64-rs6000.c (xcoff64_slurp_armap): Likewise.
	(xcoff64_archive_p): Likewise.
	(xcoff64_openr_next_archived_file): Likewise.
	(xcoff64_archive_p): Clean up tdata properly on error.
	* coffgen.c (coff_real_object_p): Likewise.
	(coff_object_p): Release filehdr and opthdr.
	* ecoff.c (_bfd_ecoff_archive_p): Clean up tdata properly on error.
	* ieee.c (ieee_archive_p): Likewise.
	* ihex.c (ihex_object_p): Likewise.
	(ihex_mkobject): Always allocate tdata.
	* peicode.h (pe_ILF_object_p): Release bfd_alloc'd buffer on error.
	* srec.c (srec_mkobject): Always allocate tdata.
	(srec_object_p): Clean up tdata properly on error.
	(symbolsrec_object_p): Likewise.
	* versados.c (versados_object_p): Likewise.
	* vms-misc.c (_bfd_vms_get_record): Use bfd_malloc instead of malloc,
	and bfd_realloc instead of realloc.
	(add_new_contents): Use bfd_alloc instead of bfd_malloc for sections.
	* vms.c (vms_initialize): Always allocate tdata.  Use bfd_alloc in
	place of bfd_malloc, simplifying error freeing.  Free hash table too.
	(vms_object_p): Clean up tdata on error.
	(vms_mkobject): Don't complain on stderr if vms_initialize fails.
	(vms_close_and_cleanup): Adjust for bfd_alloc use.

2002-07-30  Alan Modra  <amodra@bigpond.net.au>

	* elfxx-ia64.c (elfNN_ia64_final_write_processing): Set e_flags.

2002-07-26  Chris Demetriou  <cgd@broadcom.com>

	* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Merge ASE
	flags into resulting BFD.

2002-07-26  Alan Modra  <amodra@bigpond.net.au>

	From John Reiser <jreiser@BitWagon.com>
	* elf32-i386.c (elf_i386_link_hash_table_create): Clear
	tls_ldm_got.refcount.

2002-07-25  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elf64-mips.c: Update TODO comment.
	(mips_elf64_higher_reloc,mips_elf64_highest_reloc,
	mips_elf64_gprel16_reloca): Remove prototypes.
	(mips16_jump_reloc,mips16_gprel_reloc): Add functions.
	(UNUSED_RELOC): Replace by EMPTY_RELOC.
	(mips_elf64_howto_table_rel): Use special R_MIPS_HI16 handling. Remove
	wrong comments. Remove disfunctional support of R_MIPS_HIGHER and
	R_MIPS_HIGHEST.
	(mips_elf64_howto_table_rela): Fix handling of R_MIPS_GPREL16 and
	R_MIPS_GOT16. Remove wrong comments.
	(elf_mips16_jump_howto,elf_mips16_gprel_howto,
	elf_mips_gnu_vtinherit_howto,elf_mips_gnu_vtentry_howto): New, code
	from elf32-mips.c.
	(mips_elf64_hi16_reloc): Fix formatting.
	(mips_elf64_higher_reloc,mips_elf64_highest_reloc): Remove.
	(mips_elf64_got16_reloc): Fix formatting. Remove superfluous code.
	Better comment. Fall back to R_MIPS_GOT_DISP instead of abort().
	(mips_elf64_gprel16_reloc): Make static. Add check for
	partial_inplace.
	(mips_elf64_gprel16_reloca): Remove.
	(mips_elf64_literal_reloc): New function.
	(mips_elf64_gprel32_reloc): Fix formatting.
	(mips_elf64_shift6_reloc): Fix comment. Make static.
	(mips16_jump_reloc,mips16_gprel_reloc): New functions, code from
	elf32-mips.c.
	(elf_reloc_map,mips_reloc_map): New mapping table, similiar as in
	elf32-mips.c
	(bfd_elf64_bfd_reloc_type_lookup): Use the mapping table. Enable GNU
	specific relocations.
	(mips_elf64_rtype_to_howto): Enable GNU specific relocations.
	(mips_elf64_object_p): Invert logic to check for SGI-ish ABI.
	(ELF_MAXPAGESIZE): Add comment.

2002-07-25  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.
	* po/es.po: Updated Spanish translation.
	* po/fr.po: Updated French translation.

2002-07-25  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (_bfd_elf32_link_record_local_dynamic_symbol): Define
	as elf_link_record_local_dynamic_symbol.
	(_bfd_elf64_link_record_local_dynamic_symbol): Likewise.
	(elf_link_record_local_dynamic_symbol): Declare.  Now returns int.
	* elflink.h (elf_link_record_local_dynamic_symbol): Move to..
	* elflink.c: .. here.  Use bfd_elf_get_elf_syms.  Check whether an
	attempt is made to record a symbol in a discarded section, and
	return `2' in that case.

2002-07-24  Nick Clifton  <nickc@redhat.com>

	* po/sv.po: Updated Swedish translation.
	* po/es.po: Updated Spanish translation.

2002-07-23  Alan Modra  <amodra@bigpond.net.au>

	* po/SRC-POTFILES.in: Regenerate.

	* elf-hppa.h (elf_hppa_relocate_section): If relocatable, return
	immediately.  Remove code handling relocatable linking.
	* elf32-avr.c (elf32_avr_relocate_section): Likewise.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-fr30.c (elf32_frv_relocate_section): Likewise.
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
	* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf32-v850.c (v850_elf_relocate_section): Likewise.
	* elf32-vax.c (elf_vax_relocate_section): Likewise.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
	* elf32-avr.c (elf_backend_rela_normal): Define.
	* elf32-cris.c: Likewise.
	* elf32-fr30.c: Likewise.
	* elf32-frv.c: Likewise.
	* elf32-h8300.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-ip2k.c: Likewise.
	* elf32-sparc.c: Likewise.
	* elf32-v850.c: Likewise.
	* elf32-vax.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elf64-sparc.c: Likewise.
	* elf32-fr30.c (elf32_frv_relocate_section): Edit comment.
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf-m10200.c (USE_RELA): Don't define.
	* elf-m10300.c: Likewise.
	* elfarm-oabi.c: Likewise.
	* elf32-i370.c: Likewise.
	* elf32-ip2k.c: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-mcore.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-vax.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elf64-x86-64.c: Likewise.
	* elfxx-ia64.c: Likewise.
	* elf32-avr.c (USE_REL): Don't undef.
	* elf32-ip2k.c: Likewise.

2002-07-23  Nick Clifton  <nickc@redhat.com>

	* elf-bfd.h (struct elf_backend_data): Add new bitfield
	'want_p_paddr_set_to_zero'.
	* elfxx-target.h: Set default value for want_p_paddr_set_to_zero
	to false;
	* elfxx-ia64.c: Set want_p_paddr_set_zero for HPUX target.
	* elf.c (copy_private_bfd_data): Test want_p_paddr_set_zero.

2002-07-23  Gabor Keresztfalvi  <keresztg@mail.com>

	* nlmcode.h (nlm_swap_auxiliary_headers_out): Swapped the order of
	the MeSsAgEs and CoPyRiGhT tags to make >=NW4.x NLM loaders to
	show the Copyright string.
	Minor formatting tidy ups.

2002-07-23  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated French translation.
	* po/sv.po: Updated Swedish translation.

2002-07-23  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_input_bfd): Don't change internal symbols
	when outputting relocs.

2002-07-20  Jason Thorpe  <thorpej@wasabisystems.com>

	* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Only insert
	DT_PLTGOT into the dynamic section if there is a PLT.

2002-07-19  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (_bfd_mips_elf_discard_info): New function, code from
	elf32-mips.c.
	(_bfd_mips_elf_write_section): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_discard_info): New prototype.
	(_bfd_mips_elf_write_section): Likewise.
	* elf32-mips.c (elf32_mips_discard_info): Move to elfxx-mips.c.
	(elf32_mips_write_section): Likewise.
	* elf64-mips.c (_bfd_mips_elf_ignore_discarded_relocs): Use it.
	(_bfd_mips_elf_write_section): Likewise.

2002-07-19  Alan Modra  <amodra@bigpond.net.au>

	* elfxx-ia64.c: (elfNN_ia64_modify_segment_map): Properly scan
	PT_IA_64_UNWIND segments for a given section.

2002-07-17  H.J. Lu <hjl@gnu.org>

	* Makefile.am: Fix a typo.
	* Makefile.in: Regenerate.

2002-07-15  Denis Chertykov  <denisc@overta.ru>
	    Frank Ch. Eigler  <fche@redhat.com>
	    Ben Elliston  <bje@redhat.com>
	    Alan Lehotsky  <alehotsky@cygnus.com>
	    John Healy  <jhealy@redhat.com>
	    Graham Stott  <grahams@redhat.com>
	    Jeff Johnston  <jjohnstn@redhat.com>

	* Makefile.am: Add support for ip2k.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.
	* archures.c: Add support for ip2k.
	* config.bfd: Add support for ip2k.
	* configure.in: Add support for ip2k.
	* configure: Regenerate.
	* reloc.c: Add support for ip2k.
	* targets.c: Add support for ip2k.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* cpu-ip2k.c: New file.
	* elf32-ip2k.c: New file.

2002-07-17  Ian Rickards  <irickard@arm.com>

	* dwarf2.c (concat_filename): If we can't establish the directory
	just return the filename.

2002-07-16  Moritz Jodeit  <moritz@jodeit.org>

	* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Correct order of memset args.

2002-07-16  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h: Formatting fixes, tidy prototypes.
	(elf_link_assign_sym_version): Move common code out of loop.

2002-07-16  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_input_bfd): Don't call reloc_emitter when
	reloc section size is zero.  Correct reloc output location.

2002-07-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* elf-hppa.h (elf_hppa_reloc_final_type): Use R_PARISC_PCREL16F as
	the final type for the e_fsel selector when generating PA2.0W code.
	(elf_hppa_relocate_insn): Provide support for PA2.0W 16-bit format 1
	relocations.

2002-07-14  H.J. Lu <hjl@gnu.org>

	* elflink.h (elf_link_assign_sym_version): Hide the default
	definition if there is a hidden versioned definition.

2002-07-12  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section): Drop nonsensical
	dynamic reference test in assertion when initializing GOT with
	static contents.  Just assert that there are either no dynamic
	sections, the symbol is defined in the regular objects or that the
	symbol is undef weak.  Tweak comment.
	(elf_cris_finish_dynamic_symbol): Emit .got reloc for a program
	only if the symbol isn't defined in the program and isn't undef
	weak.
	(elf_cris_adjust_dynamic_symbol): Simplify condition for getting
	rid of PLT entry: only do it if the symbol isn't defined in a DSO.
	When doing so, clear ELF_LINK_HASH_NEEDS_PLT.  Tweak comments.
	(elf_cris_discard_excess_program_dynamics): Don't consider
	ELF_LINK_HASH_REF_DYNAMIC when omitting .got runtime relocs.

2002-07-11  Alan Modra  <amodra@bigpond.net.au>

	* elf32-i386.c (elf_i386_relocate_section): Don't complain about
	unresolved debugging relocs in dynamic applications.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.

2002-07-10  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ONES): Define.
	(ppc64_elf_howto_table): Use ONES here to avoid warnings.  Fill in
	missing src_mask fields.  Tweak R_PPC64_NONE, R_PPC64_COPY.  Fill
	in missing dst_mask fields on R_PPC64_PLT32, R_PPC64_PLTREL32.

	* elf64-ppc.c (ppc64_elf_get_symbol_info): Delete.
	(ppc64_elf_set_private_flags): Delete.
	(ppc64_elf_section_from_shdr): Delete.
	(ppc64_elf_merge_private_bfd_data): Remove flag checking/merging code.
	(ppc64_elf_fake_sections): Delete.
	(bfd_elf64_bfd_set_private_flags): Don't define.
	(bfd_elf64_get_symbol_info): Likewise.
	(elf_backend_section_from_shdr): Likewise.
	(elf_backend_fake_sections): Likewise.

2002-07-10  Marco Walther  <Marco.Walther@sun.com>

	* elf.c: (assign_section_numbers) Set sh_entsize for .stab only
	when not already set.
	* elf64-sparc.c: (sparc64_elf_fake_sections): New function.
	(elf_backend_fake_sections): Define.

2002-07-10  Alan Modra  <amodra@bigpond.net.au>

	* merge.c (_bfd_merge_section): Remove redundant output_section check.
	Formatting.
	(_bfd_merge_sections): Don't set SEC_EXCLUDE on unused sections.

2002-07-09  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section): Move sanity-check for
	NULL sym_hashes to just before use.
	<case R_CRIS_32_GOTREL>: In test for local symbol, accept also
	symbol with non-default visibility.
	<case R_CRIS_32_GOTREL, case R_CRIS_32_PLT_GOTREL>: Ditto.
	<case R_CRIS_8_PCREL, case R_CRIS_16_PCREL, case R_CRIS_32_PCREL>:
	Ditto.
	(cris_elf_gc_sweep_hook): Only decrease h->plt.refcount for
	symbol with non-default visibility.
	(cris_elf_check_relocs): At tests for local symbol before
	increasing h->plt.refcount, also check for non-default
	visibility.  Ditto when checking for local symbol to eliminate
	pc-relative runtime relocs.

2002-07-08  Alan Modra  <amodra@bigpond.net.au>

	* elf.c: Formatting.
	(IS_SOLARIS_PT_INTERP): Add p_paddr and p_memsz checks.
	(INCLUDE_SECTION_IN_SEGMENT): Remove IS_SOLARIS_PT_INTERP.
	(copy_private_bfd_data): Set p_vaddr on broken Solaris PT_INTERP
	segments.

2002-07-07  Mark Mitchell  <mark@codesourcery.com>
	    Alan Modra  <amodra@bigpond.net.au>

	* cofflink.c (_bfd_coff_final_link): On PE COFF systems, take into
	account the impact of relocation count overflow when computing
	section offsets.
	* coffcode.h (coff_write_relocs): Use obj_pe when deciding whether
	or not to apply the PE COFF reloc overflow handling.  Fix a
	fencepost error in deciding whether or not to use that technique.

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

	* elf-bfd.h (struct elf_reloc_cookie): Remove locsym_shndx,
	change type of locsyms.
	(bfd_elf_get_elf_syms): Declare.
	* elf.c (bfd_elf_get_elf_syms): New function.
	(group_signature): Use bfd_elf_get_elf_syms.
	(bfd_section_from_r_symndx): Likewise.
	* elfcode.h (elf_slurp_symbol_table): Likewise.
	* elflink.h (elf_link_is_defined_archive_symbol): Likewise.
	(elf_link_add_object_symbols): Likewise.  Reorganise to increase
	locality of various data structures.  Properly free internal relocs.
	(elf_bfd_final_link): Properly free internal relocs.
	(elf_link_check_versioned_symbol): Use bfd_elf_get_elf_syms.
	(elf_link_input_bfd): Likewise.
	(elf_gc_mark): Likewise.  Properly free internal relocs.
	(elf_gc_sweep): Properly free internal relocs.
	(elf_reloc_symbol_deleted_p): No need to swap syms in.
	(elf_bfd_discard_info): Use bfd_elf_get_elf_syms.  Properly free
	internal relocs.
	* elf-m10200.c (mn10200_elf_relax_section): Use bfd_elf_get_elf_syms.
	Properly free possibly cached info.
	(mn10200_elf_relax_delete_bytes): Remove symbol swapping code.
	(mn10200_elf_symbol_address_p): Pass in internal syms.  Remove
	symbol swapping code.
	(mn10200_elf_get_relocated_section_contents): Use bfd_elf_get_elf_syms.
	Properly free possibly cached info.
	* elf-m10300.c (mn10300_elf_relax_section): As above for elf-m10200.c.
	(mn10300_elf_relax_delete_bytes): Likewise.
	(mn10300_elf_symbol_address_p): Likewise.
	(mn10300_elf_get_relocated_section_contents): Likewise.
	* elf32-h8300.c (elf32_h8_relax_section): As above for elf-m10200.c.
	(elf32_h8_relax_delete_bytes): Likewise.
	(elf32_h8_symbol_address_p): Likewise.
	(elf32_h8_get_relocated_section_contents): Likewise.
	* elf32-m32r.c (m32r_elf_relax_section): As above for elf-m10200.c.
	(m32r_elf_relax_delete_bytes): Likewise.
	(m32r_elf_get_relocated_section_contents): Likewise.
	* elf32-sh.c (sh_elf_reloc_loop): Free section contents using
	elf_section_data to determine whether cached.
	(sh_elf_relax_section): As above for elf-m10200.c.
	(sh_elf_relax_delete_bytes): Likewise.
	(sh_elf_get_relocated_section_contents): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relax_section): As above.
	* elf64-alpha.c (elf64_alpha_relax_section): As above.  Also delay
	reading of local syms.
	* elf64-mmix.c (mmix_elf_relax_section): Likewise.
	* elf64-sh64.c (sh_elf64_get_relocated_section_contents): As above.
	* elfxx-ia64.c (elfNN_ia64_relax_section): As above.
	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Properly free internal
	relocs.
	* elf32-arm.h (bfd_elf32_arm_process_before_allocation): Properly
	free internal relocs and section contents.  Don't read symbols.
	* elf32-hppa.c (get_local_syms): Use bfd_elf_get_elf_syms.
	(elf32_hppa_size_stubs): Don't free local syms.
	* elf32-m68k.c (bfd_m68k_elf32_create_embedded_relocs): Delay
	reading of local syms.  Use bfd_elf_get_elf_syms.  Properly free
	possibly cached info.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): Likewise.
	* elf64-hppa.c (elf64_hppa_check_relocs): Use bfd_elf_get_elf_syms.
	* elf64-ppc.c (struct ppc_link_hash_table): Delete bfd_count and
	all_local_syms.
	(get_local_syms): Delete function.
	(edit_opd): Use bfd_elf_get_elf_syms.  Free on error exit.  Cache
	on exit.
	(ppc64_elf_size_stubs): Use bfd_elf_get_elf_syms.  Free/cache on exit.

2002-07-05  Jim Wilson  <wilson@redhat.com>

	* syms.c (decode_section_type): New.
	(bfd_decode_symclass): Call decode_section_type.

2002-07-04  Jakub Jelinek  <jakub@redhat.com>

	* merge.c (_bfd_merged_section_offset): Avoid accessing byte before
	section content start.
	Reported by Michael Schumacher <mike@hightec-rt.com>.

2002-07-04  Alan Modra  <amodra@bigpond.net.au>

	* section.c (_bfd_strip_section_from_output):  Remove unnecessary
	link order code.  Don't actually remove the output section here;
	Just set a flag for the linker to do so.
	* elflink.c (_bfd_elf_link_renumber_dynsyms): Test for removed
	sections when setting up output section dynsyms.

2002-07-04  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_add_object_symbols): Revert 1999-09-02 hpux
	fudge.
	* elf.c (bfd_section_from_shdr): Work around broken hpux shared
	libs here instead.

2002-07-02  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* elf64-s390.c (create_got_section): Set .got section alignment to
	8 bytes.
	(elf_s390_check_relocs): Set .rela.dyn section alignment to 8 bytes.

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

	* elf.c (_bfd_elf_reloc_type_class): Fix comment grammar.

2002-07-01  Matt Thomas  <matt@3am-software.com>

	* elf32-vax.c (elf32_vax_print_private_bfd_data): Change EF_*
	to EF_VAX_*.

2002-07-01  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (ABI_64_P): Fix comment.
	(MIPS_ELF_OPTIONS_SECTION_NAME,MIPS_ELF_STUB_SECTION_NAME): Use the
	new section names for N64 ABI.
	(mips_elf_output_extsym): No special _gp_disp handling for NewABI.
	(mips_elf_calculate_relocation): Code formatting.
	(mips_elf_create_dynamic_relocation): Likewise.
	(_bfd_mips_elf_fake_sections): IRIX6 needs this hack, too.
	(_bfd_mips_elf_size_dynamic_sections): Handle GOT_PAGE for any NewABI.
	(_bfd_mips_elf_relocate_section): No special handling for R_MIPS_64
	in any NewABI.
	(_bfd_mips_elf_finish_dynamic_symbol): No special _gp_disp handling
	for NewABI.
	(_bfd_mips_elf_modify_segment_map): Handle any N64 ABI.
	(_bfd_mips_elf_gc_sweep_hook): NewABI GOT relocs should be handled
	here, too.

2002-07-01  Andreas Schwab  <schwab@suse.de>

	* elf64-x86-64.c (elf64_x86_64_relocate_section): Only convert
	R_X86_64_64 to R_X86_64_RELATIVE.

2002-07-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* vaxbsd.c: New BFD backend for VAX BSD and Ultrix.
	* Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Add new backend.
	Run "make dep-am".
	* config.bfd (vax-*-bsd* | vax-*-ultrix*): Use vaxbsd_vec instead of
	host_aout_vec.
	* configure.in (vaxbsd_vec): Add.
	* targets.c (vaxbsd_vec): Add.
	* Makefile.in: Rebuild.
	* configure: Rebuild.
	* po/SRC-POTFILES.in: Rebuild.

2002-07-01  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_gc_mark): Pass in the section whose relocs we are
	examining to gc_mark_hook, rather than the bfd.
	(elf_gc_sections): Adjust.
	* elf-bfd.h (struct elf_backend_data <gc_mark_hook>): Likewise.
	* elf-m10300.c (mn10300_elf_gc_mark_hook): Likewise.
	* elf32-arm.h (elf32_arm_gc_mark_hook): Likewise.
	* elf32-avr.c (elf32_avr_gc_mark_hook): Likewise.
	* elf32-cris.c (cris_elf_gc_mark_hook): Likewise.
	* elf32-d10v.c (elf32_d10v_gc_mark_hook): Likewise.
	* elf32-fr30.c (fr30_elf_gc_mark_hook): Likewise.
	* elf32-hppa.c (elf32_hppa_gc_mark_hook): Likewise.
	* elf32-i386.c (elf_i386_gc_mark_hook): Likewise.
	* elf32-m32r.c (m32r_elf_gc_mark_hook): Likewise.
	* elf32-m68k.c (elf_m68k_gc_mark_hook): Likewise.
	* elf32-mcore.c (mcore_elf_gc_mark_hook): Likewise.
	* elf32-openrisc.c (openrisc_elf_gc_mark_hook): Likewise.
	* elf32-ppc.c (ppc_elf_gc_mark_hook): Likewise.
	* elf32-s390.c (elf_s390_gc_mark_hook): Likewise.
	* elf32-sh.c (sh_elf_gc_mark_hook): Likewise.
	* elf32-sparc.c (elf32_sparc_gc_mark_hook): Likewise.
	* elf32-v850.c (v850_elf_gc_mark_hook): Likewise.
	* elf32-vax.c (elf_vax_gc_mark_hook): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_gc_mark_hook): Likewise.
	* elf64-mmix.c (mmix_elf_gc_mark_hook): Likewise.
	* elf64-ppc.c (ppc64_elf_gc_mark_hook): Likewise.
	* elf64-s390.c (elf_s390_gc_mark_hook): Likewise.
	* elf64-sh64.c (sh_elf64_gc_mark_hook): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_gc_mark_hook): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_gc_mark_hook): Likewise.
	* elf64-x86-64.c (elf64_x86_64_gc_mark_hook): Likewise.
	* elf32-frv.c (elf32_frv_gc_mark_hook): Likewise.  Also remove
	redundant local sym tests.
	* elf64-ppc.c (struct ppc_link_hash_entry): Add is_entry.
	(link_hash_newfunc): Init is_entry.
	(ppc64_elf_copy_indirect_symbol): Copy is_entry.
	(ppc64_elf_link_hash_table_create): Init all_local_syms.
	(create_linkage_sections): Use bfd_make_section_anyway rather than
	bfd_make_section.
	(ppc64_elf_mark_entry_syms): New function.
	(ppc64_elf_check_relocs): Don't bother testing elf_bad_symtab.  Set
	up opd entry to function section map.
	(ppc64_elf_gc_mark_hook): Special case opd section relocs, and
	relocs that reference the opd section.
	(edit_opd): New function.
	(ppc64_elf_size_dynamic_sections): Call get_local_syms and edit_opd.
	(ppc64_elf_setup_section_lists): Don't calculate htab->bfd_count here.
	(get_local_syms): Do so here.  Exit if we already have local syms.
	Remove bogus comment imported from elf32-hppa.c.  Don't attempt to
	read local syms on non-ELF input.
	(ppc64_elf_size_stubs): Call _bfd_elf64_link_read_relocs rather
	than duplicating it's function here.  Adjust free of internal
	relocs to suit.
	(ppc64_elf_relocate_section): Adjust local syms in opd section.
	* elf64-ppc.h (ppc64_elf_mark_entry_syms): Declare.
	* elf32-hppa.c (elf32_hppa_size_stubs): Call
	_bfd_elf32_link_read_relocs rather than duplicating it's function
	here.  Adjust free of internal relocs to suit.

2002-07-01  Andreas Jaeger  <aj@suse.de>

	* elf64-x86-64.c (elf64_x86_64_check_relocs): Certain relocations
	are not allowed in shared libs code, enforce -fPIC.

2002-06-29  Hans-Peter Nilsson  <hp@bitrange.com>

	* mmo.c (mmo_write_loc_chunk): Don't eliminate leading and
	trailing zero-sequences when there's previous left-over data.

2002-06-27  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* elf64-hppa.c (elf64_hppa_reloc_type_class): New function.
	(elf64_hppa_finish_dynamic_sections): Check other_rel_sec, dlt_rel_sec
	and opd_rel_sec in order for starting rela section.  Check _raw_size.
	(elf_backend_reloc_type_class): Define.

2002-06-27  Kevin Buettner <kevinb@redhat.com>

	* dwarf2.c (decode_line_info): Handle older, non-standard, 64-bit
	DWARF2 formats.

2002-06-27  Alan Modra  <amodra@bigpond.net.au>

	* cpu-powerpc.c: Comment on ordering of arch_info.
	* elf32-ppc.c (ppc_elf_object_p): New function.
	(elf_backend_object_p): Define.
	* elf64-ppc.c (ppc64_elf_object_p): New function.
	(elf_backend_object_p): Define.

2002-06-26  Jason Thorpe  <thorpej@wasabisystems.com>

	* configure.in (vax-*-netbsd*): Set COREFILE to netbsd-core.lo.
	* configure: Regenerate.

2002-06-25  Jason Eckhardt  <jle@rice.edu>

	* dwarf2.c (decode_line_info): Check unit->addr_size
	to read in the proper number of prologue bytes.

2002-06-25  Nick Clifton  <nickc@cambridge.redhat.com>

	* config.bfd (powerpc-*-aix5*): Only create a selvecs for
	aix5coff64_vec if 64-bit bfd support has been enabled.
	(powerpc64-*-aix5*): Only define if 64-bit bfd support has
	been enabled.

	* targets.c (_bfd_target_vector[]): Only include
	aix5coff64_vec if 64-bit bfd support has been enabled.

2002-06-25  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc_add_stub): Replace strcpy/strncpy with memcpy.
	* elf32-hppa.c (hppa_add_stub): Likewise.
	* elflink.c (_bfd_elf_link_record_dynamic_symbol): Likewise.
	* elflink.h (elf_add_default_symbol): Fix comment typo.
	(elf_add_default_symbol): Replace strcpy and strncpy with memcpy.
	(elf_link_add_object_symbols): Likewise.
	(elf_link_assign_sym_version): Likewise.
	* hash.c (bfd_hash_lookup): Likewise.
	* linker.c (_bfd_generic_link_add_one_symbol): Likewise.
	* section.c (bfd_get_unique_section_name): Likewise.
	* syms.c (_bfd_stab_section_find_nearest_line): Likewise.
	* elf.c (_bfd_elf_make_section_from_phdr): Likewise.
	(assign_section_numbers): Likewise.
	(_bfd_elfcore_make_pseudosection): Likewise.
	(elfcore_grok_lwpstatus): Likewise.
	(elfcore_grok_win32pstatus): Likewise.
	(elfcore_write_note): Constify input params.  Use PTR instead of
	void *.  Include terminating NUL in namesz.  Correct padding.
	Support NULL "name" param.  Use memcpy instead of strcpy.
	(elfcore_write_prpsinfo): Constify input params.
	(elfcore_write_prstatus): Likewise.  Use PTR instead of void *.
	(elfcore_write_lwpstatus): Likewise.
	(elfcore_write_pstatus): Likewise.
	(elfcore_write_prfpreg): Likewise.
	(elfcore_write_prxfpreg): Likewise.
	* elf-bfd.h (elfcore_write_note): Update declaration.
	(elfcore_write_prpsinfo): Likewise.
	(elfcore_write_prstatus): Likewise.
	(elfcore_write_pstatus): Likewise.
	(elfcore_write_prfpreg): Likewise.
	(elfcore_write_prxfpreg): Likewise.
	(elfcore_write_lwpstatus): Likewise.

2002-06-25  Jason Eckhardt  <jle@rice.edu>

	* ecoff.c (ecoff_set_symbol_info): Set BSF_FUNCTION for
	symbols of type stProc and stStaticProc.

2002-06-25  Nick Clifton  <nickc@redhat.com>

	* ecoff.c: VArious formatting fixes.

2002-06-25  Alan Modra  <amodra@bigpond.net.au>

	* coff-rs6000.c (xcoff_generate_rtinit): Fix typo.

2002-06-25  Alan Modra  <amodra@bigpond.net.au>

	* aout-adobe.c: Don't compare against "true" or "false.
	* aout-target.h: Likewise.
	* aoutx.h: Likewise.
	* archive.c: Likewise.
	* bout.c: Likewise.
	* cache.c: Likewise.
	* coff-a29k.c: Likewise.
	* coff-alpha.c: Likewise.
	* coff-i386.c: Likewise.
	* coff-mips.c: Likewise.
	* coff-or32.c: Likewise.
	* coff64-rs6000.c: Likewise.
	* coffcode.h: Likewise.
	* coffgen.c: Likewise.
	* cpu-ns32k.c: Likewise.
	* ecoff.c: Likewise.
	* ecofflink.c: Likewise.
	* elf.c: Likewise.
	* elf32-arm.h: Likewise.
	* elf32-cris.c: Likewise.
	* elf32-d30v.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-mcore.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-sh64.c: Likewise.
	* elf32-v850.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-sh64.c: Likewise.
	* elfcode.h: Likewise.
	* elfcore.h: Likewise.
	* elflink.h: Likewise.
	* elfxx-mips.c: Likewise.
	* i386os9k.c: Likewise.
	* ieee.c: Likewise.
	* libbfd.c: Likewise.
	* linker.c: Likewise.
	* mmo.c: Likewise.
	* nlm32-alpha.c: Likewise.
	* nlm32-i386.c: Likewise.
	* nlm32-ppc.c: Likewise.
	* nlm32-sparc.c: Likewise.
	* nlmcode.h: Likewise.
	* oasys.c: Likewise.
	* pdp11.c: Likewise.
	* peicode.h: Likewise.
	* reloc.c: Likewise.
	* som.c: Likewise.
	* srec.c: Likewise.
	* tekhex.c: Likewise.
	* vms.c: Likewise.
	* xcofflink.c: Likewise.
	* elf64-sparc.c: Edit comment to not use "== false".

	* aoutf1.h: Don't use "? true : false".
	* ecoff.c: Likewise.
	* format.c: Likewise.
	* ieee.c: Likewise.
	* linker.c: Likewise.
	* mmo.c: Likewise.
	* oasys.c: Likewise.

2002-06-23  H.J. Lu  <hjl@gnu.org>

	* elflink.h (elf_link_add_archive_symbols): For the default
	version, check references with only one `@' first.

2002-06-23  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* elf64-hppa.c (elf64_hppa_mark_milli_and_exported_functions): New
	function.
	(allocate_global_data_dlt):  Don't add millicode symbols to dynamic
	symbol table.
	(allocate_global_data_opd, allocate_dynrel_entries): Likewise.
	(elf64_hppa_size_dynamic_sections): Revise to use
	elf64_hppa_mark_milli_and_exported_functions.
	(elf64_hppa_finish_dynamic_symbol): Remove code to keep millicode
	symbols out of dynamic symbol table.

2002-06-23  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.in: Regenerate.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

	* elflink.h: Comment typo fixes.

2002-06-23  H.J. Lu  <hjl@gnu.org>

	* elf-bfd.h (elf_link_loaded_list): New structure.
	(elf_link_hash_table): Add "loaded".
	* elf.c (_bfd_elf_link_hash_table_init): Initialize "loaded".
	* elflink.h (elf_link_check_versioned_symbol): New function.
	(elf_link_output_extsym): Call elf_link_check_versioned_symbol.

2002-06-19  Nick Clifton  <nickc@cambridge.redhat.com>

	* elflink.h (size_dynamic_sections): If the target does not
	support an ELF style hash table, return true, indicating that
	nothing needed to be done, rather than false, indicating that the
	section's size could not be computed.

2002-06-18  Dave Brolley  <brolley@redhat.com>

	From Catherine Moore, Michael Meissner, Dave Brolley:
	* po/SRC-POTFILES.in: Add cpu-frv.c and elf32-frv.c
	* targets.c: Support bfd_elf32_frv_vec.
	* reloc.c: Add FRV relocs.
	* configure.in: Add support for bfd-elf32-frv-vec.
	* config.bfd (targ_cpu): Add support for frv-*-elf.
	* archures.c: Add frv arch and machines.
	* Makefile.am (ALL_MACHINES): Add cpu-frv.lo.
	(ALL_MACHINES_CFILES): Add cpu-frv.c.
	(BFD32_BACKENDS): Add elf32-frv.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-frv.c
	(cpu-frv.lo): New target.
	(elf32-frv.lo): New target.
	* cpu-frv.c: New file.
	* elf32-frv.c: New file.

2002-06-18  Jakub Jelinek  <jakub@redhat.com>

	* elfcode.h (elf_object_p): Sanity check eh_shoff == 0 implies
	e_shnum == 0.
	Only read the first section header if e_shoff is non-zero.
	Don't consider e_shstrndx if there are no sections.

2002-06-17  Tom Rix <trix@redhat.com>

	* elf32-d10v.c (elf_d10v_howto_table): Change R_D10V_10_PCREL_R,
	R_D10V_10_PCREL_L and R_D10V_18_PCREL to use
	complain_overflow_bitfield.

2002-06-17  Alan Modra  <amodra@bigpond.net.au>

	* opncls.c (bfd_openr): Remove redundant bfd_set_error.
	(bfd_fdopenr): Likewise.
	(bfd_openstreamr): Likewise.
	(bfd_openw): Likewise.

	* targets.c: Sort target vecs.
	(_bfd_target_vector): Add aix5coff64_vec, bfd_elf32_sh64_vec,
	bfd_elf32_sh64l_vec, bfd_elf32_sh64lnbsd_vec,
	bfd_elf32_sh64nbsd_vec, bfd_elf64_sh64_vec, bfd_elf64_sh64l_vec,
	bfd_elf64_sh64lnbsd_vec, bfd_elf64_sh64nbsd_vec.
	* configure.in: Sort target vecs.  Add m88kmach3_vec.
	* configure: Regenerate.

2002-06-16  Hans-Peter Nilsson  <hp@bitrange.com>

	* elf64-mmix.c (bpo_reloc_request_sort_fn): Use member
	bpo_reloc_no to break sort order ties, not address of items.

2002-06-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* elf-hppa.h (elf_hppa_final_link): Fix formatting in comment.
	Skip excluded sections in determing __gp value.
	(elf_hppa_final_link_relocate): Use the symbol's address in
	R_PARISC_FPTR64 relocations that don't need an opd entry.
	* elf64-hppa.c (allocate_dynrel_entries): Simplify code.
	(elf64_hppa_finalize_dynreloc): Likewise.
	(elf64_hppa_size_dynamic_sections): Move comments and fix typo.
	(elf64_hppa_finish_dynamic_symbol): Break up assert.

2002-06-14  Sergey Grigoriev  <serge@leopold.Physik.Uni-Augsburg.DE>

	* pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Enable 16 byte
	alignment for .bss, .data and .text sections so that sse and sse2
	code will work.
	* pe-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Likewise.

2002-06013  J"orn Rennecke  <joern.rennecke@superh.com>

	config.bfd: Add support for sh[1234]l*-*-elf* | sh3el*-*-elf*,
	sh[1234]*-elf*.

2002-06-12  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* elflink.h (elf_bfd_final_link): Improve error handling for missing
	dynamic sections.

	* elf64-hppa.c (allocate_global_data_opd): We don't need an opd entry
	for a symbol that has no output section.
	(allocate_dynrel_entries): Correct comment.
	(elf64_hppa_finalize_dynreloc): Likewise.  Don't create an opd entry
	unless we want one.
	(elf64_hppa_finalize_opd): Prevent segfault if dyn_h is NULL.
	(elf64_hppa_finalize_dlt): Likewise.  Prevent segfault for symbols
	with no section.  Remove unnecessary parentheses.

2002-06-11  Tom Rix  <trix@redhat.com>

	* coffcode.h (coff_compute_section_file_positions): Add data
	section to AIX loader alignment check.

	* coff-rs6000.c (_bfd_xcoff_mkobject): Set default text section
	alignment to 4 bytes.
	(_bfd_xcoff_copy_private_bfd_data): Use text and data alignment
	power accessor macro.
	(do_shared_object_padding): Remove invalid assertion.

2002-06-10  Richard Sandiford  <rsandifo@redhat.com>

	* section.c (_bfd_strip_section_from_output): Set SEC_EXCLUDE
	for removed output sections.

2002-06-10  Geoffrey Keating  <geoffk@redhat.com>

	* merge.c (merge_strings): Use htab_create_alloc with calloc, not
	htab_alloc.
	* elf-strtab.c (_bfd_elf_strtab_finalize): Likewise.

2002-06-08  H.J. Lu <hjl@gnu.org>

	* elf.c (copy_private_bfd_data): Don't cast to bfd_size_type to
	work around a long long bug in gcc 2.96 on mips.

2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am (BFD32_BACKENDS): Add vax1knetbsd.lo.
	(BFD32_BACKENDS_CFILES): Add vax1knetbsd.c.
	Regenerate dependency lists.
	* Makefile.in: Regenerate.
	* config.bfd (vax-*-netbsdelf*, vax-*-netbsdaout*): Add
	vax1knetbsd_vec to targ_selvecs.
	* configure.in: Add vax1knetbsd_vec.
	* configure: Regenerate.
	* targets.c (_bfd_target_vector): Add vax1knetbsd_vec.
	* vax1knetbsd.c: New file.
	* vaxnetbsd.c: Update copyright years.
	(TARGET_PAGE_SIZE): Set to 0x1000.
	(DEFAULT_MID): Set to M_VAX4K_NETBSD.

2002-06-08  Matt Thomas  <matt@3am-software.com>

	* libaout.h (enum machine_type): Add M_VAX4K_NETBSD.

2002-06-08  Alan Modra  <amodra@bigpond.net.au>

	* elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Make static.

2002-06-08  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

	* armnetbsd.c: Replace CONST with const.
	* corefile.c: Likewise.
	* elf32-dlx.c: Likewise.
	* elf64-mips.c: Likewise.
	* mmo.c: Likewise.
	* ns32knetbsd.c: Likewise.

	* elf64-sparc.c (sparc64_elf_add_symbol_hook): Check the hash
	table is elf64-sparc.

2002-06-08  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c (_bfd_mips_elf_relocate_section): Simplify code.
	Fix RELA addends to get not shifted in the result. Don't do special
	handling of R_MIPS_64 for NewABI.

2002-06-07  Alan Modra  <amodra@bigpond.net.au>

	* aoutx.h (NAME(aout,slurp_symbol_table)): Use bfd_zmalloc.
	(NAME(aout,slurp_reloc_table)): Likewise.
	* coff-mips.c (mips_relax_section): Use bfd_zalloc.
	* coff-rs6000.c (xcoff_write_armap_big): Use bfd_zmalloc.
	(xcoff_write_archive_contents_big): Likewise.
	(xcoff_generate_rtinit): Likewise.
	(xcoff_generate_rtinit): Likewise, and check error return.
	* coff64-rs6000.c (xcoff64_generate_rtinit): Likewise.
	* coffgen.c (coff_section_symbol): Use bfd_zalloc.
	(coff_get_normalized_symtab): Likewise.
	(coff_make_empty_symbol): Likewise.
	(bfd_coff_set_symbol_class): Likewise.
	* cofflink.c (coff_link_add_symbols): Likewise.
	* ecoff.c (_bfd_ecoff_make_empty_symbol): Likewise.
	* ecofflink.c (ecoff_write_shuffle): Use bfd_zmalloc.
	(bfd_ecoff_write_accumulated_debug): Likewise.
	* elf64-alpha.c (get_got_entry): Use bfd_zalloc.
	* i386linux.c (bfd_i386linux_size_dynamic_sections): Likewise.
	* i386lynx.c (NAME(lynx,slurp_reloc_table)): Use bfd_zmalloc.
	* ieee.c (do_with_relocs): Use bfd_zalloc.
	* m68klinux.c (bfd_m68klinux_size_dynamic_sections): Likewise.
	* pdp11.c (NAME(aout,slurp_symbol_table)): Use bfd_zmalloc.
	(NAME(aout,slurp_reloc_table)): Likewise.
	(NAME(aout,squirt_out_relocs)): Don't memset when zalloc'd.
	* reloc16.c (bfd_coff_reloc16_relax_section): Use bfd_zmalloc.
	* som.c (som_build_and_write_symbol_table): Likewise.
	(som_slurp_string_table): Likewise.
	(som_slurp_symbol_table): Likewise.
	(som_bfd_ar_write_symbol_stuff): Likewise.
	* sparclinux.c (bfd_sparclinux_size_dynamic_sections): Use bfd_zalloc.
	* sunos.c (bfd_sunos_size_dynamic_sections): Likewise.
	* tekhex.c (find_chunk): Likewise.  Get rid of unused "sname".
	* vms-gsd.c (_bfd_vms_slurp_gsd): Use bfd_zmalloc.
	* xcofflink.c (xcoff_link_add_symbols): Use bfd_zalloc/bfd_zmalloc.

2002-06-07  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (struct bfd_elf_section_data <group_name>): Replace with
	"group" union.
	(elf_group_name): Update.
	(elf_group_id): Define.
	(bfd_elf_set_group_contents): Declare.
	* elf.c (elf_fake_sections): Qualify use of elf_group_name.
	(set_group_contents): Rename to bfd_elf_set_group_contents.  Remove
	ATTRIBUTE_UNUSED from failedptrarg.  If elf_group_id is set, use
	that sym for the signature.
	(_bfd_elf_compute_section_file_positions): Don't call
	set_group_contents for "ld -r" case.
	(swap_out_syms): Use bfd_zalloc.
	* elflink.h (elf_link_add_archive_symbols): Likewise.
	(NAME(bfd_elf,size_dynamic_sections)): Likewise.
	(elf_bfd_final_link): Call bfd_elf_set_group_contents.

2002-06-07  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_relocate_section): Allow unresolved
	relocs in opd for non-shared too.

2002-06-06  Jeffrey Law  <law@redhat.com>

	* elf32-h8300.c (elf32_h8_relax_section): Ignore uninteresting
	relocations.

2002-06-06  Nick Clifton  <nickc@cambridge.redhat.com>

	* merge.c: Include libiberty.h.
	* elf-strtab.c: Include libiberty.h.

2002-06-06  Elias Athanasopoulos  <eathan@otenet.gr>

	* peXXigen.c (pe_print_idata): Remove unused variable.

2002-06-06  David Heine <dlheine@tensilica.com>

	* elf.c (assign_file_positions_for_segments): Remove unallocated
	sections from the section to segment mapping for PT_LOAD segments.
	Update comment about empty loadable segments.

2002-06-06  Richard Sandiford  <rsandifo@redhat.com>

	* stabs.c (_bfd_link_section_stabs): Check that the symbol offset
	is within the .stabstr section.

2002-06-06  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (struct elf_size_info <swap_symbol_in>): Function args
	are "const PTR", not "const PTR *".
	(bfd_elf32_swap_symbol_in): Likewise.
	(bfd_elf64_swap_symbol_in): Likewise.
	* elfcode.h (elf_swap_symbol_in): Change input args to const PTR.
	(elf_slurp_symbol_table): Adjust call to elf_swap_symbol_in.
	* elflink.h (elf_link_is_defined_archive_symbol): Likewise.
	(elf_link_add_object_symbols): Likewise.
	(elf_link_record_local_dynamic_symbol): Likewise.
	(elf_link_input_bfd): Likewise.
	(elf_gc_mark): Likewise.
	(elf_reloc_symbol_deleted_p): Likewise.
	* elf-m10200.c (mn10200_elf_relax_section): Likewise.
	(mn10200_elf_relax_delete_bytes): Likewise.
	(mn10200_elf_symbol_address_p): Likewise.
	(mn10200_elf_get_relocated_section_contents): Likewise.
	* elf-m10300.c (mn10300_elf_relax_section): Likewise.
	(mn10300_elf_relax_section): Likewise.
	(mn10300_elf_relax_delete_bytes): Likewise.
	(mn10300_elf_symbol_address_p): Likewise.
	(mn10300_elf_get_relocated_section_contents): Likewise.
	* elf32-h8300.c (elf32_h8_relax_section): Likewise.
	(elf32_h8_relax_delete_bytes): Likewise.
	(elf32_h8_symbol_address_p): Likewise.
	(elf32_h8_get_relocated_section_contents): Likewise.
	* elf32-hppa.c (get_local_syms): Likewise.
	* elf32-m68k.c (bfd_m68k_elf32_create_embedded_relocs): Likewise.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): Likewise.
	* elf32-sh.c (sh_elf_relax_section): Likewise.
	(sh_elf_relax_delete_bytes): Likewise.
	(sh_elf_get_relocated_section_contents): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relax_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relax_section): Likewise.
	* elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
	* elf64-mmix.c (mmix_elf_relax_section): Likewise.
	* elf64-ppc.c (get_local_syms): Likewise.
	* elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.

2002-06-05  J"orn Rennecke <joern.rennecke@superh.com>

	* config.bfd (sh64l*-*-elf*, shl*-*-elf*): New configurations.

2002-06-05  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (group_signature): Swap in the whole symbol, and handle
	extracting section symbol names.
	(setup_group): Add comment.
	(set_group_contents): When called from objcopy or ld, arrange for
	section contents to be written.  Write group member output section
	indices to allow objcopy to reorganize sections.
	(_bfd_elf_copy_private_section_data): Copy group info.

	* elf-bfd.h (struct elf_size_info): Add swap_symbol_in field.
	(bfd_elf32_swap_symbol_in): Update prototype.
	(bfd_elf64_swap_symbol_in): Likewise.
	* elfcode.h (elf_swap_symbol_in): Change input args to const PTR *.
	(elf_slurp_symbol_table): Adjust call to elf_swap_symbol_in.
	* elflink.h (elf_link_is_defined_archive_symbol): Likewise.
	(elf_link_add_object_symbols): Likewise.
	(elf_link_record_local_dynamic_symbol): Likewise.
	(elf_link_input_bfd): Likewise.
	(elf_gc_mark): Likewise.
	(elf_reloc_symbol_deleted_p): Likewise.
	* elf-m10200.c (mn10200_elf_relax_section): Likewise.
	(mn10200_elf_relax_delete_bytes): Likewise.
	(mn10200_elf_symbol_address_p): Likewise.
	(mn10200_elf_get_relocated_section_contents): Likewise.
	* elf-m10300.c (mn10300_elf_relax_section): Likewise.
	(mn10300_elf_relax_section): Likewise.
	(mn10300_elf_relax_delete_bytes): Likewise.
	(mn10300_elf_symbol_address_p): Likewise.
	(mn10300_elf_get_relocated_section_contents): Likewise.
	* elf32-h8300.c (elf32_h8_relax_section): Likewise.
	(elf32_h8_relax_delete_bytes): Likewise.
	(elf32_h8_symbol_address_p): Likewise.
	(elf32_h8_get_relocated_section_contents): Likewise.
	* elf32-hppa.c (get_local_syms): Likewise.
	* elf32-m68k.c (bfd_m68k_elf32_create_embedded_relocs): Likewise.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): Likewise.
	* elf32-sh.c (sh_elf_relax_section): Likewise.
	(sh_elf_relax_delete_bytes): Likewise.
	(sh_elf_get_relocated_section_contents): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relax_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relax_section): Likewise.
	* elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
	* elf64-mmix.c (mmix_elf_relax_section): Likewise.
	* elf64-ppc.c (get_local_syms): Likewise.
	* elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
	* elfcode.h (NAME(_bfd_elf,size_info)): Update initialiser.
	* elf64-alpha.c (alpha_elf_size_info): Likewise.
	* elf64-hppa.c (hppa64_elf_size_info): Likewise.
	* elf64-mips.c (mips_elf64_size_info): Likewise.
	* elf64-s390.c (s390_elf64_size_info): Likewise.
	* elf64-sparc.c (sparc64_elf_size_info): Likewise.

2002-06-05  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* elf32-mips.c (elf32_mips_ignore_discarded_relocs): Move to...
	elfxx-mips.c (_bfd_mips_elf_ignore_discarded_relocs): ... here.
	elf64-mips.c (elf_backend_ignore_discarded_relocs): Use
	_bfd_mips_elf_ignore_discarded_relocs.
	elfxx-mips.h (_bfd_mips_elf_ignore_discarded_relocs): Declare.

2002-06-05  H.J. Lu <hjl@gnu.org>

	* elfxx-mips.c (mips_elf_calculate_relocation): Call
	_bfd_elf_rel_local_sym for STT_SECTION relocations against
	the SEC_MERGE section.

2002-06-05  Alan Modra  <amodra@bigpond.net.au>

	* coff-alpha.c: Update copyright date.
	* coff-mips.c: Likewise.
	* xcoff-target.h: Likewise.

	* bfd-in.h: Remove "taken from the source" comment.
	* libbfd-in.h: Likewise.
	* libcoff-in.h: Likewise.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* libcoff.h: Regenerate.

	* elf.c (bfd_elf_discard_group): Return true.
	* elf-bfd.h (bfd_elf_discard_group): Declare.
	* bfd-in.h (bfd_elf_discard_group): Don't declare here.
	* section.c (bfd_discard_group): Rename to bfd_generic_discard_group.
	* bfd.c (bfd_discard_group): Define.
	* targets.c (struct bfd_target): Add _bfd_discard_group.
	(BFD_JUMP_TABLE_LINK): Here too.
	* libbfd-in.h (_bfd_nolink_bfd_discard_group): Define.
	* aout-adobe.c (aout_32_bfd_discard_group): Define.
	* aout-target.h (MY_bfd_discard_group): Define.
	* aout-tic30.c (MY_bfd_discard_group): Define.
	* binary.c (binary_bfd_discard_group): Define.
	* bout.c (b_out_bfd_discard_group): Define.
	* coff-alpha.c (_bfd_ecoff_bfd_discard_group): Define.
	* coffcode.h (coff_bfd_discard_group): Define.
	* coff-mips.c (_bfd_ecoff_bfd_discard_group): Define.
	* elfxx-target.h (bfd_elfNN_bfd_discard_group): Define.
	* i386msdos.c (msdos_bfd_discard_group): Define.
	* i386os9k.c (os9k_bfd_discard_group): Define.
	* ieee.c (ieee_bfd_discard_group): Define.
	* ihex.c (ihex_bfd_discard_group): Define.
	* mmo.c (mmo_bfd_discard_group): Define.
	* nlm-target.h (nlm_bfd_discard_group): Define.
	* oasys.c (oasys_bfd_discard_group): Define.
	* ppcboot.c (ppcboot_bfd_discard_group): Define.
	* som.c (som_bfd_discard_group): Define.
	* srec.c (srec_bfd_discard_group): Define.
	* tekhex.c (tekhex_bfd_discard_group): Define.
	* versados.c (versados_bfd_discard_group): Define.
	* vms.c (vms_bfd_discard_group): Define.
	* xcoff-target.h (_bfd_xcoff_bfd_discard_group): Define.
	* coff64-rs6000.c (rs6000coff64_vec): Update initialiser.
	(aix5coff64_vec): Likewise.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Likewise.

2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am (BFD32_BACKENDS): Add elf32-sh64-com.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-sh64-com.c.
	(elf32-sh64-com.lo): New dependency list.
	* Makefile.in: Regenerate.
	* configure.in (bfd_elf32_sh64_vec, bfd_elf32_sh64l_vec)
	(bfd_elf32_sh64nbsd_vec, bfd_elf32_sh64lnbsd_vec): Add
	elf32-sh64-com.lo.
	* configure: Regenerate.
	* elf32-sh64.c (sh64_address_in_cranges)
	(sh64_get_contents_type, sh64_address_is_shmedia): Move to...
	(crange_qsort_cmpb, crange_qsort_cmpl, crange_bsearch_cmpb):
	(crange_bsearch_cmpl): Prepend _bfd_sh64_ to name and move to...
	* elf32-sh64-com.c: ...here.  New file.

2002-06-04  Alan Modra  <amodra@bigpond.net.au>

	* elf32-openrisc.c (openrisc_elf_gc_mark_hook): Remove
	ATTRIBUTE_UNUSED on used params.
	* elf32-vax.c (elf_vax_gc_mark_hook): Remove unnecessary checks
	before calling bfd_section_from_elf_index on local syms.
	* elf64-sh64.c (sh_elf64_gc_mark_hook): Likewise.

2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am (BFD32_BACKENDS): Add elf32-sh64-nbsd.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-sh64-nbsd.c.
	(BFD64_BACKENDS): Add elf64-sh64-nbsd.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-sh64-nbsd.c.
	(elf32-sh64-nbsd.lo, elf64-sh64-nbsd.lo): New rules.
	* Makefile.in: Regenerate.
	* config.bfd (sh5le-*-netbsd*, sh5-*-netbsd*, sh64le-*-netbsd*)
	(sh64-*-netbsd*): New targets.
	* configure.in: Add bfd_elf32_sh64nbsd_vec, bfd_elf32_sh64lnbsd_vec,
	bfd_elf64_sh64nbsd_vec, and bfd_elf64_sh64lnbsd_vec.
	* configure: Regenerate.
	* elf32-sh64-nbsd.c: New file.
	* elf64-sh64-nbsd.c: New file.
	* targets.c: Add extern decls for bfd_elf32_sh64nbsd_vec,
	bfd_elf32_sh64lnbsd_vec, bfd_elf64_sh64nbsd_vec, and
	bfd_elf64_sh64lnbsd_vec.

2002-06-04  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (setup_group): Set SEC_LINK_ONCE on GRP_COMDAT groups.
	(bfd_section_from_shdr): Likewise.  Set section name of group
	sections from signature.
	(group_signature): Split out from setup_group.  Ensure symbol table
	is available.
	(bfd_elf_discard_group): New function.
	(_bfd_elf_make_section_from_shdr): Don't set SEC_LINK_ONCE on
	.gnu.linkonce* sections if they are members of a group.
	(set_group_contents): Set GRP_COMDAT flag.
	* section.c (bfd_discard_group): New function.
	* bfd-in.h (bfd_elf_discard_group): Declare.
	* bfd-in2.h: Regenerate.
	* elf-bfd.h (struct bfd_elf_section_data): Add linkonce_p field.
	(elf_linkonce_p): Define.

2002-06-04  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (bfd_section_from_shdr): Make "name" const.
	* elf-bfd.h (elf_backend_section_from_shdr): Likewise.
	* elf32-i370.c (i370_elf_section_from_shdr): Likewise.
	* elf32-ppc.c (ppc_elf_section_from_shdr): Likewise.
	* elf32-sh64.c (sh64_backend_section_from_shdr): Likewise.
	* elf32-v850.c (v850_elf_section_from_shdr): Likewise.
	* elf64-alpha.c (elf64_alpha_section_from_shdr): Likewise.
	* elf64-hppa.c (elf64_hppa_section_from_shdr): Likewise.
	* elf64-ppc.c (ppc64_elf_section_from_shdr): Likewise.
	* elfxx-ia64.c (elfNN_ia64_section_from_shdr): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_section_from_shdr): Likewise.

2002-06-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* elfxx-mips.c (ABI_64_P): Use backend's data to determine the
	ABI.

2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>

	* elf32-arc.c: Fix formatting.
	* elf32-arm.h: Likewise.
	* elf32-cris.c: Likewise.
	* elf32-dlx.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-i386.c: Likewise.
	* elf32-i386qnx.c: Likewise.
	* elf32-or32.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-sh64.c: Likewise.
	* elf32-vax.c: Likewise.
	* elf32-xstormy16.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-mmix.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elf64-sh64.c: Likewise.
	* elf64-x86-64.c: Likewise.

2002-06-02  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relocate_section): Don't dereference
	null when there are no got entries for a symbol.
	(elf64_alpha_relax_find_tls_segment): Rearrange to avoid
	uninitialized variable warning.

2002-06-01  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relax_with_lituse): Don't test for
	undefined symbols here.
	(elf64_alpha_relax_section): Do it here.  Also test for not
	defined in the current module.
	(elf64_alpha_relocate_section_r): Split out of ...
	(elf64_alpha_relocate_section): ... here.  Don't dereference
	NULL when looking up local got entries.

2002-06-01  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relax_with_lituse): Reject undefined
	symbols from JSR relaxation.
	(elf64_alpha_size_plt_section_1): New.
	(elf64_alpha_calc_dynrel_sizes): Split out .rela.got bits ...
	(elf64_alpha_size_rela_got_1): ... here.
	(elf64_alpha_size_dynamic_sections): Split out .rela.got bits ...
	(elf64_alpha_size_rela_got_section): ... here.
	(elf64_alpha_size_plt_section): New.
	(elf64_alpha_relax_section): Call them.
	(elf64_alpha_size_got_sections): Remove output_bfd arg.
	(elf64_alpha_finish_dynamic_symbol): Check gotent use_count.

2002-06-01  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (alpha_get_dtprel_base, alpha_get_tprel_base): New.
	(elf64_alpha_relocate_section): Use them.  Reject LE TLS relocs
	in shared libraries.  Fix DTPRELHI and TPRELHI value.
	(INSN_ADDQ, INSN_RDUNIQ): New.
	(struct alpha_relax_info): Add symtab_hdr, tls_segment, first_gotent.
	(elf64_alpha_relax_with_lituse): Return boolean.  Remove irelend
	argument.  Reject dynamic symbols.  Use LITUSE symbolic constants.
	(elf64_alpha_relax_got_load): Rename from relax_without_lituse.
	Handle GOTDTPREL and GOTTPREL relocations.
	(elf64_alpha_relax_gprelhilo): New.
	(elf64_alpha_relax_tls_get_addr): New.
	(elf64_alpha_relax_find_tls_segment): New.
	(elf64_alpha_relax_section): Handle TLS relocations.
	(ALPHA_ELF_LINK_HASH_TLS_IE): New.
	(elf64_alpha_check_relocs): Set it.

2002-06-01  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relax_section): Don't store computed gp.

	* elf64-alpha.c (elf64_alpha_check_relocs): Fix typo on maybe_dynamic
	check; don't suppress dynamic relocs for non-allocated sections.

	* elf64-alpha.c: Remove dead code.

2002-05-31  Alan Modra  <amodra@bigpond.net.au>

	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Don't allocate
	space for bss .plt.

2002-05-31  Graeme Peterson  <gp@qnx.com>

	* Makefile.am (BFD32_BACKENDS): Add elf32-i386qnx.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-i386qnx.c.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* config.bfd: Add i[3456]86-*-nto-qnx* support.
	* configure.in: Add bfd_elf32_i386qnx_vec support.
	* configure: Regenerate.
	* elf-bfd.h (struct elf_backend_data): Add set_nonloadable_filepos,
	is_contained_by_filepos, and copy_private_bfd_data_p.
	* elf.c (assign_file_positions_for_segments): Call backend
	set_nonloadable_filepos.  Fix non-K&R call to _bfd_error_handler.
	(IS_CONTAINED_BY_FILEPOS): Define.
	(INCLUDE_SECTION_IN_SEGMENT): Also test IS_CONTAINED_BY_FILEPOS.
	(copy_private_bfd_data): Use IS_CONTAINED_BY_FILEPOS.  Typo fix.
	Fix non-K&R call to _bfd_error_handler.
	(_bfd_elf_copy_private_section_data): Use backend
	copy_private_bfd_data_p.
	* elf32-i386.c: Don't include elfxx-target.h when
	ELF32_I386_C_INCLUDED is defined.
	* elf32-i386qnx.c: New QNX elf backend file.
	* elfxx-target.h: Add elf_backend_set_nonloadable_filepos,
	elf_backend_is_contained_by_filepos, and
	elf_backend_do_copy_private_bfd_data.
	* targets.c: Add bfd_target bfd_elf32_i386qnx_vec.

2002-05-31  Alan Modra  <amodra@bigpond.net.au>

	* elfarm-oabi.c (bfd_elf32_arm_add_glue_sections_to_bfd): Define.
	Move other similar defines to start of file.

2002-05-30  Tom Rix  <trix@redhat.com>

	* coff-rs6000.c (xcoff_rtype2howto): Handle 16 bit R_RBA.
	* coff64-rs6000.c (xcoff64_rtype2howto): Same.

2002-05-30  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (ALPHA_ELF_LINK_HASH_LU_TLSGD,
	ALPHA_ELF_LINK_HASH_LU_TLSLDM, ALPHA_ELF_LINK_HASH_LU_FUNC): New.
	(ALPHA_ELF_GOT_ENTRY_RELOCS_DONE): Remove.
	(ALPHA_ELF_GOT_ENTRY_RELOCS_XLATED): Remove.
	(struct alpha_elf_got_entry): Add reloc_type, reloc_done, reloc_xlated.
	(struct alpha_elf_obj_tdata): Rename total_got_entries and
	n_local_got_entries to total_got_size and local_got_size.
	(elf64_alpha_howto, elf64_alpha_reloc_map): Update for TLS relocs.
	(alpha_got_entry_size): New.
	(elf64_alpha_relax_with_lituse): Use it.
	(elf64_alpha_relax_without_lituse): Likewise.
	(MAX_GOT_SIZE): Rename from MAX_GOT_ENTRIES.
	(get_got_entry): New.
	(elf64_alpha_check_relocs): Handle TLS relocs.  Reorganize.
	(elf64_alpha_adjust_dynamic_symbol): Test LU_FUNC as a mask.
	(elf64_alpha_merge_ind_symbols): Check gotent->reloc_type.
	(elf64_alpha_can_merge_gots, elf64_alpha_merge_gots): Likewise.
	(elf64_alpha_calc_got_offsets_for_symbol): Use alpha_got_entry_size.
	(elf64_alpha_calc_got_offsets): Likewise.
	(alpha_dynamic_entries_for_reloc): New.
	(elf64_alpha_calc_dynrel_sizes): Use it.
	(elf64_alpha_size_dynamic_sections): Likewise.
	(elf64_alpha_relocate_section): Handle TLS relocations.
	* reloc.c: Add Alpha TLS relocations.
	* bfd-in2.h, libbfd.h: Rebuild.

2002-05-29 Ralf Habacker <ralf.habacker@freenet.de>

	* peXXigen.c (pe_print_idata): Remove double printed
	import table lines; add Bound-To comment.

2002-05-29  Matt Thomas  <matt@3am-software.com>

	* Makefile.am (BFD32_BACKENDS): Add elf32-vax.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-vax.c.
	(elf32-vax.lo): New rule.
	* Makefile.in: Regenerate.
	* configure.in (bfd_elf32_vax_vec)
	(vaxnetbsd_vec): New vectors.
	* configure: Regenerate.
	* config.bfd (vax-*-netbsdelf*)
	(vax-*-netbsdaout*)
	(vax-*-netbsd*): New targets.
	* elf32-vax.c: New file.
	* reloc.c: Add VAX relocations.
	* bfd-in2.h: Regenerate.
	* targets.c (_bfd_target_vector): Add bfd_elf32_vax_vec.

2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.bfd (arm-*-netbsd*): Add bfd_elf32_littlearm_vec
	and bfd_elf32_bigarm_vec to targ_selvecs.

2002-05-29  Ralf Habacker  <ralf.habacker@freenet.de>

	* peXXigen.c (pe_print_idata): Fix seg faults on printing import tables
	with auto-imported symbols.

2002-05-29  Adam Nemet  <anemet@lnxw.com>

	* elf32-arm.h (bfd_elf32_arm_get_bfd_for_interworking): Don't add glue
	sections only record bfd.
	(bfd_elf32_arm_add_glue_sections_to_bfd): New function.
	* bfd-in.h (bfd_elf32_arm_add_glue_sections_to_bfd): Declare it.
	* bfd-in2.h: Regenerate.

2002-05-28  Nick Clifton  <nickc@cambridge.redhat.com>

	* syms.c (_bfd_stab_section_find_nearest_line): Move
	declaration and initialisation of saw_line and saw_func out of
	for loop.

2002-05-29  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_get_symbol_info): New function.
	(bfd_elf64_get_symbol_info): Define.
	* elfxx-target.h (bfd_elfNN_get_symbol_info): Only define if undef.

2002-05-29  Andrey Volkov  <avolkov@transas.com>

	* cpu-h8300.c: Make default h8300 machine first in machine list.

2002-05-28  Kuang Hwa Lin <kuang@sbcglobal.net>

	* config.bfd: Added DLX configuraton.
	* Makefile.am: Added DLX configuraton.
	* configure.in: Added DLX configuraton.
	* archures.c: Add DLX architecure.
	* reloc.c: Add DLX relocs.
	* targets.c: Added DLX target vector.
	* configure: Regenerate.
	* Makefile.in: Regenreate.
	* bfd-in2.h: Regenreate.
	* elf32-dlx.c: New file: Support DLX target.
	* cpu-dlx.c: New file: Support DLX target.

2002-05-25  Alan Modra  <amodra@bigpond.net.au>

	* elf32-m68k.c (elf32_m68k_print_private_bfd_data): Formatting.

	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Revert last change.
	(ppc64_elf_check_relocs): Don't set up function descriptor symbol
	strings to point inside function code sym string.
	(func_desc_adjust): Likewise.
	(ppc64_elf_hide_symbol): Rewrite code to look up function code sym.

2002-05-24  Michal Ludvig  <mludvig@suse.cz>

	* elf64-x86-64.c (elf64_x86_64_grok_prstatus): Added.
	(elf64_x86_64_grok_psinfo): Added.

2002-05-24  TAMURA Kent <kent@netbsd.org>

	* config.bfd: Add a target for i386-netbsdpe.

2002-05-24  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy is_func
	and is_func_descriptor.
	(func_desc_adjust): Hide function code sym in shared libs unless
	there is a matching exported function descriptor sym.

2002-05-23  Jakub Jelinek  <jakub@redhat.com>

	* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCAL
	for symbols from SHF_TLS section.
	(_bfd_elf_print_private_bfd_data): Add PT_TLS.
	(elf_fake_sections): Set SHF_TLS for SEC_THREAD_LOCAL sections.
	(map_sections_to_segments): Build PT_TLS segment if necessary.
	(assign_file_positions_for_segments): Likewise.
	(get_program_header_size): Account for PT_TLS segment.
	(swap_out_syms): Set type of BSF_THREAD_LOCAL symbols and symbols from
	SEC_THREAD_LOCAL sections to STT_TLS.
	* reloc.c: Add 386 and IA-64 TLS relocs.
	* section.c (SEC_THREAD_LOCAL): Define.
	(SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS):
	Remove.
	* elflink.h (elf_link_add_object_symbols): Support .tcommon.
	(size_dynamic_sections): If DF_STATIC_TLS, set DF_FLAGS
	unconditionally.
	(struct elf_final_link_info): Add first_tls_sec.
	(elf_bfd_final_link): Set first_tls_sec.
	Compute elf_hash_table (info)->tls_segment.
	(elf_link_output_extsym): Handle STT_TLS symbols.
	(elf_link_input_bfd): Likewise.
	* syms.c (BSF_THREAD_LOCAL): Define.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
	* elf32-i386.c (elf_i386_tls_transition, dtpoff_base, tpoff,
	elf_i386_mkobject, elf_i386_object_p): New functions.
	(elf_howto_table): Add TLS relocs.
	(elf_i386_reloc_type_lookup): Support TLS relocs.
	(elf_i386_info_to_howto_rel): Likewise.
	(struct elf_i386_link_hash_entry): Add tls_type.
	(struct elf_i386_obj_tdata): New.
	(elf_i386_hash_entry, elf_i386_tdata, elf_i386_local_got_tls_type):
	New macros.
	(struct elf_i386_link_hash_table): Add tls_ldm_got.
	(link_hash_newfunc): Clear tls_type.
	(elf_i386_check_relocs): Support TLS relocs.
	(elf_i386_gc_sweep_hook): Likewise.
	(allocate_dynrelocs): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject, elf_backend_object_p): Define.
	* elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add tprel_offset,
	dtpmod_offset, dtprel_offset, tprel_done, dtpmod_done, dtprel_done,
	want_tprel, want_dtpmod, want_dtprel.
	(elfNN_ia64_tprel_base, elfNN_ia64_dtprel_base): New functions.
	(ia64_howto_table): Add TLS relocs, rename R_IA64_LTOFF_TP22 to
	R_IA64_LTOFF_TPREL22.
	(elf_code_to_howto_index): Add TLS relocs.
	(elfNN_ia64_check_relocs): Support TLS relocs.
	(allocate_global_data_got): Account for TLS .got data.
	(allocate_dynrel_entries): Account for TLS dynamic relocations.
	(elfNN_ia64_install_value): Supprt TLS relocs.
	(set_got_entry): Support TLS relocs.
	(elfNN_ia64_relocate_section): Likewise.

2002-05-23  Nick Clifton  <nickc@cambridge.redhat.com>

	* elf32-arm.h (elf32_arm_final_link_relocate): For the Thumb
	BLX reloc round the relocation up rather than down.
	* coff-arm.c (coff_arm_relocate_section): Likewise.

2002-05-21  H.J. Lu  (hjl@gnu.org)

	* linker.c (_bfd_generic_link_add_one_symbol): Allow multiple
	definition.

2002-05-22  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_size_stubs): Don't strip .branch_lt.
	(ppc64_elf_relocate_section): Handle unresolved relocs in opd.

2002-05-22  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_relocate_section): Return false for
	unresolved relocs.
	(ppc64_elf_size_dynamic_sections): Check for splt NULL.

2002-05-21  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* bfd.c (bfd_get_arch_size): Remove bfd_set_error call for
	non-ELF targets.

2002-05-21  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elf-bfd.h (elf_backend_emit_relocs): Change prototype to return
	an error value.
	* elflink.h (elf_link_output_relocs): Likewise. Improve error message.
	return with false on error.
	(elf_link_input_bfd): Check reloc_emitter return value.

2002-05-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.bfd (armeb-*-netbsdelf*): New target.

2002-05-20  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc_build_one_stub): Point undefined function syms
	at the plt call stub.

2002-05-19  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* cpu-mips.c (mips_compatible): Don't try to check machine
	compatibility.

2002-05-18  Tom Rix  <trix@redhat.com>

	* coff64-rs6000.c (_bfd_xcoff64_swap_aux_out):  Fix C_FILE auxent.

2002-05-17  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_info_to_howto): Formatting.
	(ppc64_elf_relocate_section): Don't warn about reloc overflow when
	we've already warned about an undefined symbol.  Report more
	detail on reloc errors.

2002-05-17  Alan Modra  <amodra@bigpond.net.au>

	* acinclude.m4 (AM_INSTALL_LIBBFD): New.
	* configure.in: Invoke AM_INSTALL_LIBBFD.
	* Makefile.am (install-data-local): Revert 2002-05-13.  Move to..
	(install_libbfd): .. New target.
	(uninstall_libbfd): Likewise.
	(install-bfdlibLTLIBRARIES): Likewise.
	(uninstall-bfdlibLTLIBRARIES): Likewise.
	(bfdlibdir): New.
	(bfdincludedir): New.
	(lib_LTLIBRARIES): Rename to bfdlib_LTLIBRARIES.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

2002-05-17  Stuart Balfour <sbalfour@cisco.com>

	* hash.c (bfd_hash_lookup): Remove computation of len from inside
	hash loop.

2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* config.bfd: Add targets for sh64-linux (little endian and
	big endian).

2002-05-15  Laurent Pinchart <laurent.pinchart@skynet.be>

	* peXXigen.c (pe_print_idata): Do not assume that the first thunk
	is located in the same section as the import table.  Instead
	check, and if necessary load the section containing the thunk.

2002-05-15  Nick Clifton  <nickc@cambridge.redhat.com>

	* aix5ppc-core.c (xcoff64_core_p): Replace bfd_read with
	bfd_bread.
	(xcoff64_core_file_matches_executable_p): Replace bfd_read
	with bfd_bread.

2002-05-15  Alan Modra  <amodra@bigpond.net.au>

	* aix5ppc-core.c: Warning fixes.
	* aout-adobe.c (aout_32_bfd_link_just_syms): Define.
	* aout-target.h (MY_bfd_link_just_syms): Define.
	* aout-tic30.c (MY_bfd_link_just_syms): Define.
	* bfd.c (bfd_link_just_syms): Define.
	* binary.c (binary_bfd_link_just_syms): Define.
	* bout.c (b_out_bfd_link_just_syms): Define.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Update initializer.
	* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Likewise.
	* coffcode.h (coff_bfd_link_just_syms): Define.
	* elf-bfd.h (enum elf_link_info_type): Add ELF_INFO_TYPE_JUST_SYMS.
	(elf_discarded_section): Check for ELF_INFO_TYPE_JUST_SYMS.
	(_bfd_elf_link_just_syms): Declare.
	* elf.c (_bfd_elf_link_just_syms): New function.
	* elf-eh-frame.c (_bfd_elf_maybe_strip_eh_frame_hdr): Check that
	sections haven't already been discarded by the linker.
	* elflink.h (elf_link_add_object_symbols): Likewise for stab
	sections and SEC_MERGE sections.
	(elf_bfd_discard_info): Similarly here.
	* elfxx-target.h (bfd_elfNN_bfd_link_just_syms): Define.
	* i386msdos.c (msdos_bfd_link_just_syms): Define.
	* i386os9k.c (os9k_bfd_link_just_syms): Define.
	* ieee.c (ieee_bfd_link_just_syms): Define.
	* ihex.c (ihex_bfd_link_just_syms): Define.
	* libbfd-in.h (_bfd_nolink_bfd_link_just_syms): Define.
	(_bfd_generic_link_just_syms): Declare.
	* libecoff.h (_bfd_ecoff_bfd_link_just_syms): Define.
	* linker.c (_bfd_generic_link_just_syms): New function.
	* mmo.c (mmo_bfd_link_just_syms): Define.
	* nlm-target.h (nlm_bfd_link_just_syms): Define.
	* oasys.c (oasys_bfd_link_just_syms): Define.
	* ppcboot.c (ppcboot_bfd_link_just_syms): Define.
	* som.c (som_bfd_link_just_syms): Define.
	* srec.c (srec_bfd_link_just_syms): Define.
	* targets.c (struct bfd_target): Add _bfd_link_just_syms.
	(BFD_JUMP_TABLE_LINK): And here.
	* tekhex.c (tekhex_bfd_link_just_syms): Define.
	* versados.c (versados_bfd_link_just_syms): Define.
	* vms.c (vms_bfd_link_just_syms): Define.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.

2002-05-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elf32-mips.c: Remove superfluous definitions copied from
	elfxx-mips.c.
	(bfd_elf32_bigmips_vec,bfd_elf32_littlemips_vec): Use the
	SGIish vectors to check the special case.
	(mips_elf_hi16_reloc): Fix comment.
	(mips_elf_got16_reloc): Likewise.
	(_bfd_mips_elf32_gprel16_reloc): Likewise.
	(elf_reloc_map): Code cleanup.
	(mips_reloc_map): Add comment.
	(bfd_elf23_bfd_reloc_type_lookup): Code cleanup.
	(mips_elf32_rtype_to_howto): Likewise.
	(mips_elf32_discard_info): Likewise.
	(elf32_mips_irix_compat): Invert logic: Only SGIish vectors
	lead to IRIX compatibility now.

2002-05-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* elfxx-mips.c: Call it IRIX, not Irix in comments.

2002-05-13  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.bfd (shle-*-netbsdelf*): Add target which includes
	sh64 support.

2002-05-13  David Edelsohn  <edelsohn@gnu.org>

	* configure.in: Revert 2002-04-07.  Instead, auto-configure
	HAVE_ST_C_IMPL.
	* configure: Regenerate.
	* config.in: Regenerate.
	* rs6000-core.c (CNEW_IMPL): Guard use of c_impl with HAVE_ST_C_IMPL
	or AIX_5_CORE.

2002-05-11  Federico G. Schwindt <fgsch@olimpo.com.br>

	* configure.in (sparc*-*-openbsd*): Support sparc64-openbsd
	corefiles as well.2
	* configure: Regenerate.

2002-05-13  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (install-data-local): Install headers to
	$(exec_prefix)/include.
	* Makefile.in: Regenerate.

2002-05-11  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
	    Daniel Jacobowitz  <drow@mvista.com>

	* coff-sh.c (sh_reloc_map): Map to R_SH_IMM32 for non-PE.  Don't
	map BFD_RELOC_RVA.

2002-05-11  Federico G. Schwindt <fgsch@olimpo.com.br>

	* config.bfd (alpha*-*-openbsd*, sparc64*-*-openbsd*,
	hppa*-*-openbsd*): New targets.
	* configure.in (alpha*-*-openbsd*): Set COREFILE.
	* configure: Regenerate.

2002-05-10  Tom Rix  <trix@redhat.com>

	* coff64-rs6000.c (xcoff64_reloc_type_br): New function for
	xcoff64_ppc_relocate_section.
	* coff-rs6000.c : Extern common xcoff_reloc_type functions.
	* libxcoff.h: Common xcoff_reloc_type function declaration.

2002-05-10  Alan Modra  <amodra@bigpond.net.au>

	* elf32-i386.c (elf_i386_relocate_section): Remove overflow checks
	added in 2002-05-09 commit.

	* elf32-hppa.c (elf32_hppa_size_stubs): Revert part of 2002-05-04,
	don't look for stubs on all undefined syms.

2002-05-09  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (RA_REGISTER_MASK, RA_REGISTER_SHIFT): Delete.
	(ppc64_elf_howto_raw <R_PPC64_RELATIVE>): Not pc_relative or
	pcrel_offset.

	* elf32-i386.c (elf_howto_table): Comments.
	(elf_i386_relocate_section): Handle more relocs for relocatable
	linking and against SEC_MERGE sections.

2002-05-08  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_create_got): New function.
	(ppc_elf_create_dynamic_sections): Call ppc_elf_create_got before
	_bfd_elf_create_dynamic_sections.  Correct .plt flags.
	(ppc_elf_check_relocs): Use ppc_elf_create_got in place of
	_bfd_elf_create_got_section.

2002-05-07  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (struct elf_backend_data): Add rela_normal.
	* elfxx-target.h (elf_backend_rela_normal): Define.
	(elfNN_bed): Init rela_normal.
	* elflink.h (elf_link_input_bfd <emit_relocs>): Handle adjustment
	for section symbols here if rela_normal.  Simplify abs section test.
	* elf-m10200.c (mn10200_elf_relocate_section): If relocatable,
	return immediately.  Remove code handling relocatable linking.
	* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
	* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
	* elf32-arm.h (elf32_arm_relocate_section): Likewise #ifndef USE_REL.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf-m10200.c (elf_backend_rela_normal): Define.
	* elf-m10300.c (elf_backend_rela_normal): Define.
	* elf32-fr30.c (elf_backend_rela_normal): Define.
	* elf32-i370.c (elf_backend_rela_normal): Define.
	* elf32-i860.c (elf_backend_rela_normal): Define.
	* elf32-m68k.c (elf_backend_rela_normal): Define.
	* elf32-mcore.c (elf_backend_rela_normal): Define.
	* elf32-openrisc.c (elf_backend_rela_normal): Define.
	* elf32-ppc.c (elf_backend_rela_normal): Define.
	* elf32-s390.c (elf_backend_rela_normal): Define.
	* elf32-xstormy16.c (elf_backend_rela_normal): Define.
	* elf64-ppc.c (elf_backend_rela_normal): Define.
	* elf64-s390.c (elf_backend_rela_normal): Define.
	* elf64-x86-64.c (elf_backend_rela_normal): Define.
	* elfxx-ia64.c (elf_backend_rela_normal): Define.
	* elf32-arm.h (elf_backend_rela_normal): Define #ifndef USE_REL.
	* elf32-m32r.c (elf_backend_rela_normal): Likewise.

2002-05-06  Nick Clifton  <nickc@cambridge.redhat.com>

	* elf32-arm.h (elf32_arm_final_link_relocate): Convert
	'reloc_signed_max' and 'reloc_signed_min' into half-word offsets.

2002-05-06  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_link_input_bfd <emit_relocs>): Adjust r_offset
	when not relocatable.  Fix reloc_emitter call for K&R.

2002-05-04  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_relocate_section): Reinstate code
	reloading local sym addend mistakenly removed in 2002-05-01 change.

	* dwarf2.c (struct line_head): Make prologue_length a bfd_vma.
	(read_abbrevs): Change "offset" param to bfd_vma.
	(parse_comp_unit): Change "version" and addr_size to unsigned ints.
	Change "abbrev_offset" to bfd_vma.
	(read_indirect_string): Use correct conversion chars in error
	message format string, cast bfd_vma's to unsigned long.
	(read_abbrevs): Likewise.
	(read_attribute_value): Likewise.
	(decode_line_info): Likewise.
	(scan_unit_for_functions): Likewise.
	(parse_comp_unit): Likewise.

2002-05-04  Tom Rix  <trix@redhat.com>

	* coffswap.h (coff_swap_reloc_in): Remove XCOFF support.
	(coff_swap_reloc_out): Same.
	* coff-rs6000.c: (xcoff_swap_reloc_in): Moved from coffswap.h.
	(xcoff_swap_reloc_out): Same.
	(xcoff_rtype2howto): Renamed from _bfd_xcoff_rtype2howto. Special
	case some 16 bit relocs. Add reloc value to output.
	(xcoff_howto_table): Remove 64 bit R_POS, add 16 bit
	R_RBR. Improve names.
	(_bfd_xcoff_reloc_type_lookup): Adjust for removal of 64 bit R_POS.
	(bfd_xcoff_backend_data): Update with new reloc swap names.
	(bfd_pmac_xcoff_backend_data) : Same.
	* coff64-rs6000.c: (xcoff64_swap_reloc_in): Moved from coffswap.h.
	(xcoff64_swap_reloc_out): Same.
	(xcoff64_rtype2howto): Special case some 16 bit relocs and 32 bit
	R_POS. Add reloc value to output.
	(xcoff64_howto_table): Move 64 bit R_POS to first entry.  Add 16
	bit R_RBR. Improve names, masks.
	(xcoff64_reloc_type_lookup): Adjust for move of 64 bit R_POS.
	(bfd_xcoff_backend_data): Update with new reloc swap names.
	(bfd_xcoff_aix5_backend_data) : Same.

2002-05-04  Alan Modra  <amodra@bigpond.net.au>

	* elf32-hppa.c (struct elf32_hppa_link_hash_table): Add
	bfd_count top_index, input_list, all_local_syms.
	(elf32_hppa_setup_section_lists): New function, split from
	elf32_hppa_size_stubs.
	(elf32_hppa_next_input_section): Likewise.
	(group_sections): Likewise.
	(get_local_syms): Likewise.
	(elf32_hppa_size_stubs): Adjust for split out functions.  Look for
	stubs on undefined syms too.
	(elf32_hppa_set_gp): Use bfd_link_hash* instead of elf_link_hash*.
	Only access htab elf fields when we have an elf hash table.
	* elf32-hppa.h (elf32_hppa_setup_section_lists): Declare.
	(elf32_hppa_next_input_section): Declare.

2002-05-04  Bob Byrnes  <byrnes@curl.com>

	* opncls.c (_bfd_new_bfd_contained_in): Check return value of
	_bfd_new_bfd.

2002-05-03  H.J. Lu  (hjl@gnu.org)

	* elfxx-mips.c (mips_elf_link_hash_entry): Add forced_local.
	(mips_elf_link_hash_newfunc): Initialize forced_local to false.
	(mips_elf_record_global_got_symbol): Call _bfd_mips_elf_hide_symbol
	to hide a global symbol.
	(_bfd_mips_elf_hide_symbol): Return if forced_local is true. Set
	forced_local to true.

2002-05-02  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relocate_section): Force relative relocs
	vs SHN_UNDEF to zero.

2002-05-02  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_SECTOFF>): Change to a
	16 bit reloc.
	<R_PPC64_SECTOFF_DS>: Likewise.
	(ppc64_elf_reloc_type_lookup): Map from BFD_RELOC_16_BASEREL to
	SECTOFF reloc.
	* elf32-ppc.c (ppc_elf_howto_raw <R_PPC_SECTOFF>): Correct.
	(ppc_elf_reloc_type_lookup): Map from BFD_RELOC_16_BASEREL to
	SECTOFF reloc.

	* elf64-ppc.c (ppc64_elf_addr16_ha_reloc): Delete.
	(ppc64_elf_ha_reloc): New function.
	(ppc64_elf_brtaken_reloc): New function.
	(ppc64_elf_sectoff_reloc): New function.
	(ppc64_elf_sectoff_ha_reloc): New function.
	(ppc64_elf_toc_reloc): New function.
	(ppc64_elf_toc_ha_reloc): New function.
	(ppc64_elf_toc64_reloc): New function.
	(ppc64_elf_unhandled_reloc): New function.
	(ppc64_elf_howto_raw): Use the above.
	<R_PPC64_RELATIVE>: Mark pc_relative, pcrel_offset.
	<R_PPC64_SECTOFF>: Not pc_relative or pcrel_offset.  Fix dst_mask.
	<R_PPC64_SECTOFF_DS>: Likewise.
	(IS_ABSOLUTE_RELOC): Update.
	(struct ppc_link_hash_table): Add have_undefweak.
	(ppc64_elf_link_hash_table_create): Init.
	(func_desc_adjust): Set have_undefweak.
	(ppc64_elf_func_desc_adjust): Call func_desc_adjust earlier.  Only
	add the .sfpr blr when have_undefweak.
	(ppc64_elf_setup_section_lists): Check hash table flavour.
	(ppc64_elf_next_input_section): Move output_section->owner test to
	ppc64elf.em.
	(ppc64_elf_set_toc): Rename to ppc64_elf_toc, remove info param
	and relocatable test.  Return TOCstart and don't set elf_gp.
	(ppc64_elf_relocate_section): Correct BRTAKEN/BRNTAKEN branch
	offset calculation.  Add assert on weak sym branch tweaks.
	* elf64-ppc.h (ppc64_elf_set_toc): Delete.
	(ppc64_elf_toc): Declare.
	(ppc64_elf_next_input_section): Update.

2002-05-01  Alan Modra  <amodra@bigpond.net.au>

	* syms.c (_bfd_stab_section_find_nearest_line): Don't bomb on NULL
	file_name.

2002-05-01  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (CROR_151515, CROR_313131): Define.
	(ppc64_elf_relocate_section): Use them.  Don't look for plt calls
	on R_PPC64_ADDR24 relocs.  Require a nop or no link reg on plt
	call branches.  Correct undefined weak destination.
	(ppc64_elf_func_desc_adjust): Always create at least one blr in
	.sfpr, and correct case where either only savef* or restf* is
	needed.

	Long branch stubs, multiple stub sections.
	* elf64-ppc.h (ppc64_elf_setup_section_lists): Declare.
	(ppc64_elf_next_input_section): Declare.
	* elf64-ppc.c: Move linker-only prototypes.
	(STUB_SUFFIX): Define.
	(enum ppc_stub_type): New.
	(struct ppc_stub_hash_entry): New.
	(struct ppc_branch_hash_entry): New.
	(struct ppc_link_hash_entry): Add stub_cache, oh.
	(struct ppc_link_hash_table): Add stub_hash_table etc.  Remove
	sstub.  Add sbrlt, srelbrlt, has_14bit_branch, stub_iteration.
	Rename plt_overflow to stub_error.
	(ppc_stub_hash_lookup): Define.
	(ppc_branch_hash_lookup): Define.
	(stub_hash_newfunc): New function.
	(branch_hash_newfunc): New function.
	(link_hash_newfunc): Init new fields.
	(ppc64_elf_link_hash_table_create): Likewise.
	(ppc64_elf_link_hash_table_free): New function.
	(ppc_stub_name): New function.
	(ppc_get_stub_entry): New function.
	(ppc_add_stub): New function.
	(create_linkage_sections): Use bfd_make_section_anyway.  Create
	.branch_lt and .rela.branch_lt sections.  Don't create .stub.
	(ppc64_elf_check_relocs): Set has_14bit_branch on R_PPC64_REL14*,
	and set up for plt call stubs.  Link func and func desc syms.
	(ppc64_elf_gc_sweep_hook): Handle REL14* as per REL24.
	(func_desc_adjust): Avoid hash lookup when func desc sym available
	via shortcut, and set links when processing.
	(ppc64_elf_hide_symbol): Likewise.
	(allocate_dynrelocs): Don't allocate stub section here.
	(ppc64_elf_size_dynamic_sections): Handle sbrlt and srelbrlt.
	Remove sstub code.
	(ppc_type_of_stub): New function.
	(build_one_stub): Delete.
	(ppc_build_one_stub): New function.
	(ppc_size_one_stub): New function.
	(ppc64_elf_setup_section_lists): New function.
	(ppc64_elf_next_input_section): New function.
	(group_sections): New function.
	(get_local_syms): New function.
	(ppc64_elf_size_stubs): Rewrite.
	(ppc64_elf_build_stubs): Rewrite.
	(ppc64_elf_relocate_section): Look up stub entry for REL24
	relocs.  Don't propagate REL14* to dynamic objects.  Look for long
	branch stubs if REL14* or REL24 relocs won't reach.
	(bfd_elf64_bfd_link_hash_table_free): Define.

2002-04-30  Mark Mitchell  <mark@codesourcery.com>

	* config.bfd: Add support for powerpc-*-windiss.

2002-04-30  Tom Rix  <trix@redhat.com>

	* xcofflink.c (xcoff_link_add_symbols): Always copy undef C_EXT
	symbol names into the hash table.

2002-04-28  Tom Rix  <trix@redhat.com>

	* coff-rs6000.c (xcoff_calculate_relocation) : Function table for
	calulating relocations.
	(xcoff_complain_overflow) : Function table for relocation errors.
	(xcoff_ppc_relocate_section): Use relocation and complain function
	tables.
	(xcoff_complain_overflow_unsigned_func): New complain function.
	(xcoff_complain_overflow_signed_func): Same.
	(xcoff_complain_overflow_bitfield_func): Same.
	(xcoff_complain_overflow_dont_func): Same.
	(xcoff_reloc_type_crel): New recot function.
	(xcoff_reloc_type_br): Same.
	(xcoff_reloc_type_ba): Same.
	(xcoff_reloc_type_toc): Same.
	(xcoff_reloc_type_rel): Same.
	(xcoff_reloc_type_neg): Same.
	(xcoff_reloc_type_pos): Same.
	(xcoff_reloc_type_fail): Same.
	(xcoff_reloc_type_noop): Same.
	* libxcoff.h : Declare common parts for xcoff64.
	* coff64-rs6000.c (xcoff64_ppc_relocate_section): Use relocation
	and complain function tables.

2002-04-28  Alan Modra  <amodra@bigpond.net.au>

	* elf64-x86-64.c (struct elf64_x86_64_dyn_relocs): Comment typo.
	* elf32-hppa.c (elf32_hppa_final_link): Formatting.

2002-04-26  Alan Modra  <amodra@bigpond.net.au>

	* opncls.c (bfd_make_readable): Call bfd_section_list_clear.
	* xcofflink.c (xcoff_link_add_dynamic_symbols): Likewise.

	* elflink.h (elf_bfd_final_link): Ensure input bfd class is the
	same as the output before calling elf_link_input_bfd.

	* coffcode.h (coff_compute_section_file_positions): Set
	section_tail after shuffling section list.

2002-04-24  Christian Groessler <chris@groessler.org>

	* coff-z8k.c (extra_case): Fix R_IMM32 relocations: The
	addresses are 23bit with a special layout, not plain 32bit
	values.  Prevent relocation of immediate values.

2002-04-24  Chris G. Demetriou  <cgd@broadcom.com>

	* elfxx-mips.c (_bfd_mips_elf_print_private_bfd_data): If MDMX or
	MIPS-16 ASE flags are set, print something to indicate that.

2002-04-23  Alan Modra  <amodra@bigpond.net.au>

	* elf32-hppa.c (hppa_type_of_stub): Correct and simplify condition
	under which a plt call stub is used.
	(final_link_relocate): Similarly.
	(allocate_plt_static): Clear h-plabel except when plt entry is
	exclusively used for a plabel.
	(allocate_dynrelocs): Use the above to simplify plt sizing.
	(struct elf32_hppa_link_hash_table): Add has_22bit_branch.
	(elf32_hppa_link_hash_table_create): Init.
	(BL22_RP): Define.
	(hppa_build_one_stub): Use BL22_RP if has_22bit_branch.
	(elf32_hppa_check_relocs): Set has_22bit_branch.

	* elf32-hppa.c (elf32_hppa_check_relocs): Remove debug message.
	(final_link_relocate): Likewise.

2002-04-22  Jakub Jelinek  <jakub@redhat.com>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't build
	search table if some FDE is DW_EH_PE_aligned encoded either.
	(_bfd_elf_write_section_eh_frame): Handle terminating FDE specially.

2002-04-22  Richard Smith  <richard@ex-parrot.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* elf-eh-frame.c (struct eh_cie_fde): Add per_encoding_relative.
	(_bfd_elf_discard_section_eh_frame): Set it for CIEs with pcrel
	encoded personality.
	(_bfd_elf_write_section_eh_frame): Adjust pcrel encoded personality
	for CIE/FDE removal.

2002-04-20  Tom Rix  <trix@redhat.com>

	* coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Fix C_FILE auxent.

2002-04-20  Alan Modra  <amodra@bigpond.net.au>

	* archures.c (bfd_lookup_arch): Move the list order comment..
	(struct bfd_arch_info): ..to where it belongs.
	* bfd-in2.h: Regenerate.

	* archures.c (bfd_lookup_arch): Add comment on list order.
	(bfd_default_set_arch_mach): Use bfd_lookup_arch.
	* cpu-powerpc.c (bfd_powerpc_archs): Re-order so that the default
	is always at head of list.

2002-04-18  Nick Clifton  <nickc@cambridge.redhat.com>

	* coff-arm.c (coff_thumb_pcrel_12, coff_thumb_pcrel_9,
	insert_thumb_branch, record_thumb_to_arm_glue): Suppress
	definition of these functions for ARM_WINCE builds as they are
	not used.
	(SWAP_IN_RELOC_OFFSET, SWAP_OUT_RELOC_OFFSET): Do not define
	for ARM_WINCE builds.

2002-04-18  Nick Clifton  <nickc@cambridge.redhat.com>

	* coff-arm.c (bfd_arm_process_before_allocation):

2002-04-17  J"orn Rennecke <joern.rennecke@superh.com>

	* cpu-sh.c (scan_mach): Delete.
	(arch_info_struct): Replace scan_mach with bfd_default_scan.
	(bfd_sh_arch): Likewise.

2002-04-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* ihex.c (ihex_write_object_contents): Fix check for records
	crossing 64K boundaries.

2002-04-16  Alan Modra  <amodra@bigpond.net.au>

	* elf32-m32r.c (m32r_elf_add_symbol_hook): Check the hash table
	type rather than just assuming entries are ELF.
	* elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise.
	* elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise.
	* elf64-sparc.c (sparc64_elf_add_symbol_hook): Likewise.
	* elf64-mmix.c (mmix_elf_add_symbol_hook): Use bfd_link_hash_entry
	rather than elf_link_hash_entry.

2002-04-15  Richard Henderson  <rth@redhat.com>

	* elf32-mips.c (mips_elf32_object_p): Revert 0404 fragment: allow
	n32 binaries.

2002-04-15  Michael Snyder  <msnyder@redhat.com>

	* opncls.c (bfd_close): Write contents if writeable.
	Minor formatting tidy-ups.

2002-04-15  Alan Modra  <amodra@bigpond.net.au>

	* elf32-ppc.c (ppc_elf_add_symbol_hook): Check the hash table type.

2002-04-12  Michael Snyder  <msnyder@redhat.com>

	* bfd-in.h (bfd_get_section_lma): New access macro.
	Minor white-space fix-up.

2002-04-12  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (prep_headers): Don't zero EI_OSABI, EI_ABIVERSION or
	header pad.

2002-04-09  DJ Delorie  <dj@redhat.com>

	* elfarm-nabi.c (elf32_arm_howto_table): Fix ABS16 masks.

2002-04-09  Casper S. Hornstrup <chorns@users.sourceforge.net>

	* coffcode.h (coff_read_word): New.
	(coff_compute_checksum): New.
	(coff_apply_checksum): New.
	(coff_write_object_contents): Call coff_apply_checksum () to
	apply checksum to PE image.

2002-04-08  Randolph Chung  <tausq@debian.org>

	* elf32-hppa.c (hppa_unwind_entry_compare): Move to elf-hppa.h.
	(elf32_hppa_final_link): Split out sorting logic to..
	* elf-hppa.h (elf_hppa_sort_unwind): ..here.
	(elf_hppa_final_link): Call elf_hppa_sort_unwind.

2002-04-07  Andrew Cagney  <ac131313@redhat.com>

	* configure.in: Add missing ``|'' to powerpc-*-aix4.[4-9]*
	pattern.
	* configure: Re-generate.

2002-04-07  Andrew Cagney  <ac131313@redhat.com>

	* configure.in: Only define AIX_CORE_DUMPX_CORE when AIX version
	is greater or equal to 4.3.3.
	* configure: Regenerate.
	Fix PR gdb/344.

2002-04-05  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_howto_table) <R_CRIS_16_PCREL,
	R_CRIS_32_PCREL>: Fix typo in name.
	(cris_elf_check_relocs): Always create .rela.got here when
	R_CRIS_16_GOTPLT or R_CRIS_32_GOTPLT is seen.
	(elf_cris_adjust_gotplt_to_got): Don't create .rela.got here;
	assume it's created.

2002-04-04  Daniel Jacobowitz  <drow@mvista.com>

	* aout-adobe.c (aout_32_bfd_link_hash_table_free): Define.
	* aout-target.h (MY_bfd_link_hash_table_free): Conditionally
	define.
	* aout-tic30.c (MY_bfd_link_hash_table_free): Likewise.
	* bfd.c (bfd_link_hash_table_free): Define.
	* binary.c (binary_bfd_link_hash_table_free): Define.
	* bout.c (b_out_bfd_link_hash_table_free): Define.
	* coff-rs6000.c (rs6000coff_vec): Include
	_bfd_generic_link_hash_table_free.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Likewise.
	(aix5coff64_vec): Likewise.
	* coffcode.h (coff_bfd_link_hash_table_free): Conditionally define.
	* elf-m10300.c (elf32_mn10300_link_hash_table_free): New function.
	(bfd_elf32_bfd_link_hash_table_free): Define.
	* elf32-hppa.c (elf32_hppa_link_hash_table_free): New function.
	(bfd_elf32_bfd_link_hash_table_free): Define.
	* elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Conditionally
	define.
	* i386msdos.c (msdos_bfd_link_hash_table_free): Define.
	* i386os9k.c (os9k_bfd_link_hash_table_free): Define.
	* ieee.c (ieee_bfd_link_hash_table_free): Define.
	* ihex.c (ihex_bfd_link_hash_table_free): Define.
	* libbfd-in.h (_bfd_nolink_bfd_link_hash_table_free): Define.
	(_bfd_generic_link_hash_table_free): Add prototype.
	* libcoff-in.h (_bfd_xcoff_bfd_link_hash_table_free): Add prototype.
	* libecoff.h (_bfd_ecoff_bfd_link_hash_table_free): Define.
	* linker.c (_bfd_generic_link_hash_table_free): New function.
	* mmo.c (mmo_bfd_link_hash_table_free): Define.
	* nlm-target.h (nlm_bfd_link_hash_table_free): Define.
	* oasys.c (oasys_bfd_link_hash_table_free): Define.
	* ppcboot.c (ppcboot_bfd_link_hash_table_free): Define.
	* som.c (som_bfd_link_hash_table_free): Define.
	* srec.c (srec_bfd_link_hash_table_free): Define.
	* tekhex.c (tekhex_bfd_link_hash_table_free): Define.
	* versados.c (versados_bfd_link_hash_table_free): Define.
	* vms.c (vms_bfd_link_hash_table_free): New function.
	* xcofflink.c (_bfd_xcoff_bfd_link_hash_table_free): New function.

	* coff-arm.c (coff_arm_link_hash_table_create): Use bfd_malloc
	instead of bfd_alloc.
	* coff-h8300.c (h8300_coff_link_hash_table_create): Likewise.
	* coff-mcore.c (coff_mcore_link_hash_table_create): Likewise.
	* coff-ppc.c (ppc_coff_link_hash_table_create): Likewise.
	* cofflink.c (_bfd_coff_link_hash_table_create): Likewise.
	* ecoff.c (_bfd_ecoff_bfd_link_hash_table_create): Likewise.
	* elf-m10300.c (elf32_mn10300_link_hash_table_create): Likewise.
	* elf.c (_bfd_elf_link_hash_table_create): Likewise.
	* elf32-arm.h (elf32_arm_link_hash_table_create): Likewise.
	* elf32-cris.c (elf_cris_link_hash_table_create): Likewise.
	* elf32-hppa.c (elf32_hppa_link_hash_table_create): Likewise.
	* elf32-i386.c (elf_i386_link_hash_table_create): Likewise.
	* elf32-m68k.c (elf_m68k_link_hash_table_create): Likewise.
	* elf32-s390.c (elf_s390_link_hash_table_create): Likewise.
	* elf32-sh.c (sh_elf_link_hash_table_create): Likewise.
	* elf64-alpha.c (elf64_alpha_bfd_link_hash_table_create): Likewise.
	* elf64-ppc.c (ppc64_elf_link_hash_table_create): Likewise.
	* elf64-s390.c (elf_s390_link_hash_table_create): Likewise.
	* elf64-sh64.c (sh64_elf64_link_hash_table_create): Likewise.
	* elf64-sparc.c (sparc64_elf_bfd_link_hash_table_create): Likewise.
	* elf64-x86-64.c (elf64_x86_64_link_hash_table_create): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise.
	* linker.c (_bfd_generic_link_hash_table_create): Likewise.
	* m68klinux.c (linux_link_hash_table_create): Likewise.
	* sparclinux.c (linux_link_hash_table_create): Likewise.
	* sunos.c (sunos_link_hash_table_create): Likewise.
	* xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create): Likewise.

	* targets.c: Add _bfd_link_hash_table_free to xvec.

	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* libcoff.h: Regenerate.

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

	* dep-in.sed: Cope with absolute paths.
	* Makefile.am (dep.sed): Subst TOPDIR, and not INCDIR.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* coff-arm.c: Fix copyright date.
	* cpu-h8300.c: Likewise.
	* cpu-i370.c: Likewise.
	* cpu-s390.c: Likewise.
	* cpu-mips.c: Likewise.
	* po/SRC-POTFILES.in: Regenerate.

2002-04-04  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>

	* Makefile.am: Add elfxx-mips.c to the known backends.
	(elf32-mips.lo): remove dependency to coff/external.h.
	* Makefile.in: Regenerate.
	* configure.in: Add elfxx-mips.lo to all vectors using elf32-mips.lo
	Remove elf32-mips.lo from 64 bit vectors. Update dependencies
	accordingly.
	* configure: Regenerate.
	* elf-bfd.h: Move all MIPS ELF specific prototypes to elfxx-mips.h.
	(irix_compat_t): IRIX compatibility level, moved from elf32-mips.c.
	(elf_backend_mips_irix_compat, elf_backend_mips_rtype_to_howto): New
	MIPS specific backend functions.
	* elf32-mips.c: Moved most code to elfxx-mips.c.
	(mips_elf_hi16_reloc): Rename from _bfd_mips_elf_hi16_reloc and make
	static.
	(mips_elf_lo16_reloc): Likewise, was _bfd_mips_elf_lo16_reloc.
	(mips_elf_got16_reloc): Likewise, was _bfd_mips_elf_got16_reloc.
	(mips_elf_gprel32_reloc): Likewise, was _bfd_mips_elf_gprel32_reloc.
	(mips_elf32_rtype_to_howto): Rename from mips_rtype_to_howto. Changed
	interface to allow selection of the right REL or RELA howto table.
	(mips_elf32_object_p): Rename from _bfd_mips_elf_object_p and made
	static. Let it refuse n32 objects.
	(elf32_mips_grok_prstatus): Rename from _bfd_elf32_mips_grok_prstatus.
	(elf32_mips_grok_psinfo): Rename from _bfd_elf32_mips_grok_psinfo.
	(elf32_mips_discard_info): Rename from _bfd_elf32_mips_discard_info.
	(elf32_mips_ignore_discarded_relocs): Rename from
	_bfd_elf32_mips_ignore_discarded_relocs.
	(elf32_mips_write_section): Rename from _bfd_elf32_mips_write_section.
	(elf32_mips_irix_compat): New function, replaces IRIX_COMPAT.
	(elf_mips_howto_table_rela): Remove.
	* elf64-mips.c: Moved most code to elfxx-mips.c.
	(bfd_elf64_bfd_reloc_type_lookup): Make static.
	(mips_elf64_rtype_to_howto): New function.
	(mips_elf64_object_p): Likewise.
	(elf64_mips_irix_compat): Likewise.
	* elfxx-mips.c: New file containing common code merged together from
	elf32-mips.c and elf64-mips.c.
	* elfxx-mips.h: New file containing MIPS specific prototypes from
	elf-bfd.h.
	* elfxx-target.h: Add handling for elf_backend_mips_irix_compat and
	elf_backend_mips_rtype_to_howto.

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

	* srec.c (MAXCHUNK, Chunk): Revise comments.
	(srec_write_record): Correct buffer size.
	(srec_write_header): Do without intermediate buffer.
	(srec_write_section): Validate Chunk.
	(srec_write_terminator): Pass NULL instead of dummy buffer.
	(srec_write_symbols): Pass file and symbol names directly to
	bfd_bwrite so sprintf won't overflow buffer.

2002-04-03  Jakub Jelinek  <jakub@redhat.com>

	* elf32-sparc.c (elf32_sparc_relocate_section): Don't emit dynamic
	PC relative relocs against hidden symbols.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.

2002-04-03  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (_bfd_elf_make_section_from_shdr): When setting section
	LMAs, loop over segments until p_vaddr and p_memsz specify an
	extent enclosing the section.

2002-04-02  Nick Clifton  <nickc@cambridge.redhat.com>

	* ihex.c (ihex_write_object_contents): Do not allow records to
	cross a 64K boundary - wrap if necessary.

2002-04-01  Nathan Williams  <nathanw@wasabisystems.com>

	* elf.c (elfcore_netbsd_get_lwpid): Fix off-by-one error
	which caused the returned LWP ID to always be 0.

2002-04-01  Richard Henderson  <rth@redhat.com>

	* elf32-sparc.c (WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
	(elf32_sparc_relocate_section): Use it to figure out when to
	initialize .got entries.
	* elf64-sparc.c: Similarly.

2002-03-28  Alan Modra  <amodra@bigpond.net.au>

	* linker.c (link_action): Ignore duplicate warning syms.
	(_bfd_generic_link_write_global_symbol): Follow warning symbol link.
	* elflink.h (elf_adjust_dynstr_offsets): Likewise.
	(elf_adjust_dynamic_symbol): Likewise.
	(elf_export_symbol): Likewise.
	(elf_link_find_version_dependencies): Likewise.
	(elf_link_assign_sym_version): Likewise.
	(elf_link_sec_merge_syms): Likewise.
	(elf_link_output_extsym): Likewise.
	(elf_gc_sweep_symbol): Likewise.
	(elf_gc_propagate_vtable_entries_used): Likewise.
	(elf_gc_smash_unused_vtentry_relocs): Likewise.
	(elf_gc_allocate_got_offsets): Likewise.
	(elf_collect_hash_codes): Likewise.
	* elflink.c (elf_link_renumber_hash_table_dynsyms): Likewise.
	* elf-hppa.h (elf_hppa_unmark_useless_dynamic_symbols): Likewise.
	(elf_hppa_remark_useless_dynamic_symbols): Likewise.
	* elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Likewise.
	* elf32-arm.h (elf32_arm_discard_copies): Likewise.
	* elf32-cris.c (elf_cris_adjust_gotplt_to_got): Likewise.
	(elf_cris_discard_excess_dso_dynamics): Likewise.
	* elf32-hppa.c (clobber_millicode_symbols): Likewise.
	(mark_PIC_calls): Likewise.
	(allocate_plt_static): Likewise.
	(allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf32-i386.c (allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf32-i370.c (i370_elf_adjust_dynindx): Likewise.
	* elf32-m68k.c (elf_m68k_discard_copies): Likewise.
	* elf32-mips.c (mips_elf_output_extsym): Likewise.
	(mips_elf_sort_hash_table_f): Likewise.
	(mips_elf_check_mips16_stubs): Likewise.
	* elf32-s390.c (allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf32-sh.c (sh_elf_discard_copies): Likewise.
	* elf32-xstormy16.c (xstormy16_relax_plt_check): Likewise.
	(xstormy16_relax_plt_realloc): Likewise.
	* elf64-alpha.c (elf64_alpha_calc_got_offsets_for_symbol): Likewise.
	(elf64_alpha_output_extsym): Likewise.
	* elf64-hppa.c (elf64_hppa_mark_exported_functions): Likewise.
	* elf64-mips.c (mips_elf64_sort_hash_table_f): Likewise.
	(mips_elf64_check_mips16_stubs): Likewise.
	(mips_elf64_output_extsym): Likewise.
	* elf64-ppc.c (func_desc_adjust): Likewise.
	(allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf64-s390.c (allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elf64-sh64.c (sh64_elf64_discard_copies): Likewise.
	* elf64-x86-64.c (allocate_dynrelocs): Likewise.
	(readonly_dynrelocs): Likewise.
	* elfxx-ia64.c (elfNN_ia64_global_dyn_sym_thunk): Likewise.
	* aoutx.h (aout_link_write_other_symbol): Likewise.
	* cofflink.c (_bfd_coff_write_task_globals): Likewise.
	(_bfd_coff_write_global_sym): Likewise.
	* i386linux.c (linux_tally_symbols): Likewise.
	* m68klinux.c (linux_tally_symbols): Likewise.
	* sparclinux.c (linux_tally_symbols): Likewise.
	* pdp11.c (aout_link_write_other_symbol): Likewise.
	* sunos.c (sunos_scan_dynamic_symbol): Likewise.
	* xcofflink.c (xcoff_build_ldsyms): Likewise.
	(xcoff_write_global_symbol): Likewise.

	* cofflink.c (_bfd_coff_final_link): Formatting.
	* cpu-mips.c (mips_compatible): Make static, prototype.
	* elf32-i386.c (elf_i386_check_relocs): Formatting.
	* elf32-sh.c (sh_elf_size_dynamic_sections): Likewise.
	* elf64-alpha.c (elf64_alpha_output_extsym): Likewise.
	* elf64-mips.c (mips_elf64_sort_hash_table): Likewise.
	(mips_elf64_final_link): Likewise.
	* elflink.h (elf_link_find_version_dependencies): Remove duplicate
	prototype.

2002-03-27  Nick Clifton  <nickc@cambridge.redhat.com>

	* coff-arm.c (SWAP_IN_RELOC_OFFSET): Define.
	(SWAP_OUT_RELOC_OFFSET): Define.

2002-03-27  Gregory Steuck <greg@nest.cx>

	* elf.c (_bfd_elf_get_symtab_upper_bound): Leave space for
	terminating NULL if empty symbol table.
	(_bfd_elf_get_dynamic_symtab_upper_bound): Likewise.

2002-03-26  H.J. Lu  (hjl@gnu.org)

	* elflink.h (elf_link_input_bfd): Revert the last change since
	the gcc exception handling isn't fixed yet.

2002-03-26  H.J. Lu  (hjl@gnu.org)

	* elflink.h (elf_link_input_bfd): Complain about relocations
	against local symbols in discarded sections.

2002-03-26  Alan Modra  <amodra@bigpond.net.au>

	* elflink.h (elf_gc_mark): Don't recurse into non-ELF sections.

2002-03-23  Alan Modra  <amodra@bigpond.net.au>

	* elf.c (_bfd_elf_make_section_from_shdr): Don't set lma based on
	section file offset for !SEC_LOAD sections.

2002-03-21  Richard Earnshaw  <rearnsha@arm.com>

	* elf32-arm.h (elf32_arm_final_link_relocate <case R_ARM_GOTOFF>,
	<case R_ARM_GOT>): Handle relocations to Thumb functions.

2002-03-21  Alan Modra  <amodra@bigpond.net.au>

	* coff64-rs6000.c (_bfd_xcoff64_put_symbol_name): Prototype.
	Whitespace changes.
	* archive.c: Update copyright date.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
	* Makefile.am: Run "make dep-am"
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2002-03-20  Daniel Jacobowitz  <drow@mvista.com>

	* dwarf2.c (struct funcinfo): Move up.
	(lookup_address_in_function_table): New argument function_ptr.
	Set it.
	(lookup_address_in_line_table): New argument function.  If function
	is non-NULL, use it to handle ``addr'' before the first line note of
	the function.
	(comp_unit_find_nearest_line): Update and swap calls to
	lookup_address_in_function_table and lookup_address_in_line_table.
	* syms.c (_bfd_stab_section_find_nearest_line): Use the first
	N_SLINE encountered if we see an N_FUN before any N_SLINE.

2002-03-20  Tom Rix  <trix@redhat.com>

	* coff-rs6000.c (_bfd_xcoff_stat_arch_elt): Renamed from
	_bfd_xcoff_generic_stat_arch_elt.  Fix format check.
	* coff64-rs6000.c :  Use _bfd_xcoff_stat_arch_elt.

2002-03-19  Tom Rix  <trix@redhat.com>

	* xcofflink.c (_bfd_xcoff_bfd_link_add_symbols): Look through all
	dynamic objects in archives.

2002-03-19  Hans-Peter Nilsson  <hp@bitrange.com>

	* elflink.h (NAME(bfd_elf,record_link_assignment)): Don't set
	STT_NOTYPE symbols to STT_OBJECT.

2002-03-18  Jan Hubicka  <jh@suse.cz>

	* cpu-i386.c (bfd_x86_64_arch): Rename to "i386:x86-64"

2002-03-18  Tom Rix  <trix@redhat.com>

	* aix5ppc.core.c : New file for AIX 5 64 bit core support.
	* bfd-in.h : Add bfd_xcoff_ar_archive_set_magic declaration.
	* coff-rs6000 (do_pad) : New function for archive padding.
	(do_copy) : New function for object file copying in archives.
	(do_shared_object_padding) : New function for padding shared
	objects to their text section alignment in archives.
	(bfd_xcoff_ar_achive_set_magic) : Stub.
	(xcoff_write_armap_big) : Use do_copy and do_pad.
	(xcoff_write_archive_contents_big) : Use do_shared_object_padding,
	do_copy and do_pad.
	* coff64-rs6000.c (xcoff64_write_ojbect_contents) : Use
	bfd_xcoff_magic_number.
	(xcoff64_bad_format_hook) : New function for _bfd_bad_format_hook
	fop.
	(xcoff_backend_data_r) : Use xcoff64_bad_format_hook.
	(bfd_xcoff_aix5_backend_data) : New Aix 5 backend data.
	(aix5coff64_vec) : New Aix 5 target aix5coff64-rs6000.
	* rs6000-core.c : Update copyright date.
	* xcofflink.c (bfd_xcoff_size_dynamic_sections): Check for NULL
	csectpp.
	* coffcode.h (coff_new_section_hook) : Use new accessor macros.
	(coff_set_arch_mach_hook) : Add Aix 5 U64_TOCMAGIC magic #.
	(coff_set_flags) : Use bfd_xcoff_magic_number.
	* libxcoff.h (bfd_xcoff_is_xcoff64): Add U64_TOCMAGIC.
	* configure.in : Add powerpc-*-aix5 and rs6000-*-aix5 support.
	* Makefile.am : Same.
	* config.bfd : Same.
	* targets.c : Same.
	* configure : Regnerate.
	* Makefile.in : Same.
	* bfd-in2.h : Same.

2002-03-18  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/fr.po: Updated version.

2002-03-18  Alan Modra  <amodra@bigpond.net.au>

	* libbfd.c (bfd_write_bigendian_4byte_int): Return true iff success.
	* libbfd.h: Regenerate.
	* archive.c (coff_write_armap): Pass on failures from
	bfd_write_bigendian_4byte_int.

2002-03-14  H.J. Lu <hjl@gnu.org>

	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set the BFD
	error to bfd_error_nonrepresentable_section for reinit_array
	section in DSO.

2002-03-14  Nick Clifton  <nickc@cambridge.redhat.com>

	* coffcode.h (coff_slurp_symbol_table): When adding BSF_WEAK flag,
	OR it in rather than replacing previously selected flags.

	* elfxx-target.h (TARGET_BIG_SYM): Set ar_max_namelen to 15.
	(TARGET_LITTLE_SYM): Set ar_max_namelen to 15.

2002-03-14  Alan Modra  <amodra@bigpond.net.au>

	* cpu-mips.c (mips_compatible): New.  Don't check bits_per_word.
	(N): Use the above.
	* elflink.h (elf_bfd_final_link): Revert last change.  Instead,
	ensure reloc size matches before calling elf_link_input_bfd.
	Add an assert to check reloc size when counting output relocs.

2002-03-14  Nick Clifton  <nickc@cambridge.redhat.com>

	* mmo.c (mmo_get_loc): Return NULL rather than false.

2002-03-13  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/fr.po: Updated version.

2002-03-13  Alan Modra  <amodra@bigpond.net.au>

	* archures.c (bfd_default_compatible): Test bits_per_word.
	* cpu-i386.c (i386_compatible): Remove.  Replace occurrences with
	bfd_default_compatible.
	* cpu-i370.c (i370_compatible): Likewise.
	* cpu-sparc.c (sparc_compatible): Likewise.
	* cpu-h8300.c (compatible): Test in->arch == out->arch.

	* elflink.h: Formatting fixes.
	(elf_link_output_extsym): Merge undefined and undef weak cases.

	* elflink.h (elf_bfd_final_link): Only call elf_link_input_bfd
	when word size of input matches output word size.

2002-03-12  Andreas Jaeger  <aj@suse.de>

	* cpu-i386.c (i386_compatible): New.  Use it instead of
	bfd_default_compatible.

2002-03-07  H.J. Lu  (hjl@gnu.org)

	* coff-sh.c (shcoff_reloc_map): Use bfd_reloc_code_real_type
	as the type for bfd_reloc_val.

2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* elf-hppa.h (elf_hppa_is_dynamic_loader_symbol): New function.
	(elf_hppa_relocate_section): Ignore undefined dynamic loader symbols.
	(elf_hppa_final_link_relocate): Correct relocations for indirect
	references to local data through the DLT.  Fix .opd creation for
	local symbols using R_PARISC_LTOFF_FPTR32 and R_PARISC_FPTR64
	relocations.  Use e_lsel selector for R_PARISC_DLTIND21L,
	R_PARISC_LTOFF_FPTR21L and R_PARISC_LTOFF_TP21L as per
	"Processor-Specific ELF for PA_RISC, Version 1.43" document.
	Similarly, use e_rsel for DLT and LTOFF 'R' relocations.
	* elf32-hppa.c (final_link_relocate): Revise relocation selectors
	as per "Processor-Specific ELF for PA_RISC, Version 1.43" document.

2002-03-05  Jakub Jelinek  <jakub@redhat.com>

	* merge.c (_bfd_merge_sections): Don't segfault if there
	is nothing to merge due to GC.

2002-03-05  Alan Modra  <amodra@bigpond.net.au>

	* elf32-hppa.c (clobber_millicode_symbols): Remove hack to keep
	symbols that have been forced local.

	* elflink.h (elf_bfd_final_link): Call elf_link_output_extsym
	to output forced local syms for non-shared link.
	(elf_link_output_extsym): Tweak condition for calling backend
	adjust_dynamic_symbol so that previous behaviour is kept.
	Whitespace changes throughout file.

2002-03-04  H.J. Lu <hjl@gnu.org>

	* elf.c (bfd_section_from_shdr): Handle special sections,
	.init_array, .fini_array and .preinit_array.
	(elf_fake_sections): Likewise.

	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Create the
	DT entry only if the section is in output for .init_array,
	.fini_array and .preinit_array. Complain about .preinit_array
	section in DSO.
	(elf_bfd_final_link): Warn zero size for .init_array,
	.fini_array and .preinit_array sections.

	* elfxx-ia64.c (elfNN_ia64_section_from_shdr): Remove
	SHT_INIT_ARRAY, SHT_FINI_ARRAY and SHT_PREINIT_ARRAY.
	(elfNN_ia64_fake_sections): Remove .init_array, .fini_array and
	.preinit_array.

2002-03-04  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (WIN32LIBADD): Don't eval PICFLAG assignment.
	* configure: Regenerate.

2002-03-02  Tom Rix  <trix@redhat.com>

	* coff64-rs6000.c (xcoff64_howto_table): Replace howto types with
	symbolic equiv.
	* coff-rs6000.c (xcoff_howto_table): Same.

2002-03-01  David Mosberger  <davidm@hpl.hp.com>

	* elflink.h (size_dynamic_sections): If section named
	".preinit_array" exists, create DT_PREINIT_ARRAY and
	DT_PREINIT_ARRAYSZ entries in dynamic table.  Analogously for
	".init_array" and ".fini_array".
	(elf_bfd_final_link): Handle DT_PREINIT_ARRAYSZ, DT_INIT_ARRAYSZ,
	DT_FINI_ARRAYSZ, DT_PREINIT_ARRAY, DT_INIT_ARRAY, and
	DT_FINI_ARRAY.

2002-02-26  Andrew Macleod  <amacleod@cygnus.com>

	* elflink.h (elf_bfd_final_link): Don't crash on SHN_UNDEF local
	dynsyms.

2002-02-25  Alan Modra  <amodra@bigpond.net.au>

	* elf64-hppa.h: Update copyright date.

	* elf64-ppc.c (ppc64_elf_check_relocs): Warning fix.
	(ppc64_elf_relocate_section): Don't generate power4 style branch
	hints for *_BRTAKEN and *_BRNTAKEN relocs.

2002-02-22  Jakub Jelinek  <jakub@redhat.com>

	* elf64-sh64.c (sh_elf64_relocate_section): Fix a typo from my
	last patch.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.

2002-02-21  Andreas Jaeger  <aj@suse.de>

	* elf64-x86-64.c: Major rework that introduces all recent changes
	to the x86-64 backend.  Get a closer match to elf32-i386.
	(struct elf64_x86_64_dyn_relocs): Rename from
	elf64_x86_64_pcrel_relocs_copied, add additional fields.  Change
	all users.
	(struct elf64_x86_64_link_hash_table): Add short cuts to some
	sections.
	(link_hash_newfunc): Rename from elf64_x86_64_link_hash_newfunc,
	remove casts, initialize new hash members.
	(create_got_section): New.
	(elf64_x86_64_create_dynamic_sections): New.
	(elf64_x86_64_copy_indirect_symbol): New.
	(elf64_x86_64_check_relocs): Don't allocate space for dynamic
	relocs, .got or .relgot here but do it in allocate_dynrelocs.
	Reference count possible .plt and .got entries.  Don't test input
	section SEC_READONLY here to try to avoid copy relocs, and keep
	dyn_relocs regardless of ELF_LINK_NON_GOT_REF.  Don't set
	DF_TEXTREL here.  Delay setting of variables until needed.  Cache
	pointer to "sreloc" section in elf_section_data. Tweak condition
	under which .got created.  Report files with bad relocation
	section names.
	(elf64_x86_64_gc_sweep_hook): Sweep dyn_relocs and local_dynrel.
	Reference count possible .plt entries.  Don't deallocate .got and
	.relgot space here.
	(elf64_x86_64_adjust_dynamic_symbol): Handle nocopyreloc.  Don't
	do copy reloc processing for weakdefs.  Remove redundant casts and
	aborts.  Delay setting of vars until needed.  Move creation of
	dynamic symbols and allocation of .plt and .rela.plt to
	allocate_dynrelocs.  Replace BFD_ASSERT with abort.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
	(allocate_dynrelocs): New.
	(readonly_dynrelocs): New.
	(elf64_x86_64_size_dynamic_sections): Call readonly_dynrelocs.
	Allocate space for dyn relocs.  Replace BFD_ASSERT with abort.
	Zero out the dynamic allocated content space.
	(elf64_x86_64_discard_copies): Removed.
	(elf64_x86_64_relocate_section): Make use of dynamic section
	short-cuts.  Localise vars, and delay setting.  Better error
	reporting, replace BFD_ASSERT with abort.  Check
	ELF_LINK_HASH_DEF_DYNAMIC to see if a symbol is not defined in the
	regular object file and tread the weak definition as the normal
	one.  Don't discard relocs for undefweak or undefined symbols and
	check !DEF_REGULAR as well as DEF_DYNAMIC in test for avoided copy
	relocs.
	(elf64_x86_64_finish_dynamic_symbol): Don't copy relocs for
	symbols that have been forced local.  Use same test to decide if
	we can use a relative reloc for got as relocate_section.  Expand
	SHN_UNDEF comment.  Move expressions out of function calls.
	Replace BFD_ASSERT with abort.
	(bfd_elf64_bfd_final_link): Removed.
	(elf_backend_copy_indirect_symbol): Define.

2002-02-20  Tom Rix  <trix@redhat.com>

	* coff-rs6000.c (xcoff_howto_table): Add 16 bit R_BA.
	(_bfd_xcoff_reloc_type_lookup): Use it.
	* coff64-rs6000.c (xcoff64_howto_table): Same.
	(xcoff64_reloc_type_lookup): Same.

2002-02-20  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* osf-core.c (osf_core_vec):  OSF/1 (Digital Unix) core files are
	little endian.

2002-02-19  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* archures.c (bfd_mach_s390_esa): Rename to bfd_mach_s390_31.
	(bfd_mach_s390_esame): Rename to bfd_mach_s390_64.
	* bfd-in2.h: Regenerate.
	* cpu-s390.c (arch_info_struct): Use renamed architecture defines.
	Replace architecture name "s390" with "s390:31-bit" and "s390:esame"
	with "s390:64-bit".
	* elf32-s390.c (elf_howto_table): Add 32 bit pc relative relocations.
	(elf_s390_reloc_type_lookup): Likewise.
	(elf_s390_check_relocs): Likewise.
	(elf_s390_gc_sweep_hook): Likewise.
	(elf_s390_relocate_section): Likewise.
	(elf_s390_object_p): Use renamed architecture define.
	* elf64-s390.c (elf_s390_object_p): Use renamed architecture define.

2002-02-19  Frank Ch. Eigler  <fche@redhat.com>

	* syms.c (stt[]): Sorted.  Added .init/.fini -> "t" mapping.

2002-02-19  Jakub Jelinek  <jakub@redhat.com>

	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Enable
	absptr -> pcrel optimization for shared libs.
	Only create minimal .eh_frame_hdr if absptr FDE encoding in shared
	library cannot be converted to pcrel.
	(_bfd_elf_eh_frame_section_offset): Return -2 if making absptr
	relative.
	* elf32-i386.c (elf_i386_relocate_section): If
	_bfd_elf_section_offset returned -2, skip, but make sure the
	relocation is installed.
	* elf32-arm.h (elf32_arm_final_link_relocate): Likewise.
	* elf32-cris.c (cris_elf_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
	* elf64-sparc.c	(sparc64_elf_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Handle
	_bfd_elf_section_offset returning -2 the same way as -1.
	* elfxx-ia64.c (elfNN_ia64_install_dyn_reloc): Likewise.
	* elf32-mips.c (mips_elf_create_dynamic_relocation): Add FIXME
	and BFD_ASSERT.
	* elf64-mips.c (mips_elf64_create_dynamic_relocation): Likewise.

2002-02-18  Tom Rix  <trix@redhat.com>

	* xcofflink.c (bfd_xcoff_link_gernate_rtinit): Add -brtl support.
	(bfd_xcoff_size_dynamic_sections): Same.
	* bfd-in.h (bfd_xcoff_link_generate_rtinit): Same.
	(bfd_xcoff_size_dynamic_sections): Same.
	* coff-rs6000.c (xcoff_generate_rtinit): Same.
	* coff-rs646000.c (xcoff64_generate_rtinit): Same.
	* libxcoff.h (struct xcoff_backend_data_rec): Same.
	* xcofflink.c (xcoff_build_ldsyms, xcoff_link_add_symbols): Clean.
	* bfd-in2.h: Regenerate.

2002-02-18  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (STFD_FR0_0R1, LFD_FR0_0R1, BLR): Define.
	(struct ppc_link_hash_table): Add sfpr.
	(ppc64_elf_link_hash_table_create): Init it.
	(ppc64_elf_create_dynamic_sections): Split creation of .stub and
	.glink out to..
	(create_linkage_sections): ..here.  Make .sfpr too.
	(ppc64_elf_check_relocs): Call create_linkage_sections, and set
	dynobj early.
	(MIN_SAVE_FPR, MAX_SAVE_FPR): Define.
	(ppc64_elf_func_desc_adjust): Look for missing ._savef* and
	._restf* functions, and create as needed.
	(func_desc_adjust): Only force_local for shared libs.

2002-02-18  David O'Brien  <obrien@FreeBSD.org>

	* configure.in: Bump version number post 2.12 branching.
	* configure: Regenerate.

2002-02-17  Hans-Peter Nilsson  <hp@bitrange.com>

	* mmo.c: Correct and improve comments.
	(mmo_write_chunk): Store trailing byte in bfd buffer; don't
	zero-pad.  Use input to fill up non-empty bfd buffer.
	(mmo_flush_chunk): New function.
	(mmo_write_loc_chunk): Add parameter last_vmap, all callers
	changed.  Don't emit location specifier if VMA is same as
	*LAST_VMAP after omitting leading zero contents.  Call
	mmo_flush_chunk before emitting location specifier.
	(mmo_write_loc_chunk_list): Call mmo_flush_chunk when finished
	with mmo_write_loc_chunk calls.
	(mmo_internal_write_section): Call mmo_flush_chunk after
	mmo_write_chunk.
	(mmo_write_symbols_and_terminator): Move :Main to first position
	in symbol array.  Add faked one if it does not exist if there are
	other symbols.  Don't add it if there are no symbols at all.  Move
	out test for value of :Main from symbol loop.  Rename table
	fakemain to maintable and variable mainsym to fakemain.

2002-02-15  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_relocate_section) [BRSGP]: A target
	section with no got matches any got.  Simplify error generaion.

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

	Support arbitrary length fill patterns.
	* linker.c (bfd_new_link_order): Zero all fields with bfd_zalloc.
	(_bfd_default_link_order): Remove bfd_fill_link_order code.
	Call default_data_link_order.
	(default_fill_link_order): Delete.
	(default_data_link_order): New function.
	* elf32-mips.c (_bfd_mips_elf_final_link): Replace occurrences
	of bfd_fill_link_order with bfd_data_link_order.
	* elf64-alpha.c (elf64_alpha_final_link): Likewise.
	* elf64-mips.c (mips_elf64_final_link): Likewise.

	* bfd.c (bfd_scan_vma): Clamp overflows to max bfd_vma value.
	Correct value returned in "end" for "0x<non-hex>".

2002-02-14  Nick Clifton  <nickc@cambridge.redhat.com>

	* cpu-arm.c (processors): Replace 'arch' field with 'mach'.
	(scan): Test against 'mach' field in info structure.

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

	* elf.c (elf_fake_sections): Use SHT_NOBITS when SEC_NEVER_LOAD.

2002-02-14  Matt Fredette  <fredette@netbsd.org>

	* elf32-m68k.c (elf32_m68k_print_private_bfd_data): Recognize
	EF_M68000.

2002-02-13  Nick Clifton  <nickc@cambridge.redhat.com>

	* elf.c (_bfd_elf_make_section_from_shdr): Do not insist on
	non-zero physical addresses when adjusting the LMAs of new
	sections.

2002-02-12  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* elf-hppa.h (elf_hppa_reloc_final_type): New function stripped
	from _bfd_elf_hppa_gen_reloc_type.
	(_bfd_elf_hppa_gen_reloc_type): Remove duplicate prototype.
	* elf32-hppa.h (elf32_hppa_reloc_final_type): Add protptype.
	* elf32-hppa.c: Include elf32-hppa.h before elf-hppa.h.
	* elf64-hppa.h (elf64_hppa_reloc_final_type): Add protptype.

2002-02-12  Alexandre Oliva  <aoliva@redhat.com>

	* elf-m10300.c (mn10300_elf_relax_section): Skip section before
	loading its contents if there's nothing to do in it.

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

	* elf64-ppc.c (ppc64_elf_size_stubs): Correct test for crossing
	64k boundary.

	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Add dynamic
	DT_PPC64_OPD and DT_PPC64_OPDSZ tags.
	(ppc64_elf_finish_dynamic_sections): Set values for them.

2002-02-11  Michael Snyder  <msnyder@redhat.com>

	* elf-bfd.h (elfcore_write_lwpstatus): Add prototype.
	* elf.c (elfcore_grok_pstatus): Add prototype.
	(elfcore_grok_lwpstatus): Add prototype.
	(elfcore_write_lwpstatus): New function.
	(elfcore_write_pstatus): Fix typo, eliminate unnecessary memcpy.

2002-02-11  Alexandre Oliva  <aoliva@redhat.com>

	* elf32-sh.c: Added missing prototypes.
	* elf32-sh64.c: Likewise.
	(sh_elf_align_loads): Mark unused args as such.
	* elf64-sh64.c: Added missing prototypes.
	(struct elf_sh64_link_hash_entry): Fix typo.
	(sh_elf64_relocate_section): Fix info argument passed to
	_bfd_elf_section_offset.

2002-02-11  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: "make dep-am".
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

2002-02-10  Daniel Jacobowitz  <drow@mvista.com>

	* coff-rs6000.c (xcoff_generate_rtinit): Silence uninitialized
	variable warnings.
	* elf32-sh.c (sh_elf_relax_section): Silence signed/unsigned
	comparison warning.
	* trad-core.c (trad_unix_core_file_p): Silence pointer/integer
	cast warnings for the common case.

2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* config.bfd (sh-*-linux*, sh-*-elf* | sh-*-rtemself*): Add sh64
	vectors.
	(sh-*-netbsdelf*): New, to trump sh*-*-netbsdelf* and add sh64
	vectors.

2002-02-09  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_howto): Add R_ALPHA_BRSGP.
	(elf64_alpha_reloc_map, elf64_alpha_check_relocs): Likewise.
	(elf64_alpha_relocate_section): Likewise.
	* reloc.c (BFD_RELOC_ALPHA_BRSGP): New.
	* bfd-in2.h, libbfd.h: Rebuild.

2002-02-09  Hans-Peter Nilsson  <hp@bitrange.com>

	* elf64-mmix.c (_bfd_mmix_finalize_linker_allocated_gregs): Check
	that base-plus-offset reloc accounting is consistent.
	(mmix_elf_relax_section): Keep base-plus-offset reloc accounting
	up to date for undefined symbols.

2002-02-08  Eric Christopher  <echristo@redhat.com>

	From Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* elf32-mips.c (_bfd_mips_elf_fake_sections): Don't create .rela
	sections for the O32 ABI.

2002-02-08  Chris Demetriou  <cgd@broadcom.com>

	* elf32-arm.h: Fix formatting of _("...").
	* elf32-d10v.c: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-mips.c: Likewise.

2002-02-08  Ivan Guzvinec <ivang@opencores.org>

	* coff-or32.c: Fix compile time warning messages.

2002-02-08  Alexandre Oliva  <aoliva@redhat.com>

	Contribute sh64-elf.
	2002-01-23  Alexandre Oliva  <aoliva@redhat.com>
	* reloc.c (R_SH_GOTPLT32, R_SH_GOT_LOW16, R_SH_GOT_MEDLOW16,
	R_SH_GOT_MEDHI16, R_SH_GOT_HI16, R_SH_GOTPLT_LOW16,
	R_SH_GOTPLT_MEDLOW16, R_SH_GOTPLT_MEDHI16, R_SH_GOTPLT_HI16,
	R_SH_PLT_LOW16, R_SH_PLT_MEDLOW16, R_SH_PLT_MEDHI16,
	R_SH_PLT_HI16, R_SH_GOTOFF_LOW16, R_SH_GOTOFF_MEDLOW16,
	R_SH_GOTOFF_MEDHI16, R_SH_GOTOFF_HI16, R_SH_GOTPC_LOW16,
	R_SH_GOTPC_MEDLOW16, R_SH_GOTPC_MEDHI16, R_SH_GOTPC_HI16,
	R_SH_GOT10BY4, R_SH_GOTPLT10BY4, R_SH_GOT10BY8, R_SH_GOTPLT10BY8,
	R_SH_COPY64, R_SH_GLOB_DAT64, R_SH_JMP_SLOT64, R_SH_RELATIVE64):
	New relocs.
	* libbfd.h, bfd-in2.h: Rebuilt.
	* elf32-sh.c (sh_elf_howto_table): Define new relocs.
	(sh_reloc_map): Map them.
	(PLT_ENTRY_SIZE, elf_sh_plt0_entry_be, elf_sh_plt0_entry_le,
	elf_sh_plt_entry_be, elf_sh_plt_entry_le, elf_sh_pic_plt_entry_be,
	elf_sh_pic_plt_entry_le, elf_sh_plt0_entry, elf_sh_plt_entry,
	elf_sh_pic_plt_entry, elf_sh_sizeof_plt, elf_sh_plt_plt0_offset,
	elf_sh_plt0_gotplt_offset, elf_sh_plt_temp_offset,
	elf_sh_plt_symbol_offset, elf_sh_plt_reloc_offset,
	movi_shori_putval) [INCLUDE_SHMEDIA]: New.
	(elf_sh_link_hash_entry) [INCLUDE_SHMEDIA]: Add
	datalabel_got_offset.
	(sh_elf_link_hash_newfunc): Initialize it.
	(sh_elf_relocate_section): Augment the scope of
	seen_stt_datalabel.  Introduce GOTPLT support.	Extend GOTPC, PLT,
	GOT and GOTOFF handling to new SHmedia relocation types.  Support
	GOT_BIAS.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_finish_dynamic_symbol) [TARGET_SHMEDIA]: Set up values in
	PLT entries using movi_shori_putval.  Support GOT_BIAS.
	(sh_elf_finish_dynamic_sections): Likewise.
	* elf32-sh64.c (shmedia_prepare_reloc): Do not add addend to
	relocation, it's now done by the caller.
	(GOT_BIAS): New.
	* elf64-sh64.c (GOT_BIAS, PLT_ENTRY_SIZE, elf_sh64_sizeof_plt,
	elf_sh64_plt_plt0_offset, elf_sh64_plt0_gotplt_offset,
	elf_sh64_plt_temp_offset, elf_sh64_plt_symbol_offset,
	elf_sh64_plt_reloc_offset, ELF_DYNAMIC_INTERPRETER,
	elf_sh64_pcrel_relocs_copied, elf_sh64_link_hash_entry,
	elf_sh64_link_hash_table, sh64_elf64_link_hash_traverse,
	sh64_elf64_hash_table): New.
	(sh_elf64_howto_table): Introduce new relocs.
	(sh_elf64_info_to_howto): Accept new PIC relocs.
	(sh_elf64_relocate_section): Augment the scope of
	seen_stt_datalabel.  Support new PIC relocs.
	(sh_elf64_check_relocs): Support new PIC relocs.
	(elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le,
	elf_sh64_plt_entry_be, elf_sh64_plt_entry_le,
	elf_sh64_pic_plt_entry_be, elf_sh64_pic_plt_entry_le,
	elf_sh64_plt0_entry, elf_sh64_plt_entry, elf_sh64_pic_plt_entry,
	sh64_elf64_link_hash_newfunc, sh64_elf64_link_hash_table_create,
	movi_shori_putval, movi_3shori_putval,
	sh64_elf64_create_dynamic_sections,
	sh64_elf64_adjust_dynamic_symbol, sh64_elf64_discard_copies,
	sh64_elf64_size_dynamic_sections,
	sh64_elf64_finish_dynamic_symbol,
	sh64_elf64_finish_dynamic_sections): New.
	(elf_backend_create_dynamic-sections,
	bfd_elf64_bfd_link_hash_table_create,
	elf_backend_adjust_dynamic_symbol,
	elf_backend_size_dynamic_sections,
	elf_backend_finish_dynamic_symbol,
	elf_backend_finish_dynamic_sections, elf_backend_want_got_plt,
	elf_backend_plt_readonly, elf_backend_want_plt_sym,
	elf_backend_got_header_size, elf_backend_plt_header_size):
	Define.
	2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
	* elf32-sh.c: Renumbered and renamed some SH5 relocations to
	match official numbers and names; moved unmaching ones to the
	range 0xf2-0xff.
	* elf32-sh64.c, elf64-sh64.c: Likewise.
	2001-03-12  DJ Delorie	<dj@redhat.com>
	* elf32-sh.c (sh_elf_relax_section): Don't relax SHmedia
	sections.
	2001-03-12  DJ Delorie	<dj@redhat.com>
	* elf32-sh64.c (shmedia_prepare_reloc): Validate relocs that must
	be aligned.
	* elf64-sh64.c (sh_elf64_relocate_section): Ditto.
	2001-01-14  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh64.c (bfd_elf32_bfd_copy_private_section_data): Define.
	(sh64_elf_fake_sections): Set type to SHT_SH5_CR_SORTED for a
	.cranges section with SEC_SORT_ENTRIES set.
	(sh64_backend_section_from_shdr): Set SEC_SORT_ENTRIES on an
	incoming sorted .cranges section.
	(sh64_bfd_elf_copy_private_section_data): New.
	(sh64_elf_final_write_processing): Only sort .cranges and modify
	start address if called by linker.
	2001-01-08  Ben Elliston  <bje@redhat.com>
	* elf32-sh64.c (sh64_elf_final_write_processing): Activate
	Hans-Peter Nilsson's set bit 0 patch from	2001-01-06.
	* elf64-sh64.c (sh64_elf64_final_write_processing): Ditto.
	2001-01-06  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf64-sh64.c (sh_elf64_howto_table): No open brace at start of
	line.  Add comments before all entries.
	<R_SH_PT_16, R_SH_SHMEDIA_CODE>: Correct and clarify describing
	comment.
	(sh_elf64_reloc): Correct head comment.
	(sh_elf64_relocate_section): Correct spacing.
	<relocating for a local symbol>: Do not honour STO_SH5_ISA32;
	instead call reloc_dangerous callback.
	<case R_SH_SHMEDIA_CODE>: New case.
	(sh_elf64_gc_mark_hook): Correct spacing.
	(sh_elf64_check_relocs): Ditto.
	* elf32-sh64.c (shmedia_prepare_reloc) <case R_SH_SHMEDIA_CODE>:
	New case.
	* elf32-sh.c: Correct #endif comments for #ifndef-wrapped
	functions.
	(sh_elf_howto_table) <R_SH_PT_16, R_SH_SHMEDIA_CODE>: Correct,
	clarify describing comment.  Add comments before all entries.
	(sh_elf_relocate_section) <relocating for a local symbol>: Do not
	honour STO_SH5_ISA32; instead call reloc_dangerous callback.
	2001-01-06  Hans-Peter Nilsson	<hpn@cygnus.com>
	Sort .cranges section in final link.  Prepare to set bit 0 on
	entry address.
	* elf32-sh64.c (struct sh64_find_section_vma_data): New.
	(sh64_elf_link_output_symbol_hook): Fix typo in prototype.
	(sh64_elf_set_mach_from_flags): Set SEC_DEBUGGING on incoming
	.cranges section.
	(sh64_backend_section_from_shdr): New, to recognize
	SHT_SH5_CR_SORTED on incoming .cranges section.
	(elf_backend_section_from_shdr): Define.
	(sh64_elf_final_write_processing): Sort outgoing .cranges
	section.  (New, temporarily disabled:) Set bit 0 on entry address
	according to ISA type.
	(sh64_find_section_for_address): New.
	(crange_qsort_cmpb, crange_qsort_cmpl, crange_bsearch_cmpb,
	crange_bsearch_cmpl): Move here from opcodes/sh64-dis.c.
	(sh64_address_in_cranges): Move here from opcodes/sh64-dis.c.  Use
	bfd_malloc, not xmalloc.
	(sh64_get_contents_type): Move here from opcodes/sh64-dis.c.  Make
	global.
	* elf32-sh64.c (sh64_elf64_final_write_processing): New, (but
	temporarily disabled) setting bit 0 on entry address.
	(elf_backend_final_write_processing): Define.
	2001-01-05  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh.c (sh_elf_howto_table) <R_SH_PT_16>: Adjust fields to
	be a proper relocation for PTA and PTB rather than a marker.
	<R_SH_IMMU5, R_SH_IMMS6, R_SH_IMMU6, R_SH_IMMS10, R_SH_IMMS10BY2,
	R_SH_IMMS10BY4, R_SH_IMMS10BY8, R_SH_IMMS16, R_SH_IMMU16,
	R_SH_IMM_LOW16, R_SH_IMM_LOW16_PCREL, R_SH_IMM_MEDLOW16,
	R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16, R_SH_IMM_MEDHI16_PCREL,
	R_SH_IMM_HI16, R_SH_IMM_HI16_PCREL, R_SH_64, R_SH_64_PCREL>:
	Zero src_mask.
	* elf64-sh64.c: Ditto.
	(sh_elf64_relocate_section) <case R_SH_PT_16>: New case.
	* elf32-sh64.c: Include opcodes/sh64-opc.h
	(shmedia_prepare_reloc): Take a bfd_link_info pointer as first
	argument.  Drop const qualifiers from "bfd *" and "bfd_byte *"
	parameters.  No unused parameters.  Caller changed.
	<case R_SH_PT_16>: New case.
	* Makefile.am (elf32-sh64.lo): Add dependency on sh64-opc.h.
	* Makefile.in: Regenerate.
	2000-12-30  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf64-sh64.c (sh64_elf64_fake_sections): Set SHF_SH5_ISA32 for
	all code sections.
	(sh_elf64_set_mach_from_flags): Change from EF_SH64 to EF_SH5.
	(sh64_elf_merge_private_data): Ditto.
	* elf32-sh64.c (sh64_elf_fake_sections): Use sh64_elf_section_data
	to access stored section flags.
	(sh64_elf_final_write_processing): Return immediately unless
	called by linker.  Use sh64_elf_section_data (cranges) to get size
	of linker-generated cranges entries.
	(sh64_elf_copy_private_data): Add missing "return true".
	(sh64_elf_set_mach_from_flags): Change from EF_SH64 to EF_SH5.
	(sh_elf64_merge_private_data): Ditto.
	2000-12-19  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf64-sh64.c (sh64_elf64_fake_sections): New, copy of
	elf64-sh64.c:sh64_elf_fake_sections.
	(elf_backend_fake_sections): Define as sh64_elf64_fake_sections.
	2000-12-18  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh64.c (sh64_elf_copy_private_data_internal): Delete.
	(sh64_elf_final_write_processing): New.
	(elf_backend_final_write_processing): Define.
	(sh64_elf_fake_sections): Get header flags from tdata field.
	(sh64_elf_copy_private_data): Do not call
	sh64_elf_copy_private_data_internal, just copy e_flags field.
	(sh64_elf_merge_private_data): Do not call
	sh64_elf_copy_private_data_internal.
	2000-12-12  Hans-Peter Nilsson	<hpn@cygnus.com>
	Remove EF_SH64_ABI64, let ELF size make difference.
	Remove SH64-specific BFD section flag.
	* elf32-sh64.c (sh64_elf_fake_sections): Recognize section as
	containing SHmedia through elf_section_data (asect)->tdata
	non-zero, not using a BFD section flag.
	(sh64_elf_set_mach_from_flags): Don't recognize EF_SH64_ABI64.
	(sh64_elf_merge_private_data): Similar.
	(elf_backend_section_flags): Don't define.
	(sh64_elf_backend_section_flags): Delete.
	* elf64-sh64.c (sh_elf64_set_mach_from_flags): Recognize EF_SH64,
	not EF_SH64_ABI64.
	(sh_elf64_merge_private_data): Similar.
	* section.c (Section flags definitions): Don't define
	SEC_SH_ISA_SHMEDIA.
	(bfd-in2.h): Regenerate.
	2000-12-09  Hans-Peter Nilsson	<hpn@cygnus.com>
	Make DataLabel references work with partial linking.
	* elf32-sh64.c: Fix formatting.
	(sh64_elf_link_output_symbol_hook): New.
	(elf_backend_link_output_symbol_hook): Define to
	sh64_elf_link_output_symbol_hook.
	(sh64_elf_add_symbol_hook): Make DataLabel symbol just global
	undefined if partial linking.  Adjust sanity check.
	* elf64-sh64.c (sh64_elf64_link_output_symbol_hook): New.
	(elf_backend_link_output_symbol_hook): Define to
	sh64_elf64_link_output_symbol_hook.
	(sh64_elf64_add_symbol_hook): Make DataLabel symbol just global
	undefined if partial linking.  Adjust sanity check.
	2000-12-07  Hans-Peter Nilsson	<hpn@cygnus.com>
	Implement semantics for inter-file DataLabel references.
	* elf64-sh64.c (DATALABEL_SUFFIX): Define.
	(sh64_elf64_add_symbol_hook): New.
	(sh_elf64_relocate_section): If passing an indirect symbol with
	st_type STT_DATALABEL on the way to a symbol with st_other
	STO_SH5_ISA32, do not bitor 1 to the relocation.
	(elf_backend_add_symbol_hook): Define to
	sh64_elf64_add_symbol_hook.
	* elf64-sh32.c: Tweak comments.
	(DATALABEL_SUFFIX): Define.
	(sh64_elf_add_symbol_hook): New.
	(elf_backend_add_symbol_hook): Define to sh64_elf_add_symbol_hook.
	* elf32-sh.c (sh_elf_relocate_section): If passing an indirect
	symbol with st_type STT_DATALABEL on the way to a symbol with
	st_other STO_SH5_ISA32, do not bitor 1 to the relocation.
	2000-12-05  Hans-Peter Nilsson	<hpn@cygnus.com>
	Pass through STT_DATALABEL.
	* elf32-sh64.c (sh64_elf_get_symbol_type): New.
	(elf_backend_get_symbol_type): Define.
	* elf64-sh64.c (sh64_elf64_get_symbol_type): New.
	(elf_backend_get_symbol_type): Define.
	2000-11-30  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh64.c: Tweak comments.
	(sh64_elf_copy_private_data_internal): Add prototype.
	(bfd_elf32_bfd_set_private_flags): Define.
	(sh64_elf_copy_private_data_internal): Compare machine name, not
	textual BFD target name, to check whether to copy section flag
	SHF_SH5_ISA32.
	(sh64_elf_merge_private_data): Validize bfd_get_arch_size.
	Tweak section-contents-type-mismatch message.
	(shmedia_prepare_reloc): Add ATTRIBUTE_UNUSED markers.
	Validize reloc-types.
	* elf64-sh64.c: New file.
	* targets.c (bfd_elf64_sh64_vec, bfd_elf64_sh64l_vec): Declare.
	* Makefile.am (BFD64_BACKENDS): Add elf64-sh64.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-sh64.c.
	Regenerate dependencies.
	* Makefile.in: Regenerate.
	* config.bfd (sh64-*-elf*): Add bfd_elf64_sh64_vec and
	bfd_elf64_sh64l_vec.
	* configure.in: Handle bfd_elf64_sh64_vec and
	bfd_elf64_sh64l_vec.
	* configure: Regenerate.
	* po/POTFILES.in: Regenerate.
	* po/bfd.pot: Regenerate.
	2000-11-29  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh64.c (sh64_elf_set_mach_from_flags): Do not recognize
	anything else but EF_SH64 and EF_SH64_ABI64.
	(sh64_elf_merge_private_data): Emit error for anything else but
	EF_SH64 and EF_SH64_ABI64.
	* config.bfd: Remove bfd_elf32_shblin_vec and bfd_elf32_shlin_vec
	from targ_selvecs.
	* configure.in: Add cofflink.lo to bfd_elf32_sh64_vec and
	bfd_elf32_sh64l_vec as a temporary measure.
	* configure: Regenerate.
	2000-11-27  Hans-Peter Nilsson	<hpn@cygnus.com>
	* cpu-sh.c (arch_info_struct): Include sh5 item
	unconditionalized.
	* config.bfd (sh64-*-elf*): Do not set targ_cflags.
	Add targ_selvecs bfd_elf32_sh_vec, bfd_elf32_shl_vec,
	bfd_elf32_shblin_vec and bfd_elf32_shlin_vec.
	* elf32-sh64.c: Tweak comments.
	(sh64_elf_set_mach_from_flags): Recognize all machine flags that
	are proper subsets of SH64 as bfd_mach_sh5.  Add EF_SH64_ABI64.
	(sh64_elf_copy_private_data_internal): Wrap long line.
	(sh64_elf_merge_private_data): Rewrite to allow objects from
	SH64 subsets to be linked together.
	(INCLUDE_SHMEDIA): Define.
	* elf32-sh.c (sh_elf_relocate_section) <local symbol>:
	Parenthesize plus-expression inside or-expression.
	<global symbol>: Ditto.
	(sh_elf_set_mach_from_flags): Remove code refusing
	deleted EF_SH64_32BIT_ABI flag.
	2000-11-26  Hans-Peter Nilsson	<hpn@cygnus.com>
	* elf32-sh.c (sh_elf_howto_table) <R_SH_IMM_LOW16_PCREL,
	R_SH_IMM_MEDLOW16_PCREL, R_SH_IMM_MEDHI16_PCREL,
	R_SH_IMM_HI16_PCREL, R_SH_64_PCREL>: Set pcrel_offset to true.
	(sh_elf_relocate_section) <local symbol>: Or 1 in
	calculation of relocation if sym->st_other & STO_SH5_ISA32.
	<global symbol>: Ditto if h->other & STO_SH5_ISA32.
	* elf32-sh64.c (shmedia_prepare_reloc): Add rel->r_addend to
	relocation.
	2000-11-24  Hans-Peter Nilsson	<hpn@cygnus.com>
	* Makefile.am (BFD32_BACKENDS): Add elf32-sh64.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-sh64.c.
	Regenerate dependencies.
	* Makefile.in: Regenerate.
	* archures.c: Add bfd_mach_sh5.
	* config.bfd: Map targ_cpu sh* to bfd_sh_arch.
	Handle sh64-*-elf*.  Set targ_cflags to -DINCLUDE_SHMEDIA.
	* configure.in: Handle bfd_elf32_sh64_vec and bfd_elf32_sh64l_vec.
	* configure: Regenerate.
	* reloc.c (BFD_RELOC_SH_SHMEDIA_CODE, BFD_RELOC_SH_IMMU5,
	BFD_RELOC_SH_IMMS6, BFD_RELOC_SH_IMMS6BY32, BFD_RELOC_SH_IMMU6,
	BFD_RELOC_SH_IMMS10, BFD_RELOC_SH_IMMS10BY2,
	BFD_RELOC_SH_IMMS10BY4, BFD_RELOC_SH_IMMS10BY8,
	BFD_RELOC_SH_IMMS16, BFD_RELOC_SH_IMMU16, BFD_RELOC_SH_IMM_LOW16,
	BFD_RELOC_SH_IMM_LOW16_PCREL, BFD_RELOC_SH_IMM_MEDLOW16,
	BFD_RELOC_SH_IMM_MEDLOW16_PCREL, BFD_RELOC_SH_IMM_MEDHI16,
	BFD_RELOC_SH_IMM_MEDHI16_PCREL, BFD_RELOC_SH_IMM_HI16,
	BFD_RELOC_SH_IMM_HI16_PCREL, BFD_RELOC_SH_PT_16): New relocations.
	* cpu-sh.c [INCLUDE_SHMEDIA] (arch_info_struct): Define and link
	in item for SH5.
	* elf32-sh.c [INCLUDE_SHMEDIA] (sh_elf_howto_table): Add howto items
	for SHmedia relocs.
	[INCLUDE_SHMEDIA] (sh_rel): Add mappings for SHmedia relocs.
	[INCLUDE_SHMEDIA] (sh_elf_relocate_section) [default]: Call
	shmedia_prepare_reloc, goto final_link_relocate if it returns
	non-zero, else fail as before.
	(sh_elf_set_mach_from_flags): Provide function only if not defined
	as macro.  Do not recognize objects with EF_SH64_32BIT_ABI set.
	(sh_elf_set_private_flags): Provide function only if not defined
	as a macro.
	(sh_elf_copy_private_data): Similar.
	(sh_elf_merge_private_data): Similar.
	* section.c (SEC_SH_ISA_SHMEDIA): New.
	* targets.c (bfd_elf32_sh64_vec, bfd_elf32_sh64l_vec): Declare.
	* elf32-sh64.c: New file.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* po/POTFILES.in: Regenerate.
	* po/bfd.pot: Regenerate.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.

2002-02-07  Daniel Jacobowitz  <drow@mvista.com>

	* bfd-in.h: Update <stdbool.h> check to only see if <stdbool.h> has
	been included, not drag it in.
	* bfd-in2.h: Regenerate.

2002-02-06  H.J. Lu  (hjl@gnu.org)

	* elf32-mips.c (_bfd_mips_elf_merge_private_bfd_data): Update
	the mach and ISA fields if necessary.

2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>

	* coffcode.h (coff_set_arch_mach_hook): Select the highest known
	ARM architecture when an F_ARM_5 flag is detected, since we cannot
	be sure exactly which architecture this represents.

2002-02-05  Nick Clifton  <nickc@redhat.com>

	* po/tr.po: Updated translation.

2002-02-05  Alan Modra  <amodra@bigpond.net.au>

	From Jimi X <jimix@watson.ibm.com>
	* archures (bfd_mach_ppc64): Define.
	(bfd_powerpc_arch): Rename to bfd_powerpc_archs.
	(bfd_powerpc_arch): Define.
	* bfd-in2.h: Regenerate.
	* cpu-powerpc.c (arch_info_struct): Rename to bfd_powerpc_archs.
	(bfd_powerpc_arch): Move to tail of bfd_powerpc_archs.
	(bfd_powerpc_archs): Add default powerpc64 arch.

2002-02-05  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Check for relocs
	against section syms in readonly sections.  Don't do the global
	sym check if we find one.
	* elf64-s390.c (elf_s390_size_dynamic_sections): Likewise.
	* elf32-hppa.c (elf32_hppa_size_dynamic_sections): Likewise.
	* elf32-i386.c (elf_i386_size_dynamic_sections): Likewise.
	* elf32-s390.c (elf_s390_size_dynamic_sections): Likewise.
	(elf_s390_grok_prstatus): Add missing prototype.

2002-02-04  Hans-Peter Nilsson  <hp@bitrange.com>

	* elf64-mmix.c (mmix_dump_bpo_gregs): New function.
	(mmix_elf_check_common_relocs) <case R_MMIX_BASE_PLUS_OFFSET>:
	Call bfd_get_section_by_name only once.  Initialize
	bpodata->n_bpo_relocs_this_section.
	(_bfd_mmix_prepare_linker_allocated_gregs): Remove comment
	referring to DSOs.
	(bpo_reloc_request_sort_fn): Don't use difference of values as
	return-value.

2002-02-02  David O'Brien  <obrien@FreeBSD>

	* configure.in: Tweak the FreeBSD 4.x recognition more.  Only treat
	version 4.5 and later the same as 5-CURRENT.
	* configure: Re-generate.

2002-02-02  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.bfd (hppa*-*-netbsd*): New target.

2002-01-31  Philipp Thomas  <pthomas@suse.de>

	* coff-arm.c (coff_arm_merge_private_bfd_data): Move ERROR
	to front of message. Unify messages with elf32-arm.h. Use
	commas where neccessary.
	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Use all upcase
	ERROR in messages. Unify messages with coff-arm.c. Correct
	VFP/FPA error message.
	(elf32_arm_print_private_bfd_data): Don't mark APCS-26 and
	APCS-32 for translation.

2002-02-01  Hans-Peter Nilsson  <hp@bitrange.com>

	Perform on-demand global register allocation from
	R_MMIX_BASE_PLUS_OFFSET relocs.
	* elf64-mmix.c (struct bpo_reloc_section_info, struct
	bpo_reloc_request, struct bpo_greg_section_info): New.
	(mmix_elf_check_common_relocs, mmix_elf_gc_sweep_hook,
	bpo_reloc_request_sort_fn, mmix_elf_relax_section,
	_bfd_mmix_check_all_relocs,
	_bfd_mmix_prepare_linker_allocated_gregs,
	_bfd_mmix_finalize_linker_allocated_gregs): New functions.
	(elf_mmix_howto_table): Correct src_mask for most relocs.
	(mmix_elf_perform_relocation) <case R_MMIX_BASE_PLUS_OFFSET>: New
	case.
	(mmix_final_link_relocate) <case R_MMIX_BASE_PLUS_OFFSET>: New
	case.  Fix typo in comment.  New label do_mmix_reloc.
	(mmix_elf_check_relocs): Abuse bfd_link_info member base_file to
	store first object file with a base-plus-offset reloc.  Call
	mmix_elf_check_common_relocs for the part common with mmo.
	(mmix_elf_final_link): Write out linker-allocated register
	contents section.
	(elf_backend_gc_sweep_hook): Define.
	(bfd_elf64_bfd_relax_section): Define.

	* mmo.c: Don't include <ctype.h>
	(mmo_init): Correct init-once logic.

2002-02-01  Tom Rix  <trix@redhat.com>

	* config.bfd: Conditionally support <aiaff> for pre AIX 4.3.

2002-02-01  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am"
	* Makefile.in: Regenerate.

2002-01-31  David O'Brien  <obrien@FreeBSD>

	* configure.in: Recognize the differences in core files from FreeBSD
	4.{0,1} and later versions of 4.x.  This treats 4.2+ the same as
	5-CURRENT.
	* configure: Regenerate.

2002-01-31  Ivan Guzvinec  <ivang@opencores.org>

	* coff-or32.c: New file.
	* cpu-or32.c: New file.
	* elf32-or32.c: New file.
	* archures.c: Add support for or32.
	* targets.c: Add support for or32.
	* bfd-in2.h: Regenerate.
	* coffcode.h (coff_set_arch_mach_hook, coff_set_flags,
	coff_write_object_contents): Add support for or32.
	* config.bfd: Add target.
	* configure.in: Add support for or32.
	* configure: Regenerate.
	* Makefile.am: Add support for or32.
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Add or32 files.
	* po/bfd.pot: Regenerate.

2002-01-31  Nick Clifton  <nickc@cambridge.redhat.com>
	    Don Lindsay  <lindsayd@cisco.com>

	* elf32-mips.c (mips_elf_calculate_relocation): Replace 'return
	false' with a return of a bfd_reloc_ error code.

2002-01-31  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
	unexport unreferenced symbols when --export-dynamic.  Call
	_bfd_elf_strtab_delref when unexporting.

2002-01-30  Daniel Jacobowitz  <drow@mvista.com>

	* bfd-in.h: Include <stdbool.h> if it is available.
	* bfd-in2.h: Regenerated.

2002-01-31  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (func_desc_adjust): STV_PROTECTED functions should
	not go via the plt.

2002-01-30  Nick Clifton  <nickc@cambridge.redhat.com>

	* archures.c: Tidy up formatting of embedded comments.
	* bfd.c: Tidy up formatting of embedded comments.
	* bfd-in.h: Fix formatting of comments.
	* reloc.c: Tidy up formatting of ordinary & embedded comments.
	* section.c: Tidy up formatting of embedded comments.
	* syms.c: Tidy up formatting of embedded comments.
	* targets.c: Tidy up formatting of embedded comments.

	* bfd-in2.h: Regenerate.

2002-01-30  Nick Clifton  <nickc@cambridge.redhat.com>

	* vms-tir.c (cmd_name): New function.
	(tir_cmd_name): New function.
	(etir_sta, etir_sto, etir_opr, etir_stc): Use cmd_name().
	(tir_opr, tir_ctl, tir_cmd): use tir_cmd_name().
	Fix formatting.

	* peXXigen.c (pe_print_idata): Rearrange message to aid in
	translation.
	(pe_print_pdata):  Rearrange message to aid in translation.

	* libbfd.c (warn_deprecated): Rearrange error message to aid in
	translation.

	* ihex.c (ihex_write_object_contents): Fix spelling typo.

	* ieee.c (ieee_slurp_external_symbols): Remove spurious space.

	* elf64-sparc.c (sparc64_elf_add_symbol_hook): Rearrange error
	message to aid in translation.

	* elf64-mmix.c (mmix_final_link_relocate): Rearrange error message
	to aid in translation.

	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Fix typo.

2002-01-30  Philipp Thomas  <pthomas@suse.de>

	* coff-arm.c, elf32-elf.h: Unify messages.

2002-01-30  Nick Clifton <nickc@redhat.com>

	* po/sv.po: Updated translation.

2002-01-30  Philipp Thomas  <pthomas@suse.de>

	* dwarf2.c (read_abbrev): Use full section name in error message.
	(decode_line_info): Likewise.

	* elf.c (_bfd_elf_symbol_from_bfd_symbol): Don't translate debugging
	message.

2002-01-30  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (func_desc_adjust): Only provide missing function
	descriptor symbols for undefined function code syms.  Clear
	ELF_LINK_NON_ELF so that they can stay weak.

2002-01-29  Chris Demetriou  <cgd@broadcom.com>
	    Mitch Lichtenberg  <mpl@broadcom.com>

	* bfd-in.h (bfd_mips_elf32_create_embedded_relocs): New prototype.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): New function
	to handle 32-bit ELF embedded reloc (ld --embedded-relocs)
	generation.
	* bfd-in2.h: Regenerate.

2002-01-29  Chris Demetriou  <cgd@broadcom.com>

	* elf32-mips.c: Add additional comments about HI16 relocation
	processing.
	(_bfd_mips_elf_hi16_reloc): Don't subtract address here for
	pc-relative relocations.  (Reverts change made on 2001-10-31.)
	(_bfd_mips_elf_lo16_reloc): Subtract address of LO16 part here
	for pc-relative relocations.
	(mips_elf_calculate_relocation): Add a comment about a kludge
	in the R_MIPS_GNU_REL_HI16 handling.
	(_bfd_mips_elf_relocate_section): Implement that kludge;
	adjust pc-relative HI16 relocation for difference in HI16 and
	LO16 addresses, since it can't easily be done in
	mips_elf_calculate_relocation.

2002-01-29  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* elf32-i386 (elf_i386_adjust_dynamic_symbol): Do not replace PLT32
	relocations with PC32 relocations for undefined or weak symbols.
	* elf32-s390 (elf_i386_adjust_dynamic_symbol): Likewise.
	* elf64-s390x (elf_i386_adjust_dynamic_symbol): Likewise.

2002-01-28  Jason Thorpe  <thorpej@wasabisystems.com>

	* elfcore.h (elf_core_file_p): Improve comment for last change.

2002-01-27  Daniel Jacobowitz  <drow@mvista.com>

	* configure: Regenerated.

2002-01-27  Jason Thorpe  <thorpej@wasabisystems.com>

	* elfcore.h (elf_core_file_p): Set the machine architecture
	before processing the program headers.

2002-01-26  Hans-Peter Nilsson  <hp@bitrange.com>

	* configure.in <64-bit configuration>: If using gcc, check and
	emit error for egcs-1.1.2.
	* configure: Regenerate.

2002-01-26  Egor Duda  <deo@logos-m.ru>

	* elf.c (elfcore_grok_win32pstatus): Copy only as much information
	as possible to avoid stack corruption.

2002-01-26  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_check_relocs): Don't set reltext
	for non-allocated sections.

2002-01-25  Mark Kettenis  <kettenis@gnu.org>

	* elf.c (elfcore_write_prstatus): Make sure we pass the address of
	prstat.pr_reg even if it is a struct.

2002-01-25  Steve Ellcey <sje@cup.hp.com>

	* elfxx-ia64.c: Reset AIX vector function overrides for HP-UX.

2002-01-25  Philipp Thomas  <pthomas@suse.de>

	* coffgen.c (coff_print_symbol): Don't mark info message
	for translation.

2002-01-25  Nick Clifton <nickc@redhat.com>

	* po/fr.po: Updated translation.
	* po/es.po: Updated translation.

2002-01-25  Philipp Thomas  <pthomas@suse.de>

	* coff-alpha.c (alpha_relocate_section): Unify warning message
	for GP relative relocations without GP defined.
	* coff-mips.c (mips_relocate_section): Likewise.

2002-01-25  Alan Modra  <amodra@bigpond.net.au>

	* elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Avoid
	unsigned overflow when new_offset < old_offset.

2002-01-24  Philipp Thomas  <pthomas@suse.de>

	* bfd.c (_bfd_abort): Fix typo.

2002-01-23  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (elf64_alpha_adjust_dynamic_symbol): Don't suppress
	plt entries for undefweak symbols.

2002-01-23  Steve Ellcey <sje@cup.hp.com>

	* targets.c (bfd_elf32_ia64_hpux_big_vec): Add to DEFAULT_VECTOR.
	(bfd_elf64_ia64_hpux_big_vec): Ditto.
	(bfd_elf32_h8300_vec): Ditto.

2002-01-23  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c: Remove stale part of ABI comment.
	(NO_OPD_RELOCS): Define.
	(ppc64_elf_check_relocs): Use it.
	(ppc64_elf_relocate_section): Here too.
	(build_one_stub): Don't point function syms at the stub.  Instead,
	hijack plt.offset.
	(ppc64_elf_relocate_section): Check whether REL24 relocs should
	really go to the stub.  Make all dynamic relocs in opd against
	locals.
	(ppc64_elf_finish_dynamic_symbol): Allow for non-standard use of
	plt.offset.

2002-01-22  Richard Henderson  <rth@redhat.com>

	* elf64-alpha.c (INSN_UNOP): Encode with RB as $sp.

2002-01-22  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Correct sign of
	TOC_BASE_OFF adjustment.

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.

2002-01-22  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* configure.host (hppa*64*-*-hpux*, hppa*64*-*-linux*): Add new
	host defines.

2002-01-21  Hans-Peter Nilsson  <hp@axis.com>

	* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_GOTREL>:
	Check for and emit error if sgot is NULL at this point.

2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.bfd (ia64*-*-netbsd*): New target.

2002-01-21  Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>

	* som.c (som_write_space_strings): Comment typo fix.

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

	* elf64-ppc.c (struct ppc_link_hash_entry): Add is_func and
	is_func_descriptor fields.
	(link_hash_newfunc): Init them.
	(ppc64_elf_check_relocs): Only R_PPC24_REL24 syms starting with a
	dot are candidates for plt entries.  When processing .opd relocs,
	set function descriptor strings to point inside function code
	string, and set new ppc_link_hash_entry fields.
	(ppc64_elf_gc_sweep_hook): Don't sweep R_PPC64_REL24 relocs.
	(ppc64_elf_adjust_dynamic_symbol): Remove most code dealing with
	function descriptors.  It's now done in..
	(func_desc_adjust): New.
	(ppc64_elf_func_desc_adjust): New.
	(define elf_backend_always_size_sections): Define.
	(ppc64_elf_hide_symbol): New.
	(define elf_backend_hide_symbol): Define.
	(allocate_dynrelocs): Remove code looking up function descriptors
	as that has been done earlier.
	(ppc64_elf_size_dynamic_sections): Use htab shortcut to elf hash
	table.
	(ppc64_elf_finish_dynamic_symbol): Likewise.  Remove code looking
	up function descriptor.
	(build_one_stub): Look up the function code sym.  Check for
	invalid plt offsets.
	(ppc64_elf_relocate_section): Tweak calls to undefined weak syms.
	Convert R_PPC64_TOC relocs to R_PPC64_RELATIVE in shared libs.

	* elf-bfd.h (elf_backend_data <elf_backend_hide_symbol>): Add
	boolean param.
	(_bfd_elf_link_hash_hide_symbol): Likewise.
	* elflink.h (elf_link_add_object_symbols): Adjust call to
	elf_backend_hide_symbol.
	(elf_fix_symbol_flags): Likewise.
	(elf_link_assign_sym_version): Likewise. Use bfd_malloc rather
	than bfd_alloc.
	* elf.c (_bfd_elf_link_hash_hide_symbol): Add "force_local" param.
	Set ELF_LINK_FORCED_LOCAL and call _bfd_elf_strtab_delref.
	* elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
	(clobber_millicode_symbols): Adjust to suit new hide_symbol.
	* elf32-cris.c (elf_cris_hide_symbol): Add "force_local" param
	and adjust to suit.
	* elf32-mips.c (_bfd_mips_elf_hide_symbol): Likewise, and call
	_bfd_elf_link_hash_hide_symbol rather than duplicating code.
	* elfxx-ia64.c (elfNN_ia64_hash_hide_symbol): Likewise.

2002-01-18  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Test for a
	dynamic function descriptor symbol, not the associated function
	symbol.

2002-01-17  Eric Christopher  <echristo@redhat.com>

	* elf32-mips.c (mips_elf_calculate_relocation): Fix typo.

2002-01-17  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/bfd.pot: Regenerate.
	* po/fr.po: Regenerate.

2002-01-17  Alan Modra  <amodra@bigpond.net.au>

	* elf-bfd.h (elf_backend_data <elf_backend_section_from_bfd_section>):
	Remove "Elf_Internal_Shdr *" param.
	(_bfd_mips_elf_section_from_bfd_section): Ditto.
	* elf32-mips.c (_bfd_mips_elf_section_from_bfd_section): Ditto.
	* elf32-m32r.c (_bfd_m32r_elf_section_from_bfd_section): Ditto.
	* elf32-v850.c (v850_elf_section_from_bfd_section): Ditto.
	* elf64-mmix.c (mmix_elf_section_from_bfd_section): Ditto.
	* elfxx-ia64.c (elfNN_hpux_backend_section_from_bfd_section): Ditto.
	* elf.c (_bfd_elf_section_from_bfd_section): Allow backend
	function to override special sections.  Remove hdr arg from
	backend call, and don't loop.

2002-01-16  Eric Christopher  <echristo@redhat.com>

	* elf32-mips.c (mips_elf_calculate_relocation): Set require_jalxp
	on R_MIPS_26 and target is 16bit. Add R_MIPS16_GPREL to list of
	relocations requiring gp0 and gp.

2002-01-16  Richard Earnshaw  <rearnsha@arm.com>

	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Handle
	EF_ARM_VFP_FLOAT.
	(elf32_arm_print_private_bfd_data): Likewise.

2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/tr.po: Import new version.

2002-01-16  Alan Modra  <amodra@bigpond.net.au>

	* elf64-ppc.c (ppc64_elf_howto_raw): Remove stale FIXMEs.
	(ppc64_elf_reloc_type_lookup): Use proper CTOR reloc.
	(ORI_R0_R0_0): Correct.

2002-01-16  Alan Modra  <amodra@bigpond.net.au>

	* elflink.c (_bfd_elf_create_dynamic_sections): Don't set SEC_CODE
	when plt_not_loaded.
	* elf64-ppc.c (ppc64_elf_create_dynamic_sections): No need to
	clear .plt SEC_CODE here.  Create .stub and correct .glink flags.
	(PLT_INITIAL_ENTRY_SIZE): Set to 24.
	(ppc64_elf_glink_code): Delete.
	(PPC64_ELF_GLINK_SIZE): Delete.
	(ADDIS_R12_R2, STD_R2_40R1, LD_R11_0R12, LD_R2_0R12, MTCTR_R11,
	BCTR, ADDIS_R12_R12_1, LD_R2_40R1, NOP, LI_R0_0, B_DOT, LIS_R0_0,
	ORI_R0_R0_0): Define.
	(PLT_CALL_STUB_SIZE, GLINK_CALL_STUB_SIZE): Define.
	(struct ppc_link_hash_table): Add sstub and plt_overflow.
	(ppc64_elf_link_hash_table_create): Init them.
	(ppc64_elf_check_relocs <R_PPC64_REL24>): Refcount .plt entry.
	Don't copy to shared lib.
	(ppc64_elf_check_relocs): Call bfd_set_error on errors.
	(ppc64_elf_gc_sweep_hook <R_PPC64_REL24>): Sweep plt refcount.
	(allocate_dynrelocs <plt>): Don't change function sym here.  Make
	room for .stub and .glink code.
	(ppc64_elf_size_dynamic_sections): Handle .stub.  Make entry for
	DT_PPC64_GLINK.
	(ppc64_elf_final_link): Rename to ppc64_elf_set_toc.  Don't call
	bfd_elf64_bfd_final_link.
	(bfd_elf64_bfd_final_link): Don't define.
	(ppc64_elf_size_stubs): New.
	(build_plt_stub): New.
	(build_one_stub): New.
	(ppc64_elf_build_stubs): New.
	(ppc64_elf_relocate_section <toc relocs>): Remove assert.
	(ppc64_elf_relocate_section): Don't copy R_PPC64_REL24 relocs.
	(ppc64_elf_finish_dynamic_symbol): Don't build stubs here.  Set
	DT_PPC64_GLINK entry.  Tweak DT_PLTGOT, DT_JMPREL, DT_PLTRELSZ in
	case output sections not separate.  Adjust DT_RELASZ to not
	include plt relocs.  Set reserved got entry.  Set got and plt
	entry size.
	(elf_backend_got_header_size): Set to 8.
	* elf64-ppc.h: New file.

2002-01-16  Alan Modra  <amodra@bigpond.net.au>

	* elf32-arm.h (elf32_arm_size_dynamic_sections): When removing
	sections, use bfd_section_list_remove.
	* elf32-i370.c (i370_elf_size_dynamic_sections): Likewise.
	* elflink.h (elf_link_add_object_symbols): When removing all
	sections, use bfd_section_list_clear.

2002-01-15  Nick Clifton  <nickc@cambridge.redhat.com>

	* po/sv.po: New file: Swedish translation.
	* configure.in (ALL_LINGUAS): Add sv.
	* configure: Regenerate.

2002-01-15  Jakub Jelinek  <jakub@redhat.com>

	* elflink.h (elf_link_input_bfd): Back out 2002-01-07 change.
	* elf.c (merge_sections_remove_hook): New function.
	(_bfd_elf_merge_sections): Pass it as 3rd argument to
	_bfd_merge_sections.
	* libbfd-in.h (_bfd_merge_sections): Add 3rd argument.
	* libbfd.h: Rebuilt.
	* merge.c (_bfd_merge_sections): Add remove_hook argument.
	Call remove_hook if a SEC_EXCLUDE section is encountered.

2002-01-15  Nick Clifton  <nickc@cambridge.redhat.com>

	* elf32-xstormy16.c (xstormy16_reloc_map): Add new field 'table'.
	(xstormy16_reloc_map): Initialise new field with correct howto
	table.
	(xstormy16_reloc_type_lookup): Use 'table' field to locate correct
	howto entry.

2002-01-10  Michael Snyder  <msnyder@redhat.com>

	* elf.c (elfcore_write_prstatus): Use long instead of pid_t;
	(elfcore_write_pstatus): Use long instead of pid_t;
	* elf-bfd.h: Change prototypes to use long instead of pid_t;

2002-01-09  Jason Thorpe  <thorpej@wasabisystems.com>

	* elf.c: Update copyright years.
	(elfcore_grok_netbsd_note): Use NT_NETBSDCORE_PROCINFO
	and NT_NETBSDCORE_FIRSTMACH.  Improve a comment.

2002-01-08  Michael Snyder  <msnyder@redhat.com>

	Add capability to write corefile note sections, for gdb.
	* elf.c (elfcore_write_note): New function.
	(elfcore_write_prpsinfo): New function.
	(elfcore_write_prstatus): New function.
	(elfcore_write_pstatus): New function.
	(elfcore_write_prfpreg): New function.
	(elfcore_write_prxfpreg): New function.
	* elf-bfd.h: Add prototypes for above functions.

2002-01-08  Alexandre Oliva  <aoliva@redhat.com>

	* elf.c (elf_fake_sections): Propagate errors from
	elf_backend_fake_section.

2002-01-07  Jason Thorpe  <thorpej@wasabisystems.com>

	* Makefile.am (BFD32_BACKENDS): Add elf32-sh-nbsd.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-sh-nbsd.c.
	(elf32-sh-nbsd.lo): New rule.
	* Makefile.in: Regenerate.
	* config.bfd (sh*le-*-netbsdelf*): New target.
	(sh*-*-netbsdelf*): New target.
	* configure.in: Include netbsd-core.lo for native sh*-*-netbsd*.
	(bfd_elf32_shnbsd_vec): New vector.
	(bfd_elf32_shlnbsd_vec): New vector.
	* configure: Regenerate.
	* elf32-sh-nbsd.c: New file.
	* targets.c: Update copyright years.
	(_bfd_target_vector): Add bfd_elf32_shlnbsd_vec and
	bfd_elf32_shnbsd_vec.

2002-01-07  Aldy Hernandez  <aldyh@redhat.com>

	* coff-rs6000.c (READ20): Use bfd_scan_vma.

2002-01-07  Geoffrey Keating  <geoffk@redhat.com>

	* elflink.h (elf_link_input_bfd): Don't ask for the merged offset
	of a symbol in a section that will be deleted.

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

	* po/es.po: New file: Spanish translation.
	* configure.in (ALL_LINGUAS): Add es.
	* configure: Regenerate.

2002-01-06  Steve Ellcey  <sje@cup.hp.com>

	* elfxx-ia64.c (is_unwind_section_name): Add target vector as
	argument so we can handle HP-UX specially.
	(elfNN_ia64_hpux_vec): New for use in is_unwind_section_name.
	(elfNN_hpux_backend_section_from_bfd_section): New for support
	of SHN_IA_64_ANSI_COMMON.
	(elfNN_ia64_relax_section): Add support for SHN_IA_64_ANSI_COMMON.
	(is_unwind_section_name): Add special HP-UX support.
	(elfNN_ia64_section_from_shdr): Add support for more sections.
	(elfNN_ia64_fake_sections): Modify is_unwind_section_name call and
	add support for more sections.
	(elfNN_ia64_additional_program_headers): Modify
	is_unwind_section_name call.
	(elfNN_ia64_modify_segment_map): Remove assumption that there is
	only one unwind section in segment.

2002-01-06  Alan Modra  <amodra@bigpond.net.au>

	* syms.c (_bfd_generic_make_empty_symbol): New function.
	* libbfd-in.h (_bfd_nosymbols_make_empty_symbol): Define as
	_bfd_generic_make_empty_symbol.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
	* hppabsd-core.c (hppabsd_core_make_empty_symbol): Delete function.
	(hppabsd_core_get_symtab_upper_bound): Don't define.
	(hppabsd_core_get_symtab): Likewise.
	(hppabsd_core_print_symbol): Likewise.
	(hppabsd_core_get_symbol_info): Likewise.
	(hppabsd_core_bfd_is_local_label_name): Likewise.
	(hppabsd_core_get_lineno): Likewise.
	(hppabsd_core_find_nearest_line): Likewise.
	(hppabsd_core_bfd_make_debug_symbol): Likewise.
	(hppabsd_core_read_minisymbols): Likewise.
	(hppabsd_core_minisymbol_to_symbol): Likewise.
	(hppabsd_core_vec): Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols).
	Formatting fixes.
	* hpux-core.c: Similarly.
	* irix-core.c: Similarly.
	* osf-core.c: Similarly.
	* sco5-core.c: Similarly.
	* binary.c (binary_make_empty_symbol): Remove function, define as
	_bfd_generic_make_empty_symbol.
	* ihex.c (ihex_make_empty_symbol): Likewise.
	* mmo.c (mmo_make_empty_symbol): Likewise.
	* ppcboot.c (ppcboot_make_empty_symbol): Likewise.
	* srec.c (srec_make_empty_symbol): Likewise.
	* versados.c (versados_make_empty_symbol): Likewise.
	* vms.c (_bfd_vms_make_empty_symbol): Remove.
	(vms_make_empty_symbol): Define as _bfd_generic_make_empty_symbol.
	* vms-gsd.c (_bfd_vms_slurp_gsd): Call bfd_make_empty_symbol
	rather than _bfd_vms_make_empty_symbol.
	* vms-misc.c (new_symbol): Likewise.

2002-01-05  Alan Modra  <amodra@bigpond.net.au>

	* section.c (bfd_section_init): Remove unnecessary initialisations.
	(bfd_section_list_clear): New function.
	(bfd_section_list_remove, bfd_section_list_insert): New macros.
	(_bfd_strip_section_from_output): Use them.
	* coffcode.h (coff_set_alignment_hook): Likewise.
	* elf32-mips.c (_bfd_mips_elf_final_link): Likewise.
	* elf64-mips.c (mips_elf64_final_link): Likewise.
	* elf64-mmix.c (mmix_elf_final_link): Likewise.
	* sunos.c (sunos_add_dynamic_symbols): Likewise.
	* xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise.
	* bfd-in2.h: Regenerate.

	* netbsd-core.c (netbsd_core_file_p): Use bfd_make_section_anyway
	rather than doing our own section handling.  Clean up after errors
	with bfd_release and bfd_section_list_clear.  Handle unexpected
	flags.
	* aoutf1.h (sunos4_core_file_p): Likewise.
	* aix386-core.c (aix386_core_file_p): Likewise.
	* cisco-core.c (cisco_core_file_validate): Likewise.
	* ptrace-core.c (ptrace_unix_core_file_p): Likewise.
	* trad-core.c (trad_unix_core_file_p): Likewise.

	* hppabsd-core.c (hppabsd_core_core_file_p):  Clean up after errors
	with bfd_release and bfd_section_list_clear.
	* hpux-core.c (hpux_core_core_file_p): Likewise.
	* irix-core.c (irix_core_core_file_p): Likewise.
	* lynx-core.c (lynx_core_file_p): Likewise.
	* osf-core.c (osf_core_core_file_p): Likewise.
	* rs6000-core.c (rs6000coff_core_p): Likewise.
	* sco5-core.c (sco5_core_file_p): Likewise.

	* elf32-mips.c (_bfd_mips_elf_lo16_reloc): Simplify, and perform
	sign extension adjustments without conditionals.

2002-01-04  Jakub Jelinek  <jakub@redhat.com>

	* elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Don't crash if
	CIE at .eh_frame start is removed due to no FDEs referencing it.

2002-01-04  Jason Thorpe  <thorpej@wasabisystems.com>

	* config.bfd (x86_64-*-netbsd*): New target.
	* configure.in (x86_64-*-netbsd*): Set COREFILE
	to netbsd-core.lo.
	* configure: Regenerated.

2002-01-03  Tom Rix  <trix@redhat.com>

	* xcofflink.c (_bfd_xcoff_bfd_final_link): Update .pad section ordering
	for recent bfd_make_section_anyway change.

2002-01-03  Nick Clifton  <nickc@cambridge.redhat.com>

	* elf32-arm.h (elf32_arm_final_link_relocate): Handle
	R_ARM_THM_PC11 reloc.

2002-01-02  Nick Clifton  <nickc@cambridge.redhat.com>

	* configure.in (LINGUAS): Add ja.
	* configure: Regenerate.
	* po/ja.po: Import from translation project's web site.

2002-01-02  Nick Clifton  <nickc@cambridge.redhat.com>

	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Reformat error
	messages to ease translation into other languages.

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