1999-07-20  Nick Clifton  <nickc@cygnus.com>

	* coff-m88k.c: Use CREATE_BIG_COFF_TARGET_VEC.

Mon Jul 19 14:03:44 1999  Mark P. Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (_bfd_mips_elf_final_link): Restore setting of GP
 	removed in previous change.
	(_bfd_mips_elf_relocate_section): Adjust GP relative relocations
 	in relocateable output.

1999-07-19  Ian Lance Taylor  <ian@zembu.com>

	* coff-m88k.c (m88kbcs_vec): Initialize new field of bfd_target
	structure.

	* elflink.h (elf_merge_symbol): Do merge symbols from the same BFD
	if they appear to be specially created by the linker.

1999-07-19  Nick Clifton  <nickc@cygnus.com>

	* targets.c (alternative_target): New field in bfd_target
	structure.
	(bfd_search_for_target): New function:  Find a target that
	satisifies a search function.
	* bfd-in2.h: Regenerate.

	* elfxx-target.h: Initialise the alternative_target field of
	the bfd_target structures to point to the other target (if
	defined).
	* nlm-target.h: Initialise the alternative_target field of
	the bfd_target structures to point to the other target (if
	defined).
	
	* coffcode.h (CREATE_BIG_COFF_TARGET_VEC): New macro.
	(CREATE_LITTLE_COFF_TARGET_VEC): New macro.
	
	* aix386-core.c: Initialise new field of bfd_target structure. 
	* aout-adobe.c: Initialise new field of bfd_target structure. 
	* aout-arm.c: Initialise new field of bfd_target structure. 
	* aout-target.h: Initialise new field of bfd_target structure. 
	* aout-tic30.c: Initialise new field of bfd_target structure. 
	* binary.c: Initialise new field of bfd_target structure. 
	* bout.c: Initialise new field of bfd_target structure. 
	* cisco-core.c: Initialise new field of bfd_target structure. 
	* coff-a29k.c: Use CREATE_BIG_COFF_TARGET_VEC.
	* coff-alpha.c: Initialise new field of bfd_target structure. 
	* coff-apollo.c: Use CREATE_BIG_COFF_TARGET_VEC.
	* coff-arm.c: Use CREATE_{BIG|LITTLE}_COFF_TARGET_VEC.
	* coff-h8300.c: Use CREATE_BIG_COFF_TARGET_VEC.
	* coff-h8500.c: Use CREATE_BIG_COFF_TARGET_VEC.
	* coff-i386.c: Initialise new field of bfd_target structure. 
	* coff-i860.c: Initialise new field of bfd_target structure. 
	* coff-i960.c: Use CREATE_LITTLE_COFF_TARGET_VEC.
	* coff-m68k.c: Use CREATE_BIG_COFF_TARGET_VEC.
	* coff-mcore.c: Use CREATE_{BIG|LITTLE}_COFF_TARGET_VEC.
	* coff-mips.c: Initialise new field of bfd_target structure. 
	* coff-ppc.c: Initialise new field of bfd_target structure. 
	* coff-rs6000.c: Initialise new field of bfd_target structure. 
	* coff-sh.c:  Use CREATE_{BIG|LITTLE}_COFF_TARGET_VEC.
	* coff-sparc.c: Use CREATE_BIG_COFF_TARGET_VEC.
	* coff-tic30.c: Initialise new field of bfd_target structure. 
	* coff-tic80.c: Use CREATE_LITTLE_COFF_TARGET_VEC.
	* coff-w65.c:   Use CREATE_LITTLE_COFF_TARGET_VEC.
	* coff-we32k.c: Use CREATE_BIG_COFF_TARGET_VEC.
	* coff-z8k.c:   Use CREATE_BIG_COFF_TARGET_VEC.
	* hppabsd-core.c: Initialise new field of bfd_target structure. 
	* hpux-core.c: Initialise new field of bfd_target structure. 
	* i386msdos.c: Initialise new field of bfd_target structure. 
	* i386os9k.c: Initialise new field of bfd_target structure. 
	* ieee.c: Initialise new field of bfd_target structure. 
	* ihex.c: Initialise new field of bfd_target structure. 
	* irix-core.c: Initialise new field of bfd_target structure. 
	* mipsbsd.c: Initialise new field of bfd_target structure. 
	* netbsd-core.c: Initialise new field of bfd_target structure. 
	* oasys.c: Initialise new field of bfd_target structure. 
	* osf-core.c: Initialise new field of bfd_target structure. 
	* ppcboot.c: Initialise new field of bfd_target structure. 
	* ptrace-core.c: Initialise new field of bfd_target structure. 
	* sco5-core.c: Initialise new field of bfd_target structure. 
	* som.c: Initialise new field of bfd_target structure. 
	* srec.c: Initialise new field of bfd_target structure. 
	* tekhex.c: Initialise new field of bfd_target structure. 
	* trad-core.c: Initialise new field of bfd_target structure. 
	* versados.c: Initialise new field of bfd_target structure. 
	* vms.c: Initialise new field of bfd_target structure. 

1999-07-19  Andreas Schwab  <schwab@suse.de>

	* elflink.h (elf_bfd_final_link): Remove unused variables rel_hash
	and rel_hdr.

Sat Jul 17 02:28:28 1999  Mark P. Mitchell  <mark@codesourcery.com>

	* elflink.h (elf_link_adjust_relocs): New function.
	(elf_bfd_final_link): Use it.
	(elf_link_input_bfd): Deal with the fact that there can be 
	two relocation sections for a single section.
	(elf_reloc_link_order): Likewise.

	* elf32-mips.c (_bfd_mips_elf_final_link): Don't set GP for 
	a relocateable object.
	(_bfd_mips_elf_relocate_section): Handle relocateable links.

1999-07-16  Jakub Jelinek  <jj@ultra.linux.cz>

	* elf64-sparc.c (sparc64_elf_info_to_howto): Use ELF64_R_TYPE_ID.
	(sparc64_elf_get_reloc_upper_bound,
	sparc64_elf_get_dynamic_reloc_upper_bound,
	sparc64_elf_slurp_one_reloc_table, sparc64_elf_slurp_reloc_table,
	sparc64_elf_canonicalize_dynamic_reloc, sparc64_elf_write_relocs):
	New functions.
	(sparc64_elf_check_relocs, sparc64_elf_relocate_section): Use
	ELF64_R_TYPE_ID/DATA where appropriate.

1999-07-16  Jakub Jelinek  <jj@ultra.linux.cz>

	* elf64-sparc.c (sparc64_elf_size_dynamic_sections): Remove
	DT_SPARC_PLTFMT.

1999-07-16  Ian Lance Taylor  <ian@zembu.com>

	* elf32-mips.c (mips_elf_local_relocation_p): New static
	function.
	(mips_elf_next_lo16_addend): Call bfd_set_error on failure.
	(mips_elf_calculate_relocation): Use mips_elf_local_relocation_p.
	Always set *require_jalxp.
	(mips_elf_stub_section_p): Mark abfd parameter as unused.
	(_bfd_mips_elf_relocate_section): Only look for LO16 following
	GOT16 if the GOT16 is against a local symbol.  Don't return false
	for an undefined symbol.  If there is an overflow, assert that we
	have a name.

1999-07-16  Andreas Schwab  <schwab@suse.de>

	* elflink.h (elf_link_record_local_dynamic_symbol): Remove unused
	variables `link' and `elfsec'.
	(elf_bfd_final_link): Remove unused variable `os'.

Thu Jul 15 17:55:31 1999  Mark P. Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (_bfd_mips_elf_modify_segment_map): Don't require
	a PT_PHDR program headers.
	(_bfd_mips_elf_final_link): Don't assume there are going to be
	section symbols when we're not building a shared object.
	(_bfd_mips_elf_check_relocs): Make sure we have a GOT when
	we need one.

1999-07-15  J.T. Conklin  <jtc@redback.com>

	* config.bfd (i[3456]86-*-vxworks*): New target.

1999-07-15  Mark Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (mips_elf_stub_section_p): New function.
	(mips_elf_calculate_relocation): Handle MIPS16 stub functions.
	(mips_elf_relocate_section): Adjust calling sequence for
	mips_elf_calculate_relocation and mips_elf_perform_relocation.
	(mips_elf_perform_relocation): Turn `jal' into `jalx' where
	required.

1999-07-15  Ian Lance Taylor  <ian@zembu.com>

	* configure.in: Bump version number to 2.9.5.
	* configure: Rebuild.

Thu Jul 15 02:56:15 1999  Jeffrey A Law  (law@cygnus.com)

	* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type, case R_HPPA): Handle
	64bit format.
	(_bfd_elf_hppa_gen_reloc_type, case R_GOTOFF): Use base reloc type
	to derive final type instead of hardwiring a selection.

1999-07-14  Mark Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (mips_elf_obtain_contents): Swap 16-bit halves of
	things relocated by R_MIPS16_GPREL.
	(mips_elf_perform_relocation): Likewise.

Wed Jul 14 15:23:19 1999  Jim Wilson  <wilson@cygnus.com>

	* elfxx-target.h (elfNN_bed): Add elf_backend_want_dynbss.

1999-07-14  Richard Henderson  <rth@cygnus.com>

	* elf32-mips.c (struct mips_got_info): Add global_gotno.
	(_bfd_mips_elf_size_dynamic_sections): Set it.
	(_bfd_mips_elf_final_link): Re-sort; verify the got did not grow.
	(mips_elf_sort_hash_table): Set max_non_got_dynindex based off
	new argument max_local.

1999-07-14  Mark Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (mips_elf_obtain_contents): Swap the 16-bit
	subwords when handling an R_MIPS16_26 relocation.
	(mips_elf_perform_relocation): Don't be paranoid abour right-shift
	semantics.
	
	* elf32-mips.c (elf_mips16_gprel_howto): Adjust src_mask and
	dst_mask to match reality.
	(_bfd_mips_elf_calculate_relocation): Handle R_MIPS16_GPREL.
	(mips_elf_obtain_contents): Use bfd_get.
	(mips_elf_perform_relocation): Handle R_MIPS16_GPREL.
	(mips_elf_relocate_section): Likewise.

1999-07-13  Mark Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (mips_elf_calculate_relocation): Handle R_MIPS16_26.
	(mips_elf_relocate_section): Adjust calling sequence for 
	mips_elf_perform_relocation.
	(mips_elf_perform_relocation): Take additional argument.  Handle
	R_MIPS16_26.  Use bfd_put for convenience.

1999-07-13  Richard Henderson  <rth@cygnus.com>

	* elf.c (assign_file_positions_for_segments): Thinko last change.
	Always overwrite p_flags.

1999-07-13  Richard Henderson  <rth@cygnus.com>

	* elf-bfd.h (struct elf_backend_data): Add want_dynbss.
	* elflink.c (_bfd_elf_create_dynamic_sections): Only create
	.dynbss and .rel[a].bss if want_dynbss.
	* elfxx-target.h (elf_backend_want_dynbss): Provide default.

1999-07-13  Richard Henderson  <rth@cygnus.com>

	* elf.c (assign_file_positions_for_segments): Don't overwrite p_flags.

1999-07-13  Richard Henderson  <rth@cygnus.com>

	* elf-bfd.h (struct elf_link_local_dynamic_entry): New.
	(struct elf_link_hash_table): Add dynlocal.
	(_bfd_elf_link_lookup_local_dynindx): Prototype.
	(_bfd_elf_link_adjust_dynindx): Delete.
	(_bfd_elf_link_renumber_dynsyms): Prototype.
	(_bfd_elf,link_record_local_dynamic_symbol): Prototype.
	* elfcode.h (elf_link_record_local_dynamic_symbol): New alias.
	* elflink.c (_bfd_elf_link_adjust_dynindx): Delete.
	(_bfd_elf_link_lookup_local_dynindx): New function.
	(elf_link_renumber_hash_table_dynsyms): New function.
	(_bfd_elf_link_renumber_dynsyms): New function.
	* elflink.h (elf_link_record_local_dynamic_symbol): New function.
	(struct elf_assign_sym_version_info): Delete removed_dynamic.
	(bfd_elf,size_dynamic_sections): Use _bfd_strip_section_from_output
	instead of elf_link_remove_section_and_adjust_dynindices.
	Remove removed_dynamic code.  Use _bfd_elf_link_renumber_dynsyms.
	(elf_link_assign_sym_version): Remove removed_dynamic code.
	(elf_link_renumber_dynsyms): Delete.
	(elf_bfd_final_link): Install section and local symbols into .dynsym.

	* elf32-m68k.c (elf_m68k_adjust_dynindx): Delete.
	(elf_m68k_size_dynamic_sections): Don't set section dynindicies.
	(elf_m68k_finish_dynamic_sections): Don't write section dynsyms.
	* elf32-mips.c: Similarly.
	* elf32-ppc.c: Similarly.
	* elf32-sparc.c: Similarly.
	* elf64-alpha.c: Similarly.
	* elf64-sparc.c: Similarly.

1999-07-13  Mark Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (mips_elf_calculate_relocation): Do not complain
	when _gp_disp is undefined.  Do not check R_MIPS_LO16 for overflow
	when the relocation is against _gp_disp.

1999-07-12  Mark Mitchell  <mark@codesourcery.com>

	* dwarf2.c (read_attribute): Support DW_FORM_ref8.
	* elf32-mips.c (mips_elf_link_hash_entry): Change mips_32_relocs
	to possibly_dynamic_relocs.  Adjust usage throughout code.
	(elf_mips_howto_table): Handle R_MIPS_64 correctly.
	(elf_mips_ctor64_howto): Likewise.
	(mips_elf_calculate_relocation): Handle R_MIPS_64 like R_MIPS_32.
	Adjust indentation.
	(mips_elf_relocate_section): Handle R_MIPS_64 in 32-bit mode.
	(_bfd_mips_elf_check_relocs): Handle R_MIPS_64 like R_MIPS_32.
	Use MIPS_ELF_GOT_SIZE to calculate the size of GOT entries.
	* elf64-mips.c (elf_backend_may_use_rel_p): Define.

1999-07-12  Ian Lance Taylor  <ian@zembu.com>

	* Makefile.am: Rebuild dependencies.
	* Makefile.in: Rebuild.

	* bfd-in.h: Remove tests of COFF_IMAGE_WITH_PE.
	* bfd-in2.h: Rebuild.

	* Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSED
	as appropriate.  Use EMPTY_HOWTO as appropriate.  Fill in
	structure initializations.  Add casts.
	* reloc.c (EMPTY_HOWTO): Define.
	* bfd-in2.h: Rebuild.
	* coff-h8300.c (h8300_reloc16_extra_cases): Remove useless
	comparisons against 0.
	* elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Change
	previous_ibfd_e_flags to unsigned long.
	* vms.h (struct vms_private_data_struct): Change section_count to
	unsigned.
	* vms-gsd.c (_bfd_vms_slurp_gsd): Change psect_idx to unsigned.
	(_bfd_vms_write_gsd): Change symnum to unsigned.
	* vms-hdr.c (_bfd_vms_write_hdr): Change symnum to unsigned.
	* vms-tir.c (etir_sta): Change psect to unsigned.
	(alloc_section): Change idx to unsigned.
	(tir_sta, tir_ctl): Change psect to unsigned.
	(_bfd_vms_write_tir): Change len and before to bfd_size_type.
	* vms.c (priv_section_count): Change to unsigned.

1999-07-12  Andreas Schwab  <schwab@suse.de>

	* elf32-m68k.c: Add some ATTRIBUTE_UNUSED.
	* m68klinux.c: Likewise.

1999-07-12  Ian Lance Taylor  <ian@zembu.com>

	* Many files: Changes to avoid gcc warnings: Remove unused local
	variables.  Add default case to enum switches.
	* coff-arm.c (bfd_arm_allocate_interworking_sections): Only
	compile if not COFF_IMAGE_WITH_PE.
	(record_arm_to_thumb_glue, record_thumb_to_arm_glue): Likewise.
	(bfd_arm_get_bfd_for_interworking): Likewise.
	(bfd_arm_process_before_allocation): Likewise.
	* epoc-pei-arm.c: Don't rename bfd_arm functions.
	* pei-arm.c: Likewise.
	* elf32-mips.c (mips_elf_link_hash_table_create): Don't declare.
	(MIPS_ELF_ADD_DYNAMIC_ENTRY): Correct last change.
	(mips_elf_got16_entry): Put parens around & in body of ==.
	(mips_elf_calculate_relocation): Correct test for empty string.
	* vms-gsd.c: Use _bfd_error_handler rather than fprintf to
	stderr.
	* vms-misc.c (_bfd_vms_length_hash_symbol): Correct sprintf
	format.

1999-07-11  Ian Lance Taylor  <ian@zembu.com>

	* Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSED
	as appropriate.  Fill in structure initializations.  Add variable
	initializations.  Add casts.
	* dwarf1.c (parse_line_table): Change eachLine to unsigned long.
	(dwarf1_unit_find_nearest_line): Change i to unsigned long.

	* elf.c (bfd_elf_hash): Change parameter from unsigned char * to
	char *.
	* elf-bfd.h (bfd_elf_hash): Update declaration.
	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Remove casts
	when calling bfd_elf_hash.

1999-07-11  Mark Mitchell  <mark@codesourcery.com>

	* libbfd.c (bfd_put_8): Make it of type `void'.
	* bfd-in2.h: Regenerated.
	* elf32-mips.c (MIPS_ELF_ADD_DYNAMIC_ENTRY): Conditionalize
	for 32-bit hosts.
	(_bfd_mips_elf_final_link): Likewise.

	* elflink.h (elf_link_read_relocs_from_section): Be type-correct.

Thu Jul  8 12:32:23 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>

	* config.bfd (hppa*-*-linux-gnu*): New target

1999-07-07  Mark Mitchell  <mark@codesourcery.com>

	* elf-bfd.h (_bfd_mips_elf_section_from_shdr): Constify.
	(_bfd_mips_elf_create_dynamic_sections): New function.
	(_bfd_mips_elf_add_symbol_hook): Likewise.
	(_bfd_mips_elf_adjust_dynamic_symbol): Likewise.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise.	
	(_bfd_mips_elf_finish_dynamic_sections): Likewise.
	(_bfd_mips_elf_gc_mark_hook): Likewise.
	(_bfd_mips_elf_gc_sweep_hook): Likewise.
	(_bfd_mips_elf_always_size_sections): Likewise.
	(_bfd_mips_elf_size_dynamic_sections): Likewise.
	(_bfd_mips_elf_check_relocs): Likewise.
	(_bfd_mips_elf_link_hash_table_create): Likewise.
	(_bfd_mips_elf_print_private_data): Likewise.
	(_bfd_mips_elf_link_output_symbol_hook): Likewise.
	(_bfd_mips_elf_final_link): Likewise.
	(_bfd_mips_elf_additional_program_headers): Likewise.
	(_bfd_mips_elf_modify_segment_map): Likewise.
	(_bfd_mips_elf_relocate_section): Likewise.
	* elf32-mips.c (mips_elf32_object_p): Move contents into
	_bfd_mips_elf_object_p.
	(mips_elf_additional_program_headers): Rename to
	_bfd_mips_elf_additional_program_headers.
	(mips_elf_modify_segment_map): Rename to
	_bfd_mips_elf_modify_segment_map.
	(elf_mips_abi_name): Change prototype.
	(mips_elf32_section_from_shdr): Merge into
	_bfd_mips_elf_section_from_shdr.
	(mips_elf32_section_processing): Merge into
	_bfd_mips_elf_section_processing.
	(mips_elf_final_link): Rename to _bfd_mips_elf_final_link.  Invoke
	the right back-end ELF linker.
	(mips_elf_relocate_section): Rename to
	_bfd_mips_elf_relocate_section.  Clean up.  Adjust for 64-bit code.
	(mips_elf_link_output_symbol_hook): Rename to
	_bfd_mips_elf_link_output_symbol_hook.
	(mips_elf_create_dynamic_section): Rename to
	_bfd_mips_elf_create_dynamic_section.
	(mips_elf_check_relocs): Rename to _bfd_mips_elf_check_relocs.
	Adjust for 64-bit code.  Use mips_elf_got_section.
	(mips_elf_adjust_dynamic_symbol): Rename to
	_bfd_mips_elf_adjust_dynamic_symbol.  Use
	mips_elf_allocate_dynamic_relocations.
	(mips_elf_finish_dynamic_symbol): Rename to
	_bfd_mips_elf_finish_dynamic_symbol.  Use mips_elf_got_section.
	Adjust for 64-bit code.
	(mips_elf_finish_dynamic_sections): Rename to
	_bfd_mips_elf_finish_dynamic_sections.  Adjust for 64-bit code.
	(mips_elf_always_size_sections): Rename to
	_bfd_mips_elf_always_size_sections.
	(mips_elf_add_symbol_hook): Rename to
	_bfd_mips_elf_add_symbol_hook.
	(mips_elf_next_lo16_addend): Constify.
	(mips_elf_calculate_relocation): Likewise.
	(mips_elf_obtain_contents): Likewise.
	(mips_elf_perform_relocation): Likewise.
	(mips_elf_create_dynamic_relocation): Likewise.
	(mips_elf_allocate_dynamic_relocations): New function.
	(MIPS_ELF_REL_DYN_SECTION_NAME): New macro.
	(MIPS_ELF_REL_SIZE): Likewise.
	(MIPS_ELF_DYN_SIZE): Likewise.
	(MIPS_ELF_GOT_SIZE): Likewise.
	(MIPS_ELF_SYM_SIZE): Likewise.
	(MIPS_ELF_LOG_FILE_ALIGN): Likewise.
	(MIPS_ELF_GET_WORD): Likewise.
	(MIPS_ELF_PUT_WORD): Likewise.
	(MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise.
	(STUB_LW): Conditionalize for 64-bit value.
	(elf_mips_howto_table): Add R_MIPS_HIGHER and R_MIPS_HIGHEST
	entries.
	(_bfd_mips_elf_merge_private_bfd_data): Merge e_ident[EI_CLASS].
	Check it for inconsistency.
	(_bfd_mips_elf_print_private_bfd_data): Print ABI=64 for 64-bit
	ABI.
	(_bfd_mips_elf_fake_sections): Remove duplicate handling of
	.msym. 
	(mips_elf_global_got_index): Use MIPS_ELF_GOT_SIZE.
	(mips_elf_got_offset_from_index): Use misp_elf_got_section.
	(mips_elf_create_local_got_entry): Use MIPS_ELF_GOT_SIZE.
	(mips_elf_local_got_index): Likewise.
	(mips_elf_got_page): Likewise.
	(mips_elf_got_info): Likewise.
	(mips_elf_create_dynamic_relocation): Handle 32-bit/64-bit split.
	(ELF_DYNAMIC_INTERPRETER): Handle 64-bit code.
	(mips_elf_create_dynamic_sections): Use MIPS_ELF_LOG_FILE_ALIGN,
	instead of constant `2'.
	(mips_elf_create_got_section): Tidy.  Use MIPS_ELF_GOT_SIZE.
	(mips_elf_create_msym_section): Use MIPS_ELF_LOG_FILE_ALIGN.
	(mips_elf_size_dynamic_sections): Use
	MIPS_ELF_REL_DYN_SECTION_NAME, MIPS_ELF_GOT_SIZE,
	MIPS_ELF_ADD_DYNAMIC_ENTRY.  Remove #if 0'd code.
	Adjust all releveant entries in elf backend table.
	* elf64-mips.c (mips_elf64_section_from_shdr): Remove.
	(mips_elf64_section_processing): Likewise.
	Adjust elf backend entries to use _bfd_mips_elf variants now
	publicly available.
	
	* elflink.h (elf_link_create_dynamic_sections): Handle non-standard
	hash-entry sizes.
	(size_dynamic_sections): Likewise.
	(elf_link_output_extsym): Likewise.
	* elf.c: (elf_fake_sections): Likewise.
	* libbfd.c (bfd_get): New macro.
	(bfd_put): Likewise.
	* bfd-in2.h: Regenerated.

1999-07-07  Mark Mitchell  <mark@codesourcery.com>

	* elf-bfd.h (elf_size_info): Add hash_entry_size,
	int_rels_per_ext_rel, swap_dyn_out, swap_reloc_in, swap_reloc_out,
	wap_reloca_in, and swap_reloca_out. 
	* elflink.h (elf_link_read_relocs_from_section): Adjust to handle
	multiple internal relocations per external relocation.
	(link_read_relocs): Likewise.
	(elf_bfd_final_link): Likewise.
	(elf_link_input_bfd): Likewise.
	(elf_gc_mark): Likewise.
	(elf_gc_smash_unused_vtentry_relocs): Likewise.
	* elfcode.h (elf_swap_dyn_out): Adjust type to match
	elf_swap_dyn_in.
	(size_info): Add entries for new fields.
	* elf64-mips.c (mips_elf64_swap_reloc_out): Enable.
	(mips_elf64_be_swap_reloc_in): New function.
	(mips_elf64_be_swap_reloc_out): Likewise.
	(mips_elf64_be_swap_reloca_in): Likewise.
	(mips_elf64_be_swap_reloca_out): Likewise.
	(mips_elf64_size_info): Add entries for new fields.
	
