2005-05-29  Richard Henderson  <rth@redhat.com>

	* readelf.c (get_alpha_dynamic_type): New.
	(get_dynamic_type): Call it.

2005-05-24  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (process_section_groups): Report group section
	index. Check if the section member index is valid.

2005-05-23  Fred Fish  <fnf@specifixinc.com>

	* addr2line.c (unwind_inlines): New flag for 'i' option.
	(usage): Document '-i' option.
	(long_options): Recognize '--inlines'.
	(translate_addresses): Loop, calling bfd_find_inliner_info as
	necessary and printing multiple output lines.
	(main): Handle 'i' option.
	* doc/binutils.texi (addr2line): Document '-i' option.
	* NEWS: Mention new addr2line '-i' option.

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

	* readelf.c (fetch_indirect_string): Display a warning message
	when a corrupt DW_FORM_strp value is encountered.
	
	(process_debug_info): Mention that the compilation unit offset is
	being displayed in hexadecimal.
	
	(display_debug_lines): Fix typo in name of .debug_line section.

2005-05-19  Zack Weinberg  <zack@codesourcery.com>

	* Makefile.am: Have 'all' depend on 'info'.
	* Makefile.in: Regenerate.

2005-05-19  Ben Elliston  <bje@au.ibm.com>

	* readelf.c (read_and_display_attr_value): Handle a DW_AT_encoding
	value of DW_ATE_GNU_decimal_float.

2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>

	* doc/Makefile.am (config.texi): Don't use $<.
	* doc/Makefile.in: Regenerated.

2005-05-15  Yitzchak Scott-Thoennes  <sthoenna@efn.org>

	* deflex.l: Ignore CRs

2005-05-15  Daniel Jacobowitz  <dan@codesourcery.com>

	* acinclude.m4: Remove obsolete code.
	* configure.in: Update AC_PREREQ.
	* doc/Makefile.am (binutils_TEXINFOS): Define.
	(config.texi): Depend on distributed files instead of built
	files.
	(binutils.dvi, binutils.info): Remove unnecessary rules.
	(DISTCLEANFILES): Remove.
	(install-data-local): Renamed from install.
	(info-local): Renamed from info.
	* Makefile.in, aclocal.m4, config.in, configure,
	doc/Makefile.in: Regenerated.

2005-05-14  Alan Modra  <amodra@bigpond.net.au>

	* readelf.c (get_ppc_dynamic_type): Display DT_PPC_GOT, not
	DT_PPC_GLINK.

2005-05-13  Fred Fish  <fnf@specifixinc.com>

	* readelf.c: Fix a couple of obvious comment typos,
	'debug_str' -> 'debug_ranges' and proecess' -> 'process'.

2005-05-13  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (dump_ia64_unwind): Get stamp with proper size.

2005-05-12  Nick Clifton  <nickc@redhat.com>

	* readelf.c (display_debug_lines): If pointer_size has not been
	found then assume that it is 4 in order to prevent a seg fault
	when process_extend_line_op attempts to read the line data.

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

	* readelf.c (get_ppc_dynamic_type): New function for DT_PPC_GLINK.
	(get_dynamic_type): Call the above.

2005-05-07  Nick Clifton  <nickc@redhat.com>

	* Update the address and phone number of the FSF organization in
	the GPL notices in the following files:
	aclocal.m4, addr2line.c, ar.c, arlex.l, arparse.y, arsup.c,
	arsup.h, binemul.c, binemul.h, bucomm.c, bucomm.h, budbg.h,
	budemang.c, budemang.h, coffdump.c, coffgrok.c, coffgrok.h,
	cxxfilt.c, debug.c, debug.h, deflex.l, defparse.y, dlltool.c,
	dlltool.h, dllwrap.c, emul_aix.c, emul_vanilla.c, filemode.c,
	ieee.c, nlmconv.c, nlmconv.h, nlmheader.y, nm.c, objcopy.c,
	objdump.c, prdbg.c, rclex.l, rcparse.y, rdcoff.c, rddbg.c,
	readelf.c, rename.c, resbin.c, rescoff.c, resrc.c, resres.c,
	size.c, srconv.c, stabs.c, strings.c, sysdump.c, sysinfo.y,
	syslex.l, unwind-ia64.c, unwind-ia64.h, version.c, windres.c,
	windres.h, winduni.c, winduni.h wrstabs.c, doc/fdl.texi

2005-05-06  Jan Beulich  <jbeulich@novell.com>

	* objcopy.c (copy_file): Don't delete output upon error here.
	(copy_main): Delete output upon error.

2005-05-02  Ben Elliston  <bje@au.ibm.com>

	* dlltool.c (dtab): Remove empty function.
	(process_duplicates): Remove calls to dtab().

2005-05-01  Maciej W. Rozycki  <macro@linux-mips.org>

	* doc/binutils.texi (strip, objcopy): Clarify the description of
	the "--strip-debug" option.  Fix a typo.

2005-04-29  H.J. Lu  <hongjiu.lu@intel.com>

	* bucomm.c: Undo the last change.
	* bucomm.h: Likewise.

2005-04-29  Ben Elliston  <bje@au.ibm.com>

	* syslex.l (word, number, unit): Remove unused variables.
	* nlmheader.y (keyword_tokens): Make static.
	* coffdump.c (dump_coff_symbol, coff_dump): Make static.
	* coffgrok.c (lofile, last_function_symbol, last_function_type,
	last_struct, last_enum, cur_sfile): Make variables static.
	* sysdump.c (getCHARS, fillup, getBARRAY, getINT, getBITS,
	sysroff_swap_tr_in, sysroff_print_tr_out): Make static.
	* sysinfo.y (writecode, it, code, repeat, oldrepeat, name, rdepth,
	names, pnames): Likewise.

2005-04-29  Ben Elliston  <bje@au.ibm.com>

	* ar.c (mri_mode): Make static.
	* arsup.c (obfd, real_name, outfile): Likewise.
	* binemul.c (ar_emul_create): Remove unused function.
	(ar_emul_default_create): Likewise.
	* binemul.h (ar_emul_create): Remove declaration.
	(ar_emul_default_create): Likewise.
	(struct bin_emulation_xfer_struct): Remove ar_create member.
	* bucomm.c (report): Make static.
	* bucomm.h (report): Remove declaration.
	* cxxfilt.c (mbuffer): Make static.
	(main): Use unsigned ints for some loop control variables.
	* readelf.c: Make many global variables static.
	* size.c (berkeley_format): Make static.
	(long_options): Likewise.
	* emul_aix.c (bin_aix_emulation): Remove ar_emul_default_create
	structure initialiser.
	(bin_aix5_emulation): Likewise.
	* emul_vanilla.c (bin_vanilla_emulation): Likewise.

