summaryrefslogtreecommitdiff
path: root/libdwarf/ChangeLog2006
blob: 02009d626ac364bc6fc9633bed914fff826571c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
2006-12-05 David Anderson <davea@sgi.com>
      * dwarf_error.c, libdwarf.h: added 
        DW_DLE_FRAME_REGISTER_COUNT_MISMATCH.
      * dwarf_frame.c (_dwarf_exec_frame_instr): removed references
        to compile-time constants for register table size.  Now uses
        run-time-chosen sizes.  Now uses heap for reg table instead
        of stack. Now uses SIMPLE_ERROR_RETURN macro to simplify
        the code.
2006-11-08 David Anderson <davea@sgi.com>
      * pro_expr.c (dwarf_add_expr_gen): DW_OP_deref_size,
        DW_OP_xderef_size, and  DW_OP_pick were incorrect, missing
        & operator. Would coredump.  Thanks to Alan Chambers for mentioning
        the coredump.
2006-09-26 David Anderson <davea@sgi.com>
      * dwarf_die_deliv.c (dwarf_offdie): Now returns the
        correct die (worked before, almost always, but worked by accident).
        Thanks to Mattias Lindblad for supplying a test case.
2006-09-01 David Anderson <davea@sgi.com>
      * libdwarf2.1.mm (dwarf_loclist_n): Minor refinement
        of the description.
      * libdwarf2.1.ps: regenerated
2006-08-31 David Anderson <davea@sgi.com>
      * libdwarf2.1.mm (dwarf_loclist_n): A location expression
        sets ld_lopc to 0, ld_hipc to all-bits-on, and this
        is now documented.
      * libdwarf2.1.ps: regenerated
2006-06-14 David Anderson <davea@sgi.com>
      * dwarf_opaque.h dwarf_frame.h dwarf_frame.c
        dwarf_init_finish.c dwarf_frame2.c: Corrected handling
        of eh_frame zP encoding.  
        Thanks to Cristi Vlasceanu for noticing it was broken.
      * Makefile.in: remove libdwarf.so in 'clean' rule.
        Thanks to Cristi Vlasceanu for noticing it was missing.
2006-04-28 David Anderson <davea@sgi.com>
      * dwarf_frame.c: Changed local variable type to
        avoid compiler warning. 
2006-04-21 David Anderson <davea@sgi.com>
      * dwarf_frame.c: Initialized local to 0, wrong value.
         Thanks to Cristi Vlasceanu for noticing.
2006-04-18 David Anderson <davea@sgi.com>
      * All *.c: Ran indent so all c files follow a standard look.
2006-04-16 David Anderson <davea@sgi.com>
      * dwarf.h: Remove #if 0 around some #defines, it is ok to 
        leave the defines visible (the defines are HP extensions).
      * libdwarf.h: Add new dwarf3 interface to frames.
        (which actually is also a better interface to dwarf2 info,
        not strictly for dwarf3).
      * dwarf_alloc.c: Add 'constructor/destructor' pointers 
        to the initialization table so we can handle a more 
        flexible (dwarf3) frame interface.Call the functions 
        at the appropriate times.
      * dwarf_frame.c: Using macro FDE_NULL_CHECKS_AND_SET_DBG 
        reduce duplicate coding.Internal code now handles dwarf2 
        and dwarf3 and interfaces to exported interfaces appropriately.
      * dwarf_frame.h: Alter internal struct to handle frames more flexibly.
      * dwarf_frame2.c: Remove unused local variable.
      * dwarf_init_finish.c: Add initialization of new Dwarf_Debug 
        struct entries allowing handling
        of run-time-config of frame info.
      * dwarf_loc.c: Add DWARF3 operators, such as DW_OP_call4.
      * dwarf_opaque.h: Declaration of new Dwarf_Debug struct 
        entries allowing handling of run-time-config of frame info.
      * pro_expr.c: Add entries allowing creation of DWARF3 DW_OP 
        such as call2. 
      * pro_section.c: Change crucial code handling section lengths, 
        using a macro BEGIN_LEN_SIZE to clarify and correct a few places.
2006-03-31 David Anderson <davea@sgi.com>
      * libdwarf.h: Added dwarf_get_fde_info_for_cfa_reg3() prototype
        preparing for dwarf3 frame interface.
      * dwarf_frame.c: Now uses separate rule, not DW_FRAME_CFA_COL, 
        to record CFA.
      * dwarf_frame.h: Add commentary on frame access.
2006-03-30 David Anderson <davea@sgi.com>
      * Makefile.in configure.in: Adding --enable-shared --enable-nonshared
        --disable-shared  and --disable-nonshared.
      * configure: regenerated with 2.59 autoconf.
      * README: Added explanation on changing dwarf.h libdwarf.h.
2006-03-29 David Anderson <davea@sgi.com>
      * dwarf_print_lines.c dwarf_sort_line.c: Clean up initialization
        code for line table reading. When returning rules table
        data to caller ensure fully filled out yet no overrun
        (handling case where rules table sizes not defined identically
        by caller and library).
      * dwarf.h: New commentary on ABI/register-number issues.
      * libdwarf.h: New commentary on ABI/register-number issues.
