2019-10-28  Aaron Merey  <amerey@redhat.com>

	* Makefile.am (libdw_so_LDLIBS): Add -ldl for libdebuginfod.so dlopen.

2019-11-10  Mark Wielaard  <mark@klomp.org>

	* libdwP.h (libdw_unalloc): New define.
	(libdw_typed_unalloc): Likewise.
	(__libdw_thread_tail): New function declaration.
	* libdw_alloc.c (__libdw_thread_tail): New function.
	* dwarf_getabbrev.c (__libdw_getabbrev): Call libdw_typed_unalloc
	when reading invalid data or when hash collission detected.

2019-10-28  Jonathon Anderson  <jma14@rice.edu>

	* libdw_alloc.c: Added __libdw_alloc_tail.
	(__libdw_allocate): Switch to use the mem_tails array.
	* libdwP.h (Dwarf): Likewise.
	* dwarf_begin_elf.c (dwarf_begin_elf): Support for above.
	* dwarf_end.c (dwarf_end): Likewise.
	* atomics.h: Add support for thread_local.

2019-10-28  Mark Wielaard  <mark@klomp.org>

	* dwarf_sig8_hash.h: Include libdw.h. Remove COMPARE. Include
	dynamicsizehash_concurrent.h.
	* dwarf_sig8_hash.c: Include dynamicsizehash_concurrent.c.
	* dwarf_formref_die.c (dwarf_formref_die): Drop NULL argument to
	Dwarf_Sig8_Hash_find.

2019-08-26  Srđan Milaković  <sm108@rice.edu@rice.edu>

	* dwarf_abbrev_hash.{c,h}: Use the *_concurrent hash table.

2019-11-01  Jonathon Anderson  <jma14@rice.edu>

	* dwarf_begin_elf.c (valid_p): Switch calloc for malloc for fake CUs.
	Add explicit initialization of some fields.
	* dwarf_end.c (cu_free): Add clause to limit freeing of CU internals.

2019-08-26  Jonathon Anderson  <jma14@rice.edu>

	* libdw_alloc.c (__libdw_allocate): Added thread-safe stack allocator.
	* libdwP.h (Dwarf): Likewise.
	* dwarf_begin_elf.c (dwarf_begin_elf): Support for above.
	* dwarf_end.c (dwarf_end): Likewise.
	* Makefile.am: Use -pthread to provide rwlocks.

2019-07-05  Omar Sandoval  <osandov@fb.com>

	* Makefile.am (libdw_so_LIBS): Replace libebl.a with libebl_pic.a.
	Move libebl_pic.a to the beginning so that libdw symbols are resolved.
	(libdw_so_LDLIBS): Remove -ldl.
	(libdw.so): Remove -rpath.
	(libdw_a_LIBADD): Add libebl, libebl_backends, and libcpu objects.

2019-08-25  Jonathon Anderson  <jma14@rice.edu>

	* dwarf_getcfi.c (dwarf_getcfi): Set default_same_value to false.

2019-08-12  Mark Wielaard  <mark@klomp.org>

	* libdw.map (ELFUTILS_0.177): Add new version of dwelf_elf_begin.

2019-06-28  Mark Wielaard  <mark@klomp.org>

	* libdw.map (ELFUTILS_0.177): New section. Add
	dwelf_elf_e_machine_string.

2019-05-16  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_AT_GNU_numerator, DW_AT_GNU_denominator and
	DW_AT_GNU_bias.

2019-04-28  Mark Wielaard  <mark@klomp.org>

	* dwarf_siblingof.c (dwarf_siblingof): Don't initialize addr.

2019-04-28  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation.c (dwarf_getlocation_addr): Call
	check_constant_offset with llbufs and listlens directly.

2019-04-27  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation.c (store_implicit_value): Check dbg isn't
	NULL.

2019-02-02  Mark Wielaard  <mark@klomp.org>

	* dwarf_nextcu.c (__libdw_next_unit): Define bytes_end.
	Check there are enough bytes to read extended lenght, version
	and unit.

2019-01-20  Mark Wielaard  <mark@klomp.org>

	* dwarf_getsrclines.c (read_srclines): Check terminating NUL byte
	for dir and file lists.

2018-10-23  Mark Wielaard  <mark@klomp.org>

	* dwarf_child.c (__libdw_find_attr): Initialize readp to NULL.
	* dwarf_getattrs.c (dwarf_getattrs): Initialize die_addr to NULL.

2018-10-20  Mark Wielaard  <mark@klomp.org>

	* libdw.map (ELFUTILS_0.175): New section. Add dwelf_elf_begin.

2018-10-29  Milian Wolff  <milian.wolff@kdab.com>

	* dwarf_getcfi_elf.c (getcfi_shdr): Check sh_type != SHT_NOBITS.

2018-09-13  Mark Wielaard  <mark@klomp.org>

	* dwarf_begin_elf.c (check_section): Drop ehdr argument, add and
	use shstrndx argument.
	(global_read): Likewise.
	(scngrp_read): Likewise.
	(dwarf_begin_elf): Call elf_getshdrstrndx. Pass shstrndx to
	global_read or scngrp_read.

2018-08-18  Mark Wielaard  <mark@klomp.org>

	* dwarf_getabbrev.c (__libdw_getabbrev): Continue until both name
	and form are zero.
	* dwarf_hasattr.c (dwarf_hasattr): Stop when both name and form
	are zero.

2018-08-18  Mark Wielaard  <mark@klomp.org>

	* dwarf_getaranges.c (dwarf_getaranges.c): Make sure there is enough
	data to read the address and segment size.

2018-07-04  Ross Burton <ross.burton@intel.com>

	* libdw_alloc.c: Remove error.h include.

2018-06-28  Mark Wielaard  <mark@klomp.org>

	* dwarf_next_cfi.c (dwarf_next_cfi): Check whether length is zero.

2018-06-27  Mark Wielaard  <mark@klomp.org>

	* dwarf_begin_elf.c (check_section): Allow a single .debug_frame
	section.

2018-06-26  Mark Wielaard  <mark@klomp.org>

	* libdw.h (dwarf_getscn_info): Remove.
	* libdw.map (ELFUTILS_0.122): Remove dwarf_getscn_info.

2018-06-25  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (libdw_a_SOURCES): Add dwarf_next_lines.c.
	* libdw.h (dwarf_next_lines): New function declaration.
	* libdw.map (ELFUTILS_0.173): New section.
	* dwarf_next_lines.c: New files.
	* dwarf_begin_elf.c (check_section): Don't error out when elf
	decompression fails.
	(valid_p): Allow just a single .debug_line section.
	* dwarf_getsrclines.c (read_srclines): Keep files relative if comp_dir
	is missing.

2018-06-22  Mark Wielaard  <mark@klomp.org>

	* dwarf_nextcu.c (__libdw_next_unit): Set next_off to -1 when it would
	wrap around.

2018-06-18  Mark Wielaard  <mark@klomp.org>

	* dwarf_aggregate_size.c (array_size): New depth argument. Use
	aggregate_size instead of dwarf_aggregate_size and pass depth.
	(aggregate_size): New depth argument. Check depth isn't bigger
	than MAX_DEPTH (256). Pass depth to recursive calls.
	(dwarf_aggregate_size): ass zero as depth to aggregate_size.

2018-06-18  Mark Wielaard  <mark@klomp.org>

	* dwarf_peel_type.c (dwarf_peel_type): Limit modifier chain to 64.

2018-06-18  Mark Wielaard  <mark@klomp.org>

	* dwarf_aggregate_size.c (aggregate_size): Check die is not NULL.

2018-06-17  Luiz Angelo Daros de Luca  <luizluca@gmail.com>

	* dwarf_getsrclines.c (read_srclines): Intialize filelist early.

2018-06-15  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation.c (check_constant_offset): Clarify DW_FORM_data16
	isn't really a constant.
	(dwarf_getlocation): Don't handle DW_FORM_data16 as block.
	(dwarf_getlocation_addr): Likewise.
	(dwarf_getlocations): Likewise.

2018-06-12  Mark Wielaard  <mark@klomp.org>

	* memory-access.h (read_3ubyte_unaligned_inc): New define.

2018-06-12  Mark Wielaard  <mark@klomp.org>

	* libdw.h (__libdw_dieabbrev): Set die->abbrev to DWARF_END_ABBREV
	on failure.

2018-06-10  Mark Wielaard  <mark@klomp.org>

	* dwarf_attr_integrate.c (dwarf_attr_integrate): Stop after 16 DIE
	ref chains.
	* dwarf_hasattr_integrate.c (dwarf_hasattr_integrate): Likewise.

2018-06-08  Mark Wielaard  <mark@klomp.org>

	* dwarf_getabbrev.c (dwarf_getabbrev): Check die and offset.

2018-06-08  Mark Wielaard  <mark@klomp.org>

	* dwarf_get_units.c (dwarf_get_units): Handle existing error, no
	dwarf.

2018-06-08  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation.c (store_implicit_value): Return error when
	seeing bad DWARF or when tsearch runs out of memory.
	(__libdw_intern_expression): Report error when store_implicit_value
	reported an error.

2018-06-08  Mark Wielaard  <mark@klomp.org>

	* dwarf_getsrclines.c (read_srclines): Sanity check ndirs and nfiles.

2018-06-08  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation_attr.c (addr_valp): Set error and return NULL
	when there is no .debug_addr section.
	(dwarf_getlocation_attr): If addr_valp returns NULL, then return -1.

2018-06-07  Mark Wielaard  <mark@klomp.org>

	* libdw_findcu.c (__libdw_intern_next_unit): Report DWARF_E_VERSION,
	not DWARF_E_INVALID_DWARF on unknown version. Set address_size and
	offset_size to 8 when unknown.

2018-06-06  Mark Wielaard  <mark@klomp.org>

	* libdwP.h (__libdw_dieabbrev): Check DIE addr falls in cu.

2018-06-06  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation_die.c (dwarf_getlocation_die): Check offset
	falls inside cu data.

2018-06-05  Mark Wielaard  <mark@klomp.org>

	* dwarf_getsrclines.c (read_srclines): Explicitly set diridx to -1
	in case dwarf_formudata fails.

2018-06-05  Mark Wielaard  <mark@klomp.org>

	* dwarf_getaranges (dwarf_getaranges): Free new_arange if
	__libdw_findcu fails.

2018-06-05  Mark Wielaard  <mark@klomp.org>

	* dwarf_getsrclines.c (read_srclines): Define dirarray early and
	check whether or not it is equal to dirstack on exit/out before
	cleanup.

2018-06-05  Mark Wielaard  <mark@klomp.org>

	* dwarf_getalt.c (find_debug_altlink): id_path array should be 2
	larger to contain MAX_BUILD_ID_BYTES.

2018-05-31  Mark Wielaard  <mark@klomp.org>

	* libdw_find_split_unit.c (try_split_file): New function extracted
	from...
	(__libdw_find_split_unit): ... here. Try both the relative and
	absolute paths to find a .dwo file.

2018-05-30  Mark Wielaard  <mark@klomp.org>

	* libdw/dwarf_getsrclines.c (read_srclines): Change ndir and
	ndirlist to size_t. Add check to see ndirlist doesn't overflow.

2018-05-31  Mark Wielaard  <mark@klomp.org>

	* dwarf_dieoffset.c: Check die->cu != NULL. Return -1, not ~0ul
	on failure.

2018-05-29  Mark Wielaard  <mark@klomp.org>

	* dwarf_cuoffset.c (dwarf_cuoffset): Check die->cu is not NULL.
	* dwarf_die_addr_die.c (dwarf_die_addr_die): Also search split
	Dwarfs.
	* libdwP.h (struct Dwarf): Add split_tree field.
	(__libdw_find_split_dbg_addr): New internal function definition.
	(__libdw_finddbg_cb): Likewise.
	* libdw_find_split_unit.c (__libdw_find_split_unit): Insert split
	Dwarf into skeleton dbg split_tree.
	* libdw_findcu.c (__libdw_finddbg_cb): New function.
	(__libdw_find_split_dbg_addr): Likewise.
	* dwarf_end (dwarf_end): Destroy split_tree.

2018-05-29  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add GNU DebugFission list entry encodings
	DW_LLE_GNU_end_of_list_entry,
	DW_LLE_GNU_base_address_selection_entry,
	DW_LLE_GNU_start_end_entry and DW_LLE_GNU_start_length_entry.
	* dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Handle
	GNU DebugFission list entries.

2018-05-28  Mark Wielaard  <mark@klomp.org>

	* libdw_find_split_unit.c (__libdw_find_split_unit): End split_dwarf
	only after we tried every unit id in it.

2018-04-07  Mark Wielaard  <mark@klomp.org>

	* libdwP.h (struct Dwarf_CU): Add locs_base.
	(__libdw_cu_locs_base): New static inline function.
	* libdw_findcu.c (__libdw_intern_next_unit): Initialize locs_base.
	* dwarf_begin_elf.c (valid_p): Create fake_loclists_cu if necessary.
	* dwarf_end.c (dwarf_end): Clean up fake_loclists_cu.
	* dwarf_getlocation.c (initial_offset): Handle .debug_loclists.
	(getlocations_addr): Likewise.
	(dwarf_getlocation_addr): Likewise.
	* dwarf_getlocation_attr.c (attr_form_cu): Use fake_loclists_cu for
	DWARF5.
	(initial_offset): Handle DW_FORM_loclistx.
	* dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Handle
	.debug_loclists.
	* libdwP.h (struct Dwarf): Add fake_loclists_cu.

2018-04-12  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DWARF5 location list entry DW_LLE encodings.
	* begin_elf.c (dwarf_scnnames): Add IDX_debug_loclists.
	* dwarf_error.c (errmsgs): Remove DWARF_E_NO_LOCLIST. And replace
	with DWARF_E_NO_DEBUG_LOC, DWARF_E_NO_DEBUG_LOCLISTS and
	DWARF_E_NO_LOC_VALUE.
	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_loclists_base
	and DW_FORM_loclistx.
	* dwarf_getlocation.c (attr_ok): Use DWARF_E_NO_LOC_VALUE.
	(initial_offset): Use DWARF_E_NO_DEBUG_LOC.
	* libdwP.h: Add IDX_debug_rnglists. Remove DWARF_E_NO_LOCLIST.
	Add DWARF_E_NO_DEBUG_LOC, DWARF_E_NO_DEBUG_LOCLISTS and
	DWARF_E_NO_LOC_VALUE.

2018-05-25  Mark Wielaard  <mark@klomp.org>

	* libdw_find_split_unit.c (__libdw_find_split_unit): Extract linking
	skeleton and split compile units code into...
	* libdwP (__libdw_link_skel_split): ...this new function.

2018-04-06  Mark Wielaard  <mark@klomp.org>

	* dwarf_formaddr.c (__libdw_addrx): New function, extracted from...
	(dwarf_formaddr): here. Use __libdw_addrx.
	* dwarf_getlocation.c (getlocations_addr): Pass cu to
	__libdw_read_begin_end_pair_inc.
	* dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Take cu as
	argument. Handle .debug_rnglists.
	(initial_offset): Handle .debug_rnglists and DW_FORM_rnglistx.
	(dwarf_ranges): Likewise. Check cu isn't NULL before use. Pass cu to
	__libdw_read_begin_end_pair_inc.
	* libdwP.h (__libdw_read_begin_end_pair_inc): Take cu as argument.
	(__libdw_cu_ranges_base): Handle DW_AT_rnglists_base.
	(__libdw_addrx): New function definition.

2018-04-11  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DWARF5 range list entry DW_RLE encodings.
	* begin_elf.c (dwarf_scnnames): Add IDX_debug_rnglists.
	* dwarf_error.c (errmsgs): Add DWARF_E_NO_DEBUG_RNGLISTS.
	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_rnglists_base
	and DW_FORM_rnglistx.
	* dwarf_getscopes.c (pc_match): Also check for
	DWARF_E_NO_DEBUG_RNGLISTS.
	* libdwP.h: Add IDX_debug_rnglists.

2018-05-25  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation_attr.c (__libdw_cu_addr_base): Cast offset to
	uintptr_t before returning as pointer.

2018-05-22  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation.c (__libdw_cu_base_address): Treat errors of
	getting lowpc or entrypc the same as missing base address (zero).
	* dwarf_highpc (dwarf_highpc): Handle any address form. Always set
	error when attribute could not be found.

2018-05-21  Mark Wielaard  <mark@klomp.org>

	* dwarf_begin_elf.c (valid_p): Add a fake_addr_cu to the result.
	* dwarf_end.c (cu_free): Disconnect the fake_addr_cu from the split
	dwarf if shared with skeleton.
	(dwarf_end): release fake_addr_cu.
	* dwarf_formaddr.c (__libdw_cu_addr_base): Move to...
	* libdwP.h (__libdw_cu_addr_base): ... here.
	(struct Dwarf): Add fake_addr_cu field.
	* dwarf_formudata.c (dwarf_formudata): Handle
	DW_FORM_GNU_addr_index and DW_FORM_addrx[1234].
	* dwarf_getlocation_attr.c (addr_valp): New static function.
	(dwarf_getlocation_attr): Create attribute for values of
	DW_OP_GNU_const_index, DW_OP_constx and DW_OP_GNU_addr_index and
	DW_OP_addrx.
	* libdw_find_split_unit.c (__libdw_find_split_unit): Connect
	IDX_debug_addr sectiondata and fake_addr_cu between split and
	skeleton.