2005-04-27  Ben Elliston  <bje@au.ibm.com>

	* syslex.l: Adjust top-of-file comment: this file is part of GNU
	binutils, not GNU ld.

2005-04-25  Nick Clifton  <nickc@redhat.com>

	PR872
	* objcopy.c (copy_archive): Initialise 'obfd' field of new
	name_list structure.

	* objcopy.c (copy_usage): Fix description of -K switch.

	* doc/binutils.texi (strip, objcopy): Fix description of -K
	switch.

2005-04-20  Daniel Jacobowitz  <dan@codesourcery.com>

	* readelf.c (display_debug_frames): Use data factor for
	DW_CFA_def_cfa_sf and DW_CFA_def_cfa_offset_sf.

2005-04-19  H.J. Lu  <hongjiu.lu@intel.com>

	* objdump.c (dump_section_header): Skip linker created section.

2005-04-17  H.J. Lu  <hongjiu.lu@intel.com>

	* objdump.c (dump_section_header): Support SEC_GROUP.

2005-04-16  Nick Clifton  <nickc@redhat.com>

	* readelf.c (debug_apply_rela_addends): Remove redundant %s from
	printf string.

2005-04-15  Nick Clifton  <nickc@redhat.com>

	* objcopy.c (copy_file): Issue an error message when attmepting to
	copy an empty input file.

2005-04-14  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (NO_WERROR): Define.  Use instead of -Wno-error.
	* configure.in: Include ../bfd/warning.m4 contents.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.

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

	* Makefile.am: Run "make dep-am".
	(syslex.o, sysinfo.o, arparse.o, arlex.o): Add -Wno-error to command.
	(sysroff.o, defparse.o, deflex.o): Likewise.
	(nlmheader.o, rcparse.o, rclex.o): Likewise.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.

2005-04-11  Jan Beulich  <jbeulich@novell.com>

	* MAINTAINERS: Add myself as ix86 Intel mode maintainer.

2005-04-06  Nick Clifton  <nickc@redhat.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* po/rw.po: New translation: Kinyarwanda.
	* configure.in (ALL_LINGUAS): Add rw.
	* configure: Regenerate.

2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>

	* readelf.c (debug_apply_rela_addends): Reorder r_info as
	necessary for 64-bit MIPS.

2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>

	* doc/binutils.texi (readelf): Remove a duplicate paragraph.

2005-04-04  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>

	PR binutils/813
	* objdump.c (dump_symbols): Add a check to see if the section for
	the symbol is chosen using process_section_p.

2005-04-01  H.J. Lu  <hongjiu.lu@intel.com>

	* NEWS: Mention new readelf options, "-N/--full-section-name"
	and "-g/--section-groups".

	* doc/binutils.texi: Document new readelf options,
	"-N/--full-section-name" and "-g/--section-groups".

2005-03-31  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (do_full_section_name): New.
	(options): Add "--full-section-name"/'N'.
	(usage): Add -N/--full-section-name.
	(parse_args): Handle 'N'.
	(process_section_headers): Print out the full section name if
	do_full_section_name isn't 0.

2005-03-31  Nick Clifton  <nickc@redhat.com>

	* configure.in: Add a check for <unistd.h> providing a prototype
	for getopt() which is compatible with the one in
	include/getopt.h.  If so then define HAVE_DECL_GETOPT.
	* configure: Regenerate.
	* config.in (HAVE_DECL_GETOPT): Add.
	* aclocal.m4: Regenerate.
	* addr2line.c: Include "config.h" before "bfd.h" so that
	HAVE_DECL_GETOPT is defined before getopt.h is included.

2005-03-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* doc/binutils.texi: Document new VAX disassembler-specific option
	-M entry:0xfooba8.
	* NEWS: Mention the new option.

2005-03-29  Anil Paranjpe  <anilp1@kpitcummins.com>

	* MAINTAINERS: Add myself as H8300 maintainer.

2005-03-28  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

	* objdump.c (disassemble_bytes): Remove cast.

2005-03-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* BRANCHES: Add binutils-csl-arm-2005q1-branch and
	binutils-2_16-branch.

2005-03-25  Mark Kettenis  <kettenis@gnu.org>

	* MAINTAINERS: Add myself as M88k maintainer.

2005-03-24  Danny Smith  <dannysmith@users.sourceforge.net>

	* winduni.c (unicode_from_ascii): Don't declare variables
	's' and 'w' if _WIN32.  Use MultiByteToWideChar to set the unicode
	string len.

2005-03-24  Dmitry Diky   <diwil@spec.ru>

	* MAINTAINERS: Add myself as MSP430 maintainer.

2005-03-23  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated translation.

2005-03-22  Nick Clifton  <nickc@redhat.com>

	* MAINTAINERS: Add Daniel Jacobwitz to the blanket write
	privileges list.

2005-03-17  Paul Brook <paul@codesourcery.com>
	    Dan Jacobowitz <dan@codesourcery.com>
	    Mark Mitchell  <mark@codesourcery.com>

	* binutils/readelf.c (get_arm_segment_type): New function.
	(get_segment_type): Use it.

2005-03-18  Paul Brook  <paul@codesourcery.com>

	* objdump.c (objdump_print_addr): Avoid uninitialized warning.

2005-03-17  Diego Novillo  <dnovillo@redhat.com>

	* MAINTAINERS: Remove self as maintainer of x86 intel
	mode.

2005-03-16  Nick Clifton  <nickc@redhat.com>
	    Ben Elliston  <bje@au.ibm.com>

	* configure.in (werror): New switch: Add -Werror to the
	compiler command line.  Enabled by default.  Disable via
	--disable-werror.
	* configure: Regenerate.

2005-03-15  Daniel Marques  <marques@cs.cornell.edu>
	    Nick Clifton  <nickc@redhat.com>

	* objcopy.c (globalize_specific_list): New linked list of symbols
	to convert from local binding into global binding.
	(command_line_switch): Add OPTION_GLOBALIZE_SYMBOL and
	OPTION_GLOBALIZE_SYMBOLS.
	(copy_options): Add "globalize-symbol" and "globalize-symbols".
	(copy_usage): Document the new switches.
	(filter_symbols): Convert defined local symbols mentioned on the
	globalize_specific_list into global symbols.
	(copy_object): Perform actions if the globalize_specific_list is
	not empty.
	(copy_main): Handle new switches.
	* NEWS: Mention new feature.
	* doc/binutils.texi: Document new switches.

2005-03-15  Alan Modra  <amodra@bigpond.net.au>

	* po/es.po: Commit new Spanish translation.

	* po/fr.po: Commit new French translation.

2005-03-14  Alan Modra  <amodra@bigpond.net.au>

	* po/tr.po: Commit new Turkish translation.

2005-03-11  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated French translation.

