rdwarf 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +28 -0
  6. data/README.md +39 -0
  7. data/Rakefile +8 -0
  8. data/bin/console +14 -0
  9. data/bin/setup +7 -0
  10. data/ext/rdwarf/depend +5 -0
  11. data/ext/rdwarf/extconf.rb +29 -0
  12. data/ext/rdwarf/libdwarf/CHANGES +102 -0
  13. data/ext/rdwarf/libdwarf/CODINGSTYLE +71 -0
  14. data/ext/rdwarf/libdwarf/COPYING +28 -0
  15. data/ext/rdwarf/libdwarf/ChangeLog +619 -0
  16. data/ext/rdwarf/libdwarf/ChangeLog2006 +835 -0
  17. data/ext/rdwarf/libdwarf/ChangeLog2007 +217 -0
  18. data/ext/rdwarf/libdwarf/ChangeLog2008 +263 -0
  19. data/ext/rdwarf/libdwarf/ChangeLog2009 +348 -0
  20. data/ext/rdwarf/libdwarf/ChangeLog2010 +175 -0
  21. data/ext/rdwarf/libdwarf/ChangeLog2011 +297 -0
  22. data/ext/rdwarf/libdwarf/ChangeLog2012 +131 -0
  23. data/ext/rdwarf/libdwarf/ChangeLog2013 +238 -0
  24. data/ext/rdwarf/libdwarf/ChangeLog2014 +399 -0
  25. data/ext/rdwarf/libdwarf/LGPL.txt +504 -0
  26. data/ext/rdwarf/libdwarf/LIBDWARFCOPYRIGHT +40 -0
  27. data/ext/rdwarf/libdwarf/Makefile.in +220 -0
  28. data/ext/rdwarf/libdwarf/NEWS +535 -0
  29. data/ext/rdwarf/libdwarf/README +235 -0
  30. data/ext/rdwarf/libdwarf/checkexamples.c +1179 -0
  31. data/ext/rdwarf/libdwarf/cmplrs/dwarf_addr_finder.h +55 -0
  32. data/ext/rdwarf/libdwarf/common.c +62 -0
  33. data/ext/rdwarf/libdwarf/common.h +38 -0
  34. data/ext/rdwarf/libdwarf/config.h.in +146 -0
  35. data/ext/rdwarf/libdwarf/configure +5581 -0
  36. data/ext/rdwarf/libdwarf/configure.in +167 -0
  37. data/ext/rdwarf/libdwarf/dw-linetableheader.txt +39 -0
  38. data/ext/rdwarf/libdwarf/dwarf.h +1342 -0
  39. data/ext/rdwarf/libdwarf/dwarf_abbrev.c +291 -0
  40. data/ext/rdwarf/libdwarf/dwarf_abbrev.h +45 -0
  41. data/ext/rdwarf/libdwarf/dwarf_addr_finder.c +676 -0
  42. data/ext/rdwarf/libdwarf/dwarf_alloc.c +685 -0
  43. data/ext/rdwarf/libdwarf/dwarf_alloc.h +38 -0
  44. data/ext/rdwarf/libdwarf/dwarf_arange.c +595 -0
  45. data/ext/rdwarf/libdwarf/dwarf_arange.h +62 -0
  46. data/ext/rdwarf/libdwarf/dwarf_base_types.h +157 -0
  47. data/ext/rdwarf/libdwarf/dwarf_die_deliv.c +1802 -0
  48. data/ext/rdwarf/libdwarf/dwarf_die_deliv.h +46 -0
  49. data/ext/rdwarf/libdwarf/dwarf_elf_access.c +1348 -0
  50. data/ext/rdwarf/libdwarf/dwarf_elf_access.h +46 -0
  51. data/ext/rdwarf/libdwarf/dwarf_error.c +492 -0
  52. data/ext/rdwarf/libdwarf/dwarf_error.h +53 -0
  53. data/ext/rdwarf/libdwarf/dwarf_form.c +1302 -0
  54. data/ext/rdwarf/libdwarf/dwarf_frame.c +2454 -0
  55. data/ext/rdwarf/libdwarf/dwarf_frame.h +418 -0
  56. data/ext/rdwarf/libdwarf/dwarf_frame2.c +1533 -0
  57. data/ext/rdwarf/libdwarf/dwarf_frame3.c +282 -0
  58. data/ext/rdwarf/libdwarf/dwarf_funcs.c +123 -0
  59. data/ext/rdwarf/libdwarf/dwarf_funcs.h +33 -0
  60. data/ext/rdwarf/libdwarf/dwarf_gdbindex.c +520 -0
  61. data/ext/rdwarf/libdwarf/dwarf_gdbindex.h +97 -0
  62. data/ext/rdwarf/libdwarf/dwarf_global.c +612 -0
  63. data/ext/rdwarf/libdwarf/dwarf_global.h +117 -0
  64. data/ext/rdwarf/libdwarf/dwarf_harmless.c +228 -0
  65. data/ext/rdwarf/libdwarf/dwarf_harmless.h +31 -0
  66. data/ext/rdwarf/libdwarf/dwarf_incl.h +61 -0
  67. data/ext/rdwarf/libdwarf/dwarf_init_finish.c +1263 -0
  68. data/ext/rdwarf/libdwarf/dwarf_leb.c +159 -0
  69. data/ext/rdwarf/libdwarf/dwarf_line.c +1822 -0
  70. data/ext/rdwarf/libdwarf/dwarf_line.h +446 -0
  71. data/ext/rdwarf/libdwarf/dwarf_line2.c +98 -0
  72. data/ext/rdwarf/libdwarf/dwarf_line_table_reader_common.c +1583 -0
  73. data/ext/rdwarf/libdwarf/dwarf_loc.c +1525 -0
  74. data/ext/rdwarf/libdwarf/dwarf_loc.h +149 -0
  75. data/ext/rdwarf/libdwarf/dwarf_loc2.c +833 -0
  76. data/ext/rdwarf/libdwarf/dwarf_macro.c +479 -0
  77. data/ext/rdwarf/libdwarf/dwarf_macro.h +35 -0
  78. data/ext/rdwarf/libdwarf/dwarf_opaque.h +778 -0
  79. data/ext/rdwarf/libdwarf/dwarf_original_elf_init.c +219 -0
  80. data/ext/rdwarf/libdwarf/dwarf_print_lines.c +631 -0
  81. data/ext/rdwarf/libdwarf/dwarf_pubtypes.c +132 -0
  82. data/ext/rdwarf/libdwarf/dwarf_query.c +1594 -0
  83. data/ext/rdwarf/libdwarf/dwarf_ranges.c +194 -0
  84. data/ext/rdwarf/libdwarf/dwarf_reloc_arm.h +308 -0
  85. data/ext/rdwarf/libdwarf/dwarf_reloc_mips.h +117 -0
  86. data/ext/rdwarf/libdwarf/dwarf_reloc_ppc.h +242 -0
  87. data/ext/rdwarf/libdwarf/dwarf_reloc_ppc64.h +272 -0
  88. data/ext/rdwarf/libdwarf/dwarf_reloc_x86_64.h +127 -0
  89. data/ext/rdwarf/libdwarf/dwarf_sort_line.c +665 -0
  90. data/ext/rdwarf/libdwarf/dwarf_string.c +82 -0
  91. data/ext/rdwarf/libdwarf/dwarf_stubs.c +38 -0
  92. data/ext/rdwarf/libdwarf/dwarf_tied.c +423 -0
  93. data/ext/rdwarf/libdwarf/dwarf_tsearch.h +125 -0
  94. data/ext/rdwarf/libdwarf/dwarf_tsearchhash.c +675 -0
  95. data/ext/rdwarf/libdwarf/dwarf_types.c +121 -0
  96. data/ext/rdwarf/libdwarf/dwarf_types.h +32 -0
  97. data/ext/rdwarf/libdwarf/dwarf_util.c +913 -0
  98. data/ext/rdwarf/libdwarf/dwarf_util.h +324 -0
  99. data/ext/rdwarf/libdwarf/dwarf_vars.c +125 -0
  100. data/ext/rdwarf/libdwarf/dwarf_vars.h +29 -0
  101. data/ext/rdwarf/libdwarf/dwarf_weaks.c +123 -0
  102. data/ext/rdwarf/libdwarf/dwarf_weaks.h +29 -0
  103. data/ext/rdwarf/libdwarf/dwarf_xu_index.c +579 -0
  104. data/ext/rdwarf/libdwarf/dwarf_xu_index.h +68 -0
  105. data/ext/rdwarf/libdwarf/dwgetopt.c +181 -0
  106. data/ext/rdwarf/libdwarf/dwgetopt.h +51 -0
  107. data/ext/rdwarf/libdwarf/gennames.c +531 -0
  108. data/ext/rdwarf/libdwarf/install.sh +119 -0
  109. data/ext/rdwarf/libdwarf/libdwarf.h.in +3746 -0
  110. data/ext/rdwarf/libdwarf/libdwarf2.1.mm +9805 -0
  111. data/ext/rdwarf/libdwarf/libdwarf2.1.pdf +0 -0
  112. data/ext/rdwarf/libdwarf/libdwarf2p.1.mm +2807 -0
  113. data/ext/rdwarf/libdwarf/libdwarf2p.1.pdf +0 -0
  114. data/ext/rdwarf/libdwarf/libdwarfdefs.h +81 -0
  115. data/ext/rdwarf/libdwarf/malloc_check.c +327 -0
  116. data/ext/rdwarf/libdwarf/malloc_check.h +52 -0
  117. data/ext/rdwarf/libdwarf/mips_extensions.mm +1266 -0
  118. data/ext/rdwarf/libdwarf/mips_extensions.pdf +0 -0
  119. data/ext/rdwarf/libdwarf/pro_alloc.c +179 -0
  120. data/ext/rdwarf/libdwarf/pro_alloc.h +33 -0
  121. data/ext/rdwarf/libdwarf/pro_arange.c +310 -0
  122. data/ext/rdwarf/libdwarf/pro_arange.h +51 -0
  123. data/ext/rdwarf/libdwarf/pro_die.c +431 -0
  124. data/ext/rdwarf/libdwarf/pro_die.h +59 -0
  125. data/ext/rdwarf/libdwarf/pro_encode_nm.c +108 -0
  126. data/ext/rdwarf/libdwarf/pro_encode_nm.h +39 -0
  127. data/ext/rdwarf/libdwarf/pro_error.c +96 -0
  128. data/ext/rdwarf/libdwarf/pro_error.h +43 -0
  129. data/ext/rdwarf/libdwarf/pro_expr.c +575 -0
  130. data/ext/rdwarf/libdwarf/pro_expr.h +36 -0
  131. data/ext/rdwarf/libdwarf/pro_finish.c +45 -0
  132. data/ext/rdwarf/libdwarf/pro_forms.c +1271 -0
  133. data/ext/rdwarf/libdwarf/pro_frame.c +572 -0
  134. data/ext/rdwarf/libdwarf/pro_frame.h +120 -0
  135. data/ext/rdwarf/libdwarf/pro_funcs.c +50 -0
  136. data/ext/rdwarf/libdwarf/pro_incl.h +91 -0
  137. data/ext/rdwarf/libdwarf/pro_init.c +327 -0
  138. data/ext/rdwarf/libdwarf/pro_line.c +373 -0
  139. data/ext/rdwarf/libdwarf/pro_line.h +112 -0
  140. data/ext/rdwarf/libdwarf/pro_macinfo.c +457 -0
  141. data/ext/rdwarf/libdwarf/pro_macinfo.h +31 -0
  142. data/ext/rdwarf/libdwarf/pro_opaque.h +513 -0
  143. data/ext/rdwarf/libdwarf/pro_pubnames.c +60 -0
  144. data/ext/rdwarf/libdwarf/pro_reloc.c +253 -0
  145. data/ext/rdwarf/libdwarf/pro_reloc.h +38 -0
  146. data/ext/rdwarf/libdwarf/pro_reloc_stream.c +256 -0
  147. data/ext/rdwarf/libdwarf/pro_reloc_stream.h +52 -0
  148. data/ext/rdwarf/libdwarf/pro_reloc_symbolic.c +245 -0
  149. data/ext/rdwarf/libdwarf/pro_reloc_symbolic.h +45 -0
  150. data/ext/rdwarf/libdwarf/pro_section.c +2233 -0
  151. data/ext/rdwarf/libdwarf/pro_section.h +100 -0
  152. data/ext/rdwarf/libdwarf/pro_types.c +274 -0
  153. data/ext/rdwarf/libdwarf/pro_types.h +34 -0
  154. data/ext/rdwarf/libdwarf/pro_util.h +38 -0
  155. data/ext/rdwarf/libdwarf/pro_vars.c +52 -0
  156. data/ext/rdwarf/libdwarf/pro_weaks.c +51 -0
  157. data/ext/rdwarf/rdwarf.c +765 -0
  158. data/ext/rdwarf/rdwarf.h +52 -0
  159. data/ext/rdwarf/rdwarf_names_gen.rb +109 -0
  160. data/lib/rdwarf.rb +181 -0
  161. data/lib/rdwarf/version.rb +3 -0
  162. data/rdwarf.gemspec +30 -0
  163. metadata +251 -0