1999-07-07  Ian Lance Taylor  <ian@zembu.com>

	* elflink.h (elf_bfd_final_link): Assert that section reloc_count
	field equals the new rel_count field.
	(elf_link_input_bfd): When doing a relocateable link, use the new
	rel_count field rather than the reloc_count field.
	(elf_reloc_link_order): Likewise.
	(elf_finish_pointer_linker_section): Likewise.

	Based on patch from H.J. Lu <hjl@gnu.org>:
	* elflink.h (elf_merge_symbol): Permit a non-weak definition in a
	shared library to override a weak definition in a regular object.

Tue Jul  6 10:23:39 1999  Jeffrey A Law  (law@cygnus.com)

        * libhppa.h: Revert July 2, 1999 patch.

	* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): T mode selectors
	need to generate DLTIND relocations, not DLTREL relocations.

1999-07-05  Nick Clifton  <nickc@cygnus.com>

	* coffcode.h (coff_set_arch_mach_hook): Recognise arm 5
	architectures. 
	(coff_set_flags): Recognise arm 5 architectures.

	* cpu-arm.c: Add support for strongarm and arm9 cpus.
	Add support for armv5 architecture.

	* archures.c: Add bfd_mach_arm_5 and bfd_mach_arm_5T.
	
	* reloc.c: Add new, assembler only, ARM reloc:
	BFD_RELOC_ARM_ADRL_IMMEDIATE.
	
	* bfd-in2.h: Regenerate.

1999-07-02  Mark Mitchell  <mark@codesourcery.com>

	* dwarf2.c (parse_comp_unit): Add ABBREV_LENGTH parameter.
	(_bfd_dwarf2_find_nearest_line): Add ADDR_SIZE parameter.
	* elf.c (_bfd_elf_find_nearest_line): Pass it.
	* elf32-arm.h (elf32_arm_find_nearest_line): Likewise.
	* elf32-mips.c (ABI_64_P): New macro.
	(IRIX_COMPAT): We are IRIX6-compatible if ABI_64_P.
	(_bfd_mips_elf_find_nearest_line): Adjust call to
	_bfd_dwarf2_find_nearest_line.
	* libbfd-in.h (_bfd_dwarf2_find_nearest_line): Update prototype.
	* libbfd.h: Regenerated.

1999-07-02  Ian Lance Taylor  <ian@zembu.com>

	* config.bfd: Add * at the end of i[3456]86-*-unixware.

Fri Jul  2 12:21:10 1999  Jeffrey A Law  (law@cygnus.com)

	* libhppa.h (HPPA_R_ARG_RELOC): Delete.
	(HPPA_R_CONSTANT, HPPA_R_ADDEND): Likewise.

1999-07-01  Mark Mitchell  <mark@codesourcery.com>

	* elf-bfd.h (bfd_elf_section_data): Add rel_count and rel_count2
	fields.
	(_bfd_elf_init_reloc_shdr): New function.
	* elf.c (_bfd_elf_new_section_hook): Use bfd_zalloc, rather than
	bfd_alloc followed by memset.
	(_bfd_elf_init_reloc_shdr): New function, split out from ...
	(elf_fake_sections): Here.
	(assign_section_numbers): Assign section numbers for the second
	relocation section, if required.
	* elflink.h (elf_link_output_relocs): New function.
	(elf_link_size_reloc_section): Likewise.
	(elf_bfd_final_link): Use elf_link_size_reloc_section.
	(elf_link_input_bfd): Use elf_link_output_relocs.
	
	* elf32-mips.c (_bfd_mips_elf_fake_sections): Use
	_bfd_elf_init_reloc_shdr to initialize rel_hdr2.

Thu Jul  1 13:58:48 1999  Jeffrey A Law  (law@cygnus.com)

	* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): Handle R_PCREL_CALL
	with 22bit format.

1999-06-28  Mark Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (mips_elf_got_info): Move declaration before
	prototypes.  Change global_gotsym to be a pointer to a hash entry,
	rather than a number index.
	(mips_elf_link_hash_entry): Move declaration before prototypes.
	(mips_elf_irix6_finish_dynamic_symbol): New function.
	(mips_elf_sign_extend): Likewise.
	(mips_elf_high): Likewise.
	(mips_elf_higher): Likewise.
	(mips_elf_highest): Likewise.
	(mips_elf_global_got_index): Likewise.
	(mips_elf_local_got_index): Likewise.
	(mips_elf_got_offset_from_index): Likeiwse.
	(mips_elf_record_global_got_symbol): Likewise.
	(mips_elf_got_page): Likewise.
	(mips_elf_next_lo16_addend): Likewise.
	(mips_elf_calculate_relocation): Likewise.
	(mips_elf_obtain_contents): Likewise.
	(mips_elf_perform_relocation): Likewise.
	(mips_elf_assign_gp): Likewise.
	(mips_elf_sort_hash_table_f): Likewise.
	(mips_elf_sort_hash_table): Likewise.
	(mips_elf_got_section): Likewise.
	(mips_elf_got_info): Likewise.
	(mips_elf_create_local_got_entry): Likewise.
	(mips_elf_got16_entry): Likewise.
	(mips_elf_create_dynamic_relocation): Likewise.
	(elf_mips_howto_table): Add description of R_MIPS_SCN_DISP.
	(mips_elf_final_gp): Use mips_elf_assign_gp.
	(_bfd_mips_elf_symbol_processing): Don't move SHN_COMMON symbols
	into SHN_SCOMMON automatically on IRIX6.
	(mips_elf_add_symbol_hook): Likewise.
	(mips_elf_relocate_section): Rewrite, using
	mips_elf_calculate_relocation and mips_elf_perform_relocation.
	(mips_elf_create_dynamic_section): Use MIPS_ELF_STUB_SECTION_NAME.
	Don't deal with .rld_map on IRIX6.
	(mips_elf_create_got_section): Adjust use of global_gotsym.  Set
	section flags appropriately for .got.
	(mips_elf_check_relocs): Handle IRIX6 relocations making use of
	the got.  Call mips_elf_record_global_got_symbol and allocate
	local got space appropriately.
	(mips_elf_size_dynamic_sections): Use bfd_byte *, not unsigned
	char *.  Rework calculation of GOT size.  Sort dynamic symbol
	table entries so entries that do not require GOT entries appear at
	the beginning.  Don't use DT_MIPS_HIPAGENO on IRIX6.  Remove dead
	code dealing with DT_INIT and DT_FINI.  Remove fiddling with
	global_gotsym.
	(mips_elf_finish_dynamic_symbol): Adjust creation of global GOT
	entries.
	(mips_elf_finish_dynamic_symbol): Use
	mips_elf_irix6_finish_dynamic_symbol.
	(mips_elf_finish_dynamic_sections): Correct off-by-one error
	setting DT_MIPS_UNREFEXTNO.  Adjust setting of DT_MIPS_GOTSYM for
	change to global_gotsym.  Set DT_MIPS_OPTIONS on IRIX6.
		
1999-06-30  Ian Lance Taylor  <ian@zembu.com>

	* elf32-mips.c (mips_elf_final_link): Don't set CPIC when doing a
	relocateable link.  From Ralf Baechle <ralf@uni-koblenz.de>.

1999-06-04  Philip Blundell  <philb@gnu.org>

	* elf32-arm.h (elf_backend_got_header_size): Define.
	(elf_backend_plt_header_size): Likewise.

1999-06-28  Jim Pick  <jim@jimpick.com>

	* elf32-arm.h (elf32_arm_relocate_section): Mind no_undefined

Tue Jun 29 02:25:03 1999  Jeffrey A Law  (law@cygnus.com)

	* elf-hppa.c (elf_hppa_howto_table): Use bfd_elf_generic_reloc as
	relocation function.
	* elf32-hppa.c (hppa_elf_reloc): Kill unused/unwanted function.