2005-03-10  Nick Clifton  <nickc@redhat.com>

	* configure.in (ALL_LINGUAS): Add Romanian lingua "ro".
	* configure: Regenerate.
	* po/ro.po: New file.

	* po/ru.po: Updated file.

2005-03-05  Alan Modra  <amodra@bigpond.net.au>

	* po/binutils.pot: Regenerate.

2005-03-02  Jan Beulich  <jbeulich@novell.com>

	* ar.c (remove_output): Use unlink_if_ordinary instead of unlink.
	* objcopy.c (copy_file): Likewise.
	(strip_main): Likewise.

2005-03-01  Stig Petter Olsroed  <stigpo@users.sourceforge.net>
	    Nick Clifton  <nickc@redhat.com>

	* objdump.c: Fix coding for DISASSEMBLER_NEEDS_RELOC:
	(struct objdump_disasm_info): Add 'reloc' field.
	(disassemble_bytes): Fix check for when an insn has a reloc
	associated with it.  Improve comment explaining why the use of
	octets is wrong.  Set the 'reloc' field in objdump_disasm_info
	structure.
	(objdump_print_addr): Use new 'reloc' field to lookup the correct
	address for the symbol associated with the current instruction's
	relocation.
	(disassemble_info): Initialise 'reloc' field.

2005-02-28  Jakub Jelinek  <jakub@redhat.com>

	* readelf.c (get_file_type, get_machine_name, get_osabi_name,
	get_segment_type, get_section_type_name, get_elf_class,
	get_data_encoding, get_group_flags, dynamic_section_mips_val,
	get_symbol_binding, get_symbol_type, get_TAG_name, get_FORM_name,
	get_AT_name, process_mips_specific, process_gnu_liblist,
	get_note_type, get_netbsd_elfcore_note_type): Use snprintf instead of
	sprintf where needed.
	(get_dynamic_type): Likewise.  Increase buff to 64 bytes.
	(get_elf_section_flags): Increase buff to 33 bytes.  Avoid
	using strcat.
	(get_dynamic_flags): Renamed to...
	(print_dynamic_flags): ... this.  Print the flags to stdout instead
	of returning them as string.
	(process_dynamic_section): Adjust caller.

2005-02-25  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (display_debug_ranges): Print out offset for end of
	list.

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

	* dlltool.c: Warning fixes.
	* objdump.c: Likewise.

2005-02-22  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am (syslex.o, sysinfo.o): Pass AM_CFLAGS to compiler.
	(syslex.o, sysinfo.o, dlltool.o, rescoff.o): Remove duplicate
	dependencies.  Run "make dep-am".
	* nlmconv.c: Warning fixes.
	* readelf.c: Likewise.
	* srconv.c: Likewise.
	* sysdump.c: Likewise.
	* sysinfo.y: Likewise.
	* syslex.l: Likewise.  Use yyleng instead of strlen, memcpy instead
	of strcpy.
	* Makefile.in: Regenerate.

2005-02-21  H.J. Lu  <hongjiu.lu@intel.com>

	* objcopy.c (parse_flags): Replace SEC_SHARED with
	SEC_COFF_SHARED.

	* objdump.c (dump_section_header): Dump SEC_TIC54X_BLOCK and
	SEC_TIC54X_CLINK for TI c54x only. Remove SEC_ARCH_BIT_0. Dump
	SEC_COFF_SHARED for COFF only.

2005-02-21  Alan Modra  <amodra@bigpond.net.au>

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

2005-02-21  Alan Modra  <amodra@bigpond.net.au>

	* readelf.c (BYTE_GET8): Delete.  Replace uses with BYTE_GET.
	(byte_get_little_endian): Don't handle size of -8.
	(byte_get_signed, byte_get_big_endian): Likewise.
	(print_dec_vma, print_hex_vma): New functions.
	(print_vma): Use them.  Return chars output.
	(get_dynamic_data): Return a bfd_vma array.  Add ent_size parm.
	(process_symbol_table): Handle alpha and s390 .hash.

2005-02-18  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (display_debug_loc): Print out offset for end of
	list.

2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>

	* Makefile.am (TOOL_PROGS): Add objdump.
	* Makefile.in: Regenerate.

2005-02-17  Alan Modra  <amodra@bigpond.net.au>

	* deflex.l (YY_NO_UNPUT): Define.
	* rclex.l (YY_NO_UNPUT): Define.
	* rcparse.y (null_unichar): New static var.
	(res_null_text): Use it rather than attempting to init from wchar_t.
	* windres.c: Include assert.h and time.h before getopt.h.
	Include config.h and unistd.h too.

2005-02-15  Nick Clifton  <nickc@redhat.com>

	* nlmconv.c: Provide a full prototype for the localtime() function
	in order to avoid a compile time warning.

2005-02-11  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (group_count): Don't initialize it.
	(process_section_groups): Reurn 1 if we won't do unwind nor
	section groups. Set group_count to 0 before counting group
	sections and return 1 if there are no group sections. Reread
	SHT_SYMTAB/SHT_STRTAB sections only when needed. Don't skip
	section 0.
	(process_object): Only set do_unwind to 0 if
	process_section_groups return 0.

2005-02-10  Ian Lance Taylor  <ian@airs.com>

	* MAINTAINERS: Update my e-mail address.

2005-02-10  Mark Mitchell  <mark@codesourcery.com>

	* MAINTAINERS: Add Paul Brook and Mark Mitchell as ARM (Symbian)
	maintainers.

2005-02-07  Inderpreet Singh <inderpreetb@noida.hcltech.com>

	 * MAINTAINERS: Add self as maintainer of MAXQ.

2005-01-31  Richard Sandiford  <rsandifo@redhat.com>

	* readelf.c (eh_addr_size): New variable.
	(find_section): Move earlier in file.  Return empty sections too.
	(process_program_headers): Use find_section to find .dynamic.
	(process_section_headers): Initialize eh_addr_size.
	(dump_ia64_unwind, slurp_ia64_unwind_table, ia64_process_unwind)
	(dump_hppa_unwind, slurp_hppa_unwind_table, hppa_process_unwind)
	(display_debug_frames): Use it instead of local addr_size variable.
	(size_of_encoded_value): Get pointer size from eh_addr_size rather
	than is_32bit_elf.

2005-01-31  Andrew Cagney  <cagney@gnu.org>

	* configure: Regenerate to track ../gettext.m4.

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

	* version.c (print_version): Bump the copyright date to 2005.

2005-01-25  Alan Modra  <amodra@bigpond.net.au>

	* nm.c (display_rel_file): Read dynamic syms before calling
	bfd_get_synthetic_symtab.

