2014-05-22  Release Manager

	* GCC 4.8.3 released.

2014-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	Backport from mainline
	2013-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure: Regenerate.

2014-02-07  Misty De Meo  <misty@brew.sh>

	PR target/58710
	* configure.ac: Use AC_LINK_IFELSE in check for
	_Unwind_GetIPInfo.
	* configure: Regenerate.

2013-12-05  Ian Lance Taylor  <iant@google.com>

	* alloc.c (backtrace_vector_finish): Add error_callback and data
	parameters.  Call backtrace_vector_release.  Return address base.
	* mmap.c (backtrace_vector_finish): Add error_callback and data
	parameters.  Return address base.
	* dwarf.c (read_function_info): Get new address base from
	backtrace_vector_finish.
	* internal.h (backtrace_vector_finish): Update declaration.

2013-11-30  Ian Lance Taylor  <iant@google.com>

	Backport from mainline:
	2013-10-17  Ian Lance Taylor  <iant@google.com>

	* elf.c (elf_add): Don't get the wrong offsets if a debug section
	is missing.

2013-10-16  Release Manager

	* GCC 4.8.2 released.

2013-05-31  Release Manager

	* GCC 4.8.1 released.

2013-03-25  Ian Lance Taylor  <iant@google.com>

	* alloc.c: #include <sys/types.h>.
	* mmap.c: Likewise.

2013-03-22  Release Manager

	* GCC 4.8.0 released.

2013-01-31  Ian Lance Taylor  <iant@google.com>

	* dwarf.c (read_function_info): Permit fvec parameter to be NULL.
	(dwarf_lookup_pc): Don't use ddata->fvec if threaded.

2013-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR other/56076
	* dwarf.c (read_line_header): Don't crash if DW_AT_comp_dir
	attribute was not seen.

2013-01-16  Ian Lance Taylor  <iant@google.com>

	* dwarf.c (struct unit): Add filename and abs_filename fields.
	(build_address_map): Set new fields when reading unit.
	(dwarf_lookup_pc): If we don't find an entry in the line table,
	just return the main file name.

2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years.

2013-01-01  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/54834
	* Makefile.am (AM_CPPFLAGS): Remove -I ../gcc/include and -I
	$(MULTIBUILDTOP)/../../gcc/include.
	* Makefile.in: Rebuild.

2013-01-01  Ian Lance Taylor  <iant@google.com>

	PR other/55536
	* mmap.c (backtrace_alloc): Don't call sync functions if not
	threaded.
	(backtrace_free): Likewise.

2012-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* mmapio.c: Define MAP_FAILED if not defined.

2012-12-11  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/54926
	* Makefile.am (AM_CFLAGS): Remove -frandom-seed=$@.
	* configure.ac: If --with-target-subdir, add -frandom-seed=$@
	to EXTRA_FLAGS unconditionally, otherwise check whether the compiler
	accepts it.
	* Makefile.in: Regenerated.
	* configure: Regenerated.

2012-12-07  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/54926
	* Makefile.am (AM_CFLAGS): Add -frandom-seed=$@.
	* Makefile.in: Regenerated.

2012-11-20  Ian Lance Taylor  <iant@google.com>

	* dwarf.c (read_attribute): Always clear val.

2012-11-13  Ian Lance Taylor  <iant@google.com>

	PR other/55312
	* configure.ac: Only add -Werror if building a target library.
	* configure: Rebuild.

2012-11-12  Ian Lance Taylor  <iant@google.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Gerald Pfeifer  <gerald@pfeifer.com>

	* configure.ac: Check for getexecname.
	* fileline.c: #include <errno.h>.  Define getexecname if not
	available.
	(fileline_initialize): Try to find the executable in a few
	different ways.
	* print.c (error_callback): Only print the filename if it came
	from the backtrace state.
	* configure, config.h.in: Rebuild.

2012-10-29  Ian Lance Taylor  <iant@google.com>

	* mmap.c (backtrace_vector_release): Correct last patch: add
	aligned, not size.

2012-10-29  Ian Lance Taylor  <iant@google.com>

	* mmap.c (backtrace_vector_release): Make sure freed block is
	aligned on 8-byte boundary.

2012-10-26  Ian Lance Taylor  <iant@google.com>

	PR other/55087
	* posix.c (backtrace_open): Add does_not_exist parameter.
	* elf.c (phdr_callback): Do not warn if shared library could not
	be opened.
	* fileline.c (fileline_initialize): Update calls to
	backtrace_open.
	* internal.h (backtrace_open): Update declaration.

2012-10-26  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR target/55061
	* configure.ac: Check for _Unwind_GetIPInfo function declaration.
	* configure: Regenerate.

2012-10-24  Ian Lance Taylor  <iant@google.com>

	PR target/55061
	* configure.ac: Check whether -funwind-tables option works.
	* configure: Rebuild.

2012-10-11  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Do not use dl_iterate_phdr on Solaris 10.
	* configure: Rebuild.

2012-10-10  Ian Lance Taylor  <iant@google.com>

	* elf.c: Rename all Elf typedefs to start with b_elf, and be all
	lower case.

2012-10-10  Hans-Peter Nilsson  <hp@bitrange.com>

	* elf.c (elf_add_syminfo_data): Add casts to avoid warning.

2012-10-09  Ian Lance Taylor  <iant@google.com>

	* dwarf.c (dwarf_fileline): Add cast to avoid warning.
	(backtrace_dwarf_add): Likewise.

