tools/elf4rom/libs/dwarf-20071209/libdwarf/ChangeLog2006
changeset 34 92d87f2e53c2
equal deleted inserted replaced
33:1af5c1be89f8 34:92d87f2e53c2
       
     1 2006-12-05 David Anderson <davea@sgi.com>
       
     2       * dwarf_error.c, libdwarf.h: added 
       
     3         DW_DLE_FRAME_REGISTER_COUNT_MISMATCH.
       
     4       * dwarf_frame.c (_dwarf_exec_frame_instr): removed references
       
     5         to compile-time constants for register table size.  Now uses
       
     6         run-time-chosen sizes.  Now uses heap for reg table instead
       
     7         of stack. Now uses SIMPLE_ERROR_RETURN macro to simplify
       
     8         the code.
       
     9 2006-11-08 David Anderson <davea@sgi.com>
       
    10       * pro_expr.c (dwarf_add_expr_gen): DW_OP_deref_size,
       
    11         DW_OP_xderef_size, and  DW_OP_pick were incorrect, missing
       
    12         & operator. Would coredump.  Thanks to Alan Chambers for mentioning
       
    13         the coredump.
       
    14 2006-09-26 David Anderson <davea@sgi.com>
       
    15       * dwarf_die_deliv.c (dwarf_offdie): Now returns the
       
    16         correct die (worked before, almost always, but worked by accident).
       
    17         Thanks to Mattias Lindblad for supplying a test case.
       
    18 2006-09-01 David Anderson <davea@sgi.com>
       
    19       * libdwarf2.1.mm (dwarf_loclist_n): Minor refinement
       
    20         of the description.
       
    21       * libdwarf2.1.ps: regenerated
       
    22 2006-08-31 David Anderson <davea@sgi.com>
       
    23       * libdwarf2.1.mm (dwarf_loclist_n): A location expression
       
    24         sets ld_lopc to 0, ld_hipc to all-bits-on, and this
       
    25         is now documented.
       
    26       * libdwarf2.1.ps: regenerated
       
    27 2006-06-14 David Anderson <davea@sgi.com>
       
    28       * dwarf_opaque.h dwarf_frame.h dwarf_frame.c
       
    29         dwarf_init_finish.c dwarf_frame2.c: Corrected handling
       
    30         of eh_frame zP encoding.  
       
    31         Thanks to Cristi Vlasceanu for noticing it was broken.
       
    32       * Makefile.in: remove libdwarf.so in 'clean' rule.
       
    33         Thanks to Cristi Vlasceanu for noticing it was missing.
       
    34 2006-04-28 David Anderson <davea@sgi.com>
       
    35       * dwarf_frame.c: Changed local variable type to
       
    36         avoid compiler warning. 
       
    37 2006-04-21 David Anderson <davea@sgi.com>
       
    38       * dwarf_frame.c: Initialized local to 0, wrong value.
       
    39          Thanks to Cristi Vlasceanu for noticing.
       
    40 2006-04-18 David Anderson <davea@sgi.com>
       
    41       * All *.c: Ran indent so all c files follow a standard look.
       
    42 2006-04-16 David Anderson <davea@sgi.com>
       
    43       * dwarf.h: Remove #if 0 around some #defines, it is ok to 
       
    44         leave the defines visible (the defines are HP extensions).
       
    45       * libdwarf.h: Add new dwarf3 interface to frames.
       
    46         (which actually is also a better interface to dwarf2 info,
       
    47         not strictly for dwarf3).
       
    48       * dwarf_alloc.c: Add 'constructor/destructor' pointers 
       
    49         to the initialization table so we can handle a more 
       
    50         flexible (dwarf3) frame interface.Call the functions 
       
    51         at the appropriate times.
       
    52       * dwarf_frame.c: Using macro FDE_NULL_CHECKS_AND_SET_DBG 
       
    53         reduce duplicate coding.Internal code now handles dwarf2 
       
    54         and dwarf3 and interfaces to exported interfaces appropriately.
       
    55       * dwarf_frame.h: Alter internal struct to handle frames more flexibly.
       
    56       * dwarf_frame2.c: Remove unused local variable.
       
    57       * dwarf_init_finish.c: Add initialization of new Dwarf_Debug 
       
    58         struct entries allowing handling
       
    59         of run-time-config of frame info.
       
    60       * dwarf_loc.c: Add DWARF3 operators, such as DW_OP_call4.
       
    61       * dwarf_opaque.h: Declaration of new Dwarf_Debug struct 
       
    62         entries allowing handling of run-time-config of frame info.
       
    63       * pro_expr.c: Add entries allowing creation of DWARF3 DW_OP 
       
    64         such as call2. 
       
    65       * pro_section.c: Change crucial code handling section lengths, 
       
    66         using a macro BEGIN_LEN_SIZE to clarify and correct a few places.
       
    67 2006-03-31 David Anderson <davea@sgi.com>
       
    68       * libdwarf.h: Added dwarf_get_fde_info_for_cfa_reg3() prototype
       
    69         preparing for dwarf3 frame interface.
       
    70       * dwarf_frame.c: Now uses separate rule, not DW_FRAME_CFA_COL, 
       
    71         to record CFA.
       
    72       * dwarf_frame.h: Add commentary on frame access.
       
    73 2006-03-30 David Anderson <davea@sgi.com>
       
    74       * Makefile.in configure.in: Adding --enable-shared --enable-nonshared
       
    75         --disable-shared  and --disable-nonshared.
       
    76       * configure: regenerated with 2.59 autoconf.
       
    77       * README: Added explanation on changing dwarf.h libdwarf.h.
       
    78 2006-03-29 David Anderson <davea@sgi.com>
       
    79       * dwarf_print_lines.c dwarf_sort_line.c: Clean up initialization
       
    80         code for line table reading. When returning rules table
       
    81         data to caller ensure fully filled out yet no overrun
       
    82         (handling case where rules table sizes not defined identically
       
    83         by caller and library).
       
    84       * dwarf.h: New commentary on ABI/register-number issues.
       
    85       * libdwarf.h: New commentary on ABI/register-number issues.
       
    86 2006-03-26 David Anderson <davea@sgi.com>
       
    87       * dwarf_line.c: file_entry_count local was not initialized.
       
    88         Initialized some locals at declaration.
       
    89         Thanks to Mikael Vidstedt for noticing.
       
    90 2006-03-23 David Anderson <davea@sgi.com>
       
    91       * dwarf_error.c: added error strings for codes 200,201
       
    92       * dwarf_line.c dwarf_line.h dwarf_print_lines.c dwarf_sort_line.c: Moved
       
    93         line prefix reading to a common routine, filling in a new internal
       
    94         struct to make it simple.  Removed much duplicate code.
       
    95         Added more support for dwarf3 line table standard opcodes.
       
    96         Now prints details (with -v -v) of standard opcodes it
       
    97         does not understand (if any present).
       
    98 2006-03-13 David Anderson <davea@sgi.com>
       
    99       * dwarf.h: add ALTIUM #defines (extensions to dwarf)
       
   100       * libdwarf.h: Alter arguments to new
       
   101         functions dwarf_get_fde_augmentation_data() and
       
   102         dwarf_get_cie_augmentation_data() used by GNU eh_frame.
       
   103       * dwarf_frame.h: Add new fields so we can handle GNU eh_frame.
       
   104       * dwarf_frame.c: Remove erroneous load_sections calls (wrong for eh_frame
       
   105         data) and correct the new dwarf_get_fde_augmentation_data() and
       
   106         dwarf_get_cie_augmentation_data() implementation.
       
   107       * dwarf_frame2.c: Implement support for GNU eh_frame.
       
   108       * dwarf_line.h: Correct handling of DWARF3 opcode base check.
       
   109       * dwarf_line.c: Add new macro use to get DWARF3 opcode base handling correct.
       
   110       * dwarf_print_lines.c: Add new macro use to get DWARF3 opcode base handling correct.
       
   111       * dwarf_sort_lines.c: Add new macro use to get DWARF3 opcode base handling correct.
       
   112 2006-03-08 David Anderson <davea@sgi.com>
       
   113       * dwarf_frame2.c: ensure local variables  initialized
       
   114         to avoid coredump.
       
   115 2006-03-08 David Anderson <davea@sgi.com>
       
   116       * dwarf_die_deliv.c: Remove Richard Stukey's -1 and
       
   117         replace with a simpler more complete fix.
       
   118 2006-03-07 David Anderson <davea@sgi.com>
       
   119       * Makefile.in: Add dwarf_line2.c dwarf_frame3.c to files to build.
       
   120       * dwarf_addr_finder.c: Add comments about file purpose.
       
   121       * dwarf_frame.c: Move IRIX specific function out of this file.
       
   122       * dwarf_frame3.c: Move IRIX specific function to this new file.
       
   123       * dwarf_frame.h: Add interface declaration.
       
   124       * dwarf_line.c: Move IRIX specific function out of this file.
       
   125       * dwarf_line2.c: Move IRIX specific function to this new file.
       
   126       * dwarf_line.h: Add interface declaration.
       
   127       * dwarf_frame2.c: Altered comments so indent handles them better,
       
   128         ran indent.
       
   129 
       
   130 2006-03-07 David Anderson <davea@sgi.com>
       
   131       * dwarf_die_deliv.c (dwarf_siblingof): -1 to point to end of cu,
       
   132         not one-past-end.  With thanks to Richard Stuckey.
       
   133       * libdwarf2.1.mm: document existing function dwarf_get_fde_exception_info()
       
   134       * dwarf_frame.h: Add new internal interfaces.
       
   135       * dwarf_frame.c: Remove cie/fde reader to dwarf_frame2.c.
       
   136       * dwarf_frame2.c: Contains heavily refactored cie/fde reader,
       
   137         preparing for eh_frame support and avoids some searching
       
   138         in fde creation.  Removes duplicated code into new 
       
   139         internal functions.
       
   140       * Makefile.in: Adding comment about flag for malloc_checking
       
   141         code. Add dwarf_frame2.c to source list.
       
   142       * libdwarf.h: added declarations for eh_frame information, though
       
   143         these are not yet supported.
       
   144       * dwarf.h: Added defines for eh_frame information, though these
       
   145         are not yet used.
       
   146 2006-02-23 David Anderson <davea@sgi.com>
       
   147       * dwarf_line.h dwarf_line.c: added dwarf_line_srcfileno()
       
   148         to complement dwarf_lineno.
       
   149       * libdwarf2.1.mm: document dwarf_line_srcfileno().
       
   150 
       
   151 2005-11-25 David Anderson <davea@sgi.com>
       
   152       * dwarf.h: Now matches 2005 DWARF3 public review document.
       
   153 
       
   154 2005-11-08 David Anderson <davea@sgi.com>
       
   155       * dwarf_alloc.c, dwarf_init_finish.c, dwarf_sort_line.c, malloc_check.c:
       
   156         remove malloc.h include, it is not needed, stdlib.h suffices.
       
   157 
       
   158 2005-10-24 David Anderson <davea@sgi.com>
       
   159       * dwarf.h: Updated to match DWARF3 public review document.
       
   160     
       
   161 2005-10-03 David Anderson <davea@sgi.com>
       
   162       * dwarf_alloc.c: Change some entries to BASE_ALLOC.
       
   163       * dwarf_global.h: Add argument to interface so we do not
       
   164         universally use DW_DLA_GLOBAL, but cater to compatibility.
       
   165       * dwarf_funcs.c, dwarf_global.c, dwarf_weaks.c,
       
   166         dwarf_funcs.c, dwarf_types.c: Restored use of DW_DLA_*
       
   167         instead of universally using DW_DLA_GLOBAL.
       
   168       * dwarf_pubtypes.c: added comments about DW_DLA_GLOBAL use.
       
   169 2005-08-01 David Anderson <davea@sgi.com>
       
   170       * malloc_check.c: Moved the #ifdef WANT_LIBBDWARF_MALLOC_CHECK
       
   171         down after #includes so the test is meaningful.
       
   172 2005-07-15 David Anderson <davea@sgi.com>
       
   173       * libdwarf.h: New DW_DLA codes and full .debug_types support added.
       
   174         new dealloc functions declared.
       
   175       * Makefile.in: Add dwarf_pubtypes.o (.debug_pubtypes support).
       
   176       * dwarf_abbrev.c: Add dealloc() calls where needed.
       
   177       * dwarf_alloc.c: Add dwarf_malloc_check calls, rename and
       
   178         update _DW_RESERVE to DW_RESERVE, make hash table declaration
       
   179         in array more readable. Add optional final dealloc loop.
       
   180       * dwarf_alloc.h: Increase the index array to add .debug_pubtypes
       
   181         support.
       
   182       * dwarf_base_types.h: Increase the index array to add .debug_pubtypes
       
   183         support.
       
   184       * dwarf_die_deliv.c: Add dealloc calls to get full dealloc.
       
   185       * dwarf_error.c: Document new error codes for .debug_pubtypes.
       
   186       * dwarf_init_finish.c: Add .debug_pubtypes support, add
       
   187         dwarf_malloc_check_complete() call for alloc checking.
       
   188       * dwarf_form.c: Document dwarf_formstring() use.
       
   189       * dwarf_frame.c: Add dwarf_fde_cie_list_dealloc() for
       
   190         complete dealloc.
       
   191       * dwarf_global.h: Add _dwarf_internal_globals_dealloc
       
   192         declaration for libdwarf-internal use.
       
   193       * dwarf_global.c dwarf_funcs.c dwarf_types.c dwarf_vars.c
       
   194         dwarf_weaks.c:  Add new dealloc public routines for
       
   195         complete dealloc and add .debug_pubtypes support.
       
   196       * dwarf_pubtypes.c: Support for .debug_pubtypes.
       
   197       * dwarf_malloc_check.h dwarf_malloc_check.c : New checking 
       
   198 	for complete accurate dealloc (off by default).
       
   199       * dwarf_opaque.h: Add internal .debug_pubtypes support.
       
   200       * libdwarf2.1.mm: Document new dealloc code, correct
       
   201         dwarf_formstring documentation.
       
   202 
       
   203 2005-07-14 David Anderson <davea@sgi.com>
       
   204       * dwarf_line.c: Added dwarf_srclines_dealloc and call it
       
   205         for dwarf_srclines output.  Does complete deallocation,
       
   206         unlike previous method, which was incomplete deallocation.
       
   207         Thanks to Alan Alexander for pointing out there was
       
   208         incomplete deallocation.
       
   209       * dwarf_print_lines.c: remove references and allocation
       
   210         of line_context. Memory was leaking due to unreferenced
       
   211         variable.
       
   212       * libdwarf2.1.mm: Document new dwarf_srclines_dealloc()
       
   213         deallocation routine for dwarf_srclines().
       
   214 
       
   215 2005-07-13 David Anderson <davea@sgi.com>
       
   216       * dwarf_init_finish.c (dwarf_init): if _dwarf_setup() fails,
       
   217         free elf resources with elf_end() call.
       
   218         Thanks to Cristi Vlasceanu for pointing out that a memory
       
   219         leak existed here.
       
   220 
       
   221 2005-06-13 David Anderson <davea@sgi.com>
       
   222       * dwarf_frame.c (_dwarf_exec_frame_instr): Corrected test
       
   223         so that .o files (pre-relocation) are less likely to generate
       
   224 	DW_DLE_DF_NEW_LOC_LESS_OLD_LOC error. Renamed local variable
       
   225 	for better readability.
       
   226 2005-04-13 David Anderson <davea@sgi.com>
       
   227       * dwarf_error.c: Error  codes 194 and 195 were missing
       
   228 	strings, added them to table. 
       
   229       * dwarf_frame.c: Check for newer gcc .eh_frame
       
   230           augmentation strings and avoid trying to handle these
       
   231           for now.
       
   232       * dwarf_global.c: Add an error check for
       
   233           pubnames-style sections for bad offset.
       
   234       * dwarf_init_finish.c: Add dwarf_get_section_max_offsets()
       
   235           to allow clients to do additional error checking.
       
   236           This code will have to change again, so leaving it
       
   237           undocumented. As written it's not useful for COMDAT
       
   238           style DWARF sections.
       
   239       * libdwarf.h: Added prototype for dwarf_get_section_max_offsets().
       
   240 
       
   241 2005-03-31 David Anderson <davea@sgi.com>
       
   242       * mips_extensions.mm: Documented  the libexc/.debug_funcnames
       
   243         dependency and the 64bit-offset DWARF extension.
       
   244       * mips_extensions.ps: Regenerated.
       
   245 
       
   246 2005-03-21 David Anderson <davea@sgi.com>
       
   247       * dwarf_line.c: Added commentary.
       
   248       * libdwarf2.1.mm: Documented dwarf_lineendsequence() better.
       
   249       * libdwarf2.1.ps: Regenerated.
       
   250       * libdwarf.h: Added DW_DLE_FRAME_AUGMENTATION_UNKNOWN as
       
   251         error code 195.
       
   252       * dwarf_init_finish.c: Corrected comment spelling. 
       
   253       * dwarf_frame.h dwarf_frame.c: Added handling for 
       
   254         much (but not all) of gcc 3.3 gcc 3.4 .eh_frame
       
   255 	'z' augmentation.  Gives error on attempting
       
   256         to get z augmentation data since such is not
       
   257         completely handled.
       
   258 
       
   259 2005-03-18 David Anderson <davea@sgi.com>
       
   260       * dwarf_frame.h dwarf_frame.c: The gcc .eh_frame
       
   261         info did not print correctly so we now access the
       
   262 	correct section data so it prints. Still no support
       
   263 	for dwarf3 frame operators.
       
   264       * dwarf_macro.c: Detect end-of-macros properly
       
   265         (stopped too soon before).
       
   266 	
       
   267 2005-02-14 David Anderson <davea@sgi.com>
       
   268       * pro_incl.h: Added #elif defined(HAVE_LIBELF_H)
       
   269         enabling build on a platform missing normal elf.h.
       
   270 
       
   271 2005-02-11 David Anderson <davea@sgi.com>
       
   272       * dwarf_base_types.h: Added DW_CIE_VERSION3 define.
       
   273       * dwarf_die_deliv.c: Allowed CURRENT_VERSION_STAMP3.
       
   274       * dwarf_frame.c: Allowed DW_CIE_VERSION3.
       
   275       *	dwarf_frame.h: Define DW_DEBUG_FRAME_VERSION3.
       
   276       *	dwarf_line.c: Allow CURRENT_VERSION_STAMP3.
       
   277       *	dwarf_line.h: Add lc_version_number to line structure.
       
   278       *	dwarf_opaque.h: Add CURRENT_VERSION_STAMP3 and comment showing
       
   279 		version numbers (DWARF3 vs DWARF2) by DWARF section.
       
   280 
       
   281 2004-11-21 David Anderson <davea@sgi.com>
       
   282      *  configure.in libdwarfdefs.h: Now tests more precisely for __uint32_t
       
   283 	and __uint64_t (previous test was not sufficient for debian/mips). 
       
   284 	Regenerated configure config.h.in.
       
   285 
       
   286 2004-10-28 David Anderson <davea@sgi.com>
       
   287       * LIBDWARFCOPYRIGHT Makefile.in NEWS config.h dwarf_abbrev.c 
       
   288        dwarf_abbrev.h dwarf_addr_finder.c dwarf_alloc.c dwarf_alloc.h
       
   289         dwarf_arange.c dwarf_arange.h dwarf_base_types.h dwarf_die_deliv.c
       
   290         dwarf_die_deliv.h dwarf_error.c dwarf_error.h dwarf_form.c
       
   291         dwarf_frame.c dwarf_frame.h dwarf_funcs.c dwarf_funcs.h
       
   292         dwarf_global.c dwarf_global.h dwarf_incl.h dwarf_init_finish.c
       
   293 	dwarf_leb.c dwarf_line.c dwarf_line.h dwarf_loc.c dwarf_loc.h
       
   294 	dwarf_macro.c dwarf_macro.h dwarf_opaque.h dwarf_print_lines.c
       
   295 	dwarf_query.c dwarf_sort_line.c dwarf_string.c dwarf_stubs.c
       
   296 	dwarf_types.c dwarf_types.h dwarf_util.c dwarf_util.h
       
   297 	dwarf_vars.c dwarf_vars.h dwarf_weaks.c dwarf_weaks.h
       
   298 	libdwarfdefs.h pro_alloc.c pro_alloc.h pro_arange.c pro_arange.h
       
   299 	pro_die.c pro_die.h pro_encode_nm.c pro_encode_nm.h pro_error.c
       
   300 	pro_error.h pro_expr.c pro_expr.h pro_finish.c pro_forms.c
       
   301 	pro_frame.c pro_frame.h pro_funcs.c pro_funcs.h pro_incl.h
       
   302 	pro_init.c pro_line.c pro_line.h pro_macinfo.c pro_macinfo.h
       
   303 	pro_opaque.h pro_pubnames.c pro_pubnames.h pro_reloc.c
       
   304 	pro_reloc.h pro_reloc_stream.c pro_reloc_stream.h pro_reloc_symbolic.c
       
   305 	pro_reloc_symbolic.h pro_section.c pro_section.h pro_types.c
       
   306 	pro_types.h pro_util.c pro_util.h pro_vars.c pro_vars.h
       
   307 	pro_weaks.c pro_weaks.h: Copyright update with
       
   308         2004 and new SGI official address.
       
   309 
       
   310 2004-10-26 David Anderson <davea@sgi.com>
       
   311       * acconfig.h: removed. Was old style autoconf usage.
       
   312       * configure.in: Updated AC_DEFINE usage, adding args 2 & 3.
       
   313       * config.guess: Updated. timestamp='2004-06-11'.
       
   314       * config.sub: Updated.  timestamp='2004-03-12'.
       
   315       * configure config.h.in: regenerated with autoconf 2.58.
       
   316 
       
   317 2004-06-09  David Anderson <davea@sgi.com>
       
   318       * dwarf_frame.c (_dwarf_exec_frame_instr):
       
   319         Was not setting ru_offset to 1 in DW_CFA_def_cfa_offset 
       
   320         case, now it does.
       
   321 
       
   322 2004-02-24  David Anderson <davea@sgi.com>
       
   323       * dwarf_frame.c (_dwarf_exec_frame_instr):
       
   324         DW_CFA_def_cfa_register case, was setting offset, which
       
   325         is incorrect. Thanks to Tom Hughes <thh@cyberscience.com>
       
   326         for pointing this out.
       
   327 
       
   328 2004-02-03 David Anderson <davea@sgi.com>
       
   329       * dwarf_util.h:  DECODE_LEB128_UWORD DECODE_LEB128_SWORD
       
   330         were simply wrong if  Dwarf_Word or
       
   331         Dwarf_Sword longer than 4 bytes. Upper bits left random. 
       
   332         Large values not extracted correctly.
       
   333 
       
   334 2004-01-15 David Anderson <davea@sgi.com>
       
   335       * dwarf_alloc.c pro_alloc.c pro_init.c: changing BSD-ish bzero()
       
   336  	to posix-standard memset() calls.
       
   337       * configure.in: remove bstring.h test, add alloca.h test.
       
   338         No longer useing bzero, some environments have alloca 
       
   339 	in malloc.h, no alloca.h.  If neither exist
       
   340         it's up to you to deal with it.
       
   341       * dwarf_line.c dwarf_print_lines.c dwarf_sort_line.c: Test
       
   342 	HAVE_ALLOCA_H
       
   343       * configure config.h.in: regenerated
       
   344 
       
   345 2003-12-31 David Anderson <davea@sgi.com>
       
   346       * dwarf_init_finish.c: added #error to detect and describe
       
   347   	absence of libelf.h.
       
   348       * README: Added mention of libelf.h requirement, minor
       
   349 	cleanout of obsolete comments, added configure example.
       
   350       * Makefile.in: Removed bogus LIBS line, updated copyright date.
       
   351       * acconfig.h: Updated copyright date.
       
   352       * config.guess config.sub: new versions from automake-1.6.
       
   353       * config.h.in configure: Regenerated.
       
   354 
       
   355 2003-12-15 David Anderson <davea@sgi.com>
       
   356       * dwarf_init_finish.c (_dwarf_setup): test for (section_size)
       
   357         was wrong for eh_frame section. Changed this one to
       
   358 	(section_size == 0) so it is like all the others testing 
       
   359 	section_size.  Thanks to David Mosberger 
       
   360 	for pointing out this inconsistency.
       
   361 
       
   362 2003-12-08 David Anderson <davea@sgi.com>
       
   363       * dwarf_line.h: reference in comment to li_dbg meant to
       
   364         refer to li_offset. Corrected and amplified comment.
       
   365 
       
   366 2003-10-06 David Anderson <davea@sgi.com>
       
   367       * dwarf_abbrev.c dwarf_die_deliv.c dwarf_form.c dwarf_loc.c 
       
   368 	dwarf_util.c: applied indent(1).
       
   369 
       
   370 2003-10-02 David Anderson <davea@sgi.com>
       
   371       * dwarf_loc.c: Implemented dwarf_get_loclist_entry(),
       
   372         implemented new dwarf_loclist_n() fully implementing
       
   373         loclist support.
       
   374       * dwarf_stubs.c: removed dwarf_get_loclist_entry stub.
       
   375       * libdwarf2.1.mm: Documented dwarf_loclist_n() and
       
   376         updated documentation on dwarf_loclist().
       
   377 
       
   378 2003-09-29 David Anderson <davea@sgi.com>
       
   379       * dwarf_abbrev.c: Ensure the .debug_abbrev section is loaded.
       
   380       * dwarf_arange.c dwarf_global.c: Recent dwarf committee 
       
   381     	discussions have revealed we were wrong in not allowing 
       
   382 	padding in aranges.
       
   383       * dwarf_die_deliv.c dwarf_query.c: handle DW_FORM_indirect.
       
   384       * dwarf_form.c: Add dwarf_whatform_direct() so folks
       
   385 	can report on DW_FORM_indirect use.
       
   386 	Fill in new Dwarf_Locdesc fields.
       
   387       * dwarf_loc.c: Handle .debug_loc  partially.
       
   388 	Fill in new Dwarf_Locdesc fields.
       
   389 	Load .debug_loc if not present and if it's needed.
       
   390       * dwarf_opaque.h: Added ar_attribute_form_direct field
       
   391   	so we can report DW_FORM_indirect
       
   392 	in libdwarf-using code (where such wants to).
       
   393       * dwarf_util.c: Don't confuse DW_FORM_indirect uleb length 
       
   394 	with other lengths.
       
   395       * libdwarf2.1.mm: Document new function dwarf_whatform_direct()
       
   396 	Not needed by ordinary clients, just for clients
       
   397 	wanting to print certain debug info.
       
   398 
       
   399 2003-04-15 Brian Ford <ford@vss.fsi.com>
       
   400       * configure.in (AC_C_BIGENDIAN): Move after AC_PROG_CC so a proper
       
   401         working compiler is used for the test.
       
   402 
       
   403 2003-01-21 David Anderson <davea@sgi.com>
       
   404       * dwarf_die_deliv.c (dwarf_next_cu_header, dwarf_offdie):
       
   405 	Add calls to dwarf_load_object() to load .debug_info, 
       
   406         .debug_abbrev
       
   407       * dwarf_init_finish.c (_dwarf_setup): Remove calls to
       
   408         dwarf_load_object for .debug_info, .debug_abbrev sections.
       
   409       * dwarf_opaque.h: Add new fields to Dwarf_Debug so
       
   410         we don't need to pre-load .debug_info, .debug_abbrev
       
   411       * dwarf_util.h: Fix READ_AREA_LENGTH macro so it uses
       
   412         only length itself to determine which format the
       
   413         length is.
       
   414 
       
   415 2003-01-14 David Anderson <davea@sgi.com>
       
   416       * dwarf_loc.c: Made comment at head of dwarf_loclist()
       
   417       a bit clearer.
       
   418 
       
   419 2002-11-22 Tom Hughes <thh@cyberscience.com>
       
   420       * dwarf_macro.c: Corrected bugs in macro-info functions.
       
   421 
       
   422 2002-10-29 David Anderson <davea@sgi.com>
       
   423       * dwarf_init_finish.c: The libelf_sgi mods
       
   424       left a HAVE_ELF64_GETSHDR ifdef in the wrong place 
       
   425       so folks without Elf64 could not build. Fixed.
       
   426 
       
   427 2002-10-21 David Anderson <davea@sgi.com>
       
   428       * dwarf_form.c: the form_ref functions were failing to
       
   429       add in cc_extension_size when checking for offset
       
   430       legality. Thanks to Kelly O'Hair <kelly.ohair@sun.com>
       
   431       for pointing out the 4 places this was wrong.
       
   432       Used cu_context local pointer to avoid numerous
       
   433       double indirections.
       
   434 
       
   435 2002-08-14 David Anderson <davea@sgi.com>
       
   436       * dwarf_string.c (dwarf_get_str): Return
       
   437       DW_DLV_NO_ENTRY when offset is just at the end of the
       
   438       sections, making it possible to use dwarf_get_str
       
   439       to print the section independently.
       
   440       * libdwarf2.1.mm, libdwarf2.1.ps: Document the
       
   441       revised dwarf_get_str interface (which was not
       
   442       fully thought thru before).
       
   443       * dwarf_line.c (dwarf_srcfiles): Avoid core dump
       
   444       when DW_AT_comp_dir absent (it's not required).
       
   445 
       
   446 
       
   447 2002-07-31 David Anderson <davea@sgi.com>
       
   448       * pro_types.c (_dwarf_transform_simplename_to_disk): correct
       
   449       generation of .debug_info size field.
       
   450       Thanks to Kelly O'Hair <kelly.ohair@sun.com> for pointing out
       
   451       the bug.
       
   452 
       
   453 2002-05-23 Daniel Gohman <gohmandj@sgi.com>
       
   454       * dwarf_init_finish.c: Add support for using SGI's
       
   455       ELF library as an alternative to using AT&T-style
       
   456       libelf.
       
   457       Add a new function _dwarf_load_section to handle
       
   458       loading of sections.
       
   459       * dwarf_opaque.h: Add entries to Dwarf_Debug_s to
       
   460       store section indicies.
       
   461       * most consumer files: Load sections on demand so
       
   462       that unneeded sections don't get loaded.
       
   463       * dwarf_init_finish.c: Fixed an incorrect check for
       
   464       duplicate .eh_frame sections.
       
   465 
       
   466 2002-04-25 Kelly O'Hair <kelly.ohair@sun.com>
       
   467       * pro_section.c (_dwarf_pro_generate_debuginfo): add
       
   468       required dwarf2 sec 7.5.3 trailing null byte 
       
   469       to .debug_abbrev per compilation-unit.
       
   470 
       
   471 2002-03-31 David Anderson <davea@sgi.com>
       
   472       * dwarf_abbref.c (dwarf_get_abbrev): change 
       
   473       DW_DLE_DEBUG_ABBREV_NULL to DW_DLE_DWARF_ABBREV_NULL. 
       
   474       Former was wrong code.
       
   475       * libdwarf2.1.mm: correct argument reference, returned_abbrev
       
   476       not returned_fde in dwarf_get_abbrev discussion.
       
   477       
       
   478 2002-03-07 David Anderson <davea@sgi.com>
       
   479       * libdwarf.h: added struct Elf declaration
       
   480       to reduce dependency on header include ordering. 
       
   481 
       
   482 2002-02-11 David Anderson <davea@sgi.com>
       
   483       * libdwarf2.1.mm libdwarf2.1.ps:
       
   484       dwarf_offdie can return DW_DLV_NO_ENTRY and that
       
   485       is now documented.
       
   486       * dwarf_loc.c: if the length of a location description
       
   487       is zero that is ok, not an error. dwarf2 sec 2.4.1.
       
   488 
       
   489 2002-01-10 David Anderson <davea@sgi.com>
       
   490       * dwarf_opaque.h, dwarf_init_finish.c: if libdwarf does
       
   491       the elf_begin() it must also do the elf_end() to
       
   492       avoid a memory leak, and now does this correctly.
       
   493 
       
   494 2002-01-10  David Anderson <davea@sgi.com>
       
   495       * dwarf_init_finish.c:  Using a variable to
       
   496       hold ELF_C_READ_MMAP.  Really motivated by
       
   497       code not added to this source. 
       
   498       * dwarf_die_deliv.c: Added comments, moved
       
   499       a couple variables to local scope from function scope.
       
   500 
       
   501       * dwarf.h: Added some #defines which were specified in the Dwarf
       
   502       2.1 Dwarf draft 5 (now called dwarf 3 draft 5).
       
   503 
       
   504 2001-09-18  David Anderson davea@sgi.com
       
   505 	* all files: applied gnu indent with
       
   506 	-bad -bap -nbbo -br -ce -brs 
       
   507 	-l72  -lc72  -hnl  -nprs  
       
   508 	-fca -i4  -lp -psl -npcs 
       
   509 	Code should use this set in libdwarf.
       
   510 
       
   511 
       
   512 2001-08-21  "kelly o'hair" <kelly.ohair@eng.sun.com>
       
   513 	* pro_section.c:  If one called dwarf_add_file_decl()
       
   514 	  or dwarf_add_directory_decl() but never added a line,
       
   515 	  .debug_line was not produced.  This was a mistake,
       
   516 	  as if any file or directory was provided .debug_line
       
   517 	  should be produced. 
       
   518 
       
   519 2001-08-06  davea@sgi.com
       
   520 	* libdwarf2.1.mm: documented dwarf_dealloc rules
       
   521 	  more clearly. (.ps updated too)
       
   522 	* mips_extensions.mm: documented the way SGI
       
   523 	  gets frame stack pointer out of debug_frame.
       
   524 	  (.ps updated too)
       
   525 
       
   526 2001-06-14  davea@sgi.com
       
   527 	* dwarf_leb.c: changed around where bytes counted in
       
   528 	  _dwarf_decode_s_leb128 so it's easier to tell it is correct.
       
   529 	  And removed one loop completely: it was
       
   530 	  an early attempt at performance improvement and
       
   531 	  is no longer relevant.
       
   532 
       
   533 	* dwarf_global.c: added new 
       
   534 	  dwarf_get_cu_die_offset_given_cu_header_offset function
       
   535 	  to get CU die offset (as the long name says).
       
   536 	  A variety of functions return cu-header-offsets, so
       
   537 	  this is useful at times.
       
   538 	  Used locals to reduce the number of indirections
       
   539 	  and make things easier to follow.
       
   540 
       
   541 	* dwarf_arange.c: added new dwarf_get_arange_cu_header_offset
       
   542 	  function so dwarfdump could print the cu header offset
       
   543 	  (which appears in the arange headers).
       
   544 
       
   545 	* libdwarf2.1.mm: documented the above new functions.
       
   546 
       
   547 2001-06-07  davea@sgi.com
       
   548 	* dwarf_leb.c: shift operator was not being applied
       
   549 	  to full size of Dwarf_Signed/Unsigned for 64bit
       
   550 	  Dwarf_Signed/Unsigned (ILP32 compile) so
       
   551 	  large numbers not decoded if signed.
       
   552 	* pro_encode_nm.c: added {} in a couple if/else
       
   553           for 'clarity' and to make inserting debug printf easier.
       
   554 	* pro_expr.c: Added comments explaining why possible
       
   555 	  compiler (gcc) warnings are ok, the result is safe. 
       
   556 
       
   557 2001-05-30  davea@sgi.com
       
   558 	* pro_reloc_stream.c: Wrote Set_REL32_info and 
       
   559 	  Set_REL64_info macros
       
   560 	  from generic ELF abi documents to make use acceptable
       
   561 	  when IRIX elfaccess.h is not available.
       
   562 
       
   563 2001-05-30  "kelly o'hair" <kelly.ohair@eng.sun.com>
       
   564 	* Makefile.in: was missing   pro_macinfo.o
       
   565  	  pro_encode_nm.o dwarf_macro.o from the OBJS list.
       
   566 
       
   567 2001-05-22  davea@sgi.com
       
   568 	* dwarf_frame.c, pro_expr.c: Added comments on why
       
   569 	  casts are safe in spite of gcc warnings (4 places total).
       
   570 
       
   571 2001-05-18  Dan Gritter <dgritter@us.ibm.com>
       
   572 	* dwarf_loc.c DW_OP_bregx operands are unsigned
       
   573 	  reg num followed by signed offset.
       
   574 
       
   575 2001-04-11  David Anderson <davea@sgi.com>
       
   576 	* dwarf_die_deliv.c: check for 0 abbreviation code
       
   577 	  and return a 'no entry' return value when found.
       
   578 	  (normal dwarf2, 0 means no DIE, the end of some set of DIEs.)
       
   579 
       
   580 2001-01-16  David Anderson <davea@sgi.com>
       
   581 
       
   582 	* pro_die.c: set ar_reloc_len field
       
   583 	in all cases.
       
   584 
       
   585 2000-12-14  David Anderson <davea@sgi.com>
       
   586 
       
   587 	* dwarf_frame.h: clarified some comments.
       
   588 
       
   589 2000-12-14  Ulrich Drepper <drepper@cygnus.com>
       
   590 
       
   591         * dwarf_line.c: Now sets DW_LNE_end_sequence to
       
   592         default_is_stmt, the correct value, not is_stmt.
       
   593 
       
   594 
       
   595 2000 Aug 24  davea@sgi.com
       
   596   dwarf_error.c: a dwarf_init() failure resulted in this
       
   597 	using a static Dwarf_Error struct. And dwarf_dealloc
       
   598 	did not deal properly with that. 
       
   599   dwarf_alloc.c dwarf_alloc.h: these had DYNAMIC_CHUNK protected code
       
   600   	which was never used.  Deleted the unused code. Added a small
       
   601   	comment (hopefully useful) to dwarf_alloc.h.
       
   602 
       
   603 	And now deals correctly with a null dbg  on
       
   604 	DW_DLA_ERROR  due to failed
       
   605 	dwarf_init() call (or due to other error in calling
       
   606 	libdwarf that results in libdwarf not knowing the dbg,
       
   607 	a likely far more common case) and frees the memory.
       
   608 	This used to result in chaos (depending on your
       
   609 	luck...).
       
   610 
       
   611 2000 Aug 23  davea@sgi.com
       
   612   libdwarf2.1.mm, ps.  Failed to mention that dwarf_finish()
       
   613   has to be accompanied by elf_end() if dwarf_init() was used
       
   614   to initialize libdwarf to truly release all stuff.
       
   615   Added text to dwarf_finish() describing how to do that.
       
   616 2000 April 14  davea@sgi.com
       
   617 
       
   618   dwarf_abbrev.c - 1.22
       
   619         - When it is a null abbrev entry, return it correctly so it can be
       
   620           printed (meaning fill out all the return-parameters so the caller can
       
   621           do the right thing).
       
   622 
       
   623   dwarf_init_finish.c - 1.48
       
   624         - For most sections, simply having an empty section (present but empty)
       
   625           is just fine. There is no reason to register an error in such a case.
       
   626 
       
   627   Copyright has changed. See LIBDWARFCOPYRIGHT and NEWS
       
   628 
       
   629   dwarfdump/print_die.c - 1.42
       
   630         - Explain what combo checker is doing and make it more maintainable (and          fix bug which would not be hit, but was real enough).
       
   631 
       
   632   dwarfdump/tag_tree.list - 1.2
       
   633         - Add valid parent/child relationships so checker does not report valid
       
   634           entries as bogus.
       
   635 
       
   636   dwarf_form.c - 1.26
       
   637         - Correct dwarf reader to use appropriate size, not de_length_size. This          is part of the handling of the new dwarf2 64bit facilities. I
       
   638           overlooked this small aspect before in one place
       
   639   dwarf_query.c - 1.48
       
   640         - Use correct size, not de_length_size. For offset size.
       
   641   libdwarf2.1.mm - 1.41
       
   642         - Tried to make frame register output args meaning clearer
       
   643   libdwarf2.1.ps - 1.19
       
   644         - Tried to make frame register output args meaning clearer
       
   645   pro_forms.c - 1.33
       
   646         - Get ref4, not ref8 when generating 32bit dwarf per original dwarf2
       
   647           spec. even if pointer size is 64 bits.
       
   648   pro_init.c - 1.18
       
   649         - Get ref4, not ref8 when generating 32bit dwarf per original dwarf2
       
   650           spec. even if pointer size is 64 bits.
       
   651 
       
   652 
       
   653 davea@sgi.com
       
   654 
       
   655 
       
   656 2000 March 7
       
   657 dwarf_line.c - 1.48
       
   658 dwarf_line.h - 1.16
       
   659 dwarf_print_lines.c - 1.10
       
   660 dwarf_sort_line.c - 1.8
       
   661         - Now handles opcode_base of line section to be other than that at
       
   662           compile time of libdwarf.
       
   663 Important as the dwarf2 committee is adding a new standard opcode  
       
   664 davea@sgi.com
       
   665 
       
   666 2000 Feb 24
       
   667 pro_forms.c  1.31 ar_next field not always zeroed before.
       
   668 Could lead to infinite loop in the producer code.
       
   669 Now the field is always zeroed.
       
   670 
       
   671 Makefile.in - 1.3 Jason Merrill <jason@cygnus.com>  
       
   672  provided fix so gcc will work on libdwarf
       
   673 print_sections.c - 1.54 - casts to avoid warnings
       
   674 
       
   675 davea@sgi.com
       
   676 
       
   677 
       
   678 1999 Dec 14
       
   679 acconfig.h - 1.3
       
   680 config.h.in - 1.5
       
   681 configure - 1.4
       
   682 configure.in - 1.5
       
   683         - HAVE_DWARF2_99_EXTENSION HAVE_OLD_DWARF2_32BIT_OFFSET
       
   684           refinements added.
       
   685 CHANGES - 1.3
       
   686 Makefile.base - 1.98
       
   687 NEWS - 1.5
       
   688 config.h - 1.4
       
   689 config.h.in - 1.4
       
   690 configure.in - 1.4
       
   691 dwarf_alloc.c - 1.36
       
   692 dwarf_arange.c - 1.19
       
   693 dwarf_arange.h - 1.6
       
   694 dwarf_die_deliv.c - 1.51
       
   695 dwarf_frame.c - 1.62
       
   696 dwarf_frame.h - 1.23
       
   697 dwarf_funcs.c - 1.10
       
   698 dwarf_funcs.h - 1.3
       
   699 dwarf_global.c - 1.21
       
   700 dwarf_global.h - 1.7
       
   701 dwarf_init_finish.c - 1.45
       
   702 dwarf_line.c - 1.44
       
   703 dwarf_opaque.h - 1.52
       
   704 dwarf_print_lines.c - 1.8
       
   705 dwarf_query.c - 1.45
       
   706 dwarf_types.c - 1.10
       
   707 dwarf_types.h - 1.3
       
   708 dwarf_util.c - 1.40
       
   709 dwarf_util.h - 1.22
       
   710 dwarf_vars.c - 1.11
       
   711 dwarf_vars.h - 1.3
       
   712 dwarf_weaks.c - 1.10
       
   713 dwarf_weaks.h - 1.3
       
   714 libdwarf2.1.mm - 1.40
       
   715 libdwarf2.1.ps - 1.18
       
   716 pro_arange.c - 1.15
       
   717 pro_die.c - 1.23
       
   718 pro_frame.c - 1.29
       
   719 pro_init.c - 1.15
       
   720 pro_macinfo.c - 1.7
       
   721 pro_opaque.h - 1.14
       
   722 pro_pubnames.c - 1.18
       
   723 pro_reloc_stream.c - 1.5
       
   724 pro_section.c - 1.70
       
   725 pro_section.h - 1.16
       
   726 pro_types.c - 1.12
       
   727         - Allowing generation of correct dwarf2 with the 1999 64bit dwarf
       
   728           extension, and reading all forms of dwarf2 compatibly (all 32/64bit
       
   729           dwarf2 section  forms).
       
   730 
       
   731 This adds the ability to consume and produce both sgi 64bit
       
   732 and the new dwarf2 committee-approved 64bit dwarf extension.
       
   733 As a result of the new dwarf2 stuff , a producer (compiler)
       
   734 can mix 32 and 64bit dwarf (for a 64bit object) and the
       
   735 linker will work seamlessly.  (as long as section sizes don't
       
   736 get over 2GBytes).
       
   737 
       
   738 And the producer is easily configured to produce mips/sgi style
       
   739 64bit dwarf or the new form of 64bit dwarf.
       
   740 
       
   741 This also eliminates a fair amount of rather silly duplicated code.
       
   742 davea@sgi.com
       
   743 
       
   744 
       
   745 1999 Nov 4
       
   746 
       
   747 pro_section.c - 1.69
       
   748         - A pointer size entity had an offset-size value used at one place.
       
   749 davea@sgi.com
       
   750 
       
   751 1999 Sep 30
       
   752 dwarf_arange.c - 1.18
       
   753         - Changed // comment to /* */.  // failed to compile 
       
   754           with C89 compiler...
       
   755 davea@sgi.com
       
   756 
       
   757 
       
   758 1999 Sep 29
       
   759 Changed all the producer code
       
   760 substantially to allow generating assembler code
       
   761 for the dwarf2 (rather similar to what gcc does)
       
   762 allowing symbolic relocations.
       
   763 MIPS output still generates the binary form.
       
   764 davea@sgi.com
       
   765 
       
   766 
       
   767 
       
   768 1999 Aug 20
       
   769 Stan Shebs (shebs@cygnus.com) pointed out that the pro_util.h
       
   770 use of R_MIPS* was a problem compiling on Sun.
       
   771 Since the producer code is not really used at present except for
       
   772 MIPS/sgi, I've added #ifndefs to pro_util.h which provide zero values
       
   773 when <elf.h> does not provide the macros.
       
   774 When anyone needs the producer code to actually *work* for non-MIPS
       
   775 something better will have to be done.
       
   776 
       
   777 This has no effect on those simply compiling libdwarf for 
       
   778 use by dwarfdump.
       
   779 davea@sgi.com
       
   780 
       
   781 1999 July 21
       
   782 Changed the READ_UNALAGNED macro to call a function
       
   783 depending on endianness of the host and the object being read.
       
   784 So all the dwarf_* source changed in a trivial way.
       
   785 Added support for printing egcs eh_frame section.
       
   786 Added a local memcpy-like function to do the cross-endian
       
   787 thing where applicable (called by READ_UNALIGNED macro). 
       
   788 Because the .eh_frame section 
       
   789 after linking can have some zeroed out bytes at the
       
   790 end of the CIE/FDE data the code looking for CIEs and FDEs
       
   791 now assumes a zero CIE/FDE length means it has reached
       
   792 the end of the CIE/FDE data.
       
   793 davea@sgi.com
       
   794 
       
   795 
       
   796 1999 June 14
       
   797   Fred Fish fnf@ninemoons.com contributed
       
   798   autoconf'ing of the libdwarf and dwarfdump source.  
       
   799   
       
   800 
       
   801   mips_extensions.*  Documented additional old errors
       
   802   in the Dwarf Version 2 spec.
       
   803 
       
   804   The ChangeLog before this is incomplete. 
       
   805 
       
   806 -------------------------------------------------------------
       
   807 Since Oct 95 and before May, 1996 davea@sgi.com David Anderson
       
   808 
       
   809 Added the function dwarf_get_cie_of_fde() which makes it possible
       
   810 to remember a single fde/cie set out of a block usefully.
       
   811 
       
   812 Enhanced doc of dwarf_bitoffset()
       
   813 
       
   814 Added new function dwarf_global_formref() so all reference
       
   815 forms can be retrieved.
       
   816 
       
   817 Fixed bug in retrieving array bounds: was failing to sign extend
       
   818 formsdata.
       
   819 
       
   820 Added function dwarf_get_fde_info_for_all_regs(), which makes
       
   821 retrieval of the complete set of registers (as needed by
       
   822 debuggers and exception handlers) effectively N times faster
       
   823 than getting them one a time where N is the number of registers.
       
   824 
       
   825 Added support for exception table handling (really just support
       
   826 for a reference to an exception table for c++ exceptions).
       
   827 
       
   828 Fixed a bug where useless extra space (several megabytes)
       
   829 were malloc'ed for the abbreviations table by the libdwarf
       
   830 consumer code.
       
   831 
       
   832 -------------------------------------------------------------
       
   833 June 10, 1999
       
   834  Changelog started.
       
   835 -------------------------------------------------------------