2005-01-21  Ben Elliston  <bje@au.ibm.com>

	* dlltool.c (dump_iat): Remove unused function.
	(gen_exp_file): Remove #if 0'd code.
	(make_one_lib_file): Likewise.
	* srconv.c: Remove #if 0'd code throughout.
	* size.c (lprint_number): Remove.
	(print_berkeley_format): Remove #if 0'd code.
	* ar.c (do_quick_append): Remove declaration and definiton.
	(main): Remove #if 0'd code.
	* filemode.c (filemodestring): Remove #if 0'd function.
	* sysdump.c (unit_info_list): Remove function.
	(object_body_list): Likewise.
	(program_structure): Likewise.
	(debug_list): Likewise.
	(module): Remove #if 0'd code.

2005-01-20  Mark Mitchell  <mark@codesourcery.com>

	* BRANCHES: Add binutils-2_15-branch.

	* MAINTAINERS: Document branch policy.
	* BRANCHES: New file.

2005-01-19  Fred Fish  <fnf@specifixinc.com>

	* NEWS: Make note of the new MIPS disassembly option "no-aliases".
	* doc/binutils.texi (objdump): Document the "no-aliases"
	disassembly option.

2005-01-17   Eugene Kotlyarov  <ekot@narod.ru>

	PR binutils/647
	* rcparse.y (RCDATA): Allow a filename to be supplied as the
	parameter.  Parse it with define_rcdata_file().
	* resrc.c (define_rcdata_file): New function.
	* windres.h: Provide a prototype for the new function.

	* resrc.c (define_user_file): Fix typo by replacing "font file"
	with "file".

2005-01-16  Jason Thorpe  <thorpej@netbsd.org>

	* MAINTAINERS: Update my email address.

2005-01-16  Danny Smith  <dannysmith@users.sourceforge.net>

	* dlltool.c (set_dll_name_from_def): New function.  Strip name
	to basename, with warning.
	(def_name): Use it.
	(def_library): Likwise.
	(main): Strip arg of --dllname to basename, with warning.
	Only use basename of exp_name when inferring dll_name.

2005-01-11  Nick Clifton  <nickc@redhat.com>

	PR binutils/637
	* doc/binutils.texi (c++filt): Use uppercase CXXFILT in the
	footnote in order to prevent the sed script in the Makefile from
	converting it into c++filt.

2005-01-10  H.J. Lu  <hongjiu.lu@intel.com>

	BZ 635
	readelf.c (saved_base_address): Removed.
	(decode_64bit_range): Likewise.
	(decode_range): Likewise.
	(display_64bit_debug_ranges): Likewise.
	(debug_info): Add range_lists, num_range_lists and
	max_range_lists.
	(read_and_display_attr_value): Handle do_debug_ranges.
	(process_debug_info): Likewise.
	(display_debug_ranges): Rewrite.
	(process_object): Free range_lists.

2005-01-10  Andreas Schwab  <schwab@suse.de>

	* configure.in: Don't define SKIP_ZEROES.
	* configure: Regenerate.
	* objdump.c (disassemble_data): Set skip_zeroes and
	skip_zeroes_at_end in disasm_info to defaults.
	(DEFAULT_SKIP_ZEROES): Rename from SKIP_ZEROES and always define.
	(DEFAULT_SKIP_ZEROES_AT_END): Rename from SKIP_ZEROES_AT_END and
	always define.
	(disassemble_bytes): Use skip_zeroes and skip_zeroes_at_end from
	objdump_disasm_info.

2005-01-05  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (display_debug_loc): Display base address
	specifiers.  Always output <End of list>.

2005-01-05  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (have_frame_base): New.
	(need_base_address): Likewise.
	(saved_base_address): Likewise.
	(decode_location_expression): Return 1 if DW_AT_frame_base is
	needed.
	(debug_info): Add base_address and a have_frame_base pointer.
	(read_and_display_attr_value): Replace saved_DW_AT_low_pc with
	saved_base_address. Record base address. Set have_frame_base.
	Record if a location list has DW_AT_frame_base. Display if a
	location expression has no DW_AT_frame_base but needs one. Set
	saved_base_address only if needed.
	(process_debug_info): Clear have_frame_base, saved_base_address
	and set need_base_address.
	(display_debug_loc): Display if a location expression has no
	DW_AT_frame_base but needs one. Display if start >= end. Don't
	adjust for section address. Properly handle base address.
	(process_object): Free the have_frame_base pointer in
	debug_info.

2005-01-04  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (display_debug_loc): Display offsets for hole and
	overlap.
	(display_debug_str): Add a newline at the end.

2005-01-04  Armin Diehl  <diehl@nordrhein.de>

	PR binutils/630
	* nlmconv.c (main): Only store the basename of the output filename
	in the module table.

2005-01-04  H.J. Lu  <hongjiu.lu@intel.com>

	BZ 615
	* readelf.c (process_debug_info): New.
	(debug_info): Add num_loc_offsets, loc_offsets and
	last_loc_offset_p.
	(get_debug_info): Use process_debug_info.
	(display_debug_loc): Properly handle location list. Warn if bad
	location lists are encoutnered.
	(read_and_process_attr_value): New.
	(read_and_display_attr_value): Use "%lx" for DW_FORM_data4.
	(display_debug_info): Use process_debug_info.
	(process_object): Also free loc_offsets in debug_information.

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

	* objdump.c (remove_useless_symbols): Discard section symbols.

2004-12-27  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (read_leb128): Support 64bit host.

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

	PR binutils/616
	* readelf.c (debug_info): Add 'cu_offset' field.
	(get+pointer_size_of_comp_unit): Rename to
	'get_pointer_size_and_offset_of_comp_unit'.  Add code to return
	the offset of the comp_unit if requested.
	(get_debug_info): Record comp_unit offsets as well.
	(display_debug_lines): Call get_pointer_size_of_comp_unit.
	(decode_location_expression): Add an extra parameter - the offset
	of the current comp-unit.  Use this when decoding the DW_OP_call2
	and DW_OP_call4 operators.
	(display_debug_loc): Call get_pointer_size_of_comp_unit, pass the
	comp_unit offset on the decode_location_expression.
	(read_and_display_attr_value): Pass the	comp_unit offset on the
	decode_location_expression.
	(display_debug_frames): Pass 0 as the comp_unit offset to
	decode_location_expression.

2004-12-22  Nick Clifton  <nickc@redhat.com>

	* readelf.c (last_pointer_size, warned_about_missing_comp_units):
	New variables associated with obtaining the pointer size for a
	comp_unit.
	(get_pointer_size_of_comp_unit): Add an extra parameter - the name
	of the section requesting the pointer size.  Use this name in
	error messages.  If there are not enough comp_units available
	produce a warning message, but return the last known pointer size
	so that section dumping can continue.
	(get_debug_info): Reset the new variables.
	(display_debug_lines): Add extra parameter to invocation of
	get_pointer_size_of_comp_unit and remove error message when it
	returns 0.
	(display_debug_loc): Likewise.

