2009-06-15  Nick Clifton  <nickc@redhat.com>

	PR 10263
	* objdump.c (disassemble_bytes): Set the DISASSEMBLE_DATA bit in
	the flags field of the disassemble_info structure if the -D switch
	is in operation.

2009-06-12  Homer Xing  <homer.xing@yahoo.com>

	* NEWS: Mention new feature added to gprof.

2009-06-12  John Reiser  <jreiser@BitWagon.com>

	* readelf.c (process_symbol_table): Set gnubuckets to NULL after
	freeing it and before returning.

2009-06-12  Jakub Jelinek  <jakub@redhat.com>

	* readelf.c (process_symbol_table): Don't return early if
	.hash/.gnu.hash is empty/unusable and not -D.

2009-06-09  Tom Bramer  <tjb@postpro.net>

	PR 10165
	* winduni.c (wind_MultiByteToWideChar): Do not pass MB_PRECOMPOSED
	to MultiByteToWideChar when using the CP_UTF8 or CO_UTF7 types.

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

	* strings.c (main): Delay parsing of decimal digits.

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

	* dep-in.sed: Don't use \n in replacement part of s command.
	* Makefile.am (DEP1): LC_ALL for uniq.
	Run "make dep-am".
	* Makefile.in: Regenerate.

2009-06-03  Tristan Gingold  <gingold@adacore.com>

	* MAINTAINERS: Add myself as Mach-O maintainer.

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

	PR 10199
	* doc/binutils.texi (nm): Correct -S description.

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

	* po/da.po: Updated Danish translation.

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

	* readelf.c (display_debug_section): Do not display debug sections
	with the NOBITS section type.

2009-05-27  Rafael Avila de Espindola  <espindola@google.com>

	* aclocal.m4: Include ../config/plugins.m4.
	* configure.in: Use AC_PLUGINS.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.

2009-05-27  Rafael Avila de Espindola  <espindola@google.com>

	* ar.c (main): Call bfd_plugin_set_program_name.
	* nm.c (main): Call bfd_plugin_set_program_name.

2009-05-27  Nathan Sidwell  <nathan@codesourcery.com>

	* sysdump.c (tab): Use puts rather than two printfs.

2009-05-26  Nick Clifton  <nickc@redhat.com>

	* po/id.po: Updated Indonesian translation.
	* po/binutils.pot: Updated template file.

2009-05-26  Rafael Avila de Espindola  <espindola@google.com>

	* ar.c: Include plugin.h.
	(main): Handle the --plugin option.
	* nm.c: Include plugin.h.
	(OPTION_PLUGIN): New.
	(long_options): Add plugin.
	(main): Handle OPTION_PLUGIN.
	* NEWS: Mention  the new feature.
	* doc/binutils: Documement the new command line options.
	* configure.in: Check for --enable-plugins.
	* configure: Regenerate.

2009-05-26  Alan Modra  <amodra@bigpond.net.au>

	* dep-in.sed: Output one filename per line with all lines having
	continuation backslash.  Prefix first line with "A", following
	lines with "B".
	* Makefile.am (DEP): Don't use dep.sed here.
	(DEP1): Run $MKDEP on single files, use dep.sed here on dependencies,
	sort and uniq.
	* Makefile.in: Regenerate.

2009-05-25  Tristan Gingold  <gingold@adacore.com>

	* makefile.vms-in: Fix CFLAGS, add addr2line.exe target.

	* configure.com: Fix it: handle alloca and define TARGET in config.h.

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

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

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

	* objcopy.c (set_long_section_mode): Check input_bfd is coff
	before accessing coff specific fields of bfd.

2009-05-09  Dave Korn  <dave.korn.cygwin@gmail.com>

	* MAINTAINERS:  Add myself as PE/COFF co-maintainer.

2009-05-08  Kai Tietz  <kai.tietz@onevision.com>

	* winduni.c (iconv_onechar): Only define when HAVE_ICONV
	is defined, but not when __CYGWIN__ or _WIN32 are defined.
	See wind_iconv_cp for call logic of this local funtion.

2009-05-05  Guillaume Duhamel  <guillaume.duhamel@gmail.com>

	PR 10109
	* winduni.c: Replace test of HAVE_ICONV_H with a test of
	HAVE_ICONV.
	(iconv_onechar): Use ICONV_CONST instead of "const".
	(wind_MultiByteToWideChar): Initialise local strings.

