2007-07-03 David Anderson <davea42@earthlink.net>
      * libdwarf.h: Add declaration of dwarf_loclist_from_expr();
      * dwarf_loc.c: Implement dwarf_loclist_from_expr() and add 
        sign-extension macro calls to case DW_OP_const4s numbers.
        Removed unused local variables.
      * dwarf_form.c: Removed unused local variables.
      * libdwarf2.1.mm: Document dwarf_loclist_from_expr().
      * libdwarf2.1.pdf: Regenerated.
2007-07-01 David Anderson <davea42@earthlink.net>
      * dwarf_frame2.c: Add commentary.
      * dwarf_frame.c: Add in block_len for DW_CFA_val_expression
        so libdwarf does not get confused by this frame expression
        operator.  Thanks to Cristian Vlasceanu for providing
        a test case.
2007-06-29 David Anderson <davea42@earthlink.net>
      * README: added a note that a few warnings about conversions
        from pointer to integer are normal at libdwarf compile time.
2007-05-25 David Anderson <davea42@earthlink.net>
      * dwarf_frame2.c (_dwarf_get_fde_list_internal): 
        Correct cie-list-creation so it adds to the tail of the list.  
        gcc 4.1.2 generates cie-use in an order the code did
        not properly handle.
2007-05-08 David Anderson <davea42@earthlink.net>
      * Makefile.in:  Now generates pdf files.
      * mips_extensions.mm: The only changes were to eliminate
        unsupported macro (.PM) and to try to get correct output
        from groff.  No technical content change intended.
        The pdf/postscript output remains a little odd though.
      * libdwarf2.1.mm: Remove troff comment line.
2007-04-18 Chris Quenelle <chris.quenelle@sun.com>
      * dwarf_addr_finder.c: repaired comment
      * dwarf_form.c: add support for DW_AT_SUN_func_offsets
      * pro_alloc.c: add memory block tracking to find and fix
	lingering allocations.  This is more important for very large
	and intensive compiles.
      * pro_die.c: Implement "markers" which are a generic way to
	do things like relocations.  You can set a marker on any
	die, and when dwarf is produced in binary form, you get back
	a list of your markers with the offset of each one in the binary
	output.  This is used by the Sun compilers to implement die
	references that span compile unit blocks.  (I may remove this,
	it might be unused code related to partial_units and comdat
	support)
      * pro_die.c: Also check for loops in the die relationships so
	that if you add a child twice, or other errors, you won't get
	an infinite loop or a crash.  Also start passing a DBG structure
	to all allocation calls to help with memory block tracking.
      * pro_expr.c: Add a public function to "reset" an expr.  This
	allows the same expr object to be reused over and over to save
	memory if you're creating many many expressions for a location list.
      * pro_finish.c: Free any left over blocks when the user calls
	dwarf_producer_finish.
      * pro_forms.c: More support for compressed integer blocks. Modify
	error diagnostics so that user-defined attributes can be any type.
	Add support for dwarf_add_AT_ref_address which is just like
	dwarf_add_AT_address, only it produces a DW_FORM_ref_addr instead
	of DW_FORM_addr.  This is needed for cross-CU die pointers.
      * pro_incl.h: add macros to control the spelling of relocation types.
      * pro_init.c: use new macros to control reloc types
      * pro_line.h: correct minimum instruction length on x86
      * pro_opaque.h: add support for markers (see above) and also ability
	have libdwarf tell the caller where the string constants are so
	that they can be recorded as strings in case the binary output of libdwarf
	needs to be converted back into assembly.  That's what
	Dwarf_P_Per_Sect_String_Attrs is about.
        Remove de_mem_list as it is never used.
      * pro_reloc_stream.c: repair prototype and comment for
	_dwarf_pro_reloc_name_stream64, and use relocation type macros.
      * pro_section.c: support for markers (see above) and for tracking
	inline string attributes.  Add code to sort the attributes so that
	abbreviation table entries will be reduced.  Change treatment of
	DW_FORM_ref_addr to be more correct.  Some support for packing
	in the middle of sections, this will probably be removed.
	Also pass DBg structure to more allocations.
      * pro_util.h: relocation type values can't be zero.
