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.