2006-03-26 David Anderson <davea@sgi.com>
      * dwarf_line.c: file_entry_count local was not initialized.
        Initialized some locals at declaration.
        Thanks to Mikael Vidstedt for noticing.
2006-03-23 David Anderson <davea@sgi.com>
      * dwarf_error.c: added error strings for codes 200,201
      * dwarf_line.c dwarf_line.h dwarf_print_lines.c dwarf_sort_line.c: Moved
        line prefix reading to a common routine, filling in a new internal
        struct to make it simple.  Removed much duplicate code.
        Added more support for dwarf3 line table standard opcodes.
        Now prints details (with -v -v) of standard opcodes it
        does not understand (if any present).
2006-03-13 David Anderson <davea@sgi.com>
      * dwarf.h: add ALTIUM #defines (extensions to dwarf)
      * libdwarf.h: Alter arguments to new
        functions dwarf_get_fde_augmentation_data() and
        dwarf_get_cie_augmentation_data() used by GNU eh_frame.
      * dwarf_frame.h: Add new fields so we can handle GNU eh_frame.
      * dwarf_frame.c: Remove erroneous load_sections calls (wrong for eh_frame
        data) and correct the new dwarf_get_fde_augmentation_data() and
        dwarf_get_cie_augmentation_data() implementation.
      * dwarf_frame2.c: Implement support for GNU eh_frame.
      * dwarf_line.h: Correct handling of DWARF3 opcode base check.
      * dwarf_line.c: Add new macro use to get DWARF3 opcode base handling correct.
      * dwarf_print_lines.c: Add new macro use to get DWARF3 opcode base handling correct.
      * dwarf_sort_lines.c: Add new macro use to get DWARF3 opcode base handling correct.
2006-03-08 David Anderson <davea@sgi.com>
      * dwarf_frame2.c: ensure local variables  initialized
        to avoid coredump.
2006-03-08 David Anderson <davea@sgi.com>
      * dwarf_die_deliv.c: Remove Richard Stukey's -1 and
        replace with a simpler more complete fix.
2006-03-07 David Anderson <davea@sgi.com>
      * Makefile.in: Add dwarf_line2.c dwarf_frame3.c to files to build.
      * dwarf_addr_finder.c: Add comments about file purpose.
      * dwarf_frame.c: Move IRIX specific function out of this file.
      * dwarf_frame3.c: Move IRIX specific function to this new file.
      * dwarf_frame.h: Add interface declaration.
      * dwarf_line.c: Move IRIX specific function out of this file.
      * dwarf_line2.c: Move IRIX specific function to this new file.
      * dwarf_line.h: Add interface declaration.
      * dwarf_frame2.c: Altered comments so indent handles them better,
        ran indent.

2006-03-07 David Anderson <davea@sgi.com>
      * dwarf_die_deliv.c (dwarf_siblingof): -1 to point to end of cu,
        not one-past-end.  With thanks to Richard Stuckey.
      * libdwarf2.1.mm: document existing function dwarf_get_fde_exception_info()
      * dwarf_frame.h: Add new internal interfaces.
      * dwarf_frame.c: Remove cie/fde reader to dwarf_frame2.c.
      * dwarf_frame2.c: Contains heavily refactored cie/fde reader,
        preparing for eh_frame support and avoids some searching
        in fde creation.  Removes duplicated code into new 
        internal functions.
      * Makefile.in: Adding comment about flag for malloc_checking
        code. Add dwarf_frame2.c to source list.
      * libdwarf.h: added declarations for eh_frame information, though
        these are not yet supported.
      * dwarf.h: Added defines for eh_frame information, though these
        are not yet used.
2006-02-23 David Anderson <davea@sgi.com>
      * dwarf_line.h dwarf_line.c: added dwarf_line_srcfileno()
        to complement dwarf_lineno.
      * libdwarf2.1.mm: document dwarf_line_srcfileno().

2005-11-25 David Anderson <davea@sgi.com>
      * dwarf.h: Now matches 2005 DWARF3 public review document.

2005-11-08 David Anderson <davea@sgi.com>
      * dwarf_alloc.c, dwarf_init_finish.c, dwarf_sort_line.c, malloc_check.c:
        remove malloc.h include, it is not needed, stdlib.h suffices.

2005-10-24 David Anderson <davea@sgi.com>
      * dwarf.h: Updated to match DWARF3 public review document.
    
2005-10-03 David Anderson <davea@sgi.com>
      * dwarf_alloc.c: Change some entries to BASE_ALLOC.
      * dwarf_global.h: Add argument to interface so we do not
        universally use DW_DLA_GLOBAL, but cater to compatibility.
      * dwarf_funcs.c, dwarf_global.c, dwarf_weaks.c,
        dwarf_funcs.c, dwarf_types.c: Restored use of DW_DLA_*
        instead of universally using DW_DLA_GLOBAL.
      * dwarf_pubtypes.c: added comments about DW_DLA_GLOBAL use.