1999-06-27  Mark Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (MIPS_ELF_SRDATA_SECTION_NAME): New macro.
	(MIPS_ELF_OPTIONS_SECTION_NAME): Likewise.
	(MIPS_ELF_STUB_SECTION_NAME): Likewise.
	(_bfd_mips_elf_section_from_shdr): Use them.
	(_bfd_mips_elf_fake_sections): Likewise.  Add .srdata to the list
	of GP-relative sections.
	(_bfd_mips_elf_set_section_contents): Use them.
	(_bfd_mips_elf_section_processing): Share code between .sdata and
	.lit4/.lit8 sections.  Set appropriate flags for .srdata.
	(mips_elf_additional_program_headers): Add handling for
	PT_MIPS_OPTIONS segment on IRIX6.
	(mips_elf_modify_segment_map): Likeiwse.
	(mips_elf_final_link): Set EF_MIPS_CPIC when required by the ABI.
	Include the options sections on IRIX6.  Don't look for GP-relative
	sections by name; use SHF_MIPS_GPREL instead.
	(ELF_DYNAMIC_INTERPRETER): Adjust to use /usr/lib32/libc.so.1 for
	the N32 ABI.
	(mips_elf_create_dynamic_sections): Don't muck about with section
	alignments and such on IRIX6.
	(mips_elf_adjust_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
	(mips_elf_size_dynamic_sections): Likewise. Adjust to handle the
	fact that ELF_DYNAMIC_INTERPRETER is no longer a constant.  Use
	bfd_zalloc rather than bfd_alloc and memset.
	(mips_elf_finish_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
	Don't assert the existence of .rld_map on IRIX6.
	(mips_elf_finish_dynamic_sections): Use MIPS_ELF_STUB_SECTION_NAME.
		
	* elf32-mips.c (mips_elf_adjust_dynindx): Remove.
	(mips_elf_size_dynamic_sections): Use _bfd_elf_link_adjust_dynindx
	instead.

1999-06-26  Mark Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (mips_elf_swap_msym_in): New function.
	(mips_elf_swap_msym_out): New function.
	(mips_elf_create_msym_section): Likewise.
	(MIPS_ELF_MSYM_SECTION_NAME): New macro.
	(_bfd_mips_elf_final_write_processing): Set sh_link for .msym.
	(_bfd_mips_elf_section_from_shdr): Reject an SHT_MIPS_MSYM
	section not named .msym.
	(_bfd_mips_elf_fake_sections): Use MIPS_ELF_MSYM_SECTION_NAME, not
	.msym directly.  Set appropriate attributes for the .msym
	section.
	(mips_elf_link_hash_entry): Add min_dyn_reloc_index field.
	(mips_elf_link_hash_newfunc): Clear it.
	(mips_elf_create_dynamic_sections): Create the .msym section
	on IRIX6.
	(mips_elf_size_dynamic_sections):  Allocate space for the
	.msym section.  Add a DT_MIPS_MSYM entry.
	(mips_elf_finish_dynamic_symbol): Write out a .msym entry for
	the symbol.
	(mips_elf_finish_dynamic_sections): Assign a value for
	DT_MIPS_MSYM.  Add .msym entries for the section symbols as well.

	* elf32-mips.c (irix_compat_t): New enumeration.
	(ABI_N32_P): New macro.
	(IRIX_COMPAT): Likewise.
	(SGI_COMPAT): Implement in terms of IRIX_COMPAT.
	(mips_elf_relocate_section): Fix typo.
	
1999-06-26  Mumit Khan  <khan@xraylith.wisc.edu>

	* peicode.h (coff_swap_scnhdr_out): Mark non readonly BFD sections
	as writable PE sections.

1999-06-26  David Mosberger  <davidm@hpl.hp.com>

	* dwarf2.c (struct arange): New type.
	(struct comp_unit): Replace LOW and HIGH by member ARANGE.
	(arange_add): New function.
	(decode_line_info): Keep track of address ranges that a compilation
	unit covers.
	(comp_unit_contains_address): Return true if address is contained
	in _any_ of the address ranges associated with a compilation unit.
	(_bfd_dwarf2_find_nearest_line): Call comp_unit_find_nearest_line
	on the first comp_unit that contains the address.

1999-06-26  David Mosberger  <davidm@hpl.hp.com>

	* dwarf2.c (struct dwarf2_debug): Add member dwarf_line_buffer.
	(decode_line_info): Add variable STASH and initialize it to point
	to the per-bfd dwarf2_debug info.  Remove static variable
	dwarf_line_buffer and use stash->dwarf_line_buffer in its place.

1999-06-26  Ian Lance Taylor  <ian@zembu.com>

	* elflink.h (elf_link_output_extsym): It's OK for a -Bsymbolic
	shared library to have an undefined symbol.

	From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:
	* elf32-ppc.c (ppc_elf_relocate_section): Fix last patch.

Thu Jun 24 20:59:11 1999  Jeffrey A Law  (law@cygnus.com)

	* elf-hppa.c (elf_hppa_final_write_processing): New function.
	* elf32-hppa.c: Remove everything related to symbol extension
	sections & records.  Use the common elf_hppa_final_write_processing.

1999-06-22  Mark Mitchell  <mark@codesourcery.com>

	* elflink.h (size_dynamic_sections): Use user-specified init/fini
	functions instead of _init/_fini if requested.

1999-06-23  Ian Lance Taylor  <ian@zembu.com>

	* elf.c (bfd_section_from_shdr): Avoid crashing on a bogus sh_link
	field.

1999-06-22  Ian Lance Taylor  <ian@zembu.com>

	From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:
	* elf32-ppc.c (ppc_elf_size_dynamic_sections): Set unused dynindx
	field to 0, not -1.
	(ppc_elf_finish_dynamic_sections): Check for positive section
	dynindx field, rather than comparing against -1.
	(ppc_elf_relocate_section): Only return false if undefined_symbol
	or reloc_overflow fail, not always upon encountering an error.

1999-06-22  Mark Mitchell  <mark@codesourcery.com>

	* elflink.h (link_read_relocs): Explicitly cast external_relocs to
	bfd_byte * before performing pointer arithmetic.

Tue Jun 22 13:06:25 1999  Jeffrey A Law  (law@cygnus.com)

	* elf-hppa.h: New file.  Common stuff for elf32 and elf64 PA
	support.
	* elf32-hppa.c: Include elf-hppa.h.
	(ARCH_SIZE): Define.
	(elf_hppa_reloc_type_lookup): Delete.  Found in the common code
	now.
	(elf32_hppa_info_to_howto): Similarly.
	(elf_hppa_howto_table): Similarly.
	(elf_hppa_reloc_type_lookup): Similarly.
	(hppa_elf_gen_reloc_type): Similarly.
	* elf32-hppa.h (ELF_HOWTO_TALBE, N_PARISC_RELOCS): Delete.

1999-06-22  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_final_link_relocate): Catch overflow
	handling R_V850_22_PCREL relocation.

1999-06-21  Ian Lance Taylor  <ian@zembu.com>

	* coff-arm.c (arm_emit_base_file_entry): Explicitly declare return
	type.

Sun Jun 20 14:13:57 1999  Richard Henderson  <rth@cygnus.com>

	* section.c (_bfd_strip_section_from_output): Ignore sections
	DISCARDed by the link script.

1999-06-19  Ian Lance Taylor  <ian@zembu.com>

	* elflink.h (elf_link_remove_section_and_adjust_dynindices):
	Remove unused local variable spp.

	* xcofflink.c (bfd_xcoff_size_dynamic_sections): Don't crash if
	the entry symbol is not set.

Fri Jun 18 04:24:57 1999  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (elf64_alpha_relocate_section): Don't adjust
	GPDISP or LITUSE in a relocatable link.

Thu Jun 17 21:24:43 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* dwarf1.c (alloc_dwarf1_unit): Allocate using bfd_zalloc.
	* (alloc_dwarf1_func): Likewise.

Wed Jun 16 03:09:57 1999  Jeffrey A Law  (law@cygnus.com)

	* libhppa.h: Fix various formatting errors.
	(assemble_3); Rewrite using CATENATE.
	(assemble_17): Fix various bugs.

1999-06-16  Nick Clifton  <nickc@cygnus.com>

	* elf32-mcore.c (R_MCORE_RAW): Fix definition.

1999-06-15  Richard Henderson  <rth@cygnus.com>

	* section.c (SEC_SHORT): Define.
	* bfd-in2.h: Rebuild.

1999-06-13  Mark Mitchell  <mark@codesourcery.com>

	* elflink.h (elf_link_remove_section_and_adjust_dynindices):
	Remove abfd parameter.  Use _bfd_strip_section_from_output.
	(bfd_elf_size_dynamic_sections): Adjust callers accordingly.
	
	* elf-bfd.h (_bfd_elf_link_adjust_dynindx): New function.
	* elflink.c (_bfd_elf_link_adjust_dynindx): Define it.
	* elflink.h (elf_link_remove_section_and_adjust_dynindices): New
	function.
	(bfd_elf_size_dynamic_sections): Use it.

1999-06-13  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* elf32-i386.c (elf_howto_table): Change R_386_PC8 from
	complain_overflow_bitfield to complain_overflow_signed.

1999-06-13  Mark Mitchell  <mark@codesourcery.com>

	* elflink.h (elf_link_read_relocs_from_section): New function,
	split out from ...
	(elf_link_read_relocs): Here.  Use it for both relocation
	sections.

1999-06-12  Mark Mitchell  <mark@codesourcery.com>

	* elfcode.h (elf_slurp_reloc_table_from_section): Don't assume
	asect->reloc_count is valid.

1999-06-12  Ian Lance Taylor  <ian@zembu.com>

	* elf32-mips.c (mips_elf32_section_processing): Permit a
	SHT_MIPS_REGINFO section to have a size of 0.

1999-06-12  David O'Brien  <obrien@freebsd.org>

	* config.bfd (alpha*-*-freebsd*): New target.
	(i[3456]86-*-freebsd*): Now defaults to ELF.

1999-06-11  Ian Lance Taylor  <ian@zembu.com>

	* reloc.c (_bfd_relocate_contents): Permit bitfield relocations to
	wrap if the relocation covers the high bit of an address.

	* dwarf2.c (decode_line_info): Remove unused variable first_time.

1999-06-10  Jakub Jelinek  <jj@ultra.linux.cz>

	* elf64_sparc.c (sparc64_elf_relocate_section): Use R_SPARC_max_std
	instead of R_SPARC_max.
	(sparc64_elf_info_to_howto): Likewise.
	* elf32_sparc.c (elf32_sparc_relocate_section): Likewise.
	(elf32_sparc_info_to_howto): Likewise; handle vtable relocations.

1999-06-07  Richard Henderson  <rth@cygnus.com>

	* section.c (_bfd_strip_section_from_output): Remove output
	sections with no initial link_order.

1999-06-07  Nick Clifton  <nickc@cygnus.com>

	* elf32-m88k.c (ELF_MAXPAGESIZE): Define.

Mon Jun  7 11:49:43 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* Makefile.am (SOURCE_HFILES): Add missing headers.
	* Makefile.in: Regenerated.

1999-06-06  Mark Mitchell  <mark@codesourcery.com>

	* elf32-mips.c (_bfd_mips_elf_print_private_data): Recognize
	the N32 ABI.

1999-06-04  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>

	* elf32-ppc.c (ppc_elf_relocate_section): Don't barf on out of
	range undefweak symbols.
	* hash.c: Add missing comma after @xref{}
	* linker.c: Likewise.

1999-06-04  Nick Clifton  <nickc@cygnus.com>

	* elfxx-target.h (ELF_MAXPAGESIZE): Produce an error message
	if not defined.
	* elf32-gen.c (ELF_MAXPAGESIZE): Define.
	* elf32-i860.c (ELF_MAXPAGESIZE): Define.
	* elf32-i960.c (ELF_MAXPAGESIZE): Define.
	* elf64-gen.c (ELF_MAXPAGESIZE): Define.

1999-06-04  Ian Lance Taylor  <ian@zembu.com>

	* Makefile.am: Rebuild dependencies.
	(BFD32_BACKENDS): Add dwarf1.lo.
	(BFD32_BACKENDS_CFILES): Add dwarf1.c.
	* Makefile.in: Rebuild.

1999-06-04  Nick Clifton  <nickc@cygnus.com>

	* Makefile.am: Add epoc-arm-pe target.
	* Makefile.in: Regenerate.
	* pe-arm.c: Only redefine interworking function names if they have
	not already been redefined.
	* pei-arm.c: Only redefine interworking function names if they have
	not already been redefined.
	* epoc-pe-arm.c: Redefine interworking function names to avoid a
	name space clash.
	* epoc-pei-arm.c: Redefine interworking function names to avoid a
	name space clash.

1999-06-03  Nick Clifton  <nickc@cygnus.com>

	* elfxx-target.h (ELF_MAXPAGESIZE): Default to 0x1000 not 1.

Fri Jun  4 10:05:11 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* elf.c (elf_fake_sections): Undo change of 1999-05-10.

Fri Jun  4 03:10:49 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* elf32-sh.c (sh_elf_relax_delete_bytes): Fix setting of
	start / stop for recalculating of r_addend of R_SH_SWITCH*.

Fri Jun  4 02:53:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* elf32-sh.c (sh_elf_relax_delete_bytes): Handle R_SH_SWITCH32
	in other text sections.

Fri Jun  4 02:29:34 1999  J"orn Rennecke <amylaar@cygnus.co.uk>

	* libbfd.c (_bfd_generic_verify_endian_match): New function.
	* libbfd-in.h (_bfd_generic_verify_endian_match): Declare.
	* libbfd.h: Regenerate.
	* coff-sh.c (sh_merge_private_data): Delete.
	(coff_bfd_merge_private_bfd_data): Change to
	_bfd_generic_verify_endian_match.
	(elf32-sh.c): bfd_elf32_bfd_merge_private_bfd_data: Define.

1999-06-03  Ulrich Drepper  <drepper@cygnus.com>

	* elf32-arm.h: Fix typo: change ELF_MAXPAGE_SIZE to ELF_MAXPAGESIZE.

1999-06-03  Ian Lance Taylor  <ian@zembu.com>

	* bfd-in.h (bfd_elf32_arm_allocate_interworking_sections): Correct
	prototype.
	(bfd_elf32_arm_process_before_allocation): Likewise.
	* bfd-in2.h: Rebuild.

1999-06-03  David Mosberger  <davidm@hpl.hp.com>

	* dwarf2.c (struct line_info): Add member END_SEQUENCE to keep
	track of end_sequence markers.
	(add_line_info): Add END_SEQUENCE arg.
	(decode_line_info): Don't try to infer lo_pc and hi_pc from the
	debug-line info---it doesn't work right if a compilation unit
	consists of multiple discontiguous code-sequences.  It would be
	worthwhile to optimize for the common case where a compilation
	unit results in a contiguous set of code sequences, but this is
	quite tricky to get right for arbitrary DWARF2 files.
	(lookup_address_in_line_info_table): Don't use the last line entry
	for a compilation unit for anything with an address higher than
	this line entry.  Also, check for end_sequence markers to
	correctly handle discontinuities.
	(_bfd_dwarf2_find_nearest_line): When checking previously loaded
	compilation units, check all compilation units with each->high==0
	just like when reading compilation units.

	* dwarf2.c (decode_line_info): Initialize table->files and
	table->last_line to NULL to avoid segfaults due to random
	values in these members.
	(concat_filename): Check for out-of-range file number before
	indexing filename table.  Segfaults suck.

	* dwarf2.c (decode_line_info): Don't truncate address to least
	significant 32 bits (breaks 64 bit targets).
	(lookup_address_in_function_table): Ditto.
	(comp_unit_contains_address): Ditto.

1999-06-02  Mark Mitchell  <Mark Mitchell <mark@codesourcery.com>>

	* elf32-mips.c (elf_mips_howto_table): Add R_MIPS_JALR.
	* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
	(mips_elf64_howto_table_rela): Likewise.

	* elfcode.h (elf_slurp_reloc_table_from_section): New function,
	split out from ...
	(elf_slurp_reloc_table): Here.  Use it to handle the case where a
	single section has two associated relocation sections.

1999-06-02  Mark Salter  <msalter@cygnus.com>

	* coffcode.h (coff_set_alignment_hook): Set lma from s_vaddr if
	COFF_WITH_PE defined.

1999-06-02  Nick Clifton  <nickc@cygnus.com>

	* pe-arm.c: Rename global arm interworking functions to avoid name
	collision when all targets BFD is built.
	* pei-arm.c: Ditto.

1999-05-31  Mark Mitchell  <mark@codesourcery.com>

	* elf-bfd.h (elf_backend_data): Remove use_rela_p.  Add
	may_use_rel_p, may_use_rela_p, default_use_rela_p.
	(bfd_elf_section_data): Add use_rela_p.
	* elf.c (bfd_section_from_shdr): Set use_rela_p appropriately.
	(_bfd_elf_new_section_hook): Likewise.
	(elf_fake_sections): Use may_use_rela_p, etc., instead of
	use_rela_p.
	(_bfd_elf_copy_private_section_data): Copy use_rela_p.
	* elfcode.h (write_relocs): Determine whether or not use rela
	relocs based on the relocation section header.
	* elflink.c (_bfd_elf_create_dynamic_sections): Use default_use_rela_p
	instead of use_rela_p.
	* elfxx-target.h (elf_backend_may_use_relp): New macro.
	(elf_backend_may_use_rela_p): Likewise.
	(elf_backend_default_use_rela_p): Likewise.
	(elfNN_bed): Use them.

Wed Jun  2 12:38:49 1999  Miodrag Vallat <miodrag@multimania.com>

	* hosts/alphalinux.h (TRAD_CORE_EXTRA_SIZE_ALLOWED): Expand to 4096.

Tue Jun  1 17:57:58 1999  Mark P. Mitchell  <mitchell@n02.acl.lanl.gov>

	* reloc.c (BFD_RELOC_MIPS_SUB): New relocation.
	(BFD_RELOC_MIPS_GOT_PAGE): Likewise.
	(BFD_RELOC_MIPS_GOT_OFST): Likewise.
	(BFD_RELOC_MIPS_GOT_DISP): Likewise.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.
	* elf32-mips.c (mips_info_to_howto_rela): New function.
	(USE_REL): Adjust for new conventions.
	(MINUS_ONE): New macro.
	(elf_mips_howto_table): Add R_MIPS_SUB.
	(mips_r): Add entries for MIPS_SUB, MIPS_GOT_PAGE, MIPS_GOT_OFST,
	and MIPS_GOT_DISP.
	(mips_elf_final_write_processing): Set sh_link, not sh_info, for a
	.MIPS.content section.
	(_bfd_mips_elf_fake_sections): Treat all sections that begin
	with .MIPS.content as .MIPS.content sections.  Set
	SHF_MNIPS_NOSTRIP for such section.
	(elf_info_to_howto): Define to mips_info_to_howto_rela.
	* elf64-mips.c (mips_r):  Add entries for MIPS_SUB, MIPS_GOT_PAGE,
	MIPS_GOT_OFST, and MIPS_GOT_DISP.

Wed Jun  2 11:51:12 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* vms-misc.c (_bfd_vms_hash_newfunc): Fix use of uninitialized
	variable.

	* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Avoid ambigous
	`else'.

1999-05-30  Philip Blundell  <philb@gnu.org>

	* elf32-arm.h (elf32_arm_relocate_section): Reinstate change of
	1993-03-25 (!!).  Take into account the bitmasks for the reloc so
	the addend does not overflow into the rest of the word.

1999-05-29  Nick Clifton  <nickc@cygnus.com>

	* bfd-in.h: Amend prototype for
	bfd_elf32_arm_process_before_allocation .
	* bfd-in.h: Regenerate.

	* elfarm-oabi.c (NUM_ELEM): New macro: Compute the number of
	elements in a fixed sized array.
	(ARM_ELF_ABI_VERSION): Define.
	(ARM_ELF_OS_ABI_VERSION): Define.
	(R_ARM_THM_ABS5): Fix rightshift and size.
	(R_ARM_THM_PC22): Fix size.
	(R_ARM_PLT32): Define Howto.
	(find_howto): New function: Locate a howto based on a reloc
	number.
	(elf32_arm_info_to_howto): Use find_howto if necessary.
	(elf32_arm_reloc_map): Change type of field bfd_reloc_val to
	bfd_reloc_code_real_type.
	(elf32_arm_reloc_map[]): Add entries for BFD_RELOC_VTABLE_INHERIT
	and BFD_RELOC_VTABLE_ENTRY.
	(elf32_arm_reloc_type_lookup): Use find_howto if necessary.

	* elfarm-nabi.c (NUM_ELEM): New macro: Compute the number of
	elements in a fixed sized array.
	(ARM_ELF_ABI_VERSION): Define.
	(ARM_ELF_OS_ABI_VERSION): Define.
	(R_ARM_THM_ABS5): Fix rightshift and size.
	(R_ARM_THM_PC22): Fix size.
	(elf32_arm_info_to_howto_rel): Rename to elf32_arm_info_to_howto.
	(elf32_arm_reloc_map): Change type of field bfd_reloc_val to
	bfd_reloc_code_real_type.

	* elf32-arm.h (struct elf32_arm_link_hash_table): Add new field:
	no_pipeline_knowledge.
	(elf32_arm_link_hash_create): Initialise new field to zero.
	(bfd_elf32_arm_process_before_allocation): Add new paraemter:
	no_pipeline_knowledge.  Use this parameter to initialise the field
	in the globals data structure.
	(elf32_arm_final_link_relocate): Only add in pipeline offset if
	no_pipeline_knowledge is false and the binary is from an old
	toolchain.
	(elf32_arm_merge_private_data): Generate an error if an attempt is
	made to linl together big endian and little endian code.
	(elf32_arm_post_process_headers): New function:  Initialise the
	EI_OSABI and EI_ABIVERSION fields of the newly created ELF program
	header.
	(elf_backend_post_process_headers): Define.

1999-05-28  Nick Clifton  <nickc@cygnus.com>

	* elf-bfd.h (struct elf_backend_data): Add new field:
	elf_backend_post_process_headers.

	* elfxx-target.h (elf_backend_post_process_headers): Define to
	NULL if not already defined.
	(elfNN_bed): Initialise elf_backend_post_process_headers field.

	* elf.c (prep_headers): Set the EI_OSABI and EI_ABIVERSION fields
	to zero.
	(_bfd_elf_compute_section_file_positions): Call
	elf_backend_post_process_headers if defined.

1999-05-28  Ian Lance Taylor  <ian@zembu.com>

	* configure.in: Check whether getuid and getgid exist.
	* archive.c: Define getuid and getgid as macros if HAVE_GETUID or
	HAVE_GETGID are not defined, respectively.
	(bfd_write_armap): Don't special case on _WIN32 for getuid and
	getgid.
	* configure.host: Set ac_cv_func_get{ug}id for *-*-windows*.
	* configure, config.in: Rebuild.

1999-05-28  Martin Dorey  <mdorey@madge.com>

	* elf32-i960.c: New file.
	* elf.c (prep_headers): Handle bfd_arch_i960.
	* targets.c (bfd_target_vector): Add &bfd_elf32_i960_vec.
	* config.bfd (i960-*-elf*): New target.
	* configure.in (bfd_elf32_i960_vec): New target vector.
	* Makefile.am (BFD32_BACKENDS): Add elf32-i960.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-i960.c.
	* Makefile.in, aclocal.m4, configure: Rebuild.

1999-05-27  Nick Clifton  <nickc@cygnus.com>

	* elfarm-oabi.c (elf32_arm_howto_table): Add entry for
	R_ARM_PLT32.
	(find_howto): New function: Find entries in the
	elf32_arm_howto_table.
	(elf32_arm_info_to_howto): Use find_howto if the entry cannot be
	computed simply.
	(elf32_arm_reloc_type_lookup): Add lookup for
	BFD_RELOC_ARM_PLT32.

1999-05-25  Philip Blundell  <pb@nexus.co.uk>

	* bfd/elf32-arm.h (elf32_arm_link_hash_newfunc): New function.
	(elf32_arm_link_hash_table_create): Use above function as the
	constructor for hash table entries.
	(elf32_arm_relocate_section): Avoid crash when there is no output
	section.
	(elf32_arm_final_link_relocate): New parameter h.
	(elf32_arm_relocate_section): Pass symbol hash entry to above
 	routine.
	(elf32_arm_gc_sweep_hook, elf32_arm_check relocs): Correct
	comments.

1999-05-25  Catherine Moore  <clm@cygnus.com>

        * coff-arm.c (coff_arm_relocate_section): Don't emit
        base file entries for pc-relative values.

1999-05-25  DJ Delorie  <dj@cygnus.com>

	* peicode.h (coff_swap_sym_in): When we create the actual section
	to reflect the not-there section C_SECTION symbols refer to,
	change the symbol class to C_STAT as the section is now really
	there.

1999-05-24  Philip Blundell  <pb@nexus.co.uk>

	* elf32-arm.h (elf32_arm_relocate_section): Undo change of
 	1999-03-25.

Mon May 17 13:35:35 1999  Stan Cox  <scox@cygnus.com>

	* coff-arm.c (_bfd_coff_arm_set_private_flags): Changed
	F_PIC_INT to F_PIC.
	* coffcode.h (coff_set_arch_mach_hook): Added F_ARM_2a, and
	F_ARM_3M labels.  Changed F_PIC_INT to F_PIC.

1999-05-16  Nick Clifton  <nickc@cygnus.com>

	* coff-mcore.c (in_reloc_p): Reinstate.

1999-05-15  Nick Clifton  <nickc@cygnus.com>

	* reloc.c (BFD_RELOC_MCORE_RVA): Define.
	* bfd-in2.h: Regenerate.
	* coff-mcore.c (in_reloc_p): Remove defintion.
	(mcore_coff_howto): Add IMAGE_REL_MCORE_RVA.
	(mcore_coff_reloc_type_lookup): Map BFD_RELOC_RVA to
	IMAGE_REL_MCORE_RVA.
	(coff_mcore_rtype_to_howto): Add special processing for
	IMAGE_REL_MCORE_RVA.
	(coff_mcore_relocate_section): Add support for
	IMAGE_REL_MCORE_RVA.
	* elf32-mcore (mcore_elf_howto_): Add R_MCORE_RELATIVE.
	(mcore_elf_reloc_type_lookup): Map BFD_RELOC_RVA to
	R_MCORE_RELATIVE.
	(mcore_elf_relocate_section): Delete redundant case labels.

Fri May 14 10:59:55 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* elf32-arm.h (elf32_arm_relocate_section): Fix operator
 	precedence between bit-and and comparison.

Thu May 13 09:45:23 1999  Joel Sherrill (joel@OARcorp.com)

	* config.bfd (i[3456]86*-*-rtems*, m68k*-*-rtems*): Added to
	list of target formats (targ_selvecs).
	(i[3456]86*-*-rtemself*, mips*el-*-rtems*): New targets.
	(powerpcle*-*rtems*, sh-*-rtemself*): New targets.

1999-05-10  DJ Delorie  <dj@cygnus.com>

	* ecoff.c (_bfd_ecoff_write_armap): give the symtab element a
	reasonable mode until "ar x" is smart enough to skip it (fixes
	gcc/libgcc.a builds on mips-ecoff targets

	* coffcode.h (styp_to_sec_flags): Explain how COMDATs are supposed
	to work.  Hack to support MS import libraries, which use different
	COMDAT types than GNU.
	(coff_slurp_symbol_table): C_SECTION symbols are local; they refer
	to implied zero-length sections (see peicode below)
	* coffgen.c (coff_get_normalized_symtab): Properly read long MS
	filename symbols, which use one *or more* auxents.
	* coffswap.h (coff_swap_aux_in): ditto
	* peicode.h (coff_swap_sym_in): Build the implied zero-length
	sections

Tue May 11 15:51:58 1999  Jeffrey A Law  (law@cygnus.com)

	* elf32-v850.c (v850_elf_howto_table): Make partial_inplace false
	for all relocations.

1999-05-10  Catherine Moore  <clm@cygnus.com>

        * bfd-in.h (bfd_arm_allocate_interworking_sections):  Static
        if COFF_IMAGE_WITH_PE.
        (bfd_arm_process_before_allocation): Likewise.
        (bfd_arm_get_bfd_for_interworking): Likewise.
        * coff-arm.c: Likewise.
        * bfd-in2.h: Regenerate.
        * configure.in (armpe_little_vec): Remove coff-arm.lo.
        (armpe_big_vec): Likewise.
        * configure: Rebuild.

1999-05-10  Nick Clifton  <nickc@cygnus.com>

	* elf.c (elf_fake_sections): Check for .rel. as start of rel
	section, not just .rel.  Same for .rela.

1999-05-07  Nick Clifton  <nickc@cygnus.com>

	* coff-mcore.c (coff_mcore_relocate_section): Replace assert about
	endianism with an error message.

Thu May  6 17:09:09 1999  Fred Fish  <fnf@be.com>

	* dwarf2.c (read_abbrevs): Change cast of dwarf_abbrev_buffer
	assignment from "unsigned char *" to "char *".
	(decode_line_info): Likewise for dwarf_line_buffer assignment.

1999-05-05  Catherine Moore  <clm@cygnus.com>

        * coff-arm.c (coff_arm_relocate_section):  Add one to
        address of ARM_RVA32 thumb functions.

1999-05-05  Catherine Moore  <clm@cygnus.com>

        * elf32-m68k.c (elf32_m68k_set_private_flags): New.
        (elf32_m68k_copy_private_bfd_data): New.
        (elf32_m68k_merge_private_bfd_data): New.
        (elf32_m68k_print_private_bfd_data): New.
        (CPU32_FLAG): Define.
        (PLT_CPU32_ENTRY_SIZE): Define.
        (elf_cpu32_plt0_entry): Declare.
        (elf_cpu32_plt_entry): Declare.
        (elf_m68k_adjust_dynamic_symbol): Generate cpu32 plt entries.
        (elf_m68k_finish_dynamic_symbol): Likewise.
        (elf_m68k_finish_dynamic_sections): Likewise.
        (elf_backend_plt_header_size): Remove definition.
        (bfd_elf32_bfd_copy_private_bfd_data): Define.
        (bfd_elf32_bfd_merge_private_bfd_data): Define.
        (bfd_elf32_bfd_set_private_flags): Define.
        (bfd_elf32_bfd_print_private_bfd_data): Define.

Mon May  3 09:24:49 1999  Jeffrey A Law  (law@cygnus.com)

	* som.c (som_fixup_formats): Fix comments for R_SHORT_PCREL_MODE
	and R_LONG_PCREL_MODE.

1999-04-29  Nick Clifton  <nickc@cygnus.com>

	* coff-mcore.c (coff_mcore_relocate_section): Fix typos.

Fri Apr 28 16:36:19 1999  Stan Cox  <scox@cygnus.com>

	* elf32-sh.c (sh_elf_relocate_section): Include relocation addend
	in relocation calculation.

1999-04-26  Tom Tromey  <tromey@cygnus.com>

	* aclocal.m4, configure: Updated for new version of libtool.

1999-04-21  Nick Clifton  <nickc@cygnus.com>

	* coff-mcore.c: Add support for mcore relocs.

1999-04-20  Gavin Romig-Koch  <gavin@cygnus.com>

	* elf32-mips.c (_bfd_mips_elf_print_private_bfd_data): Scrap the
	incorrect use EF_MIPS_xxBITPTRS.

1999-04-18  Ian Lance Taylor  <ian@zembu.com>

	* elf64-alpha.c (elf64_alpha_relax_section): Remove unused local
	variable insn.

	* bfd-in2.h: Rebuild.
	* libbfd.h: Rebuild.

Sat Apr 17 20:55:15 1999  Catherine Moore  <clm@cygnus.com>

	* coff-arm.c (coff_arm_rtype_to_howto): Remove ARM26D transform.
	(coff_arm_relocate_section):  Add ARM26D transform.  Only
	change to ARM26D for relocateable links.

1999-04-16  Gavin Romig-Koch  <gavin@cygnus.com>

	* elf32-mips.c (_bfd_mips_elf_print_private_bfd_data): New.
	(bfd_elf32_bfd_print_private_bfd_data): New.

1999-04-15  Doug Evans  <devans@casey.cygnus.com>

	* elf32-arm.h (elf32_arm_final_link_relocate):  For R_ARM_THM_ABS5,
	refetch addend if USE_REL, add many comments regarding current state.
	For R_ARM_THM_PC22, refetch addend if USE_REL, simplify.
	* elfarm-nabi.c (elf32_arm_howto_table): For R_ARM_THM_ABS5, fix
	size and rightshift.  For R_ARM_THM_PC22, fix bitsize.
	* elfarm-oabi.c (elf32_arm_howto_table): Ditto.

Wed Apr 14 14:33:08 1999  Richard Henderson  <rth@cygnus.com>

	* elf32-mips.c (_bfd_mips_elf_read_ecoff_info): Zero `debug'.
	* elf64-alpha.c (elf64_alpha_read_ecoff_info): Likewise.

1999-04-13  David Mosberger  <davidm@hpl.hp.com>

	* dwarf2.c (decode_line_info): Don't truncate address to least
	significant 32 bits (breaks 64 bit targets).
	(lookup_address_in_function_table): Ditto.
	(comp_unit_contains_address): Ditto.

Tue Apr 13 21:27:19 1999  Catherine Moore  <clm@cygnus.com>

	* coff-arm.c (arm_emit_base_file_entry): New routine.
	(A2T3_OFFSET): Define.
	(T2A3_OFFSET): Define.
	(coff_arm_relocate_section):  Emit base file entries for interworking
	stubs.

1999-04-13  Philip Blundell  <philb@gnu.org>

	* elfarm-nabi.c (elf32_arm_howto_table): Add dummy entries for
	relocs 17 through 19.

Sun Apr 11 01:25:17 1999  Richard Henderson  <rth@cygnus.com>

	* elfcode.h: Remove fnmatch.h.
	* elflink.h (elf_link_assign_sym_version): Call back to ld
	instead of calling fnmatch.

	* config.bfd (i?86-*-beoself): Include pe vecs.

Sun Apr 11 01:14:06 1999  Richard Henderson  <rth@cygnus.com>

	* elf32-i386.c (elf_i386_finish_dynamic_sections): Allow .plt
	to go missing.

1999-04-10  Richard Henderson  <rth@cygnus.com>

	* elf32-i386.c (elf_i386_relocate_section): Mind no_undefined
	when trying to resolve dynamic symbol references.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mips.c (mips_elf_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
	* elflink.h (elf_link_output_extsym): Likewise.

Sat Apr 10 15:12:09 1999  Richard Henderson  <rth@cygnus.com>

	* section.c (_bfd_strip_section_from_output): New function moved from
	* elf64-alpha.c (elf64_alpha_strip_section_from_output): ... here.
	* elf32-i386.c (elf_i386_size_dynamic_sections): Use it.
	* elf32-m68k.c (elf_m68k_size_dynamic_sections): Likewise.
	* elf32-mips.c (mips_elf_size_dynamic_sections): Likewise.
	* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
	* elf32-sparc.c (elf32_sparc_size_dynamic_sections): Likewise.
	* elf64-sparc.c (sparc64_elf_size_dynamic_sections): Likewise.
	* bfd-in2.h: Update.

1999-04-09  Ian Lance Taylor  <ian@zembu.com>

	* elf64-sparc.c: Fix incorrect calls to bfd_check_overflow.

1999-04-08  Nick Clifton  <nickc@cygnus.com>

	* coff-mcore.c: New File: Support for mcore-pe targets.
	* cpu-mcore.c: New File: Support for mcore targets.
	* elf32-mcore.c: New File: Support for mcore-elf target.
	* pe-mcore.c: New File: Definitions for mcore-pe target.
	* pei-mcore.c: New File: Definitions for mcore-pei target.
	* Makefile.am: Add support for MCore targets.
	* Makefile.in: Regenerate.
	* config.bfd: Add support for MCore targets.
	* configure.in: Add support for MCore targets.
	* configure: Regenerate.
	* archures.c: Add support for MCore architecture.
	* bfd-in2.h: Regenerate.
	* coffcode.h: Add support for mcore-pe targets.
	* elf.c: Add support for mcore-elf target.
	* reloc.c: Add support for MCore relocs.
	* targets.c: Add support for MCore targets.

1999-04-07  Nick Clifton  <nickc@cygnus.com>

	* elfarm-nabi.c (elf32_arm_howto_table): Add entries for
	R_ARM_XPC25 and R_ARM_THM_XPC22.
	(elf32_arm_reloc_map): Remove redundant entries.

1999-04-06  Ian Lance Taylor  <ian@zembu.com>

	* sysdep.h (LC_MESSAGES): Never define.

1999-04-06  Chris Torek  <torek@bsdi.com>

	* reloc.c (bfd_check_overflow): Add addrsize parameter.  Change
	all callers.  Rewrite completely.
	(_bfd_relocate_contents): Rewrite overflow checking.
	* bfd-in2.h: Rebuild.

1999-04-05  Ian Lance Taylor  <ian@zembu.com>

	From Gabriel Paubert <paubert@iram.es>:
	* elf32-ppc.c (ppc_elf_howto_raw): Set R_PPC_GOT16_LO,
	R_PPC_PLT16_LO and R_PPC_SECTOFF_LO to be complain_overflow_dont.
	Set R_PPC_PLT16_HA, R_PPC_SECTOFF_HA and R_PPC_EMB_NADDR16_HA to
	have a rightshift of 16 and use ppc_elf_addr16_ha_reloc.
	* ppcboot.c (ppcboot_vec): Use little endian routines for
	headers.

	* elf.c (elfcore_strndup): Only define if it will be used.
	* elf32-ppc.c (ppc_elf_relax_section): Remove unused locals irel
	and irelend.
	(ppc_elf_check_relocs): Remove unused local i.
	(ppc_elf_gc_mark_hook): Add default case to switch.

	From Bernd Nitzler <nitzler@kagcpd01.ag01.kodak.COM>:
	* srec.c (srec_scan): Accept \r in symbol definitions.
	(srec_object_p): Set HAS_SYMS if we saw any symbols.
	(symbolsrec_object_p): Likewise.

1999-04-04  Don Bowman <don@pixsci.com>

	* config.bfd: Add mips*el-*-vxworks* and mips*-*-vxworks*.

1999-04-04  Ian Lance Taylor  <ian@zembu.com>

	* dwarf1.c (parse_line_table): Remove unused locals last_pc and
	last_line.
	* elf-bfd.h (_bfd_elfcore_section_from_phdr): Declare.
	* elf32-i386.c (elf_i386_gc_mark_hook): Add default case to
	switch.
	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Remove unused
	local i.
	* syms.c (_bfd_stab_section_find_nearest_line): Remove unused
	local val.

1999-03-31  Nick Clifton  <nickc@cygnus.com>

	* config.bfd: Add support for arm-epoc-pe target.
	* configure.in: Add support for arm-epoc-pe target.
	* configure: Regenerate.
	* targets.c: Add support for arm-epoc-pe target.
	* coff-arm.c: Allow header files to override definition of
	TARGET_UNDERSCORE and USER_LABEL_PREFIX.
	* pe-arm.h: Allow previous header files to override definition of
	TARGET_LITTLE_SYM and TARGET_BIG_SYM.
	* pei-arm.h: Allow previous header files to override definition of
	TARGET_LITTLE_SYM and TARGET_BIG_SYM.
	* epoc-pe-arm.c: New file.  Support arm-epoc-pe target.
	* epoc-pei-arm.c: New file.  Support arm-epoc-pei target.

1999-03-30  Nick Clifton  <nickc@cygnus.com>

	* elf.c (elf_map_symbols): Handle the case where section
	symbols are generated for content-less sections which are
	not mapped to the output file.

	* linker.c: Replace direct references to fields in BFD structure
	with accessor macros.

	* elflink.h: Replace direct references to fields in BFD structure
	with accessor macros.

1999-03-25  Philip Blundell  <pb@nexus.co.uk>

	* config.bfd: Eliminate redundancy in checks for Linux/ARM.

	* elf32-arm.h (elf32_arm_relocate_section): Take the rightshift into
	account when adjusting section symbols during a partial link.

1999-03-24  Nick Clifton  <nickc@cygnus.com>

	* coff-sparc.c (struct coff_reloc_map): Change type of field
	  'bfd_reloc_val' to bfd_reloc_code_real_type.
	* elf-m10200.c (struct mn10200_reloc_map): Ditto.
	* elf-m10300.c (struct mn10300_reloc_map): Ditto.
	* elf32-arc.c (struct arc_reloc_map): Ditto.
	* elf32-d10v.c (struct d10v_reloc_map): Ditto.
	* elf32-d30v.c (struct d30v_reloc_map): Ditto.
	* elf32-fr30.c (struct fr30_reloc_map): Ditto.
	* elf32-m32r.c (struct m32r_reloc_map): Ditto.
	* elf32-sh.c (struct elf_reloc_map): Ditto.
	* elf32-sparc.c (struct elf_reloc_map): Ditto.
	* elf32-v850.c (struct v850_reloc_map): Ditto.
	* elf64-sparc.c (struct elf_reloc_map): Ditto.
	* elfarm-nabi.c (struct elf32_arm_reloc_map): Ditto.
	* elfarm-oabi.c (struct elf32_arm_reloc_map): Ditto.

1999-03-17  Martin Hunt  <hunt@cygnus.com>

	* syms.c (_bfd_stab_section_find_nearest_line): Changed this
	function so source-level assembly works.  If multiple N_SOs
	are seen without and N_FUNs, create an indextable entry with
	a NULL function name.

1999-03-16  Gavin Romig-Koch  <gavin@cygnus.com>

	* elf32-mips.c (_bfd_mips_elf_merge_private_bfd_data) Allow merging
	of certian similar cpus.

1999-03-16  Gavin Romig-Koch  <gavin@cygnus.com>

	* elf32-mips.c (_bfd_mips_elf_final_write_processing):
	Add the 5000.  Change the architecture for the 5400 to mips4.
	(elf_mips_mach): Add r5000.

1999-03-11  Doug Evans  <devans@casey.cygnus.com>

	* cpu-i960.c (scan_i960_mach): Recognize i960:ka_sa and i960:kb_sb.

1999-03-11  Nick Clifton  <nickc@cygnus.com>

	* binary.c (binary_set_section_contents): Generate warning about
	huge file offsets for any section that will occupy file space, not
	just those that are loadable.

1999-02-24  Jim Blandy  <jimb@zwingli.cygnus.com>

	* libbfd.h: Regenerate after Nick Clifton's Feb 17 changes.

1999-02-22  Jim Lemke  <jlemke@cygnus.com>

	* elf32-ppc.c: Add ppc_elf_relax_section() for the ld option mpc860c0.

Mon Feb 22 18:26:51 1999  Ian Lance Taylor  <ian@cygnus.com>

	* elf-bfd.h (ELF_LINK_HASH_REF_REGULAR_NONWEAK): Define.
	* elflink.h: Revert all changes since Feb 16.  Instead:
	(elf_link_add_object_symbols): Set REF_REGULAR_NONWEAK flag if
	appropriate.  Copy it to version symbols.
	(elf_fix_symbol_flags): Set REF_REGULAR_NONWEAK for non ELF
	symbols if appropriate.
	(elf_adjust_dynamic_symbol): Set REF_REGULAR_NONWEAK for weakdef
	symbol if appropriate.
	(elf_link_output_extsym): If symbol is marked as undefined, and
	has no nonweak references, mark it as weak undefined.

Fri Feb 19 16:01:12 1999  Ian Lance Taylor  <ian@cygnus.com>

	* elflink.h (elf_merge_symbol): When overriding a dynamic
	definition with a weak undefined symbol, set NEEDS_PLT if it is a
	function.
	(elf_link_add_object_symbols): Don't copy the other field if we
	are overridding.

Thu Feb 18 18:07:43 1999  Ian Lance Taylor  <ian@cygnus.com>

	* elflink.h (elf_merge_symbol): Do not merge any symbol from a
	shared object with a weak undefined symbol.

1999-02-18  Nick Clifton  <nickc@cygnus.com>

	* elfarm-nabi.c: Set partial_inplace back to false.

1999-02-17  Nick Clifton  <nickc@cygnus.com>

	* coff-arm.c (TARGET_UNDERSCORE): Re-enable.
	(USER_LABEL_PREFIX): Set to "_".

	The following patches are from: Scott Bambrough
	<scottb@corelcomputer.com>

	* libaout.h (M_ARM6_NETBSD): Set to 143.

	* reloc.c: Add ARM PIC relocs:   BFD_RELOC_ARM_GOT12,
	BFD_RELOC_ARM_GOT32, BFD_RELOC_ARM_JUMP_SLOT, BFD_RELOC_ARM_COPY,
	BFD_RELOC_ARM_GLOB_DAT, BFD_RELOC_ARM_PLT32,
	BFD_RELOC_ARM_RELATIVE, BFD_RELOC_ARM_GOTOFF, BFD_RELOC_ARM_GOTPC.
	* bfd-in2.h: Regenerate.

	* elfarm-nabi.c (elf32_arm_howto_table): Set partial_inplace to
	'true' as REL relocs are now being used.  Add new PIC relocs:
	R_ARM_COPY, R_ARM_GLOB_DAT, R_ARM_JUMP_SLOT, R_ARM_RELATIVE,
	R_ARM_GOTOFF, R_ARM_GOTPC, R_ARM_GOT32, R_ARM_PLT32.

	* elf32-arm.h (elf32_arm_merge_private_bfd_data): Check byte order
	of targets.
	(elf32_arm_final_link_relocate): Change parameters so that entire
	reloc is passed.  Add support for PIC relocs.
	(elf32_arm_relocate_section): Pass entire reloc to
	elf32_arm_final_link_relocate.
	(elf32_arm_check_relocs): Handle new PIC relocs.
	(elf32_arm_adjust_dynamic_symbol): New function.
	(elf32_arm_size_dynamic_sections): New function.
	(elf32_arm_discard_copies): New function.
	(elf32_arm_finish_dynamic_symbol): New function.
	(elf32_arm_finish_dynamic_sections): New function.
	(ELF_MAXPAGE_SIZE): Define.
	(bfd_elf32_bfd_reloc_type_lookup): Define.
	(elf_backend_relocate_section): Define.
	(elf_backend_adjust_dynamic_symbol): Define.
	(elf_backend_create_dynamic_sections): Define.
	(elf_backend_finish_dynamic_symbol): Define.
	(elf_backend_finish_dynamic_sections): Define.
	(elf_backend_size_dynamic_sections): Define.
	(elf_backend_plt_readonly): Define.
	(elf_backend_want_got_plt): Define.
	(elf_backend_want_plt_sym): Define.

Wed Feb 17 12:02:26 1999  Stan Cox  <scox@cygnus.com>

	* elf32-mips.c (_bfd_mips_elf_section_from_shdr): Make reginfo
	sections SEC_LINK_ONCE and SEC_LINK_DUPLICATES_SAME_SIZE.
	(_bfd_mips_elf_fake_sections): Likewise.

Wed Feb 17 12:07:23 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

        * elfarm-oabi.c (bfd_elf32_arm_allocate_interworking_sections,
        bfd_elf32_arm_get_bfd_for_interworking,
        bfd_elf32_arm_process_before_allocation): Define to avoid clash
        with elfarm-nabi.c.

        * elf32-arm.h: Don't declare elf32_arm_info_to_howto.
        (elf32_thumb_to_arm_stub, elf32_arm_to_thumb_stub,
        elf32_arm_find_nearest_line): Make them static.

Tue Feb 16 22:44:37 1999  Ian Lance Taylor  <ian@cygnus.com>

	* elflink.h (elf_merge_symbol): Add pflags parameter.  Change all
	callers.  Do not merge a definition from a shared object with a
	weak undefined symbol.
	(elf_link_add_object_symbols): Do not change the symbol type or
	size if the old symbol overrides the new one.

1999-02-08  Nick Clifton  <nickc@cygnus.com>

	* config.bfd: Add support for strongarm target.

Mon Feb  8 11:18:14 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* elf32-m68k.c (reloc_map): Use the correct types for the struct
	fields instead of unsigned char.

Fri Feb  5 00:22:36 1999  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.am: Rebuild dependencies.
	* Makefile.in: Rebuild.

Thu Feb  4 22:30:13 1999  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Change AC_PREREQ to 2.13.  Remove AM_CYGWIN32.
	Change AM_EXEEXT to AC_EXEEXT and AM_PROG_INSTALL to
	AC_PROG_INSTALL.  Add comments to uses of AC_DEFINE.
	* acinclude.m4: Add comments to uses of AC_DEFINE.
	* acconfig.h: Remove.
	* configure: Rebuild with current autoconf/automake.
	* aclocal.m4: Likewise.
	* config.in: Likewise.
	* Makefile.in: Likewise.

1999-02-04  DJ Delorie  <dj@cygnus.com>

	* libbfd.c (real_read): don't call fread for zero bytes.  This
	covers up a bug (or misuse of bfd) that's exposed by Solaris.

Thu Feb  4 12:38:10 1999  Stan Cox  <scox@cygnus.com>

	* elf32-mips.c (mips_elf_relocate_section): Insure that the target
	of a jump is in the current 256 MB region.

Thu Feb  4 12:15:38 1999  Ian Lance Taylor  <ian@cygnus.com>

	* format.c (bfd_check_format_matches): Change last patch to only
	take effect for the binary target.

Wed Feb  3 19:40:12 1999  Ian Lance Taylor  <ian@cygnus.com>

	* elf32-i386.c (elf_i386_reloc_type_lookup): Add BFD_RELOC_CTOR.

Wed Feb  3 15:02:44 1999  Catherine Moore  <clm@cygnus.com>

	* elf32-fr30.c (fr30_elf_check_relocs):  New routine.

Tue Feb  2 21:38:28 1999  Ian Lance Taylor  <ian@cygnus.com>

	* format.c (bfd_check_format_matches): If the target was
	previously specified, don't check other targets when checking for
	an archive file.

Tue Feb  2 18:16:43 1999  Catherine Moore  <clm@cygnus.com>

        * elf32-arm.h (elf32_arm_reloc_map):  Removed.
        (elf32_arm_reloc_type_lookup):  Removed
        * elfarm-nabi.c (elf32_arm_reloc_map):  New.
        (elf32_arm_reloc_type_lookup):  New.
        * elfarm-oabi.c (elf32_arm_reloc_map):  New.
        (elf32_arm_reloc_type_lookup):  New.

Mon Feb  1 19:49:21 1999  Catherine Moore  <clm@cygnus.com>

        * elfarm-nabi.c:  Renamed from elf32-arm-newabi.c.
        * elfarm-oabi.c:  Renamed from elf32-arm-oldabi.c
        * Makefile.am:  Use new files.
        * Makefile.in:  Regenerate.
        * configure.in:  Use new files.
        * configure:  Regenerate.

1999-02-01  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c (fr30_elf_gc_mark_hook): New function.
	(fr30_elf_gc_sweep_hook): New function.
	(elf_backend_can_gc_sections): Define.

Mon Feb  1 12:21:47 1999  Catherine Moore  <clm@cygnus.com>

        * targets.c (bfd_target_vector):  Add bfd_elf32_littlearm_oabi_vec
        and bfd_elf32_bigarm_oabi_vec.

Mon Feb  1 11:46:31 1999  Catherine Moore  <clm@cygnus.com>

        * Makefile.am (elf32-arm-oldabi.lo):  New.
        (elf32-arm-newabi.lo):  New.
        * Makefile.in:  Regenerate.
        * config.bfd (thumb-*-elf):  Remove definition of targ_underscore.
        (arm-*-elf):  Likewise.
        (arm-*-oabi):  New.
        (thumb-*-oabi):  New.
        * configure:  Regenerate.
        * configure.in (bfd_elf32_littlearm_oabi_vec):  New.
        (bfd_elf32_bigarm_oabi_vec):  New.
        * elf32-arm-newabi.c:  New.
        * elf32-arm-oldabi.c:  New.
        * elf32-arm.c:  Removed.
        * elf32-arm.h:  New.

Mon Feb  1 11:52:12 1999  Frank Ch. Eigler  <fche@cygnus.com>

	* binary.c (binary_set_section_contents): Omit warnings for
	unloadable sections.

1999-01-31  Michael Meissner  <meissner@cygnus.com>

	* config.bfd (powerpc{,le}-*-vxworks*): Add aliases to
	powerpc{,le}-*-eabi.

1999-01-29  Nick Clifton  <nickc@cygnus.com>

	* dwarf2.c (read_unsigned_leb128): Remove unused variables.
	* dwarf2.c (read_signed_leb128): Remove unused variables.

Fri Jan 29 00:47:21 1999  H.J. Lu  <hjl@gnu.org>

	* elf.c (assign_file_positions_for_segments): Only adjust
	p_align when needed.

Thu Jan 28 20:05:22 1999  Ian Lance Taylor  <ian@cygnus.com>

	* binary.c (binary_set_section_contents): Don't return early for a
 	non-loadable section, in case the first section is non-loadable.
  	Don't set the low lma for a SEC_NEVER_LOAD section.  From Maciej
	W. Rozycki <macro@ds2.pg.gda.pl>.

1999-01-28  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c (fr30_reloc_map): Add R_FR30_GNU_VTINHERIT and
	R_FR30_GNU_VTENTRY relocs.

Thu Jan 28 11:08:16 1999  Catherine Moore  <clm@cygnus.com>

       * elflink.h (elf_link_output_sym):  Zero syms which are
       part of sections which have been excluded.

Wed Jan 27 13:35:35 1999  Stan Cox  <scox@cygnus.com>

	* coff-arm.c (_bfd_coff_arm_set_private_flags): Changed F_PIC
	to F_PIC_INT.
	* coffcode.h (coff_set_arch_mach_hook): Removed F_ARM_2a and
	F_ARM_3M labels.  Changed F_PIC to F_PIC_INT.

1999-01-27  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c (fr30_elf_howto_table): Fix name of R_FR30_48
	relocation.
	(fr30_final_link_relocate): Use computed value as result of
	relocation.

1999-01-26  Frank Ch. Eigler  <fche@cygnus.com>

	* binary.c (binary_set_section_contents): Emit warning for
	huge file offsets due to widely-dispersed section LMAs.

Mon Jan 18 03:35:35 1999  Ian Lance Taylor  <ian@cygnus.com>

	* elf.c (assign_file_positions_for_segments): If not D_PAGED,
	align first section to largest section alignment, not first
	section alignment.

1999-01-04  Jason Molenda  (jsm@bugshack.cygnus.com)

	* configure.in: Require autoconf 2.12.1 or higher.

Tue Dec 22 15:21:41 1998  Catherine Moore  <clm@cygnus.com>

        * archures.c (bfd_mach_i386_i386_intel_syntax):  Define.
        * bfd-in2.h:  Likewise.
        * cpu-i386.c (bfd_i386_arch_intel_syntax):  New.

1998-12-16  Gavin Romig-Koch  <gavin@cygnus.com>

	* archures.c,bfd-in2.h (bfd_mach_mips4111): New.
	* cpu-mips.c: Add support for and independent 4111.
	* elf32-mips.c (elf_mips_mach): E_MIPS_MACH_4111 -> bfd_mach_mips4111.
	(_bfd_mips_elf_final_write_processing):
	bfd_mach_mips4111 -> E_MIPS_ARCH_3 | E_MIPS_MACH_4111.

1998-12-15  Gavin Romig-Koch  <gavin@cygnus.com>

	* elf32-mips.c (elf_mips_abi_name): New.
	(_bfd_mips_elf_merge_private_bfd_data): Compare EF_MIPS_ABI flags.

1998-12-12  Gavin Romig-Koch  <gavin@cygnus.com>

	* elf32-mips.c (_bfd_mips_elf_final_write_processing):
	Handle bfd_mach_mips4300.

1998-12-11  Ulrich Drepper  <drepper@cygnus.com>

	* elf32-i386.c: Remove leaked development code from patch
	1998-12-10 by Richard Henderson.

1998-12-10  Richard Henderson  <rth@cygnus.com>

	* elf32-i386.c (elf_i386_relocate_section): Don't fail relocations
	in debug sections for symbol defined externally.

Thu Dec 10 10:58:38 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* targets.c (bfd_target_vector): Remove duplicate entry for
	tekhex_vec.

1998-12-09  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c (fr30_elf_howto_table): Set src_mask fields to 0
	since we are using RELAs.

Tue Dec  8 22:15:48 1998  Ian Lance Taylor  <ian@cygnus.com>

	SCO Open Server Release 5 core file support, from Jouke Numan
	<jnuman@hiscom.nl>:
	* sco5-core.c: New file.
	* configure.in (i[3456]86-*-sco3.2v5*): Use sco5-core.lo.
	(sco5-core.lo): Define SCO5_CORE in COREFLAG.
	* Makefile.am: Rebuild dependencies.
	(OPTIONAL_BACKENDS): Add sco5-core.lo.
	(OPTIONAL_BACKENDS_CFILES): Add sco5-core.c.
	* bfd.c (struct _bfd): Add sco5_core_data field to tdata.
	* targets.c (sco5_core_vec): Add to target list if SCO5_CORE.
	* bfd-in2.h, configure, Makefile.in: Rebuild.

Tue Dec  8 19:38:42 1998  Mark Klein  <mklein@dis.com>

	* config.bfd (hppa*-*-mpeix*): New target.
	* configure.in: Add AC_HEADER_DIRENT.
	(hppa*-*-mpeix*): New target.
	* configure.host (hppa*-*-mpeix*): New host.
	* hpux-core.c: Check HOST_HPPAMPEIX.  Use HAVE_DIRENT_H and
	friends rather than just including <sys/dir.h>.
	* som.h (struct som_symbol): Add hppa_priv_level and apto
	tc_data.  Change all users.
	(struct somdata): Add comp_unit field.
	(obj_som_compilation_unit): Define.
	(bfd_som_attach_compilation_unix): Declare.
	* som.c: Check HOST_HPPAMPEIX.
	(struct som_misc_symbol_info): Add new field priv_level.
	(som_object_setup): Add current_offset parameter.  Change all
	callers.
	(setup_sections): Likewise.
	(som_object_p): For EXECLIBMAGIC, read the lst header.
	(som_write_symbol_strings): Add compilation_unit parameter.
	Change all callers.
	(som_finish_writing): Write out compilation_unit.
	(som_bfd_derive_misc_symbol_info): Set priv_level.
	(som_build_and_write_symbol_table): Set xleast field to 3.
	(som_slurp_symbol_table): Set symbol priv_level.
	(bfd_som_attach_compilation_unit): New function.
	(som_bfd_ar_write_symbol_stuff): Set xleast field to 3.  Set
	priv_level into symbol_value.
	* configure, config.in: Rebuild.

Tue Dec  8 16:21:35 1998  Ian Lance Taylor  <ian@cygnus.com>

	* hpux-core.c (hpux_core_core_file_p): Change call to nonexistent
	warning function to call _bfd_error_handler instead.

	* libbfd.c (COERCE32): Cast through unsigned long and long to
	avoid bug in old version of gcc.

	* elf64-alpha.c (elf64_alpha_additional_program_headers): Remove.
	(elf_backend_additional_program_headers): Don't define.

1998-12-08  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c (fr30_final_link_relocate): Fix PC relative
	relocations to include offset of 2 included in the insns, and the
	offset of the relocs within the section.

Wed Dec  2 15:03:59 1998  David Taylor  <taylor@texas.cygnus.com>

	The following changes were made by David Taylor
 	<taylor@texas.cygnus.com>, Edith Epstein
 	<eepstein@sophia.cygnus.com>, Jim Blandy
 	<jimb@zwingli.cygnus.com>, and Elena Zannoni
 	<ezannoni@kwikemart.cygnus.com> as part of the project to merge in
 	changes originally made by HP; HP did not create ChangeLog
 	entries.

	* aclocal.m4, configure, Makefile.in: Rebuilt using latest
 	automake macro library.

	* hpux-core.c (hpux_core_core_file_p): this function now
 	understands HPUX 10.30 thread info. Yes, the thread stacks can be
 	found in the corefile! Also, in hpux_core_core_file_p, if we
 	encounter a section with an unknown type, don't punt.  Instead,
 	just skip it.  Also, count the number of sections of known type
 	that we encounter.  If we encounter at least one good one, then
 	we'll declare that the file is a core file.  If we encounter any
 	unknown ones but some known ones, then we'll issue a warning (but
 	still declare it to be a core file). Also, correctly decide when a
 	file is not a core.
	(PROC_INFO_HAS_THREAD_ID): define if CORE_ANON_SHMEM defined.
	(CORE_ANON_SHMEM): define if not defined.
	(hpux_core_struct): add members lwpid and user_tid.
	(core_kernel_thread_id, core_user_thread_id): new macros.
	(make_bfd_asection): use bfd_alloc to allocate room for a copy of
 	the name before storing it in the bfd.
	(hpux_core_core_file_p): handle threads.

	* libhppa.h (GET_FIELD): protect against redefinition.
	(HPPA_WIDE): define.
	(GET_FIELD): define.
	(GET_BIT): define.
	(MASK): define.
	(CATENATE): define.
	(ELEVEN): define.
	(sign_extend): redefine.
	(assemble_6): define.
	(assemble_12): rewrite.
	(assemble_16): define.
	(assemble_16a): define.
	(assemble_17): rewrite.
	(assemble_22): define.

1998-12-07  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c (fr30_final_link_relocate): Using signed
	relocations for signed values.

Sun Dec  6 16:30:33 1998  Ian Lance Taylor  <ian@cygnus.com>

	* mipsbsd.c (MY(set_arch_mach)): Make static.
	* aoutx.h (NAME(aout,machine_type)): For bfd_arch_mips, use
	bfd_mach_mips* macros rather than simple numbers.

	COFF weak symbol support, based on patches from Mark Elbrecht
	<snowball3@usa.net>:
	* coffcode.h (coff_slurp_symbol_table): Handle C_WEAKEXT.
	* coffgen.c (coff_renumber_symbols): Handle weak symbols.
	(coff_write_alien_symbol): Likewise.
	* cofflink.c (coff_link_check_ar_symbols): Likewise.
	(coff_link_add_symbols): Likewise.
	(_bfd_coff_link_input_bfd): Likewise.
	(_bfd_coff_write_global_sym): Likewise.

	* elf.c (copy_private_bfd_data): Always initialize the
	includes_phdrs field.

	* elflink.h (elf_fix_symbol_flags): Check for case where a non-ELF
	file defines a symbol first mentioned in an ELF file.

	* bfd-in.h: Always define BFD_HOST_64_BIT and BFD_HOST_U_64_BIT if
	possible, rather than only if BFD64.
	* elflink.h (compute_bucket_count): Just check BFD_HOST_U_64_BIT,
	not __GNUC__.
	* bfd-in2.h: Rebuild.

	* srec.c (srec_set_section_contents): Correct test to avoid
	switching to 4 byte addresses after seeing a second section which
	requires 3 byte addresses.  From Joel Schantz
	<joel.schantz@argosys.boeing.com>.

	* config.bfd (m68*-*-gnu*): New target.  From Aymeric Vincent
	<aymeric.vincent@emi.u-bordeaux.fr>.

1998-12-04  Jim Blandy  <jimb@zwingli.cygnus.com>

	* elf32-ppc.c (ppc_elf_merge_private_bfd_data): Fix logic to
	decide whether the output file is -mrelocatable-lib,
	-mrelocatable, or neither.  (gdb.base/nodebug.exp)

1998-12-03  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c: Add support for R_FR30_48 reloc.
	* reloc.c: Add BFD_RELOC_FR30_48 relocation.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate

Wed Dec  2 00:58:37 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elflink.h (elf_adjust_dynamic_symbol): Warn on an attempt to
	link against a dynamic symbol with no type or size.

1998-12-01  Ulrich Drepper  <drepper@cygnus.com>

	* elf32-i386.c (i386_check_relocs) [R_386_32]: Don't emit
	relocation for section which does not get loaded.
	(elf_i386_relocate_section) [R_386_32]: Likewise.

Tue Dec  1 11:33:33 1998  Jim Wilson  <wilson@cygnus.com>

	* coff-h8300.c (h8300_bfd_link_add_symbols): Make reloc_size,
	reloc_count and i long instead of unsigned long.  Handle error
	return from bfd_canonicalize_reloc.

1998-12-01  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_relocate_section): Detect the absence of
	a hash table.