2009-04-30  Nick Clifton  <nickc@redhat.com>

	* readelf.c (dump_relocations): Display a relocation against an
	ifunc symbol as if it were a function invocation.
	(get_symbol_type): Handle STT_GNU_IFUNC.

2009-04-29  Anthony Green  <green@moxielogic.com>

	* NEWS: Tweak verilog support description.

2009-04-29  Alan Modra  <amodra@bigpond.net.au>
	    Denis Scherbakov <denis_scherbakov@yahoo.com>

	* readelf.c (slurp_ia64_unwind_table): Correct 64-bit unwind table
	read, and merge with 32-bit case.

2009-04-27  Anthony Green  <green@moxielogic.com>

	* NEWS: Mention verilog support added to bfd.

2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>

	* objcopy.c (copy_object): Copy pe_opthdr before changing PE
	parameters.

2009-04-24  Cary Coutant  <ccoutant@google.com>

	* dwarf.c (process_extended_line_op): Add DW_LNE_set_discriminator.
	Add missing newlines to HP extensions.

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

	* objcopy.c (set_pe_subsystem): Replace efi-rom with sal-rtd.
	* doc/binutils.texi: Likewise.

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

	PR binutils/10074
	* objcopy.c: Include coff/i386.h and coff/pe.h.
	(pe_file_alignment): New.
	(pe_heap_commit): Likewise.
	(pe_heap_reserve): Likewise.
	(pe_image_base): Likewise.
	(pe_section_alignment): Likewise.
	(pe_stack_commit): Likewise.
	(pe_stack_reserve): Likewise.
	(pe_subsystem): Likewise.
	(pe_major_subsystem_version): Likewise.
	(pe_minor_subsystem_version): Likewise.
	(set_pe_subsystem): Likewise.
	(convert_efi_target): Likewise.
	(command_line_switch): Add OPTION_FILE_ALIGNMENT,
	OPTION_HEAP, OPTION_IMAGE_BASE, OPTION_SECTION_ALIGNMENT,
	OPTION_STACK and OPTION_SUBSYSTEM.
	(copy_options): Likewise.
	(copy_usage): Add --file-alignment, --heap, --image-base,
	--section-alignment, --stack and --subsystem.
	(copy_object): Set up PE parameters.
	(copy_main): Process Add OPTION_FILE_ALIGNMENT,
	OPTION_HEAP, OPTION_IMAGE_BASE, OPTION_SECTION_ALIGNMENT,
	OPTION_STACK and OPTION_SUBSYSTEM.   Convert EFI target to
	PEI target.

	* NEWS: Mention --file-alignment, --heap, --image-base,
	--section-alignment, --stack and --subsystem command line
	options for objcopy.

	* doc/binutils.texi: Document --file-alignment, --heap,
	--image-base, --section-alignment, --stack and --subsystem
	command line options for objcopy.

2009-04-15  Anthony Green  <green@moxielogic.com>

	* MAINTAINERS: Add myself as Moxie port maintainer.

2009-04-14  Dave Korn  <dave.korn.cygwin@gmail.com>

	* objcopy.c (enum long_section_name_handling):  New enum type.
	(enum command_line_switch):  Add OPTION_LONG_SECTION_NAMES.
	(copy_options[]):  Add entry for --long-section-names option.
	(copy_usage):  Document it.
	(set_long_section_mode):  New subroutine.
	(copy_file):  Call it.
	(copy_main):  Accept OPTION_LONG_SECTION_NAMES and parse arg.
	* doc/binutils.texi:  Update objcopy documentation with details
	of new option.

2009-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>

	* dlltool.c (set_dll_name_from_def):  Accept new second arg that
	indicates if we are building DLL or EXE, and use it to add a
	default suffix to the output filename when none is already present.
	(def_name):  Indicate we are building an EXE when calling it.
	(def_library):  Indicate we are building a DLL when calling it.

2009-04-01  Jari Aalto  <jari.aalto@cante.net>

	PR 9972
	* doc/binutils.texi (strings): Document the -V alias for the
	--version option.
	* strings.c (usage): Likewise.

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

	PR 9992
	* configure.in: Import Solaris specific largefile test from
	bfd/configure.in.
	* configure: Regenerate.