2005-08-01 David Anderson <davea@sgi.com>
      * malloc_check.c: Moved the #ifdef WANT_LIBBDWARF_MALLOC_CHECK
        down after #includes so the test is meaningful.
2005-07-15 David Anderson <davea@sgi.com>
      * libdwarf.h: New DW_DLA codes and full .debug_types support added.
        new dealloc functions declared.
      * Makefile.in: Add dwarf_pubtypes.o (.debug_pubtypes support).
      * dwarf_abbrev.c: Add dealloc() calls where needed.
      * dwarf_alloc.c: Add dwarf_malloc_check calls, rename and
        update _DW_RESERVE to DW_RESERVE, make hash table declaration
        in array more readable. Add optional final dealloc loop.
      * dwarf_alloc.h: Increase the index array to add .debug_pubtypes
        support.
      * dwarf_base_types.h: Increase the index array to add .debug_pubtypes
        support.
      * dwarf_die_deliv.c: Add dealloc calls to get full dealloc.
      * dwarf_error.c: Document new error codes for .debug_pubtypes.
      * dwarf_init_finish.c: Add .debug_pubtypes support, add
        dwarf_malloc_check_complete() call for alloc checking.
      * dwarf_form.c: Document dwarf_formstring() use.
      * dwarf_frame.c: Add dwarf_fde_cie_list_dealloc() for
        complete dealloc.
      * dwarf_global.h: Add _dwarf_internal_globals_dealloc
        declaration for libdwarf-internal use.
      * dwarf_global.c dwarf_funcs.c dwarf_types.c dwarf_vars.c
        dwarf_weaks.c:  Add new dealloc public routines for
        complete dealloc and add .debug_pubtypes support.
      * dwarf_pubtypes.c: Support for .debug_pubtypes.
      * dwarf_malloc_check.h dwarf_malloc_check.c : New checking 
	for complete accurate dealloc (off by default).
      * dwarf_opaque.h: Add internal .debug_pubtypes support.
      * libdwarf2.1.mm: Document new dealloc code, correct
        dwarf_formstring documentation.

2005-07-14 David Anderson <davea@sgi.com>
      * dwarf_line.c: Added dwarf_srclines_dealloc and call it
        for dwarf_srclines output.  Does complete deallocation,
        unlike previous method, which was incomplete deallocation.
        Thanks to Alan Alexander for pointing out there was
        incomplete deallocation.
      * dwarf_print_lines.c: remove references and allocation
        of line_context. Memory was leaking due to unreferenced
        variable.
      * libdwarf2.1.mm: Document new dwarf_srclines_dealloc()
        deallocation routine for dwarf_srclines().

2005-07-13 David Anderson <davea@sgi.com>
      * dwarf_init_finish.c (dwarf_init): if _dwarf_setup() fails,
        free elf resources with elf_end() call.
        Thanks to Cristi Vlasceanu for pointing out that a memory
        leak existed here.

2005-06-13 David Anderson <davea@sgi.com>
      * dwarf_frame.c (_dwarf_exec_frame_instr): Corrected test
        so that .o files (pre-relocation) are less likely to generate
	DW_DLE_DF_NEW_LOC_LESS_OLD_LOC error. Renamed local variable
	for better readability.
2005-04-13 David Anderson <davea@sgi.com>
      * dwarf_error.c: Error  codes 194 and 195 were missing
	strings, added them to table. 
      * dwarf_frame.c: Check for newer gcc .eh_frame
          augmentation strings and avoid trying to handle these
          for now.
      * dwarf_global.c: Add an error check for
          pubnames-style sections for bad offset.
      * dwarf_init_finish.c: Add dwarf_get_section_max_offsets()
          to allow clients to do additional error checking.
          This code will have to change again, so leaving it
          undocumented. As written it's not useful for COMDAT
          style DWARF sections.
      * libdwarf.h: Added prototype for dwarf_get_section_max_offsets().

2005-03-31 David Anderson <davea@sgi.com>
      * mips_extensions.mm: Documented  the libexc/.debug_funcnames
        dependency and the 64bit-offset DWARF extension.
      * mips_extensions.ps: Regenerated.

2005-03-21 David Anderson <davea@sgi.com>
      * dwarf_line.c: Added commentary.
      * libdwarf2.1.mm: Documented dwarf_lineendsequence() better.
      * libdwarf2.1.ps: Regenerated.
      * libdwarf.h: Added DW_DLE_FRAME_AUGMENTATION_UNKNOWN as
        error code 195.
      * dwarf_init_finish.c: Corrected comment spelling. 
      * dwarf_frame.h dwarf_frame.c: Added handling for 
        much (but not all) of gcc 3.3 gcc 3.4 .eh_frame
	'z' augmentation.  Gives error on attempting
        to get z augmentation data since such is not
        completely handled.