2018-05-20  Mark Wielaard  <mark@klomp.org>

	* dwarf_cu_info.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_cu_info.c.
	* libdw.h (dwarf_cu_info): New function declaration.
	* libdw.map (ELFUTILS_0.171): Add dwarf_cu_info.

2018-05-24  Mark Wielaard  <mark@klomp.org>

	* dwarf_ranges.c (dwarf_ranges): Check for NULL cu.
	* libdw_findcu.c (__libdw_intern_next_unit): Initialize ranges_base.

2018-05-18  Mark Wielaard  <mark@klomp.org>

	* dwarf_formudata.c (__libdw_formptr): Handle the special case
	of IDX_debug_ranges for DW_UT_split_compile with version < 5.
	* dwarf_highpc.c (dwarf_highpc): Use dwarf_lowpc, check for
	split compile cudie.
	* dwarf_lowpc.c (dwarf_lowpc): Check for split compile cudie.
	* dwarf_ranges.c (dwarf_ranges): Switch cu and sectiondata for
	split compile units.
	* libdwP.h (struct Dwarf_CU): Add ranges_base field.
	(__libdw_cu_ranges_base): New static inline function.

2018-05-18  Mark Wielaard  <mark@klomp.org>

	* libdw_findcu.c (__libdw_intern_next_unit): Init files to NULL.
	* dwarf_getsrclines.c (dwarf_getsrclines): Handle split units by
	taking the line table from the skeleton.
	* dwarf_getsrcfiles.c (dwarf_getsrcfiles): Handle split units by
	only taking the files from .debug_line offset zero (if it exists),
	otherwise fall back to the skeleton.

2018-05-17  Mark Wielaard  <mark@klomp.org>

	* dwarf_begin_elf.c (__libdw_debugdir): New function.
	(valid_p): Call __libdw_debugdir.
	* dwarf_end.c (dwarf_end.c): Free debugdir.
	* dwarf_getalt.c (__libdw_filepath): Extract __libdw_debugdir logic.
	take debugdir as argument instead of fd.
	(find_debug_altlink): Call __libdw_filepath with debugdir.
	* libdwP.h (struct Dwarf): Add debugdir field.
	(__libdw_debugdir): New function prototype.
	(__libdw_filepath): Adjust prototype to take a const char * instead of
	an int.
	* libdw_find_split_unit.c (__libdw_find_split_unit): Call
	__libdw_filepath with debugdir.

2018-05-17  Mark Wielaard  <mark@klomp.org>

	* dwarf_attr_integrate.c (dwarf_attr_integrate): Handle split_compile
	unit DIE, search skeleton_compile unit DIE.
	* dwarf_hasattr_integrate.c (dwarf_hasattr_integrate): Likewise.
	* libdwP.h (is_cudie): Check cu is not NULL.

2018-05-19  Mark Wielaard  <mark@klomp.org>

	* libdwP.h (__libdw_find_split_unit): Mark as internal_function.

2018-05-15  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (libdw_a_SOURCES): Add libdw_find_split_unit.c.
	* dwarf_end.c (cu_free): Free split Dwarf.
	* dwarf_get_units.c (dwarf_get_units): Handle DW_UT_skeleton by
	calling __libdw_find_split_unit.
	* libdwP.h (struct Dwarf_CU): Add split Dwarf_CU field.
	(__libdw_find_split_unit): New function prototype.
	(str_offsets_base_off): Use cu Dwarf if dbg is NULL.
	(filepath): Rename to ...
	(__libdw_filepath): This. Which is the actual function name in
	dwarf_getalt.c.
	(libdw_find_split_unit.c): New file.
	* libdw_findcu.c (__libdw_intern_next_unit): Initialize split to -1.

2018-05-15  Mark Wielaard  <mark@klomp.org>

	* libdwP.h (__libdw_first_die_from_cu_start): Adjust commented out
	asserts.
	* libdw_findcu.c (__libdw_intern_next_unit): For version 4 DWARF if
	the cudie has a DW_AT_GNU_dwi_id set the unit_id8 and unit_type to
	DW_UT_skeleton or DW_UT_split_compile based on whether the cudie has
	child DIEs and a DW_AT_GNU_dwo_name attribute.

2018-05-14  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add GNU Debug Fission extensions. DW_AT_GNU_dwo_name,
	DW_AT_GNU_dwo_id, DW_AT_GNU_ranges_base, DW_AT_GNU_addr_base,
	DW_AT_GNU_pubnames, DW_AT_GNU_pubtypes. DW_FORM_GNU_addr_index,
	DW_FORM_GNU_str_index. DW_OP_GNU_addr_index, DW_OP_GNU_const_index.
	* dwarf_formaddr.c (dwarf_formaddr): Handle DW_FORM_GNU_addr_index
	as DW_FORM_addrx.
	(__libdw_cu_addr_base): Check for both DW_AT_GNU_addr_base and
	DW_AT_addr_base.
	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_GNU_str_index
	as DW_FORM_strx.
	* dwarf_formudata.c (dwarf_formudata): Recognize DW_AT_GNU_addr_base
	as addrptr. Recognize DW_AT_GNU_ranges_base as rangelistptr.
	* dwarf_getlocation.c (__libdw_intern_expression): Handle
	DW_OP_GNU_addr_index as DW_OP_addrx and DW_OP_GNU_const_index as
	DW_OP_constx.
	* libdw_form.c (__libdw_form_val_compute_len): Handle
	DW_FORM_GNU_addr_index and DW_FORM_GNU_str_index taking an uleb128.

2018-05-12  Mark Wielaard  <mark@klomp.org>

	* dwarf_begin_elf.c (check_section): Also recognize .dwo section
	name variants.

2018-05-11  Mark Wielaard  <mark@klomp.org>

	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_macros as macptr.
	* dwarf_getmacros.c (get_table_for_offset): Add DW_MACRO_define_sup,
	DW_MACRO_undef_sup, DW_MACRO_import_sup, DW_MACRO_define_strx and
	DW_MACRO_undef_strx. Add str_offsets_base_off to fake CU. Deal with
	DW_AT_macros. Use libdw_valid_user_form.

2018-05-09  Mark Wielaard  <mark@klomp.org>

	* dwarf_formstring.c (__libdw_cu_str_off_base): Moved to...
	* libdwP.h (__libdw_cu_str_off_base): ...here. Make static inline.
	(str_offsets_base_off): New internal function that also parses
	.debug_str_offsets header if necessary.

2018-05-11  Mark Wielaard  <mark@klomp.org>

	* dwarf_siblingof.c (dwarf_siblingof): Don't reference cu till it is
	known the Dwarf_Die is came from is valid.
	* libdwP.h (__libdw_dieabbrev): Check cu is not NULL.

2018-05-08  Mark Wielaard  <mark@klomp.org>

	* dwarf_formref.c (__libdw_formref): Explicitly don't handle
	DW_FORM_ref_sup4 and DW_FORM_ref_sup8.
	* dwarf_formref_die.c (dwarf_formref_die): Handle DW_FORM_ref_sup4
	and DW_FORM_ref_sup8.
	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_strp_sup
	as DW_FORM_GNU_strp_alt.

2018-05-05  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DWARF line content descriptions.
	* libdwP.h (libdw_valid_user_form): New static function.
	* dwarf_getsrclines.c (read_srclines): Check and parse version 5
	DWARF header, dir and file tables separately from older versions
	where different.

2018-04-24  Mark Wielaard  <mark@klomp.org>

	* dwarf_begin_elf.c (dwarf_scnnames): Add ".debug_line_str".
	* dwarf_error.c (errmsgs): Add DWARF_E_NO_DEBUG_STR and
	DWARF_E_NO_DEBUG_LINE_STR.
	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_line_strp.
	Get data from either .debug_str or .debug_line_str.
	* libdwP.h: Add IDX_debug_line_str, DWARF_E_NO_DEBUG_STR and
	DWARF_E_NO_DEBUG_LINE_STR.

2018-04-03  Mark Wielaard  <mark@klomp.org>

	* dwarf_formudata.c (__libdw_formptr): Take and return const
	unsigned char pointers.
	* dwarf_getlocation.c (attr_base_address): Rename to...
	(__libdw_cu_base_address): this. Take Dwarf_CU, check and set
	base_address.
	(initial_offset_base): Renamed to...
	(initial_offset): this. Only provide offset.
	(getlocations_addr): Move data size check and
	address base addition into __libdw_read_begin_end_pair_inc. Use
	__libdw_cu_base_address and initial_offset. Drop Elf_Data NULL
	check (already done by initial_offset, through __libdw_formptr).
	(dwarf_getlocations): Use __libdw_cu_base_address and initial_offset.
	Drop Elf_Data NULL check.
	* dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Change argument
	type of readp to Add readend argument. Check data size. Include base
	in begin and end result.
	(initial_offset): New static function.
	(dwarf_ranges): Don't check Elf_Data being NULL (already done by
	initial_offset, through __libdw_formptr). Use __libdw_cu_base_address
	and initial_offset. Remove base check and addition (already done by
	__libdw_read_begin_end_pair_inc.
	* libdwP.h (Dwarf_CU): Add base_address field.
	(__libdw_read_begin_end_pair_inc): Change argument type of readp to
	const. Add readend argument.
	(__libdw_formptr): Take and return const unsigned char pointers.
	* libdw_findcu.c (__libdw_intern_next_unit): Initialize Dwarf_CU
	base_address.

2018-04-04  Mark Wielaard  <mark@klomp.org>

	* libdw_findcu.c (__libdw_intern_next_unit): Initialize Dwarf_CU
	addr_base and str_off_base.

2018-03-23  Mark Wielaard  <mark@klomp.org>

	* dwarf_begin_elf.c (dwarf_scnnames): Add IDX_debug_str_offsets,
	increase size.
	* dwarf_error.c (errmsgs): Add DWARF_E_NO_STR_OFFSETS.
	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_strx[1234].
	(__libdw_cu_str_off_base): New function.
	* dwarf_formudata.c (dwarf_formudata): Handle IDX_debug_str_offsets
	as stroffsetsptr.
	* libdwP.h: Add IDX_debug_str_offsets and DWARF_E_NO_STR_OFFSETS.
	(struct Dwarf_CU): Add str_off_base field.
	(__libdw_cu_str_off_base): New function declaration.

2018-03-22  Mark Wielaard  <mark@klomp.org>

	* dwarf_begin_elf.c (dwarf_scnnames): Add IDX_debug_addr.
	* dwarf_error.c (errmsgs): Add DWARF_E_NO_DEBUG_ADDR.
	* dwarf_formaddr.c (dwarf_formaddr): Handle DW_FORM_addrx[1234].
	(__libdw_cu_addr_base): New function.
	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_addr_base as
	addrptr.
	* libdwP.h: Add IDX_debug_addr and DWARF_E_NO_DEBUG_ADDR.
	(struct Dwarf_CU): Add addr_base field.
	(__libdw_cu_addr_base): New function definition.
	* memory-access.h (file_byte_order): New static function.
	(read_3ubyte_unaligned): New inline function.

2018-03-29  Mark Wielaard  <mark@klomp.org>

	* libdw.h (dwarf_decl_file): Extend documentation.
	(dwarf_linesrc): Likewise.
	(dwarf_filesrc): Likewise.

2018-03-06  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_OP_implicit_pointer, DW_OP_addrx, DW_OP_constx,
	DW_OP_entry_value, DW_OP_const_type, DW_OP_regval_type,
	DW_OP_deref_type, DW_OP_xderef_type, DW_OP_convert and
	DW_OP_reinterpret.
	* dwarf_getlocation.c (__libdw_intern_expression): Handle
	DW_OP_convert, DW_OP_reinterpret, DW_OP_addrx, DW_OP_constx,
	DW_OP_regval_type, DW_OP_entry_value, DW_OP_implicit_pointer,
	DW_OP_deref_type, DW_OP_xderef_type and DW_OP_const_type.
	* dwarf_getlocation_attr.c (dwarf_getlocation_attr): Handle
	DW_OP_entry_value, DW_OP_const_type and DW_OP_implicit_pointer.
	* dwarf_getlocation_die.c (dwarf_getlocation_die): Handle
	DW_OP_implicit_pointer, DW_OP_convert, DW_OP_reinterpret,
	DW_OP_const_type, DW_OP_regval_type, DW_OP_deref_type and
	DW_OP_xderef_type.
	* dwarf_getlocation_implicit_pointer.c
	(dwarf_getlocation_implicit_pointer): Handle DW_OP_implicit_pointer.

2018-03-01  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_AT_GNU_locviews and DW_AT_GNU_entry_view.
	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_GNU_locviews
	as a loclistptr.

2018-02-09  Mark Wielaard  <mark@klomp.org>

	* dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_data16 as a
	16 byte block.

2018-02-09  Mark Wielaard  <mark@klomp.org>

	* dwarf_child.c (__libdw_find_attr): Handle DW_FORM_implicit_const.
	* dwarf_formsdata.c (dwarf_formsdata): Likewise.
	* dwarf_formudata.c (dwarf_formudata): Likewise.
	* dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
	* dwarf_hasattr.c (dwarf_hasattr): Likewise.
	* dwarf_getabbrevattr.c (dwarf_getabbrevattr_data): New function
	that will also return any data associated with the abbrev. Which
	currently is only for DW_FORM_implicit_const. Based on...
	(dwarf_getabbrevattr): ... this function. Which now just calls
	dwarf_getabbrevattr_data.
	* libdw.h (dwarf_getabbrevattr_data): Declare new function.
	* libdw.map (ELFUTILS_0.170): Add dwarf_getabbrevattr_data.
	* libdwP.h (dwarf_getabbrevattr_data): INTDECL.
	* memory-access.h (__libdw_get_sleb128_unchecked): New inlined
	function based on __libdw_get_uleb128_unchecked.

2018-02-08  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DWARF5 DW_FORMs.
	* libdwP.h (__libdw_form_val_compute_len): Handle fix length
	DW_FORM_implicit_const, DW_FORM_addrx[1234], DW_FORM_strx[1234],
	DW_FORM_ref_sup[48] and DW_FORM_data16.
	* libdw_form.c (__libdw_form_val_compute_len): DW_FORM_strp_sup
	and DW_FORM_line_strp are offset_size. DW_FORM_addrx, DW_FORM_strx,
	DW_FORM_loclistx and DW_FORM_rnglistx are uleb128.

2018-01-30  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (libdw_a_SOURCES): Add dwarf_get_units.c.
	* dwarf_get_units.c: New file.
	* libdw.h (dwarf_get_units): New function declaration.
	* libdw.map (ELFUTILS_0.170): Add dwarf_get_units.

2018-01-29  Mark Wielaard  <mark@klomp.org>

	* dwarf.h (DW_UT_*): Add DWARF Unit Header Types.
	* dwarf_cu_die.c (dwarf_cu_die): Rename arguments. type_signaturep
	is now called unit_idp. type_offsetp is now called subdie_offsetp.
	* dwarf_formref_die.c (dwarf_formref_die): Scan both .debug_info
	and .debug_types sections for type units when type signature ref
	not found.
	* dwarf_getaranges.c (dwarf_getaranges): Use __libdw_findcu and
	__libdw_first_die_off_from_cu instead of trying by hand.
	* dwarf_getlocation_die.c (dwarf_getlocation_die): Use ISV4TU
	instead of checking type_offset by hand.
	* dwarf_getlocation_implicit_pointer.c
	(dwarf_getlocation_implicit_pointer): Likewise.
	* dwarf_nextcu.c (dwarf_next_unit): Call __libdw_next_unit.
	(__libdw_next_unit): New function based on dwarf_next_unit with
	DWARF5 header support.
	* libdwP.h (struct Dwarf_CU): Renamed type_offset to subdie_offset
	and type_sig8 to unit_id8.
	(ISV4TU): New macro to determine whether a CU is a version 4 type
	unit (which comes from the .debug_types section).
	(DIE_OFFSET_FROM_CU_OFFSET): Replaced macro by real function...
	(__libdw_first_die_from_cu_start): ... that also handles DWARF5
	unit headers.
	(__libdw_first_die_off_from_cu): New function that calls the above
	using the CU fields.
	(CUDIE): Use __libdw_first_die_off_from_cu.
	(SUBDIE): New macro that provides the DIE for a CU using the
	subdie_offset.
	(__libdw_next_unit): New internal function declaration.
	* libdw_findcu.c (__libdw_intern_next_unit): Use __libdw_next_unit.
	Accept DWARF version 5 headers. Setup unit_type.
	(__libdw_findcu): Rename debug_types argument to v4_debug_types
	argument (to indicate that we are looking in the .debug_types
	section). Support finding the exact offset (unit header start).

2018-01-25  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (libdw_a_SOURCES): Add dwarf_die_addr_die.c.
	* dwarf_die_addr_die.c: New file.
	* libdw.h (dwarf_die_addr_die): New function declaration.
	* libdw.map (ELFUTILS_0.171): New section with dwarf_die_addr_die.
	* libdwP.h (__libdw_findcu_addr): New internal function declaration.
	* libdw_findcu.c (__libdw_findcu_addr): New internal function.

2018-02-09  Joshua Watt  <JPEWhacker@gmail.com>

	* cfi.c (execute_cfi): Use FALLTHROUGH macro instead of comment.
	* dwarf_frame_register.c (dwarf_frame_register): Likewise.

2018-01-22  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (AM_CPPFLAGS): Add -I libdwelf.
	* dwarf_begin_elf.c (dwarf_begin_elf): Initialize Dwarf alt_fd to -1.
	* dwarf_end.c (dwarf_end): Call dwarf_end and close on the alt_dwarf
	and alt_fd if we allocated them.
	* dwarf_fromref_die.c (dwarf_formref_die): Call dwarf_getalt.
	* dwarf_formstring.c (dwarf_formstring): Likewise.
	* dwarf_getalt.c (__libdw_filepath): New internal function.
	(find_debug_altlink): New static function.
	(dwarf_getalt): Check Dwarf alt_dwarf and call find_debug_altlink.
	Cache result.
	* dwarf_setalt.c (dwarf_setalt): Clean up Dwarf alt_dwarf and alt_fd
	if we allocated.
	* libdw.h (dwarf_getalt): Extend documentation.
	(dwarf_setalt): Likewise.
	* libdwP.h (struct Dwarf): Add alt_fd field.
	(filepath): Declare new internal function.

2018-01-14  Petr Machata  <pmachata@gmail.com>

	* dwarf_formsdata.c (dwarf_formsdata):
	<DW_FORM_data1>: Cast to signed char.
	<DW_FORM_data2,4,8>: Use read_*sbyte_unaligned instead of
	read_*ubyte_unaligned.

2017-12-26  Mark Wielaard  <mark@klomp.org>

	* libdwP.h (struct Dwarf_Abbrev): Pack struct. Remove attrcnt,
	use bitfields for has_children and code.
	* dwarf_getabbrev.c (__libdw_getabbrev): Don't count attrs.
	* dwarf_getattrcnt.c (dwarf_getattrcnt): Count attrs.

2017-12-26  Mark Wielaard  <mark@klomp.org>

	* memory-access.h (__libdw_get_uleb128_unchecked): New function.
	(get_uleb128_unchecked): New define.
	* dwarf_child.c (__libdw_find_attr): Use get_uleb128_unchecked to
	read attr name and form.
	* dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
	* dwarf_hasattr.c (dwarf_hasattr): Likewise.

2017-12-28  Mark Wielaard  <mark@klomp.org>

	* dwarf_offdie.c (__libdw_offdie): Check sectiondata exists.

2017-05-09  Ulf Hermann  <ulf.hermann@qt.io>
	    Mark Wielaard  <mark@klomp.org>

	* libdwP.h (__libdw_in_section): Fix check for the upper border of
	the range.
	(__libdw_offset_in_section): Likewise.

2017-12-20  Mark Wielaard  <mark@klomp.org>

	* libdwP.h (struct Dwarf_CU): Add sec_idx field.
	(cu_sec_idx): Return cu->sec_idx.
	* libdw_findcu.c (__libdw_intern_next_unit): Set cu sec_idx to
	IDX_debug_info or IDX_debug_types.
	* dwarf_begin_elf.c (valid_p): Set fake_loc_cu->sec_idx to
	IDX_debug_loc.
	* dwarf_getmacros.c (read_macros): Set fake_cu->sec_idx to
	IDX_debug_macro or IDX_debug_macinfo.

2017-12-12  Mark Wielaard  <mark@klomp.org>

	* dwarf_aggregate_size.c (dwarf_aggregate_size): Don't peel the
	given DIE. Reserve memory for a new DIE first.

2017-12-11  Dima Kogan  <dima@secretsauce.net>

	* dwarf_aggregate_size.c (array_size): Handle multi-dimensional
	arrays properly.

2017-11-03  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation.c (__libdw_intern_expression): Handle
	DW_OP_GNU_variable_value.
	* dwarf_getlocation_attr.c (dwarf_getlocation_attr): Likewise.
	* dwarf_getlocation_die.c (dwarf_getlocation_die): Likewise.

2017-11-03  Mark Wielaard  <mark@klomp.org>

	* dwarf_getlocation.c (attr_ok): Always accept DW_FORM_exprloc.
	Update list of acceptable attribute codes based on DWARF5.

2017-11-03  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_OP_GNU_variable_value.

2017-10-03  Mark Wielaard  <mark@klomp.org>

	* libdw.h: Define LIBDW_CIE_ID and use it in dwarf_cfi_cie_p.

2017-08-18  Ulf Hermann  <ulf.hermann@qt.io>

	* memory-access.h: Use attribute_packed.

2017-02-27  Ulf Hermann  <ulf.hermann@qt.io>

	* libdwP.h: Use attribute_hidden.
	* libdw_alloc.c: Likewise.

2017-02-27  Ulf Hermann  <ulf.hermann@qt.io>

	* Makefile.am: Use fpic_CFLAGS and dso_LDFLAGS.

2017-07-26  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_MACRO_* and compat defines for DW_MACRO_GNU_*.
	* dwarf_getmacros.c (get_table_for_offset): Accept either version
	4 or 5. Use DW_MACRO names instead of DW_MACRO_GNU names.
	(read_macros): Use table version for fake_cu.

2017-07-26  Mark Wielaard  <mark@klomp.org>

	* dwarf_peel_type.c (dwarf_peel_type): Handle DW_TAG_immutable_type,
	DW_TAG_packed_type and DW_TAG_shared_type.
	* libdw.h (dwarf_peel_type): Extend documentation.

2017-07-26  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_DEFAULTED_no, DW_DEFAULTED_in_class and
	DW_DEFAULTED_out_of_class.

2017-07-26  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_CC_pass_by_reference and DW_CC_pass_by_reference.

2017-07-26  Mark Wielaard  <mark@klomp.org>

	* dwarf_default_lower_bound.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_default_lower_bound.c.
	* dwarf_aggregate_size.c (array_size): Use dwarf_default_lower_bound.
	* dwarf_error.c (errmsgs): Add DWARF_E_UNKNOWN_LANGUAGE.
	* libdw.h: Add dwarf_default_lower_bound.
	* libdw.map (ELFUTILS_0.170): Add dwarf_default_lower_bound.
	* libdwP.h: Add DWARF_E_UNKNOWN_LANGUAGE and
	dwarf_default_lower_bound INTDECL.

2017-07-26  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_LANG_OpenCL, DW_LANG_Modula3,
	DW_LANG_C_plus_plus_03, DW_LANG_OCaml, DW_LANG_Rust, DW_LANG_Swift,
	DW_LANG_Julia, DW_LANG_Dylan, DW_LANG_RenderScript, DW_LANG_BLISS.
	* dwarf_aggregate_size.c (array_size): Add lower bound for
	DW_LANG_C_plus_plus_03, DW_LANG_Python, DW_LANG_OpenCL,
	DW_LANG_Haskell, DW_LANG_OCaml, DW_LANG_Rust, DW_LANG_Swift,
	DW_LANG_Dylan, DW_LANG_RenderScript, DW_LANG_Modula3,
	DW_LANG_Julia and DW_LANG_BLISS.

2017-07-26  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_ATE_UCS and DW_ATE_ASCII.

2017-07-25  Mark Wielaard  <mark@klomp.org>

	* dwarf.h: Add DW_TAG_coarray_type, DW_TAG_generic_subrange,
	DW_TAG_dynamic_type, DW_TAG_call_site, DW_TAG_call_site_parameter,
	DW_TAG_skeleton_unit, DW_TAG_immutable_type. Add reserved comments
	for currently unused numbers.

2017-07-25  Mark Wielaard  <mark@klomp.org>

	* dwarf.h (DWARF attributes enum): Remove DW_AT_subscr_data,
	DW_AT_element_list and DW_AT_member. Add DWARF5 attribute constants.
	(DW_AT_subscr_data, DW_AT_element_list, DW_AT_member): New defines.

2017-07-21  Mark Wielaard  <mark@klomp.org>

	* dwarf_line_file.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_line_file.c.
	* libdw.h (dwarf_line_file): New function declaration.
	* libdw.map (ELFUTILS_0.170): New. Add dwarf_line_file.

2017-02-17  Ulf Hermann  <ulf.hermann@qt.io>

	* Makefile.am: Add libdw_so_LIBS to specify the archives libdw is is
	made of, libdw_so_DEPS for libraries it depends on (including
	libeu.a), libdw_so_LDLIBS to specify libraries libdw links against.
	(libdw.so$(EXEEXT)): Add $(libdw_so_LDLIBS), remove enumeration of
	library dependencies, use libdw_so_LIBS rather than relying on the
	order of dependencies specified, add -z,relro.

2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>

	* libdw.h: Remove attribute macro declarations and use
	__noreturn_attribute__ as defined in libelf.h.

2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>

	* dwarf_begin_elf.c: Include endian.h.

2017-03-30  Mark Wielaard  <mjw@redhat.com>

	* dwarf_peel_type.c (dwarf_peel_type): Call dwarf_attr_integrate on
	result.

2016-10-22  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Correct spelling of DW_LANG_PLI. Add compatibility define.
	* dwarf_aggregate_size.c (array_size): Use correct spelling of
	DW_LANG_PLI.

2016-11-02  Mark Wielaard  <mjw@redhat.com>

	* cfi.c (execute_cfi): Add fallthrough comments.
	* encoded-value.h (encoded_value_size): Add explicit return instead
	of relying on fallthrough.
	* dwfl_report_elf.c (__libdwfl_elf_address_range): Add fallthrough
	comment.

2016-10-11  Akihiko Odaki  <akihiko.odaki.4i@stu.hosei.ac.jp>

	* dwarf_getpubnames.c: Remove sys/param.h include, add system.h.
	* libdw_alloc.c: Likewise.

2016-07-08  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.167): New. Add dwelf_strtab_init,
	dwelf_strtab_add, dwelf_strtab_add_len, dwelf_strtab_finalize,
	dwelf_strent_off, dwelf_strent_str and dwelf_strtab_free.

