• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
12008-08-15  Roland McGrath  <roland@redhat.com>
2
3	* libdw.map (ELFUTILS_0.136): New version set, inherits from
4	ELFUTILS_0.130.  Add dwfl_addrsegment, dwfl_report_segment.
5
62008-01-21  Ulrich Drepper  <drepper@redhat.com>
7
8	* dwarf_child.c: Minor optimizations.
9	* dwarf_getattrs.c: Likewise.
10	* dwarf_getpubnames.c: Likewise.
11	* dwarf_siblingof.c: Likewise.
12	* dwarf_tag.c: Likewise.
13
142008-01-18  Ulrich Drepper  <drepper@redhat.com>
15
16	* dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match
17	of DWARF_VERSION comparison, just fail if the file's version is newer.
18
192008-01-17  Nick Clifton  <nickc@redhat.com>
20
21	* dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define.
22	(DWARF3_LENGTH_MAX_ESCAPE_CODE): New define.
23	(DWARF3_LENGTH_64_BIT): New define.
24	* dwarf_getaranges (dwarf_getaranges): Use the new definitions.
25	* dwarf_getpubnames: Include dwarf.h.
26	(get_offsets): Use the new definitions.
27	* dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions.
28	* dwarf_nextcu.c: Include dwarf.h.  Correct comment.
29	(dwarf_nextcu): Use the new definitions.
30
31	* libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro.
32	* dwarf_diecu.c (dwarf_diecu): Use the new macro.
33	* dwarf_getaranges (dwarf_getaranges): Use the new macro.
34	* dwarf_nextcu.c (dwarf_nextcu): Use the new macro.
35
36	* dwarf_getpubnames (get_offsets): Replace assertion with test and
37	error return.
38
39	* dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE.
40
41	* dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer.
42	Set the address in the return structure to the address of the next
43	non-sibling die, if there is no sibling and the return pointer is
44	not the same as the die pointer.
45	* libdw.h: Expand the description of the dwarf_siblingof prototype.
46
47	* dwarf_child.c: Fix typo in comment.
48
49	* libdwP.h (DWARF_VERSION): Change to 3.
50
51	* dwarf_formref.c (__libdw_formref.c): Handle attributes which do
52	not have a initialised valp pointer.
53
54	* dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when
55	the end of the attributes is reached.  When the callback fails,
56	return the address of the failing attribute, not the address of
57	its successor.
58	* libdw.h: Expand the description of the dwarf_getattrs prototype.
59
60	* dwarf_child.c (__libdw_find_attr): Use the new definition.
61	(dwarf_child): Likewise.
62	* dwarf_tag.c (__libdw_findabbrev): Likewise.
63	(dwarf_tag): Likewise.
64
652008-01-08  Roland McGrath  <roland@redhat.com>
66
67	* Makefile.am (euinclude): Variable removed.
68	(pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
69	(libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir).
70
712007-10-17  Roland McGrath  <roland@redhat.com>
72
73	* libdw.h (__deprecated_attribute__): New macro.
74	(dwarf_formref): Mark it deprecated.
75	* dwarf_formref.c (__libdw_formref): New function, broken out of ...
76	(dwarf_formref): ... here.  Call it.  Remove INTDEF.
77	* libdwP.h: Remove INTDECL.
78	Declare __libdw_formref.
79	* dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead.
80	* dwarf_formref_die.c: Likewise.  Handle DW_FORM_ref_addr here.
81
82	* libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result,
83	needs to check CU->version.
84
85	* libdwP.h (struct Dwarf_CU): New member `version'.
86	* libdw_findcu.c (__libdw_findcu): Initialize it.
87
88	* dwarf_child.c: Return 1 for null entry as first child.
89
902007-10-05  Roland McGrath  <roland@redhat.com>
91
92	* dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections.
93
94	* libdw.h (__extern_inline): Rename to __libdw_extern_inline.
95	[__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses.
96
972007-10-03  Roland McGrath  <roland@redhat.com>
98
99	* libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf
100	and dwfl_build_id_find_debuginfo.
101
102	* libdw.map (ELFUTILS_0.130): New version set, inherits from
103	ELFUTILS_0.127.  Add dwfl_module_build_id, dwfl_module_report_build_id.
104
1052007-10-02  Roland McGrath  <roland@redhat.com>
106
107	* libdw_visit_scopes.c (classify_die): Return walk for class_type and
108	structure_type.
109
1102007-08-07  Roland McGrath  <roland@redhat.com>
111
112	* dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
113	error code is DWARF_E_NOERROR (0).
114
115	* dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
116	Fix typo in __libdw_visit_scopes argument.
117
118	* dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
119	swallow DWARF_E_NO_DEBUG_RANGES but not other errors.
120
1212007-07-03  Roland McGrath  <roland@redhat.com>
122
123	* libdw.h (__extern_inline): New macro.
124	[__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.
125
1262007-04-16  Roland McGrath  <roland@redhat.com>
127
128	* libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
129
1302007-04-05  Roland McGrath  <roland@redhat.com>
131
132	* dwarf_getsrcdirs.c: New file.
133	* Makefile.am (libdw_a_SOURCES): Add it.
134	* libdw.h: Declare dwarf_getsrcdirs.
135	* libdw.map (ELFUTILS_0.127): Add it.
136
137	* libdwP.h (struct Dwarf_Files_s): New member ndirs.
138	* dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
139	zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
140	Save DIRARRAY in the Dwarf_Files.
141
142	* dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
143	address to check for all-ones base address entry.  Check directly.
144	Reported by Sébastien Dugué <sebastien.dugue@bull.net>.
145
1462007-03-25  Roland McGrath  <roland@redhat.com>
147
148	* dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
149	Return NULL when freeing RESULT on error.
150	(global_read, scngrp_read): Check return value from check_section,
151	break out of loop after it has freed RESULT.
152	(valid_p): Handle null argument.
153
1542007-03-12  Roland McGrath  <roland@redhat.com>
155
156	* libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.
157
1582007-03-04  Roland McGrath  <roland@redhat.com>
159
160	* libdw.map (ELFUTILS_0.127): New version set, inherits from
161	ELFUTILS_0.126.  Add dwfl_module_addrsym.
162
1632007-02-10  Roland McGrath  <roland@redhat.com>
164
165	* dwarf.h (DW_OP_fbreg): Comment fix.
166
1672007-02-03  Roland McGrath  <roland@redhat.com>
168
169	* dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
170	* libdw.map (ELFUTILS_0.126): New version set, inherits from
171	ELFUTILS_0.122.  Move dwarf_getelf there; it was never truly
172	exported in the past.
173
1742006-12-17  Roland McGrath  <roland@redhat.com>
175
176	* dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
177	address when the CU is missing attributes due to buggy GCC.
178
1792006-08-29  Roland McGrath  <roland@redhat.com>
180
181	* Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
182
183	* libdw.h (dwarf_diecu): Add __nonnull_attribute__.
184	(dwarf_child): Don't list arg 1 in __nonnull_attribute__.
185
186	* libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
187	result is aligned.  Adjust NEWP->remaining here for this allocation.
188	* libdwP.h: Update decl.
189	(libdw_alloc): Update caller.
190
1912006-07-12  Ulrich Drepper  <drepper@redhat.com>
192
193	* dwarf_child.c: Adjust for internal_function_def removal.
194	* dwarf_getabbrev.c: Likewise.
195	* dwarf_tag.c: Likewise.
196	* libdw_form.c: Likewise.
197	* memory-access.c: Likewise.
198
1992006-06-28  Roland McGrath  <roland@redhat.com>
200
201	* libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
202
203	* libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
204	dwfl_module_getsym.
205
2062006-05-27  Ulrich Drepper  <drepper@redhat.com>
207
208	* libdw.h: Add extern "C".
209
2102006-05-22  Ulrich Drepper  <drepper@redhat.com>
211
212	* dwarf_getaranges.c (dwarf_getaranges): Handle files without
213	aranges information.
214
2152006-05-21  Ulrich Drepper  <drepper@redhat.com>
216
217	* libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
218	dwarf_haschildren.
219
2202006-02-28  Roland McGrath  <roland@redhat.com>
221
222	* dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
223	DW_OP_* values, to match DWARF 3.0.  Add new DW_DS_*, DW_END_*
224	values from DWARF 3.0.
225
2262006-02-22  Roland McGrath  <roland@redhat.com>
227
228	* libdw.map: Bump to 0.120; export dwfl_version.
229
2302005-12-22  Roland McGrath  <roland@redhat.com>
231
232	* libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.
233
2342005-12-12  Roland McGrath  <roland@redhat.com>
235
236	* dwarf_ranges.c: Copy CU base address-finding code from
237	dwarf_getlocation.
238
2392005-12-09  Roland McGrath  <roland@redhat.com>
240
241	* dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
242	Delay CU base lookup until it's needed.
243	If CU base lookup fails with no error, flag invalid DWARF.
244
2452005-11-25  Roland McGrath  <roland@redhat.com>
246
247	* libdw.map: Bump to 0.118; export dwfl_module_register_names.
248
2492005-11-15  Roland McGrath  <roland@redhat.com>
250
251	* Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.
252
2532005-11-13  Roland McGrath  <roland@redhat.com>
254
255	* libdw.map: Bump to 0.117; export dwfl_module_return_value_location.
256
2572005-10-27  Roland McGrath  <roland@redhat.com>
258
259	* dwarf_entry_breakpoints.c (search_range): Fix binary search code;
260	don't match end_sequence markers.
261
262	* dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
263	before normal records at the same address.
264	* dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
265	marker.
266
2672005-10-26  Roland McGrath  <roland@redhat.com>
268
269	* dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
270	* dwarf_func_file.c: Renamed to ...
271	* dwarf_decl_file.c: ... here.
272	* dwarf_func_col.c: Renamed to ...
273	* dwarf_decl_column.c: ... here.
274	* dwarf_func_line.c: Renamed to ...
275	* dwarf_decl_line.c: ... here.
276	(dwarf_func_line): Renamed to ...
277	(dwarf_decl_line): ... this.  Take a Dwarf_Die * argument.
278	(__libdw_func_intval): Renamed __libdw_attr_intval.
279	* dwarf_func_name.c: File removed.
280	* dwarf_func_lowpc.c: File removed.
281	* dwarf_func_highpc.c: File removed.
282	* dwarf_func_entrypc.c: File removed.
283	* dwarf_func_die.c: File removed.
284	* Makefile.am (libdw_a_SOURCES): Updated.
285	* libdw.h: Update decls.
286	(Dwarf_Func): Type removed.
287	* libdwP.h: Update decls.
288	(struct Dwarf_Func_s): Type removed.
289	* libdw.map: Updated.
290
291	* libdwP.h (CUDIE): New macro.
292	* dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
293	* dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
294	* dwarf_ranges.c (dwarf_ranges): Likewise.
295
296	* dwarf_getloclist.c: Renamed to ...
297	* dwarf_getlocation.c: ... here.
298	(getloclist): Renamed to getlocation.
299	(dwarf_getloclist): Renamed to dwarf_getlocation.
300	(dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
301	* Makefile.am (libdw_a_SOURCES): Updated.
302	* libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
303	(dwarf_addrloclists): Renamed dwarf_getlocation_addr.
304	(Dwarf_Loc): Renamed Dwarf_Op.
305	* libdwP.h (struct loc_s): Update use.
306	* libdw.map: Update map.
307
308	* dwarf_entry_breakpoints.c: Use the second line record within the
309	function, regardless of its source location data.
310
3112005-10-25  Roland McGrath  <roland@redhat.com>
312
313	* dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.
314
315	* libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.
316
3172005-10-14  Roland McGrath  <roland@redhat.com>
318
319	* dwarf_diecu.c (dwarf_diecu): New file.
320	* Makefile.am (libdw_a_SOURCES): Add it.
321	* libdw.h: Declare dwarf_diecu.
322	* libdw.map: Export it.
323
324	* libdw.map: Bump to 0.116; export dwarf_ranges.
325
3262005-09-20  Roland McGrath  <roland@redhat.com>
327
328	* dwarf_haspc.c: Use dwarf_ranges.
329	* dwarf_entry_breakpoints.c: Likewise.
330
331	* dwarf_ranges.c: New file.
332	* Makefile.am (libdw_a_SOURCES): Add it.
333	* libdw.h: Declare dwarf_ranges.
334	* libdwP.h: Add INTDECL.
335
3362005-09-14  Roland McGrath  <roland@redhat.com>
337
338	* dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
339	prologue_end marker scanning loop.
340
3412005-09-11  Roland McGrath  <roland@redhat.com>
342
343	* dwarf.h: Comment typo fix.
344
3452005-09-07  Roland McGrath  <roland@redhat.com>
346
347	* dwarf_entry_breakpoints.c: New file.
348	* Makefile.am (libdw_a_SOURCES): Add it.
349	* libdw.h: Declare dwarf_entry_breakpoints.
350
351	* dwarf_entrypc.c: New file.
352	* Makefile.am (libdw_a_SOURCES): Add it.
353	* libdw.h: Declare dwarf_entrypc.
354	* libdwP.h: Add INTDECL.
355
3562005-08-28  Ulrich Drepper  <drepper@redhat.com>
357
358	* Makefile.am: Use $(LINK) not $(CC) when creating DSO.
359	(%.os): Use COMPILE.os.
360	(COMPILE.os): Filter out gconv options.
361
3622005-08-27  Roland McGrath  <roland@redhat.com>
363
364	* dwarf_getscopes.c (dwarf_getscopes): Rewritten using
365	__libdw_visit_scopes.
366
367	* dwarf_getscopes_die.c: New file.
368	* Makefile.am (libdw_a_SOURCES): Add it.
369	* libdw.h: Declare dwarf_getscopes_die.
370	* libdw.map: Bump to 0.115 and add it.
371
372	* libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
373	containing a DIE and its parent pointer, instead of just Dwarf_Die.
374	Take two functions for both preorder and postorder visitors.
375	* libdwP.h: Update decl.
376	(struct Dwarf_Die_Chain): New type.
377	* dwarf_func_inline.c: Update uses.
378
379	* dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
380	Add INTDEF.
381	* libdwP.h: Add INTDECL.
382	* dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.
383
3842005-08-23  Roland McGrath  <roland@redhat.com>
385
386	* dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
387	DW_AT_specification the same as DW_AT_abstract_origin.
388
3892005-08-20  Roland McGrath  <roland@redhat.com>
390
391	* libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
392	Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
393	and dwfl_report_offline.
394
3952005-08-19  Roland McGrath  <roland@redhat.com>
396
397	* libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
398	Add dwfl_module_relocate_address, dwfl_module_relocations,
399	dwfl_module_relocation_info.
400
4012005-08-18  Roland McGrath  <roland@redhat.com>
402
403	* dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
404	outermost scope in the results.
405
4062005-08-15  Roland McGrath  <roland@redhat.com>
407
408	* dwarf_func_inline.c: New file.
409	* Makefile.am (libdw_a_SOURCES): Add it.
410	* libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
411	* libdw.map: Add them.
412
413	* dwarf_func_die.c: New file.
414	* Makefile.am (libdw_a_SOURCES): Add it.
415	* libdw.h: Declare dwarf_func_die.
416	* libdw.map: Add it.  Bump version to ELFUTILS_0.114.
417
4182005-08-10  Ulrich Drepper  <drepper@redhat.com>
419
420	* dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
421	of DW_LNS_set_epilog_begin.
422
4232005-08-09  Roland McGrath  <roland@redhat.com>
424
425	* dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.
426
427	* dwarf_end.c: Add INTDEF.
428	* dwarf_error.c (dwarf_errmsg): Likewise.
429	* libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.
430
4312005-08-01  Roland McGrath  <roland@redhat.com>
432
433	* dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
434	* dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
435
4362005-07-28  Ulrich Drepper  <drepper@redhat.com>
437
438	* Makefile.am (libdw.so): No need to link with libeu.a anymore.
439	(libdw_a_LIBADD): Add all files from libdwfl.a.
440
4412005-07-27  Roland McGrath  <roland@redhat.com>
442
443	* Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
444	along with ../libebl/libebl.a and ../lib/libeu.a;
445	depend on ../libelf/libelf.so.
446	(libdw_so_LDADD): New variable.
447	* libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.
448
449	* libdw.map: Define an empty base version and move all symbols to
450	version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.
451
4522005-07-23  Ulrich Drepper  <drepper@redhat.com>
453
454	* dwarf_error.c: Add internal alias for dwarf_errno.
455	* libdwP.h: Declare __dwarf_errno_internal.
456	* dwarf_getloclist.c: Use INTDEF for dwarf_errno.
457
458	* dwarf_error.c [USE_TLS]: Actually use __thread in definition of
459	global_error.
460
4612005-06-01  Roland McGrath  <roland@redhat.com>
462
463	* dwarf_getaranges.c (dwarf_getaranges): Sort result array.
464	* dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.
465
4662005-06-08  Roland McGrath  <roland@redhat.com>
467
468	* memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
469	(get_sleb128_step, get_sleb128): Likewise.
470	* dwarf_getattrs.c (dwarf_getattrs): Add consts.
471	* dwarf_getloclist.c (getloclist): Likewise.
472	* dwarf_formblock.c (dwarf_formblock): Likewise.
473	* dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
474	* dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
475	* dwarf_formref.c (dwarf_formref): Likewise.
476	* dwarf_formsdata.c (dwarf_formsdata): Likewise.
477	* dwarf_formudata.c (dwarf_formudata): Likewise.
478	* dwarf_haschildren.c (dwarf_haschildren): Likewise.
479	* dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
480	* dwarf_tag.c (dwarf_tag): Likewise.
481	* dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
482	* memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
483	* libdw_form.c (__libdw_form_val_len): Likewise.
484	* libdwP.h: Update decl.
485
4862005-06-04  Roland McGrath  <roland@redhat.com>
487
488	* memory-access.h (get_uleb128_rest_return): New macro.
489	[! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
490	(get_sleb128_rest_return): New macro.
491	[! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
492	* memory-access.c: New file.
493	* Makefile.am (libdw_a_SOURCES): Add it.
494	(DEFS): Add -DIS_LIBDW.
495
4962005-05-31  Roland McGrath  <roland@redhat.com>
497
498	* dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
499	formref offset.
500
5012005-05-30  Roland McGrath  <roland@redhat.com>
502
503	* dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
504	address if DW_AT_low_pc is missing.  Not to spec, but GCC generates it.
505
506	* dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
507	BEGIN value.  Instead, match base address entries separately for
508	32/64 size cases.
509
5102005-05-28  Roland McGrath  <roland@redhat.com>
511
512	* dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
513	past location expression contents.
514
5152005-05-23  Roland McGrath  <roland@redhat.com>
516
517	* dwarf_getsrclines.c: Comment typo fix.
518
519	* dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
520	* dwarf_getloclist.c (dwarf_addrloclists): Likewise.
521
5222005-05-22  Ulrich Drepper  <drepper@redhat.com>
523
524	* libdwP.h: Only use INTDECL for alias prototypes.
525
5262005-05-19  Roland McGrath  <roland@redhat.com>
527
528	* dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.
529
530	* dwarf_getscopevar.c: New file.
531	* Makefile.am (libdw_a_SOURCES): Add it.
532	* libdw.h: Declare dwarf_getscopevar.
533
534	* dwarf_getsrcfiles.c: Add INTDEF.
535	* dwarf_haschildren.c: Likewise.
536	* libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.
537
538	* dwarf_getscopes.c: New file.
539	* Makefile.am (libdw_a_SOURCES): Add it.
540	* libdw.h: Declare dwarf_getscopes.
541	* libdw.map: Add it.
542
5432005-05-18  Roland McGrath  <roland@redhat.com>
544
545	* libdwP.h (IDX_debug_ranges): New enum constant.
546	* dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
547	* libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
548	* dwarf_error.c (errmsgs): Add it.
549	* dwarf_haspc.c: New file.
550	* libdw.h: Declare dwarf_haspc.
551	* libdw.map: Add it.
552	* libdwP.h: Add INTDECL.
553
554	* dwarf_attr_integrate.c: New file.
555	* dwarf_hasattr_integrate.c: New file.
556	* Makefile.am (libdw_a_SOURCES): Add them.
557	* libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
558	* libdw.map: Add them.
559
560	* dwarf_hasattr.c: Add INTDEF.
561	* libdwP.h: Add INTDECL for it.
562
563	* dwarf_formref_die.c: New file.
564	* Makefile.am (libdw_a_SOURCES): Add it.
565	* libdw.h (dwarf_formref_die): Declare it.
566	* libdwP.h (dwarf_formref_die): Add INTDECL.
567	* libdw.map: Add it.
568
569	* dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
570	of ...
571	(dwarf_getloclist): ... here.  Call them.
572	(dwarf_addrloclists): New function.
573	* libdw.h: Declare it.
574	* libdw.map: Add it.
575
576	* dwarf_getmacros.c (dwarf_getmacros): Don't bail at
577	DW_MACINFO_end_file.  Recognize type 0 as terminator.
578
5792005-05-05  Roland McGrath  <roland@redhat.com>
580
581	* dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.
582
583	* dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
584	the line program does not produce all entries in ascending order.
585
5862005-04-25  Ulrich Drepper  <drepper@redhat.com>
587
588	* dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
589	occurences (e.g., inlines) better.
590
5912005-04-24  Ulrich Drepper  <drepper@redhat.com>
592
593	* libdw.h (DWARF_END_ABBREV): Define.
594	* dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
595	end is reached.
596	* dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
597	of records reached.
598	* dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
599	as error of __libdw_getabbrev.
600
6012005-04-04  Ulrich Drepper  <drepper@redhat.com>
602
603	* dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.
604
605	* dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
606	results back to caller.
607
6082005-04-04  Roland McGrath  <roland@redhat.com>
609
610	* dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.
611
612	* dwarf_func_line.c (__libdw_func_intval): Use internal_function in
613	defn.
614
6152005-04-04  Ulrich Drepper  <drepper@redhat.com>
616
617	* dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.
618
619	* dwarf_getsrc_file.c: New file.
620	* Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
621	* libdw.h: Declare dwarf_getsrc_file.
622	* libdw.map: Add dwarf_getsrc_file.
623
6242005-04-02  Ulrich Drepper  <drepper@redhat.com>
625
626	* dwarf_func_entrypc.c: New file.
627	* dwarf_func_col.c: New file.
628	* dwarf_func_line.c: New file.
629	* dwarf_func_file.c: New file.
630	* libdw.h: Add prototypes for new functions.
631	* libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
632	dwarf_func_file.
633	* Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
634	dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
635	* libdwP.h (struct Dwarf_Func_s): Add cudie element.
636	Declare __libdw_func_intval and __dwarf_formsdata_internal.
637	* dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
638	* dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.
639
640	* dwarf.h: Add some DWARF3 definitions.
641
6422005-04-01  Ulrich Drepper  <drepper@redhat.com>
643
644	* dwarf_getfuncs.c: New file.
645	* dwarf_func_highpc.c: New file.
646	* dwarf_func_lowpc.c: New file.
647	* dwarf_func_name.c: New file.
648	* Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
649	dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
650	* libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
651	and dwarf_func_name.
652	* libdw.h: Add prototypes for new functions.
653	* dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
654	* dwarf_siblingof.c: Likewise.
655	* dwarf_dieoffset.c: Likewise.
656	* dwarf_highpc.c: Likewise.
657	* dwarf_lowpc.c: Likewise.
658	* libdwP.h: Add prototypes for internal functions.
659	Define Dwarf_Func_s structure.
660
6612005-03-29  Ulrich Drepper  <drepper@redhat.com>
662
663	* libdw.h: Add padding in Dwarf_die.
664
665	* dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
666	* dwarf_attr.c: Likewise.
667	* dwarf_begin.c: Likewise.
668	* dwarf_begin_elf.c: Likewise.
669	* dwarf_bitoffset.c: Likewise.
670	* dwarf_bitsize.c: Likewise.
671	* dwarf_bytesize.c: Likewise.
672	* dwarf_diename.c: Likewise.
673	* dwarf_formaddr.c: Likewise.
674	* dwarf_formblock.c: Likewise.
675	* dwarf_formref.c: Likewise.
676	* dwarf_formstring.c: Likewise.
677	* dwarf_formudata.c: Likewise.
678	* dwarf_getarange_addr.c: Likewise.
679	* dwarf_getarangeinfo.c: Likewise.
680	* dwarf_getaranges.c: Likewise.
681	* dwarf_getloclist.c: Likewise.
682	* dwarf_getmacros.c: Likewise.
683	* dwarf_getsrc_die.c: Likewise.
684	* dwarf_getsrcfiles.c: Likewise.
685	* dwarf_getsrclines.c: Likewise.
686	* dwarf_highpc.c: Likewise.
687	* dwarf_lowpc.c: Likewise.
688	* dwarf_nextcu.c: Likewise.
689	* dwarf_offdie.c: Likewise.
690	* dwarf_siblingof.c: Likewise.
691	* dwarf_srclang.c: Likewise.
692	* dwarf_tag.c: Likewise.
693	* libdw_findcu.c: Likewise.
694	* libdwP.h: Add prototypes for internal functions.
695
696	* dwarf_addrdie.c: New file.
697	* dwarf_macro_opcode.c: New file.
698	* dwarf_macro_param1.c: New file.
699	* dwarf_macro_param2.c: New file.
700	* libdw.h: Add declarations.  Move Dwarf_Macro definition to libdwP.h.
701	* libdwP.h: Remove Dwarf_Macro definition.
702	* Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
703	dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
704	* libdw.map: Add entries for new functions.
705
7062005-03-21  Ulrich Drepper  <drepper@redhat.com>
707
708	* libdw.h: Handle broken gcc < 4.
709
7102005-02-15  Ulrich Drepper  <drepper@redhat.com>
711
712	* Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
713
714	* dwarf_begin_elf.c: Fix warnings.
715	* dwarf_dieoffset.c: Likewise.
716	* dwarf_end.c: Likewise.
717	* dwarf_error.c: Likewise.
718	* dwarf_getpubnames.c: Likewise.
719
720	* libdwP.h: Add new error values.
721	* dwarf_error.c: Support new error values.
722	* dwarf_getpubnames.c: Check parameter value.
723
7242005-02-05  Ulrich Drepper  <drepper@redhat.com>
725
726	* Makefile.am: Check for text relocations in constructed DSO.
727
728	* Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.
729
7302005-02-04  Ulrich Drepper  <drepper@redhat.com>
731
732	* dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
733	checks to not read over buffer boundaries for ill-formed DWARF data.
734
7352004-09-25  Ulrich Drepper  <drepper@redhat.com>
736
737	* dwarf_child.c: Make compile with gcc 4.0.
738	* dwarf_error.c: Likewise.
739	* dwarf_formblock.c: Likewise.
740	* dwarf_getabbrev.c: Likewise.
741	* dwarf_getattrs.c: Likewise.
742	* dwarf_getsrclines.c: Likewise.
743	* dwarf_tag.c: Likewise.
744	* libdw_form.c: Likewise.
745
7462004-01-20  Ulrich Drepper  <drepper@redhat.com>
747
748	* Makefile.am: Support building with mudflap.
749
750	* dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
751	* dwarf_getsrclines.c: Likewise.
752	* dwarf_memory-access.h: Likewise.
753
7542004-01-19  Ulrich Drepper  <drepper@redhat.com>
755
756	* dwarf_getsrcfiles.c: Third parameter can be NULL.
757
758	* libdw.h: Define Dwarf_macro.  Declare dwarf_getmacros.
759	Third parameter of dwarf_getsrcfiles can be NULL.
760
761	* libdw.map: Add dwarf_getmacros.
762	* Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
763	* dwarf_getmacros.c: New file.
764
7652004-01-18  Ulrich Drepper  <drepper@redhat.com>
766
767	* libdw.h: Second parameter of dwarf_getaranges can be NULL.
768
769	* dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
770
771	* dwarf_getsrclines.c:
772	Use read_2ubyte_unaligned_inc instead of _inc-less variant.
773
774	* dwarf_getaranges.c: Allow naranges parameter to be NULL.
775
776	* libdwP.h (_): Use elfutils domain.
777
778	* dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
779
780	* dwarf_getsrclines.c: Fix typo in comment.
781
7822004-01-17  Ulrich Drepper  <drepper@redhat.com>
783
784	* Makefile.am: Support building with mudflap.
785
7862004-01-16  Ulrich Drepper  <drepper@redhat.com>
787
788	* memory-access.h: Add lots of const in case a pointer passed is const.
789
790	* dwarf_formflag.c: New file.
791	* dwarf_getattrs.c: New file.
792	* dwarf_error.c: Add new error value.
793	* libdw.h: Add prototypes for new functions.  Adjust prototype for
794	dwarf_getpubnames.
795	* libdw.map: Add new functions.
796	* dwarf_getpubnames.c: Change type of return value and fourth parameter
797	to ptrdiff_t.
798	* libdwP.h: Add new error value.
799	* Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
800	dwarf_formflag.c.
801
802	* dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
803
8042004-01-12  Ulrich Drepper  <drepper@redhat.com>
805
806	* dwarf_getarange_addr.c: New file
807	* dwarf_getarangeinfo.c: New file.
808	* dwarf_getaranges.c: New file.
809	* dwarf_onerange.c: New file.
810	* libdw.h: Declare new functions.  Define Dwarf_Arange and
811	Dwarf_Aranges.
812	* libdw.map: Add new functions.
813	* libdwP.h: Add new errors.  Add aranges member to struct Dwarf.
814	Define Dwarf_Aranges_s and Dwarf_Arange_s.
815	* Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
816	dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
817	* dwarf_error.c: Add new message.
818
8192004-01-11  Ulrich Drepper  <drepper@redhat.com>
820
821	* Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
822	dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
823	dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
824	* dwarf_error.c: Add another message.
825	* dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
826	introduction.
827	* dwarf_filesrc.c: Likewise.
828	* dwarf_getsrcfiles.c: Likewise.
829	* dwarf_getsrclines.c: Likewise.
830	* dwarf_lineaddr.c: New file.
831	* dwarf_linebeginstatement.c: New file.
832	* dwarf_lineblock.c: New file.
833	* dwarf_linecol.c: New file.
834	* dwarf_lineendsequence.c: New file.
835	* dwarf_lineepiloguebegin.c: New file.
836	* dwarf_lineno.c: New file.
837	* dwarf_lineprologueend.c: New file.
838	* dwarf_onesrcline.c: New file.
839	* dwarf_lineno.c: Change interface to store result in object pointed
840	to by second parameter.
841	* libdw.h: Add prototypes for new functions.  Change dwarf_lineno
842	prototype.  Define Dwarf_Files and Dwarf_Lines.
843	* libdw.map: Add new functions.
844	* libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
845	* libdw_findcu.c: Don't initialize nlines field.
846
847	* dwarf_siblingof: Little optimization.
848
849	* dwarf_begin.c: Remember that the ELF descriptor must be closed.
850	* dwarf_end.c: Close ELF descriptor if free_elf is set.
851	* libdwP.h (struct Dwarf): Add free_elf field.
852
853	* Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
854	dwarf_offabbrev.c.
855	* dwarf_getstring.c: New file.
856	* dwarf_offabbrev.c: New file.
857	* libdw.map: Add dwarf_getstring and dwarf_offabbrev.
858	* dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
859	parameters.  Don't allocate memory if not necessary and don't lookup
860	previous results if no CU given.
861	(dwarf_getabbrev): Adjust call to __libdw_getabbrev.
862	* dwarf_tag.c: Adjust call to __libdw_getabbrev.
863	* libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
864	* libdwP.h: Change prototype for __libdw_getabbrev.
865
866	* dwarf_getabbrevattr.c: Add offsetp parameter.  Fill in before
867	returning if this is wanted.
868
8692004-01-09  Ulrich Drepper  <drepper@redhat.com>
870
871	* dwarf_nextcu.c: Add new parameter offset_sizep.  Initialize it
872	with offset_size value.
873	* libdw.h: Adjust dwarf_nextcu prototype.
874	* libdwP.h (struct Dwarf_CU): Add offset_size member.
875	* libdw_findcu.c: Adjust dwarf_nextcu call.  Initialize offset_size
876	member of new CU struct.
877	* dwarf_formstring.c: Depend on offset_size not address_size for
878	DW_FORM_strp handling.
879	* dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
880
881	* dwarf_tag.c (__libdw_findabbrev): Return correct value for
882	failing lookup.
883	(dwarf_tag): Correctly recognize failed lookup.
884
885	* dwarf_end.c (cu_free):  Call tdestroy for locs member.  Use new
886	function noop_free.
887	* dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
888	* dwarf_formblock.c: New file.
889	* dwarf_getloclist.c: Rewrite to handle a single block.
890	* libdw.h: Define Dwarf_Block.  Rename Dwarf_Loc members.  Remove
891	Dwarf_Locdesc definition.  Declare dwarf_formblock.  Remove
892	dwarf_getloclistent declaration.
893	* libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
894	* libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
895	Add locs member to struct Dwarf_CU.
896	* libdw_fundcu.c: Initialize locs member of new CU.
897	* Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
898	Remove dwarf_getloclistent.c.
899
9002004-01-07  Ulrich Drepper  <drepper@redhat.com>
901
902	* libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
903	* libdwP.h: Likewise.
904
905	* dwarf_getloclist.c: New file.
906	* dwarf_getloclistent.c: New file.
907	* libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
908	Declare dwarf_getloclistent and dwarf_getloclist.
909	* libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
910	* libdwP.h: Define DWARF_E_NO_LOCLIST.
911	* Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
912	dwarf_getloclist.c.
913
914	* dwarf_error.c: More error messages.
915
9162004-01-06  Ulrich Drepper  <drepper@redhat.com>
917
918	* dwarf_getsrclines.c: Remove debugging support.
919
920	* dwarf_getsrcfiles.c: New file.
921	* dwarf_filesrc.c: New file.
922	* libdw.h: Declare these functions.  Define Dwarf_File.
923	* libdwP.c: Adjust Dwarf_File_s definition.
924	* libdw.map: Add these functions.
925	* Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
926	dwarf_filesrc.c.
927	* dwarf_getsrclines.c: Initialize cu->files.
928
9292004-01-05  Ulrich Drepper  <drepper@redhat.com>
930
931	* libdw.h: Add more nonnull function attributes.
932
933	* dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
934	* dwarf_end.c (cu_free): New function.
935	(dwarf_end): Also free CU tree.  Correct freeing of memory blocks.
936	* dwarf_error.c (errmsgs): Add new messages.
937	* dwarf_getsrc_die.c: New file.
938	* dwarf_getsrclines.c: New file.
939	* dwarf_lineno.c: New file.
940	* dwarf_linesrc.c: New file.
941	* dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
942	instead of the *_inc-less variants.
943	* libdw.h: Define Dwarf_Line.  Add some function attributes.  Declare
944	dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
945	* libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
946	and dwarf_linesrc.
947	* libdwP.h: Add more error codes.
948	(struct Dwarf): Remove mem_tail.next member.
949	(Dwarf_File): Define type.
950	(struct Dwarf_Line_s): Define type.
951	(struct Dwarf_CU): Add lines and nlines members.
952	(libdw_alloc): Define local variable _tail and use it.
953	Add some function attributes.
954	* libdw_alloc.c (__libdw_allocate): Don't initialize next member.
955	* libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
956	* memory-access.h: Add unlikely for the endian conversion paths.
957	* Makefile.am (AM_CFLAGS): Add -std parameter.
958	(libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
959	dwarf_lineno, and dwarf_linesrc.
960
9612003-08-11  Ulrich Drepper  <drepper@redhat.com>
962
963        * Moved to CVS archive.
964