@@ -0,0 +1,40 @@
1
+
2
+
3
+ ======
4
+ Update January 31, 2015:
5
+ The SGI postal address and oss.sgi.com address
6
+ in the original copyright are no longer correct.
7
+ So the final 8 lines of the original copyright
8
+ have been deleted from the current copyright.
9
+
10
+ ====== original copyright example.
11
+ Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
12
+
13
+ This program is free software; you can redistribute it and/or modify it
14
+ under the terms of version 2.1 of the GNU Lesser General Public License
15
+ as published by the Free Software Foundation.
16
+
17
+ This program is distributed in the hope that it would be useful, but
18
+ WITHOUT ANY WARRANTY; without even the implied warranty of
19
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20
+
21
+ Further, this software is distributed without any warranty that it is
22
+ free of the rightful claim of any third person regarding infringement
23
+ or the like. Any license provided herein, whether implied or
24
+ otherwise, applies only to this software file. Patent licenses, if
25
+ any, provided herein do not apply to combinations of this program with
26
+ other software, or any other product whatsoever.
27
+
28
+ You should have received a copy of the GNU Lesser General Public
29
+ License along with this program; if not, write the Free Software
30
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
31
+ USA.
32
+
33
+ Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
34
+ Mountain View, CA 94043, or:
35
+
36
+ http://www.sgi.com
37
+
38
+ For further information regarding this notice, see:
39
+
40
+ http://oss.sgi.com/projects/GenInfo/NoticeExplan
@@ -0,0 +1,220 @@
1
+ #
2
+ #
3
+ # Copyright (C) 2000,2003,2004,2006 Silicon Graphics, Inc. All Rights Reserved.
4
+ # Portions Copyright (C) 2010 David B Anderson. All Rights Reserved.
5
+ #
6
+ # This program is free software; you can redistribute it and/or modify it
7
+ # under the terms of version 2.1 of the GNU Lesser General Public License
8
+ # as published by the Free Software Foundation.
9
+ #
10
+ # This program is distributed in the hope that it would be useful, but
11
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
+ #
14
+ # Further, this software is distributed without any warranty that it is
15
+ # free of the rightful claim of any third person regarding infringement
16
+ # or the like. Any license provided herein, whether implied or
17
+ # otherwise, applies only to this software file. Patent licenses, if
18
+ # any, provided herein do not apply to combinations of this program with
19
+ # other software, or any other product whatsoever.
20
+ #
21
+ # You should have received a copy of the GNU Lesser General Public
22
+ # License along with this program; if not, write the Free Software
23
+ # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
24
+ # USA.
25
+
26
+ #
27
+ # Makefile for libdwarf
28
+ # This is made very simple so it should work with
29
+ # any 'make'.
30
+ #
31
+
32
+ srcdir = @srcdir@
33
+ VPATH = @srcdir@
34
+
35
+ prefix = @prefix@
36
+ exec_prefix = @exec_prefix@
37
+ bindir = $(exec_prefix)/bin
38
+ libdir = $(exec_prefix)/lib
39
+
40
+ INSTALL = @INSTALL@
41
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
42
+ INSTALL_DATA = @INSTALL_DATA@
43
+ SHELL = /bin/sh
44
+ CC = @CC@
45
+ AR = @AR@
46
+ # For use with BSD ar (MacOSX ar) edit the ARFLAGS to be -s
47
+ #ARFLAGS = @ARFLAGS@
48
+ RM = rm
49
+ RANLIB = @RANLIB@
50
+ DEFS = @DEFS@
51
+ LIBS = @LIBS@
52
+ INCLUDES = -I. -I$(srcdir)
53
+ dwfpic = @dwfpic@
54
+ dwfwall = @dwfwall@
55
+ CFLAGS = $(PREINCS) @CFLAGS@ $(INCLUDES) $(dwfpic) $(dwfwall) $(POSTINCS)
56
+ LDFLAGS = $(PRELIBS) @LDFLAGS@ $(POSTLIBS)
57
+
58
+ # These three files are only appropriate for SGI IRIX.
59
+ # There is no reason to think these are of any use to anyone else.
60
+ # As of October 2015 they are removed from OBJS
61
+ # dwarf_addr_finder.o
62
+ # dwarf_sort_line.o
63
+ # dwarf_line2.o
64
+
65
+ BUILD_BASE = .
66
+
67
+ OBJS= dwarf_abbrev.o \
68
+ dwarf_alloc.o \
69
+ dwarf_arange.o \
70
+ dwarf_die_deliv.o \
71
+ dwarf_elf_access.o \
72
+ dwarf_error.o \
73
+ dwarf_form.o \
74
+ dwarf_frame.o \
75
+ dwarf_frame2.o \
76
+ dwarf_frame3.o \
77
+ dwarf_funcs.o \
78
+ dwarf_gdbindex.o \
79
+ dwarf_global.o \
80
+ dwarf_harmless.o \
81
+ dwarf_init_finish.o \
82
+ dwarf_leb.o \
83
+ dwarf_line.o \
84
+ dwarf_loc.o \
85
+ dwarf_macro.o \
86
+ dwarf_original_elf_init.o \
87
+ dwarf_pubtypes.o \
88
+ dwarf_query.o \
89
+ dwarf_ranges.o \
90
+ dwarf_string.o \
91
+ dwarf_stubs.o \
92
+ dwarf_tied.o \
93
+ dwarf_tsearchhash.o \
94
+ dwarf_types.o \
95
+ dwarf_util.o \
96
+ dwarf_vars.o \
97
+ dwarf_weaks.o \
98
+ dwarf_xu_index.o \
99
+ dwarf_print_lines.o \
100
+ malloc_check.o \
101
+ pro_alloc.o \
102
+ pro_arange.o \
103
+ pro_die.o \
104
+ pro_encode_nm.o \
105
+ pro_error.o \
106
+ pro_expr.o \
107
+ pro_finish.o \
108
+ pro_forms.o \
109
+ pro_funcs.o \
110
+ pro_frame.o \
111
+ pro_init.o \
112
+ pro_line.o \
113
+ pro_reloc.o \
114
+ pro_reloc_stream.o \
115
+ pro_reloc_symbolic.o \
116
+ pro_pubnames.o \
117
+ pro_section.o \
118
+ pro_types.o \
119
+ pro_vars.o \
120
+ pro_macinfo.o \
121
+ pro_weaks.o
122
+
123
+
124
+ all: @build_shared@ @build_nonshared@
125
+
126
+ libdwarf.a: dwarf_names.h dwarf_names.c $(OBJS) dwarf_names.o
127
+ $(AR) $(ARFLAGS) $@ $(OBJS) dwarf_names.o > ar-output-temp
128
+
129
+ libdwarf.so: dwarf_names.h dwarf_names.c $(OBJS) dwarf_names.o
130
+ $(CC) $(CFLAGS) -shared $(OBJS) dwarf_names.o -o $@
131
+
132
+ none:
133
+ echo "do nothing " $@
134
+ dwgetopt.o: $(srcdir)/dwgetopt.c $(srcdir)/dwgetopt.h
135
+ $(CC) $(CFLAGS) -c $(srcdir)/dwgetopt.c
136
+ dwarf_loc.o: $(srcdir)/dwarf_loc.c $(srcdir)/dwarf_loc2.c $(srcdir)/dwarf_loc.h
137
+ $(CC) $(CFLAGS) -c $(srcdir)/dwarf_loc.c
138
+ common.o: $(srcdir)/common.c $(srcdir)/common.h
139
+ $(CC) $(CFLAGS) -c $(srcdir)/common.c
140
+ gennames: $(srcdir)/gennames.c $(srcdir)/dwarf.h common.o dwgetopt.o
141
+ $(CC) $(CFLAGS) $(srcdir)/gennames.c common.o dwgetopt.o $(LDFLAGS) -o gennames
142
+ dwarf_names.h: dwarf_names.c
143
+ dwarf_names.c: gennames $(srcdir)/dwarf.h
144
+ rm -f dwarf_names.h dwarf_names.c
145
+ ./gennames @dwarf_namestable@ -i $(srcdir) -o .
146
+
147
+ dwarf_line.o: $(srcdir)/dwarf.h libdwarf.h $(srcdir)/dwarf_line_table_reader_common.c $(srcdir)/dwarf_line.c
148
+ $(CC) $(CFLAGS) -c $(srcdir)/dwarf_line.c -o $@
149
+ dwarf_print_lines.o: $(srcdir)/dwarf.h libdwarf.h $(srcdir)/dwarf_line_table_reader_common.c $(srcdir)/dwarf_print_lines.c
150
+ $(CC) $(CFLAGS) -c $(srcdir)/dwarf_print_lines.c -o $@
151
+
152
+
153
+ #
154
+ # The following are very SGI-centric
155
+ # psroff is just a troff formatter.
156
+ # the .mm files are in ATT/USL/USG mm form.
157
+ # Calling it pdfbld or bldpdf is arbitrary, so allow both.
158
+
159
+ docbld:pdfbld
160
+ bldpdf: pdfbld
161
+ pdfbld: libdwarf2.1.pdf libdwarf2p.1.pdf mips_extensions.pdf
162
+ #Oriented to using gsroff now.
163
+ TROFF=/usr/bin/groff
164
+ TROFFDEV="-T ps"
165
+ TROFFDEV=
166
+ PSTOPDF=/usr/bin/ps2pdf
167
+ # pr expands tabs to spaces: this avoids problems with tab
168
+ # interpretation
169
+
170
+ # The warning about 'cant break line' is a too-long line used
171
+ # in the table of contents.
172
+ # Ignore the warning (and those like it).
173
+ libdwarf2.1.pdf: $(BUILD_BASE)/libdwarf2.1.mm
174
+ -pr -t -e $(BUILD_BASE)/libdwarf2.1.mm \
175
+ | tbl | $(TROFF) $(TROFFDEV) -mm >libdwarf2.1.ps
176
+ $(PSTOPDF) libdwarf2.1.ps libdwarf2.1.pdf
177
+
178
+ libdwarf2p.1.pdf: $(BUILD_BASE)/libdwarf2p.1.mm
179
+ -pr -t -e $(BUILD_BASE)/libdwarf2p.1.mm \
180
+ | tbl | $(TROFF) $(TROFFDEV) -mm >libdwarf2p.1.ps
181
+ $(PSTOPDF) libdwarf2p.1.ps libdwarf2p.1.pdf
182
+
183
+ mips_extensions.pdf: mips_extensions.mm
184
+ -pr $(TROFFDEV) -e mips_extensions.mm | tbl | \
185
+ $(TROFF) $(TROFFDEV) -mm >mips_extensions.ps
186
+ $(PSTOPDF) mips_extensions.ps mips_extensions.pdf
187
+
188
+ clean:
189
+ rm -f *.o libdwarf.a
190
+ rm -f libdwarf.so
191
+ rm -f libdwarf2.1.ps
192
+ rm -f mips_extensions.ps
193
+ rm -f libdwarf2p.1.ps
194
+ rm -f gennames
195
+ rm -f ar-output-temp
196
+ rm -f junk
197
+ rm -f ALL
198
+ rm -f gennames
199
+ rm -f dwarf_names_enum.h dwarf_names_new.h dwarf_names.c dwarf_names.h
200
+ rm -f ./dwarftied
201
+
202
+ install: all
203
+ echo "No install provided, see comments in the README"
204
+
205
+ distclean: clean
206
+ rm -f config.status config.log config.cache config.h
207
+ rm -rf autom4te.cache
208
+ rm -f Makefile
209
+ rm -f libdwarf.h
210
+ rm -f ./dwarftied
211
+
212
+ tests:
213
+ $(CC) -DTESTING $(CFLAGS) dwarf_tied.c dwarf_tsearchhash.o -o dwarftied
214
+ ./dwarftied
215
+
216
+
217
+ shar:
218
+ @echo "shar not set up yet"
219
+ dist:
220
+ @echo "dist not set up yet"
@@ -0,0 +1,535 @@
1
+ May 01, 2015
2
+ dwarf_next_cu_header_d() is the latest extension for CU reading.
3
+ Earlier versions still supported.
4
+ dwarf_die_from_hash_signature() added so readers can
5
+ use a hash to access a dwp package file DIE.
6
+ New support for some of DWARF5 and for dwp debug-fission
7
+ package file reading.
8
+ February 25, 2015
9
+ Now gennames uses dwgetopt() instead of getopt.
10
+ So it will more easily build where no getopt() available.
11
+ We copied dwgetopt.h, .c here (rather than reaching around
12
+ to dwarfdump) to keep the libdwarf build more easily
13
+ buildable separate from dwarfdump.
14
+
15
+ January 8, 2015
16
+ When malloc fails (out of space) dwarfdump will now
17
+ use a statically-allocated Dwarf_Error_s struct so it can get
18
+ the original malloc failure (or other error) reported back to
19
+ the calling client.
20
+
21
+ Some checks for invalid Elf files were changed to actually
22
+ report errors properly. Thanks to Edward Williamson for
23
+ providing test cases with odd errors in the Elf and DWARF.
24
+
25
+ May 19, 2014
26
+ REASON FOR RELEASE
27
+ Now handles DebugFission (part of the unreleased standard
28
+ named DWARF5) in which debug information can be split from
29
+ objects and gathered into seperate object files.
30
+
31
+ MINOR POINT:
32
+
33
+ Added a caveat that dwarf_errmsg() returned string pointers are not
34
+ necessarily pointers that can be relied on to be valid for the
35
+ duration of the current executable. It's best for consumers
36
+ to print or copy the string right away and then forget the returned
37
+ pointer. This restriction is probably already met by
38
+ most conservative consumer code: earlier, nothing was said about
39
+ the lifetime of the string! Eventually it would be nice to
40
+ actually have more ephemeral strings as then some much better
41
+ error strings could easily be produced with no leakage and
42
+ no growth in the size of the running executable.
43
+ For now, though, all dwarf_errmsg() strings continue to point to
44
+ static strings. Just please don't depend on it!
45
+
46
+ BINARY & SOURCE INCOMPATIBLITY:
47
+
48
+ The Producer code drops old dwarf_producer_init* functions
49
+ and provides an old name with a new interface: dwarf_producer_init().
50
+ The producer callback function is renamed Dwarf_Callback_Func.
51
+ Hence code calling the libdwarf producer must change.
52
+
53
+ Code calling the consumer interface is not affected.
54
+
55
+ The determination of what/how to emit DWARF is now determined
56
+ at run time, not at build time. It's now much simpler to
57
+ get the sort of output you want. Provision is made for emitting
58
+ DWARF3,4,5 and 5 (though that provision is at a very early stage
59
+ and not much supported yet).
60
+
61
+ The postal addresses for SGI in the copyright comments
62
+ changed from time to time and are no longer accurate.
63
+ So they are gradually being removed.
64
+ March 17, 2014
65
+ The dwarf.v2.mm and index.v2.mm and their pdf files have been
66
+ removed from the distribution. Those files are available
67
+ on dwarfstd.org and they are 20 years old, so removed
68
+ from libdwarf.
69
+ January 29, 2014
70
+ Now using dwarf_tsearch() instead of the original complicated
71
+ allocation code.
72
+ October 14, 2013
73
+ The Callback_Func declarations in libdwarf.h were missing a
74
+ const on the name argument. Adding it removes compiler warnings.
75
+ But removing it means client code calling
76
+ producer functions has to change to get their
77
+ callback function declarations/definitions to match.
78
+ The change does not affect those calling the consumer interfaces.
79
+ August 15, 2013
80
+ Now the printf (stdout) here go through a callback function instead
81
+ of actually using stdout. That way dwarfdump and other apps have full
82
+ control of libdwarf output from dwarf_print_lines() for example.
83
+ It also means callers of dwarf_print_lines() need to have called
84
+ dwarf_register_printf_callback() to get any actual print output.
85
+ January 26, 2013
86
+ Retracted the incompatible change. The interfaces are
87
+ again compatible with previous releases and the January 25
88
+ release is withdrawn. Has all the fixes of Jan 25 present
89
+ in the code.
90
+ January 25, 2013
91
+ The definition of the Dwarf_Loc struct
92
+ could not handle DW_OP_GNU_const_type
93
+ so it had to change. The new field added makes this version of libdwarf
94
+ incompatible with any existing dwarfdump. Rebuild dwarfdump
95
+ and dwarfdump2 to use it with this libdwarf.
96
+ Moved firmly into C89/C90 usage by more complete use of const
97
+ and be using int x(void) for example to prototype parameter-less
98
+ functions. Compiles close to cleanly with
99
+ gcc options -Wsystem-headers
100
+ -Wall -Wsign-compare
101
+ -Wno-format-y2k -W
102
+ -Wno-unused-parameter -Wstrict-prototypes
103
+ -Wmissing-prototypes -Wpointer-arith
104
+ -Wreturn-type -Wcast-qual -Wwrite-strings
105
+ -Wswitch -Wshadow -Wunused-parameter
106
+ -Wcast-align -Wchar-subscripts -Winline
107
+ -Wnested-externs -Wredundant-decls
108
+ -Wold-style-definition -Wno-pointer-sign
109
+
110
+ November 29, 2012
111
+ The function dwarf_formflag() now returns the actual flag value
112
+ instead of just 1 or 0. It has been coded wrong a very long time.
113
+ The DWARF documents (DWARF2 on) have always made it clear any non-zero
114
+ value means true and zero means false. Now consumers can properly
115
+ note the value the compiler actually put into the flag byte.
116
+ November 17, 2012
117
+ New headers contain the relocation codes for various object
118
+ ABIs. These headers are needed in libdwarf and expected
119
+ by builds of dwarfdump[2] for best dwarfdump[2] relocation
120
+ handling.
121
+ It is best to build libdwarf and dwarfdump together for
122
+ best handling of relocatable objects.
123
+ GNU compilers may generate the operator
124
+ DW_OP_GNU_implicit_pointer which is generated differently in
125
+ DWARF2 versus DWARF3/4. Hence a new interface to libdwarf
126
+ dwarf_loclist_from_expr_b() adds the compilation unit
127
+ DWARF version number to the argument list (as compared
128
+ to dwarf_loclist_from_expr_a()). Hopefully few
129
+ consumers will need to change to use the new interface.
130
+ December 13, 2011
131
+ dwarf_lineoff() is now deprecated, dwarf_lineoff_b() is
132
+ strongly recommended instead.
133
+ dwarf_add_line_entry() does not have all the line fields
134
+ needed for generating DWARF3/4, use dwarf_add_line_entry_b() instead.
135
+ Generation of DWARF3/4 is not yet functional, this new function
136
+ is a first step.
137
+ October 29, 2011
138
+ Added support for reading .debug_types (type unit) data.
139
+ October 26,2011
140
+ Revised the Makefile.in and README to make building libdwarf
141
+ easier to accomplish with unusual locations of libelf headers
142
+ or other headers or libraries.
143
+ June 04,2011
144
+ Non-Elf objects could be used with libdwarf, but
145
+ no one has contributed non-elf-reading code for libdwarf
146
+ and a crucial detail was not documented so those writing
147
+ such object-reading code have not done it entirely correctly.
148
+ Fundamentally such code must treat a section index of 0 as
149
+ a real but empty section with no name (an empty name).
150
+ dwarf_elf_access.c and dwarf_elf_init_finish.c have some comments
151
+ on this point now.
152
+ March 29,2011
153
+ All the code changed a lot because indentations were all over
154
+ the map, now they are consistent.
155
+ Additions were made to DWARF4 support.
156
+ Now we use dicheck (a new open source application) to check indentation.
157
+ Library users will not see any change, all interfaces remain
158
+ as before.
159
+ January 12,2010
160
+ A libdwarf user has noticed that the April 4, 2009
161
+ consumer function changes introduced
162
+ a problem: the default CFA column was DW_FRAME_CFA_COL
163
+ even when a newer DWARF3 consumer frame interface like
164
+ dwarf_get_fde_info_for_all_regs3() is used. The
165
+ libdwarf2.1.pdf documentation
166
+ stated the default should be DW_FRAME_CFA_COL3 in that case.
167
+
168
+ The introduction of a caller-specified frame-column
169
+ function (dwarf_set_frame_cfa_value())
170
+ in that April 4, 2009 release was flawed in that it failed
171
+ to match the documentation.
172
+
173
+ Now the default frame column is DW_FRAME_CFA_COL3 unless
174
+ the configure option --enable-oldframecol
175
+ is used at libdwarf build time.
176
+ If you are using libdwarf old frame consumer interfaces
177
+ dwarf_get_fde_info_for_reg(), dwarf_get_fde_info_for_cfa_reg(),
178
+ and dwarf_get_fde_info_for_all_regs() and want unchanged operation
179
+ then please configure libdwarf with --enable-oldframecol .
180
+ or add the call dwarf_set_frame_cfa_value(dbg,DW_FRAME_CFA_COL)
181
+ after calling a libdwarf initialization function.
182
+ It is impossible to configure a single libdwarf.a so that
183
+ it transparently defaults to both DW_FRAME_CFA_COL
184
+ and DW_FRAME_CFA_COL3.
185
+
186
+ A call such as dwarf_set_frame_cfa_value(dbg,DW_FRAME_CFA_COL3)
187
+ or dwarf_set_frame_cfa_value(dbg,DW_FRAME_CFA_COL)
188
+ (or some other name/value of your choosing)
189
+ following the dwarf_init() call gives your application
190
+ full control of the frame cfa column independent of the libdwarf
191
+ configure option. See the libdwarf2.1.pdf documentation for details.
192
+ We strongly recommend that you use dwarf_set_frame_cfa_value()
193
+ to avoid a configure-time dependency.
194
+
195
+ July 7, 2009
196
+ Implemented support for elf 'rela' relocations so libdwarf and dwarfdump
197
+ can read *nix .o files with such relocations reasonably,
198
+ at least for some machines
199
+ (see dwarf_elf_access.c for EM_ in 'case' statements.)
200
+ This changes the binary access for non-Elf object users (folks
201
+ who have coded there own non-Elf access routines do reference
202
+ internals of dwarf_opaque.h), but the new data can be left zero
203
+ and the rest of the code should work fine.
204
+ dwarf_opaque.h gathers section data in Dwarf_Section_s structs
205
+ which simplifies the code in dwarf_init_finish.c and clarifies
206
+ what fields are section related.
207
+ July 4, 2009
208
+ When something erroneous is detected in a die
209
+ information about the CU context may be of interest.
210
+ So we added dwarf_CU_dieoffset_given_die(), a function which allows
211
+ clients to find the relevant CU die for any die.
212
+ The consumer can use normal attribute access functions to
213
+ print information about that CU die (and the erroneous die,
214
+ of course). See the libdwarf consumer document for more
215
+ information.
216
+ April 27, 2009
217
+ Interface additions: dwarf_loclist_from_expr_a() and
218
+ dwarf_get_ranges_a() are new interfaces like
219
+ dwarf_loclist_from_expr() and dwarf_get_ranges() respectively,
220
+ but with arguments allowing
221
+ full support for different CIEs
222
+ in an executable having different address-sizes
223
+ (and their compilation unit DIEs if .debug_info is present).
224
+ dwarf_get_loclist_entry() does not support
225
+ differing address sizes per CIE/CU.
226
+ April 4, 2009
227
+ Added new functions dwarf_set_frame_cfa_value()
228
+ dwarf_set_frame_same_value(), and
229
+ dwarf_set_frame_undefined_value(). These are essential
230
+ for ABIs where the real register numbers exceed 1033
231
+ (such as ppc). Failing to use these leads to
232
+ frame instructions DW_CFA_undefined and
233
+ DW_CFA_same_value emitting values that cannot be
234
+ interpreted correctly by a libdwarf consumer.
235
+ See dwarfdump for examples of use.
236
+ Feb 14, 2009
237
+ Added configure option --enable-nonstandardprintf
238
+ which makes it easy to get printf of Dwarf_Unsigned (etc)
239
+ types correct even for non-standard compilers.
240
+ Dec 30, 2008
241
+ Added interfaces for getting and printing the .debug_ranges
242
+ data.
243
+ Dec 8, 2008
244
+ Record the abbreviation 'code' (index) in each DIE.
245
+ Making it possible for a pretty-printer to print the
246
+ abbreviation code.
247
+ Sep 30, 2008
248
+ Phil Mucci provided an a.out test chase which demonstrates a bug
249
+ in 64bit DWARF2 output by gcc. Now libdwarf works around this
250
+ and with -v -v -v -v prints a warning.
251
+ Sep 29, 2008
252
+ Thanks to Phil Mucci for providing a little-endian 64bit
253
+ test object file that exposed a problem when there are 'extra' bytes
254
+ (possibly unused) after a line table prologue header and before the
255
+ line table itself. This releases fixes the bug.
256
+
257
+ Thanks to Matthew Legendre for pointing out that we were sharing
258
+ de_fde_count for eh and non-eh and that could cause erroneous
259
+ error returns in a couple of functions.
260
+ These counts are now separate.
261
+ April 9, 2008
262
+ libdwarf would behave badly if one compilation unit had more than 64K
263
+ abbreviations: It was both very slow dealing with abbreviations and would
264
+ get mixed up and error-off. Increased the size of some internal variables
265
+ and rewrote abbreviation lookup.
266
+ February 18, 2008
267
+ It is now possible to write one's own access to objects, making it possible
268
+ to use a different library than libelf or even read a completely
269
+ different object format than ELF.
270
+ See dwarf_object_init() and see the new source files
271
+ dwarf_original_elf_init.c and dwarf_elf_access.c for example
272
+ code using the new function-pointer approach as it's implementation.
273
+ Thanks to Josh Fuhs for doing the design and 99% of the work to make
274
+ this happen.
275
+ February 2, 2008
276
+ Now pro_init() defaults to standard DWARF3 generated offset sizes.
277
+ But if a new flag DW_DLC_OFFSET_SIZE_64 or'd into flags passed to
278
+ dwarf_produser_init() or dwarf_producer_init_b,
279
+ the DWARF3 extended offset size is generated (if the address size
280
+ is 64 bit).
281
+ The new configure option --enable-dwarf-format-strict-32bit
282
+ forces pro_init() to always cause 32bit offset dwarf generation.
283
+ The new configure option --enable-dwarf-format-sgi-irix forces
284
+ the old SGI IRIX 64bit offset generation for 64bit pointer size objects.
285
+
286
+ This is intended to simplify standard DWARF3 generation with
287
+ the now-normal use of 32bit DWARF offsets for both 32 and 64
288
+ bit pointer objects.
289
+
290
+ It does require that anyone wanting SGI IRIX dwarf generation
291
+ with its non-standard offsets for 64bit objects use the new
292
+ --enable-dwarf-format-sgi-irix configure time option.
293
+
294
+ This has no effect on dwarf reader code. It affects code calling
295
+ the libdwarf producer interfaces.
296
+
297
+ December 8, 2007
298
+ Had to add an ugly configure conditional as libelf has
299
+ unconditional use of off64_t in recent libelf.h
300
+ July 3, 2007
301
+ A new interface function, dwarf_loclist_from_expr(),
302
+ allows easy extraction of dwarf expression bytes from
303
+ expressions in frame data.
304
+ May 8, 2007
305
+ Now documents released as .mm and .pdf (no longer as .ps).
306
+ May 7, 2007
307
+ Incorporates Sun Microsystems extensions to dwarf.h and
308
+ to the consumer and producer libraries. The changes
309
+ include corrections so the producer library cleans up it's memory
310
+ use on a call to dwarf_producer_finish(dbg).
311
+ Thanks to Chris Quenelle of Sun for these contributions.
312
+
313
+ March 20, 2007
314
+ nroff/troff and the AT&T -mm package are not widely available,
315
+ so now the Makefile refers to groff, which works quite nicely.
316
+
317
+ February 20, 2007
318
+ Documented libdwarf thread safety in README.
319
+ Fixed memory leak in dwarf macro reading code.
320
+ Removed use of static data in dwarf macro
321
+ reading code: now uses stack/heap (for
322
+ thread safety).
323
+
324
+ February 9, 2007
325
+ Maintenance of libdwarf is now outside SGI
326
+ as David Anderson has left SGI.
327
+
328
+ March 29, 2006
329
+ The March 27, 2006 version accomodates DWARF3.
330
+ Some people have been using the library without
331
+ altering dwarf.h, libdwarf.h to accomodate
332
+ large numbers of registers. This exposed a bug
333
+ (an off-by-one error) but also makes it clear
334
+ additional documentation is needed. So
335
+ in libdwarf large new comments near 'TARGET DEPENDENCY'
336
+ attempt to explain better.
337
+ Oct 03, 2005
338
+ The July version had an incompatible interface: old
339
+ dealloc code did not always work right. The incompatibility
340
+ is now fixed and the new features remain.
341
+
342
+ July 15, 2005
343
+ New optional alloc-check code optionally checks all
344
+ allocated memory is freed (malloc_check.h malloc_check.c)
345
+ Various new dealloc routines written as the previous approach
346
+ of letting client code do detailed dealloc turned out not
347
+ to dealloc all memory.
348
+ To get the new checking you must manually change a line
349
+ in malloc_check.h and rebuild libdwarf.
350
+
351
+
352
+ Mar 31, 2005
353
+ Documented the libexc.so/.debug_funcnames
354
+ dependency and the 64bit-offset DWARF extension in
355
+ mips_extentions.{mm,ps}.
356
+
357
+ Mar 21, 2005
358
+ gcc 3.3 and 3.4 .eh_frame 'z' augmentations are not handled
359
+ correctly, so libdwarf gives an error when attempting to
360
+ print such. gcc 2 'eh' augmentation is simpler and
361
+ prints correctly. (.eh_frame is a GNU section,
362
+ not DWARF2/3, and what is recorded in .eh_frame is not
363
+ specified by DWARF2/3, though .eh_frame does resemble
364
+ DWARF2/3 .debug_frame).
365
+
366
+
367
+ Oct 28, 2004
368
+ Updated contact address in copyright: SGI moved 1/4 mile
369
+ in 2003 to a new address: 1500 Crittenden Lane.
370
+
371
+ Documented additional vendor extensions.
372
+
373
+ Oct 27, 2004
374
+ Added known vendor extensions to dwarf2/3 to dwarf.h
375
+ HP, GNU, PGI and UPC extensions are now recorded.
376
+ Recorded vendor extensions from Concurrent.
377
+
378
+ Feb 3, 2004
379
+ If 'Dwarf_Word' is 64 bits, two macros reading leb numbers
380
+ fail to initialize upper bits of the values read.
381
+ First noticed with bogus line numbers printing from dwarfdump.
382
+ Now we use already-existing functions, avoiding the problem.
383
+
384
+ Oct 02, 2003
385
+ Support .debug_loc section fully.
386
+
387
+ Sept 29, 2003
388
+ Support DW_FORM_indirect properly.
389
+ Supports loclists in part (but not multiple loclist entries yet).
390
+ Support 'padding bytes' at end of .debug_arange and
391
+ .debug_pubnames and .debug_pubtypes per CU
392
+ (recent dwarf committee email made it clear this is appropriate).
393
+
394
+ May 23, 2002
395
+ Libdwarf now asks for sections only when they are
396
+ used, so that unneeded sections aren't loaded.
397
+ Support for using SGI's ELF library as an alternative to
398
+ using AT&T libelf-style has been added (the SGI ELF
399
+ library is presently only available internally to SGI).
400
+
401
+ Jan 10, 2002
402
+ Fixed memory leak in dwarf_finish().
403
+
404
+ Aug 21, 2001
405
+ If one called dwarf_add_file_decl()
406
+ or dwarf_add_directory_decl() but never added a line,
407
+ .debug_line was not produced. This was a mistake,
408
+ as if any file or directory was provided .debug_line
409
+ should be produced. Now it is produced.
410
+
411
+ June 14, 2001
412
+ Given a cu header offset, it was not easy to derive the
413
+ CU header DIE offset. Created the new
414
+ function dwarf_get_cu_die_offset_given_cu_header_offset()
415
+ do get the CU header DIE offset.
416
+ Added the function dwarf_get_arange_cu_header_offset()
417
+ so the cu header offset could be retrieved from .debug_aranges
418
+ information.
419
+
420
+ June 07, 2001
421
+ Major bug in dwarf_leb.c decoding large integers
422
+ (Dwarf_Signed 64 bit where library is compiled in ILP32)
423
+ found and fixed.
424
+
425
+ May 21, 2001
426
+ Some small fixes have been found by various folks,
427
+ so it seems time to prepare a new source release.
428
+ See ChangeLog for details.
429
+
430
+ April 15, 2000
431
+ The libdwarf copyright has changed to
432
+ version 2.1 of the GNU Lesser General Public License.
433
+ Anyone holding a version of libdwarf that was published
434
+ before this new copyright is allowed to use
435
+ the copyright published in that earlier libdwarf source
436
+ on the earlier source
437
+ or to use
438
+ this new copyright on the earlier source,
439
+ at their option.
440
+
441
+
442
+ December 08, 1999
443
+ The dwarf committee has adopted the offset-extension
444
+ proposal. This allows compatibly emitting
445
+ dwarf with 64bit offsets.
446
+
447
+ The dwarf reader now automatically figures out which is in use.
448
+ The dwarf writer configures itself at the time the
449
+ writer initialization routine is called, though
450
+ the writer is restricted, at libdwarf
451
+ compile time, to one of
452
+ mips/sgi pure 32/pure 64 offsets/pointers.
453
+
454
+ 32bit offsets only (per dwarf 2.0.0 and cygnus)
455
+
456
+ 32bit offsets with extension to 64bit offsets
457
+ allowed (the offset-extension newly passed).
458
+
459
+ In addition, a great deal of duplicate code
460
+ for the sgi .debug_weaknames, .debug_funcnames,
461
+ .debug_varnames and .debug_typenames sections has
462
+ been removed: a single set of functions does the real work now.
463
+
464
+ Sept 29, 1999
465
+ Just found out that cygnus is, on 64bit targets, generating
466
+ 32bit offsets (as elf32 has, for example) with 64 bit
467
+ pointers (in references to text and data).
468
+ Whereas sgi has always generated 64bit dwarf with
469
+ 64 bit offsets (as in elf64) and 64bit pointers for
470
+ 64bit pointer objects.
471
+ I'll call the sgi approach 64-bit and the cygnus approach
472
+ 32bit-offsets.
473
+
474
+ Cygnus is following the DWARF2 spec as written, so they are
475
+ right in doing only 32bit-offsets.
476
+
477
+ Folks at sgi (including me) think that, as for elf64,
478
+ the offsets in dwarf for 64bit pointer-apps should be
479
+ 64 bits. We think it is only a matter of time
480
+ before we really *need* 64bit offsets and when that happens
481
+ it will be on an important app. Disk space is cheap,
482
+ so lets just go 64 bit on 64bit apps (such as ia64 apps)
483
+ to avoid a future problem.
484
+ I(davea@sgi.com) think the 'pointer-size' references in the dwarf
485
+ spec were really written for 64-bit pointer apps.
486
+ I don't recall serious consideration of 64bit pointer
487
+ apps in the committee deliberations (I did miss
488
+ a couple of meetings) and think 64bit offsets
489
+ are consistent with dwarf2, even though the speci
490
+ was not written for such. We think true full 64 bit
491
+ dwarf2 is the right way to go (the spec changes
492
+ are obvious: file and section offsets become 64bit
493
+ with 64bit pointer objects.
494
+
495
+ MIPS/SGI is definitely 64-bit offsets for 64 bit objects,
496
+ cygnus is definitely 32bit-offsets for earlier 64bit pointer
497
+ environments.
498
+
499
+ At any rate, now the dwarf reader allows and accomodates
500
+ both and the dwarf producer also accomodates both.
501
+ Some tweaking of the pro_init.c or dwarf_init_finish.c
502
+ files may be necessary in future: no other changes should
503
+ be needed to accomodate the two 64bit approaches, as
504
+ the library (and dwarfdump) now deal with both forms.
505
+
506
+
507
+ August 20, 1999
508
+ Added some #ifndef/#define to pro_util.h to let libdwarf build
509
+ on more hosts. (since those hosts don't need the producer
510
+ code, AFAIK, zero values suffice for missing #defines.)
511
+
512
+ July 21, 1999
513
+ Now reader transparently reads either-endianness data
514
+ from an either-endianness object.
515
+ Updated dwarf.h and libdwarf.h to recognize
516
+ GNU egcs dwarf extensions and to print the egcs eh_frame
517
+ section.
518
+
519
+ June 10, 1999
520
+ gnu configure version of libdwarf made available for the
521
+ first time.
522
+ Still allows only same-endian-as-host in objects.
523
+
524
+ August, 1994
525
+ libdwarf source made available for ftp on sgigate.sgi.com
526
+ /ftp/pub
527
+
528
+ June, 1994
529
+ Consumer interface changed completely, following
530
+ "Candy Machine Interfaces" chapter from
531
+ "Writing Solid Code" by Steve Maguire (Microsoft Press).
532
+
533
+ April, 1993
534
+ Initial version of libdwarf for dwarf version 2
535
+ written at sgi.