2004-12-15 Jan Beulich  <jbeulich@novell.com>

	* doc/binutils.texi: Document --strip-unneeded-symbol and
	--strip-unneeded-symbols.
	* objcopy.c (strip_unneeded_list): New.
	(enum command_line_switch): Add OPTION_STRIP_UNNEEDED_SYMBOL
	and OPTION_STRIP_UNNEEDED_SYMBOLS.
	(copy_options): Add  --strip-unneeded-symbol and
	--strip-unneeded-symbols.
	(copy_usage): Likewise.
	(filter_symbols): Suppress copying of symbol if in strip_unneeded_list
	and the symbol is not needed.
	(copy_main): Handle OPTION_STRIP_UNNEEDED_SYMBOL and
	OPTION_STRIP_UNNEEDED_SYMBOLS.

2004-12-09  Ian Lance Taylor  <ian@wasabisystems.com>

	* readelf.c (get_machine_flags): Handle E_MIPS_MACH_9000.

2004-12-08  Ben Elliston  <bje@au.ibm.com>

	* arlex.l: Fix formatting.

2004-12-08  Ben Elliston  <bje@au.ibm.com>

	* doc/Makefile.am (config.texi): Emit a @set UPDATED command to
	config.texi whose value is the current month and year.
	* doc/Makefile.in: Rebuild.
	* doc/binutils.texi: Set the document subtitle to be the value of
	the Texinfo UPDATED variable (obtained from config.texi).

2004-12-07  Ben Elliston  <bje@au.ibm.com>

	PR binutils/249
	* doc/binutils.texi (def file format): New node.
	(dlltool): Use the tool name as the @chapter name, like all the
	other binutils.  Use @file{.def} throughout for consistency.

2004-12-06  Ben Elliston  <bje@au.ibm.com>

	* dlltool.c: Comment fix.

2004-12-06  Ben Elliston  <bje@au.ibm.com>

	* doc/binutils.texi: Update copyright years.

2004-12-03  Richard Sandiford  <rsandifo@redhat.com>

	* MAINTAINERS: Remove mention of config.if.

2004-11-30  Tero Niemela  <tero_niemela@yahoo.com>

	* Makefile.am: Change LOCALEDIR to $(datadir)/share.
	* Makefile.in: Regenerate.

2004-11-10  Ian Lance Taylor  <ian@wasabisystems.com>

	PR binutils/536
	* stabs.c (stab_demangle_template): Call stab_demangle_count
	rather than stab_demangle_get_count to get the length of a pointer
	target.

2004-11-10  Danny Smith  <dannysmith@users.sourceforge.net>

	* defparse.y: Remove unnecessary commas from token list.

2004-11-08  Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>

	* doc/binutils.texi (nm): Update description of weak symbols.

2004-11-03  Nick Clifton  <nickc@redhat.com>

	* readelf.c (do_debug_ranges): New variable.
	(usage): Document new switch: -wR or --debug-dump=Ranges.
	(parse_args): Handle new switch.  Replace switch statement for the
	long options with a more compact table structure.
	(process_section_headers): Allow the dumping of .debug_ranges
	sections if so requested.
	(debug_displays): Likewise.
	(load_debug_range): New function: Grabs the contents of a
	.debug_ranges section.
	(free_debug_range): New function: Releases the grabbed
	.debug_ranges section.
	(decode_64bit_range): New function: Displays a 64-bit range in a
	.debug_ranges section.
	(decode_range): New function: Displays a 32-bit range in a
	.debug_ranges section.
	(read_and_display_attr_value): Record the value of DW_AT_low_pc
	attributes.  Use decode_ranges() to display a DW_AT_ranges
	attribute.
	(display_debug_info): Use load_debug_range() and
	free_debug_range().
	(display_64bit_debug_ranges): New function.  Displays the contents
	of a 64-bit format .debug_ranges section.
	(display_debug_ranges): New function: Displays the contents of a
	32-bit .debug_ranges section.

	(main): Move cmdline_dump_sects and num_cmdline_dump_sects into the
	global scope.
	(process_object): Initialise the dump_sects array from the
	cmdline_dump_sects array before processing each object file.

	(streq, strneq): New macros.  Use them to replace occurrences of
	strcmp() and strncmp().

	(debug_information): New structure array to replace
	debug_line_pointer_sizes array.
	(num_debug_info_entries): New variable to replace
	num_debug_line_pointers.
	(get_pointer_size_of_comp_unit): New function: Returns the pointer
	size of a given compilation unit.
	(get_debug_info): New function to replace
	get_debug_line_pointer_sizes.
	(display_debug_lines): Use the new functions.
	(display_debug_loc): Likewise.

	(disassemble_section): Change return type to int.
	(display_debug_lines): Move local variables to their
	innermost scope.
	(display_debug_section): Likewise.  Also record the return value
	of functions called and pass this back to the parent.  Also only
	warn about undumped sections when the user explicitly requested
	their dumping.

	(debug_apply_rela_addends): Allow relocations against STT_OBJECT
	types as well.

	* NEWS: Mention the support for decoding .debug_ranges sections.
	* doc/binutils.texi: Document the new command line switch to
	readelf.

2004-11-03  Randolph Chung  <tausq@debian.org>

	* readelf.c (ia64_unw_aux_info, ia64_unw_table_entry): Rename from
	unw_aux_info and unw_table_entry.
	(find_symbol_for_address): Pass symtab and strtab info explicitly.
	(dump_ia64_unwind): Rename unw_{aux_info,table_entry} with ia64_
	prefix.
	(slurp_ia64_unwind_table): Likewise.
	(ia64_process_unwind): Rename from old process_unwind.
	(hppa_unw_aux_info): New.
	(dump_hppa_unwind): New.
	(slurp_hppa_unwind_table): New.
	(hppa_process_unwind): New.
	(process_unwind): Factor out common unwinding checks; dispatch to
	unwind handler based on machine type.

2004-11-02  Nick Clifton  <nickc@redhat.com>

	* readelf.c (display_debug_lines): Fix typo in error message.

2004-10-26  Mark Mitchell  <mark@codesourcery.com>

	* readelf.c (get_note_type): Handle notes not in core files.
	(process_note_sections): New function.
	(process_corefile_contents): Rename to ...
	(process_notes): ... this.
	(process_object): Call process_notes, not
	process_corefile_contents.
	* doc/binutils.texi: Update readelf -n documentation.

2004-10-26  Jakub Jelinek  <jakub@redhat.com>

	* ar.c (extract_file): Set atime to mtime for ar xo.

2004-10-25  Ian Lance Taylor  <ian@wasabisystems.com>

	* stabs.c (stab_demangle_v3_arglist): New static function, broken
	out of stab_demangle_v3_argtypes.
	(stab_demangle_v3_argtypes): Call it.
	(stab_demangle_v3_arg): Handle DEMANGLE_COMPONENT_FUNCTION_TYPE.
	If we find an unrecognized component, print out its number.

