1March 29, 2006
2  The March  27, 2006 version accomodates DWARF3.
3  Some people have been using the library without
4  altering dwarf.h, libdwarf.h to accomodate
5  large numbers of registers.  This exposed a bug
6  (an off-by-one error) but also makes it clear
7  additional documentation is needed.  So 
8  in libdwarf large new comments near 'TARGET DEPENDENCY'
9  attempt to explain better.
10Oct 03, 2005
11  The July version had an incompatible interface: old
12  dealloc code did not always work right. The incompatibility
13  is now fixed and the new features remain.
14
15July 15, 2005
16  New optional alloc-check code optionally checks all
17  allocated memory is freed (malloc_check.h malloc_check.c)
18  Various new dealloc routines written as the previous approach
19  of letting client code do detailed dealloc turned out not
20  to dealloc all memory.
21  To get the new checking you must manually change a line
22  in malloc_check.h and rebuild libdwarf.
23
24
25Mar 31, 2005
26  Documented  the libexc.so/.debug_funcnames
27  dependency and the 64bit-offset DWARF extension in
28  mips_extentions.{mm,ps}.
29
30Mar 21, 2005
31  gcc 3.3 and 3.4 .eh_frame 'z' augmentations are not handled
32  correctly, so libdwarf gives an error when attempting to
33  print such. gcc 2 'eh' augmentation is simpler and
34  prints correctly.  (.eh_frame is a GNU section,
35  not DWARF2/3, and what is recorded in .eh_frame is not
36  specified by DWARF2/3, though .eh_frame does resemble
37  DWARF2/3 .debug_frame).
38
39
40Oct 28, 2004
41  Updated contact address in copyright: SGI moved 1/4 mile
42  in 2003 to a new address: 1500 Crittenden Lane.
43  
44  Documented additional vendor extensions.
45
46Oct 27, 2004
47  Added known vendor extensions to dwarf2/3 to dwarf.h
48  HP, GNU, PGI and UPC extensions are now recorded.
49  Recorded vendor extensions from Concurrent.
50
51Feb 3, 2004
52  If 'Dwarf_Word' is 64 bits, two macros reading leb numbers
53  fail to initialize upper bits of the values read.
54  First noticed with bogus line numbers printing from dwarfdump.
55  Now we use already-existing functions, avoiding the problem.
56
57Oct 02, 2003
58  Support .debug_loc section fully.
59
60Sept 29, 2003
61  Support DW_FORM_indirect properly.
62  Supports loclists in part (but not multiple loclist entries yet).
63  Support 'padding bytes' at end of .debug_arange and
64  .debug_pubnames and .debug_pubtypes per CU
65  (recent dwarf committee email made it clear this is appropriate).
66
67May 23, 2002
68  Libdwarf now asks for sections only when they are
69  used, so that unneeded sections aren't loaded.
70  Support for using SGI's ELF library as an alternative to
71  using AT&T libelf-style has been added (the SGI ELF
72  library is presently only available internally to SGI).
73
74Jan 10, 2002
75  Fixed memory leak in dwarf_finish().
76
77Aug 21, 2001
78  If one called dwarf_add_file_decl()
79  or dwarf_add_directory_decl() but never added a line,
80  .debug_line was not produced.  This was a mistake,
81  as if any file or directory was provided .debug_line
82  should be produced. Now it is produced.
83
84June 14, 2001
85  Given a cu header offset, it was not easy to derive the
86  CU header DIE offset. Created the new
87  function dwarf_get_cu_die_offset_given_cu_header_offset()
88  do get the CU header DIE offset.
89  Added the function dwarf_get_arange_cu_header_offset()
90  so the cu header offset could be retrieved from .debug_aranges
91  information.
92
93June 07, 2001
94  Major bug in dwarf_leb.c decoding large integers 
95  (Dwarf_Signed 64 bit where library is compiled in ILP32) 
96  found and fixed.
97
98May 21, 2001
99  Some small fixes have been found by various folks,
100  so it seems time to prepare a new source release.
101  See ChangeLog for details.
102
103April 15, 2000
104  The libdwarf copyright has changed to
105     version 2.1 of the GNU Lesser General Public License.
106  Anyone holding a version of libdwarf that was published
107  before this new copyright is allowed to use
108    the copyright published in that earlier libdwarf source
109    on the earlier source
110  or to use 
111    this new copyright on the earlier source,
112  at their option.
113
114
115December 08, 1999
116  The dwarf committee has adopted the offset-extension
117  proposal. This allows compatibly emitting
118  dwarf with 64bit offsets.
119
120  The dwarf reader now automatically figures out which is in use.
121  The dwarf writer configures itself at the time the
122  writer initialization routine is called, though
123  the writer is restricted, at libdwarf 
124  compile time, to one of
125		mips/sgi pure 32/pure 64 offsets/pointers.
126
127		32bit offsets only (per dwarf 2.0.0 and cygnus)
128
129		32bit offsets with extension to 64bit offsets
130		allowed (the offset-extension newly passed).
131  
132  In addition, a great deal of duplicate code
133  for the sgi  .debug_weaknames, .debug_funcnames, 
134  .debug_varnames and .debug_typenames sections has
135  been removed: a single set of functions does the real work now.
136  
137Sept 29, 1999
138  Just found out that cygnus is, on 64bit targets, generating
139  32bit offsets (as elf32 has, for example) with 64 bit
140  pointers (in references to text and data).
141  Whereas sgi has always generated 64bit dwarf with
142  64 bit offsets (as in elf64) and 64bit pointers for
143  64bit pointer objects.
144  I'll call the sgi approach 64-bit and the cygnus approach
145  32bit-offsets.
146
147  Cygnus is following the DWARF2 spec as written, so they are
148  right in doing only 32bit-offsets.
149
150  Folks at sgi (including me) think that, as for elf64,
151  the offsets in dwarf for 64bit pointer-apps should be
152  64 bits.  We think it is only a matter of time
153  before we really *need* 64bit offsets and when that happens
154  it will be on an important app.  Disk space is cheap,
155  so lets just go 64 bit on 64bit apps (such as ia64 apps)
156  to avoid a future problem.
157  I(davea@sgi.com) think the 'pointer-size' references in the dwarf
158  spec were really written for 64-bit pointer apps.
159  I don't recall serious consideration of 64bit pointer
160  apps in the committee deliberations (I did miss
161  a couple of meetings) and think 64bit offsets
162  are consistent with dwarf2, even though the speci
163  was not written for such. We think true full 64 bit
164  dwarf2 is the right way to go (the spec changes
165  are obvious: file and section offsets become 64bit
166  with 64bit pointer objects.
167 
168  MIPS/SGI is definitely 64-bit offsets for 64 bit objects,
169  cygnus is definitely 32bit-offsets for earlier 64bit pointer
170  environments.
171
172  At any rate, now the dwarf reader allows and accomodates
173  both and the dwarf producer also accomodates both.
174  Some tweaking of the pro_init.c or dwarf_init_finish.c
175  files may be necessary in future: no other changes should
176  be needed to accomodate the two 64bit approaches, as
177  the library (and dwarfdump) now deal with both forms.
178
179
180August 20, 1999
181  Added some #ifndef/#define to pro_util.h to let libdwarf build
182  on more hosts.  (since those hosts don't need the producer
183  code, AFAIK, zero values suffice for missing #defines.)
184
185July 21, 1999
186  Now reader transparently reads either-endianness data
187  from an either-endianness object.
188  Updated dwarf.h and libdwarf.h to recognize
189  GNU egcs dwarf extensions and to print the egcs eh_frame
190  section.
191
192June 10, 1999
193  gnu configure version of libdwarf made available for the
194  first time.  
195  Still allows only same-endian-as-host in objects.
196  
197August, 1994
198  libdwarf source made available for ftp on sgigate.sgi.com
199	/ftp/pub
200
201June, 1994
202  Consumer interface changed completely, following
203  "Candy Machine Interfaces" chapter from
204   "Writing Solid Code" by Steve Maguire (Microsoft Press).
205
206April,  1993
207  Initial version of libdwarf  for dwarf version 2
208  written at sgi.
209