2012-10-09  Ian Lance Taylor  <iant@google.com>

	Add support for tracing through shared libraries.
	* configure.ac: Check for link.h and dl_iterate_phdr.
	* elf.c: #include <link.h> if system has dl_iterate_phdr.  #undef
	ELF macros before #defining them.
	(dl_phdr_info, dl_iterate_phdr): Define if system does not have
	dl_iterate_phdr.
	(struct elf_syminfo_data): Add next field.
	(elf_initialize_syminfo): Initialize next field.
	(elf_add_syminfo_data): New static function.
	(elf_add): New static function, broken out of
	backtrace_initialize.  Call backtrace_dwarf_add instead of
	backtrace_dwarf_initialize.
	(struct phdr_data): Define.
	(phdr_callback): New static function.
	(backtrace_initialize): Call elf_add.
	* dwarf.c (struct dwarf_data): Add next and base_address fields.
	(add_unit_addr): Add base_address parameter.  Change all callers.
	(add_unit_ranges, build_address_map): Likewise.
	(add_line): Add ddata parameter.  Change all callers.
	(read_line_program, add_function_range): Likewise.
	(dwarf_lookup_pc): New static function, broken out of
	dwarf_fileline.
	(dwarf_fileline): Call dwarf_lookup_pc.
	(build_dwarf_data): New static function.
	(backtrace_dwarf_add): New function.
	(backtrace_dwarf_initialize): Remove.
	* internal.h (backtrace_dwarf_initialize): Don't declare.
	(backtrace_dwarf_add): Declare.
	* configure, config.h.in: Rebuild.

2012-10-04  Gerald Pfeifer  <gerald@pfeifer.com>

	* btest.c (f23): Avoid uninitialized variable warning.

2012-10-04  Ian Lance Taylor  <iant@google.com>

	* dwarf.c: If the system header files do not declare strnlen,
	provide our own version.

2012-10-03  Ian Lance Taylor  <iant@google.com>

	* dwarf.c (read_uleb128): Fix overflow test.
	(read_sleb128): Likewise.
	(build_address_map): Don't change unit_buf.start.

2012-10-02  Uros Bizjak  <ubizjak@gmail.com>

	PR other/54761
	* configure.ac (EXTRA_FLAGS): New.
	* Makefile.am (AM_FLAGS): Add $(EXTRA_FLAGS).
	* configure, Makefile.in: Regenerate.

2012-09-29  Ian Lance Taylor  <iant@google.com>

	PR other/54749
	* fileline.c (fileline_initialize): Pass errnum as -1 when
	reporting that we could not read executable information after a
	previous failure.

2012-09-27  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/54732
	* configure.ac: Add no-dependencies to AM_INIT_AUTOMAKE.
	* Makefile.am: Add dependencies for all objects.
	* configure, aclocal.m4, Makefile.in: Rebuild.

2012-09-27  Ian Lance Taylor  <iant@google.com>

	PR other/54726
	* elf.c (backtrace_initialize): Set *fileln_fn, not
	state->fileln_fn.

2012-09-19  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Only use GCC_CHECK_UNWIND_GETIPINFO when compiled
	as a target library.
	* configure: Rebuild.

2012-09-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Ian Lance Taylor  <iant@google.com>

        * configure.ac (GCC_HEADER_STDINT): Invoke.
        * backtrace.h: If we can't find <stdint.h>, use "gstdint.h".
        * btest.c: Don't include <stdint.h>.
        * dwarf.c: Likewise.
        * configure, aclocal.m4, Makefile.in, config.h.in: Rebuild.

2012-09-18  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/54623
	* Makefile.am (AM_CPPFLAGS): Define.
	(AM_CFLAGS): Remove -I options.
	* Makefile.in: Rebuild.

2012-09-18  Ian Lance Taylor  <iant@google.com>

	* posix.c (O_BINARY): Define if not defined.
	(backtrace_open): Pass O_BINARY to open.  Only call fcntl if
	HAVE_FCNTL is defined.
	* configure.ac: Test for the fcntl function.
	* configure, config.h.in: Rebuild.

2012-09-18  Ian Lance Taylor  <iant@google.com>

	* btest.c (test1, test2, test3, test4): Add the unused attribute.

2012-09-18  Ian Lance Taylor  <iant@google.com>

	* dwarf.c: Correct test of HAVE_DECL_STRNLEN.

2012-09-18  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Add AC_USE_SYSTEM_EXTENSIONS.
	* mmapio.c: Don't define _GNU_SOURCE.
	* configure, config.h.in: Rebuild.

2012-09-18  Ian Lance Taylor  <iant@google.com>

	* configure.ac: Check whether strnlen is declared.
	* dwarf.c: Declare strnlen if not declared.
	* configure, config.h.in: Rebuild.

2012-09-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* fileline.c: Include <stdlib.h>.
	* mmap.c: Likewise.

2012-09-17  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/54611
	* nounwind.c (backtrace_full): Rename from backtrace.  Add state
	parameter.

2012-09-17  Gerald Pfeifer  <gerald@pfeifer.com>

	PR bootstrap/54611
	* nounwind.c (backtrace_simple): Add state parameter.

2012-09-17  Ian Lance Taylor  <iant@google.com>

	PR bootstrap/54609
	* unknown.c (unknown_fileline): Add state parameter, remove
	fileline_data parameter, name error_callback parameter.
	(backtrace_initialize): Add state parameter.

2012-09-17  Ian Lance Taylor  <iant@google.com>

	* Initial implementation.