2004-10-25  David Mosberger  <davidm@hpl.hp.com>

	* readelf.c (slurp_ia64_unwind_table): Support relocations against
	non-section symbols by adding in the symbol value.

2004-10-25  Nick Clifton  <nickc@redhat.com>

	PR 465
	* readelf.c (dynamic_strings_length): New global variable.
	(VALID_DYNAMIC_NAME, GET_DYNAMIC_NAME): New macros for accessing
	strings in the dynamic string table.
	(process_section_headers): Initialise dynamic_strings_length.
	(process_dynamic_section): Likewise.
	(process_object): Reset dynamic_string_length when the buffer is freed.
	(dynamic_sections_mips_val): Use the new macros.
	(process_dynamic_section): Likewise.
	(process_version_sections): Likewise.
	(process_symbol_table): Likewise.
	(process_syminfo): Likewise.
	(process_mips_specific): Likewise.
	(dump_relocations): Add a new parameter 'strtablen' and use this
	to verify that string offset in a given reloc is valid.  Print a
	suitable error message otherwise.
	(process_relocs): Pass the new argument to dump_relocations.

2004-10-23  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

	* dlltool.c: Include <assert.h>.
	(PREFIX_ALIAS_BASE): Define.
	(struct export): Add member import_name;
	(def_exports): Set import_name.
	(make_one_lib_file): Remove prefix alias code, use import_name
	in .idata$6.
	(gen_lib_file): Create and delete aliases.

2004-10-19  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (process_section_groups): Free symtab after use.

2004-10-18  Tommy Pettersson <ptp@lysator.liu.se>
	    Nick Clifton  <nickc@redhat.com>

	* strings.c (usage): Place radix values for -t option into the
	correct order.

	* objcopy.c (add_redefine_syms_file): Change error messages to use
	<filename>:<linenumber>: format for easier parsing by automatic
	tools.

	* srconv.c (show_usage): Fix spelling typo.

	* windres.c (format_from_filename): Suggest the use of -J instead
	of -I if the file type cannot be determined.

2004-10-18  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

	* strings.c: Include <sys/stat.h>.

2004-10-18  Alan Modra  <amodra@bigpond.net.au>

	* budemang.c (demangle): Fix thinko.

	* budemang.c (demangle): Handle "@plt" suffix.

2004-10-14  Nick Clifton  <nickc@redhat.com>

	* nm.c (usage): Fix description of --special-syms switch.

2004-10-13  Jakub Jelinek  <jakub@redhat.com>

	* strings.c (statbuf): New typedef.
	(file_stat): Define.
	(strings_object_file): Avoid using get_file_size, instead do the
	checks here, using file_stat.
	* configure.in (HAVE_STAT64): New test.
	* configure: Rebuilt.
	* config.in: Rebuilt.

2004-10-12  Paul Brook  <paul@codesourcery.com>

	* readelf.c (decode_ARM_machine_flags): Support EABI version 4.

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

	* objdump.c (dump_symbols): Fix thinko last change.  Improve error
	messages.

2004-10-08  Nick Clifton  <nickc@redhat.com>

	* nm.c: Add a new switch --special-syms which, if enabled, will
	include the ARM Mapping symbols in nm's output.
	(usage): Mention the switch.
	(filter_symbols): Handle the switch.
	* objdump.c: Add a similar switch.
	(usage): Mention the switch.
	(dump_symbols): Handle the switch.
	* doc/binutils.texi: Document the new switches.
	* NEWS: Mention the new switches.

2004-10-08  Daniel Jacobowitz  <dan@debian.org>

	* readelf.c (get_x86_64_section_type_name): New function.
	(get_section_type_name): Use it.

2004-10-08  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

	* dlltool.c (make_one_lib_file): Revert 2004-09-02 and 2004-09-04
	patches.
	* doc/binutils.texi (dlltool): Revert 2004-09-06 patch.

2004-10-07  Alexandre Oliva  <aoliva@redhat.com>

	* readelf.c (get_machine_flags): Don't fall through into m68k cpu
	types.

2004-10-01  Paul Brook  <paul@codesourcery.com>

	* readelf.c (get_arm_section_type_name): New function.
	(get_section_type_name): Use it.

2004-09-28  Nick Clifton  <nickc@redhat.com>

	* nm.c: Reorder functions to eliminate most of the static function
	prototypes.

2004-09-22  Alan Modra  <amodra@bigpond.net.au>

	* readelf.c (process_program_headers): Don't include .tbss in non-TLS
	segments.

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

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.
	* po/binutils.pot: Regenerate.

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

	* readelf.c (decode_location_expression): Sign extend value for
	DW_OP_const1s, DW_OP_const2s, DW_OP_const4s, DW_OP_bra, DW_OP_skip.

2004-09-09  Nick Clifton  <nickc@redhat.com>

	PR 363
	* ar.c (replace_members): Do not use get_file_size as
	ar_emul_append correctly handles missing files.

2004-09-07  H.J. Lu  <hongjiu.lu@intel.com>

	* configure: Regenerated with autconfig 2.13.

2004-09-06  Danny Smith  <dannysmith@users.sourceforge.net>

	* doc/binutils.texi (dlltool): Update --add-underscore, --kill-at
	documentation.

2004-09-06  Michael Wardle  <mbw@endbracket.net>

	* doc/binutils.texi (objdump): Document that the -x switch includes
	the effect of the -p switch.

2004-09-04  Danny Smith  <dannysmith@users.sourceforge.net>

	* dlltool.c (make_one_lib_file): Test if internal_name was
	specified by user before using it.

2004-09-02  Carlo Wood  <carlo@alinoe.com>

	PR binutils/351
	* dlltool.c (make_one_lib_file): For IDATA6 take the name from
	exp->internal_name if it is present.

2004-09-02  Alexandre Oliva  <aoliva@redhat.com>

	* MAINTAINERS: Add self as co-maintainer of FR-V.
	* readelf.c (get_machine_flags): Print FR-V cpu types.

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

	* nm.c (show_synthetic): New var.
	(long_options): Add "synthetic".
	(usage): Here too.
	(display_rel_file): Handle show_synthetic.

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

	* objdump.c (dump_bfd): Pass both symbol tables to
	bfd_get_synthetic_symtab.

2004-08-17  Jakub Jelinek  <jakub@redhat.com>

	* objdump.c (dump_bfd): For relocatable objects, pass syms instead
	of dynsyms to bfd_get_synthetic_symtab.

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

	* readelf.c (debug_apply_rela_addends): New function, extracted from..
	(display_debug_info): ..here.
	(display_debug_frames): Call debug_apply_rela_addends.  Don't do
	DW_EH_PE_pcrel adjustment for ET_REL.