Mon Nov 30 15:28:09 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* elf32-sh.c (elf/sh.h): Include.
	sh_reloc_type: Delete.  Changed all references to elf_sh_reloc_type.
	(sh_elf_howto_tab): Add HOWTO for R_SH_SWITCH8.
	(sh_reloc_map): Map BFD_RELOC_8_PCREL to R_SH_SWITCH8.
	(sh_elf_relax_delete_bytes): Handle R_SH_SWITCH8.
	* Makefile.in: Add dependency of elf32-sh.lo on $(INCDIR)/elf/sh.h.

Fri Nov 27 17:51:38 1998  Geoff Keating  <geoffk@ozemail.com.au>

	* elflink.h (compute_bucket_count): Don't allow minsize==0, it
	causes division by zero later on.

Thu Nov 26 11:19:35 1998  Dave Brolley  <brolley@cygnus.com>

	* elf32-fr30.c (fr30_elf_pc9_reloc,fr30_elf_pc12_reloc): Not
	needed.

1998-11-25  DJ Delorie  <dj@cygnus.com>

	* coff-i386.c (i3coff_object_p): Remove hack.  Use new emulation
	hook now.

Tue Nov 24 10:25:27 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c (fr30_elf_relocate_section): Call
	fr30_final_link_relocate.
	(fr30_final_link_relocate): New function: Handle I20 and I32
	relocs.
	(fr30_elf_i32_reloc): New function: Handle I32 relocs.
	(fr30_elf_pc9_reloc): New function: Handle 9_PCREL relocs.
	(fr30_elf_pc12_reloc): New function: Handle 12_PCREL relocs.

	* elf32-v850.c (v850_elf_relocate_section): Reset hi16s reloc
	chain to empty.

	The following changes are based on a patch submitted by Gianluca
	Moro <glctr@abc.it>:

	(v850_elf_perform_relocation): Only update a hi16s reloc if it has
	not already been updated.
	(find_remembered_hi16s_reloc): New parameter 'already_found'
	returns state of remembered hi16s reloc.
	(remember_hi16s_reloc): Set 'found' field to false.
	(hi16s_location): Add 'found' field.