2005-03-18 David Anderson <davea@sgi.com>
      * dwarf_frame.h dwarf_frame.c: The gcc .eh_frame
        info did not print correctly so we now access the
	correct section data so it prints. Still no support
	for dwarf3 frame operators.
      * dwarf_macro.c: Detect end-of-macros properly
        (stopped too soon before).
	
2005-02-14 David Anderson <davea@sgi.com>
      * pro_incl.h: Added #elif defined(HAVE_LIBELF_H)
        enabling build on a platform missing normal elf.h.

2005-02-11 David Anderson <davea@sgi.com>
      * dwarf_base_types.h: Added DW_CIE_VERSION3 define.
      * dwarf_die_deliv.c: Allowed CURRENT_VERSION_STAMP3.
      * dwarf_frame.c: Allowed DW_CIE_VERSION3.
      *	dwarf_frame.h: Define DW_DEBUG_FRAME_VERSION3.
      *	dwarf_line.c: Allow CURRENT_VERSION_STAMP3.
      *	dwarf_line.h: Add lc_version_number to line structure.
      *	dwarf_opaque.h: Add CURRENT_VERSION_STAMP3 and comment showing
		version numbers (DWARF3 vs DWARF2) by DWARF section.

2004-11-21 David Anderson <davea@sgi.com>
     *  configure.in libdwarfdefs.h: Now tests more precisely for __uint32_t
	and __uint64_t (previous test was not sufficient for debian/mips). 
	Regenerated configure config.h.in.

2004-10-28 David Anderson <davea@sgi.com>
      * LIBDWARFCOPYRIGHT Makefile.in NEWS config.h dwarf_abbrev.c 
       dwarf_abbrev.h dwarf_addr_finder.c dwarf_alloc.c dwarf_alloc.h
        dwarf_arange.c dwarf_arange.h dwarf_base_types.h dwarf_die_deliv.c
        dwarf_die_deliv.h dwarf_error.c dwarf_error.h dwarf_form.c
        dwarf_frame.c dwarf_frame.h dwarf_funcs.c dwarf_funcs.h
        dwarf_global.c dwarf_global.h dwarf_incl.h dwarf_init_finish.c
	dwarf_leb.c dwarf_line.c dwarf_line.h dwarf_loc.c dwarf_loc.h
	dwarf_macro.c dwarf_macro.h dwarf_opaque.h dwarf_print_lines.c
	dwarf_query.c dwarf_sort_line.c dwarf_string.c dwarf_stubs.c
	dwarf_types.c dwarf_types.h dwarf_util.c dwarf_util.h
	dwarf_vars.c dwarf_vars.h dwarf_weaks.c dwarf_weaks.h
	libdwarfdefs.h pro_alloc.c pro_alloc.h pro_arange.c pro_arange.h
	pro_die.c pro_die.h pro_encode_nm.c pro_encode_nm.h pro_error.c
	pro_error.h pro_expr.c pro_expr.h pro_finish.c pro_forms.c
	pro_frame.c pro_frame.h pro_funcs.c pro_funcs.h pro_incl.h
	pro_init.c pro_line.c pro_line.h pro_macinfo.c pro_macinfo.h
	pro_opaque.h pro_pubnames.c pro_pubnames.h pro_reloc.c
	pro_reloc.h pro_reloc_stream.c pro_reloc_stream.h pro_reloc_symbolic.c
	pro_reloc_symbolic.h pro_section.c pro_section.h pro_types.c
	pro_types.h pro_util.c pro_util.h pro_vars.c pro_vars.h
	pro_weaks.c pro_weaks.h: Copyright update with
        2004 and new SGI official address.

2004-10-26 David Anderson <davea@sgi.com>
      * acconfig.h: removed. Was old style autoconf usage.
      * configure.in: Updated AC_DEFINE usage, adding args 2 & 3.
      * config.guess: Updated. timestamp='2004-06-11'.
      * config.sub: Updated.  timestamp='2004-03-12'.
      * configure config.h.in: regenerated with autoconf 2.58.

2004-06-09  David Anderson <davea@sgi.com>
      * dwarf_frame.c (_dwarf_exec_frame_instr):
        Was not setting ru_offset to 1 in DW_CFA_def_cfa_offset 
        case, now it does.

2004-02-24  David Anderson <davea@sgi.com>
      * dwarf_frame.c (_dwarf_exec_frame_instr):
        DW_CFA_def_cfa_register case, was setting offset, which
        is incorrect. Thanks to Tom Hughes <thh@cyberscience.com>
        for pointing this out.

2004-02-03 David Anderson <davea@sgi.com>
      * dwarf_util.h:  DECODE_LEB128_UWORD DECODE_LEB128_SWORD
        were simply wrong if  Dwarf_Word or
        Dwarf_Sword longer than 4 bytes. Upper bits left random. 
        Large values not extracted correctly.

2004-01-15 David Anderson <davea@sgi.com>
      * dwarf_alloc.c pro_alloc.c pro_init.c: changing BSD-ish bzero()
 	to posix-standard memset() calls.
      * configure.in: remove bstring.h test, add alloca.h test.
        No longer useing bzero, some environments have alloca 
	in malloc.h, no alloca.h.  If neither exist
        it's up to you to deal with it.
      * dwarf_line.c dwarf_print_lines.c dwarf_sort_line.c: Test
	HAVE_ALLOCA_H
      * configure config.h.in: regenerated

