Imported Upstream version 0.155
[platform/upstream/elfutils.git] / libdw / ChangeLog
1 2012-08-24  Mark Wielaard  <mjw@redhat.com>
2
3         * dwarf_begin_elf.c (check_section): Only probe for dwz multi files
4         when ENABLE_DWZ is defined.
5         * libdwP.h (__check_build_id): Only declare when ENABLE_DWZ is
6         defined.
7
8 2012-08-16  Mark Wielaard  <mjw@redhat.com>
9
10         * Makefile.am (EXTRA_DIST): Add known-dwarf.h.
11         * dwarf.h (DW_LANG_Go): Update comment.
12         (DW_LANG_Mips_Assembler): Likewise.
13
14 2012-06-27  Mark Wielaard  <mjw@redhat.com>
15
16         * dwarf.h: Add DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt.
17         * dwarf_begin.c (dwarf_begin): Add INTDEF.
18         * dwarf_begin_elf.c (__check_build_id): New internal_function.
19         (try_debugaltlink): New function.
20         (open_debugaltlink): Likewise.
21         (check_section): Try open_debugaltlink for .gnu_debugaltlink.
22         * dwarf_end.c (dwarf_end): Free the alternative Dwarf descriptor if
23         necessary.
24         * dwarf_error.c (errmsgs): Add DWARF_E_NO_ALT_DEBUGLINK.
25         * dwarf_formref.c (__libdw_formref): Using DW_FORM_GNU_ref_alt
26         is an error here.
27         * dwarf_formref_die.c (dwarf_formref_die): Handle DW_FORM_GNU_ref_alt.
28         * dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_GNU_strp_alt.
29         * dwarf_formudata.c (__libdw_formptr): Adjust __libdw_read_offset
30         calls.
31         * dwarf_getpubnames.c (get_offsets): Adjust __libdw_read_offset call.
32         * libdwP.h: Add DWARF_E_NO_ALT_DEBUGLINK.
33         (struct Dwarf): Add alt_dwarf and free_alt fields.
34         (__libdw_read_offset): Add dbg_ret argument, use to check with
35         __libdw_offset_in_section.
36         (__check_build_id): New function declaration.
37         (dwarf_begin): Define as INTDECL.
38         * libdw_form.c (__libdw_form_val_len): Handle DW_FORM_GNU_ref_alt
39         and DW_FORM_GNU_strp_alt.
40
41 2012-07-19  Mark Wielaard  <mjw@redhat.com>
42
43         * dwarf.h: Add DW_OP_GNU_parameter_ref.
44
45 2012-07-24  Mark Wielaard  <mjw@redhat.com>
46
47         * dwarf.h: Correct spelling of DW_LANG_ObjC.
48         * dwarf_aggregate_size.c (array_size): Use correct spelling of
49         DW_LANG_ObjC.
50
51 2012-07-24  Mark Wielaard  <mjw@redhat.com>
52
53         * dwarf.h: Add DW_ATE_UTF.
54
55 2012-06-27  Mark Wielaard  <mjw@redhat.com>
56
57         * dwarf.h: Add DW_MACRO_GNU .debug_macro type encodings.
58
59 2012-06-26  Mark Wielaard  <mjw@redhat.com>
60
61         * libdwP.h: Add IDX_debug_macro.
62         * dwarf.h: Add DW_AT_GNU_macros.
63         * dwarf_begin_elf.c (dwarf_scnnames): Add .debug_macro.
64         * dwarf_formudata.c (dwarf_formudata): Recognize DW_AT_GNU_macros.
65
66 2012-04-27  Mark Wielaard  <mjw@redhat.com>
67
68         * libdw/dwarf_highpc.c (dwarf_highpc): Handle DW_AT_high_pc being
69         a constant offset from DW_AT_low_pc.
70
71 2012-03-19  Tom Tromey  <tromey@redhat.com>
72
73         * libdw_findcu.c (findcu_cb): Move earlier.
74         (__libdw_intern_next_unit): Add new CU to search tree here...
75         (__libdw_findcu): ... not here.
76
77 2012-01-31  Mark Wielaard  <mjw@redhat.com>
78
79         * dwarf_formudata.c (dwarf_formudata): Handle DW_FORM_sec_offset.
80
81 2011-11-31  Mark Wielaard  <mjw@redhat.com>
82
83         * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk.
84
85 2011-07-14  Mark Wielaard  <mjw@redhat.com>
86
87         * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info.
88
89 2011-05-16  Jakub Jelinek  <jakub@redhat.com>
90
91         * dwarf.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
92         DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret):
93         New.
94
95 2011-04-26  Mark Wielaard  <mjw@redhat.com>
96
97         * dwarf_child (dwarf_child): Sanity check end of section against
98         cu_data () of die->cu.
99
100 2011-03-22  Mark Wielaard  <mjw@redhat.com>
101
102         * dwarf.h: Add DW_TAG_GNU_call_site,
103         DW_TAG_GNU_call_site_parameter,
104         DW_AT_GNU_call_site_value,
105         DW_AT_GNU_call_site_data_value,
106         DW_AT_GNU_call_site_target,
107         DW_AT_GNU_call_site_target_clobbered,
108         DW_AT_GNU_tail_call,
109         DW_AT_GNU_all_tail_call_sites,
110         DW_AT_GNU_all_call_sites,
111         DW_AT_GNU_all_source_call_sites,
112         and DW_OP_GNU_entry_value.
113
114 2011-03-10  Petr Machata  <pmachata@redhat.com>
115
116         * libdw/dwarf_tag.c (__libdw_findabbrev): Reject requests for
117         abbreviation with code 0.
118
119 2011-03-09  Petr Machata  <pmachata@redhat.com>
120
121         * libdw/dwarf_child.c (dwarf_child): Check for section overrun.
122
123 2011-02-23  Roland McGrath  <roland@redhat.com>
124
125         * libdwP.h (struct Dwarf) [USE_ZLIB]: New member sectiondata_gzip_mask.
126         Declare __libdw_free_zdata.
127         * dwarf_end.c [USE_ZLIB] (__libdw_free_zdata): New function.
128         (dwarf_end): Call it.
129
130         * dwarf_begin_elf.c (valid_p): Likewise.
131         (check_section, scngrp_read): Likewise.
132         (check_section) [USE_ZLIB]: Grok .z* flavors of sections.
133
134 2010-10-13  Roland McGrath  <roland@redhat.com>
135
136         * dwarf.h: Add DW_LANG_Go.
137
138 2010-10-05  Roland McGrath  <roland@redhat.com>
139
140         * dwarf_getaranges.c: Use malloc rather than alloca,
141         since the total number of elements can be quite huge.
142
143 2010-07-26  Roland McGrath  <roland@redhat.com>
144
145         * dwarf_getlocation_implicit_pointer.c: New file.
146         * Makefile.am (libdw_a_SOURCES): Add it.
147         * libdw.map (ELFUTILS_0.149): New set.
148         Add dwarf_getlocation_implicit_pointer.
149         * libdw.h: Declare it.
150
151         * dwarf_offdie.c (do_offdie): Renamed to __libdw_offdie, made global.
152         (dwarf_offdie, dwarf_offdie_types): Update callers.
153         * libdwP.h: Declare it.
154
155         * dwarf.h: Add DW_OP_GNU_implicit_pointer.
156         * dwarf_getlocation.c (__libdw_intern_expression): Handle it.
157
158 2010-08-24  Roland McGrath  <roland@redhat.com>
159
160         * libdw.map (ELFUTILS_0.149): New set.  Add dwfl_dwarf_line.
161
162 2010-07-27  Roland McGrath  <roland@redhat.com>
163
164         * dwarf_formref_die.c: Fix sig8 hash insertion.
165
166 2010-06-23  Roland McGrath  <roland@redhat.com>
167
168         * cfi.c (dwarf_cfi_validate_fde): Function removed.
169         * libdw.h: Remove it.
170         * libdw.map: Likewise.
171
172 2010-06-22  Roland McGrath  <roland@redhat.com>
173
174         * dwarf_getlocation.c (check_constant_offset): data[48] are constant.
175
176         * dwarf_getsrclines.c: Fix signed comparison warning in extended
177         opcode parsing.
178
179 2010-06-21  Roland McGrath  <roland@redhat.com>
180
181         * dwarf.h: Add DW_TAG_GNU_* constants.
182
183         * memory-access.h (get_sleb128_rest_return): Fix sign extension for
184         10-byte case.
185
186 2010-06-20  Roland McGrath  <roland@redhat.com>
187
188         * libdw_findcu.c (__libdw_findcu): Take new flag argument,
189         to search TUs instead of CUs.
190         * libdwP.h: Update decl.
191         (struct Dwarf): New member tu_tree.
192         * dwarf_end.c (dwarf_end): Clean up tu_tree.
193         * dwarf_offdie.c (do_offdie): New function, broken out of ...
194         (dwarf_offdie): ... here.
195         (dwarf_offdie_types): New function.
196         * libdw.h: Declare it.
197         * libdw.map (ELFUTILS_0.148): Add it.
198
199         * libdwP.h (CUDIE): Use cu_data.
200         * dwarf_formblock.c: Likewise.
201         * dwarf_formref_die.c: Likewise.
202         * dwarf_diecu.c: Use CUDIE macro.
203         * dwarf_formaddr.c: Use cu_sec_idx.
204
205 2010-06-16  Roland McGrath  <roland@redhat.com>
206
207         * dwarf_formref_die.c: Use dwarf_offdie only for DW_FORM_ref_addr, so
208         we don't repeat a CU lookup we've already done.  Handle
209         DW_FORM_ref_sig8 using sig8_hash table and __libdw_intern_next_unit.
210
211         * libdw_findcu.c (__libdw_intern_next_unit): New function,
212         broken out of ...
213         (__libdw_findcu): ... here.  Call it.
214         * libdwP.h: Declare it.
215         (struct Dwarf): New member next_tu_offset.
216
217         * dwarf_sig8_hash.c: New file.
218         * dwarf_sig8_hash.h: New file.
219         * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
220         * dwarf_abbrev_hash.c: Include dwarf_sig8_hash.h before
221         defining NO_UNDEF.
222         * libdwP.h (struct Dwarf): New member sig8_hash.
223         * dwarf_begin_elf.c: Call Dwarf_Sig8_Hash_init on it.
224         * dwarf_end.c: Call Dwarf_Sig8_Hash_free on it.
225
226         * dwarf_nextcu.c (dwarf_next_unit): New function, broken out of ...
227         (dwarf_nextcu): ... here.  Call it.
228         * libdw.h: Declare it.
229         * libdwP.h: Add INTDECL.
230         * libdw_findcu.c (__libdw_findcu): Use it instead of dwarf_nextcu.
231         * libdw.map (ELFUTILS_0.148): New set, add dwarf_next_unit.
232
233         * libdwP.h (cu_sec_idx, cu_data): New functions.
234         Use .debug_types when CU is a TU.
235         * dwarf_cuoffset.c: Use that instead of assuming IDX_debug_info.
236         * dwarf_siblingof.c: Likewise.
237         * dwarf_formstring.c: Likewise.
238         * dwarf_formudata.c (__libdw_formptr, dwarf_formudata): Likewise.
239         * dwarf_getlocation.c (dwarf_getlocation): Likewise.
240         (dwarf_getlocation_addr): Likewise.
241
242         * libdwP.h (struct Dwarf_CU): Add new members type_offset, type_sig8.
243         (DIE_OFFSET_FROM_CU_OFFSET): Take flag argument; if true, compute
244         .debug_types header size instead of .debug_info header size.
245         (CUDIE): Use it.
246         * dwarf_diecu.c: Update caller.
247         * dwarf_getaranges.c: Likewise.
248         * dwarf_nextcu.c: Likewise.
249         * libdw_findcu.c (__libdw_findcu): Initialize new members.
250
251         * fde.c (fde_by_offset): Renamed to ...
252         (__libdw_fde_by_offset): ... this, made global and internal_function.
253         Don't take ADDRESS argument.
254         (__libdw_find_fde): Update caller.  Do address sanity check here.
255         * cfi.h: Declare __libdw_fde_by_offset.
256         * cfi.c (dwarf_cfi_validate_fde): New function.
257         * libdw.h: Declare it.
258         * libdw.map (ELFUTILS_0.148): Add it.
259
260         * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
261         either DW_EH_PE_udata8 or DW_EH_PE_udata4.
262
263         * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
264         Don't assume DW_EH_PE_aligned refers to native address size.
265
266         * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
267         address.
268
269 2010-06-17  Roland McGrath  <roland@redhat.com>
270
271         * libdwP.h (struct Dwarf_Line_s): Add members isa, discriminator, and
272         op_index.
273         * dwarf_getsrclines.c (dwarf_getsrclines): Move NEW_FILE macro guts
274         into an inner inline function.  Set new fields.  Check all fields for
275         overflow when setting.
276         * dwarf_lineisa.c: New file.
277         * dwarf_linediscriminator.c: New file.
278         * dwarf_lineop_index.c: New file.
279         * Makefile.am (libdw_a_SOURCES): Add them.
280         * libdw.map (ELFUTILS_0.148): Add them.
281         * libdw.h: Declare them.
282
283 2010-06-16  Roland McGrath  <roland@redhat.com>
284
285         * dwarf_next_cfi.c: Fix version 4 return_address_register decoding.
286
287         * fde.c (fde_by_offset): Renamed to ...
288         (__libdw_fde_by_offset): ... this, made global and internal_function.
289         Don't take ADDRESS argument.
290         (__libdw_find_fde): Update caller.  Do address sanity check here.
291         * cfi.h: Declare __libdw_fde_by_offset.
292         * cfi.c (dwarf_cfi_validate_fde): New function.
293         * libdw.h: Declare it.
294         * libdw.map (ELFUTILS_0.148): Add it.
295
296         * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
297         either DW_EH_PE_udata8 or DW_EH_PE_udata4.
298
299         * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
300         Don't assume DW_EH_PE_aligned refers to native address size.
301
302         * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
303         address.
304
305 2010-06-15  Roland McGrath  <roland@redhat.com>
306
307         * dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like
308         DW_FORM_ref_addr.
309         * dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way
310         here, since we don't support it yet.
311
312         * dwarf_next_cfi.c: Handle version 4 format.
313
314         * dwarf_getsrclines.c: Handle version 4 format.
315
316 2010-06-01  Roland McGrath  <roland@redhat.com>
317
318         * libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types.
319         * dwarf_begin_elf.c (dwarf_scnnames): Likewise.
320
321         * libdwP.h (CIE_VERSION): Remove unused macro.
322
323         * dwarf_getsrclines.c: Fix version field test.
324         * libdwP.h (DWARF_VERSION): Remove useless macro.
325
326         * dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling.
327
328         * dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc.
329
330         * libdw_findcu.c (__libdw_findcu): Accept version 4.
331
332 2010-05-31  Mark Wielaard  <mjw@redhat.com>
333
334         * cfi.h (dwarf_cfi_cie_p): Move definition from here, to ..
335         * libdw.h (dwarf_cfi_cie_p): ... here.
336
337 2010-05-31  Mark Wielaard  <mjw@redhat.com>
338
339         * dwarf.h: Fix DW_LANG_Python constant.
340
341 2010-05-28  Eduardo Santiago  <santiago@redhat.com>
342
343         * dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first
344         thing.
345
346 2010-05-27  Roland McGrath  <roland@redhat.com>
347
348         * dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name,
349         DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator.
350
351 2010-05-08  Roland McGrath  <roland@redhat.com>
352
353         * dwarf_getlocation.c (__libdw_intern_expression): Take new argument
354         REF_SIZE.  Use that to handle DW_OP_call_ref correctly.
355         (getlocation): Update caller.
356         * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
357         * dwarf_frame_register.c (dwarf_frame_register): Likewise.
358         * libdwP.h: Update decl.
359
360 2010-04-26  Roland McGrath  <roland@redhat.com>
361
362         * cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule.
363         * cfi.c (execute_cfi): Set that instead of doing cfi_assert for
364         DW_CFA_def_cfa_{offset*,register} when a non-offset rule is in force.
365         * dwarf_frame_cfa.c (dwarf_frame_cfa): Handle cfa_invalid.
366
367         * dwarf_getlocation.c (__libdw_intern_expression): Take new arg CFAP.
368         Prepend DW_OP_call_frame_cfa if true.
369         (getlocation): Update caller.
370         * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
371         * dwarf_frame_register.c (dwarf_frame_register): Likewise.
372         * libdwP.h: Update decl.
373
374 2010-04-22  Roland McGrath  <roland@redhat.com>
375
376         * cfi.c (execute_cfi): Never return without cleanup.
377         Free FS on failure.
378         (cie_cache_initial_state): Adjust caller to expect that free.
379         (__libdw_frame_at_address): Likewise.
380
381 2010-03-10  Roland McGrath  <roland@redhat.com>
382
383         * libdw.map (ELFUTILS_0.146): New set.  Add dwfl_core_file_report.
384
385 2010-02-15  Roland McGrath  <roland@redhat.com>
386
387         * Makefile.am: Use config/eu.am for common stuff.
388
389 2010-02-02  Mark Wielaard  <mjw@redhat.com>
390
391         * fde.c (intern_fde): Fix length check for sized_augmentation_data.
392
393 2010-01-07  Roland McGrath  <roland@redhat.com>
394
395         * dwarf_getcfi_elf.c (getcfi_phdr): Use elf_getphdrnum.
396
397 2010-01-05  Roland McGrath  <roland@redhat.com>
398
399         * dwarf_aggregate_size.c: New file.
400         * Makefile.am (libdw_a_SOURCES): Add it.
401         * libdw.h: Declare it.
402         * libdwP.h: Add INTDECL.
403         * libdw.map (ELFUTILS_0.144): New set.  Add dwarf_aggregate_size.
404
405         * dwarf_srclang.c: Add INTDEF.
406         * libdwP.h: Add INTDECL.
407
408         * dwarf.h: Add some more DW_AT_GNU_* types from gcc.
409
410         * dwarf.h: Add DW_AT_GNU_vector, DW_AT_GNU_template_name.
411
412 2009-11-21  Roland McGrath  <roland@redhat.com>
413
414         * dwarf_getlocation.c (check_constant_offset): Return 1 for all
415         non-constant forms.
416
417 2009-10-15  Roland McGrath  <roland@redhat.com>
418
419         * libdw_form.c (__libdw_form_val_len): Grok DW_FORM_sec_offset,
420         DW_FORM_exprloc, DW_FORM_flag_present, and DW_FORM_ref_sig8.
421
422 2009-09-17  Roland McGrath  <roland@redhat.com>
423
424         * dwarf_getlocation.c (dwarf_getlocation_implicit_value): Make OP
425         argument a pointer to const.
426         * libdw.h: Update decl.
427
428 2009-09-10  Roland McGrath  <roland@redhat.com>
429
430         * dwarf_getlocation.c (store_implicit_value): New function.
431         (__libdw_intern_expression): Use it, handle DW_OP_implicit_value.
432         (dwarf_getlocation_implicit_value): New function.
433         * libdw.h: Declare it.
434         * libdw.map (ELFUTILS_0.143): Add it.
435
436 2009-09-09  Mark Wielaard  <mjw@redhat.com>
437
438         * dwarf_getcfi.c (dwarf_getcfi): Clear cfi->ebl.
439
440 2009-08-21  Josh Stone  <jistone@redhat.com>
441
442         * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
443
444 2009-08-10  Roland McGrath  <roland@redhat.com>
445
446         * dwarf_getscopevar.c: Use dwarf_diename.
447
448 2009-08-09  Roland McGrath  <roland@redhat.com>
449
450         * libdw.map (ELFUTILS_0.143): New version set,
451         inherits from ELFUTILS_0.142.
452         * dwarf_arrayorder.c: Use OLD_VERSION and NEW_VERSION to define an
453         alias in the ELFUTILS_0.122 version set and the default in the new set.
454         * dwarf_srclang.c: Likewise.
455         * dwarf_decl_file.c: Likewise.
456         * dwarf_decl_line.c: Likewise.
457         * dwarf_decl_column.c: Likewise.
458         * dwarf_bytesize.c: Likewise.
459         * dwarf_bitsize.c: Likewise.
460         * dwarf_bitoffset.c: Likewise.
461
462 2009-08-07  Roland McGrath  <roland@redhat.com>
463
464         * dwarf_arrayorder.c: Use dwarf_attr_integrate.
465         * dwarf_srclang.c: Likewise.
466         * dwarf_decl_file.c: Likewise.
467         * dwarf_decl_line.c (__libdw_attr_intval): Likewise.
468         * dwarf_bytesize.c: Likewise.
469         * dwarf_bitsize.c: Likewise.
470         * dwarf_bitoffset.c: Likewise.
471
472 2009-07-22  Roland McGrath  <roland@redhat.com>
473
474         * dwarf_frame_cfa.c: Change calling convention.
475         * libdw.h: Update decl.
476
477         * dwarf_frame_register.c: Change calling/return-value convention for
478         value-only results and undefined/same_value.
479         * libdw.h: Update decl.
480
481         * dwarf_getlocation.c (__libdw_intern_expression): Take new bool
482         argument, append DW_OP_stack_value if set.  Don't take NOPS argument,
483         return that value instead.
484         (getlocation): Update caller.
485         * dwarf_frame_cfa.c: Likewise.
486         * libdwP.h: Update decl.
487
488 2009-07-21  Roland McGrath  <roland@redhat.com>
489
490         * dwarf_getsrc_file.c: Ignore a CU that just has no DW_AT_stmt_list.
491         Fix loop iteration after skipping a bogus or useless CU.
492
493         * dwarf_entry_breakpoints.c: Handle 0 dwarf_errno () as harmless
494         absence, not DWARF_E_NO_DEBUG_LINE.
495
496 2009-07-20  Roland McGrath  <roland@redhat.com>
497
498         * dwarf_getlocation.c (__libdw_intern_expression):
499         Handle DW_OP_stack_value.
500
501 2009-07-16  Roland McGrath  <roland@redhat.com>
502
503         * dwarf_formudata.c (__libdw_formptr): Handle DW_FORM_sec_offset,
504         reject others when CU's version > 3.
505
506         * dwarf_formflag.c: Handle DW_FORM_flag_present.
507
508         * dwarf.h: Add DW_OP_{implicit,stack}_value from DWARF 4 draft.
509         Also DW_TAG_type_unit and DW_TAG_rvalue_reference_type.
510         Also DW_AT_signature, DW_AT_main_subprogram, DW_AT_data_bit_offset,
511         and DW_AT_const_expr.
512         Also DW_FORM_sec_offset, DW_FORM_exprloc, DW_FORM_flag_present,
513         and DW_FORM_ref_sig8.
514
515 2009-07-15  Roland McGrath  <roland@redhat.com>
516
517         * dwarf_getlocation.c: Grok DW_OP_form_tls_address,
518         DW_OP_GNU_push_tls_address, and DW_OP_bit_piece.
519
520 2009-07-13  Roland McGrath  <roland@redhat.com>
521
522         * dwarf_getlocation.c: Grok DW_OP_call_frame_cfa.
523
524 2009-07-08  Roland McGrath  <roland@redhat.com>
525
526         * libdw.map (ELFUTILS_0.142): Add dwfl_module_dwarf_cfi,
527         dwfl_module_eh_cfi.
528
529         * libdwP.h (struct Dwarf): Add member `cfi'.
530         * dwarf_end.c (dwarf_end): Call __libdw_destroy_frame_cache on it.
531         * dwarf_getcfi.c: New file.
532         * dwarf_getcfi_elf.c: New file.
533         * dwarf_cfi_end.c: New file.
534         * dwarf_cfi_addrframe.c: New file.
535         * dwarf_frame_cfa.c: New file.
536         * dwarf_frame_register.c: New file.
537         * dwarf_frame_return_address_register.c: New file.
538         * Makefile.am (libdw_a_SOURCES): Add them.
539         * unwind.h: Declare those functions.
540         * libdw.map (ELFUTILS_0.142): Export them.
541
542         * dwarf_getlocation.c (__libdw_intern_expression): New function,
543         broken out of ...
544         (getlocation): ... here, call it.
545         * libdwP.h: Declare it.
546
547         * cie.c: New file.
548         * fde.c: New file.
549         * frame-cache.c: New file.
550         * cfi.c: New file.
551         * cfi.h: New file.
552         * encoded-value.h: New file.
553         * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
554         * libdwP.h: Add DWARF_E_INVALID_CFI to errors enum.
555         * dwarf_error.c (errmsgs): Add element for it.
556
557         * dwarf_next_cfi.c: New file.
558         * Makefile.am (libdw_a_SOURCES): Add it.
559         * libdw.h (Dwarf_CIE, Dwarf_FDE, Dwarf_CIE_Entry): New types.
560         Declare dwarf_next_cfi.
561         * libdw.map (ELFUTILS_0.142): New set, inherits from ELFUTILS_0.136.
562         Add dwarf_next_cfi.
563
564         * memory-access.h [! ALLOW_UNALIGNED]
565         (read_2ubyte_unaligned): Renamed to ...
566         (read_2ubyte_unaligned_1): ... this.  Take bool rather than Dwarf *.
567         (read_2ubyte_unaligned): Define as macro passing dbg->other_byte_order.
568         (read_2sbyte_unaligned): Likewise.
569         (read_4ubyte_unaligned): Likewise.
570         (read_4sbyte_unaligned): Likewise.
571         (read_8ubyte_unaligned): Likewise.
572         (read_8sbyte_unaligned): Likewise.
573
574         * libdwP.h (IDX_eh_frame): Remove it.
575         * dwarf_begin_elf.c (dwarf_scnnames): Remove its element.
576
577 2009-07-08  Roland McGrath  <roland@redhat.com>
578
579         * libdwP.h (struct Dwarf_Line_s): Reorder members to pack better.
580
581         * dwarf_getlocation.c (check_constant_offset): New function.
582         (dwarf_getlocation, dwarf_getlocation_addr): Call it to
583         handle DW_AT_data_member_location of data[48] as constant offset.
584
585 2009-06-18  Roland McGrath  <roland@redhat.com>
586
587         * libdwP.h (__libdw_read_address_inc): Constify.
588         (__libdw_read_offset_inc): Likewise.
589         * dwarf_getaranges.c: Likewise.
590         * dwarf_getlocation.c: Likewise.
591         * dwarf_getsrclines.c: Likewise.
592         * dwarf_nextcu.c: Likewise.
593
594 2009-05-05  Petr Machata  <pmachata@redhat.com>
595
596         * libdwP.h (__libdw_formptr): Declare new function.
597         * dwarf_formudata.c: Implement it here.
598         * dwarf_getlocation.c (dwarf_getlocation_addr):
599         Call it instead of hand-rolled offset handling code.
600         * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
601         * dwarf_ranges.c (dwarf_ranges): Likewise.
602
603 2009-05-04  Petr Machata  <pmachata@redhat.com>
604
605         * libdwP.h (__libdw_read_begin_end_pair_inc): Declare new function.
606         * dwarf_ranges.c: Implement it here.
607         (dwarf_ranges): Call it.
608         * dwarf_getlocation.c (dwarf_getlocation_addr): Call it also here.
609
610 2009-04-23  Petr Machata  <pmachata@redhat.com>
611
612         * dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead
613         of read_*ubyte_unaligned.
614         * dwarf_formref_die.c (dwarf_formref_die): Likewise.
615         * dwarf_formstring.c (dwarf_formstring): Likewise.
616         * dwarf_formudate.c (dwarf_formudata): Likewise.
617         * dwarf_getaranges.c (dwarf_getaranges): Likewise.
618         * dwarf_getlocation.c (dwarf_getlocation_addr): Likewise.
619         * dwarf_getpubnames.c (get_offsets): Likewise.
620         * dwarf_nextcu.c (dwarf_nextcu): Likewise.
621
622 2009-04-23  Petr Machata  <pmachata@redhat.com>
623
624         * libdwP.h (__libdw_read_addr_inc, __libdw_read_off_inc,
625         __libdw_read_addr, __libdw_read_off): Add four new internal
626         functions.
627
628 2009-05-07  Roland McGrath  <roland@redhat.com>
629
630         * dwarf_getmacros.c (dwarf_getmacros): Use absolute section offset in
631         return value and OFFSET argument, not CU-relative.  Only fetch the
632         attribute data when called with OFFSET of 0.
633
634 2009-05-07  Petr Machata  <pmachata@redhat.com>
635
636         * dwarf_getmacros.c (dwarf_getmacros): Take into account offset in
637         DW_AT_macro_info attribute of CU DIE.
638
639 2009-04-15  Roland McGrath  <roland@redhat.com>
640
641         * dwarf.h (DW_CIE_ID): Removed.
642         (DW_CIE_ID_32, DW_CIE_ID_64): New constants replace it.
643
644 2009-04-01  Roland McGrath  <roland@redhat.com>
645
646         * dwarf.h: Add DW_CFA_GNU_negative_offset_extended.
647
648 2009-01-28  Roland McGrath  <roland@redhat.com>
649
650         * libdwP.h (struct Dwarf_Line_s): Move out of struct Dwarf_Lines_s
651         defn so C++ doesn't scope the name to not match the Dwarf_Line typedef.
652
653         * libdwP.h (struct Dwarf_Files_s): Replace dbg field with cu field.
654
655 2009-01-26  Roland McGrath  <roland@redhat.com>
656
657         * dwarf_ranges.c: Return 0 when no ranges or *_pc attrs at all.
658
659 2009-01-25  Roland McGrath  <roland@redhat.com>
660
661         * dwarf_getattrs.c: Correctly skip attribute values when restarting.
662
663 2009-01-23  Roland McGrath  <roland@redhat.com>
664
665         * Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back.
666         Put these rules under if MAINTAINER_MODE.
667
668 2009-01-22  Roland McGrath  <roland@redhat.com>
669
670         * dwarf.h: Add DW_OP_GNU_encoded_addr.
671
672 2009-01-21  Roland McGrath  <roland@redhat.com>
673
674         * Makefile.am (CLEANFILES): Renamed to ...
675         (MOSTLYCLEANFILES): ... here.
676         (CLEANFILES): New variable, add known-dwarf.h.
677
678 2009-01-17  Roland McGrath  <roland@redhat.com>
679
680         * Makefile.am (known-dwarf.h): Target renamed, not in $(srcdir).
681         Make it unconditional.
682         (BUILT_SOURCES): Updated.
683
684         * dwarf.h: Add description comments for DW_LANG_* values.
685
686         * Makefile.am [MAINTAINER_MODE]
687         ($(srcdir)/known-dwarf.h): New target.
688         (BUILT_SOURCES): Add it.
689
690         * dwarf.h: Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit.
691
692 2009-01-10  Ulrich Drepper  <drepper@redhat.com>
693
694         * dwarf_error.c: Always use __thread.  Remove all !USE_TLS code.
695
696 2009-01-08  Roland McGrath  <roland@redhat.com>
697
698         * Makefile.am (libdw.so): Don't depend on $(zip_LIBS), just link it in.
699
700 2008-01-06  Roland McGrath  <roland@redhat.com>
701
702         * libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool.
703         Reorder members.
704         * dwarf_haschildren.c: Return -1 for error case, not 0.
705
706         * Makefile.am (libdw.so): Link in $(zip_LIBS).
707
708 2009-01-06  Ulrich Drepper  <drepper@redhat.com>
709
710         * dwarf.h: Add definition for unwind and call frame information.
711
712         * memory-access.h: Define read_ubyte_unaligned, read_sbyte_unaligned,
713         read_ubyte_unaligned_inc, and read_sbyte_unaligned_inc.
714
715 2008-08-15  Roland McGrath  <roland@redhat.com>
716
717         * libdw.map (ELFUTILS_0.136): New version set, inherits from
718         ELFUTILS_0.130.  Add dwfl_addrsegment, dwfl_report_segment.
719
720 2008-01-21  Ulrich Drepper  <drepper@redhat.com>
721
722         * dwarf_child.c: Minor optimizations.
723         * dwarf_getattrs.c: Likewise.
724         * dwarf_getpubnames.c: Likewise.
725         * dwarf_siblingof.c: Likewise.
726         * dwarf_tag.c: Likewise.
727
728 2008-01-18  Ulrich Drepper  <drepper@redhat.com>
729
730         * dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match
731         of DWARF_VERSION comparison, just fail if the file's version is newer.
732
733 2008-01-17  Nick Clifton  <nickc@redhat.com>
734
735         * dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define.
736         (DWARF3_LENGTH_MAX_ESCAPE_CODE): New define.
737         (DWARF3_LENGTH_64_BIT): New define.
738         * dwarf_getaranges (dwarf_getaranges): Use the new definitions.
739         * dwarf_getpubnames: Include dwarf.h.
740         (get_offsets): Use the new definitions.
741         * dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions.
742         * dwarf_nextcu.c: Include dwarf.h.  Correct comment.
743         (dwarf_nextcu): Use the new definitions.
744
745         * libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro.
746         * dwarf_diecu.c (dwarf_diecu): Use the new macro.
747         * dwarf_getaranges (dwarf_getaranges): Use the new macro.
748         * dwarf_nextcu.c (dwarf_nextcu): Use the new macro.
749
750         * dwarf_getpubnames (get_offsets): Replace assertion with test and
751         error return.
752
753         * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE.
754
755         * dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer.
756         Set the address in the return structure to the address of the next
757         non-sibling die, if there is no sibling and the return pointer is
758         not the same as the die pointer.
759         * libdw.h: Expand the description of the dwarf_siblingof prototype.
760
761         * dwarf_child.c: Fix typo in comment.
762
763         * libdwP.h (DWARF_VERSION): Change to 3.
764
765         * dwarf_formref.c (__libdw_formref.c): Handle attributes which do
766         not have a initialised valp pointer.
767
768         * dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when
769         the end of the attributes is reached.  When the callback fails,
770         return the address of the failing attribute, not the address of
771         its successor.
772         * libdw.h: Expand the description of the dwarf_getattrs prototype.
773
774         * dwarf_child.c (__libdw_find_attr): Use the new definition.
775         (dwarf_child): Likewise.
776         * dwarf_tag.c (__libdw_findabbrev): Likewise.
777         (dwarf_tag): Likewise.
778
779 2008-01-08  Roland McGrath  <roland@redhat.com>
780
781         * Makefile.am (euinclude): Variable removed.
782         (pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
783         (libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir).
784
785 2007-10-17  Roland McGrath  <roland@redhat.com>
786
787         * libdw.h (__deprecated_attribute__): New macro.
788         (dwarf_formref): Mark it deprecated.
789         * dwarf_formref.c (__libdw_formref): New function, broken out of ...
790         (dwarf_formref): ... here.  Call it.  Remove INTDEF.
791         * libdwP.h: Remove INTDECL.
792         Declare __libdw_formref.
793         * dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead.
794         * dwarf_formref_die.c: Likewise.  Handle DW_FORM_ref_addr here.
795
796         * libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result,
797         needs to check CU->version.
798
799         * libdwP.h (struct Dwarf_CU): New member `version'.
800         * libdw_findcu.c (__libdw_findcu): Initialize it.
801
802         * dwarf_child.c: Return 1 for null entry as first child.
803
804 2007-10-05  Roland McGrath  <roland@redhat.com>
805
806         * dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections.
807
808         * libdw.h (__extern_inline): Rename to __libdw_extern_inline.
809         [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses.
810
811 2007-10-03  Roland McGrath  <roland@redhat.com>
812
813         * libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf
814         and dwfl_build_id_find_debuginfo.
815
816         * libdw.map (ELFUTILS_0.130): New version set, inherits from
817         ELFUTILS_0.127.  Add dwfl_module_build_id, dwfl_module_report_build_id.
818
819 2007-10-02  Roland McGrath  <roland@redhat.com>
820
821         * libdw_visit_scopes.c (classify_die): Return walk for class_type and
822         structure_type.
823
824 2007-08-07  Roland McGrath  <roland@redhat.com>
825
826         * dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
827         error code is DWARF_E_NOERROR (0).
828
829         * dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
830         Fix typo in __libdw_visit_scopes argument.
831
832         * dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
833         swallow DWARF_E_NO_DEBUG_RANGES but not other errors.
834
835 2007-07-03  Roland McGrath  <roland@redhat.com>
836
837         * libdw.h (__extern_inline): New macro.
838         [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.
839
840 2007-04-16  Roland McGrath  <roland@redhat.com>
841
842         * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
843
844 2007-04-05  Roland McGrath  <roland@redhat.com>
845
846         * dwarf_getsrcdirs.c: New file.
847         * Makefile.am (libdw_a_SOURCES): Add it.
848         * libdw.h: Declare dwarf_getsrcdirs.
849         * libdw.map (ELFUTILS_0.127): Add it.
850
851         * libdwP.h (struct Dwarf_Files_s): New member ndirs.
852         * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
853         zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
854         Save DIRARRAY in the Dwarf_Files.
855
856         * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
857         address to check for all-ones base address entry.  Check directly.
858         Reported by Sébastien Dugué <sebastien.dugue@bull.net>.
859
860 2007-03-25  Roland McGrath  <roland@redhat.com>
861
862         * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
863         Return NULL when freeing RESULT on error.
864         (global_read, scngrp_read): Check return value from check_section,
865         break out of loop after it has freed RESULT.
866         (valid_p): Handle null argument.
867
868 2007-03-12  Roland McGrath  <roland@redhat.com>
869
870         * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.
871
872 2007-03-04  Roland McGrath  <roland@redhat.com>
873
874         * libdw.map (ELFUTILS_0.127): New version set, inherits from
875         ELFUTILS_0.126.  Add dwfl_module_addrsym.
876
877 2007-02-10  Roland McGrath  <roland@redhat.com>
878
879         * dwarf.h (DW_OP_fbreg): Comment fix.
880
881 2007-02-03  Roland McGrath  <roland@redhat.com>
882
883         * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
884         * libdw.map (ELFUTILS_0.126): New version set, inherits from
885         ELFUTILS_0.122.  Move dwarf_getelf there; it was never truly
886         exported in the past.
887
888 2006-12-17  Roland McGrath  <roland@redhat.com>
889
890         * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
891         address when the CU is missing attributes due to buggy GCC.
892
893 2006-08-29  Roland McGrath  <roland@redhat.com>
894
895         * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
896
897         * libdw.h (dwarf_diecu): Add __nonnull_attribute__.
898         (dwarf_child): Don't list arg 1 in __nonnull_attribute__.
899
900         * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
901         result is aligned.  Adjust NEWP->remaining here for this allocation.
902         * libdwP.h: Update decl.
903         (libdw_alloc): Update caller.
904
905 2006-07-12  Ulrich Drepper  <drepper@redhat.com>
906
907         * dwarf_child.c: Adjust for internal_function_def removal.
908         * dwarf_getabbrev.c: Likewise.
909         * dwarf_tag.c: Likewise.
910         * libdw_form.c: Likewise.
911         * memory-access.c: Likewise.
912
913 2006-06-28  Roland McGrath  <roland@redhat.com>
914
915         * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
916
917         * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
918         dwfl_module_getsym.
919
920 2006-05-27  Ulrich Drepper  <drepper@redhat.com>
921
922         * libdw.h: Add extern "C".
923
924 2006-05-22  Ulrich Drepper  <drepper@redhat.com>
925
926         * dwarf_getaranges.c (dwarf_getaranges): Handle files without
927         aranges information.
928
929 2006-05-21  Ulrich Drepper  <drepper@redhat.com>
930
931         * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
932         dwarf_haschildren.
933
934 2006-02-28  Roland McGrath  <roland@redhat.com>
935
936         * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
937         DW_OP_* values, to match DWARF 3.0.  Add new DW_DS_*, DW_END_*
938         values from DWARF 3.0.
939
940 2006-02-22  Roland McGrath  <roland@redhat.com>
941
942         * libdw.map: Bump to 0.120; export dwfl_version.
943
944 2005-12-22  Roland McGrath  <roland@redhat.com>
945
946         * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.
947
948 2005-12-12  Roland McGrath  <roland@redhat.com>
949
950         * dwarf_ranges.c: Copy CU base address-finding code from
951         dwarf_getlocation.
952
953 2005-12-09  Roland McGrath  <roland@redhat.com>
954
955         * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
956         Delay CU base lookup until it's needed.
957         If CU base lookup fails with no error, flag invalid DWARF.
958
959 2005-11-25  Roland McGrath  <roland@redhat.com>
960
961         * libdw.map: Bump to 0.118; export dwfl_module_register_names.
962
963 2005-11-15  Roland McGrath  <roland@redhat.com>
964
965         * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.
966
967 2005-11-13  Roland McGrath  <roland@redhat.com>
968
969         * libdw.map: Bump to 0.117; export dwfl_module_return_value_location.
970
971 2005-10-27  Roland McGrath  <roland@redhat.com>
972
973         * dwarf_entry_breakpoints.c (search_range): Fix binary search code;
974         don't match end_sequence markers.
975
976         * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
977         before normal records at the same address.
978         * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
979         marker.
980
981 2005-10-26  Roland McGrath  <roland@redhat.com>
982
983         * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
984         * dwarf_func_file.c: Renamed to ...
985         * dwarf_decl_file.c: ... here.
986         * dwarf_func_col.c: Renamed to ...
987         * dwarf_decl_column.c: ... here.
988         * dwarf_func_line.c: Renamed to ...
989         * dwarf_decl_line.c: ... here.
990         (dwarf_func_line): Renamed to ...
991         (dwarf_decl_line): ... this.  Take a Dwarf_Die * argument.
992         (__libdw_func_intval): Renamed __libdw_attr_intval.
993         * dwarf_func_name.c: File removed.
994         * dwarf_func_lowpc.c: File removed.
995         * dwarf_func_highpc.c: File removed.
996         * dwarf_func_entrypc.c: File removed.
997         * dwarf_func_die.c: File removed.
998         * Makefile.am (libdw_a_SOURCES): Updated.
999         * libdw.h: Update decls.
1000         (Dwarf_Func): Type removed.
1001         * libdwP.h: Update decls.
1002         (struct Dwarf_Func_s): Type removed.
1003         * libdw.map: Updated.
1004
1005         * libdwP.h (CUDIE): New macro.
1006         * dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
1007         * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
1008         * dwarf_ranges.c (dwarf_ranges): Likewise.
1009
1010         * dwarf_getloclist.c: Renamed to ...
1011         * dwarf_getlocation.c: ... here.
1012         (getloclist): Renamed to getlocation.
1013         (dwarf_getloclist): Renamed to dwarf_getlocation.
1014         (dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
1015         * Makefile.am (libdw_a_SOURCES): Updated.
1016         * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
1017         (dwarf_addrloclists): Renamed dwarf_getlocation_addr.
1018         (Dwarf_Loc): Renamed Dwarf_Op.
1019         * libdwP.h (struct loc_s): Update use.
1020         * libdw.map: Update map.
1021
1022         * dwarf_entry_breakpoints.c: Use the second line record within the
1023         function, regardless of its source location data.
1024
1025 2005-10-25  Roland McGrath  <roland@redhat.com>
1026
1027         * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.
1028
1029         * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.
1030
1031 2005-10-14  Roland McGrath  <roland@redhat.com>
1032
1033         * dwarf_diecu.c (dwarf_diecu): New file.
1034         * Makefile.am (libdw_a_SOURCES): Add it.
1035         * libdw.h: Declare dwarf_diecu.
1036         * libdw.map: Export it.
1037
1038         * libdw.map: Bump to 0.116; export dwarf_ranges.
1039
1040 2005-09-20  Roland McGrath  <roland@redhat.com>
1041
1042         * dwarf_haspc.c: Use dwarf_ranges.
1043         * dwarf_entry_breakpoints.c: Likewise.
1044
1045         * dwarf_ranges.c: New file.
1046         * Makefile.am (libdw_a_SOURCES): Add it.
1047         * libdw.h: Declare dwarf_ranges.
1048         * libdwP.h: Add INTDECL.
1049
1050 2005-09-14  Roland McGrath  <roland@redhat.com>
1051
1052         * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
1053         prologue_end marker scanning loop.
1054
1055 2005-09-11  Roland McGrath  <roland@redhat.com>
1056
1057         * dwarf.h: Comment typo fix.
1058
1059 2005-09-07  Roland McGrath  <roland@redhat.com>
1060
1061         * dwarf_entry_breakpoints.c: New file.
1062         * Makefile.am (libdw_a_SOURCES): Add it.
1063         * libdw.h: Declare dwarf_entry_breakpoints.
1064
1065         * dwarf_entrypc.c: New file.
1066         * Makefile.am (libdw_a_SOURCES): Add it.
1067         * libdw.h: Declare dwarf_entrypc.
1068         * libdwP.h: Add INTDECL.
1069
1070 2005-08-28  Ulrich Drepper  <drepper@redhat.com>
1071
1072         * Makefile.am: Use $(LINK) not $(CC) when creating DSO.
1073         (%.os): Use COMPILE.os.
1074         (COMPILE.os): Filter out gconv options.
1075
1076 2005-08-27  Roland McGrath  <roland@redhat.com>
1077
1078         * dwarf_getscopes.c (dwarf_getscopes): Rewritten using
1079         __libdw_visit_scopes.
1080
1081         * dwarf_getscopes_die.c: New file.
1082         * Makefile.am (libdw_a_SOURCES): Add it.
1083         * libdw.h: Declare dwarf_getscopes_die.
1084         * libdw.map: Bump to 0.115 and add it.
1085
1086         * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
1087         containing a DIE and its parent pointer, instead of just Dwarf_Die.
1088         Take two functions for both preorder and postorder visitors.
1089         * libdwP.h: Update decl.
1090         (struct Dwarf_Die_Chain): New type.
1091         * dwarf_func_inline.c: Update uses.
1092
1093         * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
1094         Add INTDEF.
1095         * libdwP.h: Add INTDECL.
1096         * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.
1097
1098 2005-08-23  Roland McGrath  <roland@redhat.com>
1099
1100         * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
1101         DW_AT_specification the same as DW_AT_abstract_origin.
1102
1103 2005-08-20  Roland McGrath  <roland@redhat.com>
1104
1105         * libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
1106         Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
1107         and dwfl_report_offline.
1108
1109 2005-08-19  Roland McGrath  <roland@redhat.com>
1110
1111         * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
1112         Add dwfl_module_relocate_address, dwfl_module_relocations,
1113         dwfl_module_relocation_info.
1114
1115 2005-08-18  Roland McGrath  <roland@redhat.com>
1116
1117         * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
1118         outermost scope in the results.
1119
1120 2005-08-15  Roland McGrath  <roland@redhat.com>
1121
1122         * dwarf_func_inline.c: New file.
1123         * Makefile.am (libdw_a_SOURCES): Add it.
1124         * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
1125         * libdw.map: Add them.
1126
1127         * dwarf_func_die.c: New file.
1128         * Makefile.am (libdw_a_SOURCES): Add it.
1129         * libdw.h: Declare dwarf_func_die.
1130         * libdw.map: Add it.  Bump version to ELFUTILS_0.114.
1131
1132 2005-08-10  Ulrich Drepper  <drepper@redhat.com>
1133
1134         * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
1135         of DW_LNS_set_epilog_begin.
1136
1137 2005-08-09  Roland McGrath  <roland@redhat.com>
1138
1139         * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.
1140
1141         * dwarf_end.c: Add INTDEF.
1142         * dwarf_error.c (dwarf_errmsg): Likewise.
1143         * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.
1144
1145 2005-08-01  Roland McGrath  <roland@redhat.com>
1146
1147         * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
1148         * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
1149
1150 2005-07-28  Ulrich Drepper  <drepper@redhat.com>
1151
1152         * Makefile.am (libdw.so): No need to link with libeu.a anymore.
1153         (libdw_a_LIBADD): Add all files from libdwfl.a.
1154
1155 2005-07-27  Roland McGrath  <roland@redhat.com>
1156
1157         * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
1158         along with ../libebl/libebl.a and ../lib/libeu.a;
1159         depend on ../libelf/libelf.so.
1160         (libdw_so_LDADD): New variable.
1161         * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.
1162
1163         * libdw.map: Define an empty base version and move all symbols to
1164         version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.
1165
1166 2005-07-23  Ulrich Drepper  <drepper@redhat.com>
1167
1168         * dwarf_error.c: Add internal alias for dwarf_errno.
1169         * libdwP.h: Declare __dwarf_errno_internal.
1170         * dwarf_getloclist.c: Use INTDEF for dwarf_errno.
1171
1172         * dwarf_error.c [USE_TLS]: Actually use __thread in definition of
1173         global_error.
1174
1175 2005-06-01  Roland McGrath  <roland@redhat.com>
1176
1177         * dwarf_getaranges.c (dwarf_getaranges): Sort result array.
1178         * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.
1179
1180 2005-06-08  Roland McGrath  <roland@redhat.com>
1181
1182         * memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
1183         (get_sleb128_step, get_sleb128): Likewise.
1184         * dwarf_getattrs.c (dwarf_getattrs): Add consts.
1185         * dwarf_getloclist.c (getloclist): Likewise.
1186         * dwarf_formblock.c (dwarf_formblock): Likewise.
1187         * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
1188         * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
1189         * dwarf_formref.c (dwarf_formref): Likewise.
1190         * dwarf_formsdata.c (dwarf_formsdata): Likewise.
1191         * dwarf_formudata.c (dwarf_formudata): Likewise.
1192         * dwarf_haschildren.c (dwarf_haschildren): Likewise.
1193         * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
1194         * dwarf_tag.c (dwarf_tag): Likewise.
1195         * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
1196         * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
1197         * libdw_form.c (__libdw_form_val_len): Likewise.
1198         * libdwP.h: Update decl.
1199
1200 2005-06-04  Roland McGrath  <roland@redhat.com>
1201
1202         * memory-access.h (get_uleb128_rest_return): New macro.
1203         [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
1204         (get_sleb128_rest_return): New macro.
1205         [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
1206         * memory-access.c: New file.
1207         * Makefile.am (libdw_a_SOURCES): Add it.
1208         (DEFS): Add -DIS_LIBDW.
1209
1210 2005-05-31  Roland McGrath  <roland@redhat.com>
1211
1212         * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
1213         formref offset.
1214
1215 2005-05-30  Roland McGrath  <roland@redhat.com>
1216
1217         * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
1218         address if DW_AT_low_pc is missing.  Not to spec, but GCC generates it.
1219
1220         * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
1221         BEGIN value.  Instead, match base address entries separately for
1222         32/64 size cases.
1223
1224 2005-05-28  Roland McGrath  <roland@redhat.com>
1225
1226         * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
1227         past location expression contents.
1228
1229 2005-05-23  Roland McGrath  <roland@redhat.com>
1230
1231         * dwarf_getsrclines.c: Comment typo fix.
1232
1233         * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
1234         * dwarf_getloclist.c (dwarf_addrloclists): Likewise.
1235
1236 2005-05-22  Ulrich Drepper  <drepper@redhat.com>
1237
1238         * libdwP.h: Only use INTDECL for alias prototypes.
1239
1240 2005-05-19  Roland McGrath  <roland@redhat.com>
1241
1242         * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.
1243
1244         * dwarf_getscopevar.c: New file.
1245         * Makefile.am (libdw_a_SOURCES): Add it.
1246         * libdw.h: Declare dwarf_getscopevar.
1247
1248         * dwarf_getsrcfiles.c: Add INTDEF.
1249         * dwarf_haschildren.c: Likewise.
1250         * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.
1251
1252         * dwarf_getscopes.c: New file.
1253         * Makefile.am (libdw_a_SOURCES): Add it.
1254         * libdw.h: Declare dwarf_getscopes.
1255         * libdw.map: Add it.
1256
1257 2005-05-18  Roland McGrath  <roland@redhat.com>
1258
1259         * libdwP.h (IDX_debug_ranges): New enum constant.
1260         * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
1261         * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
1262         * dwarf_error.c (errmsgs): Add it.
1263         * dwarf_haspc.c: New file.
1264         * libdw.h: Declare dwarf_haspc.
1265         * libdw.map: Add it.
1266         * libdwP.h: Add INTDECL.
1267
1268         * dwarf_attr_integrate.c: New file.
1269         * dwarf_hasattr_integrate.c: New file.
1270         * Makefile.am (libdw_a_SOURCES): Add them.
1271         * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
1272         * libdw.map: Add them.
1273
1274         * dwarf_hasattr.c: Add INTDEF.
1275         * libdwP.h: Add INTDECL for it.
1276
1277         * dwarf_formref_die.c: New file.
1278         * Makefile.am (libdw_a_SOURCES): Add it.
1279         * libdw.h (dwarf_formref_die): Declare it.
1280         * libdwP.h (dwarf_formref_die): Add INTDECL.
1281         * libdw.map: Add it.
1282
1283         * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
1284         of ...
1285         (dwarf_getloclist): ... here.  Call them.
1286         (dwarf_addrloclists): New function.
1287         * libdw.h: Declare it.
1288         * libdw.map: Add it.
1289
1290         * dwarf_getmacros.c (dwarf_getmacros): Don't bail at
1291         DW_MACINFO_end_file.  Recognize type 0 as terminator.
1292
1293 2005-05-05  Roland McGrath  <roland@redhat.com>
1294
1295         * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.
1296
1297         * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
1298         the line program does not produce all entries in ascending order.
1299
1300 2005-04-25  Ulrich Drepper  <drepper@redhat.com>
1301
1302         * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
1303         occurences (e.g., inlines) better.
1304
1305 2005-04-24  Ulrich Drepper  <drepper@redhat.com>
1306
1307         * libdw.h (DWARF_END_ABBREV): Define.
1308         * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
1309         end is reached.
1310         * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
1311         of records reached.
1312         * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
1313         as error of __libdw_getabbrev.
1314
1315 2005-04-04  Ulrich Drepper  <drepper@redhat.com>
1316
1317         * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.
1318
1319         * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
1320         results back to caller.
1321
1322 2005-04-04  Roland McGrath  <roland@redhat.com>
1323
1324         * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.
1325
1326         * dwarf_func_line.c (__libdw_func_intval): Use internal_function in
1327         defn.
1328
1329 2005-04-04  Ulrich Drepper  <drepper@redhat.com>
1330
1331         * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.
1332
1333         * dwarf_getsrc_file.c: New file.
1334         * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
1335         * libdw.h: Declare dwarf_getsrc_file.
1336         * libdw.map: Add dwarf_getsrc_file.
1337
1338 2005-04-02  Ulrich Drepper  <drepper@redhat.com>
1339
1340         * dwarf_func_entrypc.c: New file.
1341         * dwarf_func_col.c: New file.
1342         * dwarf_func_line.c: New file.
1343         * dwarf_func_file.c: New file.
1344         * libdw.h: Add prototypes for new functions.
1345         * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
1346         dwarf_func_file.
1347         * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
1348         dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
1349         * libdwP.h (struct Dwarf_Func_s): Add cudie element.
1350         Declare __libdw_func_intval and __dwarf_formsdata_internal.
1351         * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
1352         * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.
1353
1354         * dwarf.h: Add some DWARF3 definitions.
1355
1356 2005-04-01  Ulrich Drepper  <drepper@redhat.com>
1357
1358         * dwarf_getfuncs.c: New file.
1359         * dwarf_func_highpc.c: New file.
1360         * dwarf_func_lowpc.c: New file.
1361         * dwarf_func_name.c: New file.
1362         * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
1363         dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
1364         * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
1365         and dwarf_func_name.
1366         * libdw.h: Add prototypes for new functions.
1367         * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
1368         * dwarf_siblingof.c: Likewise.
1369         * dwarf_dieoffset.c: Likewise.
1370         * dwarf_highpc.c: Likewise.
1371         * dwarf_lowpc.c: Likewise.
1372         * libdwP.h: Add prototypes for internal functions.
1373         Define Dwarf_Func_s structure.
1374
1375 2005-03-29  Ulrich Drepper  <drepper@redhat.com>
1376
1377         * libdw.h: Add padding in Dwarf_die.
1378
1379         * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
1380         * dwarf_attr.c: Likewise.
1381         * dwarf_begin.c: Likewise.
1382         * dwarf_begin_elf.c: Likewise.
1383         * dwarf_bitoffset.c: Likewise.
1384         * dwarf_bitsize.c: Likewise.
1385         * dwarf_bytesize.c: Likewise.
1386         * dwarf_diename.c: Likewise.
1387         * dwarf_formaddr.c: Likewise.
1388         * dwarf_formblock.c: Likewise.
1389         * dwarf_formref.c: Likewise.
1390         * dwarf_formstring.c: Likewise.
1391         * dwarf_formudata.c: Likewise.
1392         * dwarf_getarange_addr.c: Likewise.
1393         * dwarf_getarangeinfo.c: Likewise.
1394         * dwarf_getaranges.c: Likewise.
1395         * dwarf_getloclist.c: Likewise.
1396         * dwarf_getmacros.c: Likewise.
1397         * dwarf_getsrc_die.c: Likewise.
1398         * dwarf_getsrcfiles.c: Likewise.
1399         * dwarf_getsrclines.c: Likewise.
1400         * dwarf_highpc.c: Likewise.
1401         * dwarf_lowpc.c: Likewise.
1402         * dwarf_nextcu.c: Likewise.
1403         * dwarf_offdie.c: Likewise.
1404         * dwarf_siblingof.c: Likewise.
1405         * dwarf_srclang.c: Likewise.
1406         * dwarf_tag.c: Likewise.
1407         * libdw_findcu.c: Likewise.
1408         * libdwP.h: Add prototypes for internal functions.
1409
1410         * dwarf_addrdie.c: New file.
1411         * dwarf_macro_opcode.c: New file.
1412         * dwarf_macro_param1.c: New file.
1413         * dwarf_macro_param2.c: New file.
1414         * libdw.h: Add declarations.  Move Dwarf_Macro definition to libdwP.h.
1415         * libdwP.h: Remove Dwarf_Macro definition.
1416         * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
1417         dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
1418         * libdw.map: Add entries for new functions.
1419
1420 2005-03-21  Ulrich Drepper  <drepper@redhat.com>
1421
1422         * libdw.h: Handle broken gcc < 4.
1423
1424 2005-02-15  Ulrich Drepper  <drepper@redhat.com>
1425
1426         * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
1427
1428         * dwarf_begin_elf.c: Fix warnings.
1429         * dwarf_dieoffset.c: Likewise.
1430         * dwarf_end.c: Likewise.
1431         * dwarf_error.c: Likewise.
1432         * dwarf_getpubnames.c: Likewise.
1433
1434         * libdwP.h: Add new error values.
1435         * dwarf_error.c: Support new error values.
1436         * dwarf_getpubnames.c: Check parameter value.
1437
1438 2005-02-05  Ulrich Drepper  <drepper@redhat.com>
1439
1440         * Makefile.am: Check for text relocations in constructed DSO.
1441
1442         * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.
1443
1444 2005-02-04  Ulrich Drepper  <drepper@redhat.com>
1445
1446         * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
1447         checks to not read over buffer boundaries for ill-formed DWARF data.
1448
1449 2004-09-25  Ulrich Drepper  <drepper@redhat.com>
1450
1451         * dwarf_child.c: Make compile with gcc 4.0.
1452         * dwarf_error.c: Likewise.
1453         * dwarf_formblock.c: Likewise.
1454         * dwarf_getabbrev.c: Likewise.
1455         * dwarf_getattrs.c: Likewise.
1456         * dwarf_getsrclines.c: Likewise.
1457         * dwarf_tag.c: Likewise.
1458         * libdw_form.c: Likewise.
1459
1460 2004-01-20  Ulrich Drepper  <drepper@redhat.com>
1461
1462         * Makefile.am: Support building with mudflap.
1463
1464         * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
1465         * dwarf_getsrclines.c: Likewise.
1466         * dwarf_memory-access.h: Likewise.
1467
1468 2004-01-19  Ulrich Drepper  <drepper@redhat.com>
1469
1470         * dwarf_getsrcfiles.c: Third parameter can be NULL.
1471
1472         * libdw.h: Define Dwarf_macro.  Declare dwarf_getmacros.
1473         Third parameter of dwarf_getsrcfiles can be NULL.
1474
1475         * libdw.map: Add dwarf_getmacros.
1476         * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
1477         * dwarf_getmacros.c: New file.
1478
1479 2004-01-18  Ulrich Drepper  <drepper@redhat.com>
1480
1481         * libdw.h: Second parameter of dwarf_getaranges can be NULL.
1482
1483         * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
1484
1485         * dwarf_getsrclines.c:
1486         Use read_2ubyte_unaligned_inc instead of _inc-less variant.
1487
1488         * dwarf_getaranges.c: Allow naranges parameter to be NULL.
1489
1490         * libdwP.h (_): Use elfutils domain.
1491
1492         * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
1493
1494         * dwarf_getsrclines.c: Fix typo in comment.
1495
1496 2004-01-17  Ulrich Drepper  <drepper@redhat.com>
1497
1498         * Makefile.am: Support building with mudflap.
1499
1500 2004-01-16  Ulrich Drepper  <drepper@redhat.com>
1501
1502         * memory-access.h: Add lots of const in case a pointer passed is const.
1503
1504         * dwarf_formflag.c: New file.
1505         * dwarf_getattrs.c: New file.
1506         * dwarf_error.c: Add new error value.
1507         * libdw.h: Add prototypes for new functions.  Adjust prototype for
1508         dwarf_getpubnames.
1509         * libdw.map: Add new functions.
1510         * dwarf_getpubnames.c: Change type of return value and fourth parameter
1511         to ptrdiff_t.
1512         * libdwP.h: Add new error value.
1513         * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
1514         dwarf_formflag.c.
1515
1516         * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
1517
1518 2004-01-12  Ulrich Drepper  <drepper@redhat.com>
1519
1520         * dwarf_getarange_addr.c: New file
1521         * dwarf_getarangeinfo.c: New file.
1522         * dwarf_getaranges.c: New file.
1523         * dwarf_onerange.c: New file.
1524         * libdw.h: Declare new functions.  Define Dwarf_Arange and
1525         Dwarf_Aranges.
1526         * libdw.map: Add new functions.
1527         * libdwP.h: Add new errors.  Add aranges member to struct Dwarf.
1528         Define Dwarf_Aranges_s and Dwarf_Arange_s.
1529         * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
1530         dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
1531         * dwarf_error.c: Add new message.
1532
1533 2004-01-11  Ulrich Drepper  <drepper@redhat.com>
1534
1535         * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
1536         dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
1537         dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
1538         * dwarf_error.c: Add another message.
1539         * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
1540         introduction.
1541         * dwarf_filesrc.c: Likewise.
1542         * dwarf_getsrcfiles.c: Likewise.
1543         * dwarf_getsrclines.c: Likewise.
1544         * dwarf_lineaddr.c: New file.
1545         * dwarf_linebeginstatement.c: New file.
1546         * dwarf_lineblock.c: New file.
1547         * dwarf_linecol.c: New file.
1548         * dwarf_lineendsequence.c: New file.
1549         * dwarf_lineepiloguebegin.c: New file.
1550         * dwarf_lineno.c: New file.
1551         * dwarf_lineprologueend.c: New file.
1552         * dwarf_onesrcline.c: New file.
1553         * dwarf_lineno.c: Change interface to store result in object pointed
1554         to by second parameter.
1555         * libdw.h: Add prototypes for new functions.  Change dwarf_lineno
1556         prototype.  Define Dwarf_Files and Dwarf_Lines.
1557         * libdw.map: Add new functions.
1558         * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
1559         * libdw_findcu.c: Don't initialize nlines field.
1560
1561         * dwarf_siblingof: Little optimization.
1562
1563         * dwarf_begin.c: Remember that the ELF descriptor must be closed.
1564         * dwarf_end.c: Close ELF descriptor if free_elf is set.
1565         * libdwP.h (struct Dwarf): Add free_elf field.
1566
1567         * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
1568         dwarf_offabbrev.c.
1569         * dwarf_getstring.c: New file.
1570         * dwarf_offabbrev.c: New file.
1571         * libdw.map: Add dwarf_getstring and dwarf_offabbrev.
1572         * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
1573         parameters.  Don't allocate memory if not necessary and don't lookup
1574         previous results if no CU given.
1575         (dwarf_getabbrev): Adjust call to __libdw_getabbrev.
1576         * dwarf_tag.c: Adjust call to __libdw_getabbrev.
1577         * libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
1578         * libdwP.h: Change prototype for __libdw_getabbrev.
1579
1580         * dwarf_getabbrevattr.c: Add offsetp parameter.  Fill in before
1581         returning if this is wanted.
1582
1583 2004-01-09  Ulrich Drepper  <drepper@redhat.com>
1584
1585         * dwarf_nextcu.c: Add new parameter offset_sizep.  Initialize it
1586         with offset_size value.
1587         * libdw.h: Adjust dwarf_nextcu prototype.
1588         * libdwP.h (struct Dwarf_CU): Add offset_size member.
1589         * libdw_findcu.c: Adjust dwarf_nextcu call.  Initialize offset_size
1590         member of new CU struct.
1591         * dwarf_formstring.c: Depend on offset_size not address_size for
1592         DW_FORM_strp handling.
1593         * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
1594
1595         * dwarf_tag.c (__libdw_findabbrev): Return correct value for
1596         failing lookup.
1597         (dwarf_tag): Correctly recognize failed lookup.
1598
1599         * dwarf_end.c (cu_free):  Call tdestroy for locs member.  Use new
1600         function noop_free.
1601         * dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
1602         * dwarf_formblock.c: New file.
1603         * dwarf_getloclist.c: Rewrite to handle a single block.
1604         * libdw.h: Define Dwarf_Block.  Rename Dwarf_Loc members.  Remove
1605         Dwarf_Locdesc definition.  Declare dwarf_formblock.  Remove
1606         dwarf_getloclistent declaration.
1607         * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
1608         * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
1609         Add locs member to struct Dwarf_CU.
1610         * libdw_fundcu.c: Initialize locs member of new CU.
1611         * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
1612         Remove dwarf_getloclistent.c.
1613
1614 2004-01-07  Ulrich Drepper  <drepper@redhat.com>
1615
1616         * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
1617         * libdwP.h: Likewise.
1618
1619         * dwarf_getloclist.c: New file.
1620         * dwarf_getloclistent.c: New file.
1621         * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
1622         Declare dwarf_getloclistent and dwarf_getloclist.
1623         * libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
1624         * libdwP.h: Define DWARF_E_NO_LOCLIST.
1625         * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
1626         dwarf_getloclist.c.
1627
1628         * dwarf_error.c: More error messages.
1629
1630 2004-01-06  Ulrich Drepper  <drepper@redhat.com>
1631
1632         * dwarf_getsrclines.c: Remove debugging support.
1633
1634         * dwarf_getsrcfiles.c: New file.
1635         * dwarf_filesrc.c: New file.
1636         * libdw.h: Declare these functions.  Define Dwarf_File.
1637         * libdwP.c: Adjust Dwarf_File_s definition.
1638         * libdw.map: Add these functions.
1639         * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
1640         dwarf_filesrc.c.
1641         * dwarf_getsrclines.c: Initialize cu->files.
1642
1643 2004-01-05  Ulrich Drepper  <drepper@redhat.com>
1644
1645         * libdw.h: Add more nonnull function attributes.
1646
1647         * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
1648         * dwarf_end.c (cu_free): New function.
1649         (dwarf_end): Also free CU tree.  Correct freeing of memory blocks.
1650         * dwarf_error.c (errmsgs): Add new messages.
1651         * dwarf_getsrc_die.c: New file.
1652         * dwarf_getsrclines.c: New file.
1653         * dwarf_lineno.c: New file.
1654         * dwarf_linesrc.c: New file.
1655         * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
1656         instead of the *_inc-less variants.
1657         * libdw.h: Define Dwarf_Line.  Add some function attributes.  Declare
1658         dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
1659         * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
1660         and dwarf_linesrc.
1661         * libdwP.h: Add more error codes.
1662         (struct Dwarf): Remove mem_tail.next member.
1663         (Dwarf_File): Define type.
1664         (struct Dwarf_Line_s): Define type.
1665         (struct Dwarf_CU): Add lines and nlines members.
1666         (libdw_alloc): Define local variable _tail and use it.
1667         Add some function attributes.
1668         * libdw_alloc.c (__libdw_allocate): Don't initialize next member.
1669         * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
1670         * memory-access.h: Add unlikely for the endian conversion paths.
1671         * Makefile.am (AM_CFLAGS): Add -std parameter.
1672         (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
1673         dwarf_lineno, and dwarf_linesrc.
1674
1675 2003-08-11  Ulrich Drepper  <drepper@redhat.com>
1676
1677         * Moved to CVS archive.