1998-11-23  DJ Delorie  <dj@cygnus.com>

	* coff-i386.c (bfd_pe_dll_not_recognized_hack): the linker wants
	to see .DLL files as unrecognized.
	(i3coff_object_p): Sorry, had to hack it to not recognize these
	files (pei-i386) on request.

1998-11-23  DJ Delorie  <dj@cygnus.com>

	* opncls.c (bfd_make_readable): need more cleanup for symbols and
	relents.  Call bfd_check_format to reinitialize.

Fri Nov 20 14:21:36 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c (fr30_elf_relocate_section): Remove spurious
	warnings.

Thu Nov 19 14:42:15 1998  Geoffrey Noer  <noer@cygnus.com>

	* aclocal.m4: regenerate
	* configure: regenerate

Tue Nov 17 20:23:35 1998  Richard Henderson  <rth@cygnus.com>

	* elf-bfd.h (struct elf_link_hash_entry): Add vtable_entries_size.
	* elf.c (_bfd_elf_link_hash_newfunc): Clear it.
	* elflink.h (elf_gc_propagate_vtable_entries_used): Copy it, and
	respect it as an upper bound on what memory to reference.
	(elf_gc_smash_unused_vtentry_relocs): Likewise.
	(elf_gc_record_vtentry): Handle as-yet undefined vtables.  Set and
	update vtable_entries_size appropriately.

Tue Nov 17 15:28:31 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-fr30.c (fr30_reloc_type_lookup): Used integers to hold
	reloc number.

Mon Nov 16 22:19:21 1998  DJ Delorie  <dj@cygnus.com>

	* archive.c (bfd_ar_hdr_from_filesystem): support BFD_IN_MEMORY
 	bfds; they have no "file" so we fake it.
	* bfd-in2.h: add bfd_make_writable and bfd_make_readable (regen)
	* libbfd.c (bfd_write): Allow writing to BFD_IN_MEMORY bfds by
 	resizing the memory buffer.
	* opncls.c (bfd_make_writable): New function; lets you write a
 	bfd_create'd bfd to an in-memory buffer.
	(bfd_make_readable): New function; lets you read back that buffer
 	as if it were from bfd_openr.  Used to build generated archive
 	members (winsup's ld's dlltool)

Mon Nov 16 19:15:19 1998  Dave Brolley  <brolley@cygnus.com>

	* po/bfd.pot: Regenerated.

Mon Nov 16 10:57:06 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (hi16s_location): Replaced fixed size array with
	linked list.

Sun Nov 15 20:28:25 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (elf64_alpha_relax_section): Search for the proper
	element of the gotentry list for local symbols too.
	(elf64_alpha_relocate_section): Unify local and global handling.
	Assert that gotent->use_count > 0.

Sat Nov 14 15:16:01 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in (vms_alpha_vec): Rename from evax_alpha_vec, and
	update for file name changes of July 2, 1998.
	(vms_vax_vec): New.
	* configure: Rebuild.

Thu Nov 12 19:19:54 1998  Dave Brolley  <brolley@cygnus.com>

	* po/bfd.pot: Regenerated.

Tue Nov 10 16:17:06 1998  Geoffrey Noer  <noer@cygnus.com>

	* acinclude.m4, config.bfd: detect cygwin* instead of cygwin32*.
	* aclocal.m4, configure: regenerate

Tue Nov 10 15:13:59 1998  Nick Clifton  <nickc@cygnus.com>

	* elf.c (prep_headers): Add support for bfd_arch_fr30.

Tue Nov 10 13:37:36 1998  Felix Lee  <flee@cygnus.com>

	* acinclude.m4 (BFD_HAVE_SYS_PROCFS_TYPE,
 	BFD_HAVE_SYS_PROCFS_TYPE_MEMBER): didn't define macro when value
 	was cached.
	* aclocal.m4, configure: regenerated.

Tue Nov 10 14:31:01 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-d10v.c (reloc_type):  Add R_D10V_GNU_VTINHERIT and
        R_D10V_GNU_VTENTRY relocs.
        (elf_d10v_howto_table):  Likewise.
        (d10v_reloc_map d10v_reloc_map):  Likewise.
        (elf32_d10v_gc_mark_hook):  New.
        (elf32_d10v_gc_sweep_hook):  New.
        (elf32_d10v_check_relocs):  New.
        (elf32_d10v_relocate_section):  New.
        (elf_backend_relocate_section):  Define.
        (elf_backend_can_gc_sections):  Define.

Sat Nov  7 18:07:51 1998  Peter Schauer  <peter.schauer@regent.e-technik.tu-muenchen.de>

	* Makefile.am (BFD32_BACKENDS): Move vms files here...
	(BFD64_BACKENDS): ...from here.
	(BFD32_BACKENDS_CFILES): Move vms files here...
	(BFD64_BACKENDS_CFILES): ...from here.
	* Makefile.in: Rebuild.

Wed Nov  4 15:58:48 1998  Nick Clifton  <nickc@cygnus.com>

	* Makefile.am: Add FR30 target.
	* Makefile.in: Add FR30 target.
	* archures.c: Add support for FR30.
	* config.bfd: Add support for FR30.
	* configure.in: Add support for FR30.
	* reloc.c: Add support for FR30 relocations.
	* targets.c: Add support for FR30 relocations.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
	* libbfd.h:  Regenerate.
	* cpu-fr30.c: New file.
	* elf32-fr30.c: New file.

Mon Nov  2 14:59:33 1998  Geoffrey Noer  <noer@cygnus.com>

	* configure.in: detect cygwin* instead of cygwin32*
	* configure: regenerate

Sun Nov  1 19:32:28 1998  Jeffrey A Law  (law@cygnus.com)

	* elf-m10300.c (mn10300_elf_relax_section): Do not use alloca,
	use bfd_malloc and free instead and check return value from bfd_malloc.

Sun Nov  1 16:20:35 1998  Ian Lance Taylor  <ian@cygnus.com>

	* libbfd-in.h (_bfd_dwarf1_find_nearest_line): Declare.
	* libbfd.h: Rebuild.

	* elf32-mips.c (mips_elf_dynsym_sec_names): Comment out.
	(SIZEOF_MIPS_DYNSYM_SECNAMES): Likewise.
	(MIPS_TEXT_DYNSYM_SECN): Likewise.
	(_bfd_mips_elf_fake_sections): Don't set sh_info field of a .hash
	section.
	(struct mips_elf_link_hash_table): Remove dynsym_sec_strindex
	field.
	(mips_elf_link_hash_table_create): Don't initialize
	dynsym_sec_strindex.
	(mips_elf_gc_mark_hook): Add default case to avoid warning.
	(mips_elf_size_dynamic_sections): Generate a section symbol for
	every output section.
	(mips_elf_finish_dynamic_sections): Count all sections for
	DT_MIPS_UNREFEXTNO.
	(mips_elf_finish_dynamic_sections): Use dynamic symbols for all
	output sections.

Sun Nov  1 12:46:53 1998  Geoff Keating  <geoffk@ozemail.com.au>

	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Allocate two slots
	for later PLT entries in large PLTs.
	(ppc_elf_finish_dynamic_symbol): Allow for the extra slots.

Sat Oct 31 20:10:09 1998  Jeffrey A Law  (law@cygnus.com)

	* elf32-ppc.c (ppc_elf_reload_section): Fix typo.

1998-10-26 15:58  Ulrich Drepper  <drepper@cygnus.com>

	* elf-bfd.h (struct elf_link_hash_entry): Add new field elf_hash_value.
	* elflink.h (elf_collect_hash_codes): New function.  This function is
	called for each exported symbol and we compute the ELF hash value for
	it.
	(compute_bucket_value): New function.  It is called from
	size_dynamic_sections to determine the hash table size.  When we are
	optimizing a better, but slower, algorithm is used.
	(size_dynamic_sections): Call compute_bucket_value.

	* elf.c (bfd_elf_hash): Optimize the hash function a bit.

Mon Oct 19 20:03:21 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-sh.c:  Add HOWTO entries for R_SH_GNU_VTINHERIT and
        R_SH_GNU_VTENTRY.
        (sh_elf_gc_mark_hook):  New.
        (sh_elf_gc_sweep_hook):  New.
        (sh_elf_check_relocs):  New.
        (elf_backend_can_gc_sections):  Define.

Mon Oct 19 16:57:05 1998  Felix Lee  <flee@cygnus.com>

	* acinclude.m4: undo previous gettext change
	* aclocal.m4: rebuild with right version of aclocal.

Mon Oct 19 01:47:21 1998  Felix Lee  <flee@cygnus.com>

	* acinclude.m4, aclocal.m4: move gettext-related fragments from
 	aclocal.m4 to acinclude.m4, so they don't get lost.

	* elfcore.h: rewrite for better corefile support.
	* elf.c (elfcore_*): new functions.
	* elf-bfd.h (elf_obj_tdata): new structure members.
	* acconfig.h, acinclude.m4, configure.in: add feature-tests for
 	flavor of procfs.
	* aclocal.m4, config.in, configure, Makefile.in: regenerated.

Fri Oct 16 14:07:45 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-m32r.c:  Add HOWTO entries for R_M32R_GNU_VTINHERIT
        and R_M32R_GNU_VTENTRY.
        (elf_backend_can_gc_sections):  Define.
        (m32r_elf_check_relocs):  New.
        (m32r_elf_gc_mark_hook):  New.
        (m32r_elf_gc_sweep_hook):  New.
        (m32r_elf_relocate_section):  Handle VT relocs.

Mon Oct 12 14:18:40 1998  Nick Clifton  <nickc@cygnus.com>

	* coff-arm.c (arm_relocate_section): Remove redundant test.

	* bfd-in2.h (struct reloc_howto_struct): Improve comment to make
	cleat that the 'bitsize' field is the size of the bitfield AFTER
	relocation not before.

	* elf32-m32r.c (R_M32R_18_PCREL): Fix size of bitfield.

	* coff-mips.c (mips_relocate_hi): Cope with missing refhi or reflo
	relocs.

Tue Oct  6 09:20:44 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-sparc.c:  Add HOWTO entries for R_SPARC_GNU_VTINHERIT and
        R_SPARC_GNU_VTENTRY.
        (elf32_sparc_check_relocs):  Handle them.
        (elf32_sparc_reloc_type_lookup):  Likewise.
        (elf32_sparc_relocate_section):  Likewise.
        (elf32_sparc_gc_mark_hook):  New.
        (elf32_sparc_gc_sweep_hook):  New.

Mon Oct  5 14:55:30 1998  Jeffrey A Law  (law@cygnus.com)

	* som.c (som_finish_writing): Perform some sanity checks when
	writing an executable or shared library.

Mon Oct  5 12:02:31 1998  Gavin Romig-Koch  <gavin@cygnus.com>

	* dwarf1.c : New file.  Adds _bfd_dwarf1_find_nearest_line.
	* configure.in (elf): Add dwarf1.lo.
	* elf_bfd.h (elf_ob_tdata): Add dwarf1_find_line_info.
	* elf.c (_bfd_elf_find_nearest_line): Add call to
	_bfd_dwarf1_find_nearest_line.
	* elf32-mips.c (_bfd_mips_elf_find_nearest_line):
	Add call to _bfd_dwarf1_find_nearest_line.
	* configure: Rebuilt.

Mon Oct  5 10:06:22 1998  Catherine Moore  <clm@cygnus.com>

        * elflink.h (elf_gc_sections):  Do not allow garbage
        collection if dynamic sections have been created.

Mon Oct  5 09:07:37 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-v850.c: Add HOWTO entries for R_V850_GNU_VTINHERIT and
        R_V850_GNU_VTENTRY.
        (v850_elf_check_relocs):  Handle VTINHERIT and VTENTRY relocs.
        (v850_elf_perform_relocation):  Likewise.
        (v850_elf_final_link_relocate):  Likewise.
        (v850_elf_relocate_section):  Likewise.
        (v850_elf_gc_sweep_hook):  New routine.
        (v850_elf_gc_mark_hook):  New routine.
        (elf_backend_can_gc_sections):  Define.

Mon Oct  5 09:04:25 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-m68k.c (elf_m68k_gc_sweep_hook):  Don't assume
        that dynobj exists.

Sun Oct  4 23:29:34 1998  David Edelsohn  <edelsohn@mhpcc.edu>

	* rs6000-core.c (rs6000coff_core_file_matches_executable_p):
	Declare size as bfd_size_type.
	(rs6000coff_get_section_contents): Declare count as bfd_size_type.

Sun Oct  4 20:38:29 1998  Jeffrey A Law  (law@cygnus.com)

	* cpu-hppa.c (bfd_hppa20_arch): Define.  Link it into the bfd_hppa_arch
	structure.
	* som.c (CPU_PA_RISC2_0): Define.
	(_PA_RISC2_0_ID): Likewise.
	(som_finish_writing): Use CPU_PA_RISC2_0 for the system_id as needed.

Sun Oct  4 21:19:09 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elflink.h (elf_link_add_object_symbols): When a versioned symbol
	has a base which is already defined, only add the referenced
	symbol to the dynamic symbol table if it is defined or referenced
	by a regular file.

	* elf32-i386.c (elf_i386_info_to_howto_rel): Handle vtable relocs
	correctly.

1998-09-27  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

        * elflink.h (elf_link_add_object_symbols): Undo last change.

Wed Sep 23 16:09:31 1998  Richard Henderson  <rth@cygnus.com>

        * elflink.h (elf_link_add_object_symbols): Don't record a dynamic
        symbol for the indirect alias to a versioned symbol.

Mon Sep 21 12:15:22 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-i386.c (elf32_i386_vtinherit_howto): New.
        (elf32_i386_vtentry_howto): New.
        (elf_i386_reloc_type_lookup):  Return elf32_i386_vtentry_howto
        or elf32_i386_vtinherit_howto  on lookup.

Sun Sep 20 00:48:07 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf32-m68k.c: Include "elf/m68k.h".  Remove definition of enum
	reloc_type.  Rename R_68K__max to R_68K_max.
	(howto_table): Use _bfd_elf_rel_vtable_reloc_fn for a VTENTRY
	reloc.

Sun Sep 20 00:09:25 1998  Chris Torek  <torek@bsdi.com>

	* libbfd.c (bfd_getb32): Rewrite expression to get better code.
	(bfd_getl32, bfd_getb_signed_32, bfd_getl_signed_32): Likewise.

	* libbfd.c (bfd_log2): Cast to bfd_vma before shifting, not
	after.

Sat Sep 19 22:42:23 1998  Doug Rabson  <dfr@nlsystems.com>

	* elflink.h (elf_link_add_object_symbols): Ensure that the warning
	message has a null byte terminator.

Fri Sep 18 14:35:29 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_perform_relocation): Ignore contents of
	word subject to R_V850_32 relocation.

Thu Sep 17 17:20:36 1998  Nick Clifton  <nickc@cygnus.com>

	* dwarf2.c: Add comment describing problem computing line numbers
	for undefined symbols at link time.

Thu Sep 17 16:03:28 1998  Richard Henderson  <rth@cygnus.com>

        * elf64-alpha.c (elf64_alpha_adjust_dynamic_symbol): Don't
        transform a defweak into a plt entry.
        (elf64_alpha_calc_dynrel_sizes): Allow room for secondary
        plt entry references to receive a RELATIVE reloc.
        (elf64_alpha_finish_dynamic_symbol): Fill them in.
        (elf64_alpha_relocate_section): Assert we don't overrun
        the allocated relocation space.

Wed Sep 16 18:03:13 1998  Nick Clifton  <nickc@cygnus.com>

	* elf.c (swap_out_syms): Always treat section symbols as
	special, even if they are attached to a common section.

Wed Sep 16 10:34:13 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_symbol_processing): Move symbols in
	sections with v850 common section attributes into named v850
	common sections.
	(v850_elf_add_symbol_hook): Move symbols in sections with v850
	common section attributes into named v850 common sections.

Wed Sep 16 11:26:49 CDT 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-arm.c (elf32_arm_gc_mark_hook):  Remove print
        statement.

1998-09-15  Geoff Keating  <geoffk@ozemail.com.au>

	* elf32-ppc.c (ppc_elf_relocate_section): Reverse output_offset
	part of Vladimir's change of 1998-08-19.  Make a R_PPC_SDAREL16
	reloc to the wrong section a warning, not an error.  .dynsbss
	is not an output section, so there is no need to check for it.

Tue Sep 15 12:40:05 1998  Catherine Moore  <clm@cygnus.com>

       * elf-bfd.h:  Add argument to elf_backend_get_symbol_type.

Tue Sep 15 08:34:40 1998  Catherine Moore  <clm@cygnus.com>

       * elf.c (swap_out_syms):  Pass type to elf_backend_get_symbol_type.
       * elf32-arm.c:  Add HOWTO entries for R_ARM_GNU_VTINHERIT and
       R_ARM_GNU_VTENTRY.
       (elf32_arm_gc_mark_hook): New.
       (elf32_arm_gc_sweep_hook): New.
       (elf32_arm_check_relocs): New.
       (elf32_arm_final_link_relocate):  Handle VTINHERIT and VTENTRY
       relocations.
       (elf32_arm_relocate_section): Handle VTINHERIT and VTENTRY
       relocations.

1998-09-10  Geoff Keating  <geoffk@ozemail.com.au>

        * elf32-ppc.c (ppc_elf_relocate_section): If dynobj is NULL,
        assume there is no PLT or GOT.

Wed Sep  9 14:24:12 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-arm.c (elf32_arm_find_nearest_line): New function:  just
	like _elf_bfd_find_nearest_line() except that STT_ARM_TFUNC is
	also accepted as a function symbol type.

Mon Sep  7 13:24:03 1998  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>

	* rs6000-core.c (_LONG_LONG):  Define for AIX 4.x only.

Sat Sep  5 20:40:18 1998  Ian Lance Taylor  <ian@cygnus.com>

	* libbfd-in.h (_bfd_nolink_bfd_gc_sections): Correct definition to
	match definition of _bfd_gc_sections field.
	* libbfd.h: Rebuild.

Fri Sep  4 13:54:23 1998  David Miller  <davem@dm.cobaltmicro.com>

	* elf32-sparc.c (elf32_sparc_relocate_section): Properly adjust
	the addend of a dynamic relocation referencing a section.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
	(sparc64_elf_finish_dynamic_symbol): Fix the PLT relocation offset.

Thu Sep  3 17:28:50 1998  Richard Henderson  <rth@cygnus.com>

	* elflink.h (bfd_elfNN_size_dynamic_sections): Verify that the
	bed has a size_dynamic_sections routine before trying to use it.

Mon Aug 31 14:49:22 1998  Richard Henderson  <rth@cygnus.com>

	* elf32-mips.c (elf_mips_gnu_vtentry_howto): Use
	_bfd_elf_rel_vtable_reloc_fn.

Mon Aug 31 10:23:40 1998  Catherine Moore  <clm@cygnus.com>

        * Makefile.am:  Add elf32-arm.c.
        * Makefile.in:  Rebuild.
        * elf-bfd.h:  Add elf_backend_get_symbol_type.
        * elf.c (swap_out_syms):  If defined, call
        elf_backend_get_symbol_type.
        * elf32-arm.c: Define elf_backend_get_symbol_type.
        (elf32_arm_get_symbol-type):  New routine.
        (record_thumb_to_arm_glue):  Change to use STT_ARM_TFUNC.
        (bfd_elf32_arm_process_before_allocation):  Change to
        check for STT_ARM_TFUNC.
        (elf32_arm_final_link_relocate):  Likewise.
        * elfxx-target.h:  Add elf_backend_get_symbol_type.

Fri Aug 28 19:44:07 1998  Richard Henderson  <rth@cygnus.com>

	* archures.c (bfd_mach_alpha_ev[456]): New.
	* cpu-alpha.c: Rework to match these types.
	* bfd-in2.h: Rebuild.

Fri Aug 28 19:38:53 1998  Richard Henderson  <rth@cygnus.com>

	* elf-bfd.h (_bfd_elf_rel_vtable_reloc_fn): Declare.
	* elf.c (_bfd_elf_rel_vtable_reloc_fn): New.

	* elf32-i386.c (elf_howto_table): Add vtable relocs.
	(elf_i386_reloc_type_lookup): Recognize them.
	(elf_i386_check_relocs): Pass them off to generic code.
	(elf_i386_relocate_section): Ignore them.
	(elf_i386_gc_mark_hook, elf_i386_gc_sweep_hook): New.
	(elf_backend_can_gc_sections): True.

Thu Aug 20 15:03:45 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-arm.c (elf32_thumb_to_arm_stub): Check sym_sec is not NULL
	before looking at owner field.
	(elf32_arm_to_thumb_stub): Ditto.
	(elf32_arm_relocate_section): Compute name before calling
	elf32_arm_final_link_relocate().

Thu Aug 20 11:30:17 1998  Michael Snyder  <msnyder@cleaver.cygnus.com>

	* elf.c: comment and formatting cleanups.
	* elfcore.h: ditto.

Wed Aug 19 15:43:26 1998  Michael Snyder  <msnyder@cleaver.cygnus.com>

	* elfcode.h (elf_object_p): Reject files of header type ET_CORE
	(core files are treated differently than object files).
	* elf-bfd.h (_bfd_elf_write_corefile_contents,
	bfd_elf_mkcorefile): declare.
	* elfxx-target.h (_bfd_elf_write_corefile_contents,
	bfd_elf_mkcorefile): add to bfd_target vector.
	* elfcore.h (elf_core_file_p): save the program header table,
	and set the bfd architecture from the elf file header.
	* elf.c (bfd_elf_mkcorefile): new function.
	(_bfd_elf_write_corefile_contents): new function.
	(assign_file_positions_for_segments): add cases for handling
	PT_NOTE segments.  (assign_file_positions_except_relocs):
	core files should be handled the same as exec files.
	(prep_headers): identify core files as type ET_CORE.
	(copy_private_bfd_data): identify the sections belonging to
	the PT_NOTE segment.

	* elf32-sparc.c (elf32_sparc_final_write_processing):
	add break statement to default case.

1998-08-19  Vladimir N. Makarov  <vmakarov@cygnus.com>

	* elf32-ppc.c (ppc_elf_relocate_section): Check that output
	section (not input) will be in sections ".sbss", ".sbss2",
	".sdata", and ".sdata" for R_PPC_SDAREL16, R_PPC_EMB_SDA2REL,
	R_PPC_EMB_SDA21, R_PPC_EMB_RELSDA.  In all these cases also ignore
	output_offset for correct evaluation of addend.

Tue Aug 18 11:48:12 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-arm.c: Add prefix bfd_ to elf32_arm_get_bfd_for_interworking,
        elf32_arm_allocate_interworking_sections and
        elf32_arm_process_before_allocation.

Tue Aug 18 11:46:00 1998  Nick Clifton  <nickc@cygnus.com>

        * bfd-in.h: Ammend prototype for
        elf32_arm_process_before_allocation to remove surplus third
        argument.

        * bfd-in2.h: Regenerate.

Sat Aug 15 20:55:08 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (elf64_alpha_relax_section): Handle indirect symbols.

Fri Aug 14 09:12:28 1998  Stan Cox  <scox@cygnus.com>

	* aoutx.h (aout_link_input_section_ext): Use the relocation already
	calculated for RELOC_SPARC_REV32 case.

Thu Aug 13 14:02:02 1998  Catherine Moore  <clm@cygnus.com>

       * bfd-in.h:  Add prototypes for elf32_arm_get_bfd_for_interworking,
       elf32_arm_allocate_interworking_sections and
       elf32_arm_process_before_allocation.
       * bfd-in2.h:  Regenerated.
       * elf32-arm.c Define elf32_arm_link_hash_table.
       (insert_thumb_branch): New routine.
       (find_thumb_glue): New routine.
       (find_arm_glue): New routine.
       (record_arm_to_thumb_glue): New routine.
       (record_thumb_to_arm_glue): New routine.
       (elf32_arm_link_hash_table_create): New routine.
       (elf32_arm_get_bfd_for_interworking): New routine.
       (elf32_arm_allocate_interworking_sections) New routine.
       (elf32_arm_process_before_allocation) New routine.
       (elf32_thumb_to_arm_stub): New routine.
       (elf32_arm_to_thumb_stub): New routine.
       (elf32_print_private_bfd_data): Fix typo.
       (elf32_arm_final_link_relocate):  Add argument sym_sec.
       Check for branches to thumb symbols in case R_ARM_PC24.
       Check for branches to arm symbols in case R_ARM_THM_PC22.
       (elf32_arm_relocate_section):  Pass symbol section to
       elf32_arm_final_link_relocate.

