blob: 18a423e552db17f2dc9f878b66267bd40ecc04ef [file] [log] [blame]
Roland McGrathc70ebc02010-06-16 02:21:26 -070012010-06-16 Roland McGrath <roland@redhat.com>
2
3 * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
4 address.
5
Roland McGrath3f633072010-06-15 22:17:04 -070062010-06-15 Roland McGrath <roland@redhat.com>
7
Roland McGrathb75f4442010-06-15 22:24:19 -07008 * dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like
9 DW_FORM_ref_addr.
10 * dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way
11 here, since we don't support it yet.
12
Roland McGrath9bcd2652010-06-15 22:17:20 -070013 * dwarf_next_cfi.c: Handle version 4 format.
14
Roland McGrath3f633072010-06-15 22:17:04 -070015 * dwarf_getsrclines.c: Handle version 4 format.
16
Roland McGrath0b3363e2010-06-01 15:42:14 -0700172010-06-01 Roland McGrath <roland@redhat.com>
18
Roland McGrath827d4d12010-06-01 20:17:36 -070019 * libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types.
20 * dwarf_begin_elf.c (dwarf_scnnames): Likewise.
21
Roland McGrath1a030b32010-06-01 20:11:40 -070022 * libdwP.h (CIE_VERSION): Remove unused macro.
23
Roland McGrath675229b2010-06-01 20:10:19 -070024 * dwarf_getsrclines.c: Fix version field test.
25 * libdwP.h (DWARF_VERSION): Remove useless macro.
26
Roland McGrath52123962010-06-01 19:05:08 -070027 * dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling.
28
Roland McGrath7fac1ce2010-06-01 15:56:58 -070029 * dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc.
30
Roland McGrath0b3363e2010-06-01 15:42:14 -070031 * libdw_findcu.c (__libdw_findcu): Accept version 4.
32
Mark Wielaard3f507bd2010-05-31 15:06:31 +0200332010-05-31 Mark Wielaard <mjw@redhat.com>
34
Mark Wielaard08e71db2010-05-31 15:39:15 +020035 * cfi.h (dwarf_cfi_cie_p): Move definition from here, to ..
36 * libdw.h (dwarf_cfi_cie_p): ... here.
37
382010-05-31 Mark Wielaard <mjw@redhat.com>
39
Mark Wielaard3f507bd2010-05-31 15:06:31 +020040 * dwarf.h: Fix DW_LANG_Python constant.
41
Eduardo Santiagod2240bc2010-05-28 14:26:52 -0700422010-05-28 Eduardo Santiago <santiago@redhat.com>
Ulrich Drepper6fb34512010-05-28 20:28:04 -070043
Ulrich Drepper49fe7142010-05-28 20:32:37 -070044 * dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first
45 thing.
Ulrich Drepper6fb34512010-05-28 20:28:04 -070046
Roland McGrathcfa5da22010-05-27 13:49:25 -0700472010-05-27 Roland McGrath <roland@redhat.com>
48
49 * dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name,
50 DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator.
51
Roland McGrath688f7fc2010-05-08 03:22:59 -0700522010-05-08 Roland McGrath <roland@redhat.com>
53
54 * dwarf_getlocation.c (__libdw_intern_expression): Take new argument
55 REF_SIZE. Use that to handle DW_OP_call_ref correctly.
56 (getlocation): Update caller.
57 * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
58 * dwarf_frame_register.c (dwarf_frame_register): Likewise.
59 * libdwP.h: Update decl.
60
Roland McGrath0ab97832010-04-26 11:50:27 -0700612010-04-26 Roland McGrath <roland@redhat.com>
62
Roland McGrath3b10ac02010-04-26 18:45:36 -070063 * cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule.
64 * cfi.c (execute_cfi): Set that instead of doing cfi_assert for
65 DW_CFA_def_cfa_{offset*,register} when a non-offset rule is in force.
66 * dwarf_frame_cfa.c (dwarf_frame_cfa): Handle cfa_invalid.
67
Roland McGrath0ab97832010-04-26 11:50:27 -070068 * dwarf_getlocation.c (__libdw_intern_expression): Take new arg CFAP.
69 Prepend DW_OP_call_frame_cfa if true.
70 (getlocation): Update caller.
71 * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
72 * dwarf_frame_register.c (dwarf_frame_register): Likewise.
73 * libdwP.h: Update decl.
74
Roland McGrath3f9d9552010-04-22 20:51:07 -0700752010-04-22 Roland McGrath <roland@redhat.com>
76
77 * cfi.c (execute_cfi): Never return without cleanup.
78 Free FS on failure.
79 (cie_cache_initial_state): Adjust caller to expect that free.
80 (__libdw_frame_at_address): Likewise.
81
Roland McGrath8068e062010-03-10 23:49:13 -0800822010-03-10 Roland McGrath <roland@redhat.com>
83
84 * libdw.map (ELFUTILS_0.146): New set. Add dwfl_core_file_report.
85
Roland McGrath22359e22010-02-15 15:57:03 -0800862010-02-15 Roland McGrath <roland@redhat.com>
87
88 * Makefile.am: Use config/eu.am for common stuff.
89
Mark Wielaardee29a312010-02-02 20:44:53 +0100902010-02-02 Mark Wielaard <mjw@redhat.com>
91
92 * fde.c (intern_fde): Fix length check for sized_augmentation_data.
93
Roland McGrathf95760a2010-01-07 20:24:34 -0800942010-01-07 Roland McGrath <roland@redhat.com>
95
96 * dwarf_getcfi_elf.c (getcfi_phdr): Use elf_getphdrnum.
97
Roland McGrath019d9fb2010-01-05 13:36:07 -0800982010-01-05 Roland McGrath <roland@redhat.com>
99
Roland McGrathebc5c882010-01-05 22:53:31 -0800100 * dwarf_aggregate_size.c: New file.
101 * Makefile.am (libdw_a_SOURCES): Add it.
102 * libdw.h: Declare it.
103 * libdwP.h: Add INTDECL.
104 * libdw.map (ELFUTILS_0.144): New set. Add dwarf_aggregate_size.
105
106 * dwarf_srclang.c: Add INTDEF.
107 * libdwP.h: Add INTDECL.
108
Roland McGrath0cb19832010-01-05 13:38:15 -0800109 * dwarf.h: Add some more DW_AT_GNU_* types from gcc.
110
Roland McGrath019d9fb2010-01-05 13:36:07 -0800111 * dwarf.h: Add DW_AT_GNU_vector, DW_AT_GNU_template_name.
112
Roland McGrath888381b2009-11-21 17:03:34 -08001132009-11-21 Roland McGrath <roland@redhat.com>
114
115 * dwarf_getlocation.c (check_constant_offset): Return 1 for all
116 non-constant forms.
117
Roland McGrath9ca7bc42009-10-15 12:26:49 -07001182009-10-15 Roland McGrath <roland@redhat.com>
119
120 * libdw_form.c (__libdw_form_val_len): Grok DW_FORM_sec_offset,
121 DW_FORM_exprloc, DW_FORM_flag_present, and DW_FORM_ref_sig8.
122
Roland McGrath7e0aecd2009-09-17 15:02:34 -07001232009-09-17 Roland McGrath <roland@redhat.com>
124
125 * dwarf_getlocation.c (dwarf_getlocation_implicit_value): Make OP
126 argument a pointer to const.
127 * libdw.h: Update decl.
128
Roland McGrathf0371042009-09-10 12:39:09 -07001292009-09-10 Roland McGrath <roland@redhat.com>
130
131 * dwarf_getlocation.c (store_implicit_value): New function.
132 (__libdw_intern_expression): Use it, handle DW_OP_implicit_value.
133 (dwarf_getlocation_implicit_value): New function.
134 * libdw.h: Declare it.
135 * libdw.map (ELFUTILS_0.143): Add it.
136
Mark Wielaard418ae4c2009-09-09 20:59:26 +02001372009-09-09 Mark Wielaard <mjw@redhat.com>
138
139 * dwarf_getcfi.c (dwarf_getcfi): Clear cfi->ebl.
140
Josh Stonecc93cc42009-08-21 18:04:44 -07001412009-08-21 Josh Stone <jistone@redhat.com>
142
143 * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
144
Roland McGrath08277ba2009-08-10 15:08:08 -07001452009-08-10 Roland McGrath <roland@redhat.com>
146
147 * dwarf_getscopevar.c: Use dwarf_diename.
148
Roland McGrathebfb6482009-08-09 15:40:52 -07001492009-08-09 Roland McGrath <roland@redhat.com>
150
151 * libdw.map (ELFUTILS_0.143): New version set,
152 inherits from ELFUTILS_0.142.
153 * dwarf_arrayorder.c: Use OLD_VERSION and NEW_VERSION to define an
154 alias in the ELFUTILS_0.122 version set and the default in the new set.
155 * dwarf_srclang.c: Likewise.
156 * dwarf_decl_file.c: Likewise.
157 * dwarf_decl_line.c: Likewise.
158 * dwarf_decl_column.c: Likewise.
159 * dwarf_bytesize.c: Likewise.
160 * dwarf_bitsize.c: Likewise.
161 * dwarf_bitoffset.c: Likewise.
162
Roland McGrathde69d522009-08-07 18:26:19 -07001632009-08-07 Roland McGrath <roland@redhat.com>
164
165 * dwarf_arrayorder.c: Use dwarf_attr_integrate.
166 * dwarf_srclang.c: Likewise.
167 * dwarf_decl_file.c: Likewise.
168 * dwarf_decl_line.c (__libdw_attr_intval): Likewise.
169 * dwarf_bytesize.c: Likewise.
170 * dwarf_bitsize.c: Likewise.
171 * dwarf_bitoffset.c: Likewise.
172
Roland McGrathaf800142009-07-22 13:55:50 -07001732009-07-22 Roland McGrath <roland@redhat.com>
174
175 * dwarf_frame_cfa.c: Change calling convention.
176 * libdw.h: Update decl.
177
178 * dwarf_frame_register.c: Change calling/return-value convention for
179 value-only results and undefined/same_value.
180 * libdw.h: Update decl.
181
182 * dwarf_getlocation.c (__libdw_intern_expression): Take new bool
183 argument, append DW_OP_stack_value if set. Don't take NOPS argument,
184 return that value instead.
185 (getlocation): Update caller.
186 * dwarf_frame_cfa.c: Likewise.
187 * libdwP.h: Update decl.
188
Roland McGrathe23e9e72009-07-21 18:14:52 -07001892009-07-21 Roland McGrath <roland@redhat.com>
190
191 * dwarf_getsrc_file.c: Ignore a CU that just has no DW_AT_stmt_list.
192 Fix loop iteration after skipping a bogus or useless CU.
193
194 * dwarf_entry_breakpoints.c: Handle 0 dwarf_errno () as harmless
195 absence, not DWARF_E_NO_DEBUG_LINE.
196
Roland McGrath96349ff2009-07-20 11:51:41 -07001972009-07-20 Roland McGrath <roland@redhat.com>
198
199 * dwarf_getlocation.c (__libdw_intern_expression):
200 Handle DW_OP_stack_value.
201
Roland McGratha6abdfd2009-07-16 17:40:19 -07002022009-07-16 Roland McGrath <roland@redhat.com>
203
Roland McGrathe160cc92009-07-16 17:48:27 -0700204 * dwarf_formudata.c (__libdw_formptr): Handle DW_FORM_sec_offset,
205 reject others when CU's version > 3.
206
207 * dwarf_formflag.c: Handle DW_FORM_flag_present.
208
Roland McGratha6abdfd2009-07-16 17:40:19 -0700209 * dwarf.h: Add DW_OP_{implicit,stack}_value from DWARF 4 draft.
210 Also DW_TAG_type_unit and DW_TAG_rvalue_reference_type.
211 Also DW_AT_signature, DW_AT_main_subprogram, DW_AT_data_bit_offset,
212 and DW_AT_const_expr.
213 Also DW_FORM_sec_offset, DW_FORM_exprloc, DW_FORM_flag_present,
214 and DW_FORM_ref_sig8.
215
Roland McGrath7dd94642009-07-15 11:14:23 -07002162009-07-15 Roland McGrath <roland@redhat.com>
217
218 * dwarf_getlocation.c: Grok DW_OP_form_tls_address,
219 DW_OP_GNU_push_tls_address, and DW_OP_bit_piece.
220
Roland McGrath80893432009-07-13 12:08:55 -07002212009-07-13 Roland McGrath <roland@redhat.com>
222
223 * dwarf_getlocation.c: Grok DW_OP_call_frame_cfa.
224
Roland McGrathcfdd86e2009-07-08 13:15:07 -07002252009-07-08 Roland McGrath <roland@redhat.com>
226
Roland McGrath3c84db32009-06-24 17:41:40 -0700227 * libdw.map (ELFUTILS_0.142): Add dwfl_module_dwarf_cfi,
228 dwfl_module_eh_cfi.
229
230 * libdwP.h (struct Dwarf): Add member `cfi'.
231 * dwarf_end.c (dwarf_end): Call __libdw_destroy_frame_cache on it.
232 * dwarf_getcfi.c: New file.
233 * dwarf_getcfi_elf.c: New file.
234 * dwarf_cfi_end.c: New file.
235 * dwarf_cfi_addrframe.c: New file.
236 * dwarf_frame_cfa.c: New file.
237 * dwarf_frame_register.c: New file.
238 * dwarf_frame_return_address_register.c: New file.
239 * Makefile.am (libdw_a_SOURCES): Add them.
240 * unwind.h: Declare those functions.
241 * libdw.map (ELFUTILS_0.142): Export them.
242
243 * dwarf_getlocation.c (__libdw_intern_expression): New function,
244 broken out of ...
245 (getlocation): ... here, call it.
246 * libdwP.h: Declare it.
247
248 * cie.c: New file.
249 * fde.c: New file.
250 * frame-cache.c: New file.
251 * cfi.c: New file.
252 * cfi.h: New file.
253 * encoded-value.h: New file.
254 * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
255 * libdwP.h: Add DWARF_E_INVALID_CFI to errors enum.
256 * dwarf_error.c (errmsgs): Add element for it.
257
258 * dwarf_next_cfi.c: New file.
259 * Makefile.am (libdw_a_SOURCES): Add it.
260 * libdw.h (Dwarf_CIE, Dwarf_FDE, Dwarf_CIE_Entry): New types.
261 Declare dwarf_next_cfi.
262 * libdw.map (ELFUTILS_0.142): New set, inherits from ELFUTILS_0.136.
263 Add dwarf_next_cfi.
264
265 * memory-access.h [! ALLOW_UNALIGNED]
266 (read_2ubyte_unaligned): Renamed to ...
267 (read_2ubyte_unaligned_1): ... this. Take bool rather than Dwarf *.
268 (read_2ubyte_unaligned): Define as macro passing dbg->other_byte_order.
269 (read_2sbyte_unaligned): Likewise.
270 (read_4ubyte_unaligned): Likewise.
271 (read_4sbyte_unaligned): Likewise.
272 (read_8ubyte_unaligned): Likewise.
273 (read_8sbyte_unaligned): Likewise.
274
275 * libdwP.h (IDX_eh_frame): Remove it.
276 * dwarf_begin_elf.c (dwarf_scnnames): Remove its element.
277
2782009-07-08 Roland McGrath <roland@redhat.com>
279
Roland McGrath6e1f4652009-07-08 14:48:34 -0700280 * libdwP.h (struct Dwarf_Line_s): Reorder members to pack better.
281
Roland McGrathcfdd86e2009-07-08 13:15:07 -0700282 * dwarf_getlocation.c (check_constant_offset): New function.
283 (dwarf_getlocation, dwarf_getlocation_addr): Call it to
284 handle DW_AT_data_member_location of data[48] as constant offset.
285
Roland McGrath05c4e042009-06-18 13:56:02 -07002862009-06-18 Roland McGrath <roland@redhat.com>
287
288 * libdwP.h (__libdw_read_address_inc): Constify.
289 (__libdw_read_offset_inc): Likewise.
290 * dwarf_getaranges.c: Likewise.
291 * dwarf_getlocation.c: Likewise.
292 * dwarf_getsrclines.c: Likewise.
293 * dwarf_nextcu.c: Likewise.
294
Ulrich Drepper99d23722009-06-14 20:19:45 -07002952009-05-05 Petr Machata <pmachata@redhat.com>
296
297 * libdwP.h (__libdw_formptr): Declare new function.
298 * dwarf_formudata.c: Implement it here.
299 * dwarf_getlocation.c (dwarf_getlocation_addr):
300 Call it instead of hand-rolled offset handling code.
301 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
302 * dwarf_ranges.c (dwarf_ranges): Likewise.
303
3042009-05-04 Petr Machata <pmachata@redhat.com>
305
306 * libdwP.h (__libdw_read_begin_end_pair_inc): Declare new function.
307 * dwarf_ranges.c: Implement it here.
308 (dwarf_ranges): Call it.
309 * dwarf_getlocation.c (dwarf_getlocation_addr): Call it also here.
310
3112009-04-23 Petr Machata <pmachata@redhat.com>
312
313 * dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead
314 of read_*ubyte_unaligned.
315 * dwarf_formref_die.c (dwarf_formref_die): Likewise.
316 * dwarf_formstring.c (dwarf_formstring): Likewise.
317 * dwarf_formudate.c (dwarf_formudata): Likewise.
318 * dwarf_getaranges.c (dwarf_getaranges): Likewise.
319 * dwarf_getlocation.c (dwarf_getlocation_addr): Likewise.
320 * dwarf_getpubnames.c (get_offsets): Likewise.
321 * dwarf_nextcu.c (dwarf_nextcu): Likewise.
322
3232009-04-23 Petr Machata <pmachata@redhat.com>
324
325 * libdwP.h (__libdw_read_addr_inc, __libdw_read_off_inc,
326 __libdw_read_addr, __libdw_read_off): Add four new internal
327 functions.
328
Roland McGrathe2eabd82009-05-07 18:54:52 -07003292009-05-07 Roland McGrath <roland@redhat.com>
330
331 * dwarf_getmacros.c (dwarf_getmacros): Use absolute section offset in
332 return value and OFFSET argument, not CU-relative. Only fetch the
333 attribute data when called with OFFSET of 0.
334
Petr Machataf3df61f2009-05-07 21:02:33 +02003352009-05-07 Petr Machata <pmachata@redhat.com>
336
337 * dwarf_getmacros.c (dwarf_getmacros): Take into account offset in
338 DW_AT_macro_info attribute of CU DIE.
339
Roland McGrath2fb90512009-04-15 14:47:13 -07003402009-04-15 Roland McGrath <roland@redhat.com>
341
342 * dwarf.h (DW_CIE_ID): Removed.
343 (DW_CIE_ID_32, DW_CIE_ID_64): New constants replace it.
344
Roland McGrath6a4bdd92009-04-01 14:25:29 -07003452009-04-01 Roland McGrath <roland@redhat.com>
346
347 * dwarf.h: Add DW_CFA_GNU_negative_offset_extended.
348
Roland McGrathc5acb302009-01-28 18:28:52 -08003492009-01-28 Roland McGrath <roland@redhat.com>
350
Roland McGrath03288f02009-01-28 22:00:54 -0800351 * libdwP.h (struct Dwarf_Line_s): Move out of struct Dwarf_Lines_s
352 defn so C++ doesn't scope the name to not match the Dwarf_Line typedef.
353
Roland McGrathc5acb302009-01-28 18:28:52 -0800354 * libdwP.h (struct Dwarf_Files_s): Replace dbg field with cu field.
355
Roland McGrathf46272a2009-01-26 18:36:16 -08003562009-01-26 Roland McGrath <roland@redhat.com>
357
358 * dwarf_ranges.c: Return 0 when no ranges or *_pc attrs at all.
359
Roland McGrathd31505f2009-01-25 19:37:33 -08003602009-01-25 Roland McGrath <roland@redhat.com>
361
362 * dwarf_getattrs.c: Correctly skip attribute values when restarting.
363
Roland McGrath3bf7a092009-01-23 16:34:07 -08003642009-01-23 Roland McGrath <roland@redhat.com>
365
366 * Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back.
367 Put these rules under if MAINTAINER_MODE.
368
Roland McGrathafdd51e2009-01-22 02:26:24 -08003692009-01-22 Roland McGrath <roland@redhat.com>
370
371 * dwarf.h: Add DW_OP_GNU_encoded_addr.
372
Roland McGrath1ea4fdc2009-01-21 19:14:37 -08003732009-01-21 Roland McGrath <roland@redhat.com>
374
375 * Makefile.am (CLEANFILES): Renamed to ...
376 (MOSTLYCLEANFILES): ... here.
377 (CLEANFILES): New variable, add known-dwarf.h.
378
Roland McGrath24b03302009-01-17 14:34:13 -08003792009-01-17 Roland McGrath <roland@redhat.com>
380
Roland McGrath54456d82009-01-17 14:39:35 -0800381 * Makefile.am (known-dwarf.h): Target renamed, not in $(srcdir).
382 Make it unconditional.
383 (BUILT_SOURCES): Updated.
Roland McGrath5513e642009-01-11 01:35:11 -0800384
385 * dwarf.h: Add description comments for DW_LANG_* values.
386
387 * Makefile.am [MAINTAINER_MODE]
388 ($(srcdir)/known-dwarf.h): New target.
389 (BUILT_SOURCES): Add it.
390
Roland McGrath24b03302009-01-17 14:34:13 -0800391 * dwarf.h: Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit.
392
Ulrich Drepper7e678fa2009-01-10 18:02:05 -08003932009-01-10 Ulrich Drepper <drepper@redhat.com>
394
395 * dwarf_error.c: Always use __thread. Remove all !USE_TLS code.
396
Roland McGrathe06762c2009-01-08 13:39:08 -08003972009-01-08 Roland McGrath <roland@redhat.com>
398
399 * Makefile.am (libdw.so): Don't depend on $(zip_LIBS), just link it in.
400
Roland McGrath7e827f22009-01-06 02:09:50 -08004012008-01-06 Roland McGrath <roland@redhat.com>
Roland McGrath1f6d2012008-12-31 00:21:04 -0800402
403 * libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool.
404 Reorder members.
405 * dwarf_haschildren.c: Return -1 for error case, not 0.
Roland McGrathbca43152009-01-05 23:59:32 -0800406
407 * Makefile.am (libdw.so): Link in $(zip_LIBS).
408
Ulrich Drepperac194d02009-01-06 00:30:01 -08004092009-01-06 Ulrich Drepper <drepper@redhat.com>
410
Roland McGrathc462c632009-01-06 01:04:31 -0800411 * dwarf.h: Add definition for unwind and call frame information.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800412
413 * memory-access.h: Define read_ubyte_unaligned, read_sbyte_unaligned,
414 read_ubyte_unaligned_inc, and read_sbyte_unaligned_inc.
415
Roland McGrathb4d6f0f2008-08-25 22:55:17 +00004162008-08-15 Roland McGrath <roland@redhat.com>
417
418 * libdw.map (ELFUTILS_0.136): New version set, inherits from
419 ELFUTILS_0.130. Add dwfl_addrsegment, dwfl_report_segment.
420
Ulrich Drepper8d358d92008-01-22 06:34:31 +00004212008-01-21 Ulrich Drepper <drepper@redhat.com>
422
423 * dwarf_child.c: Minor optimizations.
424 * dwarf_getattrs.c: Likewise.
425 * dwarf_getpubnames.c: Likewise.
426 * dwarf_siblingof.c: Likewise.
427 * dwarf_tag.c: Likewise.
428
Ulrich Drepperb27ce002008-01-18 20:08:54 +00004292008-01-18 Ulrich Drepper <drepper@redhat.com>
430
431 * dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match
432 of DWARF_VERSION comparison, just fail if the file's version is newer.
433
Ulrich Drepper35f08c42008-01-18 19:59:08 +00004342008-01-17 Nick Clifton <nickc@redhat.com>
435
436 * dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define.
437 (DWARF3_LENGTH_MAX_ESCAPE_CODE): New define.
438 (DWARF3_LENGTH_64_BIT): New define.
439 * dwarf_getaranges (dwarf_getaranges): Use the new definitions.
440 * dwarf_getpubnames: Include dwarf.h.
441 (get_offsets): Use the new definitions.
442 * dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions.
443 * dwarf_nextcu.c: Include dwarf.h. Correct comment.
444 (dwarf_nextcu): Use the new definitions.
445
446 * libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro.
Ulrich Dreppera969d8e2008-01-22 06:15:00 +0000447 * dwarf_diecu.c (dwarf_diecu): Use the new macro.
Ulrich Drepper35f08c42008-01-18 19:59:08 +0000448 * dwarf_getaranges (dwarf_getaranges): Use the new macro.
449 * dwarf_nextcu.c (dwarf_nextcu): Use the new macro.
450
451 * dwarf_getpubnames (get_offsets): Replace assertion with test and
452 error return.
453
454 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE.
455
456 * dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer.
457 Set the address in the return structure to the address of the next
458 non-sibling die, if there is no sibling and the return pointer is
459 not the same as the die pointer.
460 * libdw.h: Expand the description of the dwarf_siblingof prototype.
461
462 * dwarf_child.c: Fix typo in comment.
463
464 * libdwP.h (DWARF_VERSION): Change to 3.
465
466 * dwarf_formref.c (__libdw_formref.c): Handle attributes which do
467 not have a initialised valp pointer.
468
469 * dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when
470 the end of the attributes is reached. When the callback fails,
471 return the address of the failing attribute, not the address of
472 its successor.
473 * libdw.h: Expand the description of the dwarf_getattrs prototype.
474
475 * dwarf_child.c (__libdw_find_attr): Use the new definition.
476 (dwarf_child): Likewise.
477 * dwarf_tag.c (__libdw_findabbrev): Likewise.
478 (dwarf_tag): Likewise.
479
Ulrich Dreppere219f1c2008-01-09 05:49:49 +00004802008-01-08 Roland McGrath <roland@redhat.com>
481
482 * Makefile.am (euinclude): Variable removed.
483 (pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
484 (libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir).
485
Roland McGrathe4c22ea2007-10-23 13:07:39 +00004862007-10-17 Roland McGrath <roland@redhat.com>
487
488 * libdw.h (__deprecated_attribute__): New macro.
489 (dwarf_formref): Mark it deprecated.
490 * dwarf_formref.c (__libdw_formref): New function, broken out of ...
491 (dwarf_formref): ... here. Call it. Remove INTDEF.
492 * libdwP.h: Remove INTDECL.
493 Declare __libdw_formref.
494 * dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead.
495 * dwarf_formref_die.c: Likewise. Handle DW_FORM_ref_addr here.
496
497 * libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result,
498 needs to check CU->version.
499
500 * libdwP.h (struct Dwarf_CU): New member `version'.
501 * libdw_findcu.c (__libdw_findcu): Initialize it.
502
503 * dwarf_child.c: Return 1 for null entry as first child.
504
Ulrich Drepperb597dfa2007-10-16 05:21:27 +00005052007-10-05 Roland McGrath <roland@redhat.com>
506
507 * dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections.
508
509 * libdw.h (__extern_inline): Rename to __libdw_extern_inline.
510 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses.
511
Roland McGrath59ea7f32007-10-04 08:50:09 +00005122007-10-03 Roland McGrath <roland@redhat.com>
513
514 * libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf
515 and dwfl_build_id_find_debuginfo.
516
517 * libdw.map (ELFUTILS_0.130): New version set, inherits from
518 ELFUTILS_0.127. Add dwfl_module_build_id, dwfl_module_report_build_id.
519
Roland McGrath057ec6b2007-10-02 20:55:05 +00005202007-10-02 Roland McGrath <roland@redhat.com>
521
522 * libdw_visit_scopes.c (classify_die): Return walk for class_type and
523 structure_type.
524
Roland McGrathd1a48172007-08-07 19:51:01 +00005252007-08-07 Roland McGrath <roland@redhat.com>
526
527 * dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
528 error code is DWARF_E_NOERROR (0).
529
530 * dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
531 Fix typo in __libdw_visit_scopes argument.
532
533 * dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
534 swallow DWARF_E_NO_DEBUG_RANGES but not other errors.
535
Roland McGrath87d47802007-07-16 22:23:37 +00005362007-07-03 Roland McGrath <roland@redhat.com>
537
538 * libdw.h (__extern_inline): New macro.
539 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.
540
Roland McGrath43da9892007-04-16 23:13:37 +00005412007-04-16 Roland McGrath <roland@redhat.com>
542
543 * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
544
Roland McGrathbf2ee482007-04-05 09:27:36 +00005452007-04-05 Roland McGrath <roland@redhat.com>
546
Roland McGrath43da9892007-04-16 23:13:37 +0000547 * dwarf_getsrcdirs.c: New file.
548 * Makefile.am (libdw_a_SOURCES): Add it.
549 * libdw.h: Declare dwarf_getsrcdirs.
550 * libdw.map (ELFUTILS_0.127): Add it.
551
552 * libdwP.h (struct Dwarf_Files_s): New member ndirs.
553 * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
554 zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
555 Save DIRARRAY in the Dwarf_Files.
556
Roland McGrathbf2ee482007-04-05 09:27:36 +0000557 * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
558 address to check for all-ones base address entry. Check directly.
559 Reported by Sébastien Dugué <sebastien.dugue@bull.net>.
560
Ulrich Drepperc07fbb32007-03-30 19:14:59 +00005612007-03-25 Roland McGrath <roland@redhat.com>
562
563 * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
564 Return NULL when freeing RESULT on error.
565 (global_read, scngrp_read): Check return value from check_section,
566 break out of loop after it has freed RESULT.
567 (valid_p): Handle null argument.
568
Ulrich Drepper6258e742007-03-13 06:22:40 +00005692007-03-12 Roland McGrath <roland@redhat.com>
570
571 * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.
572
5732007-03-04 Roland McGrath <roland@redhat.com>
574
575 * libdw.map (ELFUTILS_0.127): New version set, inherits from
576 ELFUTILS_0.126. Add dwfl_module_addrsym.
577
Ulrich Drepper903c1162007-02-15 19:40:37 +00005782007-02-10 Roland McGrath <roland@redhat.com>
579
580 * dwarf.h (DW_OP_fbreg): Comment fix.
581
Ulrich Drepperaa915fd2007-02-05 07:25:33 +00005822007-02-03 Roland McGrath <roland@redhat.com>
583
584 * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
585 * libdw.map (ELFUTILS_0.126): New version set, inherits from
586 ELFUTILS_0.122. Move dwarf_getelf there; it was never truly
587 exported in the past.
588
Roland McGrath8190db62006-12-17 23:56:51 +00005892006-12-17 Roland McGrath <roland@redhat.com>
590
591 * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
592 address when the CU is missing attributes due to buggy GCC.
593
Roland McGrathc373d852006-10-10 00:25:21 +00005942006-08-29 Roland McGrath <roland@redhat.com>
595
596 * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
597
598 * libdw.h (dwarf_diecu): Add __nonnull_attribute__.
599 (dwarf_child): Don't list arg 1 in __nonnull_attribute__.
600
601 * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
602 result is aligned. Adjust NEWP->remaining here for this allocation.
603 * libdwP.h: Update decl.
604 (libdw_alloc): Update caller.
605
Ulrich Drepper077c65f2006-07-12 19:54:51 +00006062006-07-12 Ulrich Drepper <drepper@redhat.com>
607
608 * dwarf_child.c: Adjust for internal_function_def removal.
609 * dwarf_getabbrev.c: Likewise.
610 * dwarf_tag.c: Likewise.
611 * libdw_form.c: Likewise.
612 * memory-access.c: Likewise.
613
Ulrich Dreppere1812e12006-07-12 07:46:03 +00006142006-06-28 Roland McGrath <roland@redhat.com>
615
616 * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
617
618 * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
619 dwfl_module_getsym.
620
Ulrich Drepper3be74472006-05-27 18:15:40 +00006212006-05-27 Ulrich Drepper <drepper@redhat.com>
622
623 * libdw.h: Add extern "C".
624
Ulrich Dreppere7a73172006-05-22 18:16:45 +00006252006-05-22 Ulrich Drepper <drepper@redhat.com>
626
627 * dwarf_getaranges.c (dwarf_getaranges): Handle files without
628 aranges information.
629
Ulrich Drepper4f3d2a22006-05-22 01:30:56 +00006302006-05-21 Ulrich Drepper <drepper@redhat.com>
631
632 * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
633 dwarf_haschildren.
634
Roland McGrath2dade662006-02-28 22:13:20 +00006352006-02-28 Roland McGrath <roland@redhat.com>
636
637 * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
638 DW_OP_* values, to match DWARF 3.0. Add new DW_DS_*, DW_END_*
639 values from DWARF 3.0.
640
Roland McGrath08333122006-02-27 04:54:26 +00006412006-02-22 Roland McGrath <roland@redhat.com>
642
643 * libdw.map: Bump to 0.120; export dwfl_version.
644
Roland McGrath50ffcbf2005-12-23 01:51:43 +00006452005-12-22 Roland McGrath <roland@redhat.com>
646
647 * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.
648
Roland McGrathdec3a242005-12-12 08:35:55 +00006492005-12-12 Roland McGrath <roland@redhat.com>
650
651 * dwarf_ranges.c: Copy CU base address-finding code from
652 dwarf_getlocation.
653
Roland McGrathf64a4422005-12-09 23:40:30 +00006542005-12-09 Roland McGrath <roland@redhat.com>
655
656 * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
657 Delay CU base lookup until it's needed.
658 If CU base lookup fails with no error, flag invalid DWARF.
659
Roland McGrath994b4892005-12-05 22:46:21 +00006602005-11-25 Roland McGrath <roland@redhat.com>
661
662 * libdw.map: Bump to 0.118; export dwfl_module_register_names.
663
Roland McGrathe47ab762005-11-17 03:16:00 +00006642005-11-15 Roland McGrath <roland@redhat.com>
665
666 * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.
667
6682005-11-13 Roland McGrath <roland@redhat.com>
669
670 * libdw.map: Bump to 0.117; export dwfl_module_return_value_location.
671
Roland McGrath07d4f2f2005-10-28 06:56:24 +00006722005-10-27 Roland McGrath <roland@redhat.com>
673
674 * dwarf_entry_breakpoints.c (search_range): Fix binary search code;
675 don't match end_sequence markers.
676
677 * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
678 before normal records at the same address.
679 * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
680 marker.
681
6822005-10-26 Roland McGrath <roland@redhat.com>
683
Roland McGrath6724c902005-10-28 07:07:19 +0000684 * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
685 * dwarf_func_file.c: Renamed to ...
686 * dwarf_decl_file.c: ... here.
687 * dwarf_func_col.c: Renamed to ...
688 * dwarf_decl_column.c: ... here.
689 * dwarf_func_line.c: Renamed to ...
690 * dwarf_decl_line.c: ... here.
691 (dwarf_func_line): Renamed to ...
692 (dwarf_decl_line): ... this. Take a Dwarf_Die * argument.
693 (__libdw_func_intval): Renamed __libdw_attr_intval.
694 * dwarf_func_name.c: File removed.
695 * dwarf_func_lowpc.c: File removed.
696 * dwarf_func_highpc.c: File removed.
697 * dwarf_func_entrypc.c: File removed.
698 * dwarf_func_die.c: File removed.
699 * Makefile.am (libdw_a_SOURCES): Updated.
700 * libdw.h: Update decls.
701 (Dwarf_Func): Type removed.
702 * libdwP.h: Update decls.
703 (struct Dwarf_Func_s): Type removed.
704 * libdw.map: Updated.
705
706 * libdwP.h (CUDIE): New macro.
707 * dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
708 * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
709 * dwarf_ranges.c (dwarf_ranges): Likewise.
710
711 * dwarf_getloclist.c: Renamed to ...
712 * dwarf_getlocation.c: ... here.
713 (getloclist): Renamed to getlocation.
714 (dwarf_getloclist): Renamed to dwarf_getlocation.
715 (dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
716 * Makefile.am (libdw_a_SOURCES): Updated.
717 * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
718 (dwarf_addrloclists): Renamed dwarf_getlocation_addr.
719 (Dwarf_Loc): Renamed Dwarf_Op.
720 * libdwP.h (struct loc_s): Update use.
721 * libdw.map: Update map.
722
Roland McGrath07d4f2f2005-10-28 06:56:24 +0000723 * dwarf_entry_breakpoints.c: Use the second line record within the
724 function, regardless of its source location data.
725
7262005-10-25 Roland McGrath <roland@redhat.com>
727
728 * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.
729
730 * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.
731
7322005-10-14 Roland McGrath <roland@redhat.com>
733
734 * dwarf_diecu.c (dwarf_diecu): New file.
735 * Makefile.am (libdw_a_SOURCES): Add it.
736 * libdw.h: Declare dwarf_diecu.
737 * libdw.map: Export it.
738
739 * libdw.map: Bump to 0.116; export dwarf_ranges.
740
7412005-09-20 Roland McGrath <roland@redhat.com>
742
743 * dwarf_haspc.c: Use dwarf_ranges.
744 * dwarf_entry_breakpoints.c: Likewise.
745
746 * dwarf_ranges.c: New file.
747 * Makefile.am (libdw_a_SOURCES): Add it.
748 * libdw.h: Declare dwarf_ranges.
749 * libdwP.h: Add INTDECL.
750
7512005-09-14 Roland McGrath <roland@redhat.com>
752
753 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
754 prologue_end marker scanning loop.
755
7562005-09-11 Roland McGrath <roland@redhat.com>
757
758 * dwarf.h: Comment typo fix.
759
7602005-09-07 Roland McGrath <roland@redhat.com>
761
762 * dwarf_entry_breakpoints.c: New file.
763 * Makefile.am (libdw_a_SOURCES): Add it.
764 * libdw.h: Declare dwarf_entry_breakpoints.
765
766 * dwarf_entrypc.c: New file.
767 * Makefile.am (libdw_a_SOURCES): Add it.
768 * libdw.h: Declare dwarf_entrypc.
769 * libdwP.h: Add INTDECL.
770
Ulrich Drepperfbe998a2005-08-29 16:27:10 +00007712005-08-28 Ulrich Drepper <drepper@redhat.com>
772
773 * Makefile.am: Use $(LINK) not $(CC) when creating DSO.
774 (%.os): Use COMPILE.os.
775 (COMPILE.os): Filter out gconv options.
776
Roland McGrath71e15a02005-08-27 10:33:26 +00007772005-08-27 Roland McGrath <roland@redhat.com>
778
779 * dwarf_getscopes.c (dwarf_getscopes): Rewritten using
780 __libdw_visit_scopes.
781
782 * dwarf_getscopes_die.c: New file.
783 * Makefile.am (libdw_a_SOURCES): Add it.
784 * libdw.h: Declare dwarf_getscopes_die.
785 * libdw.map: Bump to 0.115 and add it.
786
787 * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
788 containing a DIE and its parent pointer, instead of just Dwarf_Die.
789 Take two functions for both preorder and postorder visitors.
790 * libdwP.h: Update decl.
791 (struct Dwarf_Die_Chain): New type.
792 * dwarf_func_inline.c: Update uses.
793
794 * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
795 Add INTDEF.
796 * libdwP.h: Add INTDECL.
797 * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.
798
Roland McGrathd17fac72005-08-23 08:20:21 +00007992005-08-23 Roland McGrath <roland@redhat.com>
800
801 * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
802 DW_AT_specification the same as DW_AT_abstract_origin.
803
8042005-08-20 Roland McGrath <roland@redhat.com>
805
806 * libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
807 Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
808 and dwfl_report_offline.
809
8102005-08-19 Roland McGrath <roland@redhat.com>
811
812 * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
813 Add dwfl_module_relocate_address, dwfl_module_relocations,
814 dwfl_module_relocation_info.
815
Roland McGrathf5fda7d2005-08-18 22:01:57 +00008162005-08-18 Roland McGrath <roland@redhat.com>
817
818 * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
819 outermost scope in the results.
820
Roland McGrath1ecb6062005-08-15 09:53:04 +00008212005-08-15 Roland McGrath <roland@redhat.com>
822
823 * dwarf_func_inline.c: New file.
824 * Makefile.am (libdw_a_SOURCES): Add it.
825 * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
826 * libdw.map: Add them.
827
828 * dwarf_func_die.c: New file.
829 * Makefile.am (libdw_a_SOURCES): Add it.
830 * libdw.h: Declare dwarf_func_die.
831 * libdw.map: Add it. Bump version to ELFUTILS_0.114.
832
Roland McGrath1c83bf12005-08-11 07:03:55 +00008332005-08-10 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +0000834
Roland McGrath1c83bf12005-08-11 07:03:55 +0000835 * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
836 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +0000837
Roland McGrath4959bf82005-08-09 10:31:08 +00008382005-08-09 Roland McGrath <roland@redhat.com>
839
Roland McGrathb6312e12005-08-09 10:36:01 +0000840 * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.
841
Roland McGrath4959bf82005-08-09 10:31:08 +0000842 * dwarf_end.c: Add INTDEF.
843 * dwarf_error.c (dwarf_errmsg): Likewise.
844 * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.
845
Roland McGratha5a89682005-08-02 01:24:01 +00008462005-08-01 Roland McGrath <roland@redhat.com>
847
848 * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
849 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
850
Ulrich Drepper18618fd2005-07-28 21:29:22 +00008512005-07-28 Ulrich Drepper <drepper@redhat.com>
852
853 * Makefile.am (libdw.so): No need to link with libeu.a anymore.
854 (libdw_a_LIBADD): Add all files from libdwfl.a.
855
Roland McGrath366784a2005-07-28 06:20:53 +00008562005-07-27 Roland McGrath <roland@redhat.com>
857
Roland McGrath18385902005-07-28 07:12:38 +0000858 * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
859 along with ../libebl/libebl.a and ../lib/libeu.a;
860 depend on ../libelf/libelf.so.
861 (libdw_so_LDADD): New variable.
862 * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.
863
Roland McGrath366784a2005-07-28 06:20:53 +0000864 * libdw.map: Define an empty base version and move all symbols to
865 version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.
866
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00008672005-07-23 Ulrich Drepper <drepper@redhat.com>
868
869 * dwarf_error.c: Add internal alias for dwarf_errno.
870 * libdwP.h: Declare __dwarf_errno_internal.
871 * dwarf_getloclist.c: Use INTDEF for dwarf_errno.
872
873 * dwarf_error.c [USE_TLS]: Actually use __thread in definition of
874 global_error.
875
8762005-06-01 Roland McGrath <roland@redhat.com>
877
878 * dwarf_getaranges.c (dwarf_getaranges): Sort result array.
879 * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.
880
8812005-06-08 Roland McGrath <roland@redhat.com>
882
883 * memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
884 (get_sleb128_step, get_sleb128): Likewise.
885 * dwarf_getattrs.c (dwarf_getattrs): Add consts.
886 * dwarf_getloclist.c (getloclist): Likewise.
887 * dwarf_formblock.c (dwarf_formblock): Likewise.
888 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
889 * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
890 * dwarf_formref.c (dwarf_formref): Likewise.
891 * dwarf_formsdata.c (dwarf_formsdata): Likewise.
892 * dwarf_formudata.c (dwarf_formudata): Likewise.
893 * dwarf_haschildren.c (dwarf_haschildren): Likewise.
894 * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
895 * dwarf_tag.c (dwarf_tag): Likewise.
896 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
897 * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
898 * libdw_form.c (__libdw_form_val_len): Likewise.
899 * libdwP.h: Update decl.
900
9012005-06-04 Roland McGrath <roland@redhat.com>
902
903 * memory-access.h (get_uleb128_rest_return): New macro.
904 [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
905 (get_sleb128_rest_return): New macro.
906 [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
907 * memory-access.c: New file.
908 * Makefile.am (libdw_a_SOURCES): Add it.
909 (DEFS): Add -DIS_LIBDW.
910
9112005-05-31 Roland McGrath <roland@redhat.com>
912
913 * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
914 formref offset.
915
9162005-05-30 Roland McGrath <roland@redhat.com>
917
918 * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
919 address if DW_AT_low_pc is missing. Not to spec, but GCC generates it.
920
921 * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
922 BEGIN value. Instead, match base address entries separately for
923 32/64 size cases.
924
9252005-05-28 Roland McGrath <roland@redhat.com>
926
927 * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
928 past location expression contents.
929
9302005-05-23 Roland McGrath <roland@redhat.com>
931
932 * dwarf_getsrclines.c: Comment typo fix.
933
934 * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
935 * dwarf_getloclist.c (dwarf_addrloclists): Likewise.
936
9372005-05-22 Ulrich Drepper <drepper@redhat.com>
938
939 * libdwP.h: Only use INTDECL for alias prototypes.
940
9412005-05-19 Roland McGrath <roland@redhat.com>
942
943 * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.
944
945 * dwarf_getscopevar.c: New file.
946 * Makefile.am (libdw_a_SOURCES): Add it.
947 * libdw.h: Declare dwarf_getscopevar.
948
949 * dwarf_getsrcfiles.c: Add INTDEF.
950 * dwarf_haschildren.c: Likewise.
951 * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.
952
953 * dwarf_getscopes.c: New file.
954 * Makefile.am (libdw_a_SOURCES): Add it.
955 * libdw.h: Declare dwarf_getscopes.
956 * libdw.map: Add it.
957
9582005-05-18 Roland McGrath <roland@redhat.com>
959
960 * libdwP.h (IDX_debug_ranges): New enum constant.
961 * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
962 * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
963 * dwarf_error.c (errmsgs): Add it.
964 * dwarf_haspc.c: New file.
965 * libdw.h: Declare dwarf_haspc.
966 * libdw.map: Add it.
967 * libdwP.h: Add INTDECL.
968
969 * dwarf_attr_integrate.c: New file.
970 * dwarf_hasattr_integrate.c: New file.
971 * Makefile.am (libdw_a_SOURCES): Add them.
972 * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
973 * libdw.map: Add them.
974
975 * dwarf_hasattr.c: Add INTDEF.
976 * libdwP.h: Add INTDECL for it.
977
978 * dwarf_formref_die.c: New file.
979 * Makefile.am (libdw_a_SOURCES): Add it.
980 * libdw.h (dwarf_formref_die): Declare it.
981 * libdwP.h (dwarf_formref_die): Add INTDECL.
982 * libdw.map: Add it.
983
984 * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
985 of ...
986 (dwarf_getloclist): ... here. Call them.
987 (dwarf_addrloclists): New function.
988 * libdw.h: Declare it.
989 * libdw.map: Add it.
990
991 * dwarf_getmacros.c (dwarf_getmacros): Don't bail at
992 DW_MACINFO_end_file. Recognize type 0 as terminator.
993
9942005-05-05 Roland McGrath <roland@redhat.com>
995
996 * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.
997
998 * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
999 the line program does not produce all entries in ascending order.
1000
10012005-04-25 Ulrich Drepper <drepper@redhat.com>
1002
1003 * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
1004 occurences (e.g., inlines) better.
1005
10062005-04-24 Ulrich Drepper <drepper@redhat.com>
1007
1008 * libdw.h (DWARF_END_ABBREV): Define.
1009 * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
1010 end is reached.
1011 * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
1012 of records reached.
1013 * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
1014 as error of __libdw_getabbrev.
1015
10162005-04-04 Ulrich Drepper <drepper@redhat.com>
1017
1018 * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.
1019
1020 * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
1021 results back to caller.
1022
10232005-04-04 Roland McGrath <roland@redhat.com>
1024
1025 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.
1026
1027 * dwarf_func_line.c (__libdw_func_intval): Use internal_function in
1028 defn.
1029
10302005-04-04 Ulrich Drepper <drepper@redhat.com>
1031
1032 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.
1033
1034 * dwarf_getsrc_file.c: New file.
1035 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
1036 * libdw.h: Declare dwarf_getsrc_file.
1037 * libdw.map: Add dwarf_getsrc_file.
1038
10392005-04-02 Ulrich Drepper <drepper@redhat.com>
1040
1041 * dwarf_func_entrypc.c: New file.
1042 * dwarf_func_col.c: New file.
1043 * dwarf_func_line.c: New file.
1044 * dwarf_func_file.c: New file.
1045 * libdw.h: Add prototypes for new functions.
1046 * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
1047 dwarf_func_file.
1048 * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
1049 dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
1050 * libdwP.h (struct Dwarf_Func_s): Add cudie element.
1051 Declare __libdw_func_intval and __dwarf_formsdata_internal.
1052 * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
1053 * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.
1054
1055 * dwarf.h: Add some DWARF3 definitions.
1056
10572005-04-01 Ulrich Drepper <drepper@redhat.com>
1058
1059 * dwarf_getfuncs.c: New file.
1060 * dwarf_func_highpc.c: New file.
1061 * dwarf_func_lowpc.c: New file.
1062 * dwarf_func_name.c: New file.
1063 * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
1064 dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
1065 * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
1066 and dwarf_func_name.
1067 * libdw.h: Add prototypes for new functions.
1068 * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
1069 * dwarf_siblingof.c: Likewise.
1070 * dwarf_dieoffset.c: Likewise.
1071 * dwarf_highpc.c: Likewise.
1072 * dwarf_lowpc.c: Likewise.
1073 * libdwP.h: Add prototypes for internal functions.
1074 Define Dwarf_Func_s structure.
1075
10762005-03-29 Ulrich Drepper <drepper@redhat.com>
1077
1078 * libdw.h: Add padding in Dwarf_die.
1079
1080 * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
1081 * dwarf_attr.c: Likewise.
1082 * dwarf_begin.c: Likewise.
1083 * dwarf_begin_elf.c: Likewise.
1084 * dwarf_bitoffset.c: Likewise.
1085 * dwarf_bitsize.c: Likewise.
1086 * dwarf_bytesize.c: Likewise.
1087 * dwarf_diename.c: Likewise.
1088 * dwarf_formaddr.c: Likewise.
1089 * dwarf_formblock.c: Likewise.
1090 * dwarf_formref.c: Likewise.
1091 * dwarf_formstring.c: Likewise.
1092 * dwarf_formudata.c: Likewise.
1093 * dwarf_getarange_addr.c: Likewise.
1094 * dwarf_getarangeinfo.c: Likewise.
1095 * dwarf_getaranges.c: Likewise.
1096 * dwarf_getloclist.c: Likewise.
1097 * dwarf_getmacros.c: Likewise.
1098 * dwarf_getsrc_die.c: Likewise.
1099 * dwarf_getsrcfiles.c: Likewise.
1100 * dwarf_getsrclines.c: Likewise.
1101 * dwarf_highpc.c: Likewise.
1102 * dwarf_lowpc.c: Likewise.
1103 * dwarf_nextcu.c: Likewise.
1104 * dwarf_offdie.c: Likewise.
1105 * dwarf_siblingof.c: Likewise.
1106 * dwarf_srclang.c: Likewise.
1107 * dwarf_tag.c: Likewise.
1108 * libdw_findcu.c: Likewise.
1109 * libdwP.h: Add prototypes for internal functions.
1110
1111 * dwarf_addrdie.c: New file.
1112 * dwarf_macro_opcode.c: New file.
1113 * dwarf_macro_param1.c: New file.
1114 * dwarf_macro_param2.c: New file.
1115 * libdw.h: Add declarations. Move Dwarf_Macro definition to libdwP.h.
1116 * libdwP.h: Remove Dwarf_Macro definition.
1117 * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
1118 dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
1119 * libdw.map: Add entries for new functions.
1120
11212005-03-21 Ulrich Drepper <drepper@redhat.com>
1122
1123 * libdw.h: Handle broken gcc < 4.
1124
11252005-02-15 Ulrich Drepper <drepper@redhat.com>
1126
1127 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
1128
1129 * dwarf_begin_elf.c: Fix warnings.
1130 * dwarf_dieoffset.c: Likewise.
1131 * dwarf_end.c: Likewise.
1132 * dwarf_error.c: Likewise.
1133 * dwarf_getpubnames.c: Likewise.
1134
1135 * libdwP.h: Add new error values.
1136 * dwarf_error.c: Support new error values.
1137 * dwarf_getpubnames.c: Check parameter value.
1138
11392005-02-05 Ulrich Drepper <drepper@redhat.com>
1140
1141 * Makefile.am: Check for text relocations in constructed DSO.
1142
1143 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.
1144
11452005-02-04 Ulrich Drepper <drepper@redhat.com>
1146
1147 * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
1148 checks to not read over buffer boundaries for ill-formed DWARF data.
1149
11502004-09-25 Ulrich Drepper <drepper@redhat.com>
1151
1152 * dwarf_child.c: Make compile with gcc 4.0.
1153 * dwarf_error.c: Likewise.
1154 * dwarf_formblock.c: Likewise.
1155 * dwarf_getabbrev.c: Likewise.
1156 * dwarf_getattrs.c: Likewise.
1157 * dwarf_getsrclines.c: Likewise.
1158 * dwarf_tag.c: Likewise.
1159 * libdw_form.c: Likewise.
1160
11612004-01-20 Ulrich Drepper <drepper@redhat.com>
1162
1163 * Makefile.am: Support building with mudflap.
1164
1165 * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
1166 * dwarf_getsrclines.c: Likewise.
1167 * dwarf_memory-access.h: Likewise.
1168
11692004-01-19 Ulrich Drepper <drepper@redhat.com>
1170
1171 * dwarf_getsrcfiles.c: Third parameter can be NULL.
1172
1173 * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros.
1174 Third parameter of dwarf_getsrcfiles can be NULL.
1175
1176 * libdw.map: Add dwarf_getmacros.
1177 * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
1178 * dwarf_getmacros.c: New file.
1179
11802004-01-18 Ulrich Drepper <drepper@redhat.com>
1181
1182 * libdw.h: Second parameter of dwarf_getaranges can be NULL.
1183
1184 * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
1185
1186 * dwarf_getsrclines.c:
1187 Use read_2ubyte_unaligned_inc instead of _inc-less variant.
1188
1189 * dwarf_getaranges.c: Allow naranges parameter to be NULL.
1190
1191 * libdwP.h (_): Use elfutils domain.
1192
1193 * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
1194
1195 * dwarf_getsrclines.c: Fix typo in comment.
1196
11972004-01-17 Ulrich Drepper <drepper@redhat.com>
1198
1199 * Makefile.am: Support building with mudflap.
1200
12012004-01-16 Ulrich Drepper <drepper@redhat.com>
1202
1203 * memory-access.h: Add lots of const in case a pointer passed is const.
1204
1205 * dwarf_formflag.c: New file.
1206 * dwarf_getattrs.c: New file.
1207 * dwarf_error.c: Add new error value.
1208 * libdw.h: Add prototypes for new functions. Adjust prototype for
1209 dwarf_getpubnames.
1210 * libdw.map: Add new functions.
1211 * dwarf_getpubnames.c: Change type of return value and fourth parameter
1212 to ptrdiff_t.
1213 * libdwP.h: Add new error value.
1214 * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
1215 dwarf_formflag.c.
1216
1217 * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
1218
12192004-01-12 Ulrich Drepper <drepper@redhat.com>
1220
1221 * dwarf_getarange_addr.c: New file
1222 * dwarf_getarangeinfo.c: New file.
1223 * dwarf_getaranges.c: New file.
1224 * dwarf_onerange.c: New file.
1225 * libdw.h: Declare new functions. Define Dwarf_Arange and
1226 Dwarf_Aranges.
1227 * libdw.map: Add new functions.
1228 * libdwP.h: Add new errors. Add aranges member to struct Dwarf.
1229 Define Dwarf_Aranges_s and Dwarf_Arange_s.
1230 * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
1231 dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
1232 * dwarf_error.c: Add new message.
1233
12342004-01-11 Ulrich Drepper <drepper@redhat.com>
1235
1236 * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
1237 dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
1238 dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
1239 * dwarf_error.c: Add another message.
1240 * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
1241 introduction.
1242 * dwarf_filesrc.c: Likewise.
1243 * dwarf_getsrcfiles.c: Likewise.
1244 * dwarf_getsrclines.c: Likewise.
1245 * dwarf_lineaddr.c: New file.
1246 * dwarf_linebeginstatement.c: New file.
1247 * dwarf_lineblock.c: New file.
1248 * dwarf_linecol.c: New file.
1249 * dwarf_lineendsequence.c: New file.
1250 * dwarf_lineepiloguebegin.c: New file.
1251 * dwarf_lineno.c: New file.
1252 * dwarf_lineprologueend.c: New file.
1253 * dwarf_onesrcline.c: New file.
1254 * dwarf_lineno.c: Change interface to store result in object pointed
1255 to by second parameter.
1256 * libdw.h: Add prototypes for new functions. Change dwarf_lineno
1257 prototype. Define Dwarf_Files and Dwarf_Lines.
1258 * libdw.map: Add new functions.
1259 * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
1260 * libdw_findcu.c: Don't initialize nlines field.
1261
1262 * dwarf_siblingof: Little optimization.
1263
1264 * dwarf_begin.c: Remember that the ELF descriptor must be closed.
1265 * dwarf_end.c: Close ELF descriptor if free_elf is set.
1266 * libdwP.h (struct Dwarf): Add free_elf field.
1267
1268 * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
1269 dwarf_offabbrev.c.
1270 * dwarf_getstring.c: New file.
1271 * dwarf_offabbrev.c: New file.
1272 * libdw.map: Add dwarf_getstring and dwarf_offabbrev.
1273 * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
1274 parameters. Don't allocate memory if not necessary and don't lookup
1275 previous results if no CU given.
1276 (dwarf_getabbrev): Adjust call to __libdw_getabbrev.
1277 * dwarf_tag.c: Adjust call to __libdw_getabbrev.
1278 * libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
1279 * libdwP.h: Change prototype for __libdw_getabbrev.
1280
1281 * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before
1282 returning if this is wanted.
1283
12842004-01-09 Ulrich Drepper <drepper@redhat.com>
1285
1286 * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it
1287 with offset_size value.
1288 * libdw.h: Adjust dwarf_nextcu prototype.
1289 * libdwP.h (struct Dwarf_CU): Add offset_size member.
1290 * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size
1291 member of new CU struct.
1292 * dwarf_formstring.c: Depend on offset_size not address_size for
1293 DW_FORM_strp handling.
1294 * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
1295
1296 * dwarf_tag.c (__libdw_findabbrev): Return correct value for
1297 failing lookup.
1298 (dwarf_tag): Correctly recognize failed lookup.
1299
1300 * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new
1301 function noop_free.
1302 * dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
1303 * dwarf_formblock.c: New file.
1304 * dwarf_getloclist.c: Rewrite to handle a single block.
1305 * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove
1306 Dwarf_Locdesc definition. Declare dwarf_formblock. Remove
1307 dwarf_getloclistent declaration.
1308 * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
1309 * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
1310 Add locs member to struct Dwarf_CU.
1311 * libdw_fundcu.c: Initialize locs member of new CU.
1312 * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
1313 Remove dwarf_getloclistent.c.
1314
13152004-01-07 Ulrich Drepper <drepper@redhat.com>
1316
1317 * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
1318 * libdwP.h: Likewise.
1319
1320 * dwarf_getloclist.c: New file.
1321 * dwarf_getloclistent.c: New file.
1322 * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
1323 Declare dwarf_getloclistent and dwarf_getloclist.
1324 * libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
1325 * libdwP.h: Define DWARF_E_NO_LOCLIST.
1326 * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
1327 dwarf_getloclist.c.
1328
1329 * dwarf_error.c: More error messages.
1330
13312004-01-06 Ulrich Drepper <drepper@redhat.com>
1332
1333 * dwarf_getsrclines.c: Remove debugging support.
1334
1335 * dwarf_getsrcfiles.c: New file.
1336 * dwarf_filesrc.c: New file.
1337 * libdw.h: Declare these functions. Define Dwarf_File.
1338 * libdwP.c: Adjust Dwarf_File_s definition.
1339 * libdw.map: Add these functions.
1340 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
1341 dwarf_filesrc.c.
1342 * dwarf_getsrclines.c: Initialize cu->files.
1343
13442004-01-05 Ulrich Drepper <drepper@redhat.com>
1345
1346 * libdw.h: Add more nonnull function attributes.
1347
1348 * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
1349 * dwarf_end.c (cu_free): New function.
1350 (dwarf_end): Also free CU tree. Correct freeing of memory blocks.
1351 * dwarf_error.c (errmsgs): Add new messages.
1352 * dwarf_getsrc_die.c: New file.
1353 * dwarf_getsrclines.c: New file.
1354 * dwarf_lineno.c: New file.
1355 * dwarf_linesrc.c: New file.
1356 * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
1357 instead of the *_inc-less variants.
1358 * libdw.h: Define Dwarf_Line. Add some function attributes. Declare
1359 dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
1360 * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
1361 and dwarf_linesrc.
1362 * libdwP.h: Add more error codes.
1363 (struct Dwarf): Remove mem_tail.next member.
1364 (Dwarf_File): Define type.
1365 (struct Dwarf_Line_s): Define type.
1366 (struct Dwarf_CU): Add lines and nlines members.
1367 (libdw_alloc): Define local variable _tail and use it.
1368 Add some function attributes.
1369 * libdw_alloc.c (__libdw_allocate): Don't initialize next member.
1370 * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
1371 * memory-access.h: Add unlikely for the endian conversion paths.
1372 * Makefile.am (AM_CFLAGS): Add -std parameter.
1373 (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
1374 dwarf_lineno, and dwarf_linesrc.
1375
13762003-08-11 Ulrich Drepper <drepper@redhat.com>
1377
Ulrich Drepper6fb34512010-05-28 20:28:04 -07001378 * Moved to CVS archive.