2018-01-25  Release Manager

	* GCC 7.3.0 released.

2017-10-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* elf.c: Fix typo in the last commit, SFH_COMPRESSED vs SHF_COMPRESSED.

2017-10-10  Ian Lance Taylor  <iant@golang.org>

	PR go/80914
	* elf.c (SHF_COMPRESSED): Define.
	(elf_add): Ignore debug sections with SHF_COMPRESSED set.

2017-08-14  Release Manager

	* GCC 7.2.0 released.

2017-05-02  Release Manager

	* GCC 7.1.0 released.

2017-03-08  Sam Thursfield  <sam.thursfield@codethink.co.uk>

	* btest.c (test5): Replace #ifdef guard with 'unused' attribute
	to fix compile warning when BACKTRACE_SUPPORTED isn't defined.

2017-01-01  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2016-11-15  Matthias Klose  <doko@ubuntu.com>

	* configure: Regenerate.

2016-09-11  Carlos Liam  <carlos@aarzee.me>

	* all: Remove meaningless trailing whitespace.

2016-05-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/71161
	* elf.c (phdr_callback) [__i386__]: Add
	__attribute__((__force_align_arg_pointer__)).

2016-03-02  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>

	* elf.c (backtrace_initialize): Properly initialize elf_fileline_fn to
	avoid possible crash.
	(elf_add): Don't set *fileline_fn to elf_nodebug value in case of
	missing debug info anymore.

2016-02-06  John David Anglin  <danglin@gcc.gnu.org>

	* mmap.c (MAP_FAILED): Define if not defined.

2016-01-04  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2015-12-18  Andris Pavenis  <andris.pavenis@iki.fi>

	* configure.ac: Specify that DJGPP do not have mmap
	even when sys/mman.h exists.
	* configure: Regenerate

2015-12-09  John David Anglin  <danglin@gcc.gnu.org>

	PR libgfortran/68115
	* configure.ac: Set libbacktrace_cv_sys_sync to no on hppa*-*-hpux*.
	* configure: Regenerate.
	* elf.c (backtrace_initialize): Cast __sync_bool_compare_and_swap call
	to void.

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

	* posix.c (backtrace_open): Cast second argument of open() to int.

2015-09-11  Ian Lance Taylor  <iant@google.com>

	* Makefile.am (backtrace.lo): Depend on internal.h.
	(sort.lo, stest.lo): Add explicit dependencies.
	* Makefile.in: Rebuild.

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

	* backtrace.c: #include <sys/types.h>.

2015-09-08  Ian Lance Taylor  <iant@google.com>

	PR other/67457
	* backtrace.c: #include "internal.h".
	(struct backtrace_data): Add can_alloc field.
	(unwind): If can_alloc is false, don't try to get file/line
	information.
	(backtrace_full): Set can_alloc field in bdata.
	* alloc.c (backtrace_alloc): Don't call error_callback if it is
	NULL.
	* mmap.c (backtrace_alloc): Likewise.
	* internal.h: Update comments for backtrace_alloc and
	backtrace_free.

2015-09-08  Ian Lance Taylor  <iant@google.com>

	PR other/67457
	* mmap.c (backtrace_alloc): Correct test for mmap failure.

2015-08-31  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: For spu-*-* targets, set have_fcntl to no.
	* configure: Regenerate.

2015-08-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: Remove [disable-shared] argument to LT_INIT.
	Remove setting PIC_FLAG when building as target library.
	* configure: Regenerate.

2015-08-26  Hans-Peter Nilsson  <hp@axis.com>

	* configure.ac: Only compile with -fPIC if the target
	supports it.
	* configure: Regenerate.

2015-08-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>

	* configure.ac: Set have_mmap to no on spu-*-* targets.
	* configure: Regenerate.

2015-08-13  Ian Lance Taylor  <iant@google.com>

	* dwarf.c (read_function_entry): Add vec_inlined parameter.
	Change all callers.

2015-06-11  Martin Sebor  <msebor@redhat.com>

	PR sanitizer/65479
	* dwarf.c (struct line): Add new field idx.
	(line_compare): Use it.
	(add_line): Set it.
	(read_line_info): Reset it.

2015-05-29  Tristan Gingold  <gingold@adacore.com>

	* pecoff.c: New file.
	* Makefile.am (FORMAT_FILES): Add pecoff.c and dependencies.
	* Makefile.in: Regenerate.
	* filetype.awk: Detect pecoff.
	* configure.ac: Define BACKTRACE_SUPPORTS_DATA on elf platforms.
	Add pecoff.
	* btest.c (test5): Test enabled only if BACKTRACE_SUPPORTS_DATA is
	true.
	* backtrace-supported.h.in (BACKTRACE_SUPPORTS_DATA): Define.
	* configure: Regenerate.
	* pecoff.c: New file.

2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>

	* Makefile.in: Regenerated with automake-1.11.6.
	* aclocal.m4: Likewise.
	* configure: Likewise.

2015-01-24  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Move AM_ENABLE_MULTILIB before AC_PROG_CC.
	* configure: Regenerate.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/63784
	* configure: Regenerated.

2014-11-11  David Malcolm  <dmalcolm@redhat.com>

	* ChangeLog.jit: New.