2016-02-13  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (read_srclines): Calculate ndirs first, then
	assign to ndirlist.

2015-12-18  Mark Wielaard  <mjw@redhat.com>

	* libdwP.h (struct Dwarf): Remove sectiondata_gzip_mask.
	(__libdw_free_zdata): Remove.
	* dwarf_begin_elf.c (inflate_section): Remove.
	(check_section): Remove __libdw_free_zdata calls. Use elf_compress
	and elf_compress_gnu to decompress if necessary.
	(valid_p): Remove __libdw_free_zdata calls.
	(scngrp_read): Use elf_compress if section is compressed. Remove
	__libdw_free_zdata calls.
	* dwarf_end.c (__libdw_free_zdata): Remove.
	(dwarf_end): Don't call __libdw_free_zdata.

2015-10-28  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.165): New. Add dwelf_scn_gnu_compressed_size.

2015-12-02  Mark Wielaard  <mjw@redhat.com>

	* fde.c (intern_fde): Don't leak duplicate FDEs.

2015-12-01  Mark Wielaard  <mjw@redhat.com>

	* fde.c (intern_fde): Don't intern an fde that doesn't cover a
	valid code range.

2015-12-01  Mark Wielaard  <mjw@redhat.com>

	* dwarf_end.c (dwarf_end): Call cu_free on fake_loc_cu if it exists.

2015-10-14  Chih-Hung Hsieh  <chh@google.com>

	* dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Move recursive
	functions 'add_bkpt', 'entrypc_bkpt', and 'search_range' to file scope.

2015-10-14  Chih-Hung Hsieh  <chh@google.com>

	* libdw_visit_scopes.c (__libdw_visit_scopes): Move recursive nested
	function 'walk_children' to file scope; inline 'recurse' at its call
	site.

2015-10-19  Mark Wielaard  <mjw@redhat.com>

	* frame-cache.c (__libdw_destroy_frame_cache): Call ebl_closebackend
	if necessary.

2015-10-16  Dmitry V. Levin  <ldv@altlinux.org>

	* dwarf_getsrclines.c (read_srclines): Initialize state early.

2015-10-13  Chih-Hung Hsieh  <chh@google.com>

	* dwarf_getsrclines.c (read_srclines): Move nested functions
	'advance_pc' and 'add_new_line' to file scope and keep many
	local state variables within one structure.

2015-10-13  Chih-Hung Hsieh  <chh@google.com>

	* dwarf_getscopevar.c (dwarf_getscopevar): Move nested
	function 'file_matches' to file scope.

2015-10-16  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (libdw.so): Add -lz.

2015-10-14  Chih-Hung Hsieh  <chh@google.com>

	* cfi.c (execute_cfi): Move nested functions 'enough_registers'
	and 'require_cfa_offset' to file scope.

2015-10-09  Josh Stone  <jistone@redhat.com>

	* dwarf_begin.c (dwarf_begin): Replace stat64 and fstat64 with stat
	and fstat.

2015-10-05  Josh Stone  <jistone@redhat.com>

	* Makefile.am (libdw.so): Add AM_V_CCLD and AM_V_at silencers.

2015-09-24  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid
	relocation overflows in some platforms.

2015-09-23  Mark Wielaard  <mjw@redhat.com>

	* dwarf_error.c (__libdw_seterrno): Mark as internal_function.
	* dwarf_formref.c (__libdw_formref): Likewise.
	* libdw_findcu.c (__libdw_findcu): Likewise.
	* libdw_visit_scopes.c (__libdw_visit_scopes): Likewise.

2015-09-22  Mark Wielaard  <mjw@redhat.com>

	* *.c: Remove old-style function definitions.

2015-09-15  Mark Wielaard  <mjw@redhat.com>

	* dwarf_peel_type.c (dwarf_peel_type): Don't reassign result pointer.

2015-09-09  Chih-Hung Hsieh  <chh@google.com>

	* dwarf_macro_getsrcfiles.c (dwarf_macro_getsrcfiles): Remove
	redundant NULL tests on parameters declared with __nonnull_attribute__.
	* dwarf_siblingof.c (dwarf_siblingof): Likewise.
	* libdw_visit_scopes.c (__libdw_visit_scopes): Likewise.

2015-09-04  Chih-Hung Hsieh  <chh@google.com>
	    Mark Wielaard  <mjw@redhat.com>

	* dwarf_getlocation.c (getlocations_addr): Replace K&R function
	definition with ansi-C definition and add const qualifier to
	locs argument.

2015-09-04  Chih-Hung Hsieh  <chh@google.com>

	* libdw_findcu.c (__libdw_intern_next_unit): Replace K&R function
	definition with ansi-C definitions.
	(__libdw_findcu): Likewise.

2015-08-25  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Add DW_LANG_Haskell.

2015-06-18  Mark Wielaard  <mjw@redhat.com>

	* dwarf_begin_elf.c (dwarf_begin_elf): Assert page size is big enough
	to hold a Dwarf.

2015-06-18  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getpubnames.c (get_offsets): Always free mem on error.

2015-06-18  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getmacros.c (get_macinfo_table): Return NULL when
	dwarf_formudata reports an error.
	(get_table_for_offset): Likewise.

2015-06-08  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (read_srclines): Initialize dirarray early.

2015-06-06  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (read_srclines): Initialize filelist early.

2015-05-27  Mark Wielaard  <mjw@redhat.com>

	* encoded-value.h (read_encoded_value): Check data d_size contains
	at least enough data to hold a pointer for DW_EH_PE_indirect.

2015-05-22  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (read_srclines): Limit stack usage of lines
	with MAX_STACK_LINES, files with MAX_STACK_LINES and dirs with
	MAX_STACK_DIRS. Calculate number of dirs needed first, then
	create dirarray directly, without needing the next field. Free
	not stack allocated lines and files at the end.

2015-05-19  Mark Wielaard <mjw@redhat.com>

	* dwarf_getlocation.c (__libdw_intern_expression): Create a stack
	allocated array to hold locs. Allocate locs bigger than the array
	with malloc and free them when done.

2015-05-11  Jonathan Lebon  <jlebon@redhat.com>

	* libdwP.h (DWARF_E_COMPRESSED_ERROR): New enumerator.
	* dwarf_error.c (errmsgs): Add DWARF_E_COMPRESSED_ERROR message.
	* dwarf_begin_elf.c (inflate_section): New static function, lifted
	from...
	(check_section): ... here. Call inflate_section, set libdw errno to
	DWARF_E_COMPRESSED_ERROR if .debug_info section couldn't be inflated.

2015-05-11  Jonathan Lebon  <jlebon@redhat.com>

	* dwarf_begin_elf.c (check_section): Add compressed flag. Always
	check for .zdebug sections. Only wrap decompression in #if USE_ZLIB.

2015-05-06  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (read_srclines): Use an int64_t to store and
	check the line number.

2015-05-05  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getaranges.c (dwarf_getaranges): Check there is enough data
	left before reading values.

2015-05-04  Anthony G. Basile  <blueness@gentoo.org>

	* Makefile.am (libdw_so_SOURCES): Append $(argp_LDADD) to link
	command.

2015-04-22  Mark Wielaard  <mjw@redhat.com>

	* memory-access.h (__libdw_max_len_leb128): Take type_len as argument.
	(__libdw_max_len_uleb128): New function.
	(__libdw_max_len_sleb128): Likewise.
	(__libdw_get_uleb128): Use __libdw_max_len_uleb128.
	(__libdw_get_sleb128): Use __libdw_max_len_sleb128.

2015-04-21  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getmacros.c (read_macros): Allocate attributes dynamically
	when there are more than 8.

2015-04-01  Petr Machata  <pmachata@redhat.com>

	* libdwP.h (DWARF_E_NOT_CUDIE): New enumerator.
	(is_cudie): New function.
	* dwarf_error.c (errmsgs): Add message for DWARF_E_NOT_CUDIE.
	* dwarf_getsrcfiles.c (dwarf_getsrcfiles): Call is_cudie instead
	of white-listing valid tags.
	* dwarf_getsrclines.c (dwarf_getsrclines): Likewise.