Wed Aug 12 19:00:39 1998  Geoff Keating  <geoffk@ozemail.com.au>

	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Generate PLT
	entries unless the symbol is defined in the executable; in
	particular, undefined weak symbols get a PLT entry.

Wed Aug 12 14:48:33 1998  Ian Lance Taylor  <ian@cygnus.com>

	* libaout.h: Remove nested comment to avoid warning.

Wed Aug 12 08:10:11 1998 Catherine Moore  <clm@cygnus.com>

       * elf32-arm.c (elf32_arm_final_link_relocate):  Rework
       R_ARM_PC24 relocation.

Tue Aug 11 14:42:26 1998  Catherine Moore  <clm@cygnus.com>

       * elf32-arm.c (elf32_arm_final_link_relocate):  Remove unused
       argument is_local.  Add argument sym_flags.  Check sym_flags
       in R_ARM_ABS32 case.  Include addend for R_ARM_THM_PC22 case.
       (elf32_arm_relocate_section):  Don't pass local sym and pass
       sym_flags to elf32_arm_final_link_relocate.

Mon Aug 10 20:38:39 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (elf64_alpha_calc_dynrel_sizes): Correct last change
	to not count too few relocs for dynamicly linked executables.

Mon Aug 10 15:35:34 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Never consider
	symbols without a dynamic index dynamic.  Consider all weak
	symbols dynamic.
	(elf64_alpha_strip_section_from_output): Don't assume 1-1
	correspondance between input and output sections.

Mon Aug 10 15:31:39 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elflink.h (elf_gc_common_finalize_got_offsets): For backends
	that use a .got.plt section start the got offset at zero.

Mon Aug 10 17:31:21 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ieee.c (ieee_write_processor): Correct the processor ID written
	out for bfd_arch_m68k, accommodating change of March 25.

Sun Aug  9 20:55:44 1998  Catherine Moore  <clm@cygnus.com>

        * elf32-arm.c (elf32_arm_final_link_relocate):  Rework
        R_ARM_THM_RPC22 relocations.

Sat Aug  8 15:15:30 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Undef weak symbols
	are always dynamic.
	(elf64_alpha_calc_dynrel_sizes): Allow enough room for RELATIVE
	.got relocs in -Bsymbolic shared objects.

Wed Aug  5 15:48:08 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-arm.c: Add private flags to ELF header.
	(elf32_arm_print_private_bfd_data): New Function.
	(elf32_arm_set_private_flags): New Function.
	(elf32_arm_copy_private_flags): New Function.
	(elf32_arm_merge_private_bfd_data): New Function.

Mon Aug  3 17:10:15 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf32-sparc.c (elf32_sparc_check_relocs): Permit WPLT30 against
	a local symbol.
	(elf32_sparc_relocate_section): Likewise.

Sun Aug  2 03:19:23 1998  Richard Henderson  <rth@cygnus.com>

	* elf32-ppc.c (ppc_elf_check_relocs): Init sgot to NULL.  Create the
	.got if any relocation referrs to _GLOBAL_OFFSET_TABLE_.
	(ppc_elf_relocate_section): Pull sgot and splt search to the start
	of the function.  Recognize no .plt as static linking.

1998-08-01  Ulrich Drepper  <drepper@cygnus.com>

	* elf32-mips.c (_bfd_mips_elf_section_from_shdr): Don't pass
	".liblist" string through gettext.

Fri Jul 31 16:38:14 1998  Catherine Moore  <clm@cygnus.com>

        * Makefile.am: Add support for elf32-arm.lo.
        * Makefile.in: Rebuild.
        * config.bfd (arm-*-elf):  Define targ_defvec and targ_selvecs.
        (thumb-*-elf): Define targ_defvec and targ_selvecs.
        * configure.in:  Handle bfd_elf32_littlearm_vec and bfd_elf32_bigarm_vec.
        * configure: Regenerate.
        * elf.c: (prep_headers):  Support arch_type of EM_ARM.
        * targets.c:  Support new targets bfd_elf32_bigarm_vec and
        bfd_target bfd_elf32_littlearm_vec.
        * elf32-arm.c:  New file.

Tue Jun 28 19:05:28 1998  Stan Cox  <scox@cygnus.com>

	* libaout.h (M_SPARCLITE_LE): New machine.
	* sunos.c (MACHTYPE_OK): Add machine M_SPARCLITE_LE.
	* aoutf1.h (sunos_set_arch_mach): Add machine M_SPARCLITE_LE.
	(sunos_write_object_contents): Add machine bfd_mach_sparc_sparclite_le
	* aoutx.h (howto_table_ext): Add relocation R_SPARC_REV32.
	(NAME(aout,machine_type)) Add machine bfd_mach_sparc_sparclite_le
	(aout_link_input_section_ext): Add RELOC_SPARC_REV32 support.
	* elf32-sparc.c (_bfd_sparc_elf_howto_table, sparc_reloc_map,
	elf32_sparc_relocate_section): Rename R_SPARC_32LE to be R_SPARC_REV32
	* libbfd.h (bfd_reloc_code_real_names): Rename BFD_RELOC_SPARC_32LE to
	be BFD_RELOC_SPARC_REV32.
	* reloc.c: Ditto.
	* config.bfd (sparc86x-*-aout): New

Fri Jul 24 13:54:19 1998  Nick Clifton  <nickc@cygnus.com>

	* linker.c (_bfd_generic_final_link): Allocate NULL symbol before
	actually mapping the output sections.

Fri Jul 24 11:24:29 1998  Jeffrey A Law  (law@cygnus.com)


	* elf-m10300.c (mn10300_elf_howto): Add R_MN10300_24 entry.
	(mn10300_elf_reloc_map): Similarly.
	(mn10300_elf_final_link_relocate): Handle R_MN10300_24.

Fri Jul 24 12:36:04 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf32-mips.c (elf_mips_howto_table): Add reloc types used on
	Irix 6.
	(bfd_elf32_bfd_reloc_type_lookup): Add default case.
	* elf64-mips.c: Replace all uses of mips_elf64_reloc_type with
	elf_mips_reloc_type defined in elf/mips.h.

1998-07-24  Ulrich Drepper  <drepper@cygnus.com>

	* elf64-mips.c: Remove reloc_type definition completely.  It's now
	in elf/mips.h.

Thu Jul 23 13:33:19 1998  Doug Evans  <devans@canuck.cygnus.com>

	* elf64-mips.c (mips_elf64_reloc_type): #if 0 out more relocations
	as they are defined in elf/mips.h now.

Thu Jul 23 11:29:43 1998  Jeffrey A Law  (law@cygnus.com)


	* Re-add lost change:
        * elf-m10300.c (elf32_mn10300_link_hash_entry): Add new field
        "movm_stack_size".
        (mn10300_elf_relax_section): Include stack space for register saves
        in the imm8 field of a "call" instruction.
        (compute_function_info): Determine how much stack is allocated by
        the movm instruction.  Fix typo.
        (elf32_mn10300_link_hash_newfunc): Initialize movm_stack_size.

Thu Jul 23 11:38:05 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf32-sparc.c (elf_backend_got_header_size): Define as 4.
	* elf64-sparc.c (elf_backend_got_header_size): Define as 8.

1998-07-22  Ulrich Drepper  <drepper@cygnus.com>

	* elf32-ppc.c: Change use of pp_reloc_type to elf_ppc_reloc_type.

Wed Jul 22 16:27:18 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-hppa.h: Let ELF header define the enum containing the
	external reloc numbers.
	* elf32-i386.h: Likewise.

1998-07-22 14:57  Ulrich Drepper  <drepper@cygnus.com>

	* elf-m10300.c: Let ELF header now define the macros to get the enum.
	* elf32-mips.c: Likewise.
	* elf32-ppc.c: Likewise.

Wed Jul 22 13:53:52 1998  Nick Clifton  <nickc@cygnus.com>

	* bfd-in2.h: Change type of 'class' parameter to 'unsigned int' in
	bfd_coff_set_symbol_class(), in order to avoid K&R compatability
	prblems.
	* bfd-in.h: Regenerate.
	* coffgen.c (bfd_coff_set_symbol_class): Change type of 'class'
	parameter to 'unsigned int' to avoid K&R compatability problems.

Wed Jul 22 16:43:24 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ieee.c (ieee_find_nearest_line): Change filename_ptr and
	functionname_ptr to be const.  Change line_ptr to be unsigned.

	* coffcode.h (coff_link_output_has_begun): Simplify handling when
	macro is not defined.  Change second parameter from bfd_link_info
	to coff_final_link_info.  Add prototype.
	(coff_final_link_postscript): Simplify handling when macro is not
	defined.  Add prototype.

1998-07-22 13:08  Ulrich Drepper  <drepper@cygnus.com>

	* elf-mn10300.c: Before include system specific ELF header define
	START_RELOC_NUMBERS, RELOC_NUMBER, and END_RELOC_NUMBERS.
	* elf32-mips.c: Likewise.
	* elf32-ppc.c: Likewise.

Wed Jul 22 13:46:51 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf64-mips.c (mips_elf64_reloc_type): Copy Ulrich's elf32-mips.c
	temporary patch over to elf64-mips.c as well.

1998-07-21  Ulrich Drepper  <drepper@cygnus.com>

	* elf32-mips.c (reloc_type): Temporarily disable definition of
	standard relocation since they are now defined in elf/mips.h.

Tue Jul 21 09:47:00 1998  Catherine Moore  <clm@cygnus.com>

        * elf-m10200.c (mn10200_elf_final_link_relocate):
        Modify range test for case R_MN10200_8.

        * elf-m10300.c (mn10300_elf_final_link_relocate):
        Modify range test for case R_MN10300_8.

Mon Jul 20 18:50:54 1998  Richard Henderson  <rth@cygnus.com>

	* elf-bfd.h (struct elf_backend_data): Add got_ & plt_header_size.
	* elf32-i386.c (elf_backend_got_header_size): Define.
	(elf_backend_plt_header_size): Define.
	* elf32-m68k.c, elf32-mips.c, elf32-ppc.c: Likewise.
	* elf32-sparc.c, elf64-alpha.c, elf64-sparc.c: Likewise.
	* elfxx-target.h: Provide a default of zero.
	* elflink.c (_bfd_elf_create_got_section): Use got_header_size.
	* elflink.h (elf_gc_common_finalize_got_offsets): Likewise.

	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't remove a PLT
	entry from an executable, even if the plt refcount goes to 0.

Mon Jul 20 12:47:26 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* aoutx.h (NAME(aout,find_nearest_line)): Also remember the
	directory name at the line number.

	* elf.c (_bfd_elf_find_nearest_line): Also consider symbols
	with an unspecified type.

Wed Jul 15 11:20:01 1998  Ian Lance Taylor  <ian@cygnus.com>

	* sunos.c: Add undef of valid to avoid problem on SunOS.

Tue Jul 14 15:30:59 1998  Richard Henderson  <rth@cygnus.com>

	* config.bfd (i?86-pc-beos{pe,elf,}*): Recognize.

Tue Jul 14 11:22:21 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf32-m68k.c (elf_m68k_check_relocs): Also reference count
	R_68K_PCxx and R_68K_xx relocations.  Make sure that
	ELF_LINK_HASH_NEEDS_PLT is always set for a PLT reloc reference.
	(elf_m68k_gc_sweep_hook): Also reference count R_68K_PCxx and
	R_68K_xx relocations.
	(elf_m68k_adjust_dynamic_symbol): Reset the plt offset of a symbol
	that has no plt entry.
	(elf_m68k_relocate_section): Ignore the plt offset in a static
	link.
	* elflink.h (elf_adjust_dynamic_symbol): Reset the plt offset for
	an ignored symbol.
	(elf_gc_common_finalize_got_offsets): Set the got offsets also in
	a static link.

	* elf32-m68k.c (R_68K_GNU_VTINHERIT, R_68K_GNU_VTENTRY): New reloc
	types.
	(howto_table, reloc_map): Add entries for them.
	(elf_m68k_check_relocs): Handle them.  Implement reference
	counting for got and plt entries.
	(elf_m68k_gc_mark_hook, elf_m68k_gc_sweep_hook): New functions.
	(elf_m68k_adjust_dynamic_symbol): Handle unreferenced plt
	symbols.
	(rtype_to_howto_rel, elf_info_to_howto_rel): Delete.
	(elf_m68k_relocate_section): Handle the new reloc types.
	(bfd_elf32_bfd_final_link, elf_backend_gc_mark_hook,
	elf_backend_gc_sweep_hook, elf_backend_can_gc_sections): Define.
	* elflink.h (elf_link_add_object_symbols): When creating an
	indirect reference for symbol versioning also copy the plt
	offset.
	(elf_fix_symbol_flags): When clearing the ELF_LINK_HASH_NEEDS_PLT
	flag also reset the plt offset.
	(elf_link_assign_sym_version): Likewise.
	(elf_gc_common_finalize_got_offsets): Increment the got offset by
	the size of the entry in bytes.
	(elf_gc_allocate_got_offsets): Likewise.

Tue Jul 14 11:18:14 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elflink.h (elf_gc_sections): Return true rather than falling off
	the bottom.

	* coffgen.c (bfd_coff_set_symbol_class): Call bfd_alloc, not
	xmalloc.

Mon Jul 13 11:06:31 1998  Nick Clifton  <nickc@cygnus.com>

	* coff-arm.c: Supress definition of TARGET_UNDERSCORE and add a
	comment describing when it should be enabled.
	Changed definition of USER_LABEL_PREFIX to "", to fall into line
	with GCC sources.

Mon Jul 13 13:06:54 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ieee.c (ieee_slurp_external_symbols): Handle call optimization
	information ATN records.

Fri Jul 10 16:31:06 1998  Ian Lance Taylor  <ian@cygnus.com>

	* ieee.c (ieee_slurp_external_symbols): Select an appropriate
	section for an absolute symbol in a fully linked file.  Based on
	patch from Christian Holland <CHolland@de.lucent.com>.

Wed Jul  8 11:29:56 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* coff-m88k.c (m88k_special_reloc): Don't lose the information
	that a symbol is undefined.

Tue Jul  7 21:47:02 1998  Jeffrey A Law  (law@cygnus.com)

	* som.c (som_bfd_gc_sections): Define.

Mon Jul  6 11:35:50 1998  Nick Clifton  <nickc@cygnus.com>

	* coff-arm.c (aoutarm_std_reloc_howto): Do not complain about
	overflows in ARM_26D patches, since they have already been
	implmented.  Patch submitted by Dr. R.J. Black <rjb@dcs.gla.ac.uk>

Sat Jul  4 12:25:36 1998  Ian Lance Taylor  <ian@cygnus.com>

	* coffcode.h (coff_write_object_contents): If we have any long
	section names, call coff_write_symbols even if there are no
	symbols.

Fri Jul  3 13:11:35 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf.c (copy_private_bfd_data): Only set phdr_included once for a
	PT_LOAD segment, rather than only setting it once for the entire
	file.

	* elf.c (_bfd_elf_make_section_from_shdr): When setting the LMA,
	rather than ignoring every phdr with a p_paddr of 0, ignore all
	the phdrs if they all have a p_paddr of 0.

	* stabs.c (_bfd_write_stab_strings): Check whether the .stabstr
	section was discarded from the link.

Fri Jul  3 14:39:05 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* coff-sh.c (sh_insn_uses_freg): Ignore lowest bit of register number.

Fri Jul  3 14:35:48 1998  J"orn Rennecke <amylaar@cygnus.co.uk>

	* coff-sh.c (sh_insns_conflict): Load of fpscr conflicts with
	floating point operations.

Thu Jul  2 18:37:25 1998  Ian Lance Taylor  <ian@cygnus.com>

	* cofflink.c (_bfd_coff_link_input_bfd): Skip undefined global
	function symbols.

Thu Jul  2 14:59:42 1998  Klaus Kaempf  <kkaempf@rmi.de>

	Merge of vax/vms (read-only) support
	* configure.com: Support Vax target.
	* makefile.vms: Support Vax target.
        * vms.h: Renamed from evax.h, merged vax/vms (read-only) support.
	* vms.c: Renamed from evax-alpha.c, merged vax/vms (read-only)
	support.
	* vms-hdr.c: Renamed from evax-emh.c, merged vax/vms (read-only)
	support.
	* vms-gsd.c: Renamed from evax-egsd.c, merged vax/vms (read-only)
	support.
	* vms-tir.c: Renamed from evax-etir.c, merged vax/vms (read-only)
	support.
	* vms-misc.c: Renamed from evax-misc.c, merged vax/vms (read-only)
	support.
	* libbfd.c (real_read): Use unbuffered read on VMS/Vax.
	* targets.c (bfd_target_ovax_flavour): New flavour.
	(vms_alpha_vec): Renamed from evax_alpha_vec.
	(vms_vax_vec): New.
	(target_vector): Update accordingly.
	* config.bfd (alpha*-*-*vms*): Use vms_alpha_vec, not
	evax_alpha_vec.
	(vax*-*-*vms*): New target.
	* Makefile.am: Update for renamed files.  Rebuild dependencies.
	* bfd-in2.h: Rebuild.
	* configure.in, Makefile.in, aclocal.m4: Rebuild.

Thu Jul  2 13:31:55 1998  Ian Lance Taylor  <ian@cygnus.com>

	Based on patch from Matt Semersky <matts@scd.hp.com>:
	* linker.c (_bfd_generic_final_link): Force a trailing NULL
	pointer on abfd->outsymbols.
	(generic_add_output_symbol): Handle NULL sym parameter.

Wed Jul  1 17:05:53 1998  Nick Clifton  <nickc@cygnus.com>

	* elf.c (copy_private_bfd_data): Add support for changing VMA or
	LMA of sections.

Wed Jul  1 16:58:50 1998  Ian Lance Taylor  <ian@cygnus.com>

	* coff-sh.c (sh_relax_delete_bytes): Correct address comparisons
 	when handling 32 bit immediate relocs.
	* elf32-sh.c (sh_elf_relax_delete_bytes): Likewise.

Tue Jun 30 09:55:03 1998  Jeffrey A Law  (law@cygnus.com)

	* section.c (STD_SECTION): Account for recently added gc_mark
	field in struct asection.

	* elf-m10300.c (bfd_mn10300_elf_merge_private_bfd_data): New function.
	(bfd_elf32_bfd_merge_private_bfd_data): Define.

Thu Jun 25 18:31:41 1998  Richard Henderson  <rth@cygnus.com>

	ELF Section-level Garbage Collection:
	* bfd.c (bfd_gc_sections): New.
	* aout-adobe.c: Hook to default implementation.
	* aout-target.h, aout-tic30.c, binary.c, bout.c: Likewise.
	* coff-alpha.c, coff-mips.c, coff-rs6000.c, coffcode.h: Likewise.
	* evax-alpha.c, i386msdos.c, i386os9k.c, ieee.c: Likewise.
	* ihex.c, nlm-target.h, oasys.c, ppcboot.c, srec.c: Likewise.
	* tekhex.c, versados.c: Likewise.
	* libbfd-in.h (_bfd_nolink_bfd_gc_sections): New.
	* targets.c (BFD_JUMP_TABLE_LINK): Add _bfd_gc_sections.

	* reloc.c (BFD_RELOC_VTABLE_INHERIT, BFD_RELOC_VTABLE_ENTRY): New.
	(bfd_generic_gc_sections): New.
	* section.c (SEC_KEEP): New.
	(asection): Add gc_mark member.

	* elfcode.h (elf_gc*): New name remappings.
	* elflink.h (elf_link_input_bfd): Don't set contents on stabs
	sections to be excluded.
	(elf_gc_mark, elf_gc_sweep, elf_gc_sweep_symbol): New.
	(elf_gc_propogate_vtable_entries_used): New.
	(elf_gc_smash_unused_vtentry_relocs): New.
	(elf_gc_sections, elf_gc_record_vtinherit, elf_gc_record_vtentry): New.
	(elf_gc_common_finalize_got_offsets): New.
	(elf_gc_allocate_got_offsets, elf_gc_common_final_link): New.
	* elfxx-target.h: Add and default gc hooks.

	* elf-bfd.h (struct elf_link_hash_entry): Swap got_offset/plt_offset
	for unions.
	(struct elf_obj_tdata): Likewise for local_got_offsets.
	* elf.c, elf-i386.c, elf32-m68k.c, elf32-mips.c: Update all uses.
	* elf32-ppc.c, elf32-sparc.c, elf64-alpha.c: Likewise.
	* elf64-sparc.c, elflink.h: Likewise.

	* elf-bfd.h (struct elf_link_hash_entry): Add vtable members.
	(ELF_LINK_HASH_MARK): Define.
	(struct elf_backend_data): Add GC hooks.
	* elf.c (_bfd_elf_link_hash_newfunc): Zero vtable members.

	* elf-m10300.c (mn10300_elf_check_relocs): New.
	(mn10300_elf_gc_mark_hook): New.
	(R_MN10300_GNU_VTINHERIT, R_MN10300_GNU_VTENTRY): New.
	(elf_mn10300_howto, mn10300_reloc_map): Handle them.
	(mn10300_elf_final_link_relocate): Likewise.
	(mn10300_elf_relocate_section): Likewise.
	(elf_backend_can_gc_sections): Define.
	* elf32-mips.c (R_MIPS_GNU_VTINHERIT, R_MIPS_GNU_VTENTRY): New.
	(elf_mips_gnu_vtinherit_howto, elf_mips_gnu_vtentry_howto): New.
	(bfd_elf32_bfd_reloc_type_lookup): Handle them.
	(mips_info_to_howto_rel): Likewise.
	(mips_elf_relocate_section): Likewise.
	(mips_elf_check_relocs): Likewise.
	(mips_elf_gc_mark_hook, mips_elf_gc_sweep_hook): New.
	(elf_backend_can_gc_sections): Define.
	* elf32-ppc.c (R_PPC_GNU_VTINHERIT, R_PPC_GNU_VTENTRY): New.
	(ppc_elf_howto_raw): Handle them.
	(ppc_elf_reloc_type_lookup): Likewise.
	(ppc_elf_relocate_section): Likewise.
	(ppc_elf_check_relocs): Reference count .got and .plt entires.
	Handle new vtable relocs.
	(ppc_elf_adjust_dynamic_symbol): Recognize unused .plt entries.
	(ppc_elf_gc_mark_hook, ppc_elf_gc_sweep_hook): New.
	(elf_backend_can_gc_sections): Define.

Fri Jun 26 10:48:23 1998  Jeffrey A Law  (law@cygnus.com)

	* archures.c (bfd_mach_mn10300): Define.
	* elf-m10300.c: Include elf/mn10300.h
	(elf_mn10300_mach): New function.
	(_bfd_mn10300_elf_final_write_processing): Likewise.
	(_bfd_mn10300_elf_object_p): Likewise.
	(elf_backendfinal_write_processing): Define.
	(elf_backend_object_p): Likewise.

Thu Jun 25 18:31:08 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_perform_relocation): Fix HI16_S
	relocation.

Wed Jun 24 17:17:57 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elflink.h (elf_bfd_final_link): Loop over input_bfds using the
	link_next field, not the next field.

Sun Jun 21 19:38:39 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf.c (map_sections_to_segments): Check the section address
	against the phdr size both with and without a modulo of
	maxpagesize.

Fri Jun 19 17:08:18 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf32-mips.c (mips_elf_size_dynamic_sections): Only strip a
	linker created empty input section if the output section has the
	same name.

	* elflink.h (elf_link_output_extsym): Print an error message if
	_bfd_elf_section_from_bfd_section fails.

	* elf.c (_bfd_elf_section_from_bfd_section): Call bfd_set_error on
	failure.

Tue Jun 16 11:55:55 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf.c (copy_private_bfd_data): Improve handling of Solaris
 	native linker output.  Avoid putting an empty section in more than
 	one segment.

Fri Jun 12 13:30:17 1998  Tom Tromey  <tromey@cygnus.com>

	* po/Make-in (all-yes): If maintainer mode, depend on .pot file.
	($(PACKAGE).pot): Unconditionally depend on POTFILES.

Fri Jun 12 13:34:02 1998  Doug Evans  <devans@canuck.cygnus.com>

	* elf.c (swap_out_syms): New arg relocatable_p.
	Don't add section VMA to symbols for relocatable output.
	(_bfd_elf_compute_section_file_positions): Update call to
	swap_out_syms.

Mon Jun  8 15:20:57 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_perform_relocation): Make comparisons
	against 'addend' be signed rather than unsigned.

Sat Jun  6 00:31:21 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-m32r.c: Add prototyps for static functions.

	* coff-arm.c: Add prototypes for static functions.

Fri Jun  5 17:21:51 1998  Nick Clifton  <nickc@cygnus.com>

	* elf.c (elf_sort_sections): Sort by LMA first then VMA, since the
	LMA is used to order sections in a segment.

	* elf32-v850.c: Add prototypes for static functions.
	Change type of addend parameter to bfd_vma in various functions.

