rdwarf 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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.