2004-08-06  Andreas Schwab  <schwab@suse.de>

	* readelf.c (dump_relocations): Fix typo when calculating
	sec_index.

2004-08-02  Jakub Bogusz  <qboosh@pld-linux.org>

	* dllwrap.c (deduce_name): Fix typos introduced when program_name
	was renamed to prog_name.

2004-07-29  Alexandre Oliva  <aoliva@redhat.com>

	* readelf.c (get_machine_flags <EM_SH>): Handle EF_SH2A and
	EF_SH2A_NOFPU.

2004-07-28  Alexandre Oliva  <aoliva@redhat.com>

	2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
	* readelf.c (get_machine_flags <EM_SH)): Handle EF_SH4_NOFPU and
	EF_SH4A_NOFPU.
	2003-06-12  Alexandre Oliva  <aoliva@redhat.com>
	* readelf.c (get_machine_flags <EM_SH>): Print SH ISA name.

2004-07-21  H.J. Lu  <hongjiu.lu@intel.com>

	* objcopy.c (filter_symbols): Use bfd_coff_get_comdat_section
	to access comdat.
	* objdump.c (dump_section_header): Likewise.

2004-07-15  Aravinda PR  <aravindapr@rediffmail.com>

	* nlmconv.c (main): Pass map_file argument to link_inputs.
	(link_inputs): Use map_file argument if it is defined.

2004-07-13  Nick Clifton  <nickc@redhat.com>

	* dllwrap.c: Replace 'program_name' with 'prog_name' to avoid
	conflicts with exported global defined in bucomm.h.
	(deduce_name): Rename parameter 'program_name' to 'name' to avoid
	shadowing the global defined in bucomm.h.

2004-07-12  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

	* dlltool.c (ext_prefix_alias): New global variable.
	(make_one_lib_file): Add aliases with prefixes for external
	and import definitions.
	(usage): Document -p option.
	(long_options): Add --ext-prefix-alias option.
	(main): Handle -p.
	* doc/binutils.texi: Document new switch.
	* NEWS: Mention new switch.

2004-07-09  Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>

	* binutils/dlltool.c (asm_prefix): Add parameter: name.
	No underscore for symbols beginning with ?.
	(ASM_PREFIX): Add parameter: NAME.
	(gen_exp_file): Use new parameter.
	(make_label): Likewise.
	(make_imp_label): Likewise.
	(make_one_lib_file): Likewise.

2004-07-07  Tomer Levi  <Tomer.Levi@nsc.com>

	* MAINTAINERS: Added myself to the list.
	* readelf.c: Include "elf/crx.h".
	(guess_is_rela): Handle EM_CRX.
	(get_machine_name): Likewise.
	(dump_relocations): Likewise.

2004-07-03  Aaron W. LaFramboise  <aaron98wiridge9@aaronwl.com>

	* doc/binutils.texi (nm): Clarify weak symbol description.

2004-06-24  Ben Elliston  <bje@au.ibm.com>

	* readelf.c (get_segment_type): Display "GNU_STACK", not just
	"STACK", when a PT_GNU_STACK segment is encountered.

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

	* objcopy.c (copy_section): Don't set _cooked_size.

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

	* readelf.c (Elf32_Word): Delete.
	(get_32bit_dynamic_section): Handle SGI ELF dynamic segment.
	(get_64bit_dynamic_section): Likewise.

	* readelf.c (get_32bit_dynamic_section): Stop at first DT_NULL entry.
	(get_64bit_dynamic_section): Likewise.

	* readelf.c (dynamic_nent): New variable.
	(get_32bit_dynamic_section): Set it.
	(get_64bit_dynamic_section): Here too.
	(process_dynamic_section): Use it instead of dynamic_size.
	(process_syminfo): Likewise.

	* readelf.c (get_32bit_dynamic_section): Correct number of entries
	translated from external to internal form.
	(get_64bit_dynamic_section): Likewise.

2004-06-18  Jie Zhang  <zhangjie@magima.com.cn>

	* readelf.c (process_program_headers): When locating the dynamic
	section use the section table if it is present.
	(dynamic_segment): Renamed to dynamic_section.
	Replace references to dynamic segment with references to dynamic
	section, except where appropriate.
	(dynamic_segment_mips_val): Rename to dynamic_section_mips_val.
	(dynamic_segment_parisc_val): Rename to dynamic_section_parisc_val.
	(dynamic_segment_ia64_val): Rename to dynamic_section_ia64_val.
	(get_32bit_dynamic_segment): Rename to get_32bit_dynamic_section.
	Remove tag counting code as it is no longer needed.
	(get_64bit_dynamic_segment): Rename to get_64bit_dynamic_section.
	Remove tag counting code as it is no longer needed.
	(process_dynamic_segment): Rename to process_dynamic_section.

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

	* objcopy.c (copy_section): Use bfd_get_section_size instead of
	_raw_size or bfd_get_section_size_before_reloc.  Don't set reloc_done.
	(compare_section_lma): Likewise.
	* addr2line.c (find_address_in_section): Likewise.
	* coffgrok.c (do_sections_p1): Likewise.
	* dlltool.c (scan_drectve_symbols): Likewise.
	* nlmconv.c (main): Likewise.
	(copy_sections): Likewise.
	(powerpc_mangle_relocs): Likewise.
	* objdump.c (disassemble_section): Likewise.
	* prdbg.c (find_address_in_section): Likewise.
	* size.c (berkeley_sum): Likewise.
	* srconv.c (wr_ob): Likewise.
	* strings.c (strings_a_section): Likewise.

2004-05-28  Ian Lance Taylor  <ian@wasabisystems.com>

	* readelf.c (decode_ARM_machine_flags): Add EF_ARM_VFP_FLOAT.

2004-05-17  David Heine  <dlheine@tensilica.com>

	* objcopy.c (setup_bfd_headers): New function.
	(copy_object): Call setup_bfd_headers.

2004-05-13  Paul Brook  <paul@codesourcery.com>

	* readelf.c (display_debug_frames): Handle dwarf3 format CIE
	entries.

2004-05-13  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated French translation.

2004-05-11  Jakub Jelinek  <jakub@redhat.com>

	* readelf.c (get_segment_type): Handle PT_GNU_RELRO.

2004-05-07  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (section_groups): New.
	(group_count): New.
	(section_headers_groups): New.
	(process_section_groups): Populate group_count, section_groups
	and section_headers_groups.
	(process_unwind): Support section group.
	(process_object): Always call process_section_groups. Free
	section_groups and section_headers_groups.

2004-04-30  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (process_section_headers): Use %3lu on sh_info.

2004-04-30  Michael Deutschmann  <michael@talamasca.ocis.net>

	* ranlib.sh: Quote $1 argument in case it contains spaces.