Fri Jun  5 18:09:58 1998  Ian Lance Taylor  <ian@cygnus.com>

	* aoutx.h (howto_table_ext): Change RELOC_BASE13 to use
	complain_overflow_signed instead of complain_overflow_bitfield.

Fri Jun  5 15:11:11 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf.c (elf_map_symbols): Don't add section VMA to symbol value
	when comparing against 0.

Wed Jun  3 17:52:49 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.am (config.status): New target.
	* Makefile.in: Rebuild.

Wed Jun  3 12:18:24 1998  Stan Cox  <scox@equinox.cygnus.com>

	* elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Give an
	error if previous object endianness doesn't match current object.

Tue Jun  2 17:50:59 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_print_private_bfd_data): Call
	_bfd_elf_print_private)bfd_data ().

Tue Jun  2 15:29:35 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elflink.h (elf_merge_symbol): Don't always set type_change_ok
	and size_change_ok.
 	(elf_link_add_object_symbols): Set type_change_ok and
	size_change_ok before calling elf_merge_symbol.

	* elf32-mips.c (mips_elf_relocate_section): If we issue an
	undefined symbol error, don't also issue an overflow error.

Tue Jun  2 13:51:00 1998  Geoff Keating  <geoffk@ozemail.com.au>

	* elf32-ppc.c (ppc_elf_relocate_section): The target of an
	R_PPC_LOCAL24PC relocation should be local; if not, print an error
	message instead of crashing.

Mon Jun  1 18:23:12 1998  Yuli Barcohen  <yuli.barcohen@telrad.co.il>

	* archures.c (bfd_mach_cpu32): Define.
	(bfd_default_scan): Add case for 68060.  Fix 68332 case to use
	bfd_mach_cpu32.
	* cpu-m68k.c (arch_info_struct): Add m68k:cpu32.
	* ieee.c: Include <ctype.h>.
	(ieee_object_p): Parse out process ID string to make it more
	likely to be acceptable for bfd_scan_arch.
	* bfd-in2.h: Rebuild.

Mon Jun  1 11:12:02 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-m32r.c (m32r_elf_print_private_bfd_data): Also call
	_bfd_elf_print_private_bfd_data() so that the program header will
	be displayed.

Mon Jun  1 12:14:28 1998  Ian Lance Taylor  <ian@cygnus.com>

	* peicode.h (coff_swap_sym_in): Check for C_SECTION rather than
	0x68.  Reindent.  Add some comments.

Fri May 29 09:58:08 1998  Nick Clifton  <nickc@cygnus.com>

	* elf.c (copy_private_bfd_data): Adjust physical address of
	segment in output BFD to contain LMAs of its sections.

Tue May 26 19:37:47 1998  Stan Cox  <scox@equinox.cygnus.com>

	* elf32-sparc.c (_bfd_sparc_elf_howto_table, sparc_reloc_map,
	elf32_sparc_relocate_section): Added R_SPARC_32LE for little
	endian data 32 bit relocations.
	(elf32_sparc_merge_private_bfd_data): Check if linking little
	endian objects with big endian objects.
	(elf32_sparc_object_p): Set bfd_mach_sparc_sparclite_le.
	(elf32_sparc_final_write_processing): Set EF_SPARC_LEDATA in e_flags.
	* libbfd.h (bfd_reloc_code_real_names): Added BFD_RELOC_SPARC_32LE.
	* reloc.c: Same.
	* cpu-sparc.c (arch_info_struct): Added sparc:sparclite_le
	* archures.c (bfd_mach_sparc_sparclite_le): New.
	* bfd-in2.h (BFD_RELOC_SPARC_32LE, bfd_mach_sparc_sparclite_le): New.

Thu May 21 16:59:28 1998  Nick Clifton  <nickc@cygnus.com>

	* peicode.h (add_data_entry): Fix precedence of operators in if ()
	statement.

Tue May 19 18:41:19 1998  Ian Lance Taylor  <ian@cygnus.com>

	* bfd-in.h: Move over patch to bfd-in2.h.

	* reloc.c (bfd_check_overflow): Add casts before shifts which may
 	not fit in 32 bits.
	(_bfd_relocate_contents): Likewise.

Mon May 18 14:44:15 1998  Nick Clifton  <nickc@cygnus.com>

	* peicode.h (add_data_entry): If the section has no private data
	then do not create a Data Dictionary entry for it.

Mon May 18 00:09:28 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (elf64_alpha_relax_section): Set again on changes.
	(elf64_alpha_can_merge_gots, elf64_alpha_merge_gots,
	elf64_alpha_size_got_sections): Rewrite, handling multiple got
	subsections during relaxation more correctly.

Thu May 14 14:22:58 1998  Nick Clifton  <nickc@cygnus.com>

	* bfd-in2.h: Add new prototype: bfd_coff_set_symbol_class ().
	Add extra argument to bfd_arm_process_before_allocation ().
	* bfd-in.h: Reflect changes made in bfd-in2.h.
	* coffgen.c (bfd_coff_set_symbol_class): New function.  Set the
	coff class of a BFD symbol.
	* coff-arm.c: Add support for interworking between Thumb code and
	non-interworking aware ARM code.

Sun May 10 22:33:59 1998  Jeffrey A Law  (law@cygnus.com)

	* po/Make-in (install-info): New target.

Thu May  7 17:40:56 1998  Ian Lance Taylor  <ian@cygnus.com>

	* filemode.c: Remove; not used.

	If sysdep.h includes a header file, don't include it again:
	* aix386-core.c: Don't include <stdio.h>, <stddef.h>, or
	<errno.h>.
	* aoutx.h: Don't include <string.h>.  Use "sysdep.h" rather than
	<sysdep.h>.
	* archive.c: Don't include <string.h> or <errno.h>.
	* evax-alpha.c; Don't include <stdio.h>.
	* evax-egsd.c: Likewise.
	* evax-etir.c: Likewise.
	* evax-misc.c: Likewise.
	* evax-emh.c: Likewise.  Also, don't include <sys/types.h>.
	* hppabsd-core.c: Don't include <stdio.h>, <sys/types.h>, or
	<errno.h>.
	* hpux-core.c: Likewise.
	* netbsd-core.c: Likewise.
	* som.c: Likewise.
	* libbfd.c: Don't include <sys/types.h>.
	* nlmcode.h: Don't include <string.h>.
	* osf-core.c: Don't include <string.h> or <stdio.h>.
	* ptrace-core.c: Don't include <stdio.h>, <sys/types.h>,
	<errno.h>, or <unistd.h>.
	* trad-core.c: Don't include <stdio.h> or <sys/types.h>.

Thu May  7 13:12:50 1998  Klaus Kaempf  <kkaempf@progis.de>

	* configure.com: If the version number can not be found in
	configure.in, set it to "unknown" rather than "2.8.1".

Wed May  6 09:46:05 1998  Gavin Koch  <gavin@cygnus.com>

	* elf32-mips.c (elf_mips_mach): New.
	(_bfd_mips_elf_object_p): Use elf_mips_mach.
	(_bfd_mips_elf_final_write_processing): Use the names
	of machines, rather than the numbers.  Set both the ARCH
	and MACH in e_flags.  Handle a few more specific machines.
	(_bfd_mips_elf_merge_private_bfd_data): Merge both
	EF_MIPS_ARCH and EF_MIPS_MACH.

Tue May  5 21:01:53 1998  Richard Henderson  <rth@cygnus.com>

	* syms.c (bfd_is_local_label): Revert last change.
	* srec.c (srec_write_symbols): Discard debugging symbols.

Tue May  5 23:36:06 1998  Ian Lance Taylor  <ian@cygnus.com>

	* som.c: Include <ctype.h>.
	* som.h: Don't include sysdep.h.

Tue May  5 18:29:24 1998  Tom Tromey  <tromey@cygnus.com>

	* libbfd.h: Rebuilt.
	* libbfd-in.h: Removed gettext includes and defines.
	* sysdep.h: Moved gettext-related includes and defines here.

Tue May  5 16:47:54 1998  Richard Henderson  <rth@cygnus.com>

	* srec.c (srec_write_symbols): Use bfd_is_local_label rather than
	an ad-hoc test.  Kill bogus #if 0 code.
	* syms.c (bfd_is_local_label): Consider BSF_DEBUGGING symbols local.

Mon May  4 16:10:33 1998  Ian Lance Taylor  <ian@cygnus.com>

	* sunos.c (sunos_check_dynamic_reloc): Don't use the PLT address
	when generating a normal executable for a symbol defined in a
	regular file.  When copying a reloc into the output file, adjust
	the addend for a PC relative reloc against a global symbol.

Mon May  4 10:08:18 1998  Tom Tromey  <tromey@cygnus.com>

	* libbfd.h: Rebuilt.
	* libbfd-in.h (_): Define as dgettext.

Mon May  4 11:02:23 1998  Ian Lance Taylor  <ian@cygnus.com>

	* coff-arm.c (coff_arm_relocate_section): Cast to bfd_signed_vma,
	not signed.
	* peicode.h (pe_saved_coff_bfd_print_private_bfd_data): Use PARAMS
	when declaring parameter types.
	(pe_saved_coff_bfd_copy_private_bfd_data): Likewise.

Wed Apr 29 15:35:03 1998  Ian Lance Taylor  <ian@cygnus.com>

	* config.bfd: If we include any ELF targets in targ_defvec and/or
	targ_selvecs, then add the generic ELF targets to targ_selvecs.
	* elf32-gen.c (dummy): New static const variable.
	(elf_generic_info_to_howto): New static function.
	(elf_generic_info_to_howto_rel): New static function.
	(elf_info_to_howto): Define as elf_generic_info_to_howto.
	(elf_info_to_howto_rel): Define as elf_generic_info_to_howto_rel.
	* elf64-gen.c: Same changes as elf32-gen.c.
	* elfcode.h (elf_object_p): For the generic target, ignore a
	failure of bfd_default_set_arch_mach.  Fix indentation a bit.

Tue Apr 28 20:05:52 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in (WIN32LIBADD): Add -lintl on cygwin32.
	* configure: Rebuild.

Tue Apr 28 12:16:57 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* config.bfd:  Update OSR5/Unixware patterns.

Mon Apr 27 18:02:24 1998  Richard Henderson  <rth@cygnus.com>

	* elf.c (assign_file_positions_for_segments): Allow for holes
	between sections added by a link script.

Mon Apr 27 11:49:55 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Change version number to 2.9.4
	* configure: Rebuild.

	Based on patch from H.J. Lu <hjl@gnu.org>:
	* elf.c (bfd_elf_get_bfd_needed_list): New function.
	* bfd-in.h (bfd_elf_get_bfd_needed_list): Declare.
	* bfd-in2.h: Rebuild.

Sat Apr 25 20:07:53 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (struct alpha_relax_info): Replace elfsym with other.
	Change all users.

Sat Apr 25 18:29:07 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (struct alpha_relax_info): Add tsec & elfsym members.
	(elf64_alpha_relax_section): Fill them in.
	(elf64_alpha_relax_opt_call): Implement more than a stub.
	(elf64_alpha_add_symbol_hook): Don't set SEC_LOAD or default
	alignment on .scommon.
	(elf64_alpha_merge_gots): Merge use counts as well.

Sat Apr 25 14:07:29 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (elf64_alpha_relax_section): Use the proper section
	for calculating a local symbol's address.
	(elf64_alpha_calc_got_offsets): Skip entries with 0 use count.
	Set the .got's cooked size as well as the raw size.

Fri Apr 24 09:16:00 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_print_private_bfd_data): Add
	internationalisation of printed information.

	* coff-arm.c (coff_arm_print_private_bfd_data): Add
	internationalisation of printed information.

Fri Apr 24 12:09:18 1998  Ian Lance Taylor  <ian@cygnus.com>

	* syms.c (struct indexentry): Change directory_name, file_name,
	and function_name fields to char *.
	(struct stab_find_info): Change cached_file_name field to char *.

Thu Apr 23 08:13:04 1998  Nick Clifton  <nickc@cygnus.com>

	* peicode.h (dir_names): Add missing N_() macros to dir_names array.

Wed Apr 22 13:06:15 1998  Tom Tromey  <tromey@cygnus.com>

	* po/Make-in (MKINSTALLDIRS): Don't look in $(top_srcdir).

Wed Apr 22 17:48:48 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.am (install-data-local): Make $(includedir).
	* Makefile.in: Rebuild.

Wed Apr 22 13:06:15 1998  Tom Tromey  <tromey@cygnus.com>

	* libbfd-in.h: Use `gettext' and not `dgettext' for now.

Wed Apr 22 12:53:40 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.am (INCLUDES): Add -I$(srcdir)/../intl -I../intl.
	* Makefile.in: Rebuild.

	* bfd-in2.h: Rebuild for Nick's changes.

Tue Apr 21 23:11:51 1998  Richard Henderson  <rth@cygnus.com>

	* archive.c (_bfd_generic_read_ar_hdr_mag): Fix lossage in last
	change wrt length == max_namelen.

Tue Apr 21 21:19:36 1998  Tom Tromey  <tromey@scribbles.cygnus.com>

	* Many files: Added gettext invocations around user-visible
	strings.
	* libbfd-in.h: Added gettext includes and defines.
	* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
	HAVE_LC_MESSAGES): Define.
	* configure.in: Call CY_GNU_GETTEXT.  Create po/Makefile.in and
	po/Makefile.
	* Makefile.am (SUBDIRS): Added po.
	(POTFILES): New macro.
	(po/POTFILES.in): New target.
	(SOURCE_HFILES): New macro.
	(HFILES): Use it.
	* po/Make-in, po/POTFILES.in, po/bfd.pot: New files.

Tue Apr 21 13:38:18 1998 Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)

	* elfcore.h (bfd_prstatus):  Copy core_prstatus from the first
	NT_PRSTATUS note section encountered, it contains the status of
	the currently executing thread when the core file was written.

Tue Apr 21 10:00:12 1998  Nick Clifton  <nickc@cygnus.com>

	* libcoff.h: Add extra parameter to
	bfd_coff_link_output_has_begun overrideable function.
	* cofflink.c: Pass extra parameter to
	bfd_coff_link_output_has_begun function.
	* bfd-in.h: Add prototypes for exported ARM interworking
	functions.
	* peicode.h: ARM specific code reorganised to conform to BFD
	coding conventions.
	* coffcode.h: ARM specific code reorganised to conform to BFD
	coding conventions.
	* coff-arm.c: Code reorganised to conform to the BFD coding
	conventions.  Global variables have been moved into an ARM
	specific hash table structure and a new function:
	bfd_arm_get_bfd_for_interworking() has been created which is
	called from the linker scripts.

Tue Apr 21 00:11:51 1998  Richard Henderson  <rth@cygnus.com>

	* archive.c (_bfd_generic_read_ar_hdr_mag): Simplify end-of-name test.

	* elf64-alpha.c (elf64_alpha_find_reloc_at_ofs): Renamed from
	elf64_alpha_relax_find_reloc_ofs.  Changed all callers.
	(elf64_alpha_add_symbol_hook): Put small commons in .scommon not .sbss.
	(elf64_alpha_size_got_sections): Don't merge .got sections twice.

Sat Apr 18 01:21:04 1998  Stan Cox  <scox@cygnus.com>

	* config.bfd: Added sparc86x support.

Fri Apr 17 22:29:04 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf32-mips.c (mips_elf_relocate_section): Do not complain about
	an out of range pc-relative jump/call to an undefined weak symbol.

Thu Apr 16 13:49:00 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c (elf64_alpha_do_reloc_gpdisp): Do all gpdisp
	comparisons signed.

Thu Apr 16 11:43:33 1998  Ian Lance Taylor  <ian@cygnus.com>

	* archive.c (bfd_generic_archive_p): If a slurp subroutine returns
 	an error other than bfd_error_system_call, set the error to
 	bfd_error_wrong_format.

	* targets.c (bfd_target_vector) [SELECT_VECS not defined]: Add
	bfd_elf32_powerpcle_vec.

	* elf.c (copy_private_bfd_data): If all the p_paddr fields in the
	program segments are zero, don't set p_paddr_valid.

Wed Apr 15 22:15:16 1998  Richard Henderson  <rth@cygnus.com>

	* elf64-alpha.c: Initial implementation of relaxation --
	(struct alpha_elf_link_hash_entry): Add use_count member.
	(elf64_alpha_check_relocs): Initialize and increment it.
	(elf64_alpha_can_merge_gots): Check it when considering merging.
	(elf64_alpha_merge_gots): Drop entries with zero use.
	(elf64_alpha_calc_got_offsets_for_symbol): Likewise.
	(elf64_alpha_always_size_sections): Split out got sizing ...
	(elf64_alpha_size_got_sections): ... here.  New function.
	(elf64_alpha_relax_find_reloc_ofs): New function.
	(elf64_alpha_relax_with_lituse): Likewise.
	(elf64_alpha_relax_without_lituse): Likewise.
	(elf64_alpha_relax_opt_call): Likewise.
	(elf64_alpha_relax_section): Likewise.
	(elf64_alpha_add_symbol_hook): Likewise.
	(elf64_alpha_howto_table): Implement GPRELHIGH/LOW & IMMED_GP_16.
	(elf64_alpha_relocate_section): Likewise.
	(bfd_elf64_bfd_relax_section): Define.
	(elf_backend_add_symbol_hook): Likewise.

Wed Apr 15 16:08:46 1998  Richard Henderson  <rth@cygnus.com>

	* elf.c (prep_headers): Use new EM_SPARCV9 symbol.
	* elf64-sparc.c (ELF_MACHINE_CODE): Likewise.
	(ELF_MACHINE_ALT1): New.  Set to EM_OLD_SPARC64.

Wed Apr 15 11:34:33 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Add -lkernel32 to WIN32LIBADD on cygwin32.
	* configure: Rebuild.

Mon Apr 13 16:46:27 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.am (libbfd_la_LIBADD): Add @WIN32LIBADD@.
	(libbfd_la_LDFLAGS): Add @WIN32LDFLAGS@.
	* configure.in: Define and substitute WIN32LDFLAGS and
	WIN32LIBADD.
	* aclocal.m4: Rebuild with new libtool.
	* configure, Makefile.in: Rebuild.

Fri Apr 10 13:44:27 1998  Ian Lance Taylor  <ian@cygnus.com>

	* coffcode.h (coff_write_object_contents): Move a PE COMDAT symbol
	before any other symbols in the same section.

Wed Apr  8 14:50:23 1998  Michael Meissner  <meissner@cygnus.com>

	* config.bfd (powerpc*-*-*): Remove PowerPC NT support from ELF
	systems.

Tue Apr  7 16:25:31 1998  Gavin Romig-Koch  <gavin@cygnus.com>

	* dwarf2.c (comp_unit): Move it earlier in the source. Add
	addr_size.
	(read_address): Replace 'bdf*' argument with 'comp_unit*' argument.
        Use addr_size for address size, rather than sizeof(bfd_vma).
	(read_attribute): Replace bdf* argument with 'comp_unit*' argument.
	Fix call to read_address.
	(decode_line_info): Replace bdf* argument with 'comp_unit*' argument.
	Scrap other unneeded arguments.  Fix call to read_address.
	(scan_unit_for_functions): Fix call to read_attribute.
	(parse_comp_unit): We now handle more values for addr_size.
	Set addr_size in unit.  Fix call to read_attribute and
	decode_line_info.

Tue Apr  7 15:44:47 1998  Gavin Romig-Koch <gavin@cygnus.com>

	* dwarf2.c (parse_comp_unit): Drop use of unit->name when it is null.

Tue Apr  7 12:35:18 1998  Ian Lance Taylor  <ian@cygnus.com>

	* archures.c (bfd_default_scan): Add m68k cases back to default
	switch, reverting patch of March 25, since IEEE support depends
	upon them.

Mon Apr  6 14:06:40 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.am (diststuff): New target.
	* Makefile.in: Rebuild.

Sun Apr  5 16:21:44 1998  Jeffrey A Law  (law@cygnus.com)

	* som.c (som_bfd_ar_write_symbol_stuff): Fix computation of
	som_offset when we have an extended name table.

Sun Apr  5 16:04:39 1998  H.J. Lu  <hjl@gnu.org>

	* Makefile.am (stamp-lib): Check that .libs/libbfd.a exists before
	trying to copy it.
	* Makefile.in: Rebuild.

Fri Apr  3 11:09:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf32-m68k.c (elf_m68k_size_dynamic_sections): Generate section
	symbols when creating a shared library.
	(elf_m68k_adjust_dynindx): New function, used by above code.
	(elf_m68k_finish_dynamic_sections): Initialize the section
	symbols.
	(elf_m68k_relocate_section): Change abort to BFD_ASSERT.

Wed Apr  1 16:04:02 1998  Nick Clifton  <nickc@cygnus.com>

	* coff-arm.c (in_reloc_p): Use ARM_RVA32 in place of constant
	value 11.

Wed Apr  1 13:36:58 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf32-m68k.c (elf_m68k_relocate_section, case R_68K_PLT*O): Fix
	assertion.

Tue Mar 31 00:12:12 1998  Jeffrey A Law  (law@cygnus.com)

	* elf-m10300.c (mn10300_elf_relax_section): Correctly handle
	absolute symbols.

Mon Mar 30 12:46:15 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Set version to 2.9.1.
	* configure: Rebuild.

	* Branched binutils 2.9.

Mon Mar 30 12:20:50 1998  Brent Baccala  <baccala@freesoft.org>

	* syms.c (ENABLE_CACHING): Define.
	(struct indexentry): Define.
	(struct stab_cache): Remove.
	(cmpindexentry): New static function.
	(struct stab_find_info): Add new fields: indextable,
	indextablesize, cached_indexentry, cached_offset, cached_stab, and
	cached_file_name.  Remove fields: file_cache, function_cache, and
	line_cache.
	(_bfd_stab_section_find_nearest_line): Rewrite to build a sorted
	index table and search it.

Mon Mar 30 10:39:34 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf.c (_bfd_elf_copy_private_section_data): Call
	copy_private_bfd_data once we've seen the last SEC_ALLOC section.

	* cpu-mips.c: Remove trailing comma at end of enumeration list.

Sat Mar 28 16:33:02 1998  Ian Lance Taylor  <ian@cygnus.com>

	* coff-arm.c: Define all globally visible variables and functions
	only when COFF_WITH_PE is not defined.
	* configure.in (armpe_little_vec, armpe_big_vec): Add
	coff-arm.lo.
	* configure: Rebuild.