2007-04-10 David Anderson <davea42@earthlink.net
      * dwarf_print_lines.c pro_section.c dwarf_query.c
        dwarf_alloc.c dwarf_arange.c dwarf_sort_line.c
        dwarf_global.c dwarf_line.c dwarf_abbrev.c
        dwarf_frame2.c dwarf_util.c dwarf_loc.c dwarf_util.h 
        dwarf_die_deliv.c dwarf_frame.c dwarf_macro.c: Additions
        to source for year 2007 now fit in with pre-existing 
        copyright wording.  Effectively no change.
      * dwarf_srclines_dealloc.c: Now has the (always-intended) SGI
        LGPL copyright wording.
2007-04-09 David Anderson <davea42@earthlink.net
      * dwarf_error.h: Add DW_DLE_LINK_LOOP error code (Sun).
      * libdwarf.h: Add DW_DLE_LINK_LOOP error code (Sun).
      * dwarf.h: Incorporate Sun extensions. Thanks to
        Chris Quenelle at Sun Microsystems.
2007-04-06 David Anderson <davea42@earthlink.net
      * dwarf_sort_line.c (_dwarf_update_line_sec): initialize
        Dwarf_Debug_s struct. Thanks to Chris Quenelle of Sun Microsystems.
        Also initialize other local variables.
2007-04-02 David Anderson <davea42@earthlink.net
      * dwarf_form.c (dwarf_formsdata, dwarf_formudata): Use
        Dwarf_sfixed in dwarf_formsdata, document need for casts,
        Use Dwarf_Signed as type for READ_UNALIGNED macro use.
        The only real correction here is for a 64bit long compiled 
        libdwarf reading 32bit dwarf_formsdata FORM_data4.
      * dwarf_base_types.h: Now Dwarf_sfixed64 and Dwarf_ufixed64
        are properly declared (so they are usable).
2007-03-11 David Anderson <davea42@earthlink.net
      * Makefile.in: use groff to produce postscript.
      * libdwarf2.1.mm libdwarf2.1.ps  libdwarf2p.1.mm
        libdwarf2p.1.ps: Clean up the introduction and history.
        Add a non-restrictive copyright notice.
2007-02-23 David Anderson <davea42@earthlink.net
      * dwarf_util.h: now the macros use do{} while(0)
      * pro_forms.c dwarf_print_lines.c pro_section.c dwarf_query.c 
        dwarf_arange.c dwarf_sort_line.c dwarf_global.c dwarf_line.c
        dwarf_abbrev.c dwarf_frame2.c dwarf_util.c dwarf_loc.c
        dwarf_die_deliv.c dwarf_frame.c: Now have ;
        after all dwarf_util.h macros. Also added local variable
        initializations (compiler noticed).
      * dwarf_macro.c: was missing include of <stdlib.h> for free() 
        declaration. 
      * dwarf_print_lines.c pro_section.c dwarf_query.c dwarf_alloc.c
        dwarf_arange.c dwarf_sort_line.c dwarf_global.c dwarf_line.c
        dwarf_abbrev.c dwarf_srclines_dealloc.c dwarf_frame2.c
        dwarf_util.c dwarf_loc.c dwarf_die_deliv.c dwarf_frame.c
        dwarf_macro.c: indent run with standard libdwarf options.

2007-02-20 David Anderson <davea42@earthlink.net
      * dwarf_macro.c  (dwarf_get_macro_details): Now call
        dwarf_free_macro_stack() at every return so no data
        is leaked and there is no longer any global data
        (restoring thread safety).
2007-02-09 David Anderson <davea42@earthlink.net
      * dwarf_line.c (dwarf_srclines): Added in calls
        to dwarf_free_line_table_prefix() which were omitted
        by accident.  Thanks to  Cristian Vlasceanu for noticing.