2015-03-18  Petr Machata  <pmachata@redhat.com>

	* Makefile.am (pkginclude_HEADERS): Add known-dwarf.h.
	(EXTRA_DIST): Remove known-dwarf.h.

2015-02-09  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Add DW_LANG_Fortran03 and DW_LANG_Fortran08.
	* dwarf_aggregate_size.c (array_size): Recognize array lower bound
	for new Fortran language codes is 1.

2015-02-09  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Add DW_TAG_atomic_type.
	* libdw.h (dwarf_peel_type): Document DW_TAG_atomic_type.
	* dwarf_peel_type.c (dwarf_peel_type): Handle DW_TAG_atomic_type.

2015-02-11  Josh Stone  <jistone@redhat.com>

	* encoded-value.h (read_encoded_value): Initialize value.

2015-02-11  Petr Machata  <pmachata@redhat.com>

	* dwarf_ranges.c (dwarf_ranges): Do not bail out when neither
	DW_AT_entry_pc nor DW_AT_low_pc are available.  Instead remember
	the fact in *BASEP and bail out later if it hasn't been updated by
	__libdw_read_begin_end_pair_inc.

2014-12-24  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrc_die.c (dwarf_getsrc_die): Return the last line record
	smaller than or equal to addr, rather than returning immediately on
	a match.

2015-01-07  Mark Wielaard  <mjw@redhat.com>

	* cfi.h (struct Dwarf_CFI_s): Add search_table_len.
	* dwarf_getcfi_elf.c (getcfi_gnu_eh_frame): Check there is enough
	room in the search table for all entries. Store search_table_len.
	(getcfi_scn_eh_frame): Likewise.
	* encoded-value.h (encoded_value_size): Don't abort, return zero.
	(__libdw_cfi_read_address_inc): Check there is enough room to read
	values. Pass other byte order to read functions.
	(read_encoded_value): Check encoded_value_size. Don't abort, but
	set libdw errno and report failure. Check there is enough room to
	read values.
	* fde.c (binary_search_fde): Check encoded value size. Add hdr
	data buf and size to dummy_cfi.

2015-01-04  Mark Wielaard  <mjw@redhat.com>

	* dwarf_siblingof.c (dwarf_siblingof): Check sibling attribute
	is after current DIE.

2015-01-04  Mark Wielaard  <mjw@redhat.com>

	* cfi.c (enough_registers): Check reg < INT32_MAX / sizeof
	(dwarf_frame_register).

2015-01-02  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getcfi_elf.c (parse_eh_frame_hdr): Add size check.
	(getcfi_gnu_eh_frame): Remove size check. Check d_buf is not NULL.
	(getcfi_scn_eh_frame): Check d_buf is not NULL.

2015-01-02  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getlocation.c (__libdw_intern_expression): Check dbg is not
	NULL for DW_OP_call_ref and DW_OP_GNU_implicit_pointer. For
	DW_OP_addr if dbg is NULL then read argument directly.

2015-01-14  Jason P. Leasure <jpleasu@super.org>

	* dwarf_formref_die.c (dwarf_formref_die): Offset is cu->type_offset
	plus cu->start.

2014-12-27  Mark Wielaard  <mjw@redhat.com>

	* dwarf_siblingof.c (dwarf_siblingof): Check sibling attribute offset
	still falls inside CU data.

2015-01-11  Mark Wielaard  <mjw@redhat.com>

	* dwarf_func_inline.c (dwarf_func_inline_instances): Call
	__libdw_visit_scopes with NULL imports.
	* dwarf_getfuncs.c (dwarf_getfuncs): Likewise.
	* dwarf_getscopes.c (pc_record): Likewise.
	(dwarf_getscopes): Likewise.
	* dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
	* libdwP.h (__libdw_visit_scopes): Add imports argument.
	* libdw_visit_scopes.c (__libdw_visit_scopes): Likewise. Add new
	function imports_contains. Push and pop imports around walk_children
	when processing DW_TAG_imported_unit.

2014-12-18  Ulrich Drepper  <drepper@gmail.com>

	* Makefile.am: Suppress output of textrel_check command.

2014-12-16  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (read_srclines): Check diridx is valid under
	DW_LNE_define_file.

2014-12-16  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getpubnames.c (dwarf_getpubnames): Make sure there is enough
	space to read die offset.

2014-12-16  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (read_srclines): Correct overflow check for
	unit_length.

2014-12-15  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getpubnames.c (get_offsets): Make sure whole unit fall inside
	section data. Set error to DWARF_E_NO_ENTRY if cnt is zero.
	(dwarf_getpubnames): Make sure section data contains string zero
	terminator.

2014-12-16  Mark Wielaard  <mjw@redhat.com>

	* memory-access.h (__libdw_get_sleb128): Unroll the first step to help
	the compiler optimize for the common single-byte case.

2014-12-15  Josh Stone  <jistone@redhat.com>

	* memory-access.h (__libdw_max_len_leb128): New.
	(__libdw_get_uleb128): Use __libdw_max_len_leb128.
	(__libdw_get_sleb128): Likewise.

2014-12-14  Mark Wielaard  <mjw@redhat.com>

	* cfi.c (execute_cfi): Add program bounds checks.
	* dwarf_child.c (__libdw_find_attr): Add attrp bounds checks.
	* dwarf_formblock.c (dwarf_formblock): Call get_uleb128 with endp.
	* dwarf_formref.c (__libdw_formref): Add datap bounds checks.
	* dwarf_formsdata.c (dwarf_formsdata): Likewise.
	* dwarf_formudata.c (dwarf_formudata): Likewise.
	* dwarf_frame_register.c (dwarf_frame_register): Call get_uleb128
	with end of data buf.
	* dwarf_getabbrev.c (__libdw_getabbrev): Add abbrevp bounds checks.
	* dwarf_getabbrevattr.c (dwarf_getabbrevattr): Assume get_uleb128
	call gets enough data.
	* dwarf_getattrs,c (dwarf_getattrs): Call get_uleb128 with endp.
	* dwarf_getlocation.c (store_implicit_value): Call get_uleb128
	with enough data.
	(__libdw_intern_expression): Call get_uleb128/get_sleb128 with
	end_data.
	* dwarf_getmacros.c (get_table_for_offset): Add nforms bounds check.
	* dwarf_getsrclines.c (read_srclines): Bounds check linep and call
	get_uleb128 with lineendp.
	* dwarf_hasattr.c (dwarf_hasattr): Bounds check attrp and call
	get_uleb128 with endp.
	* dwarf_next_cfi.c (dwarf_next_cfi): Bounds check bytes and call
	get_uleb128/get_sleb128 with limit.
	* encoded-value.h (read_encoded_value): Assume get_uleb128 and
	get_sleb128 get called with enough data.
	* fde.c (intern_fde): Call get_uleb128 with instructions_end.
	* libdwP.h (__libdw_dieabbrev): Call get_uleb128 with die->cu->endp.
	* libdw_form.c (__libdw_form_val_compute_len): Call get_uleb128 with
	endp.
	* memory-access.h (__libdw_get_uleb128): Take an extra endp.
	Don't call get_uleb128_step if out of data.
	(__libdw_get_sleb128): Likewise for get_sleb128_step.

2014-12-12  Mark Wielaard  <mjw@redhat.com>

	* libdwP.h (struct Dwarf): Add fake_loc_cu.
	(cu_data): Removed.
	(DIE_OFFSET_FROM_CU_OFFSET): Don't use cu_data, use cu_sec_idx.
	(__libdw_form_val_compute_len): Drop dbg and endp arguments.
	(__libdw_form_val_len): Likewise.
	* libdw_form.c (__libdw_form_val_compute_len): Likewise.
	* libdw_findcu.c (__libdw_intern_next_unit): Don't use cu_data, use
	the already found data buffer directly.
	* dwarf_begin_elf.c (valid_p): Setup fake_loc_cu.
	* dwarf_end.c (dwarf_end): Free fake_loc_cu.
	* dwarf_child.c (__libdw_find_attr): Call __libdw_form_val_len with
	just cu.
	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
	* dwarf_formblock.c (dwarf_formblock): Add bounds checking.
	* dwarf_getlocation_attr.c (attr_form_cu): New function.
	(dwarf_getlocation_attr): Use attr_form_cu to set result->cu.
	(getlocation): Handle empty blocks immediately.
	* dwarf_getlocation_implicit_pointer.c (empty_cu): New static var.
	(__libdw_empty_loc_attr): Drop cu argument, use empty_cu.
	(dwarf_getlocation_implicit_pointer): Call __libdw_empty_loc_attr with
	one argument.
	* dwarf_getmacros.c (read_macros): Also setup startp and endp for
	fake_cu. Call __libdw_form_val_len with just fake_cu.
	* dwarf_formref_die.c (dwarf_formref_die): Don't use cu_data, get
	datap and size directly from cu startp and endp.

2014-12-11  Mark Wielaard  <mjw@redhat.com>

	* libdw_findcu.c (__libdw_intern_next_unit): Sanity check offset.

2014-12-13  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getaranges.c (compare_aranges): Make sure Dwarf_Addr
	difference doesn't wrap around before returning as int.

2014-12-11  Josh Stone  <jistone@redhat.com>

	* dwarf_getsrclines.c (struct linelist): Add sequence.
	(compare_lines): Take linelists, and break ties by sequence.
	(read_srclines): Use linelists for sorting.
	(read_srclines::add_new_line): Set sequence.

2014-12-10  Josh Stone  <jistone@redhat.com>

	* libdwP.h (Dwarf_CU): Add startp and endp boundaries.
	* libdw_findcu.c (__libdw_intern_next_unit): Set startp and endp.
	* dwarf_child.c (dwarf_child): Use cu->endp.
	* dwarf_cuoffset.c (dwarf_cuoffset): Use cu->startp.
	* dwarf_dieoffset.c (dwarf_dieoffset): Use cu->startp.
	* dwarf_siblingof.c (dwarf_siblingof): Use both.

2014-12-10  Josh Stone  <jistone@redhat.com>

	* dwarf_hasattr.c (dwarf_hasattr): Just walk abbrev for presence.

2014-12-10  Josh Stone  <jistone@redhat.com>

	* libdwP.h (__libdw_dieabbrev): New die->abbrev lookup function.
	* dwarf_child.c (__libdw_find_attr, dwarf_child): Use it.
	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
	* dwarf_haschildren.c (dwarf_haschildren): Likewise.
	* dwarf_tag.c (dwarf_tag): Likewise.

2014-12-04  Mark Wielaard  <mjw@redhat.com>

	* libdwP.h (__libdw_form_val_compute_len): Add endp argument.
	(__libdw_form_val_len): Likewise and check len doesn't overflow.
	* libdw_form.c (__libdw_form_val_compute_len): Likewise.
	* dwarf_child.c (__libdw_find_attr): Call __libdw_form_val_len
	with endp.
	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
	* dwarf_getmacros.c (read_macros): Likewise and check for errors.

2014-12-02  Petr Machata  <pmachata@redhat.com>

	* dwarf_getmacros.c (token_from_offset, offset_from_token): New
	helper functions.
	(do_dwarf_getmacros_die): Merge into dwarf_getmacros.
	* libdw.h (DWARF_GETMACROS_START): New macro.

2014-11-27  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (libdw.so): Use textrel_check.

2014-11-27  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getcfi_elf.c (getcfi_gnu_eh_frame): Initialize
	search_table_entries and search_table_encoding.

2014-11-24  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (read_srclines): Check line_range is not zero
	before usage.

2014-11-23  Mark Wielaard  <mjw@redhat.com>

	* dwarf_attr.c (dwarf_attr): Check __libdw_find_attr return value.
	* dwarf_hasattr.c (dwarf_hasattr): Likewise.
	* dwarf_siblingof.c (dwarf_siblingof): Likewise.

2014-11-23  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getabbrev.c (__libdw_getabbrev): Don't assert on bad DWARF.
	Set libdw errno and return NULL.

2014-11-24  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h (DW_LANG_C_plus_plus_11): Added.
	(DW_LANG_C11): Likewise.
	(DW_LANG_C_plus_plus_14): Likewise.
	* dwarf_aggregate_size.c (array_size): Handle DW_LANG_C11,
	DW_LANG_C_plus_plus_11, DW_LANG_C_plus_plus_14 and DW_LANG_Go
	lower bound.
	* dwarf_getfuncs.c (dwarf_getfuncs): Set c_cu to true for
	DW_LANG_C11.

2014-11-26  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h (DW_AT_noreturn): Added.

2014-11-11  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (read_srclines): Do address_size comparison
	explicitly as uint8_t.
	(__libdw_getsrclines): Add internal_function to declaration.

2014-09-10  Petr Machata  <pmachata@redhat.com>

	* dwarf_macro_getparamcnt.c: New file.
	* dwarf_macro_param.c: New file.
	* dwarf_macro_getsrcfiles.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add the new files.
	* libdwP.h (struct files_lines_s): New structure.
	(DWARF_E_INVALID_OPCODE): New enumerator.
	(struct Dwarf): New fields macro_ops, files_lines.
	(Dwarf_Macro_Op_Proto, Dwarf_Macro_Op_Table): New structures for
	keeping macro opcode prototypes in.
	(Dwarf_Macro_s): Redefine from scratch.
	(__libdw_getsrclines, __libdw_getcompdir, libdw_macro_nforms): New
	internal interfaces.
	* dwarf_error.c (errmsgs): Add a message for
	DWARF_E_INVALID_OPCODE.
	* dwarf_end.c (dwarf_end): Destroy struct Dwarf.macro_ops and
	files_lines.
	* libdw.h (dwarf_getmacros_off, dwarf_macro_getparamcnt)
	(dwarf_macro_getsrcfiles, dwarf_macro_param): New public
	interfaces.
	* dwarf_getmacros.c (dwarf_getmacros_off): New function,
	(get_offset_from, macro_op_compare, build_table)
	(init_macinfo_table, get_macinfo_table, get_table_for_offset)
	(cache_op_table, read_macros, gnu_macros_getmacros_off)
	(macro_info_getmacros_off, do_dwarf_getmacros_die): New helper
	functions.
	(dwarf_getmacros): Adjust to dispatch to the new interfaces.
	* dwarf_getsrclines.c (read_srclines): New function with guts
	taken from dwarf_getsrclines.
	(__libdw_getsrclines): Likewise.
	(__libdw_getcompdir, files_lines_compare): New functions.
	(dwarf_getsrclines): Make it dispatch to the new interfaces.
	* dwarf_macro_param1.c (dwarf_macro_param1): Adjust to dispatch to
	the new interfaces.
	* dwarf_macro_param2.c (dwarf_macro_param2): Likewise.
	* libdw.map (ELFUTILS_0.161): New. Add dwarf_getmacros_off,
	dwarf_macro_getsrcfiles, dwarf_macro_getparamcnt, dwarf_macro_param.

2014-10-06  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (libdw_a_SOURCES): Add dwarf_peel_type.c.
	* dwarf_aggregate_size.c (get_type): Use dwarf_peel_type.
	(aggregate_size): Likewise. Add old and new version.
	* dwarf_peel_type.c: New file.
	* libdw.h (dwarf_peel_type): New function declaration.
	* libdwP.h (dwarf_peel_type): New internal declaration.
	* libdw.map (ELFUTILS_0.161): New section.

2014-10-15  Petr Machata  <pmachata@redhat.com>

	* libdwP.h (struct Dwarf_Files_s.cu): Drop field.
	* dwarf_getsrclines.c (dwarf_getsrclines): Don't set it.

2014-10-05  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Add DW_AT_GNU_deleted.

2014-10-02  Mark Wielaard  <mjw@redhat.com>

	* dwarf_aggregate_size.c (aggregate_size): Return CU address_size
	for sizeless DW_TAG_pointer_type, DW_TAG_reference_type or
	DW_TAG_rvalue_reference_type.

2014-09-12  Petr Machata  <pmachata@redhat.com>

	* memory-access.h (read_ubyte_unaligned_inc): Allow only 4- and
	8-byte quantities.  Consequently, rename to...
	(read_addr_unaligned_inc): ... this.
	(read_sbyte_unaligned_inc, read_ubyte_unaligned): Drop.
	(read_sbyte_unaligned): Drop.

2014-09-10  Petr Machata  <pmachata@redhat.com>

	* dwarf_getlocation.c (attr_ok): Also accept
	DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
	DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered.

2014-08-15  Mark Wielaard  <mjw@redhat.com>

	* dwarf_cu_die.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_cu_die.c.
	* libdw.h (dwarf_cu_die): New function declaration.
	* libdw.map (ELFUTILS_0.160): Add dwarf_cu_die.

2014-08-15  Mark Wielaard  <mjw@redhat.com>

	* dwarf_cu_getdwarf.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_cu_getdwarf.c.
	* libdw.h (Dwarf_CU): New typedef.
	(dwarf_cu_getdwarf): New function declaration.
	* libdw.map (ELFUTILS_0.160): New. Add dwarf_cu_getdwarf.

2014-06-18  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Remove DW_TAG_mutable_type.

2014-05-02  Mark Wielaard  <mjw@redhat.com>

	* libdwP.h (__check_build_id): Removed now unused.

2014-05-01  Mark Wielaard  <mjw@redhat.com>

	* libdwP.h (struct Dwarf): Remove free_alt.
	* dwarf_end.c (dwarf_end): Don't check free_alt, don't end alt_dwarf.
	* dwarf_setalt.c (dwarf_setalt): Don't check or set free_alt.

2014-04-30  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.159): Add dwelf_elf_gnu_build_id.