2009-03-30  Richard Sandiford  <rdsandiford@googlemail.com>

	* MAINTAINERS: Add self.

2009-03-27  Nick Clifton  <nickc@redhat.com>

	* dwarf.c (display_debug_ranges): Add the base address to the
	displayed values for 'Begin' and 'End'. 

2009-03-25  Ryan Mansfield  <rmansfield@qnx.com>

	* readelf.c (process_file_header): Don't report a corrupt string
	table index if it is zero.

2009-03-19  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf.c (dwarf_regnames): Moved before frame_need_space.
	(dwarf_regnames_count): Likewise.
	(frame_need_space): Return int.
	(display_debug_frames): Check invalid registers.

2009-03-19  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (debug_apply_relocations): Check relocations
	against STT_SECTION symbol.

2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>

	* readelf.c (debug_apply_relocations): Allow relocations
	against function symbols.

2009-03-18  Alan Modra  <amodra@bigpond.net.au>

	* sysdep.h: Include alloca-conf.h instead of config.h and remove
	existing #if's handling alloca.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.

2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>

	* configure.tgt: Extend AIX 5 behavior to AIX 6 and above.
	* configure.in: Likewise.
	* configure: Regenerate.

2009-03-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/9945
	* objcopy.c (copy_object): Clear HAS_RELOC when stripping all.

2009-03-11  Chris Demetriou  <cgd@google.com>

	* ar.c (deterministic): New global variable.
	(main): Recognize new 'D' option, which enables 'deterministic mode'.
	(usage): Document new 'D' option.
	(write_archive): Set BFD_DETERMINISTIC_OUTPUT in output archive's
	flags if deterministic mode was requested.
	* doc/binutils.texi (ar): Document deterministic mode ('D' option).

2009-03-09  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/9933
	* objcopy.c (filter_symbols): Properly handle common symbols
	in relocatable file.

2009-03-06  Nick Clifton  <nickc@redhat.com>

	* po/es.po: Updated Spanish translation.

2009-03-05  Nick Clifton  <nickc@redhat.com>

	* objdump.c (disassemble_section): If the computed next offset is
	not beyond the current offset then just continue to the end.

2009-03-04  Tristan Gingold  <gingold@adacore.com>

	* MAINTAINERS: Add myself as VMS maintainer.

2009-03-03  Nick Clifton  <nickc@redhat.com>

	* readelf.c: Update formatting.

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

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

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

	* objdump.c (disassemble_section): Mask address before sign extending.

2009-03-02  Sebastian Biallas  <sb@biallas.net>

	* ieee.c (parse_ieee_ty): Add support for undocumented 'v' type.
	(parse_ieee_bb): Set the filename if it has not already been
	discovered.

2009-03-02  Cary Coutant  <ccoutant@google.com>

	* readelf.c (adjust_relative_path): New function.
	(struct archive_info): New type.
	(setup_archive): New function.
	(release_archive): New function.
	(setup_nested_archive): New function.
	(get_archive_member_name): New function.
	(get_archive_member_name_at): New function.
	(make_qualified_name): New function.
	(process_archive): Factor out code for reading archive index and
	long filename table to setup_archive.  Add support for thin archives.

2009-03-02  Nick Clifton  <nickc@redhat.com>

	* po/sk.po: Updated Slovak translation.

2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* configure: Regenerate.

2009-02-23  Cary Coutant <ccoutant@google.com>

	* objdump.c (load_specific_debug_section): New function, from
	load_debug_section.
	(load_debug_section): Use load_specific_debug_section.
	(dump_dwarf_section): Likewise.

2009-02-23  Cary Coutant <ccoutant@google.com>

	* readelf.c (parse_args): Select all sections explicitly for -w.

2009-02-09  Kai Tietz  <kai.tietz@onevision.com>

	* windres.c (set_endianess): Copy name without leading '-'.