2003-12-31 David Anderson <davea@sgi.com>
      * dwarf_init_finish.c: added #error to detect and describe
  	absence of libelf.h.
      * README: Added mention of libelf.h requirement, minor
	cleanout of obsolete comments, added configure example.
      * Makefile.in: Removed bogus LIBS line, updated copyright date.
      * acconfig.h: Updated copyright date.
      * config.guess config.sub: new versions from automake-1.6.
      * config.h.in configure: Regenerated.

2003-12-15 David Anderson <davea@sgi.com>
      * dwarf_init_finish.c (_dwarf_setup): test for (section_size)
        was wrong for eh_frame section. Changed this one to
	(section_size == 0) so it is like all the others testing 
	section_size.  Thanks to David Mosberger 
	for pointing out this inconsistency.

2003-12-08 David Anderson <davea@sgi.com>
      * dwarf_line.h: reference in comment to li_dbg meant to
        refer to li_offset. Corrected and amplified comment.

2003-10-06 David Anderson <davea@sgi.com>
      * dwarf_abbrev.c dwarf_die_deliv.c dwarf_form.c dwarf_loc.c 
	dwarf_util.c: applied indent(1).

2003-10-02 David Anderson <davea@sgi.com>
      * dwarf_loc.c: Implemented dwarf_get_loclist_entry(),
        implemented new dwarf_loclist_n() fully implementing
        loclist support.
      * dwarf_stubs.c: removed dwarf_get_loclist_entry stub.
      * libdwarf2.1.mm: Documented dwarf_loclist_n() and
        updated documentation on dwarf_loclist().

2003-09-29 David Anderson <davea@sgi.com>
      * dwarf_abbrev.c: Ensure the .debug_abbrev section is loaded.
      * dwarf_arange.c dwarf_global.c: Recent dwarf committee 
    	discussions have revealed we were wrong in not allowing 
	padding in aranges.
      * dwarf_die_deliv.c dwarf_query.c: handle DW_FORM_indirect.
      * dwarf_form.c: Add dwarf_whatform_direct() so folks
	can report on DW_FORM_indirect use.
	Fill in new Dwarf_Locdesc fields.
      * dwarf_loc.c: Handle .debug_loc  partially.
	Fill in new Dwarf_Locdesc fields.
	Load .debug_loc if not present and if it's needed.
      * dwarf_opaque.h: Added ar_attribute_form_direct field
  	so we can report DW_FORM_indirect
	in libdwarf-using code (where such wants to).
      * dwarf_util.c: Don't confuse DW_FORM_indirect uleb length 
	with other lengths.
      * libdwarf2.1.mm: Document new function dwarf_whatform_direct()
	Not needed by ordinary clients, just for clients
	wanting to print certain debug info.

2003-04-15 Brian Ford <ford@vss.fsi.com>
      * configure.in (AC_C_BIGENDIAN): Move after AC_PROG_CC so a proper
        working compiler is used for the test.

2003-01-21 David Anderson <davea@sgi.com>
      * dwarf_die_deliv.c (dwarf_next_cu_header, dwarf_offdie):
	Add calls to dwarf_load_object() to load .debug_info, 
        .debug_abbrev
      * dwarf_init_finish.c (_dwarf_setup): Remove calls to
        dwarf_load_object for .debug_info, .debug_abbrev sections.
      * dwarf_opaque.h: Add new fields to Dwarf_Debug so
        we don't need to pre-load .debug_info, .debug_abbrev
      * dwarf_util.h: Fix READ_AREA_LENGTH macro so it uses
        only length itself to determine which format the
        length is.

2003-01-14 David Anderson <davea@sgi.com>
      * dwarf_loc.c: Made comment at head of dwarf_loclist()
      a bit clearer.

2002-11-22 Tom Hughes <thh@cyberscience.com>
      * dwarf_macro.c: Corrected bugs in macro-info functions.

2002-10-29 David Anderson <davea@sgi.com>
      * dwarf_init_finish.c: The libelf_sgi mods
      left a HAVE_ELF64_GETSHDR ifdef in the wrong place 
      so folks without Elf64 could not build. Fixed.

2002-10-21 David Anderson <davea@sgi.com>
      * dwarf_form.c: the form_ref functions were failing to
      add in cc_extension_size when checking for offset
      legality. Thanks to Kelly O'Hair <kelly.ohair@sun.com>
      for pointing out the 4 places this was wrong.
      Used cu_context local pointer to avoid numerous
      double indirections.