2014-04-15  Florian Weimer  <fweimer@redhat.com>

	* dwarf_begin_elf.c (__check_build_id, try_debugaltlink)
	(open_debugaltlink): Move to libdwfl.
	(check_section): Do not locate alternate debuginfo.

2014-04-24  Florian Weimer  <fweimer@redhat.com>

	* libdw.map (ELFUTILS_0.159): Export dwelf_dwarf_gnu_debugaltlink.

2014-04-22  Florian Weimer  <fweimer@redhat.com>

	* dwarf_getalt.c, dwarf_setalt.c: New files.
	* Makefile.am (libdw_a_SOURCES): Add them.
	* libdw.h (dwarf_getalt, dwarf_setalt): Add function declarations.
	* libdwP.h (dwarf_getalt, dwarf_setalt): Add internal function
	declarations.
	* libdw.map (ELFUTILS_0.159): Export the two new functions.

2014-04-15  Florian Weimer  <fweimer@redhat.com>

	* libdwP.h (enum IDX_gnu_debugaltlink): New.
	* dwarf_begin_elf.c (dwarf_scnnames): Increase string size and add
	.gnu_debugaltlink.
	(check_section): Obtain .gnu_debugaltlink section from the
	setiondata array.

2014-04-11  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.159): New. Add dwelf_elf_gnu_debuglink.
	* Makefile.am (libdw.so): Depend on libdwelf_pic.a.
	(libdwelf_objects): New variable.
	(libdw_a_LIBADD): Add libdwelf objects.

2014-04-22  Mark Wielaard  <mjw@redhat.com>

	* memory-access.h (get_sleb128_step): Remove undefined behavior
	of left shifting a signed value. Replace it with a multiplication.

2014-04-13  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am: Remove !MUDFLAP conditions.

2014-04-09  Mark Wielaard  <mjw@redhat.com>

	* dwarf_begin_elf.c (check_section): Check for unsigned overflow
	before calling malloc to uncompress data.

2014-03-03  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Fix abort() on missing section headers.
	* dwarf_begin_elf.c (check_section): Replace abort call by goto err.
	New label err to return NULL.

2014-02-05  Josh Stone  <jistone@redhat.com>

	* dwarf_decl_file.c (dwarf_decl_file): Read the idx as unsigned.
	* dwarf_decl_line.c (__libdw_attr_intval): Read the line/column as
	unsigned.  Change the range assert to DWARF_E_INVALID_DWARF.

2013-12-30  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.158): Add dwfl_core_file_attach and
	dwfl_linux_proc_attach.

2013-12-20  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.158): Add dwfl_getthread_frames.

2013-12-18  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.158): Remove dwfl_module_addrsym_elf and
	dwfl_module_getsym_elf. Add dwfl_module_addrinfo and
	dwfl_module_getsym_info.

2013-12-16  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.158): Add dwfl_module_getsymtab_first_global.

2013-12-10  Josh Stone  <jistone@redhat.com>

	* memory-access.h (get_uleb128_rest_return): Removed.
	(get_sleb128_rest_return): Removed.
	(get_uleb128_step): Make this a self-contained block.
	(get_sleb128_step): Ditto, and use a bitfield to extend signs.
	(get_uleb128): Make this wholly implemented by __libdw_get_uleb128.
	(get_sleb128): Make this wholly implemented by __libdw_get_sleb128.
	(__libdw_get_uleb128): Simplify and inline for all callers.
	(__libdw_get_sleb128): Ditto.
	* dwarf_getlocation.c (store_implicit_value): Void the unused uleb128.
	* memory-access.c: Delete file.
	* Makefile.am (libdw_a_SOURCES): Remove it.
	(DEFS): Remove the now unused -DIS_LIBDW.

2013-12-09  Josh Stone  <jistone@redhat.com>

	* libdw_form.c (__libdw_form_val_compute_len): Renamed function from
	__libdw_form_val_len, now handling only non-constant form lengths.
	* libdwP.h (__libdw_form_val_len): New inlined function.

2013-12-09  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getlocation.c (__libdw_intern_expression): Handle empty
	location expressions.
	* dwarf_getlocation_attr.c (dwarf_getlocation_attr): When no
	location found, return empty location expression.
	* dwarf_getlocation_implicit_pointer.c
	(dwarf_getlocation_implicit_pointer): Likewise.
	(__libdw_empty_loc_attr): New internal function.
	* libdwP.h (__libdw_empty_loc_attr): Define.

2013-11-27  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.158): Add dwfl_module_addrsym_elf and
	dwfl_module_getsym_elf.

2013-11-26  Mark Wielaard  <mjw@redhat.com>

	* libdw.map (ELFUTILS_0.156): Move dwfl_attach_state, dwfl_pid,
	dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread,
	dwfl_thread_state_registers, dwfl_thread_state_register_pc,
	dwfl_getthreads, dwfl_thread_getframes and dwfl_frame_pc to ...
	(ELFUTILS_0.158): ... here.

2013-11-09  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getaranges.c (dwarf_getaranges): Read segment_size and
	check that it is zero.

2013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cfi.h (struct Dwarf_Frame_s): Make the comment more specific.
	* libdw.map (ELFUTILS_0.156): Add dwfl_attach_state, dwfl_pid,
	dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread,
	dwfl_thread_state_registers, dwfl_thread_state_register_pc,
	dwfl_getthreads, dwfl_thread_getframes and dwfl_frame_pc.

2013-11-01  Michael Forney  <mforney@mforney.org>

	* Makefile.am (libdwfl_objects): New definition.
	(libdw_a_LIBADD): Use libdwfl_objects.

2013-11-01  Michael Forney  <mforney@mforney.org>

	* Makefile.am: Use READELF.

2013-10-30  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libdw.map (ELFUTILS_0.158): New.

2013-10-10  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getfuncs.c (struct visitor_info): Rename start_offset to
	start_addr and rename last_offset to last_addr. Now both void *.
	(tree_visitor): Use start_add and die_addr instead of start_offset
	and die_offset.
	(dwarf_getfuncs): Use last_addr instead of last_offset.

2013-10-06  Mark Wielaard  <mjw@redhat.com>

	* cfi.c (execute_cfi): Make sure DW_CFA_expression and
	DW_CFA_val_expression are not used with abi_cfi.

2013-10-03  Josh Stone  <jistone@redhat.com>

	* dwarf_formref_die.c (dwarf_formref_die): Don't hash the sig8 here.
	* libdw_findcu.c (__libdw_intern_next_unit): Since this never revisits
	a unit, make sure to always hash the sig8 here, so none are missed.

2013-09-29  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getlocation.c (store_implicit_value): Cast op->number2 to
	uintptr_t before casting to char *.
	(__libdw_intern_expression): Cast data to uintptr_t before casting
	to Dwarf_Word.
	* dwarf_getlocation_attr.c (dwarf_getlocation_attr): Cast
	op->number2 to uintptr_t before casting to char *.

2013-09-24  Josh Stone  <jistone@redhat.com>

	* libdw_visit_scopes.c (classify_die): Removed.
	(may_have_scopes): New function to replace classify_die.  There's no
	need for full classification; just find tags that may contain scopes.
	(__libdw_visit_scopes): Use a direct tag comparison for imported
	units, and use may_have_scopes to test if recursion is needed.

2013-09-20  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getfuncs.c (visitor_info): New struct.
	(tree_visitor): New function.
	(dwarf_getfuncs): Use __libdw_visit_scopes with tree_visitor.
	* libdw.h (dwarf_getfuncs): Expand function documentation.

2013-09-12  Mark Wielaard  <mjw@redhat.com>

	* fde.c (intern_fde): Free fde and set libdw errno when start
	or end could not be read.

2013-08-24  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getlocation.c (store_implicit_value): Don't take data
	as argument, get block data from op number2. Return false when
	block data length and op number don't match up.
	(__libdw_intern_expression): Store start of block for
	DW_OP_implicit_value and DW_OP_GNU_entry_value instead of
	relative data offset. Also store block start (including length)
	for DW_OP_GNU_const_type. Don't pass data to store_implicit_value.
	* dwarf_getlocation_attr.c: New file.
	* dwarf_getlocation_die.c: Likewise.
	* libdw.h (dwarf_getlocation_die): New function definition.
	(dwarf_getlocation_attr): Likewise.
	* libdwP.h: Declare internal dwarf_getlocation_die.
	* libdw.map (ELFUTILS_0.157): Add dwarf_getlocation_die and
	dwarf_getlocation_attr.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_getlocation_die.c and
	dwarf_getlocation_attr.c.

2013-08-23  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getlocation.c (attr_ok): Also accept DW_AT_segment.
	(attr_base_address): New function.
	(initial_offset_base): New function.
	(getlocations_addr): New function. Taken from...
	(dwarf_getlocation_addr): here. Use new initial_offset_base and
	getlocations_addr.
	(dwarf_getlocations): New function.
	* libdw.h (dwarf_getlocations): New function definition.
	* libdw.map (ELFUTILS_0.157): New.

2013-07-02  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (dwarf_getsrclines): Add new stack allocation
	limit MAX_STACK_ALLOC.  After MAX_STACK_ALLOC lines use malloc in
	NEW_LINE macro.  Free malloced line records if any at the end.

2013-07-02  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getcfi_elf.c (getcfi_shdr): Check sh_type == SHT_PROGBITS.

2013-06-26  Mark Wielaard  <mjw@redhat.com>

	* libdw_visit_scopes.c (__libdw_visit_scopes): Don't reject root
	DIEs without children. Return an error whenever dwarf_child or
	dwarf_siblingof return an error. Don't call recurse and increase
	the depth for an imported unit. Walk the children of an imported
	unit as if they are logical children of the parent root DIE.

2013-05-03  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (dwarf_getsrclines): Only set end_sequence
	when nlinelist > 0.

2013-04-28  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* libdw.map (ELFUTILS_0.156): New.

2013-04-24  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.

2013-04-10  Mark Wielaard  <mjw@redhat.com>

	* dwarf_formref_die.c (dwarf_formref_die): Reference size is only
	equal to address size when we have a DW_FORM_ref_addr for DWARF
	version 2.

2013-03-25  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrclines.c (dwarf_getsrclines): Mark highest address as
	end_sequence.

2013-03-12  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getsrcfiles.c (dwarf_getsrcfiles): Allow DW_TAG_partial_unit.
	* dwarf_getsrclines.c (dwarf_getsrclines): Likewise.

2013-02-15  Mark Wielaard  <mjw@redhat.com>

	* dwarf_formstring.c (dwarf_formstring): Check dbg_ret->sectiondata,
	not dbg->sectiondata.

2013-01-07  Roland McGrath  <roland@hack.frob.com>

	* memory-access.h
	[ALLOW_UNALIGNED] (read_8ubyte_unaligned_noncvt): New macro.
	[!ALLOW_UNALIGNED] (read_8ubyte_unaligned_noncvt): New inline function.

2012-12-18  Mark Wielaard  <mjw@redhat.com>

	* dwarf_begin_elf.c (valid_p): Call Dwarf_Sig8_Hash_free if invalid.
	(check_section): Likewise on error.
	(scngrp_read): Likewise.
	(dwarf_begin_elf): Likewise.

2012-10-09  Petr Machata  <pmachata@redhat.com>

	* dwarf_getlocation.c (__libdw_intern_expression): Handle
	DW_OP_GNU_parameter_ref, DW_OP_GNU_convert, DW_OP_GNU_reinterpret,
	DW_OP_GNU_regval_type, DW_OP_GNU_entry_value,
	DW_OP_GNU_deref_type, DW_OP_GNU_const_type.

2012-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cfi.c: New include system.h.
	(execute_cfi) (enough_registers): Clear new memory after realloc.

2012-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* fde.c (__libdw_find_fde): Change <fde != NULL> to likely.  Return
	DWARF_E_NO_MATCH if .eh_frame_hdr points to FDE which is too short for
	searched PC.

2012-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf_getlocation.c (__libdw_intern_expression) <cfap>: Make new
	loclist element DW_OP_call_frame_cfa before decoding the opcodes.
	Remove the later DW_OP_call_frame_cfa push to RESULT.

2012-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	Code cleanup.
	* fde.c (binary_search_fde): Remove always true <address >= start>
	conditional.  Move L initialization upwards.

2012-08-24  Mark Wielaard  <mjw@redhat.com>

	* dwarf_begin_elf.c (check_section): Only probe for dwz multi files
	when ENABLE_DWZ is defined.
	* libdwP.h (__check_build_id): Only declare when ENABLE_DWZ is
	defined.

2012-08-16  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (EXTRA_DIST): Add known-dwarf.h.
	* dwarf.h (DW_LANG_Go): Update comment.
	(DW_LANG_Mips_Assembler): Likewise.

2012-06-27  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Add DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt.
	* dwarf_begin.c (dwarf_begin): Add INTDEF.
	* dwarf_begin_elf.c (__check_build_id): New internal_function.
	(try_debugaltlink): New function.
	(open_debugaltlink): Likewise.
	(check_section): Try open_debugaltlink for .gnu_debugaltlink.
	* dwarf_end.c (dwarf_end): Free the alternative Dwarf descriptor if
	necessary.
	* dwarf_error.c (errmsgs): Add DWARF_E_NO_ALT_DEBUGLINK.
	* dwarf_formref.c (__libdw_formref): Using DW_FORM_GNU_ref_alt
	is an error here.
	* dwarf_formref_die.c (dwarf_formref_die): Handle DW_FORM_GNU_ref_alt.
	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_GNU_strp_alt.
	* dwarf_formudata.c (__libdw_formptr): Adjust __libdw_read_offset
	calls.
	* dwarf_getpubnames.c (get_offsets): Adjust __libdw_read_offset call.
	* libdwP.h: Add DWARF_E_NO_ALT_DEBUGLINK.
	(struct Dwarf): Add alt_dwarf and free_alt fields.
	(__libdw_read_offset): Add dbg_ret argument, use to check with
	__libdw_offset_in_section.
	(__check_build_id): New function declaration.
	(dwarf_begin): Define as INTDECL.
	* libdw_form.c (__libdw_form_val_len): Handle DW_FORM_GNU_ref_alt
	and DW_FORM_GNU_strp_alt.

2012-07-19  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Add DW_OP_GNU_parameter_ref.

2012-07-24  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Correct spelling of DW_LANG_ObjC.
	* dwarf_aggregate_size.c (array_size): Use correct spelling of
	DW_LANG_ObjC.

2012-07-24  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Add DW_ATE_UTF.

2012-06-27  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Add DW_MACRO_GNU .debug_macro type encodings.

2012-06-26  Mark Wielaard  <mjw@redhat.com>

	* libdwP.h: Add IDX_debug_macro.
	* dwarf.h: Add DW_AT_GNU_macros.
	* dwarf_begin_elf.c (dwarf_scnnames): Add .debug_macro.
	* dwarf_formudata.c (dwarf_formudata): Recognize DW_AT_GNU_macros.

2012-04-27  Mark Wielaard  <mjw@redhat.com>

	* libdw/dwarf_highpc.c (dwarf_highpc): Handle DW_AT_high_pc being
	a constant offset from DW_AT_low_pc.

2012-03-19  Tom Tromey  <tromey@redhat.com>

	* libdw_findcu.c (findcu_cb): Move earlier.
	(__libdw_intern_next_unit): Add new CU to search tree here...
	(__libdw_findcu): ... not here.

2012-01-31  Mark Wielaard  <mjw@redhat.com>

	* dwarf_formudata.c (dwarf_formudata): Handle DW_FORM_sec_offset.

2011-11-31  Mark Wielaard  <mjw@redhat.com>

	* Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk.

2011-07-14  Mark Wielaard  <mjw@redhat.com>

	* libdw.h (dwarf_offdie): Fix documentation to mention .debug_info.

2011-05-16  Jakub Jelinek  <jakub@redhat.com>

	* dwarf.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
	DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret):
	New.

2011-04-26  Mark Wielaard  <mjw@redhat.com>

	* dwarf_child (dwarf_child): Sanity check end of section against
	cu_data () of die->cu.

2011-03-22  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Add DW_TAG_GNU_call_site,
	DW_TAG_GNU_call_site_parameter,
	DW_AT_GNU_call_site_value,
	DW_AT_GNU_call_site_data_value,
	DW_AT_GNU_call_site_target,
	DW_AT_GNU_call_site_target_clobbered,
	DW_AT_GNU_tail_call,
	DW_AT_GNU_all_tail_call_sites,
	DW_AT_GNU_all_call_sites,
	DW_AT_GNU_all_source_call_sites,
	and DW_OP_GNU_entry_value.

2011-03-10  Petr Machata  <pmachata@redhat.com>

	* libdw/dwarf_tag.c (__libdw_findabbrev): Reject requests for
	abbreviation with code 0.

2011-03-09  Petr Machata  <pmachata@redhat.com>

	* libdw/dwarf_child.c (dwarf_child): Check for section overrun.

2011-02-23  Roland McGrath  <roland@redhat.com>

	* libdwP.h (struct Dwarf) [USE_ZLIB]: New member sectiondata_gzip_mask.
	Declare __libdw_free_zdata.
	* dwarf_end.c [USE_ZLIB] (__libdw_free_zdata): New function.
	(dwarf_end): Call it.

	* dwarf_begin_elf.c (valid_p): Likewise.
	(check_section, scngrp_read): Likewise.
	(check_section) [USE_ZLIB]: Grok .z* flavors of sections.

2010-10-13  Roland McGrath  <roland@redhat.com>

	* dwarf.h: Add DW_LANG_Go.

