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.