2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/63610
	* configure: Regenerate.

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

	* internal.h (backtrace_atomic_load_pointer) [no atomic or sync]:
	Fix to return void *.

2014-05-08  Ian Lance Taylor  <iant@google.com>

	* mmap.c (backtrace_free): If freeing a large aligned block of
	memory, call munmap rather than holding onto it.
	(backtrace_vector_grow): When growing a vector, double the number
	of pages requested.  When releasing the old version of a grown
	vector, pass the correct size to backtrace_free.

2014-03-07  Ian Lance Taylor  <iant@google.com>

	* sort.c (backtrace_qsort): Use middle element as pivot.

2014-03-06  Ian Lance Taylor  <iant@google.com>

	* sort.c: New file.
	* stest.c: New file.
	* internal.h (backtrace_qsort): Declare.
	* dwarf.c (read_abbrevs): Call backtrace_qsort instead of qsort.
	(read_line_info, read_function_entry): Likewise.
	(read_function_info, build_dwarf_data): Likewise.
	* elf.c (elf_initialize_syminfo): Likewise.
	* Makefile.am (libbacktrace_la_SOURCES): Add sort.c.
	(stest_SOURCES, stest_LDADD): Define.
	(check_PROGRAMS): Add stest.

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.

2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years

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

	* elf.c (ET_DYN): Undefine and define again.
	(elf_add): Add exe argument, if true and ehdr.e_type is ET_DYN,
	return early -1 without closing the descriptor.
	(struct phdr_data): Add exe_descriptor.
	(phdr_callback): If pd->exe_descriptor is not -1, for very first
	call if dlpi_name is NULL just call elf_add with the exe_descriptor,
	otherwise backtrace_close the exe_descriptor if not -1.  Adjust
	call to elf_add.
	(backtrace_initialize): Adjust call to elf_add.  If it returns
	-1, set pd.exe_descriptor to descriptor, otherwise set it to -1.

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-27  Ian Lance Taylor  <iant@google.com>

	* dwarf.c (find_address_ranges): New static function, broken out
	of build_address_map.
	(build_address_map): Call it.
	* btest.c (check): Check for missing filename or function, rather
	than crashing.
	(f3): Check that enough frames were returned.

2013-11-19  Jakub Jelinek  <jakub@redhat.com>

	* backtrace.h (backtrace_syminfo_callback): Add symsize argument.
	* elf.c (elf_syminfo): Pass 0 or sym->size to the callback as
	last argument.
	* btest.c (struct symdata): Add size field.
	(callback_three): Add symsize argument.  Copy it to the data->size
	field.
	(f23): Set symdata.size to 0.
	(test5): Likewise.  If sizeof (int) > 1, lookup address of
	((uintptr_t) &global) + 1.  Verify symdata.val and symdata.size
	values.

	* atomic.c: Include sys/types.h.

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

	* configure.ac: Check for support of __atomic extensions.
	* internal.h: Declare or #define atomic functions for use in
	backtrace code.
	* atomic.c: New file.
	* dwarf.c (dwarf_lookup_pc): Use atomic functions.
	(dwarf_fileline, backtrace_dwarf_add): Likewise.
	* elf.c (elf_add_syminfo_data, elf_syminfo): Likewise.
	(backtrace_initialize): Likewise.
	* fileline.c (fileline_initialize): Likewise.
	* Makefile.am (libbacktrace_la_SOURCES): Add atomic.c.
	* configure, config.h.in, Makefile.in: Rebuild.

2013-11-18  Jakub Jelinek  <jakub@redhat.com>

	* elf.c (SHN_UNDEF): Define.
	(elf_initialize_syminfo): Add base_address argument.  Ignore symbols
	with st_shndx == SHN_UNDEF.  Add base_address to address fields.
	(elf_add): Adjust caller.

	* elf.c (phdr_callback): Process info->dlpi_addr == 0 normally.

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

	* backtrace.h (backtrace_create_state): Correct comment about
	threading.

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

	* backtrace.h (backtrace_syminfo): Update comment and parameter
	name to take any address, not just a PC value.
	* elf.c (STT_OBJECT): Define.
	(elf_nosyms): Rename parameter pc to addr.
	(elf_symbol_search): Rename local variable pc to addr.
	(elf_initialize_syminfo): Add STT_OBJECT symbols to elf_symbols.
	(elf_syminfo): Rename parameter pc to addr.
	* btest.c (global): New global variable.
	(test5): New test.
	(main): Call test5.

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-15  David Malcolm  <dmalcolm@redhat.com>

	* configure.ac: Add --enable-host-shared, setting up
	pre-existing PIC_FLAG variable within Makefile.am et al.
	* configure: Regenerate.

2013-09-20  Alan Modra  <amodra@gmail.com>

	* configure: Regenerate.

2013-07-23  Alexander Monakov  <amonakov@ispras.ru>

	* elf.c (elf_syminfo): Loop over the elf_syminfo_data chain.

2013-07-23  Alexander Monakov  <amonakov@ispras.ru>

	* elf.c (backtrace_initialize): Pass elf_fileline_fn to
	dl_iterate_phdr callbacks.

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

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

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.

Copyright (C) 2012-2017 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