2002-08-14 David Anderson <davea@sgi.com>
      * dwarf_string.c (dwarf_get_str): Return
      DW_DLV_NO_ENTRY when offset is just at the end of the
      sections, making it possible to use dwarf_get_str
      to print the section independently.
      * libdwarf2.1.mm, libdwarf2.1.ps: Document the
      revised dwarf_get_str interface (which was not
      fully thought thru before).
      * dwarf_line.c (dwarf_srcfiles): Avoid core dump
      when DW_AT_comp_dir absent (it's not required).


2002-07-31 David Anderson <davea@sgi.com>
      * pro_types.c (_dwarf_transform_simplename_to_disk): correct
      generation of .debug_info size field.
      Thanks to Kelly O'Hair <kelly.ohair@sun.com> for pointing out
      the bug.

2002-05-23 Daniel Gohman <gohmandj@sgi.com>
      * dwarf_init_finish.c: Add support for using SGI's
      ELF library as an alternative to using AT&T-style
      libelf.
      Add a new function _dwarf_load_section to handle
      loading of sections.
      * dwarf_opaque.h: Add entries to Dwarf_Debug_s to
      store section indicies.
      * most consumer files: Load sections on demand so
      that unneeded sections don't get loaded.
      * dwarf_init_finish.c: Fixed an incorrect check for
      duplicate .eh_frame sections.

2002-04-25 Kelly O'Hair <kelly.ohair@sun.com>
      * pro_section.c (_dwarf_pro_generate_debuginfo): add
      required dwarf2 sec 7.5.3 trailing null byte 
      to .debug_abbrev per compilation-unit.

2002-03-31 David Anderson <davea@sgi.com>
      * dwarf_abbref.c (dwarf_get_abbrev): change 
      DW_DLE_DEBUG_ABBREV_NULL to DW_DLE_DWARF_ABBREV_NULL. 
      Former was wrong code.
      * libdwarf2.1.mm: correct argument reference, returned_abbrev
      not returned_fde in dwarf_get_abbrev discussion.
      
2002-03-07 David Anderson <davea@sgi.com>
      * libdwarf.h: added struct Elf declaration
      to reduce dependency on header include ordering. 

2002-02-11 David Anderson <davea@sgi.com>
      * libdwarf2.1.mm libdwarf2.1.ps:
      dwarf_offdie can return DW_DLV_NO_ENTRY and that
      is now documented.
      * dwarf_loc.c: if the length of a location description
      is zero that is ok, not an error. dwarf2 sec 2.4.1.

2002-01-10 David Anderson <davea@sgi.com>
      * dwarf_opaque.h, dwarf_init_finish.c: if libdwarf does
      the elf_begin() it must also do the elf_end() to
      avoid a memory leak, and now does this correctly.

2002-01-10  David Anderson <davea@sgi.com>
      * dwarf_init_finish.c:  Using a variable to
      hold ELF_C_READ_MMAP.  Really motivated by
      code not added to this source. 
      * dwarf_die_deliv.c: Added comments, moved
      a couple variables to local scope from function scope.

      * dwarf.h: Added some #defines which were specified in the Dwarf
      2.1 Dwarf draft 5 (now called dwarf 3 draft 5).

2001-09-18  David Anderson davea@sgi.com
	* all files: applied gnu indent with
	-bad -bap -nbbo -br -ce -brs 
	-l72  -lc72  -hnl  -nprs  
	-fca -i4  -lp -psl -npcs 
	Code should use this set in libdwarf.


2001-08-21  "kelly o'hair" <kelly.ohair@eng.sun.com>
	* pro_section.c:  If one called dwarf_add_file_decl()
	  or dwarf_add_directory_decl() but never added a line,
	  .debug_line was not produced.  This was a mistake,
	  as if any file or directory was provided .debug_line
	  should be produced. 

2001-08-06  davea@sgi.com
	* libdwarf2.1.mm: documented dwarf_dealloc rules
	  more clearly. (.ps updated too)
	* mips_extensions.mm: documented the way SGI
	  gets frame stack pointer out of debug_frame.
	  (.ps updated too)

2001-06-14  davea@sgi.com
	* dwarf_leb.c: changed around where bytes counted in
	  _dwarf_decode_s_leb128 so it's easier to tell it is correct.
	  And removed one loop completely: it was
	  an early attempt at performance improvement and
	  is no longer relevant.

	* dwarf_global.c: added new 
	  dwarf_get_cu_die_offset_given_cu_header_offset function
	  to get CU die offset (as the long name says).
	  A variety of functions return cu-header-offsets, so
	  this is useful at times.
	  Used locals to reduce the number of indirections
	  and make things easier to follow.

	* dwarf_arange.c: added new dwarf_get_arange_cu_header_offset
	  function so dwarfdump could print the cu header offset
	  (which appears in the arange headers).

	* libdwarf2.1.mm: documented the above new functions.

2001-06-07  davea@sgi.com
	* dwarf_leb.c: shift operator was not being applied
	  to full size of Dwarf_Signed/Unsigned for 64bit
	  Dwarf_Signed/Unsigned (ILP32 compile) so
	  large numbers not decoded if signed.
	* pro_encode_nm.c: added {} in a couple if/else
          for 'clarity' and to make inserting debug printf easier.
	* pro_expr.c: Added comments explaining why possible
	  compiler (gcc) warnings are ok, the result is safe. 

2001-05-30  davea@sgi.com
	* pro_reloc_stream.c: Wrote Set_REL32_info and 
	  Set_REL64_info macros
	  from generic ELF abi documents to make use acceptable
	  when IRIX elfaccess.h is not available.

2001-05-30  "kelly o'hair" <kelly.ohair@eng.sun.com>
	* Makefile.in: was missing   pro_macinfo.o
 	  pro_encode_nm.o dwarf_macro.o from the OBJS list.

2001-05-22  davea@sgi.com
	* dwarf_frame.c, pro_expr.c: Added comments on why
	  casts are safe in spite of gcc warnings (4 places total).

2001-05-18  Dan Gritter <dgritter@us.ibm.com>
	* dwarf_loc.c DW_OP_bregx operands are unsigned
	  reg num followed by signed offset.

2001-04-11  David Anderson <davea@sgi.com>
	* dwarf_die_deliv.c: check for 0 abbreviation code
	  and return a 'no entry' return value when found.
	  (normal dwarf2, 0 means no DIE, the end of some set of DIEs.)

2001-01-16  David Anderson <davea@sgi.com>

	* pro_die.c: set ar_reloc_len field
	in all cases.

2000-12-14  David Anderson <davea@sgi.com>

	* dwarf_frame.h: clarified some comments.

2000-12-14  Ulrich Drepper <drepper@cygnus.com>

        * dwarf_line.c: Now sets DW_LNE_end_sequence to
        default_is_stmt, the correct value, not is_stmt.


2000 Aug 24  davea@sgi.com
  dwarf_error.c: a dwarf_init() failure resulted in this
	using a static Dwarf_Error struct. And dwarf_dealloc
	did not deal properly with that. 
  dwarf_alloc.c dwarf_alloc.h: these had DYNAMIC_CHUNK protected code
  	which was never used.  Deleted the unused code. Added a small
  	comment (hopefully useful) to dwarf_alloc.h.

	And now deals correctly with a null dbg  on
	DW_DLA_ERROR  due to failed
	dwarf_init() call (or due to other error in calling
	libdwarf that results in libdwarf not knowing the dbg,
	a likely far more common case) and frees the memory.
	This used to result in chaos (depending on your
	luck...).

2000 Aug 23  davea@sgi.com
  libdwarf2.1.mm, ps.  Failed to mention that dwarf_finish()
  has to be accompanied by elf_end() if dwarf_init() was used
  to initialize libdwarf to truly release all stuff.
  Added text to dwarf_finish() describing how to do that.
2000 April 14  davea@sgi.com

  dwarf_abbrev.c - 1.22
        - When it is a null abbrev entry, return it correctly so it can be
          printed (meaning fill out all the return-parameters so the caller can
          do the right thing).

  dwarf_init_finish.c - 1.48
        - For most sections, simply having an empty section (present but empty)
          is just fine. There is no reason to register an error in such a case.

  Copyright has changed. See LIBDWARFCOPYRIGHT and NEWS

  dwarfdump/print_die.c - 1.42
        - Explain what combo checker is doing and make it more maintainable (and          fix bug which would not be hit, but was real enough).

  dwarfdump/tag_tree.list - 1.2
        - Add valid parent/child relationships so checker does not report valid
          entries as bogus.

  dwarf_form.c - 1.26
        - Correct dwarf reader to use appropriate size, not de_length_size. This          is part of the handling of the new dwarf2 64bit facilities. I
          overlooked this small aspect before in one place
  dwarf_query.c - 1.48
        - Use correct size, not de_length_size. For offset size.
  libdwarf2.1.mm - 1.41
        - Tried to make frame register output args meaning clearer
  libdwarf2.1.ps - 1.19
        - Tried to make frame register output args meaning clearer
  pro_forms.c - 1.33
        - Get ref4, not ref8 when generating 32bit dwarf per original dwarf2
          spec. even if pointer size is 64 bits.
  pro_init.c - 1.18
        - Get ref4, not ref8 when generating 32bit dwarf per original dwarf2
          spec. even if pointer size is 64 bits.


davea@sgi.com


2000 March 7
dwarf_line.c - 1.48
dwarf_line.h - 1.16
dwarf_print_lines.c - 1.10
dwarf_sort_line.c - 1.8
        - Now handles opcode_base of line section to be other than that at
          compile time of libdwarf.
Important as the dwarf2 committee is adding a new standard opcode  
davea@sgi.com

2000 Feb 24
pro_forms.c  1.31 ar_next field not always zeroed before.
Could lead to infinite loop in the producer code.
Now the field is always zeroed.

Makefile.in - 1.3 Jason Merrill <jason@cygnus.com>  
 provided fix so gcc will work on libdwarf
print_sections.c - 1.54 - casts to avoid warnings

davea@sgi.com


1999 Dec 14
acconfig.h - 1.3
config.h.in - 1.5
configure - 1.4
configure.in - 1.5
        - HAVE_DWARF2_99_EXTENSION HAVE_OLD_DWARF2_32BIT_OFFSET
          refinements added.
CHANGES - 1.3
Makefile.base - 1.98
NEWS - 1.5
config.h - 1.4
config.h.in - 1.4
configure.in - 1.4
dwarf_alloc.c - 1.36
dwarf_arange.c - 1.19
dwarf_arange.h - 1.6
dwarf_die_deliv.c - 1.51
dwarf_frame.c - 1.62
dwarf_frame.h - 1.23
dwarf_funcs.c - 1.10
dwarf_funcs.h - 1.3
dwarf_global.c - 1.21
dwarf_global.h - 1.7
dwarf_init_finish.c - 1.45
dwarf_line.c - 1.44
dwarf_opaque.h - 1.52
dwarf_print_lines.c - 1.8
dwarf_query.c - 1.45
dwarf_types.c - 1.10
dwarf_types.h - 1.3
dwarf_util.c - 1.40
dwarf_util.h - 1.22
dwarf_vars.c - 1.11
dwarf_vars.h - 1.3
dwarf_weaks.c - 1.10
dwarf_weaks.h - 1.3
libdwarf2.1.mm - 1.40
libdwarf2.1.ps - 1.18
pro_arange.c - 1.15
pro_die.c - 1.23
pro_frame.c - 1.29
pro_init.c - 1.15
pro_macinfo.c - 1.7
pro_opaque.h - 1.14
pro_pubnames.c - 1.18
pro_reloc_stream.c - 1.5
pro_section.c - 1.70
pro_section.h - 1.16
pro_types.c - 1.12
        - Allowing generation of correct dwarf2 with the 1999 64bit dwarf
          extension, and reading all forms of dwarf2 compatibly (all 32/64bit
          dwarf2 section  forms).

This adds the ability to consume and produce both sgi 64bit
and the new dwarf2 committee-approved 64bit dwarf extension.
As a result of the new dwarf2 stuff , a producer (compiler)
can mix 32 and 64bit dwarf (for a 64bit object) and the
linker will work seamlessly.  (as long as section sizes don't
get over 2GBytes).

And the producer is easily configured to produce mips/sgi style
64bit dwarf or the new form of 64bit dwarf.

This also eliminates a fair amount of rather silly duplicated code.
davea@sgi.com


1999 Nov 4

pro_section.c - 1.69
        - A pointer size entity had an offset-size value used at one place.
davea@sgi.com

1999 Sep 30
dwarf_arange.c - 1.18
        - Changed // comment to /* */.  // failed to compile 
          with C89 compiler...
davea@sgi.com


1999 Sep 29
Changed all the producer code
substantially to allow generating assembler code
for the dwarf2 (rather similar to what gcc does)
allowing symbolic relocations.
MIPS output still generates the binary form.
davea@sgi.com



1999 Aug 20
Stan Shebs (shebs@cygnus.com) pointed out that the pro_util.h
use of R_MIPS* was a problem compiling on Sun.
Since the producer code is not really used at present except for
MIPS/sgi, I've added #ifndefs to pro_util.h which provide zero values
when <elf.h> does not provide the macros.
When anyone needs the producer code to actually *work* for non-MIPS
something better will have to be done.

This has no effect on those simply compiling libdwarf for 
use by dwarfdump.
davea@sgi.com

1999 July 21
Changed the READ_UNALAGNED macro to call a function
depending on endianness of the host and the object being read.
So all the dwarf_* source changed in a trivial way.
Added support for printing egcs eh_frame section.
Added a local memcpy-like function to do the cross-endian
thing where applicable (called by READ_UNALIGNED macro). 
Because the .eh_frame section 
after linking can have some zeroed out bytes at the
end of the CIE/FDE data the code looking for CIEs and FDEs
now assumes a zero CIE/FDE length means it has reached
the end of the CIE/FDE data.
davea@sgi.com


1999 June 14
  Fred Fish fnf@ninemoons.com contributed
  autoconf'ing of the libdwarf and dwarfdump source.  
  

  mips_extensions.*  Documented additional old errors
  in the Dwarf Version 2 spec.

  The ChangeLog before this is incomplete. 

-------------------------------------------------------------
Since Oct 95 and before May, 1996 davea@sgi.com David Anderson

Added the function dwarf_get_cie_of_fde() which makes it possible
to remember a single fde/cie set out of a block usefully.

Enhanced doc of dwarf_bitoffset()

Added new function dwarf_global_formref() so all reference
forms can be retrieved.

Fixed bug in retrieving array bounds: was failing to sign extend
formsdata.

Added function dwarf_get_fde_info_for_all_regs(), which makes
retrieval of the complete set of registers (as needed by
debuggers and exception handlers) effectively N times faster
than getting them one a time where N is the number of registers.

Added support for exception table handling (really just support
for a reference to an exception table for c++ exceptions).

Fixed a bug where useless extra space (several megabytes)
were malloc'ed for the abbreviations table by the libdwarf
consumer code.

-------------------------------------------------------------
June 10, 1999
 Changelog started.
-------------------------------------------------------------