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.
