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

	* ptest.c: Moved to ../tests/dwflmodtest.c.

	* 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.