2009-02-09  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Mention feature match between objdump and readelf for dumping
	dwarf info.

	* doc/binutils.texi (objdump): Document -W/--dwarf improvments to
	objdump.

	* objdump.c (usage): Update documentation for -W/--dwarf.
	(enum option_values): Add OPTION_DWARF.
	(long_options): --dwarf can accept arguments.
	(dump_dwarf_section): Also check enabled field.
	(main): Option -W can accept arguments, code moved to
	dwarf.c and call dwarf_select_sections_all instead.
	* readelf.c (process_section_headers): Remove do_debug_lines_decoded.
	(parse_args): Move code to...
	* dwarf.c (dwarf_select_sections_by_letters,
	dwarf_select_sections_by_names): : ...here (new functions).
	(do_debug_lines_decoded): Remove and replaced by ...
	(FLAG_DEBUG_LINES_RAW, FLAG_DEBUG_LINES_DECODED): ... new macros.
	(display_debug_lines): Adjust for previous change.
	(dwarf_select_sections_all): New function.
	(debug_displays): Add initializer for enabled field.
	* dwarf.h (do_debug_lines_decoded): Remove.
	Add prototypes for the new functions.
	(struct dwarf_section_display): Add enabled field.

2009-02-06  Nick Clifton  <nickc@redhat.com>

	* po/vi.po: Updated Vietnamese translation.

2009-02-03  Sandip Matte  <sandip@rmicorp.com>

	* readelf.c (get_machine_flags): Handle E_MIPS_MACH_XLR.

2009-02-03  H.J. Lu  <hongjiu.lu@intel.com>

	* NEWS: Move --as-needed change to ...
	* ../ld/NEWS: Here.

2009-02-03  Carlos O'Donell  <carlos@codesourcery.com>

	* configure.in: AC_SUBST pdfdir.
	* Makefile.am: Add install-pdf, install-pdf-am,
	and install-pdf-recursive targets.
	* doc/Makefile.am: Define pdf__strip_dir. Add
	install-pdf and install-pdf-am targets.
	* po/Make-in: Add install-pdf target.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Regenerate.

2009-02-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/9784
	* NEWS: Mention --prefix=PREFIX and --prefix-strip=LEVEL.

	* doc/binutils.texi: Document --prefix=PREFIX and
	--prefix-strip=LEVEL.

	* objdump.c: Include "filenames.h".
	(prefix): New.
	(prefix_strip): Likewise.
	(prefix_length): Likewise.
	(usage): Add --prefix=PREFIX and --prefix-strip=LEVEL.
	(option_values): Add OPTION_PREFIX and OPTION_PREFIX_STRIP.
	(long_options): Likewise.
	(show_line): Handle prefix and prefix_strip.
	(main): Handle OPTION_PREFIX and OPTION_PREFIX_STRIP.

	* readelf.c (PATH_MAX): Moved to ...
	* sysdep.h: Here.

2009-01-31  Alan Modra  <amodra@bigpond.net.au>

	* NEWS: Mention --as-needed change.

2009-01-29  Alan Modra  <amodra@bigpond.net.au>

	PR 9798
	* bucomm.c (bfd_nonfatal_message): Use bfd_get_archive_filename.
	(bfd_get_archive_filename): Constify param.
	* bucomm.h (bfd_get_archive_filename): Update prototype.
	* objcopy.c (RETURN_NONFATAL): Delete.
	(copy_unknown_object): Don't call bfd_get_archive_filename for
	bfd_nonfatal_message filename, instead just pass bfd.
	(copy_object): Likewise.
	(copy_archive, copy_file): Likewise.  Expand RETURN_NONFATAL.  On
	bfd_close errors, do not pass the bfd to bfd_nonfatal_message.
	(setup_bfd_headers): Fix error message.

2009-01-27  Nick Clifton  <nickc@redhat.com>

	PR 9774
	* objdump.c (disassemble_section): When the target uses signed
	addresses make sure that we compute signed values.

2009-01-27  Nick Clifton  <nickc@redhat.com>

	* MAINTAINERS: Remove Thiemo Seufer's name from the list of MIPS
	maintainers.

2009-01-26  Nick Clifton  <nickc@redhat.com>

	PR 9766
	* dlltool.c (xlate): When strip text after the @ sign, look for
	the last one not the first one.

2009-01-16  Alan Modra  <amodra@bigpond.net.au>

	* configure.in (commonbfdlib): Delete.
	* configure: Regenerate.