2010-10-05  Roland McGrath  <roland@redhat.com>

	* dwarf_getaranges.c: Use malloc rather than alloca,
	since the total number of elements can be quite huge.

2010-07-26  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation_implicit_pointer.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.map (ELFUTILS_0.149): New set.
	Add dwarf_getlocation_implicit_pointer.
	* libdw.h: Declare it.

	* dwarf_offdie.c (do_offdie): Renamed to __libdw_offdie, made global.
	(dwarf_offdie, dwarf_offdie_types): Update callers.
	* libdwP.h: Declare it.

	* dwarf.h: Add DW_OP_GNU_implicit_pointer.
	* dwarf_getlocation.c (__libdw_intern_expression): Handle it.

2010-08-24  Roland McGrath  <roland@redhat.com>

	* libdw.map (ELFUTILS_0.149): New set.  Add dwfl_dwarf_line.

2010-07-27  Roland McGrath  <roland@redhat.com>

	* dwarf_formref_die.c: Fix sig8 hash insertion.

2010-06-23  Roland McGrath  <roland@redhat.com>

	* cfi.c (dwarf_cfi_validate_fde): Function removed.
	* libdw.h: Remove it.
	* libdw.map: Likewise.

2010-06-22  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c (check_constant_offset): data[48] are constant.

	* dwarf_getsrclines.c: Fix signed comparison warning in extended
	opcode parsing.

2010-06-21  Roland McGrath  <roland@redhat.com>

	* dwarf.h: Add DW_TAG_GNU_* constants.

	* memory-access.h (get_sleb128_rest_return): Fix sign extension for
	10-byte case.

2010-06-20  Roland McGrath  <roland@redhat.com>

	* libdw_findcu.c (__libdw_findcu): Take new flag argument,
	to search TUs instead of CUs.
	* libdwP.h: Update decl.
	(struct Dwarf): New member tu_tree.
	* dwarf_end.c (dwarf_end): Clean up tu_tree.
	* dwarf_offdie.c (do_offdie): New function, broken out of ...
	(dwarf_offdie): ... here.
	(dwarf_offdie_types): New function.
	* libdw.h: Declare it.
	* libdw.map (ELFUTILS_0.148): Add it.

	* libdwP.h (CUDIE): Use cu_data.
	* dwarf_formblock.c: Likewise.
	* dwarf_formref_die.c: Likewise.
	* dwarf_diecu.c: Use CUDIE macro.
	* dwarf_formaddr.c: Use cu_sec_idx.

2010-06-16  Roland McGrath  <roland@redhat.com>

	* dwarf_formref_die.c: Use dwarf_offdie only for DW_FORM_ref_addr, so
	we don't repeat a CU lookup we've already done.  Handle
	DW_FORM_ref_sig8 using sig8_hash table and __libdw_intern_next_unit.

	* libdw_findcu.c (__libdw_intern_next_unit): New function,
	broken out of ...
	(__libdw_findcu): ... here.  Call it.
	* libdwP.h: Declare it.
	(struct Dwarf): New member next_tu_offset.

	* dwarf_sig8_hash.c: New file.
	* dwarf_sig8_hash.h: New file.
	* Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
	* dwarf_abbrev_hash.c: Include dwarf_sig8_hash.h before
	defining NO_UNDEF.
	* libdwP.h (struct Dwarf): New member sig8_hash.
	* dwarf_begin_elf.c: Call Dwarf_Sig8_Hash_init on it.
	* dwarf_end.c: Call Dwarf_Sig8_Hash_free on it.

	* dwarf_nextcu.c (dwarf_next_unit): New function, broken out of ...
	(dwarf_nextcu): ... here.  Call it.
	* libdw.h: Declare it.
	* libdwP.h: Add INTDECL.
	* libdw_findcu.c (__libdw_findcu): Use it instead of dwarf_nextcu.
	* libdw.map (ELFUTILS_0.148): New set, add dwarf_next_unit.

	* libdwP.h (cu_sec_idx, cu_data): New functions.
	Use .debug_types when CU is a TU.
	* dwarf_cuoffset.c: Use that instead of assuming IDX_debug_info.
	* dwarf_siblingof.c: Likewise.
	* dwarf_formstring.c: Likewise.
	* dwarf_formudata.c (__libdw_formptr, dwarf_formudata): Likewise.
	* dwarf_getlocation.c (dwarf_getlocation): Likewise.
	(dwarf_getlocation_addr): Likewise.

	* libdwP.h (struct Dwarf_CU): Add new members type_offset, type_sig8.
	(DIE_OFFSET_FROM_CU_OFFSET): Take flag argument; if true, compute
	.debug_types header size instead of .debug_info header size.
	(CUDIE): Use it.
	* dwarf_diecu.c: Update caller.
	* dwarf_getaranges.c: Likewise.
	* dwarf_nextcu.c: Likewise.
	* libdw_findcu.c (__libdw_findcu): Initialize new members.

	* fde.c (fde_by_offset): Renamed to ...
	(__libdw_fde_by_offset): ... this, made global and internal_function.
	Don't take ADDRESS argument.
	(__libdw_find_fde): Update caller.  Do address sanity check here.
	* cfi.h: Declare __libdw_fde_by_offset.
	* cfi.c (dwarf_cfi_validate_fde): New function.
	* libdw.h: Declare it.
	* libdw.map (ELFUTILS_0.148): Add it.

	* cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
	either DW_EH_PE_udata8 or DW_EH_PE_udata4.

	* encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
	Don't assume DW_EH_PE_aligned refers to native address size.

	* cfi.c (execute_cfi): Barf on CIE initial instructions changing the
	address.

2010-06-17  Roland McGrath  <roland@redhat.com>

	* libdwP.h (struct Dwarf_Line_s): Add members isa, discriminator, and
	op_index.
	* dwarf_getsrclines.c (dwarf_getsrclines): Move NEW_FILE macro guts
	into an inner inline function.  Set new fields.  Check all fields for
	overflow when setting.
	* dwarf_lineisa.c: New file.
	* dwarf_linediscriminator.c: New file.
	* dwarf_lineop_index.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add them.
	* libdw.map (ELFUTILS_0.148): Add them.
	* libdw.h: Declare them.

2010-06-16  Roland McGrath  <roland@redhat.com>

	* dwarf_next_cfi.c: Fix version 4 return_address_register decoding.

	* fde.c (fde_by_offset): Renamed to ...
	(__libdw_fde_by_offset): ... this, made global and internal_function.
	Don't take ADDRESS argument.
	(__libdw_find_fde): Update caller.  Do address sanity check here.
	* cfi.h: Declare __libdw_fde_by_offset.
	* cfi.c (dwarf_cfi_validate_fde): New function.
	* libdw.h: Declare it.
	* libdw.map (ELFUTILS_0.148): Add it.

	* cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
	either DW_EH_PE_udata8 or DW_EH_PE_udata4.

	* encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
	Don't assume DW_EH_PE_aligned refers to native address size.

	* cfi.c (execute_cfi): Barf on CIE initial instructions changing the
	address.

2010-06-15  Roland McGrath  <roland@redhat.com>

	* dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like
	DW_FORM_ref_addr.
	* dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way
	here, since we don't support it yet.

	* dwarf_next_cfi.c: Handle version 4 format.

	* dwarf_getsrclines.c: Handle version 4 format.

2010-06-01  Roland McGrath  <roland@redhat.com>

	* libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types.
	* dwarf_begin_elf.c (dwarf_scnnames): Likewise.

	* libdwP.h (CIE_VERSION): Remove unused macro.

	* dwarf_getsrclines.c: Fix version field test.
	* libdwP.h (DWARF_VERSION): Remove useless macro.

	* dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling.

	* dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc.

	* libdw_findcu.c (__libdw_findcu): Accept version 4.

2010-05-31  Mark Wielaard  <mjw@redhat.com>

	* cfi.h (dwarf_cfi_cie_p): Move definition from here, to ..
	* libdw.h (dwarf_cfi_cie_p): ... here.

2010-05-31  Mark Wielaard  <mjw@redhat.com>

	* dwarf.h: Fix DW_LANG_Python constant.

2010-05-28  Eduardo Santiago  <santiago@redhat.com>

	* dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first
	thing.

2010-05-27  Roland McGrath  <roland@redhat.com>

	* dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name,
	DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator.

2010-05-08  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c (__libdw_intern_expression): Take new argument
	REF_SIZE.  Use that to handle DW_OP_call_ref correctly.
	(getlocation): Update caller.
	* dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
	* dwarf_frame_register.c (dwarf_frame_register): Likewise.
	* libdwP.h: Update decl.

2010-04-26  Roland McGrath  <roland@redhat.com>

	* cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule.
	* cfi.c (execute_cfi): Set that instead of doing cfi_assert for
	DW_CFA_def_cfa_{offset*,register} when a non-offset rule is in force.
	* dwarf_frame_cfa.c (dwarf_frame_cfa): Handle cfa_invalid.

	* dwarf_getlocation.c (__libdw_intern_expression): Take new arg CFAP.
	Prepend DW_OP_call_frame_cfa if true.
	(getlocation): Update caller.
	* dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
	* dwarf_frame_register.c (dwarf_frame_register): Likewise.
	* libdwP.h: Update decl.

2010-04-22  Roland McGrath  <roland@redhat.com>

	* cfi.c (execute_cfi): Never return without cleanup.
	Free FS on failure.
	(cie_cache_initial_state): Adjust caller to expect that free.
	(__libdw_frame_at_address): Likewise.

2010-03-10  Roland McGrath  <roland@redhat.com>

	* libdw.map (ELFUTILS_0.146): New set.  Add dwfl_core_file_report.

2010-02-15  Roland McGrath  <roland@redhat.com>

	* Makefile.am: Use config/eu.am for common stuff.

2010-02-02  Mark Wielaard  <mjw@redhat.com>

	* fde.c (intern_fde): Fix length check for sized_augmentation_data.

2010-01-07  Roland McGrath  <roland@redhat.com>

	* dwarf_getcfi_elf.c (getcfi_phdr): Use elf_getphdrnum.

2010-01-05  Roland McGrath  <roland@redhat.com>

	* dwarf_aggregate_size.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare it.
	* libdwP.h: Add INTDECL.
	* libdw.map (ELFUTILS_0.144): New set.  Add dwarf_aggregate_size.

	* dwarf_srclang.c: Add INTDEF.
	* libdwP.h: Add INTDECL.

	* dwarf.h: Add some more DW_AT_GNU_* types from gcc.

	* dwarf.h: Add DW_AT_GNU_vector, DW_AT_GNU_template_name.

2009-11-21  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c (check_constant_offset): Return 1 for all
	non-constant forms.

2009-10-15  Roland McGrath  <roland@redhat.com>

	* libdw_form.c (__libdw_form_val_len): Grok DW_FORM_sec_offset,
	DW_FORM_exprloc, DW_FORM_flag_present, and DW_FORM_ref_sig8.

2009-09-17  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c (dwarf_getlocation_implicit_value): Make OP
	argument a pointer to const.
	* libdw.h: Update decl.

2009-09-10  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c (store_implicit_value): New function.
	(__libdw_intern_expression): Use it, handle DW_OP_implicit_value.
	(dwarf_getlocation_implicit_value): New function.
	* libdw.h: Declare it.
	* libdw.map (ELFUTILS_0.143): Add it.

2009-09-09  Mark Wielaard  <mjw@redhat.com>

	* dwarf_getcfi.c (dwarf_getcfi): Clear cfi->ebl.

2009-08-21  Josh Stone  <jistone@redhat.com>

	* dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.

2009-08-10  Roland McGrath  <roland@redhat.com>

	* dwarf_getscopevar.c: Use dwarf_diename.

2009-08-09  Roland McGrath  <roland@redhat.com>

	* libdw.map (ELFUTILS_0.143): New version set,
	inherits from ELFUTILS_0.142.
	* dwarf_arrayorder.c: Use OLD_VERSION and NEW_VERSION to define an
	alias in the ELFUTILS_0.122 version set and the default in the new set.
	* dwarf_srclang.c: Likewise.
	* dwarf_decl_file.c: Likewise.
	* dwarf_decl_line.c: Likewise.
	* dwarf_decl_column.c: Likewise.
	* dwarf_bytesize.c: Likewise.
	* dwarf_bitsize.c: Likewise.
	* dwarf_bitoffset.c: Likewise.

2009-08-07  Roland McGrath  <roland@redhat.com>

	* dwarf_arrayorder.c: Use dwarf_attr_integrate.
	* dwarf_srclang.c: Likewise.
	* dwarf_decl_file.c: Likewise.
	* dwarf_decl_line.c (__libdw_attr_intval): Likewise.
	* dwarf_bytesize.c: Likewise.
	* dwarf_bitsize.c: Likewise.
	* dwarf_bitoffset.c: Likewise.

2009-07-22  Roland McGrath  <roland@redhat.com>

	* dwarf_frame_cfa.c: Change calling convention.
	* libdw.h: Update decl.

	* dwarf_frame_register.c: Change calling/return-value convention for
	value-only results and undefined/same_value.
	* libdw.h: Update decl.

	* dwarf_getlocation.c (__libdw_intern_expression): Take new bool
	argument, append DW_OP_stack_value if set.  Don't take NOPS argument,
	return that value instead.
	(getlocation): Update caller.
	* dwarf_frame_cfa.c: Likewise.
	* libdwP.h: Update decl.

2009-07-21  Roland McGrath  <roland@redhat.com>

	* dwarf_getsrc_file.c: Ignore a CU that just has no DW_AT_stmt_list.
	Fix loop iteration after skipping a bogus or useless CU.

	* dwarf_entry_breakpoints.c: Handle 0 dwarf_errno () as harmless
	absence, not DWARF_E_NO_DEBUG_LINE.

2009-07-20  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c (__libdw_intern_expression):
	Handle DW_OP_stack_value.

2009-07-16  Roland McGrath  <roland@redhat.com>

	* dwarf_formudata.c (__libdw_formptr): Handle DW_FORM_sec_offset,
	reject others when CU's version > 3.

	* dwarf_formflag.c: Handle DW_FORM_flag_present.

	* dwarf.h: Add DW_OP_{implicit,stack}_value from DWARF 4 draft.
	Also DW_TAG_type_unit and DW_TAG_rvalue_reference_type.
	Also DW_AT_signature, DW_AT_main_subprogram, DW_AT_data_bit_offset,
	and DW_AT_const_expr.
	Also DW_FORM_sec_offset, DW_FORM_exprloc, DW_FORM_flag_present,
	and DW_FORM_ref_sig8.

2009-07-15  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c: Grok DW_OP_form_tls_address,
	DW_OP_GNU_push_tls_address, and DW_OP_bit_piece.

2009-07-13  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c: Grok DW_OP_call_frame_cfa.