Fri Mar 27 16:06:02 1998  Ian Lance Taylor  <ian@cygnus.com>

	Fix some gcc -Wall warnings:
	* aout-arm.c (MY(fix_pcrel_26)): Add casts to avoid warnings.
	* archive.c (_bfd_generic_read_ar_hdr_mag): Likewise.
	* archures.c (bfd_default_scan): Likewise.
	* bfd.c (bfd_scan_vma): Likewise.
	* binary.c (mangle_name): Likewise
	* coff-arm.c (aoutarm_fix_pcrel_26): Likewise.
	* coff-sh.c (sh_relocate_section): Likewise.
	* coff-stgo32.c (create_go32_stub): Likewise.
	* coffcode.h (coff_slurp_line_table): Likewise.
	* ecoff.c (_bfd_ecoff_write_armap): Likewise.
	* elf.c (_bfd_elf_make_section_from_shdr): Likewise.
	(assign_file_positions_for_segments): Likewise.
	* elf32-mips.c (mips_elf_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise.
	* oasys.c (oasys_write_sections): Likewise.
	* ppcboot.c (ppcboot_object_p): Likewise.
	(mangle_name): Likewise.
	* riscix.c (riscix_fix_pcrel_26): Likewise.
	* srec.c (srec_scan): Likewise.
	* stabs.c (_bfd_write_section_stabs): Likewise.
	* sunos.c (sunos_add_dynamic_symbols): Likewise.
	* aout-ns32k.c (_bfd_ns32k_relocate_contents): Add default case to
	switch.  Declare parameters for function pointers.
	* archures.c (bfd_default_scan): Add braces to avoid ambiguous if
	warning.
	* elf.c (elf_sort_sections): Likewise.
	* coff-arm.c (coff_thumb_pcrel_common): Initialize relocation.
	Add default cases to switches.
	(coff_arm_relocate_section): Remove unused local variables.
	Always set rstat.
	(coff_arm_bfd_set_private_flags): Change flag variable to type
	flagword.
	* coff-mips.c (mips_relocate_section): Initialize use_lo.
	* coff-ppc.c (ppc_record_toc_entry): Change i to unsigned int.
	(dump_toc): Change cat to const, and initialize it.
	* coff-sh.c (sh_relax_delete_bytes): Initialize start and voff.
	* elf32-sh.c (sh_elf_relax_delete_bytes): Likewise.
	(sh_elf_relocate_section): Initialize r_symndx.
	* coffcode.h (coff_compute_section_file_positions): Only declare
	old_sofar if ALIGN_SECTIONS_IN_FILE.
	(coff_write_object_contents): Initialize csym.
	* coffgen.c (coff_pointerize_aux): Make type and class unsigned.
	* cpu-ns32k.c (_bfd_ns32k_get_displacement): Add default case to
	switch.
	* dwarf2.c: Include libiberty.h.
	(read_2_signed_bytes, read_4_signed_bytes): Comment out.
	(decode_line_info): Remove unused local variables.
	* elf32-m32r.c (m32r_elf_sda16_reloc): Likewise.
	(m32r_elf_relocate_section): Likewise.
	* elf32-v850.c (v850_elf_store_addend_in_insn): Likewise.
	(v850_elf_reloc): Likewise.
	* elf-bfd.h (elf_linker_section_t): Make alignment unsigned.
	(struct elf_obj_tdata): Make cverdefs and cverrefs unsigned.
	* elf.c (assign_file_positions_for_segments): Always set adjust.
	* elf32-d30v.c (bfd_elf_d30v_reloc): Initialize tmp_addr.  Fully
	parenthesize expression.
	* elf32-m32r.c (m32r_elf_relocate_section): Always initialize h.
	(m32r_elf_object_p): Return a value.
	(m32r_elf_print_private_bfd_data): Change fprintf format string.
	* elf32-mips.c (mips_elf_final_link): Initialize last.
	(mips_elf_finish_dynamic_sections): Initialize last and dindx.
	* elf32-v850.c (v850_elf_object_p): Return a value.
	(v850_elf_print_private_bfd_data): Change fprintf format string.
	* elfcode.h (elf_slurp_symbol_table): Change symcount and i to
	unsigned long.
	* elflink.h (elf_link_add_object_symbols): Change vernum to
	unsigned int, and initialize it.  Change fprintf format string.
	(NAME(bfd_elf,size_dynamic_sections)): Cast -1 to bfd_size_type
	when setting or comparing to soname_indx.
	(elf_create_pointer_linker_section): Change num_symbols to
	unsigned int.
	* libcoff-in.h (coff_data_type): Change flags to flagword.
	* peicode.h (pe_print_idata): Initialize idx.  Change j to
	bfd_size_type.  Initialize hint_member.  Remove useless test to
	time_stamp.
	(pe_print_edata): Change num_functions and num_names in struct
	EDT_type to unsigned long.  Remove cast.  Change fprintf format
	string.
	* ppcboot.c (ppcboot_object_p): Change i to size_t.
	* reloc.c (bfd_get_reloc_size): Change return type to unsigned
	int.
	* reloc16.c (bfd_coff_reloc16_relax_section): Change shrinks to
	int *.  Update uses.  Change j to long.
	* bfd-in2.h, libcoff.h: Rebuild.

Fri Mar 27 10:10:46 1998  Catherine Moore <clm@cygnus.com>

	* elf32-v850.c Remove definition of USE_REL.
	(v850_elf_info_to_howto_rela): New function.
	(v850_elf_perform_relocation):  Renamed from
	v850_elf_store_addend_in_insn.  Removed replace argument.
	(v850_elf_reloc): store the relocation in the addend field instead
	of the insn.
	(v850_elf_final_link_relocate):  Now calls
	v850_elf_perform_relocation.
	(v850_elf_relocate_section):  Remove code to generate REL
	relocations.

Thu Mar 26 13:32:17 1998  Ian Lance Taylor  <ian@cygnus.com>

	* coffcode.h (coff_new_section_hook): Set the type and storage
	class in the native symbol information allocated for a new section
	symbol.

Thu Mar 26 10:13:41 1998  Nick Clifton  <nickc@cygnus.com>

	* peicode.h: Chain together calls to
	coff_bfd_copy_private_bfd_data and
	coff_bfd_print_private_bfd_data.

	* coff-arm.c: Add prototypes for
	coff_arm_bfd_print_private_bfd_data and
	coff_arm_bfd_copy_private_bfd_data.

Wed Mar 25 15:45:55 1998  Nick Clifton  <nickc@cygnus.com>

	* coffcode.h (coff_mkobject_hook): Set private falgs even for a PE
	build.

	* peicode.h: Call arm-coff private data functions after handling
	pe private data.

	* coff-arm.c: Turn statics into globals so that they can be shared
	both pe and pei backends.

Wed Mar 25 15:19:38 1998  Ian Lance Taylor  <ian@cygnus.com>

	* aoutf1.h (sunos_set_arch_mach): Use bfd_mach_m68* rather than
	plain numbers.
	(sunos_write_object_contents): Likewise.
	* aoutx.h (NAME(aout,machine_type)): Likewise.
	* coffcode.h (coff_set_arch_mach_hook): Likewise.

Wed Mar 25 13:59:24 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* archures.c (bfd_mach_m68*): Add definitions for various m68k
	variants.
	(bfd_default_scan): Remove m68k special cases.
	* bfd-in2.h: Rebuild.
	* mipsbsd.c (MY(write_object_contents)): Use bfd_mach_m68* rather
	than plain numbers.
	* sparclynx.c (NAME(lynx,set_arch_mach)): Likewise.
	* cpu-m68k.c (arch_info_struct): Likewise.  Add entry for
	m68k:68000.
	(bfd_m68k_arch): Set mach field to zero to signal no explicit
	selection, change printable_name to just "m68k" and make that the
	default instead of m68k:68020.

	* aout-tic30.c (NAME): Define this to avoid multiple definitions
	from aoutx.h.
	(MY_get_section_contents): Define as aout_32_get_section_contents
	rather than NAME(aout,get_section_contents).

	* elf-m10300.c (elf32_mn10300_link_hash_table_create): Fix cast.

	* evax-alpha.c (evax_set_arch_mach): Only accept bfd_arch_alpha
	and call bfd_default_set_arch_mach to do the real work.

Wed Mar 25 10:41:35 1998  Richard Henderson  <rth@cygnus.com>

	* bout.c (BALX): Include return register g14 as part of the insn.
	(BALX_MASK): New.
	(calljx_callback): Use it.

Wed Mar 25 11:19:28 1998  Ian Lance Taylor  <ian@cygnus.com>

	* libbfd-in.h (BFD_ALIGN): Cast this parameter to bfd_vma.
	* libbfd.h: Rebuild.

	* elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Change
	byte_count to unsigned int.
	(mn10300_elf_relax_section): Initialize internal_relocs.  Remove
	unused local variables.

	* evax-alpha.c (evax_close_and_cleanup): Remove unused local
	variables er and er1.

	* cpu-v850.c: Include <ctype.h>.
	(scan): Case isdigit argument to unsigned char.

	From Yan Meroth <YAN.MEROTH@st.com>:
	* ihex.c (ihex_scan): Add extbase variable so that getting an
 	extended linear address record does not ignore any previous
 	extended address.
	(ihex_write_object_contents): When writing out an extended linear
 	address record, zero out any previous extended address.

Tue Mar 24 16:09:43 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* ieee.c (do_one): Check section before dereferencing it.
	(ieee_canonicalize_reloc): Likewise with src->relent.sym_ptr_ptr.
	(ieee_generic_stat_arch_elt): Likewise with abfd->my_archive.

Mon Mar 23 18:51:47 1998  Joel Sherrill  <joel@OARcorp.com>

	* config.bfd: (sh*-*-rtems*): Switched from ELF to COFF.

Mon Mar 23 14:23:36 1998  Nick Clifton  <nickc@cygnus.com>

	* coff-arm.c: Add interworking functions to pe backends.

Fri Mar 20 18:47:20 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Use AM_DISABLE_SHARED.
	* aclocal.m4, configure: Rebuild with libtool 1.2.

Fri Mar 20 11:25:41 1998  Nick Clifton  <nickc@cygnus.com>

	* coff-arm.c (coff_arm_relocate_section): Better error messages
	when interowrking conflucts occur.  Courtesy of Jonathan Walton
	and Tony Thompson.
	(aoutarm_std_reloc_howto): Fixed bitsize fields of rightshifted
	relocations.  Patch courtesy of Jonathan Walton and Tony
	Thompson.

Fri Mar 20 02:26:43 1998  Richard Henderson  <rth@cygnus.com>

	* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Revert
	part of Feb 22 change controling when to override the existing
	symbol with the .plt entry.

Wed Mar 18 09:26:25 1998  Nick Clifton  <nickc@cygnus.com>

	* config.bfd (targ_cpu): Add thumb-pe target.

	* coffcode.h (OTHER_GLOBAL_CLASS): Support thumb external
	functions in PE build.

Sun Mar  8 23:37:26 1998  Stan Cox  <scox@equinox.cygnus.com>

	* config.bfd (sparclite-*-elf*): Added.

Mon Feb 23 19:31:19 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Add elf.lo to elf shell variable.
	* Makefile.am (BFD_LIBS): Remove elf.lo.
	(BFD_LIBS_CFILES): Remove elf.c.
	(BFD32_BACKENDS): Add elf.lo.
	(BFD32_BACKENDS_CFILES): Add elf.c.
	* configure, Makefile.in: Rebuild.

1998-02-23 15:53  Richard Henderson  <rth@cygnus.com>

	* elf32-i386.c (elf_i386_relocate_section): A pc-relative
	relocation against a now-local symbol should not have a dynamic
	relocation.

Mon Feb 23 16:17:08 1998  Ian Lance Taylor  <ian@cygnus.com>

	* peicode.h (coff_swap_filehdr_in): Don't set BFD flag HAS_SYMS in
	COFF filehdr flags.
	(pe_print_private_bfd_data): Print PE flags.  From Mikey
	<jeffdb@netzone.com>.

Sun Feb 22 20:39:00 1998  Richard Henderson  <rth@cygnus.com>

	* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Don't create
 	a plt entry when we can determine that we authoritatively define
 	the symbol.

Sun Feb 22 20:33:05 1998  Richard Henderson  <rth@cygnus.com>

	* configure.in (COREFILE selection): Remove sparc-*-linux*.  They
	don't actually use trad-core, but a SunOS-style core file handled
	by gdb directly.
	* hosts/sparclinux.h: Remove.

Wed Feb 18 15:31:06 1998  Ian Lance Taylor  <ian@cygnus.com>

	* peicode.h (pe_print_idata): If there is no .idata section, look
	for the import tables in some other section.  Make the initial
	label line up better with the data.  Print the import address
	table even if there is no import name table.  If the import
	address table holds actual addresses, print them.

Tue Feb 17 12:58:34 1998  Ian Lance Taylor  <ian@cygnus.com>

	* libbfd.c (bfd_seek): If fseek fails, save errno around call to
	bfd_tell.  If errno is EINVAL, set bfd_error_file_truncated, not
	bfd_error_system_call.

Fri Feb 13 13:11:33 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.am (AUTOMAKE_OPTIONS): Define.
	* configure, Makefile.in, aclocal.m4: Rebuild with automake 1.2e.

	From H.J. Lu <hjl@gnu.org>:
	* Makefile.am (libbfd_la_LDFLAGS): Define.
	* Makefile.in: Rebuild.

Thu Feb 12 17:31:11 1998  Ian Lance Taylor  <ian@cygnus.com>

	NetBSD patches from Gordon W. Ross <gwr@mc.com>:
	* netbsd.h (MACHTYPE_OK): Define.
	(MY(write_object_contents)): Use DEFAULT_ARCH and DEFAULT_MID when
	calling N_SET_MACHTYPE, rather than having a switch.
	* libaout.h (enum machine_type): Add M_PMAX_NETBSD, M_VAX_NETBSD,
	and M_ALPHA_NETBSD.
	* i386netbsd.c (MACHTYPE_OK): Don't define.
	(DEFAULT_MID): Define.
	* m68k4knetbsd.c (SEGMENT_SIZE): Don't define.
	(MACHTYPE_OK): Don't define.
	(DEFAULT_MID): Define.
	* m68knetbsd.c: (MACHTYPE_OK): Don't define.
	(DEFAULT_MID): Define.
	* ns32knetbsd.c (MACHTYPE_OK): Don't define.
	(DEFAULT_MID): Define.
	* sparcnetbsd.c (MACHTYPE_OK): Don't define.
	(DEFAULT_MID): Define.

	NetBSD patches from Gordon W. Ross <gwr@mc.com>:
	* vaxnetbsd.c: New file.
	* netbsd-core.c: Clean up.  Remove unused macros.  Use netbsd
	rather than netbsd_core.
	* targets.c (vaxnetbsd_vec): Declare.
	(bfd_target_vector): Add vaxnetbsd_vec.  If NETBSD_CORE is
	defined, add netbsd_core_vec.
	* configure.in: Set COREFILE for alpha*-*-netbsd* and
	powerpc-*-netbsd* to netbsd-core.lo.  If COREFILE is
	netbsd-core.lo, set COREFLAG to -DNETBSD_CORE.
	* config.bfd (alpha*-*-netbsd*): New target.
	* Makefile.am: Rebuild dependencies.
 	(BFD32_BACKENDS): Add vaxnetbsd.lo.
	(BFD32_BACKENDS_CFILES): Add vaxnetbsd.c.
	* configure, Makefile.in: Rebuild.

	* configure.host: Remove the old shared library build stuff.  We
	now use libtool instead.

Wed Feb 11 17:13:09 1998  Richard Henderson  <rth@cygnus.com>

	* tekhex.c (tekhex_write_object_contents): Call tekhex_init.

Tue Feb 10 19:23:28 1998  H.J. Lu  <hjl@gnu.org>

	* configure.in: Take stab-syms.lo out of sparclinux_vec list.
	* configure: Rebuild.

Tue Feb 10 15:16:38 1998  Nick Clifton  <nickc@cygnus.com>
	* elf32-v850.c (remember_hi16s_reloc): New function.
	(find_remembered_hi16s_reloc): New function.
	(v850_elf_store_addend_in_insn): Use the above new functions to
	match up HI6S relocs with LO16 relocs.

Tue Feb 10 15:01:39 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Change -linux* to -linux-gnu*.
	* config.bfd, configure.host: Likewise.
	* configure: Rebuild.

Mon Feb  9 19:40:59 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_store_addend_in_insn): Fix another
	LO16/HI16S bug and improve comments about what is going on.

Sat Feb  7 15:27:03 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure, aclocal.m4: Rebuild with new libtool.

Fri Feb  6 14:48:20 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_merge_private_bfd_data): Do not complain
	when merging v850 code into v850e/v850ea code.  Do not initialise
	output flags if the input is the default architecture.

Fri Feb  6 11:50:22 1998  Jeffrey A Law  (law@cygnus.com)

	* elf32-mips.c (bfd_elf32_bfd_reloc_type_lookup): For BFD_RELOC_CTOR
	get the size from bfd_arch_bits_per_address instead of directly
	from the isa.

Thu Feb  5 14:21:34 1998  Michael Meissner  <meissner@cygnus.com>

	* libbfd-in.h (BFD_ALIGN): If rounding up would cause the address
	to wrap, just return all 1's bits instead.
	* libbfd.h: Regenerate.

Thu Feb  5 11:51:05 1998  Ian Lance Taylor  <ian@cygnus.com>

	* coff-i386.c (coff_pe_i386_relocate_section): New static function
	if COFF_WITH_PE.
	(coff_relocate_section): If COFF_WITH_PE, define as
	coff_pe_i386_relocate_section.
	* coffcode.h (coff_write_object_contents): If COFF_IMAGE_WITH_PE,
	skip empty sections, to match coff_write_object_contents.

	* elf64-mips.c (mips_elf64_swap_reloca_out): Swap out r_addend,
 	rather than swapping out r_offset twice.  From Luke Deller
 	<luked@cse.unsw.edu.au>.

Wed Feb  4 19:11:28 1998  Ian Lance Taylor  <ian@cygnus.com>

	* configure.in: Set libtool_enable_shared rather than
	libtool_shared.  Remove diversion hack.
	* configure, Makefile.in, doc/Makefile.in, aclocal.m4: Rebuild
	with new libtool.

Wed Feb  4 16:10:21 1998  Brent Baccala  <baccala@freesoft.org>

	* syms.c (struct stab_cache): Define.
	(struct stab_find_info): Remove cached_offset, cached_stab,
	cached_str, and cached_stroff fields.  Add file_cache,
	function_cache, and line_cache fields.
	(_bfd_stab_section_find_nearest_line): Use extensive caching to
	speed up searches.

Wed Feb  4 13:34:22 1998  Ian Lance Taylor  <ian@cygnus.com>

	* peicode.h (pe_print_idata): Check for import of ordinal rather
	than name.
	(pe_print_edata): If there is no .edata section, look for the
	export data in some other section.

Mon Feb  2 20:05:42 1998  Jason Molenda  (crash@bugshack.cygnus.com)

	* configure.in: Change version to 2.8.4.
	* configure: Regenerated.

Mon Feb  2 17:39:39 1998  Steve Haworth  <steve@pm.cse.rmit.EDU.AU>

	Add tms320c30 support:
	* cpu-tic30.c: New file.
	* aout-tic30.c: New file.
	* coff-tic30.c: New file.
	* archures.c (bfd_arch_tic30): Define.
	(bfd_tic30_arch): Declare.
	(bfd_archures_list): Add bfd_tic30_arch.
	* targets.c (bfd_target_vector): Add tic30_aout_vec and
	tic30_coff_vec.
	* reloc.c (BFD_RELOC_TIC30_LDP): Define.
	* coffcode.h (coff_set_arch_mach_hook): Add tic30 case.
	(coff_set_flags): Likewise.
	* config.bfd (tic30-*-*aout*, tic30-*-*coff*): New targets.
	* configure.in (tic30_aout_vec, tic30_coff_vec): New vectors.
	* Makefile.am: Rebuild dependencies.
	(ALL_MACHINES): Add cpu-tic30.lo.
	(ALL_MACHINES_CFILES): Add cpu-tic30.c.
	(BFD32_BACKENDS): Add aout-tic30.lo and coff-tic30.lo.
	(BFD32_BACKENDS_CFILES): Add aout-tic30.c and coff-tic30.c.
	* configure, Makefile.in, bfd-in2.h, libbfd.h: Rebuild.

Mon Feb  2 12:25:12 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-v850.c (v850_elf_store_addend_in_insn): Allow HI16_S reloc
	to lag behind LO16 reloc by a couple of instructions.

Mon Feb  2 14:09:46 1998  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.am ($(srcdir)/bfd-in2.h): Add dummy command to force
	make to reexamine the file timestamp.
	($(srcdir)/libbfd.h, $(srcddir)/libcoff.h): Likewise.

	* elf64-alpha.c (ELF_MAXPAGESIZE): Change to 0x10000 from
	0x100000.

Fri Jan 30 19:07:07 1998  Geoff Keating  <geoffk@ozemail.com.au>

	* elf32-ppc.c (ppc_elf_create_dynamic_sections): New procedure
	to create .dynsbss and .rela.sbss sections.
	(ppc_elf_adjust_dynamic_symbol): Put space for small data to be
	copied from dynamic objects into .sbss.
	(ppc_elf_size_dynamic_sections): Strip .rela.sbss if we don't
	use it.  Correct typo of .rela.sdata2.
	(ppc_elf_finish_dynamic_symbol): Generate reloc to where we
	put the data, which may now be in .sbss.
	(ppc_elf_relocate_section): A SDAREL16 reloc can be in dynsbss.
	(elf_backend_create_dynamic_sections): Define as
	ppc_elf_create_dynamic_sections.

	* elf32-ppc.c (ppc_elf_check_relocs): Don't emit R_PPC_REL* relocs
	against _GLOBAL_OFFSET_TABLE_.
 	(ppc_elf_relocate_section): Don't emit R_PPC_REL32 relocs in
	shared libraries which refer to local symbols.  Make sure that the
	test for allocating space for a reloc in a shared object is the
	same as the test for emitting a reloc.

Thu Jan 29 15:55:35 1998  J.J. van der Heijden  <J.J.vanderHeijden@student.utwente.nl>

	* config.bfd (i[3456]-*-mingw32*): New target.
	* acinclude.m4 (BFD_BINARY_OPEN): Check for mingw32.
	* aclocal.m4, configure: Rebuild.

Wed Jan 28 13:41:26 1998  Ian Lance Taylor  <ian@cygnus.com>

	* elf.c (_bfd_elf_close_and_cleanup): Only check the strtab if we
	have a bfd_object.

Tue Jan 27 21:43:55 1998  Richard Henderson  <rth@cygnus.com>

	Sparc v9 ABI compliant PLT:
	* elf64-sparc.c (PLT_HEADER_SIZE): V9 ABI uses 4 entries.
	(plt_templates, sparc64_elf_build_plt_entry): Delete.
	(LARGE_PLT_THRESHOLD): New define.
	(GOT_RESERVED_ENTRIES): V9 ABI only uses 1.
	(sparc64_elf_build_plt): New function.
	(sparc64_elf_plt_entry_offset): Likewise.
	(sparc64_elf_plt_ptr_offset): Likewise.
	(sparc64_elf_adjust_dynamic_symbol): Change h->plt_offset to
	contain the index for convenience.  Skip the initial entries
	in .rela.plt.
	(sparc64_elf_size_dynamic_sections): Zero the allocated contents
	memory for the benefit of .rela.plt.
	(sparc64_elf_relocate_section): Call sparc64_elf_plt_entry_offset.
	(sparc64_elf_finish_dynamic_symbol): Kill template stuff.  Use
	sparc64_elf_plt_entry_offset & sparc64_elf_plt_ptr_offset for reloc.
	(sparc64_elf_finish_dynamic_sections): DT_PLTGOT points to .plt.
	Call sparc64_elf_build_plt.
	(elf_backend_want_got_plt): No.
	(elf_backend_plt_readonly): No.
	(elf_backend_plt_alignment): 8.

	* elf.c (_bfd_elf_close_and_cleanup): New function; free the shstrtab.
	* elf-bfd.h (_bfd_elf_close_and_cleanup): Declare it.
	* elfxx-target.h (bfd_elfNN_close_and_cleanup): Arrange for it
	to be called.

Tue Jan 27 21:45:15 1998  Jeffrey A Law  (law@cygnus.com)

	* archures.c (bfd_mach_mips*): Add definitions for various MIPS
	processors.
	* cpu-mips.c (arch_info_struct): Add mips variants.
	* bfd-in2.h: Rebuilt.

Tue Jan 27 15:06:04 1998  Nick Clifton  <nickc@cygnus.com>

	* coff-arm.c (coff_arm_relocate_section): Preserve the contents of
	t2a3_b_insn.

Tue Jan 27 12:47:27 1998  Robert Lipe  <robertl@dgii.com>

	* config.bfd (i[3456]86-sco3.2v5*): ELF now the default.
	(i[3456]86sco3.2v5*coff): New target.

Mon Jan 26 15:41:30 1998  Ian Lance Taylor  <ian@cygnus.com>

	* bfd-in2.h: Rebuild with changes to chew--tab expansion.

Thu Jan 22 21:26:48 1998  Richard Henderson  <rth@cygnus.com>

	* bfd.c (bfd_get_error_handler): Add orthogonal function.
	* bfd-in2.h: Regenerate.

Thu Jan 22 21:13:39 1998  Richard Henderson  <rth@cygnus.com>

	* tekhex.c (tekhex_write_object_contents): Check for no symbols.

Wed Jan 21 21:19:03 1998  Ian Lance Taylor  <ian@cygnus.com>

	* coff-i386.c (coff_i386_rtype_to_howto): If COFF_WITH_PE, don't
 	adjust addend for an output common symbol (from Jimmy Blair
 	<jimmyb@wrs.com>).  If COFF_WITH_PE, adjust addend for PC relative
 	defined symbol to counteract adjustment made in generic relocation
 	code.

	* dwarf2.c: Include sysdep.h, not stdio.h and stdlib.h.

Wed Jan 21 21:16:06 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* coff-m88k.c (GET_SCNDHR_NRELOC): Fix typo in macro name.
	(GET_SCNDHR_NLNNO): Likewise.

Mon Jan 19 12:49:52 1998  Ian Lance Taylor  <ian@cygnus.com>

	* cpu-sh.c (arch_info_struct): Correct next field of sh3e.

Wed Jan 14 17:23:27 1998  Nick Clifton  <nickc@cygnus.com>

	* elf32-m32r.c: Add macros to handle NOP insertion.

Wed Jan 14 16:15:22 1998  Richard Henderson  <rth@cygnus.com>

	* xcofflink.c (xcoff_mark_symbol): Don't mark the absolute section.
	(xcoff_mark): Likewise.
	(xcoff_build_ldsyms): Mark absolute symbols.

Wed Jan 14 16:03:11 1998  Richard Henderson  <rth@cygnus.com>

	* bout.c (b_out_write_object_contents): Sort symbols before output
	to keep {CALL,BAL}NAME symbols adjacent.
	(b_out_symbol_cmp): New function.

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