2008-01-14  Charles Wilson  <cygwin@cwilson.fastmail.fm>

	Cleanup code related to --identify option.

	* binutils/dlltool.c (file scope): Removed globals identify_ms,
	identify_member_contains_symname_result,
	identify_dll_name_list_head, and identify_dll_name_list_tail.
	Renamed existing typedef dll_name_list_type to
	dll_name_list_node_type.
	Added new typedefs dll_name_list_type, symname_search_data_type,
	and identify_data_type.
	(identify_append_dll_name_to_list): Renamed to...
	(dll_name_list_append): ...here.  Changed signature to accept list
	argument rather than use global.
	(identify_count_dll_name_list): Renamed to...
	(dll_name_list_count): ...here.  Changed signature to accept list
	argument rather than use global.
	(identify_print_dll_name_list): Renamed to...
	(dll_name_list_print): ...here.  Changed signature to accept list
	argument rather than use global.
	(identify_free_dll_name_list): Renamed to...
	(dll_name_list_free_contents): ...here.
	(dll_name_list_free): New function.
	(dll_name_list_create): New function.
	(identify_process_section_p): Changed signature to accept
	ms_style_implib argument rather than use global.
	(identify_member_contains_symname): Expect incoming void * data to
	be symname_search_data_type.
	(identify_dll_for_implib): Use new functions dll_name_list_create
	and dll_name_list_free.  Use new types symname_search_data_type
	and identify_data_type to communicate with search routines.
	(identify_search_section): Expect incoming void * data to be
	identify_data_type. Use its contents rather than global
	variables.

2009-01-13  Charles Wilson  <cygwin@cwilson.fastmail.fm>

	Add --identify-strict option.  Handle ms-style implibs:

	* dlltool.c (file scope): Added new globals identify_ms and
	identify_strict. New typedef dll_name_list_type, and globals
	identify_dll_name_list_head and identify_dll_name_list_tail. Added
	new global identify_member_contains_symname_result.
	(identify_append_dll_name_to_list): New function.
	(identify_count_dll_name_list): New function.
	(identify_print_dll_name_list): New function.
	(identify_free_dll_name_list): New function.
	(identify_search_archive): Changed signature to take function
	pointer to operation to apply to each member, and data to pass on
	to that function.
	(identify_search_member): Changed signature to accept user data
	from caller.
	(identify_member_contains_symname): New function.
	(identify_dll_for_implib): Rewrite. Now determines whether implib
	is ms- or binutils- style, before searching sections for
	dllname. Allows multiple dllnames.
	(identify_process_section_p): Search alternate section for dllname
	when implib is ms-style.
	(identify_search_section): Add additional conditions to excludes
	candidate sections from consideration.
	(usage): Added --identify-strict.
	(long_options): Added --identify-strict.
	(main): Handle --identify-strict option.
	* doc/binutils.texi: Document --identify-strict	option.
	* NEWS: Document --identify and	--identify-strict options.

2009-01-13  Alan Modra  <amodra@bigpond.net.au>

	PR 7034
	* doc/binutils.texi (objdump -R): Note effect of -d or -D.

2009-01-13  Alan Modra  <amodra@bigpond.net.au>

	* objdump.c (disassemble_section): Don't assume non-instruction
	data if object symbol at given address is in different section.

2009-01-12  Kai Tietz  <kai.tietz@onevision.com>

	* dlltool.c (create_for_pep): New.
	(flush_page): Use create_for_pep instead of using
	macro DLLTOOL_MX86_64 clause.
	(generate_idata_ofile): Likewise.
	(make_one_lib_file): Likewise.
	(make_head): Likewise.
	(make_tail): Likewise.
	(main): Initialize create_for_pep.

2009-01-08  Kai Tietz  <kai.tietz@onevision.com>

	* dlltool.c (use_nul_prefixed_import_tables): New.
	(make_head): Make prefix leading zero prefix element for
	idata$4 and idata$5 dependent to new flag.
	(usage): Add new option  --use-nul-prefixed-import-tables.
	(OPTION_USE_NUL_PREFIXED_IMPORT_TABLES): New.
	(long_options): Add --use-nul-prefixed-import-tables.
	(main): Likewise.
	* doc/binutils.texi: Add new option documentation for
	--use-nul-prefixed-import-tables.
	* NEWS: Add new option.

2009-01-06  Kai Tietz  <kai.tietz@onevision.com>

	* windres.c (set_endianess): Get architecture name
	for internal target names like "pe-arm-wince-little".
	(find_arch_match): New helper.
	* ChangeLog: Reset it.
	* ChangeLog-2008: Moved old ChangeLog.

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