2009-07-08  Roland McGrath  <roland@redhat.com>

	* libdw.map (ELFUTILS_0.142): Add dwfl_module_dwarf_cfi,
	dwfl_module_eh_cfi.

	* libdwP.h (struct Dwarf): Add member `cfi'.
	* dwarf_end.c (dwarf_end): Call __libdw_destroy_frame_cache on it.
	* dwarf_getcfi.c: New file.
	* dwarf_getcfi_elf.c: New file.
	* dwarf_cfi_end.c: New file.
	* dwarf_cfi_addrframe.c: New file.
	* dwarf_frame_cfa.c: New file.
	* dwarf_frame_register.c: New file.
	* dwarf_frame_return_address_register.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add them.
	* unwind.h: Declare those functions.
	* libdw.map (ELFUTILS_0.142): Export them.

	* dwarf_getlocation.c (__libdw_intern_expression): New function,
	broken out of ...
	(getlocation): ... here, call it.
	* libdwP.h: Declare it.

	* cie.c: New file.
	* fde.c: New file.
	* frame-cache.c: New file.
	* cfi.c: New file.
	* cfi.h: New file.
	* encoded-value.h: New file.
	* Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
	* libdwP.h: Add DWARF_E_INVALID_CFI to errors enum.
	* dwarf_error.c (errmsgs): Add element for it.

	* dwarf_next_cfi.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h (Dwarf_CIE, Dwarf_FDE, Dwarf_CIE_Entry): New types.
	Declare dwarf_next_cfi.
	* libdw.map (ELFUTILS_0.142): New set, inherits from ELFUTILS_0.136.
	Add dwarf_next_cfi.

	* memory-access.h [! ALLOW_UNALIGNED]
	(read_2ubyte_unaligned): Renamed to ...
	(read_2ubyte_unaligned_1): ... this.  Take bool rather than Dwarf *.
	(read_2ubyte_unaligned): Define as macro passing dbg->other_byte_order.
	(read_2sbyte_unaligned): Likewise.
	(read_4ubyte_unaligned): Likewise.
	(read_4sbyte_unaligned): Likewise.
	(read_8ubyte_unaligned): Likewise.
	(read_8sbyte_unaligned): Likewise.

	* libdwP.h (IDX_eh_frame): Remove it.
	* dwarf_begin_elf.c (dwarf_scnnames): Remove its element.

2009-07-08  Roland McGrath  <roland@redhat.com>

	* libdwP.h (struct Dwarf_Line_s): Reorder members to pack better.

	* dwarf_getlocation.c (check_constant_offset): New function.
	(dwarf_getlocation, dwarf_getlocation_addr): Call it to
	handle DW_AT_data_member_location of data[48] as constant offset.

2009-06-18  Roland McGrath  <roland@redhat.com>

	* libdwP.h (__libdw_read_address_inc): Constify.
	(__libdw_read_offset_inc): Likewise.
	* dwarf_getaranges.c: Likewise.
	* dwarf_getlocation.c: Likewise.
	* dwarf_getsrclines.c: Likewise.
	* dwarf_nextcu.c: Likewise.

2009-05-05  Petr Machata  <pmachata@redhat.com>

	* libdwP.h (__libdw_formptr): Declare new function.
	* dwarf_formudata.c: Implement it here.
	* dwarf_getlocation.c (dwarf_getlocation_addr):
	Call it instead of hand-rolled offset handling code.
	* dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
	* dwarf_ranges.c (dwarf_ranges): Likewise.

2009-05-04  Petr Machata  <pmachata@redhat.com>

	* libdwP.h (__libdw_read_begin_end_pair_inc): Declare new function.
	* dwarf_ranges.c: Implement it here.
	(dwarf_ranges): Call it.
	* dwarf_getlocation.c (dwarf_getlocation_addr): Call it also here.

2009-04-23  Petr Machata  <pmachata@redhat.com>

	* dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead
	of read_*ubyte_unaligned.
	* dwarf_formref_die.c (dwarf_formref_die): Likewise.
	* dwarf_formstring.c (dwarf_formstring): Likewise.
	* dwarf_formudate.c (dwarf_formudata): Likewise.
	* dwarf_getaranges.c (dwarf_getaranges): Likewise.
	* dwarf_getlocation.c (dwarf_getlocation_addr): Likewise.
	* dwarf_getpubnames.c (get_offsets): Likewise.
	* dwarf_nextcu.c (dwarf_nextcu): Likewise.

2009-04-23  Petr Machata  <pmachata@redhat.com>

	* libdwP.h (__libdw_read_addr_inc, __libdw_read_off_inc,
	__libdw_read_addr, __libdw_read_off): Add four new internal
	functions.

2009-05-07  Roland McGrath  <roland@redhat.com>

	* dwarf_getmacros.c (dwarf_getmacros): Use absolute section offset in
	return value and OFFSET argument, not CU-relative.  Only fetch the
	attribute data when called with OFFSET of 0.

2009-05-07  Petr Machata  <pmachata@redhat.com>

	* dwarf_getmacros.c (dwarf_getmacros): Take into account offset in
	DW_AT_macro_info attribute of CU DIE.

2009-04-15  Roland McGrath  <roland@redhat.com>

	* dwarf.h (DW_CIE_ID): Removed.
	(DW_CIE_ID_32, DW_CIE_ID_64): New constants replace it.

2009-04-01  Roland McGrath  <roland@redhat.com>

	* dwarf.h: Add DW_CFA_GNU_negative_offset_extended.

2009-01-28  Roland McGrath  <roland@redhat.com>

	* libdwP.h (struct Dwarf_Line_s): Move out of struct Dwarf_Lines_s
	defn so C++ doesn't scope the name to not match the Dwarf_Line typedef.

	* libdwP.h (struct Dwarf_Files_s): Replace dbg field with cu field.

2009-01-26  Roland McGrath  <roland@redhat.com>

	* dwarf_ranges.c: Return 0 when no ranges or *_pc attrs at all.

2009-01-25  Roland McGrath  <roland@redhat.com>

	* dwarf_getattrs.c: Correctly skip attribute values when restarting.

2009-01-23  Roland McGrath  <roland@redhat.com>

	* Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back.
	Put these rules under if MAINTAINER_MODE.

2009-01-22  Roland McGrath  <roland@redhat.com>

	* dwarf.h: Add DW_OP_GNU_encoded_addr.

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

	* Makefile.am (CLEANFILES): Renamed to ...
	(MOSTLYCLEANFILES): ... here.
	(CLEANFILES): New variable, add known-dwarf.h.

2009-01-17  Roland McGrath  <roland@redhat.com>

	* Makefile.am (known-dwarf.h): Target renamed, not in $(srcdir).
	Make it unconditional.
	(BUILT_SOURCES): Updated.

	* dwarf.h: Add description comments for DW_LANG_* values.

	* Makefile.am [MAINTAINER_MODE]
	($(srcdir)/known-dwarf.h): New target.
	(BUILT_SOURCES): Add it.

	* dwarf.h: Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit.

2009-01-10  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_error.c: Always use __thread.  Remove all !USE_TLS code.

2009-01-08  Roland McGrath  <roland@redhat.com>

	* Makefile.am (libdw.so): Don't depend on $(zip_LIBS), just link it in.

2008-01-06  Roland McGrath  <roland@redhat.com>

	* libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool.
	Reorder members.
	* dwarf_haschildren.c: Return -1 for error case, not 0.

	* Makefile.am (libdw.so): Link in $(zip_LIBS).

2009-01-06  Ulrich Drepper  <drepper@redhat.com>

	* dwarf.h: Add definition for unwind and call frame information.

	* memory-access.h: Define read_ubyte_unaligned, read_sbyte_unaligned,
	read_ubyte_unaligned_inc, and read_sbyte_unaligned_inc.

2008-08-15  Roland McGrath  <roland@redhat.com>

	* libdw.map (ELFUTILS_0.136): New version set, inherits from
	ELFUTILS_0.130.  Add dwfl_addrsegment, dwfl_report_segment.

2008-01-21  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_child.c: Minor optimizations.
	* dwarf_getattrs.c: Likewise.
	* dwarf_getpubnames.c: Likewise.
	* dwarf_siblingof.c: Likewise.
	* dwarf_tag.c: Likewise.

2008-01-18  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match
	of DWARF_VERSION comparison, just fail if the file's version is newer.

2008-01-17  Nick Clifton  <nickc@redhat.com>

	* dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define.
	(DWARF3_LENGTH_MAX_ESCAPE_CODE): New define.
	(DWARF3_LENGTH_64_BIT): New define.
	* dwarf_getaranges (dwarf_getaranges): Use the new definitions.
	* dwarf_getpubnames: Include dwarf.h.
	(get_offsets): Use the new definitions.
	* dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions.
	* dwarf_nextcu.c: Include dwarf.h.  Correct comment.
	(dwarf_nextcu): Use the new definitions.

	* libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro.
	* dwarf_diecu.c (dwarf_diecu): Use the new macro.
	* dwarf_getaranges (dwarf_getaranges): Use the new macro.
	* dwarf_nextcu.c (dwarf_nextcu): Use the new macro.

	* dwarf_getpubnames (get_offsets): Replace assertion with test and
	error return.

	* dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE.

	* dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer.
	Set the address in the return structure to the address of the next
	non-sibling die, if there is no sibling and the return pointer is
	not the same as the die pointer.
	* libdw.h: Expand the description of the dwarf_siblingof prototype.

	* dwarf_child.c: Fix typo in comment.

	* libdwP.h (DWARF_VERSION): Change to 3.

	* dwarf_formref.c (__libdw_formref.c): Handle attributes which do
	not have a initialised valp pointer.

	* dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when
	the end of the attributes is reached.  When the callback fails,
	return the address of the failing attribute, not the address of
	its successor.
	* libdw.h: Expand the description of the dwarf_getattrs prototype.

	* dwarf_child.c (__libdw_find_attr): Use the new definition.
	(dwarf_child): Likewise.
	* dwarf_tag.c (__libdw_findabbrev): Likewise.
	(dwarf_tag): Likewise.

2008-01-08  Roland McGrath  <roland@redhat.com>

	* Makefile.am (euinclude): Variable removed.
	(pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
	(libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir).

2007-10-17  Roland McGrath  <roland@redhat.com>

	* libdw.h (__deprecated_attribute__): New macro.
	(dwarf_formref): Mark it deprecated.
	* dwarf_formref.c (__libdw_formref): New function, broken out of ...
	(dwarf_formref): ... here.  Call it.  Remove INTDEF.
	* libdwP.h: Remove INTDECL.
	Declare __libdw_formref.
	* dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead.
	* dwarf_formref_die.c: Likewise.  Handle DW_FORM_ref_addr here.

	* libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result,
	needs to check CU->version.

	* libdwP.h (struct Dwarf_CU): New member `version'.
	* libdw_findcu.c (__libdw_findcu): Initialize it.

	* dwarf_child.c: Return 1 for null entry as first child.