2004-04-27  John Paul Wallington  <jpw@gnu.org>

	* objcopy.c (copy_usage, strip_usage): Fix spelling.

2004-04-26  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (do_section_groups): New.
	(options): Add --section-groups/-g.
	(usage): Mention --section-groups/-g.
	(parse_args): Support --section-groups/-g.
	(get_group_flags): New.
	(process_section_groups): New.
	(process_object): Call process_section_groups.

2004-04-24  Alan Modra  <amodra@bigpond.net.au>

	* objdump.c (disassemble_section): Don't disassemble sections
	without SEC_HAS_CONTENTS.

2004-04-22  Jakub Jelinek  <jakub@redhat.com>

	* objdump.c (synthsyms, synthcount): New variables.
	(disassemble_data): Use dynsyms for stripped binaries or libraries.
	Add synthetized symbols.
	(dump_bfd): For disassemble, initialize dynsyms always and
	also synthsyms.  Free synthsyms and clear {sym,dynsym,synth}count
	before returning.

2004-04-14  Alan Modra  <amodra@bigpond.net.au>

	* strings.c (print_strings): Cast file_off to unsigned long in
	printf arg list.

2004-04-07  Benjamin Monate  <benjamin.monate@cea.fr>

	PR 86
	* arsup.c (ar_save): Use smart_rename.

2004-04-01  Dean Luick <luick@cray.com>

	* readelf.c (display_debug_pubnames): Align offset and data
	columns.
	(read_and_display_attr_value): Add missing break;
	(debug_displays): Enable the display of the .debug_pubtypes
	section.

2004-03-30  Stan Shebs  <shebs@apple.com>

	* mpw-config.in, mpw-make.sed, mac-binutils.r: Remove MPW
	support files, no longer used.

2004-03-23  Paul Brook  <paul@codesourcery.com>

	* readelf.c (decode_ARM_machine_flags): Add EABI v3.

2004-03-21  Richard Henderson  <rth@redhat.com>

	* readelf.c (display_debug_frames): Don't crash for mismatched
	DW_CFA_restore_state.

2004-03-19  Alan Modra  <amodra@bigpond.net.au>

	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* configure: Regenerate.
	* po/binutils.pot: Regenerate.

2004-03-15  Nathan Sidwell  <nathan@codesourcery.com>

	* objdump.c (struct SFILE): Replace current pointer with pos
	offset, rename size to alloc.
	(objdump_sprintf): Avoid unnecessary copies in the common case
	(disassemble_bytes): Keep sfile live throughout the
	function. Adjust usage appropriately.

2004-03-10  Ben Elliston  <bje@gnu.org>

	* MAINTAINERS: Update my mail address.

2004-03-08  Danny Smith  <dannysmith@users.sourceforge.net>

	* deflex.l: Handle "PRIVATE" string.
	* defparse.y (%token): Add PRIVATE.
	(%type): Add opt_PRIVATE.
	(expline): Pass opt_PRIVATE to def_exports.
	(opt_PRIVATE): Handle PRIVATE token.
	* dlltool.h (def_exports): Add 7th param for private flag to
	declaration.
	* dlltool.c: Add PRIVATE to comment on EXPORTS syntax.
	(struct export): Add 'private' field.
	(def_exports): Set 'private' field of struct exports.
	(scan_drectve_symbols): Adjust calls to def_exports.
	(scan_filtered_symbols): Likewise.
	(dump_def_info): Print 'private' field.
	(gen_def_file): Likewise.
	(gen_lib_file): Skip generation of lib object if private.
	Delete tmp object files in same order as they were generated.
	Don't delete non-existent private object files.

2004-02-27  Andreas Schwab  <schwab@suse.de>

	* ar.c (main): Support POSIX-compatible argument parsing.

2004-02-23  Daniel Lucq  <daniel@lucq.org>

	* readelf.c (process_mips_specific): Print conflictsno as an
	unsigned long.

2004-02-21  Dmitry Timoshkov  <dmitry@baikal.ru>

	* dlltool.c (gen_exp_file): Always output names for forwarded symbols.

2004-02-19  Jakub Jelinek  <jakub@redhat.com>

	* objcopy.c (copy_section): Avoid warnings.

2004-02-14  Andrew Cagney  <cagney@redhat.com>

	* ar.c (remove_output): Use bfd_cache_close.
	* arsup.c (ar_end): Ditto.

2004-01-21  Roland McGrath  <roland@redhat.com>

	* readelf.c (get_note_type): Match NT_AUXV.

2004-01-20  Nick Clifton  <nickc@redhat.com>

	* version.c (print_version): Update copyright year to 2004.

2004-01-14  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>

	* acinclude.m4: Quote names of macros to be defined by AC_DEFUN
	throughout.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2004-01-12  Jakub Jelinek  <jakub@redhat.com>

	* objcopy.c: Include elf-bfd.h.
	(is_strip_section): Don't strip debugging sections if
	STRIP_NONDEBUG.
	(setup_section): If STRIP_NONDEBUG make SEC_ALLOC sections
	~(SEC_LOAD | SEC_HAS_CONTENTS) and on ELF targets also SHT_NOBITS.

	* objcopy.c (copy_section): Free relpp if relcount == 0.

2004-01-12  Ian Lance Taylor  <ian@wasabisystems.com>

	* stabs.c (parse_stab_argtypes): Handle g++ ABI version 3 names.
	(stab_demangle_argtypes): Likewise.
	(stab_demangle_v3_argtypes): New static function.
	(stab_demangle_v3_arg): New static function.

2004-01-12  Nick Clifton  <nickc@redhat.com>

	* objcopy.c (copy_object): Make the function boolean, returning
	FALSE upon failure.
	(copy_archive): Handle the return value from copy_object.
	(copy_file): Likewise.

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

	* readelf.c (find_section): New function.  Locates a named
	section.
	(get_debug_line_pointer_sizes): New function:  Initialises the
	debug_line_pointer_sizes array.
	(display_debug_lines): Call get_debug_line_pointer_sizes.
	(display_debug_loc): Likewise.
	(load_debug_loc): Use find_section.
	(load_debug_str): Likewise.
	(display_debug_info): Likewise.
	(prescan_debug_info): Delete.
	(debug_displays): Remove prescan field.
	(process_section_contents): Do not perform prescans.

2004-01-03  Alan Modra  <amodra@bigpond.net.au>

	* objcopy.c (filter_bytes): Delete.  Move code to..
	(copy_section): ..here.  Simplify size adjustment.  Divide
	section lma by interleave.

2004-01-02  Nick Clifton  <nickc@redhat.com>

	* po/ru.po: New file: Russian translation.
	* configure.in (ALL_LINGUAS): Add ru
	* configure: Regenerate.

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