2007-10-05  Roland McGrath  <roland@redhat.com>

	* dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections.

	* libdw.h (__extern_inline): Rename to __libdw_extern_inline.
	[__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses.

2007-10-03  Roland McGrath  <roland@redhat.com>

	* libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf
	and dwfl_build_id_find_debuginfo.

	* libdw.map (ELFUTILS_0.130): New version set, inherits from
	ELFUTILS_0.127.  Add dwfl_module_build_id, dwfl_module_report_build_id.

2007-10-02  Roland McGrath  <roland@redhat.com>

	* libdw_visit_scopes.c (classify_die): Return walk for class_type and
	structure_type.

2007-08-07  Roland McGrath  <roland@redhat.com>

	* dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
	error code is DWARF_E_NOERROR (0).

	* dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
	Fix typo in __libdw_visit_scopes argument.

	* dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
	swallow DWARF_E_NO_DEBUG_RANGES but not other errors.

2007-07-03  Roland McGrath  <roland@redhat.com>

	* libdw.h (__extern_inline): New macro.
	[__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.

2007-04-16  Roland McGrath  <roland@redhat.com>

	* libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.

2007-04-05  Roland McGrath  <roland@redhat.com>

	* dwarf_getsrcdirs.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_getsrcdirs.
	* libdw.map (ELFUTILS_0.127): Add it.

	* libdwP.h (struct Dwarf_Files_s): New member ndirs.
	* dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
	zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
	Save DIRARRAY in the Dwarf_Files.

	* dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
	address to check for all-ones base address entry.  Check directly.
	Reported by Sébastien Dugué <sebastien.dugue@bull.net>.

2007-03-25  Roland McGrath  <roland@redhat.com>

	* dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
	Return NULL when freeing RESULT on error.
	(global_read, scngrp_read): Check return value from check_section,
	break out of loop after it has freed RESULT.
	(valid_p): Handle null argument.

2007-03-12  Roland McGrath  <roland@redhat.com>

	* libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.

2007-03-04  Roland McGrath  <roland@redhat.com>

	* libdw.map (ELFUTILS_0.127): New version set, inherits from
	ELFUTILS_0.126.  Add dwfl_module_addrsym.

2007-02-10  Roland McGrath  <roland@redhat.com>

	* dwarf.h (DW_OP_fbreg): Comment fix.

2007-02-03  Roland McGrath  <roland@redhat.com>

	* dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
	* libdw.map (ELFUTILS_0.126): New version set, inherits from
	ELFUTILS_0.122.  Move dwarf_getelf there; it was never truly
	exported in the past.

2006-12-17  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
	address when the CU is missing attributes due to buggy GCC.

2006-08-29  Roland McGrath  <roland@redhat.com>

	* Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).

	* libdw.h (dwarf_diecu): Add __nonnull_attribute__.
	(dwarf_child): Don't list arg 1 in __nonnull_attribute__.

	* libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
	result is aligned.  Adjust NEWP->remaining here for this allocation.
	* libdwP.h: Update decl.
	(libdw_alloc): Update caller.

2006-07-12  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_child.c: Adjust for internal_function_def removal.
	* dwarf_getabbrev.c: Likewise.
	* dwarf_tag.c: Likewise.
	* libdw_form.c: Likewise.
	* memory-access.c: Likewise.

2006-06-28  Roland McGrath  <roland@redhat.com>

	* libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.

	* libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
	dwfl_module_getsym.

2006-05-27  Ulrich Drepper  <drepper@redhat.com>

	* libdw.h: Add extern "C".

2006-05-22  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getaranges.c (dwarf_getaranges): Handle files without
	aranges information.

2006-05-21  Ulrich Drepper  <drepper@redhat.com>

	* libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
	dwarf_haschildren.

2006-02-28  Roland McGrath  <roland@redhat.com>

	* dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
	DW_OP_* values, to match DWARF 3.0.  Add new DW_DS_*, DW_END_*
	values from DWARF 3.0.

2006-02-22  Roland McGrath  <roland@redhat.com>

	* libdw.map: Bump to 0.120; export dwfl_version.

2005-12-22  Roland McGrath  <roland@redhat.com>

	* libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.

2005-12-12  Roland McGrath  <roland@redhat.com>

	* dwarf_ranges.c: Copy CU base address-finding code from
	dwarf_getlocation.

2005-12-09  Roland McGrath  <roland@redhat.com>

	* dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
	Delay CU base lookup until it's needed.
	If CU base lookup fails with no error, flag invalid DWARF.

2005-11-25  Roland McGrath  <roland@redhat.com>

	* libdw.map: Bump to 0.118; export dwfl_module_register_names.

2005-11-15  Roland McGrath  <roland@redhat.com>

	* Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.

2005-11-13  Roland McGrath  <roland@redhat.com>

	* libdw.map: Bump to 0.117; export dwfl_module_return_value_location.

2005-10-27  Roland McGrath  <roland@redhat.com>

	* dwarf_entry_breakpoints.c (search_range): Fix binary search code;
	don't match end_sequence markers.

	* dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
	before normal records at the same address.
	* dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
	marker.

2005-10-26  Roland McGrath  <roland@redhat.com>

	* dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
	* dwarf_func_file.c: Renamed to ...
	* dwarf_decl_file.c: ... here.
	* dwarf_func_col.c: Renamed to ...
	* dwarf_decl_column.c: ... here.
	* dwarf_func_line.c: Renamed to ...
	* dwarf_decl_line.c: ... here.
	(dwarf_func_line): Renamed to ...
	(dwarf_decl_line): ... this.  Take a Dwarf_Die * argument.
	(__libdw_func_intval): Renamed __libdw_attr_intval.
	* dwarf_func_name.c: File removed.
	* dwarf_func_lowpc.c: File removed.
	* dwarf_func_highpc.c: File removed.
	* dwarf_func_entrypc.c: File removed.
	* dwarf_func_die.c: File removed.
	* Makefile.am (libdw_a_SOURCES): Updated.
	* libdw.h: Update decls.
	(Dwarf_Func): Type removed.
	* libdwP.h: Update decls.
	(struct Dwarf_Func_s): Type removed.
	* libdw.map: Updated.

	* libdwP.h (CUDIE): New macro.
	* dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
	* dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
	* dwarf_ranges.c (dwarf_ranges): Likewise.

	* dwarf_getloclist.c: Renamed to ...
	* dwarf_getlocation.c: ... here.
	(getloclist): Renamed to getlocation.
	(dwarf_getloclist): Renamed to dwarf_getlocation.
	(dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
	* Makefile.am (libdw_a_SOURCES): Updated.
	* libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
	(dwarf_addrloclists): Renamed dwarf_getlocation_addr.
	(Dwarf_Loc): Renamed Dwarf_Op.
	* libdwP.h (struct loc_s): Update use.
	* libdw.map: Update map.

	* dwarf_entry_breakpoints.c: Use the second line record within the
	function, regardless of its source location data.

2005-10-25  Roland McGrath  <roland@redhat.com>

	* dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.

	* libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.

2005-10-14  Roland McGrath  <roland@redhat.com>

	* dwarf_diecu.c (dwarf_diecu): New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_diecu.
	* libdw.map: Export it.

	* libdw.map: Bump to 0.116; export dwarf_ranges.

2005-09-20  Roland McGrath  <roland@redhat.com>

	* dwarf_haspc.c: Use dwarf_ranges.
	* dwarf_entry_breakpoints.c: Likewise.

	* dwarf_ranges.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_ranges.
	* libdwP.h: Add INTDECL.

2005-09-14  Roland McGrath  <roland@redhat.com>

	* dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
	prologue_end marker scanning loop.

2005-09-11  Roland McGrath  <roland@redhat.com>

	* dwarf.h: Comment typo fix.

2005-09-07  Roland McGrath  <roland@redhat.com>

	* dwarf_entry_breakpoints.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_entry_breakpoints.

	* dwarf_entrypc.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_entrypc.
	* libdwP.h: Add INTDECL.

2005-08-28  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Use $(LINK) not $(CC) when creating DSO.
	(%.os): Use COMPILE.os.
	(COMPILE.os): Filter out gconv options.

2005-08-27  Roland McGrath  <roland@redhat.com>

	* dwarf_getscopes.c (dwarf_getscopes): Rewritten using
	__libdw_visit_scopes.

	* dwarf_getscopes_die.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_getscopes_die.
	* libdw.map: Bump to 0.115 and add it.

	* libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
	containing a DIE and its parent pointer, instead of just Dwarf_Die.
	Take two functions for both preorder and postorder visitors.
	* libdwP.h: Update decl.
	(struct Dwarf_Die_Chain): New type.
	* dwarf_func_inline.c: Update uses.

	* dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
	Add INTDEF.
	* libdwP.h: Add INTDECL.
	* dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.

2005-08-23  Roland McGrath  <roland@redhat.com>

	* dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
	DW_AT_specification the same as DW_AT_abstract_origin.

2005-08-20  Roland McGrath  <roland@redhat.com>

	* libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
	Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
	and dwfl_report_offline.

2005-08-19  Roland McGrath  <roland@redhat.com>

	* libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
	Add dwfl_module_relocate_address, dwfl_module_relocations,
	dwfl_module_relocation_info.

2005-08-18  Roland McGrath  <roland@redhat.com>

	* dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
	outermost scope in the results.

2005-08-15  Roland McGrath  <roland@redhat.com>

	* dwarf_func_inline.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
	* libdw.map: Add them.

	* dwarf_func_die.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_func_die.
	* libdw.map: Add it.  Bump version to ELFUTILS_0.114.

2005-08-10  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
	of DW_LNS_set_epilog_begin.

2005-08-09  Roland McGrath  <roland@redhat.com>

	* dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.

	* dwarf_end.c: Add INTDEF.
	* dwarf_error.c (dwarf_errmsg): Likewise.
	* libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.

2005-08-01  Roland McGrath  <roland@redhat.com>

	* dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
	* dwarf_getabbrev.c (__libdw_getabbrev): Likewise.

2005-07-28  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am (libdw.so): No need to link with libeu.a anymore.
	(libdw_a_LIBADD): Add all files from libdwfl.a.

2005-07-27  Roland McGrath  <roland@redhat.com>

	* Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
	along with ../libebl/libebl.a and ../lib/libeu.a;
	depend on ../libelf/libelf.so.
	(libdw_so_LDADD): New variable.
	* libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.

	* libdw.map: Define an empty base version and move all symbols to
	version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.

2005-07-23  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_error.c: Add internal alias for dwarf_errno.
	* libdwP.h: Declare __dwarf_errno_internal.
	* dwarf_getloclist.c: Use INTDEF for dwarf_errno.

	* dwarf_error.c [USE_TLS]: Actually use __thread in definition of
	global_error.

2005-06-01  Roland McGrath  <roland@redhat.com>

	* dwarf_getaranges.c (dwarf_getaranges): Sort result array.
	* dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.

2005-06-08  Roland McGrath  <roland@redhat.com>

	* memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
	(get_sleb128_step, get_sleb128): Likewise.
	* dwarf_getattrs.c (dwarf_getattrs): Add consts.
	* dwarf_getloclist.c (getloclist): Likewise.
	* dwarf_formblock.c (dwarf_formblock): Likewise.
	* dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
	* dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
	* dwarf_formref.c (dwarf_formref): Likewise.
	* dwarf_formsdata.c (dwarf_formsdata): Likewise.
	* dwarf_formudata.c (dwarf_formudata): Likewise.
	* dwarf_haschildren.c (dwarf_haschildren): Likewise.
	* dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
	* dwarf_tag.c (dwarf_tag): Likewise.
	* dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
	* memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
	* libdw_form.c (__libdw_form_val_len): Likewise.
	* libdwP.h: Update decl.

2005-06-04  Roland McGrath  <roland@redhat.com>

	* memory-access.h (get_uleb128_rest_return): New macro.
	[! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
	(get_sleb128_rest_return): New macro.
	[! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
	* memory-access.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	(DEFS): Add -DIS_LIBDW.

2005-05-31  Roland McGrath  <roland@redhat.com>

	* dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
	formref offset.

2005-05-30  Roland McGrath  <roland@redhat.com>

	* dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
	address if DW_AT_low_pc is missing.  Not to spec, but GCC generates it.

	* dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
	BEGIN value.  Instead, match base address entries separately for
	32/64 size cases.

2005-05-28  Roland McGrath  <roland@redhat.com>

	* dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
	past location expression contents.

2005-05-23  Roland McGrath  <roland@redhat.com>

	* dwarf_getsrclines.c: Comment typo fix.

	* dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
	* dwarf_getloclist.c (dwarf_addrloclists): Likewise.

2005-05-22  Ulrich Drepper  <drepper@redhat.com>

	* libdwP.h: Only use INTDECL for alias prototypes.

2005-05-19  Roland McGrath  <roland@redhat.com>

	* dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.

	* dwarf_getscopevar.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_getscopevar.

	* dwarf_getsrcfiles.c: Add INTDEF.
	* dwarf_haschildren.c: Likewise.
	* libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.

	* dwarf_getscopes.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h: Declare dwarf_getscopes.
	* libdw.map: Add it.

2005-05-18  Roland McGrath  <roland@redhat.com>

	* libdwP.h (IDX_debug_ranges): New enum constant.
	* dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
	* libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
	* dwarf_error.c (errmsgs): Add it.
	* dwarf_haspc.c: New file.
	* libdw.h: Declare dwarf_haspc.
	* libdw.map: Add it.
	* libdwP.h: Add INTDECL.

	* dwarf_attr_integrate.c: New file.
	* dwarf_hasattr_integrate.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add them.
	* libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
	* libdw.map: Add them.

	* dwarf_hasattr.c: Add INTDEF.
	* libdwP.h: Add INTDECL for it.

	* dwarf_formref_die.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add it.
	* libdw.h (dwarf_formref_die): Declare it.
	* libdwP.h (dwarf_formref_die): Add INTDECL.
	* libdw.map: Add it.

	* dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
	of ...
	(dwarf_getloclist): ... here.  Call them.
	(dwarf_addrloclists): New function.
	* libdw.h: Declare it.
	* libdw.map: Add it.

	* dwarf_getmacros.c (dwarf_getmacros): Don't bail at
	DW_MACINFO_end_file.  Recognize type 0 as terminator.

2005-05-05  Roland McGrath  <roland@redhat.com>

	* dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.

	* dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
	the line program does not produce all entries in ascending order.

2005-04-25  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
	occurences (e.g., inlines) better.

2005-04-24  Ulrich Drepper  <drepper@redhat.com>

	* libdw.h (DWARF_END_ABBREV): Define.
	* dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
	end is reached.
	* dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
	of records reached.
	* dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
	as error of __libdw_getabbrev.

2005-04-04  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.

	* dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
	results back to caller.

2005-04-04  Roland McGrath  <roland@redhat.com>

	* dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.

	* dwarf_func_line.c (__libdw_func_intval): Use internal_function in
	defn.

2005-04-04  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.

	* dwarf_getsrc_file.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
	* libdw.h: Declare dwarf_getsrc_file.
	* libdw.map: Add dwarf_getsrc_file.

2005-04-02  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_func_entrypc.c: New file.
	* dwarf_func_col.c: New file.
	* dwarf_func_line.c: New file.
	* dwarf_func_file.c: New file.
	* libdw.h: Add prototypes for new functions.
	* libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
	dwarf_func_file.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
	dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
	* libdwP.h (struct Dwarf_Func_s): Add cudie element.
	Declare __libdw_func_intval and __dwarf_formsdata_internal.
	* dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
	* dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.

	* dwarf.h: Add some DWARF3 definitions.

2005-04-01  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getfuncs.c: New file.
	* dwarf_func_highpc.c: New file.
	* dwarf_func_lowpc.c: New file.
	* dwarf_func_name.c: New file.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
	dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
	* libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
	and dwarf_func_name.
	* libdw.h: Add prototypes for new functions.
	* dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
	* dwarf_siblingof.c: Likewise.
	* dwarf_dieoffset.c: Likewise.
	* dwarf_highpc.c: Likewise.
	* dwarf_lowpc.c: Likewise.
	* libdwP.h: Add prototypes for internal functions.
	Define Dwarf_Func_s structure.

2005-03-29  Ulrich Drepper  <drepper@redhat.com>

	* libdw.h: Add padding in Dwarf_die.

	* dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
	* dwarf_attr.c: Likewise.
	* dwarf_begin.c: Likewise.
	* dwarf_begin_elf.c: Likewise.
	* dwarf_bitoffset.c: Likewise.
	* dwarf_bitsize.c: Likewise.
	* dwarf_bytesize.c: Likewise.
	* dwarf_diename.c: Likewise.
	* dwarf_formaddr.c: Likewise.
	* dwarf_formblock.c: Likewise.
	* dwarf_formref.c: Likewise.
	* dwarf_formstring.c: Likewise.
	* dwarf_formudata.c: Likewise.
	* dwarf_getarange_addr.c: Likewise.
	* dwarf_getarangeinfo.c: Likewise.
	* dwarf_getaranges.c: Likewise.
	* dwarf_getloclist.c: Likewise.
	* dwarf_getmacros.c: Likewise.
	* dwarf_getsrc_die.c: Likewise.
	* dwarf_getsrcfiles.c: Likewise.
	* dwarf_getsrclines.c: Likewise.
	* dwarf_highpc.c: Likewise.
	* dwarf_lowpc.c: Likewise.
	* dwarf_nextcu.c: Likewise.
	* dwarf_offdie.c: Likewise.
	* dwarf_siblingof.c: Likewise.
	* dwarf_srclang.c: Likewise.
	* dwarf_tag.c: Likewise.
	* libdw_findcu.c: Likewise.
	* libdwP.h: Add prototypes for internal functions.

	* dwarf_addrdie.c: New file.
	* dwarf_macro_opcode.c: New file.
	* dwarf_macro_param1.c: New file.
	* dwarf_macro_param2.c: New file.
	* libdw.h: Add declarations.  Move Dwarf_Macro definition to libdwP.h.
	* libdwP.h: Remove Dwarf_Macro definition.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
	dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
	* libdw.map: Add entries for new functions.

2005-03-21  Ulrich Drepper  <drepper@redhat.com>

	* libdw.h: Handle broken gcc < 4.

2005-02-15  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.

	* dwarf_begin_elf.c: Fix warnings.
	* dwarf_dieoffset.c: Likewise.
	* dwarf_end.c: Likewise.
	* dwarf_error.c: Likewise.
	* dwarf_getpubnames.c: Likewise.

	* libdwP.h: Add new error values.
	* dwarf_error.c: Support new error values.
	* dwarf_getpubnames.c: Check parameter value.

2005-02-05  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Check for text relocations in constructed DSO.

	* Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.

2005-02-04  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
	checks to not read over buffer boundaries for ill-formed DWARF data.

2004-09-25  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_child.c: Make compile with gcc 4.0.
	* dwarf_error.c: Likewise.
	* dwarf_formblock.c: Likewise.
	* dwarf_getabbrev.c: Likewise.
	* dwarf_getattrs.c: Likewise.
	* dwarf_getsrclines.c: Likewise.
	* dwarf_tag.c: Likewise.
	* libdw_form.c: Likewise.

2004-01-20  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Support building with mudflap.

	* dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
	* dwarf_getsrclines.c: Likewise.
	* dwarf_memory-access.h: Likewise.

2004-01-19  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getsrcfiles.c: Third parameter can be NULL.

	* libdw.h: Define Dwarf_macro.  Declare dwarf_getmacros.
	Third parameter of dwarf_getsrcfiles can be NULL.

	* libdw.map: Add dwarf_getmacros.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
	* dwarf_getmacros.c: New file.

2004-01-18  Ulrich Drepper  <drepper@redhat.com>

	* libdw.h: Second parameter of dwarf_getaranges can be NULL.

	* dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.

	* dwarf_getsrclines.c:
	Use read_2ubyte_unaligned_inc instead of _inc-less variant.

	* dwarf_getaranges.c: Allow naranges parameter to be NULL.

	* libdwP.h (_): Use elfutils domain.

	* dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.

	* dwarf_getsrclines.c: Fix typo in comment.

2004-01-17  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Support building with mudflap.

2004-01-16  Ulrich Drepper  <drepper@redhat.com>

	* memory-access.h: Add lots of const in case a pointer passed is const.

	* dwarf_formflag.c: New file.
	* dwarf_getattrs.c: New file.
	* dwarf_error.c: Add new error value.
	* libdw.h: Add prototypes for new functions.  Adjust prototype for
	dwarf_getpubnames.
	* libdw.map: Add new functions.
	* dwarf_getpubnames.c: Change type of return value and fourth parameter
	to ptrdiff_t.
	* libdwP.h: Add new error value.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
	dwarf_formflag.c.

	* dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.

2004-01-12  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getarange_addr.c: New file
	* dwarf_getarangeinfo.c: New file.
	* dwarf_getaranges.c: New file.
	* dwarf_onerange.c: New file.
	* libdw.h: Declare new functions.  Define Dwarf_Arange and
	Dwarf_Aranges.
	* libdw.map: Add new functions.
	* libdwP.h: Add new errors.  Add aranges member to struct Dwarf.
	Define Dwarf_Aranges_s and Dwarf_Arange_s.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
	dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
	* dwarf_error.c: Add new message.

2004-01-11  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
	dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
	dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
	* dwarf_error.c: Add another message.
	* dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
	introduction.
	* dwarf_filesrc.c: Likewise.
	* dwarf_getsrcfiles.c: Likewise.
	* dwarf_getsrclines.c: Likewise.
	* dwarf_lineaddr.c: New file.
	* dwarf_linebeginstatement.c: New file.
	* dwarf_lineblock.c: New file.
	* dwarf_linecol.c: New file.
	* dwarf_lineendsequence.c: New file.
	* dwarf_lineepiloguebegin.c: New file.
	* dwarf_lineno.c: New file.
	* dwarf_lineprologueend.c: New file.
	* dwarf_onesrcline.c: New file.
	* dwarf_lineno.c: Change interface to store result in object pointed
	to by second parameter.
	* libdw.h: Add prototypes for new functions.  Change dwarf_lineno
	prototype.  Define Dwarf_Files and Dwarf_Lines.
	* libdw.map: Add new functions.
	* libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
	* libdw_findcu.c: Don't initialize nlines field.

	* dwarf_siblingof: Little optimization.

	* dwarf_begin.c: Remember that the ELF descriptor must be closed.
	* dwarf_end.c: Close ELF descriptor if free_elf is set.
	* libdwP.h (struct Dwarf): Add free_elf field.

	* Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
	dwarf_offabbrev.c.
	* dwarf_getstring.c: New file.
	* dwarf_offabbrev.c: New file.
	* libdw.map: Add dwarf_getstring and dwarf_offabbrev.
	* dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
	parameters.  Don't allocate memory if not necessary and don't lookup
	previous results if no CU given.
	(dwarf_getabbrev): Adjust call to __libdw_getabbrev.
	* dwarf_tag.c: Adjust call to __libdw_getabbrev.
	* libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
	* libdwP.h: Change prototype for __libdw_getabbrev.

	* dwarf_getabbrevattr.c: Add offsetp parameter.  Fill in before
	returning if this is wanted.

2004-01-09  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_nextcu.c: Add new parameter offset_sizep.  Initialize it
	with offset_size value.
	* libdw.h: Adjust dwarf_nextcu prototype.
	* libdwP.h (struct Dwarf_CU): Add offset_size member.
	* libdw_findcu.c: Adjust dwarf_nextcu call.  Initialize offset_size
	member of new CU struct.
	* dwarf_formstring.c: Depend on offset_size not address_size for
	DW_FORM_strp handling.
	* dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.

	* dwarf_tag.c (__libdw_findabbrev): Return correct value for
	failing lookup.
	(dwarf_tag): Correctly recognize failed lookup.

	* dwarf_end.c (cu_free):  Call tdestroy for locs member.  Use new
	function noop_free.
	* dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
	* dwarf_formblock.c: New file.
	* dwarf_getloclist.c: Rewrite to handle a single block.
	* libdw.h: Define Dwarf_Block.  Rename Dwarf_Loc members.  Remove
	Dwarf_Locdesc definition.  Declare dwarf_formblock.  Remove
	dwarf_getloclistent declaration.
	* libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
	* libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
	Add locs member to struct Dwarf_CU.
	* libdw_fundcu.c: Initialize locs member of new CU.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
	Remove dwarf_getloclistent.c.

2004-01-07  Ulrich Drepper  <drepper@redhat.com>

	* libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
	* libdwP.h: Likewise.

	* dwarf_getloclist.c: New file.
	* dwarf_getloclistent.c: New file.
	* libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
	Declare dwarf_getloclistent and dwarf_getloclist.
	* libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
	* libdwP.h: Define DWARF_E_NO_LOCLIST.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
	dwarf_getloclist.c.

	* dwarf_error.c: More error messages.

2004-01-06  Ulrich Drepper  <drepper@redhat.com>

	* dwarf_getsrclines.c: Remove debugging support.

	* dwarf_getsrcfiles.c: New file.
	* dwarf_filesrc.c: New file.
	* libdw.h: Declare these functions.  Define Dwarf_File.
	* libdwP.c: Adjust Dwarf_File_s definition.
	* libdw.map: Add these functions.
	* Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
	dwarf_filesrc.c.
	* dwarf_getsrclines.c: Initialize cu->files.

2004-01-05  Ulrich Drepper  <drepper@redhat.com>

	* libdw.h: Add more nonnull function attributes.

	* dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
	* dwarf_end.c (cu_free): New function.
	(dwarf_end): Also free CU tree.  Correct freeing of memory blocks.
	* dwarf_error.c (errmsgs): Add new messages.
	* dwarf_getsrc_die.c: New file.
	* dwarf_getsrclines.c: New file.
	* dwarf_lineno.c: New file.
	* dwarf_linesrc.c: New file.
	* dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
	instead of the *_inc-less variants.
	* libdw.h: Define Dwarf_Line.  Add some function attributes.  Declare
	dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
	* libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
	and dwarf_linesrc.
	* libdwP.h: Add more error codes.
	(struct Dwarf): Remove mem_tail.next member.
	(Dwarf_File): Define type.
	(struct Dwarf_Line_s): Define type.
	(struct Dwarf_CU): Add lines and nlines members.
	(libdw_alloc): Define local variable _tail and use it.
	Add some function attributes.
	* libdw_alloc.c (__libdw_allocate): Don't initialize next member.
	* libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
	* memory-access.h: Add unlikely for the endian conversion paths.
	* Makefile.am (AM_CFLAGS): Add -std parameter.
	(libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
	dwarf_lineno, and dwarf_linesrc.

2003-08-11  Ulrich Drepper  <drepper@redhat.com>

	* Moved to CVS archive.
