1da0c48c4Sopenharmony_ci2022-10-21  Yonggang Luo  <luoyonggang@gmail.com>
2da0c48c4Sopenharmony_ci
3da0c48c4Sopenharmony_ci	* dwarf_begin_elf.h: Don't include unistd.h and endian.h.
4da0c48c4Sopenharmony_ci	* dwarf_end.c: Don't include unistd.h.
5da0c48c4Sopenharmony_ci	* dwarf_setalt.c: Likewise.
6da0c48c4Sopenharmony_ci	* libdw_find_split_unit.c: Likewise.
7da0c48c4Sopenharmony_ci
8da0c48c4Sopenharmony_ci2022-10-19  Mark Wielaard  <mark@klomp.org>
9da0c48c4Sopenharmony_ci
10da0c48c4Sopenharmony_ci	* dwarf.h (DW_LLE_GNU_view_pair): New constant.
11da0c48c4Sopenharmony_ci
12da0c48c4Sopenharmony_ci2022-10-21  Yonggang Luo  <luoyonggang@gmail.com>
13da0c48c4Sopenharmony_ci
14da0c48c4Sopenharmony_ci	* memory-access.h: Include system.h instead of byteswap.h and
15da0c48c4Sopenharmony_ci	endian.h.
16da0c48c4Sopenharmony_ci
17da0c48c4Sopenharmony_ci2022-09-20  Yonggang Luo  <luoyonggang@gmail.com>
18da0c48c4Sopenharmony_ci
19da0c48c4Sopenharmony_ci	* memory-access.h: Use BYTE_ORDER, LITTLE_ENDIAN and BIG_ENDIAN.
20da0c48c4Sopenharmony_ci
21da0c48c4Sopenharmony_ci2022-09-13  Aleksei Vetrov  <vvvvvv@google.com>
22da0c48c4Sopenharmony_ci
23da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.188): Add dwfl_report_offline_memory.
24da0c48c4Sopenharmony_ci
25da0c48c4Sopenharmony_ci2022-08-09  Ulrich Drepper  <drepper@redhat.com>
26da0c48c4Sopenharmony_ci
27da0c48c4Sopenharmony_ci	* dwarf_next_cfi.c (dwarf_next_cfi): Don't skip processing the
28da0c48c4Sopenharmony_ci	augmentation string.  Be more stringent what to accept.
29da0c48c4Sopenharmony_ci
30da0c48c4Sopenharmony_ci2022-07-28  Di Chen  <dichen@redhat.com>
31da0c48c4Sopenharmony_ci
32da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.188): Add dwfl_frame_reg.
33da0c48c4Sopenharmony_ci
34da0c48c4Sopenharmony_ci2022-07-13  Mark Wielaard  <mark@klomp.org>
35da0c48c4Sopenharmony_ci
36da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.187): Renamed to...
37da0c48c4Sopenharmony_ci	(ELFUTILS_0.188): ... this.
38da0c48c4Sopenharmony_ci
39da0c48c4Sopenharmony_ci2022-05-09  Mark Wielaard  <mark@klomp.org>
40da0c48c4Sopenharmony_ci
41da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (store_implicit_value): Check block length.
42da0c48c4Sopenharmony_ci
43da0c48c4Sopenharmony_ci2022-04-16  Mark Wielaard  <mark@klomp.org>
44da0c48c4Sopenharmony_ci
45da0c48c4Sopenharmony_ci	* libdwP.h: Remove atomics.h include.
46da0c48c4Sopenharmony_ci
47da0c48c4Sopenharmony_ci2022-04-13  Mark Wielaard  <mark@klomp.org>
48da0c48c4Sopenharmony_ci
49da0c48c4Sopenharmony_ci	* dwarf.h: Add DWARF5 package file section identifiers,
50da0c48c4Sopenharmony_ci	DW_SECT_*.
51da0c48c4Sopenharmony_ci
52da0c48c4Sopenharmony_ci2021-10-20  John M Mellor-Crummey  <johnmc@rice.edu>
53da0c48c4Sopenharmony_ci
54da0c48c4Sopenharmony_ci	* dwarf_linecontext.c: New file.
55da0c48c4Sopenharmony_ci	* dwarf_linefunctionname.c: Likewise.
56da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_linecontext.c and
57da0c48c4Sopenharmony_ci	dwarf_linefunctionname.c
58da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_LNE_NVIDIA_inlined_call and
59da0c48c4Sopenharmony_ci	DW_LNE_NVIDIA_set_function_name.
60da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (struct line_state): Add context and
61da0c48c4Sopenharmony_ci	function_name fields.
62da0c48c4Sopenharmony_ci	(add_new_line): Set context and function_name.
63da0c48c4Sopenharmony_ci	(MAX_STACK_LINES): Reduce to MAX_STACK_ALLOC / 2.
64da0c48c4Sopenharmony_ci	(read_srclines): Initialize context and function_name.  Try to
65da0c48c4Sopenharmony_ci	read debug_str_offset if available.  Handle
66da0c48c4Sopenharmony_ci	DW_LNE_NVIDIA_inlined_call and DW_LNE_NVIDIA_set_function_name.
67da0c48c4Sopenharmony_ci	* libdw.h (dwarf_linecontext): New declaration.
68da0c48c4Sopenharmony_ci	(dwarf_linefunctionname): Likewise.
69da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.186): New section.
70da0c48c4Sopenharmony_ci
71da0c48c4Sopenharmony_ci2021-11-08  Mark Wielaard  <mark@klomp.org>
72da0c48c4Sopenharmony_ci
73da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (scn_dwarf_type): New function.
74da0c48c4Sopenharmony_ci	(check_section): Check result->type.
75da0c48c4Sopenharmony_ci	(global_read): First check type.
76da0c48c4Sopenharmony_ci	(scngrp_read): Likewise.
77da0c48c4Sopenharmony_ci	* libdw/libdwP.h (enum dwarf_type): New enumeration.
78da0c48c4Sopenharmony_ci	(struct Dwarf): New field type.
79da0c48c4Sopenharmony_ci
80da0c48c4Sopenharmony_ci2021-02-14  Alexander Miller  <alex.miller@gmx.de>
81da0c48c4Sopenharmony_ci
82da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (dwarf_aggregate_size): Move NEW_VERSION
83da0c48c4Sopenharmony_ci	before definition.  Replace INTDEF with NEW_INTDEF.
84da0c48c4Sopenharmony_ci	* dwarf_srclang.c (dwarf_srclang): Likewise.
85da0c48c4Sopenharmony_ci	* dwarf_arrayorder.c (dwarf_arrayorder): Move NEW_VERSION.
86da0c48c4Sopenharmony_ci	* dwarf_bitoffset.c (dwarf_bitoffset): Likewise.
87da0c48c4Sopenharmony_ci	* dwarf_bitsize.c (dwarf_bitsize): Likewise.
88da0c48c4Sopenharmony_ci	* dwarf_bytesize.c (dwarf_bytesize): Likewise.
89da0c48c4Sopenharmony_ci	* dwarf_decl_column.c (dwarf_decl_column): Likewise.
90da0c48c4Sopenharmony_ci
91da0c48c4Sopenharmony_ci2021-10-18  Mark Wielaard  <mark@klomp.org>
92da0c48c4Sopenharmony_ci
93da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (get_type): Don't pass NULL to
94da0c48c4Sopenharmony_ci	dwarf_peel_type.
95da0c48c4Sopenharmony_ci
96da0c48c4Sopenharmony_ci2021-10-06  Mark Wielaard  <mark@klomp.org>
97da0c48c4Sopenharmony_ci
98da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (array_size): Check signedness of child DIE
99da0c48c4Sopenharmony_ci	type. Use dwarf_formsdata or dwarf_formudata to get the lower and
100da0c48c4Sopenharmony_ci	upper bounds.
101da0c48c4Sopenharmony_ci
102da0c48c4Sopenharmony_ci2021-09-08  Mark Wielaard  <mark@klomp.org>
103da0c48c4Sopenharmony_ci
104da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (valid_p): Identify ELF class and use this to set
105da0c48c4Sopenharmony_ci	address_size of the fake CUs. Also set offset_size and DWARF version.
106da0c48c4Sopenharmony_ci
107da0c48c4Sopenharmony_ci2021-09-06  Dmitry V. Levin  <ldv@altlinux.org>
108da0c48c4Sopenharmony_ci
109da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (valid_p): Remove casts of malloc return values.
110da0c48c4Sopenharmony_ci	(dwarf_begin_elf): Remove cast of calloc return value.
111da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c (get_offsets): Remove casts of realloc return
112da0c48c4Sopenharmony_ci	values.
113da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Remove cast of malloc return
114da0c48c4Sopenharmony_ci	value.
115da0c48c4Sopenharmony_ci
116da0c48c4Sopenharmony_ci2021-04-19  Martin Liska  <mliska@suse.cz>
117da0c48c4Sopenharmony_ci
118da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Use startswith.
119da0c48c4Sopenharmony_ci
120da0c48c4Sopenharmony_ci2021-05-01  Mark Wielaard  <mark@klomp.org>
121da0c48c4Sopenharmony_ci
122da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_compute_len): Check indirect
123da0c48c4Sopenharmony_ci	form is not DW_FORM_indirect or DW_FORM_implicit_const.
124da0c48c4Sopenharmony_ci
125da0c48c4Sopenharmony_ci2021-04-23  Omar Sandoval  <osandov@fb.com>
126da0c48c4Sopenharmony_ci
127da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr): Handle DW_FORM_indirect.
128da0c48c4Sopenharmony_ci	* dwarf_getattrs.c (dwarf_getattrs): Handle DW_FORM_indirect.
129da0c48c4Sopenharmony_ci
130da0c48c4Sopenharmony_ci2021-02-12  Mark Wielaard  <mark@klomp.org>
131da0c48c4Sopenharmony_ci
132da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (attr_ok): For DWARF version 4 or higher
133da0c48c4Sopenharmony_ci	block forms are not expression locations.
134da0c48c4Sopenharmony_ci	(is_constant_offset): DW_FORM_implicit_const is also a constant.
135da0c48c4Sopenharmony_ci
136da0c48c4Sopenharmony_ci2020-12-20  Dmitry V. Levin  <ldv@altlinux.org>
137da0c48c4Sopenharmony_ci
138da0c48c4Sopenharmony_ci	* .gitignore: New file.
139da0c48c4Sopenharmony_ci
140da0c48c4Sopenharmony_ci2020-12-16  Dmitry V. Levin  <ldv@altlinux.org>
141da0c48c4Sopenharmony_ci
142da0c48c4Sopenharmony_ci	* libdwP.h (_): Remove.
143da0c48c4Sopenharmony_ci
144da0c48c4Sopenharmony_ci2020-12-12  Dmitry V. Levin  <ldv@altlinux.org>
145da0c48c4Sopenharmony_ci
146da0c48c4Sopenharmony_ci	* dwarf.h: Fix spelling typo in comment.
147da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_begin_elf): Likewise.
148da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (attr_ok, __libdw_intern_expression): Likewise.
149da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Likewise.
150da0c48c4Sopenharmony_ci	* libdw.h: Fix spelling typos in comments.
151da0c48c4Sopenharmony_ci	* libdwP.h: Likewise.
152da0c48c4Sopenharmony_ci
153da0c48c4Sopenharmony_ci2020-12-09  Dmitry V. Levin  <ldv@altlinux.org>
154da0c48c4Sopenharmony_ci
155da0c48c4Sopenharmony_ci	* Makefile.am (noinst_PROGRAMS): Rename to noinst_DATA.
156da0c48c4Sopenharmony_ci	(libdw_so_SOURCES): Remove.
157da0c48c4Sopenharmony_ci	(MOSTLYCLEANFILES): Add libdw.so.
158da0c48c4Sopenharmony_ci
159da0c48c4Sopenharmony_ci2020-11-30  Dmitry V. Levin  <ldv@altlinux.org>
160da0c48c4Sopenharmony_ci
161da0c48c4Sopenharmony_ci	* Makefile.am (libdw.so$(EXEEXT)): Drop $(EXEEXT) suffix.
162da0c48c4Sopenharmony_ci
163da0c48c4Sopenharmony_ci2020-11-01  Érico N. Rolim  <erico.erc@gmail.com>
164da0c48c4Sopenharmony_ci
165da0c48c4Sopenharmony_ci	* Makefile.am (libdw_so_LDLIBS): Add fts_LIBS.
166da0c48c4Sopenharmony_ci
167da0c48c4Sopenharmony_ci2020-10-28  Tom Tromey  <tom@tromey.com>
168da0c48c4Sopenharmony_ci
169da0c48c4Sopenharmony_ci	PR26773
170da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (store_implicit_value): Use
171da0c48c4Sopenharmony_ci	__libdw_get_uleb128_unchecked.
172da0c48c4Sopenharmony_ci	* memory-access.h (get_sleb128_step): Assume unsigned type for
173da0c48c4Sopenharmony_ci	'var'.
174da0c48c4Sopenharmony_ci	(__libdw_get_sleb128, __libdw_get_sleb128_unchecked): Work in
175da0c48c4Sopenharmony_ci	unsigned type.  Handle final byte.
176da0c48c4Sopenharmony_ci
177da0c48c4Sopenharmony_ci2020-10-19  Mark Wielaard  <mark@klomp.org>
178da0c48c4Sopenharmony_ci
179da0c48c4Sopenharmony_ci	* dwarf_frame_register.c (dwarf_frame_register): Declare ops_mem
180da0c48c4Sopenharmony_ci	as array of (at least) 3 elements.
181da0c48c4Sopenharmony_ci	* libdw.h (dwarf_frame_register): Add extra explanation of ops_mem
182da0c48c4Sopenharmony_ci	argument.
183da0c48c4Sopenharmony_ci
184da0c48c4Sopenharmony_ci2020-10-23  Tom Tromey  <tom@tromey.com>
185da0c48c4Sopenharmony_ci
186da0c48c4Sopenharmony_ci	* memory-access.h (read_3ubyte_unaligned_inc): Call
187da0c48c4Sopenharmony_ci	read_3ubyte_unaligned.
188da0c48c4Sopenharmony_ci
189da0c48c4Sopenharmony_ci2020-09-03  Mark Wielaard  <mark@klomp.org>
190da0c48c4Sopenharmony_ci
191da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_CFA_AARCH64_negate_ra_state.
192da0c48c4Sopenharmony_ci	* cfi.h (struct Dwarf_CFI_s): Add e_machine field.
193da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Recognize, but ignore
194da0c48c4Sopenharmony_ci	DW_CFA_AARCH64_negate_ra_state on aarch64.
195da0c48c4Sopenharmony_ci	* dwarf_getcfi.c (dwarf_getcfi): Set cfi e_machine.
196da0c48c4Sopenharmony_ci	* dwarf_getcfi_elf.c (allocate_cfi): Take ehdr as argument and set
197da0c48c4Sopenharmony_ci	cfi e_machine.
198da0c48c4Sopenharmony_ci	(getcfi_gnu_eh_frame): Pass ehdr to allocate_cfi.
199da0c48c4Sopenharmony_ci	(getcfi_scn_eh_frame): Likewise.
200da0c48c4Sopenharmony_ci
201da0c48c4Sopenharmony_ci2020-09-03  Mark Wielaard  <mark@klomp.org>
202da0c48c4Sopenharmony_ci
203da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.126): Remove local wildcard.
204da0c48c4Sopenharmony_ci	(ELFUTILS_0.127): Likewise.
205da0c48c4Sopenharmony_ci	(ELFUTILS_0.130): Likewise.
206da0c48c4Sopenharmony_ci	(ELFUTILS_0.136): Likewise.
207da0c48c4Sopenharmony_ci	(ELFUTILS_0.138): Likewise.
208da0c48c4Sopenharmony_ci
209da0c48c4Sopenharmony_ci2020-08-25  Mark Wielaard  <mark@klomp.org>
210da0c48c4Sopenharmony_ci
211da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (check_constant_offset): Rename to...
212da0c48c4Sopenharmony_ci	(is_constant_offset): .. this.
213da0c48c4Sopenharmony_ci
214da0c48c4Sopenharmony_ci2020-06-28  Mark Wielaard  <mark@klomp.org>
215da0c48c4Sopenharmony_ci
216da0c48c4Sopenharmony_ci	* linux-kernel-modules.c (intuit_kernel_bounds): Check read_address
217da0c48c4Sopenharmony_ci	returns an increasing address when searching for end.
218da0c48c4Sopenharmony_ci
219da0c48c4Sopenharmony_ci2020-06-16  Mark Wielaard  <mark@klomp.org>
220da0c48c4Sopenharmony_ci
221da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Add missing FALLTHROUGH.
222da0c48c4Sopenharmony_ci
223da0c48c4Sopenharmony_ci2020-05-08  Mark Wielaard  <mark@klomp.org>
224da0c48c4Sopenharmony_ci
225da0c48c4Sopenharmony_ci	* libdw_visit_scopes.c (walk_children): Don't recurse into imported
226da0c48c4Sopenharmony_ci	DW_TAG_compile_units.
227da0c48c4Sopenharmony_ci
228da0c48c4Sopenharmony_ci2020-05-08  Mark Wielaard  <mark@klomp.org>
229da0c48c4Sopenharmony_ci
230da0c48c4Sopenharmony_ci	* dwarf_decl_file.c (dwarf_decl_file): Use attr CU instead of DIE
231da0c48c4Sopenharmony_ci	CU to resolve file name.
232da0c48c4Sopenharmony_ci	* dwarf_ranges.c(dwarf_ranges): Document which CU we use when.
233da0c48c4Sopenharmony_ci	* libdw.h (dwarf_attr_integrate): Extend documentation.
234da0c48c4Sopenharmony_ci
235da0c48c4Sopenharmony_ci2020-04-25  Mark Wielaard  <mark@klomp.org>
236da0c48c4Sopenharmony_ci
237da0c48c4Sopenharmony_ci	* libdw_alloc.c (__libdw_alloc_tail): Call Dwarf oom_handler()
238da0c48c4Sopenharmony_ci	when malloc fails.
239da0c48c4Sopenharmony_ci
240da0c48c4Sopenharmony_ci2020-04-17  Mark Wielaard  <mark@klomp.org>
241da0c48c4Sopenharmony_ci
242da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Handle .gnu.debuglto_ prefix.
243da0c48c4Sopenharmony_ci
244da0c48c4Sopenharmony_ci2019-10-28  Aaron Merey  <amerey@redhat.com>
245da0c48c4Sopenharmony_ci
246da0c48c4Sopenharmony_ci	* Makefile.am (libdw_so_LDLIBS): Add -ldl for libdebuginfod.so dlopen.
247da0c48c4Sopenharmony_ci
248da0c48c4Sopenharmony_ci2019-11-10  Mark Wielaard  <mark@klomp.org>
249da0c48c4Sopenharmony_ci
250da0c48c4Sopenharmony_ci	* libdwP.h (libdw_unalloc): New define.
251da0c48c4Sopenharmony_ci	(libdw_typed_unalloc): Likewise.
252da0c48c4Sopenharmony_ci	(__libdw_thread_tail): New function declaration.
253da0c48c4Sopenharmony_ci	* libdw_alloc.c (__libdw_thread_tail): New function.
254da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Call libdw_typed_unalloc
255da0c48c4Sopenharmony_ci	when reading invalid data or when hash collission detected.
256da0c48c4Sopenharmony_ci
257da0c48c4Sopenharmony_ci2019-10-28  Jonathon Anderson  <jma14@rice.edu>
258da0c48c4Sopenharmony_ci
259da0c48c4Sopenharmony_ci	* libdw_alloc.c: Added __libdw_alloc_tail.
260da0c48c4Sopenharmony_ci	(__libdw_allocate): Switch to use the mem_tails array.
261da0c48c4Sopenharmony_ci	* libdwP.h (Dwarf): Likewise.
262da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_begin_elf): Support for above.
263da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Likewise.
264da0c48c4Sopenharmony_ci	* atomics.h: Add support for thread_local.
265da0c48c4Sopenharmony_ci
266da0c48c4Sopenharmony_ci2019-10-28  Mark Wielaard  <mark@klomp.org>
267da0c48c4Sopenharmony_ci
268da0c48c4Sopenharmony_ci	* dwarf_sig8_hash.h: Include libdw.h. Remove COMPARE. Include
269da0c48c4Sopenharmony_ci	dynamicsizehash_concurrent.h.
270da0c48c4Sopenharmony_ci	* dwarf_sig8_hash.c: Include dynamicsizehash_concurrent.c.
271da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Drop NULL argument to
272da0c48c4Sopenharmony_ci	Dwarf_Sig8_Hash_find.
273da0c48c4Sopenharmony_ci
274da0c48c4Sopenharmony_ci2019-08-26  Srđan Milaković  <sm108@rice.edu@rice.edu>
275da0c48c4Sopenharmony_ci
276da0c48c4Sopenharmony_ci	* dwarf_abbrev_hash.{c,h}: Use the *_concurrent hash table.
277da0c48c4Sopenharmony_ci
278da0c48c4Sopenharmony_ci2019-11-01  Jonathon Anderson  <jma14@rice.edu>
279da0c48c4Sopenharmony_ci
280da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (valid_p): Switch calloc for malloc for fake CUs.
281da0c48c4Sopenharmony_ci	Add explicit initialization of some fields.
282da0c48c4Sopenharmony_ci	* dwarf_end.c (cu_free): Add clause to limit freeing of CU internals.
283da0c48c4Sopenharmony_ci
284da0c48c4Sopenharmony_ci2019-08-26  Jonathon Anderson  <jma14@rice.edu>
285da0c48c4Sopenharmony_ci
286da0c48c4Sopenharmony_ci	* libdw_alloc.c (__libdw_allocate): Added thread-safe stack allocator.
287da0c48c4Sopenharmony_ci	* libdwP.h (Dwarf): Likewise.
288da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_begin_elf): Support for above.
289da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Likewise.
290da0c48c4Sopenharmony_ci	* Makefile.am: Use -pthread to provide rwlocks.
291da0c48c4Sopenharmony_ci
292da0c48c4Sopenharmony_ci2019-07-05  Omar Sandoval  <osandov@fb.com>
293da0c48c4Sopenharmony_ci
294da0c48c4Sopenharmony_ci	* Makefile.am (libdw_so_LIBS): Replace libebl.a with libebl_pic.a.
295da0c48c4Sopenharmony_ci	Move libebl_pic.a to the beginning so that libdw symbols are resolved.
296da0c48c4Sopenharmony_ci	(libdw_so_LDLIBS): Remove -ldl.
297da0c48c4Sopenharmony_ci	(libdw.so): Remove -rpath.
298da0c48c4Sopenharmony_ci	(libdw_a_LIBADD): Add libebl, libebl_backends, and libcpu objects.
299da0c48c4Sopenharmony_ci
300da0c48c4Sopenharmony_ci2019-08-25  Jonathon Anderson  <jma14@rice.edu>
301da0c48c4Sopenharmony_ci
302da0c48c4Sopenharmony_ci	* dwarf_getcfi.c (dwarf_getcfi): Set default_same_value to false.
303da0c48c4Sopenharmony_ci
304da0c48c4Sopenharmony_ci2019-08-12  Mark Wielaard  <mark@klomp.org>
305da0c48c4Sopenharmony_ci
306da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.177): Add new version of dwelf_elf_begin.
307da0c48c4Sopenharmony_ci
308da0c48c4Sopenharmony_ci2019-06-28  Mark Wielaard  <mark@klomp.org>
309da0c48c4Sopenharmony_ci
310da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.177): New section. Add
311da0c48c4Sopenharmony_ci	dwelf_elf_e_machine_string.
312da0c48c4Sopenharmony_ci
313da0c48c4Sopenharmony_ci2019-05-16  Mark Wielaard  <mark@klomp.org>
314da0c48c4Sopenharmony_ci
315da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_AT_GNU_numerator, DW_AT_GNU_denominator and
316da0c48c4Sopenharmony_ci	DW_AT_GNU_bias.
317da0c48c4Sopenharmony_ci
318da0c48c4Sopenharmony_ci2019-04-28  Mark Wielaard  <mark@klomp.org>
319da0c48c4Sopenharmony_ci
320da0c48c4Sopenharmony_ci	* dwarf_siblingof.c (dwarf_siblingof): Don't initialize addr.
321da0c48c4Sopenharmony_ci
322da0c48c4Sopenharmony_ci2019-04-28  Mark Wielaard  <mark@klomp.org>
323da0c48c4Sopenharmony_ci
324da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation_addr): Call
325da0c48c4Sopenharmony_ci	check_constant_offset with llbufs and listlens directly.
326da0c48c4Sopenharmony_ci
327da0c48c4Sopenharmony_ci2019-04-27  Mark Wielaard  <mark@klomp.org>
328da0c48c4Sopenharmony_ci
329da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (store_implicit_value): Check dbg isn't
330da0c48c4Sopenharmony_ci	NULL.
331da0c48c4Sopenharmony_ci
332da0c48c4Sopenharmony_ci2019-02-02  Mark Wielaard  <mark@klomp.org>
333da0c48c4Sopenharmony_ci
334da0c48c4Sopenharmony_ci	* dwarf_nextcu.c (__libdw_next_unit): Define bytes_end.
335da0c48c4Sopenharmony_ci	Check there are enough bytes to read extended length, version
336da0c48c4Sopenharmony_ci	and unit.
337da0c48c4Sopenharmony_ci
338da0c48c4Sopenharmony_ci2019-01-20  Mark Wielaard  <mark@klomp.org>
339da0c48c4Sopenharmony_ci
340da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Check terminating NUL byte
341da0c48c4Sopenharmony_ci	for dir and file lists.
342da0c48c4Sopenharmony_ci
343da0c48c4Sopenharmony_ci2018-10-23  Mark Wielaard  <mark@klomp.org>
344da0c48c4Sopenharmony_ci
345da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr): Initialize readp to NULL.
346da0c48c4Sopenharmony_ci	* dwarf_getattrs.c (dwarf_getattrs): Initialize die_addr to NULL.
347da0c48c4Sopenharmony_ci
348da0c48c4Sopenharmony_ci2018-10-20  Mark Wielaard  <mark@klomp.org>
349da0c48c4Sopenharmony_ci
350da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.175): New section. Add dwelf_elf_begin.
351da0c48c4Sopenharmony_ci
352da0c48c4Sopenharmony_ci2018-10-29  Milian Wolff  <milian.wolff@kdab.com>
353da0c48c4Sopenharmony_ci
354da0c48c4Sopenharmony_ci	* dwarf_getcfi_elf.c (getcfi_shdr): Check sh_type != SHT_NOBITS.
355da0c48c4Sopenharmony_ci
356da0c48c4Sopenharmony_ci2018-09-13  Mark Wielaard  <mark@klomp.org>
357da0c48c4Sopenharmony_ci
358da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Drop ehdr argument, add and
359da0c48c4Sopenharmony_ci	use shstrndx argument.
360da0c48c4Sopenharmony_ci	(global_read): Likewise.
361da0c48c4Sopenharmony_ci	(scngrp_read): Likewise.
362da0c48c4Sopenharmony_ci	(dwarf_begin_elf): Call elf_getshdrstrndx. Pass shstrndx to
363da0c48c4Sopenharmony_ci	global_read or scngrp_read.
364da0c48c4Sopenharmony_ci
365da0c48c4Sopenharmony_ci2018-08-18  Mark Wielaard  <mark@klomp.org>
366da0c48c4Sopenharmony_ci
367da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Continue until both name
368da0c48c4Sopenharmony_ci	and form are zero.
369da0c48c4Sopenharmony_ci	* dwarf_hasattr.c (dwarf_hasattr): Stop when both name and form
370da0c48c4Sopenharmony_ci	are zero.
371da0c48c4Sopenharmony_ci
372da0c48c4Sopenharmony_ci2018-08-18  Mark Wielaard  <mark@klomp.org>
373da0c48c4Sopenharmony_ci
374da0c48c4Sopenharmony_ci	* dwarf_getaranges.c (dwarf_getaranges.c): Make sure there is enough
375da0c48c4Sopenharmony_ci	data to read the address and segment size.
376da0c48c4Sopenharmony_ci
377da0c48c4Sopenharmony_ci2018-07-04  Ross Burton <ross.burton@intel.com>
378da0c48c4Sopenharmony_ci
379da0c48c4Sopenharmony_ci	* libdw_alloc.c: Remove error.h include.
380da0c48c4Sopenharmony_ci
381da0c48c4Sopenharmony_ci2018-06-28  Mark Wielaard  <mark@klomp.org>
382da0c48c4Sopenharmony_ci
383da0c48c4Sopenharmony_ci	* dwarf_next_cfi.c (dwarf_next_cfi): Check whether length is zero.
384da0c48c4Sopenharmony_ci
385da0c48c4Sopenharmony_ci2018-06-27  Mark Wielaard  <mark@klomp.org>
386da0c48c4Sopenharmony_ci
387da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Allow a single .debug_frame
388da0c48c4Sopenharmony_ci	section.
389da0c48c4Sopenharmony_ci
390da0c48c4Sopenharmony_ci2018-06-26  Mark Wielaard  <mark@klomp.org>
391da0c48c4Sopenharmony_ci
392da0c48c4Sopenharmony_ci	* libdw.h (dwarf_getscn_info): Remove.
393da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.122): Remove dwarf_getscn_info.
394da0c48c4Sopenharmony_ci
395da0c48c4Sopenharmony_ci2018-06-25  Mark Wielaard  <mark@klomp.org>
396da0c48c4Sopenharmony_ci
397da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_next_lines.c.
398da0c48c4Sopenharmony_ci	* libdw.h (dwarf_next_lines): New function declaration.
399da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.173): New section.
400da0c48c4Sopenharmony_ci	* dwarf_next_lines.c: New files.
401da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Don't error out when elf
402da0c48c4Sopenharmony_ci	decompression fails.
403da0c48c4Sopenharmony_ci	(valid_p): Allow just a single .debug_line section.
404da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Keep files relative if comp_dir
405da0c48c4Sopenharmony_ci	is missing.
406da0c48c4Sopenharmony_ci
407da0c48c4Sopenharmony_ci2018-06-22  Mark Wielaard  <mark@klomp.org>
408da0c48c4Sopenharmony_ci
409da0c48c4Sopenharmony_ci	* dwarf_nextcu.c (__libdw_next_unit): Set next_off to -1 when it would
410da0c48c4Sopenharmony_ci	wrap around.
411da0c48c4Sopenharmony_ci
412da0c48c4Sopenharmony_ci2018-06-18  Mark Wielaard  <mark@klomp.org>
413da0c48c4Sopenharmony_ci
414da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (array_size): New depth argument. Use
415da0c48c4Sopenharmony_ci	aggregate_size instead of dwarf_aggregate_size and pass depth.
416da0c48c4Sopenharmony_ci	(aggregate_size): New depth argument. Check depth isn't bigger
417da0c48c4Sopenharmony_ci	than MAX_DEPTH (256). Pass depth to recursive calls.
418da0c48c4Sopenharmony_ci	(dwarf_aggregate_size): ass zero as depth to aggregate_size.
419da0c48c4Sopenharmony_ci
420da0c48c4Sopenharmony_ci2018-06-18  Mark Wielaard  <mark@klomp.org>
421da0c48c4Sopenharmony_ci
422da0c48c4Sopenharmony_ci	* dwarf_peel_type.c (dwarf_peel_type): Limit modifier chain to 64.
423da0c48c4Sopenharmony_ci
424da0c48c4Sopenharmony_ci2018-06-18  Mark Wielaard  <mark@klomp.org>
425da0c48c4Sopenharmony_ci
426da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (aggregate_size): Check die is not NULL.
427da0c48c4Sopenharmony_ci
428da0c48c4Sopenharmony_ci2018-06-17  Luiz Angelo Daros de Luca  <luizluca@gmail.com>
429da0c48c4Sopenharmony_ci
430da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Intialize filelist early.
431da0c48c4Sopenharmony_ci
432da0c48c4Sopenharmony_ci2018-06-15  Mark Wielaard  <mark@klomp.org>
433da0c48c4Sopenharmony_ci
434da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (check_constant_offset): Clarify DW_FORM_data16
435da0c48c4Sopenharmony_ci	isn't really a constant.
436da0c48c4Sopenharmony_ci	(dwarf_getlocation): Don't handle DW_FORM_data16 as block.
437da0c48c4Sopenharmony_ci	(dwarf_getlocation_addr): Likewise.
438da0c48c4Sopenharmony_ci	(dwarf_getlocations): Likewise.
439da0c48c4Sopenharmony_ci
440da0c48c4Sopenharmony_ci2018-06-12  Mark Wielaard  <mark@klomp.org>
441da0c48c4Sopenharmony_ci
442da0c48c4Sopenharmony_ci	* memory-access.h (read_3ubyte_unaligned_inc): New define.
443da0c48c4Sopenharmony_ci
444da0c48c4Sopenharmony_ci2018-06-12  Mark Wielaard  <mark@klomp.org>
445da0c48c4Sopenharmony_ci
446da0c48c4Sopenharmony_ci	* libdw.h (__libdw_dieabbrev): Set die->abbrev to DWARF_END_ABBREV
447da0c48c4Sopenharmony_ci	on failure.
448da0c48c4Sopenharmony_ci
449da0c48c4Sopenharmony_ci2018-06-10  Mark Wielaard  <mark@klomp.org>
450da0c48c4Sopenharmony_ci
451da0c48c4Sopenharmony_ci	* dwarf_attr_integrate.c (dwarf_attr_integrate): Stop after 16 DIE
452da0c48c4Sopenharmony_ci	ref chains.
453da0c48c4Sopenharmony_ci	* dwarf_hasattr_integrate.c (dwarf_hasattr_integrate): Likewise.
454da0c48c4Sopenharmony_ci
455da0c48c4Sopenharmony_ci2018-06-08  Mark Wielaard  <mark@klomp.org>
456da0c48c4Sopenharmony_ci
457da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (dwarf_getabbrev): Check die and offset.
458da0c48c4Sopenharmony_ci
459da0c48c4Sopenharmony_ci2018-06-08  Mark Wielaard  <mark@klomp.org>
460da0c48c4Sopenharmony_ci
461da0c48c4Sopenharmony_ci	* dwarf_get_units.c (dwarf_get_units): Handle existing error, no
462da0c48c4Sopenharmony_ci	dwarf.
463da0c48c4Sopenharmony_ci
464da0c48c4Sopenharmony_ci2018-06-08  Mark Wielaard  <mark@klomp.org>
465da0c48c4Sopenharmony_ci
466da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (store_implicit_value): Return error when
467da0c48c4Sopenharmony_ci	seeing bad DWARF or when tsearch runs out of memory.
468da0c48c4Sopenharmony_ci	(__libdw_intern_expression): Report error when store_implicit_value
469da0c48c4Sopenharmony_ci	reported an error.
470da0c48c4Sopenharmony_ci
471da0c48c4Sopenharmony_ci2018-06-08  Mark Wielaard  <mark@klomp.org>
472da0c48c4Sopenharmony_ci
473da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Sanity check ndirs and nfiles.
474da0c48c4Sopenharmony_ci
475da0c48c4Sopenharmony_ci2018-06-08  Mark Wielaard  <mark@klomp.org>
476da0c48c4Sopenharmony_ci
477da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c (addr_valp): Set error and return NULL
478da0c48c4Sopenharmony_ci	when there is no .debug_addr section.
479da0c48c4Sopenharmony_ci	(dwarf_getlocation_attr): If addr_valp returns NULL, then return -1.
480da0c48c4Sopenharmony_ci
481da0c48c4Sopenharmony_ci2018-06-07  Mark Wielaard  <mark@klomp.org>
482da0c48c4Sopenharmony_ci
483da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Report DWARF_E_VERSION,
484da0c48c4Sopenharmony_ci	not DWARF_E_INVALID_DWARF on unknown version. Set address_size and
485da0c48c4Sopenharmony_ci	offset_size to 8 when unknown.
486da0c48c4Sopenharmony_ci
487da0c48c4Sopenharmony_ci2018-06-06  Mark Wielaard  <mark@klomp.org>
488da0c48c4Sopenharmony_ci
489da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_dieabbrev): Check DIE addr falls in cu.
490da0c48c4Sopenharmony_ci
491da0c48c4Sopenharmony_ci2018-06-06  Mark Wielaard  <mark@klomp.org>
492da0c48c4Sopenharmony_ci
493da0c48c4Sopenharmony_ci	* dwarf_getlocation_die.c (dwarf_getlocation_die): Check offset
494da0c48c4Sopenharmony_ci	falls inside cu data.
495da0c48c4Sopenharmony_ci
496da0c48c4Sopenharmony_ci2018-06-05  Mark Wielaard  <mark@klomp.org>
497da0c48c4Sopenharmony_ci
498da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Explicitly set diridx to -1
499da0c48c4Sopenharmony_ci	in case dwarf_formudata fails.
500da0c48c4Sopenharmony_ci
501da0c48c4Sopenharmony_ci2018-06-05  Mark Wielaard  <mark@klomp.org>
502da0c48c4Sopenharmony_ci
503da0c48c4Sopenharmony_ci	* dwarf_getaranges (dwarf_getaranges): Free new_arange if
504da0c48c4Sopenharmony_ci	__libdw_findcu fails.
505da0c48c4Sopenharmony_ci
506da0c48c4Sopenharmony_ci2018-06-05  Mark Wielaard  <mark@klomp.org>
507da0c48c4Sopenharmony_ci
508da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Define dirarray early and
509da0c48c4Sopenharmony_ci	check whether or not it is equal to dirstack on exit/out before
510da0c48c4Sopenharmony_ci	cleanup.
511da0c48c4Sopenharmony_ci
512da0c48c4Sopenharmony_ci2018-06-05  Mark Wielaard  <mark@klomp.org>
513da0c48c4Sopenharmony_ci
514da0c48c4Sopenharmony_ci	* dwarf_getalt.c (find_debug_altlink): id_path array should be 2
515da0c48c4Sopenharmony_ci	larger to contain MAX_BUILD_ID_BYTES.
516da0c48c4Sopenharmony_ci
517da0c48c4Sopenharmony_ci2018-05-31  Mark Wielaard  <mark@klomp.org>
518da0c48c4Sopenharmony_ci
519da0c48c4Sopenharmony_ci	* libdw_find_split_unit.c (try_split_file): New function extracted
520da0c48c4Sopenharmony_ci	from...
521da0c48c4Sopenharmony_ci	(__libdw_find_split_unit): ... here. Try both the relative and
522da0c48c4Sopenharmony_ci	absolute paths to find a .dwo file.
523da0c48c4Sopenharmony_ci
524da0c48c4Sopenharmony_ci2018-05-30  Mark Wielaard  <mark@klomp.org>
525da0c48c4Sopenharmony_ci
526da0c48c4Sopenharmony_ci	* libdw/dwarf_getsrclines.c (read_srclines): Change ndir and
527da0c48c4Sopenharmony_ci	ndirlist to size_t. Add check to see ndirlist doesn't overflow.
528da0c48c4Sopenharmony_ci
529da0c48c4Sopenharmony_ci2018-05-31  Mark Wielaard  <mark@klomp.org>
530da0c48c4Sopenharmony_ci
531da0c48c4Sopenharmony_ci	* dwarf_dieoffset.c: Check die->cu != NULL. Return -1, not ~0ul
532da0c48c4Sopenharmony_ci	on failure.
533da0c48c4Sopenharmony_ci
534da0c48c4Sopenharmony_ci2018-05-29  Mark Wielaard  <mark@klomp.org>
535da0c48c4Sopenharmony_ci
536da0c48c4Sopenharmony_ci	* dwarf_cuoffset.c (dwarf_cuoffset): Check die->cu is not NULL.
537da0c48c4Sopenharmony_ci	* dwarf_die_addr_die.c (dwarf_die_addr_die): Also search split
538da0c48c4Sopenharmony_ci	Dwarfs.
539da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): Add split_tree field.
540da0c48c4Sopenharmony_ci	(__libdw_find_split_dbg_addr): New internal function definition.
541da0c48c4Sopenharmony_ci	(__libdw_finddbg_cb): Likewise.
542da0c48c4Sopenharmony_ci	* libdw_find_split_unit.c (__libdw_find_split_unit): Insert split
543da0c48c4Sopenharmony_ci	Dwarf into skeleton dbg split_tree.
544da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_finddbg_cb): New function.
545da0c48c4Sopenharmony_ci	(__libdw_find_split_dbg_addr): Likewise.
546da0c48c4Sopenharmony_ci	* dwarf_end (dwarf_end): Destroy split_tree.
547da0c48c4Sopenharmony_ci
548da0c48c4Sopenharmony_ci2018-05-29  Mark Wielaard  <mark@klomp.org>
549da0c48c4Sopenharmony_ci
550da0c48c4Sopenharmony_ci	* dwarf.h: Add GNU DebugFission list entry encodings
551da0c48c4Sopenharmony_ci	DW_LLE_GNU_end_of_list_entry,
552da0c48c4Sopenharmony_ci	DW_LLE_GNU_base_address_selection_entry,
553da0c48c4Sopenharmony_ci	DW_LLE_GNU_start_end_entry and DW_LLE_GNU_start_length_entry.
554da0c48c4Sopenharmony_ci	* dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Handle
555da0c48c4Sopenharmony_ci	GNU DebugFission list entries.
556da0c48c4Sopenharmony_ci
557da0c48c4Sopenharmony_ci2018-05-28  Mark Wielaard  <mark@klomp.org>
558da0c48c4Sopenharmony_ci
559da0c48c4Sopenharmony_ci	* libdw_find_split_unit.c (__libdw_find_split_unit): End split_dwarf
560da0c48c4Sopenharmony_ci	only after we tried every unit id in it.
561da0c48c4Sopenharmony_ci
562da0c48c4Sopenharmony_ci2018-04-07  Mark Wielaard  <mark@klomp.org>
563da0c48c4Sopenharmony_ci
564da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_CU): Add locs_base.
565da0c48c4Sopenharmony_ci	(__libdw_cu_locs_base): New static inline function.
566da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Initialize locs_base.
567da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (valid_p): Create fake_loclists_cu if necessary.
568da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Clean up fake_loclists_cu.
569da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (initial_offset): Handle .debug_loclists.
570da0c48c4Sopenharmony_ci	(getlocations_addr): Likewise.
571da0c48c4Sopenharmony_ci	(dwarf_getlocation_addr): Likewise.
572da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c (attr_form_cu): Use fake_loclists_cu for
573da0c48c4Sopenharmony_ci	DWARF5.
574da0c48c4Sopenharmony_ci	(initial_offset): Handle DW_FORM_loclistx.
575da0c48c4Sopenharmony_ci	* dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Handle
576da0c48c4Sopenharmony_ci	.debug_loclists.
577da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): Add fake_loclists_cu.
578da0c48c4Sopenharmony_ci
579da0c48c4Sopenharmony_ci2018-04-12  Mark Wielaard  <mark@klomp.org>
580da0c48c4Sopenharmony_ci
581da0c48c4Sopenharmony_ci	* dwarf.h: Add DWARF5 location list entry DW_LLE encodings.
582da0c48c4Sopenharmony_ci	* begin_elf.c (dwarf_scnnames): Add IDX_debug_loclists.
583da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Remove DWARF_E_NO_LOCLIST. And replace
584da0c48c4Sopenharmony_ci	with DWARF_E_NO_DEBUG_LOC, DWARF_E_NO_DEBUG_LOCLISTS and
585da0c48c4Sopenharmony_ci	DWARF_E_NO_LOC_VALUE.
586da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_loclists_base
587da0c48c4Sopenharmony_ci	and DW_FORM_loclistx.
588da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (attr_ok): Use DWARF_E_NO_LOC_VALUE.
589da0c48c4Sopenharmony_ci	(initial_offset): Use DWARF_E_NO_DEBUG_LOC.
590da0c48c4Sopenharmony_ci	* libdwP.h: Add IDX_debug_rnglists. Remove DWARF_E_NO_LOCLIST.
591da0c48c4Sopenharmony_ci	Add DWARF_E_NO_DEBUG_LOC, DWARF_E_NO_DEBUG_LOCLISTS and
592da0c48c4Sopenharmony_ci	DWARF_E_NO_LOC_VALUE.
593da0c48c4Sopenharmony_ci
594da0c48c4Sopenharmony_ci2018-05-25  Mark Wielaard  <mark@klomp.org>
595da0c48c4Sopenharmony_ci
596da0c48c4Sopenharmony_ci	* libdw_find_split_unit.c (__libdw_find_split_unit): Extract linking
597da0c48c4Sopenharmony_ci	skeleton and split compile units code into...
598da0c48c4Sopenharmony_ci	* libdwP (__libdw_link_skel_split): ...this new function.
599da0c48c4Sopenharmony_ci
600da0c48c4Sopenharmony_ci2018-04-06  Mark Wielaard  <mark@klomp.org>
601da0c48c4Sopenharmony_ci
602da0c48c4Sopenharmony_ci	* dwarf_formaddr.c (__libdw_addrx): New function, extracted from...
603da0c48c4Sopenharmony_ci	(dwarf_formaddr): here. Use __libdw_addrx.
604da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (getlocations_addr): Pass cu to
605da0c48c4Sopenharmony_ci	__libdw_read_begin_end_pair_inc.
606da0c48c4Sopenharmony_ci	* dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Take cu as
607da0c48c4Sopenharmony_ci	argument. Handle .debug_rnglists.
608da0c48c4Sopenharmony_ci	(initial_offset): Handle .debug_rnglists and DW_FORM_rnglistx.
609da0c48c4Sopenharmony_ci	(dwarf_ranges): Likewise. Check cu isn't NULL before use. Pass cu to
610da0c48c4Sopenharmony_ci	__libdw_read_begin_end_pair_inc.
611da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_read_begin_end_pair_inc): Take cu as argument.
612da0c48c4Sopenharmony_ci	(__libdw_cu_ranges_base): Handle DW_AT_rnglists_base.
613da0c48c4Sopenharmony_ci	(__libdw_addrx): New function definition.
614da0c48c4Sopenharmony_ci
615da0c48c4Sopenharmony_ci2018-04-11  Mark Wielaard  <mark@klomp.org>
616da0c48c4Sopenharmony_ci
617da0c48c4Sopenharmony_ci	* dwarf.h: Add DWARF5 range list entry DW_RLE encodings.
618da0c48c4Sopenharmony_ci	* begin_elf.c (dwarf_scnnames): Add IDX_debug_rnglists.
619da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add DWARF_E_NO_DEBUG_RNGLISTS.
620da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_rnglists_base
621da0c48c4Sopenharmony_ci	and DW_FORM_rnglistx.
622da0c48c4Sopenharmony_ci	* dwarf_getscopes.c (pc_match): Also check for
623da0c48c4Sopenharmony_ci	DWARF_E_NO_DEBUG_RNGLISTS.
624da0c48c4Sopenharmony_ci	* libdwP.h: Add IDX_debug_rnglists.
625da0c48c4Sopenharmony_ci
626da0c48c4Sopenharmony_ci2018-05-25  Mark Wielaard  <mark@klomp.org>
627da0c48c4Sopenharmony_ci
628da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c (__libdw_cu_addr_base): Cast offset to
629da0c48c4Sopenharmony_ci	uintptr_t before returning as pointer.
630da0c48c4Sopenharmony_ci
631da0c48c4Sopenharmony_ci2018-05-22  Mark Wielaard  <mark@klomp.org>
632da0c48c4Sopenharmony_ci
633da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_cu_base_address): Treat errors of
634da0c48c4Sopenharmony_ci	getting lowpc or entrypc the same as missing base address (zero).
635da0c48c4Sopenharmony_ci	* dwarf_highpc (dwarf_highpc): Handle any address form. Always set
636da0c48c4Sopenharmony_ci	error when attribute could not be found.
637da0c48c4Sopenharmony_ci
638da0c48c4Sopenharmony_ci2018-05-21  Mark Wielaard  <mark@klomp.org>
639da0c48c4Sopenharmony_ci
640da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (valid_p): Add a fake_addr_cu to the result.
641da0c48c4Sopenharmony_ci	* dwarf_end.c (cu_free): Disconnect the fake_addr_cu from the split
642da0c48c4Sopenharmony_ci	dwarf if shared with skeleton.
643da0c48c4Sopenharmony_ci	(dwarf_end): release fake_addr_cu.
644da0c48c4Sopenharmony_ci	* dwarf_formaddr.c (__libdw_cu_addr_base): Move to...
645da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_cu_addr_base): ... here.
646da0c48c4Sopenharmony_ci	(struct Dwarf): Add fake_addr_cu field.
647da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Handle
648da0c48c4Sopenharmony_ci	DW_FORM_GNU_addr_index and DW_FORM_addrx[1234].
649da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c (addr_valp): New static function.
650da0c48c4Sopenharmony_ci	(dwarf_getlocation_attr): Create attribute for values of
651da0c48c4Sopenharmony_ci	DW_OP_GNU_const_index, DW_OP_constx and DW_OP_GNU_addr_index and
652da0c48c4Sopenharmony_ci	DW_OP_addrx.
653da0c48c4Sopenharmony_ci	* libdw_find_split_unit.c (__libdw_find_split_unit): Connect
654da0c48c4Sopenharmony_ci	IDX_debug_addr sectiondata and fake_addr_cu between split and
655da0c48c4Sopenharmony_ci	skeleton.
656da0c48c4Sopenharmony_ci
657da0c48c4Sopenharmony_ci2018-05-20  Mark Wielaard  <mark@klomp.org>
658da0c48c4Sopenharmony_ci
659da0c48c4Sopenharmony_ci	* dwarf_cu_info.c: New file.
660da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_cu_info.c.
661da0c48c4Sopenharmony_ci	* libdw.h (dwarf_cu_info): New function declaration.
662da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.171): Add dwarf_cu_info.
663da0c48c4Sopenharmony_ci
664da0c48c4Sopenharmony_ci2018-05-24  Mark Wielaard  <mark@klomp.org>
665da0c48c4Sopenharmony_ci
666da0c48c4Sopenharmony_ci	* dwarf_ranges.c (dwarf_ranges): Check for NULL cu.
667da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Initialize ranges_base.
668da0c48c4Sopenharmony_ci
669da0c48c4Sopenharmony_ci2018-05-18  Mark Wielaard  <mark@klomp.org>
670da0c48c4Sopenharmony_ci
671da0c48c4Sopenharmony_ci	* dwarf_formudata.c (__libdw_formptr): Handle the special case
672da0c48c4Sopenharmony_ci	of IDX_debug_ranges for DW_UT_split_compile with version < 5.
673da0c48c4Sopenharmony_ci	* dwarf_highpc.c (dwarf_highpc): Use dwarf_lowpc, check for
674da0c48c4Sopenharmony_ci	split compile cudie.
675da0c48c4Sopenharmony_ci	* dwarf_lowpc.c (dwarf_lowpc): Check for split compile cudie.
676da0c48c4Sopenharmony_ci	* dwarf_ranges.c (dwarf_ranges): Switch cu and sectiondata for
677da0c48c4Sopenharmony_ci	split compile units.
678da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_CU): Add ranges_base field.
679da0c48c4Sopenharmony_ci	(__libdw_cu_ranges_base): New static inline function.
680da0c48c4Sopenharmony_ci
681da0c48c4Sopenharmony_ci2018-05-18  Mark Wielaard  <mark@klomp.org>
682da0c48c4Sopenharmony_ci
683da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Init files to NULL.
684da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Handle split units by
685da0c48c4Sopenharmony_ci	taking the line table from the skeleton.
686da0c48c4Sopenharmony_ci	* dwarf_getsrcfiles.c (dwarf_getsrcfiles): Handle split units by
687da0c48c4Sopenharmony_ci	only taking the files from .debug_line offset zero (if it exists),
688da0c48c4Sopenharmony_ci	otherwise fall back to the skeleton.
689da0c48c4Sopenharmony_ci
690da0c48c4Sopenharmony_ci2018-05-17  Mark Wielaard  <mark@klomp.org>
691da0c48c4Sopenharmony_ci
692da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (__libdw_debugdir): New function.
693da0c48c4Sopenharmony_ci	(valid_p): Call __libdw_debugdir.
694da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end.c): Free debugdir.
695da0c48c4Sopenharmony_ci	* dwarf_getalt.c (__libdw_filepath): Extract __libdw_debugdir logic.
696da0c48c4Sopenharmony_ci	take debugdir as argument instead of fd.
697da0c48c4Sopenharmony_ci	(find_debug_altlink): Call __libdw_filepath with debugdir.
698da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): Add debugdir field.
699da0c48c4Sopenharmony_ci	(__libdw_debugdir): New function prototype.
700da0c48c4Sopenharmony_ci	(__libdw_filepath): Adjust prototype to take a const char * instead of
701da0c48c4Sopenharmony_ci	an int.
702da0c48c4Sopenharmony_ci	* libdw_find_split_unit.c (__libdw_find_split_unit): Call
703da0c48c4Sopenharmony_ci	__libdw_filepath with debugdir.
704da0c48c4Sopenharmony_ci
705da0c48c4Sopenharmony_ci2018-05-17  Mark Wielaard  <mark@klomp.org>
706da0c48c4Sopenharmony_ci
707da0c48c4Sopenharmony_ci	* dwarf_attr_integrate.c (dwarf_attr_integrate): Handle split_compile
708da0c48c4Sopenharmony_ci	unit DIE, search skeleton_compile unit DIE.
709da0c48c4Sopenharmony_ci	* dwarf_hasattr_integrate.c (dwarf_hasattr_integrate): Likewise.
710da0c48c4Sopenharmony_ci	* libdwP.h (is_cudie): Check cu is not NULL.
711da0c48c4Sopenharmony_ci
712da0c48c4Sopenharmony_ci2018-05-19  Mark Wielaard  <mark@klomp.org>
713da0c48c4Sopenharmony_ci
714da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_find_split_unit): Mark as internal_function.
715da0c48c4Sopenharmony_ci
716da0c48c4Sopenharmony_ci2018-05-15  Mark Wielaard  <mark@klomp.org>
717da0c48c4Sopenharmony_ci
718da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add libdw_find_split_unit.c.
719da0c48c4Sopenharmony_ci	* dwarf_end.c (cu_free): Free split Dwarf.
720da0c48c4Sopenharmony_ci	* dwarf_get_units.c (dwarf_get_units): Handle DW_UT_skeleton by
721da0c48c4Sopenharmony_ci	calling __libdw_find_split_unit.
722da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_CU): Add split Dwarf_CU field.
723da0c48c4Sopenharmony_ci	(__libdw_find_split_unit): New function prototype.
724da0c48c4Sopenharmony_ci	(str_offsets_base_off): Use cu Dwarf if dbg is NULL.
725da0c48c4Sopenharmony_ci	(filepath): Rename to ...
726da0c48c4Sopenharmony_ci	(__libdw_filepath): This. Which is the actual function name in
727da0c48c4Sopenharmony_ci	dwarf_getalt.c.
728da0c48c4Sopenharmony_ci	(libdw_find_split_unit.c): New file.
729da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Initialize split to -1.
730da0c48c4Sopenharmony_ci
731da0c48c4Sopenharmony_ci2018-05-15  Mark Wielaard  <mark@klomp.org>
732da0c48c4Sopenharmony_ci
733da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_first_die_from_cu_start): Adjust commented out
734da0c48c4Sopenharmony_ci	asserts.
735da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): For version 4 DWARF if
736da0c48c4Sopenharmony_ci	the cudie has a DW_AT_GNU_dwi_id set the unit_id8 and unit_type to
737da0c48c4Sopenharmony_ci	DW_UT_skeleton or DW_UT_split_compile based on whether the cudie has
738da0c48c4Sopenharmony_ci	child DIEs and a DW_AT_GNU_dwo_name attribute.
739da0c48c4Sopenharmony_ci
740da0c48c4Sopenharmony_ci2018-05-14  Mark Wielaard  <mark@klomp.org>
741da0c48c4Sopenharmony_ci
742da0c48c4Sopenharmony_ci	* dwarf.h: Add GNU Debug Fission extensions. DW_AT_GNU_dwo_name,
743da0c48c4Sopenharmony_ci	DW_AT_GNU_dwo_id, DW_AT_GNU_ranges_base, DW_AT_GNU_addr_base,
744da0c48c4Sopenharmony_ci	DW_AT_GNU_pubnames, DW_AT_GNU_pubtypes. DW_FORM_GNU_addr_index,
745da0c48c4Sopenharmony_ci	DW_FORM_GNU_str_index. DW_OP_GNU_addr_index, DW_OP_GNU_const_index.
746da0c48c4Sopenharmony_ci	* dwarf_formaddr.c (dwarf_formaddr): Handle DW_FORM_GNU_addr_index
747da0c48c4Sopenharmony_ci	as DW_FORM_addrx.
748da0c48c4Sopenharmony_ci	(__libdw_cu_addr_base): Check for both DW_AT_GNU_addr_base and
749da0c48c4Sopenharmony_ci	DW_AT_addr_base.
750da0c48c4Sopenharmony_ci	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_GNU_str_index
751da0c48c4Sopenharmony_ci	as DW_FORM_strx.
752da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Recognize DW_AT_GNU_addr_base
753da0c48c4Sopenharmony_ci	as addrptr. Recognize DW_AT_GNU_ranges_base as rangelistptr.
754da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Handle
755da0c48c4Sopenharmony_ci	DW_OP_GNU_addr_index as DW_OP_addrx and DW_OP_GNU_const_index as
756da0c48c4Sopenharmony_ci	DW_OP_constx.
757da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_compute_len): Handle
758da0c48c4Sopenharmony_ci	DW_FORM_GNU_addr_index and DW_FORM_GNU_str_index taking an uleb128.
759da0c48c4Sopenharmony_ci
760da0c48c4Sopenharmony_ci2018-05-12  Mark Wielaard  <mark@klomp.org>
761da0c48c4Sopenharmony_ci
762da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Also recognize .dwo section
763da0c48c4Sopenharmony_ci	name variants.
764da0c48c4Sopenharmony_ci
765da0c48c4Sopenharmony_ci2018-05-11  Mark Wielaard  <mark@klomp.org>
766da0c48c4Sopenharmony_ci
767da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_macros as macptr.
768da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (get_table_for_offset): Add DW_MACRO_define_sup,
769da0c48c4Sopenharmony_ci	DW_MACRO_undef_sup, DW_MACRO_import_sup, DW_MACRO_define_strx and
770da0c48c4Sopenharmony_ci	DW_MACRO_undef_strx. Add str_offsets_base_off to fake CU. Deal with
771da0c48c4Sopenharmony_ci	DW_AT_macros. Use libdw_valid_user_form.
772da0c48c4Sopenharmony_ci
773da0c48c4Sopenharmony_ci2018-05-09  Mark Wielaard  <mark@klomp.org>
774da0c48c4Sopenharmony_ci
775da0c48c4Sopenharmony_ci	* dwarf_formstring.c (__libdw_cu_str_off_base): Moved to...
776da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_cu_str_off_base): ...here. Make static inline.
777da0c48c4Sopenharmony_ci	(str_offsets_base_off): New internal function that also parses
778da0c48c4Sopenharmony_ci	.debug_str_offsets header if necessary.
779da0c48c4Sopenharmony_ci
780da0c48c4Sopenharmony_ci2018-05-11  Mark Wielaard  <mark@klomp.org>
781da0c48c4Sopenharmony_ci
782da0c48c4Sopenharmony_ci	* dwarf_siblingof.c (dwarf_siblingof): Don't reference cu till it is
783da0c48c4Sopenharmony_ci	known the Dwarf_Die is came from is valid.
784da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_dieabbrev): Check cu is not NULL.
785da0c48c4Sopenharmony_ci
786da0c48c4Sopenharmony_ci2018-05-08  Mark Wielaard  <mark@klomp.org>
787da0c48c4Sopenharmony_ci
788da0c48c4Sopenharmony_ci	* dwarf_formref.c (__libdw_formref): Explicitly don't handle
789da0c48c4Sopenharmony_ci	DW_FORM_ref_sup4 and DW_FORM_ref_sup8.
790da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Handle DW_FORM_ref_sup4
791da0c48c4Sopenharmony_ci	and DW_FORM_ref_sup8.
792da0c48c4Sopenharmony_ci	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_strp_sup
793da0c48c4Sopenharmony_ci	as DW_FORM_GNU_strp_alt.
794da0c48c4Sopenharmony_ci
795da0c48c4Sopenharmony_ci2018-05-05  Mark Wielaard  <mark@klomp.org>
796da0c48c4Sopenharmony_ci
797da0c48c4Sopenharmony_ci	* dwarf.h: Add DWARF line content descriptions.
798da0c48c4Sopenharmony_ci	* libdwP.h (libdw_valid_user_form): New static function.
799da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Check and parse version 5
800da0c48c4Sopenharmony_ci	DWARF header, dir and file tables separately from older versions
801da0c48c4Sopenharmony_ci	where different.
802da0c48c4Sopenharmony_ci
803da0c48c4Sopenharmony_ci2018-04-24  Mark Wielaard  <mark@klomp.org>
804da0c48c4Sopenharmony_ci
805da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_scnnames): Add ".debug_line_str".
806da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add DWARF_E_NO_DEBUG_STR and
807da0c48c4Sopenharmony_ci	DWARF_E_NO_DEBUG_LINE_STR.
808da0c48c4Sopenharmony_ci	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_line_strp.
809da0c48c4Sopenharmony_ci	Get data from either .debug_str or .debug_line_str.
810da0c48c4Sopenharmony_ci	* libdwP.h: Add IDX_debug_line_str, DWARF_E_NO_DEBUG_STR and
811da0c48c4Sopenharmony_ci	DWARF_E_NO_DEBUG_LINE_STR.
812da0c48c4Sopenharmony_ci
813da0c48c4Sopenharmony_ci2018-04-03  Mark Wielaard  <mark@klomp.org>
814da0c48c4Sopenharmony_ci
815da0c48c4Sopenharmony_ci	* dwarf_formudata.c (__libdw_formptr): Take and return const
816da0c48c4Sopenharmony_ci	unsigned char pointers.
817da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (attr_base_address): Rename to...
818da0c48c4Sopenharmony_ci	(__libdw_cu_base_address): this. Take Dwarf_CU, check and set
819da0c48c4Sopenharmony_ci	base_address.
820da0c48c4Sopenharmony_ci	(initial_offset_base): Renamed to...
821da0c48c4Sopenharmony_ci	(initial_offset): this. Only provide offset.
822da0c48c4Sopenharmony_ci	(getlocations_addr): Move data size check and
823da0c48c4Sopenharmony_ci	address base addition into __libdw_read_begin_end_pair_inc. Use
824da0c48c4Sopenharmony_ci	__libdw_cu_base_address and initial_offset. Drop Elf_Data NULL
825da0c48c4Sopenharmony_ci	check (already done by initial_offset, through __libdw_formptr).
826da0c48c4Sopenharmony_ci	(dwarf_getlocations): Use __libdw_cu_base_address and initial_offset.
827da0c48c4Sopenharmony_ci	Drop Elf_Data NULL check.
828da0c48c4Sopenharmony_ci	* dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Change argument
829da0c48c4Sopenharmony_ci	type of readp to Add readend argument. Check data size. Include base
830da0c48c4Sopenharmony_ci	in begin and end result.
831da0c48c4Sopenharmony_ci	(initial_offset): New static function.
832da0c48c4Sopenharmony_ci	(dwarf_ranges): Don't check Elf_Data being NULL (already done by
833da0c48c4Sopenharmony_ci	initial_offset, through __libdw_formptr). Use __libdw_cu_base_address
834da0c48c4Sopenharmony_ci	and initial_offset. Remove base check and addition (already done by
835da0c48c4Sopenharmony_ci	__libdw_read_begin_end_pair_inc.
836da0c48c4Sopenharmony_ci	* libdwP.h (Dwarf_CU): Add base_address field.
837da0c48c4Sopenharmony_ci	(__libdw_read_begin_end_pair_inc): Change argument type of readp to
838da0c48c4Sopenharmony_ci	const. Add readend argument.
839da0c48c4Sopenharmony_ci	(__libdw_formptr): Take and return const unsigned char pointers.
840da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Initialize Dwarf_CU
841da0c48c4Sopenharmony_ci	base_address.
842da0c48c4Sopenharmony_ci
843da0c48c4Sopenharmony_ci2018-04-04  Mark Wielaard  <mark@klomp.org>
844da0c48c4Sopenharmony_ci
845da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Initialize Dwarf_CU
846da0c48c4Sopenharmony_ci	addr_base and str_off_base.
847da0c48c4Sopenharmony_ci
848da0c48c4Sopenharmony_ci2018-03-23  Mark Wielaard  <mark@klomp.org>
849da0c48c4Sopenharmony_ci
850da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_scnnames): Add IDX_debug_str_offsets,
851da0c48c4Sopenharmony_ci	increase size.
852da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add DWARF_E_NO_STR_OFFSETS.
853da0c48c4Sopenharmony_ci	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_strx[1234].
854da0c48c4Sopenharmony_ci	(__libdw_cu_str_off_base): New function.
855da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Handle IDX_debug_str_offsets
856da0c48c4Sopenharmony_ci	as stroffsetsptr.
857da0c48c4Sopenharmony_ci	* libdwP.h: Add IDX_debug_str_offsets and DWARF_E_NO_STR_OFFSETS.
858da0c48c4Sopenharmony_ci	(struct Dwarf_CU): Add str_off_base field.
859da0c48c4Sopenharmony_ci	(__libdw_cu_str_off_base): New function declaration.
860da0c48c4Sopenharmony_ci
861da0c48c4Sopenharmony_ci2018-03-22  Mark Wielaard  <mark@klomp.org>
862da0c48c4Sopenharmony_ci
863da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_scnnames): Add IDX_debug_addr.
864da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add DWARF_E_NO_DEBUG_ADDR.
865da0c48c4Sopenharmony_ci	* dwarf_formaddr.c (dwarf_formaddr): Handle DW_FORM_addrx[1234].
866da0c48c4Sopenharmony_ci	(__libdw_cu_addr_base): New function.
867da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_addr_base as
868da0c48c4Sopenharmony_ci	addrptr.
869da0c48c4Sopenharmony_ci	* libdwP.h: Add IDX_debug_addr and DWARF_E_NO_DEBUG_ADDR.
870da0c48c4Sopenharmony_ci	(struct Dwarf_CU): Add addr_base field.
871da0c48c4Sopenharmony_ci	(__libdw_cu_addr_base): New function definition.
872da0c48c4Sopenharmony_ci	* memory-access.h (file_byte_order): New static function.
873da0c48c4Sopenharmony_ci	(read_3ubyte_unaligned): New inline function.
874da0c48c4Sopenharmony_ci
875da0c48c4Sopenharmony_ci2018-03-29  Mark Wielaard  <mark@klomp.org>
876da0c48c4Sopenharmony_ci
877da0c48c4Sopenharmony_ci	* libdw.h (dwarf_decl_file): Extend documentation.
878da0c48c4Sopenharmony_ci	(dwarf_linesrc): Likewise.
879da0c48c4Sopenharmony_ci	(dwarf_filesrc): Likewise.
880da0c48c4Sopenharmony_ci
881da0c48c4Sopenharmony_ci2018-03-06  Mark Wielaard  <mark@klomp.org>
882da0c48c4Sopenharmony_ci
883da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_OP_implicit_pointer, DW_OP_addrx, DW_OP_constx,
884da0c48c4Sopenharmony_ci	DW_OP_entry_value, DW_OP_const_type, DW_OP_regval_type,
885da0c48c4Sopenharmony_ci	DW_OP_deref_type, DW_OP_xderef_type, DW_OP_convert and
886da0c48c4Sopenharmony_ci	DW_OP_reinterpret.
887da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Handle
888da0c48c4Sopenharmony_ci	DW_OP_convert, DW_OP_reinterpret, DW_OP_addrx, DW_OP_constx,
889da0c48c4Sopenharmony_ci	DW_OP_regval_type, DW_OP_entry_value, DW_OP_implicit_pointer,
890da0c48c4Sopenharmony_ci	DW_OP_deref_type, DW_OP_xderef_type and DW_OP_const_type.
891da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c (dwarf_getlocation_attr): Handle
892da0c48c4Sopenharmony_ci	DW_OP_entry_value, DW_OP_const_type and DW_OP_implicit_pointer.
893da0c48c4Sopenharmony_ci	* dwarf_getlocation_die.c (dwarf_getlocation_die): Handle
894da0c48c4Sopenharmony_ci	DW_OP_implicit_pointer, DW_OP_convert, DW_OP_reinterpret,
895da0c48c4Sopenharmony_ci	DW_OP_const_type, DW_OP_regval_type, DW_OP_deref_type and
896da0c48c4Sopenharmony_ci	DW_OP_xderef_type.
897da0c48c4Sopenharmony_ci	* dwarf_getlocation_implicit_pointer.c
898da0c48c4Sopenharmony_ci	(dwarf_getlocation_implicit_pointer): Handle DW_OP_implicit_pointer.
899da0c48c4Sopenharmony_ci
900da0c48c4Sopenharmony_ci2018-03-01  Mark Wielaard  <mark@klomp.org>
901da0c48c4Sopenharmony_ci
902da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_AT_GNU_locviews and DW_AT_GNU_entry_view.
903da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Handle DW_AT_GNU_locviews
904da0c48c4Sopenharmony_ci	as a loclistptr.
905da0c48c4Sopenharmony_ci
906da0c48c4Sopenharmony_ci2018-02-09  Mark Wielaard  <mark@klomp.org>
907da0c48c4Sopenharmony_ci
908da0c48c4Sopenharmony_ci	* dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_data16 as a
909da0c48c4Sopenharmony_ci	16 byte block.
910da0c48c4Sopenharmony_ci
911da0c48c4Sopenharmony_ci2018-02-09  Mark Wielaard  <mark@klomp.org>
912da0c48c4Sopenharmony_ci
913da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr): Handle DW_FORM_implicit_const.
914da0c48c4Sopenharmony_ci	* dwarf_formsdata.c (dwarf_formsdata): Likewise.
915da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Likewise.
916da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
917da0c48c4Sopenharmony_ci	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
918da0c48c4Sopenharmony_ci	* dwarf_hasattr.c (dwarf_hasattr): Likewise.
919da0c48c4Sopenharmony_ci	* dwarf_getabbrevattr.c (dwarf_getabbrevattr_data): New function
920da0c48c4Sopenharmony_ci	that will also return any data associated with the abbrev. Which
921da0c48c4Sopenharmony_ci	currently is only for DW_FORM_implicit_const. Based on...
922da0c48c4Sopenharmony_ci	(dwarf_getabbrevattr): ... this function. Which now just calls
923da0c48c4Sopenharmony_ci	dwarf_getabbrevattr_data.
924da0c48c4Sopenharmony_ci	* libdw.h (dwarf_getabbrevattr_data): Declare new function.
925da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.170): Add dwarf_getabbrevattr_data.
926da0c48c4Sopenharmony_ci	* libdwP.h (dwarf_getabbrevattr_data): INTDECL.
927da0c48c4Sopenharmony_ci	* memory-access.h (__libdw_get_sleb128_unchecked): New inlined
928da0c48c4Sopenharmony_ci	function based on __libdw_get_uleb128_unchecked.
929da0c48c4Sopenharmony_ci
930da0c48c4Sopenharmony_ci2018-02-08  Mark Wielaard  <mark@klomp.org>
931da0c48c4Sopenharmony_ci
932da0c48c4Sopenharmony_ci	* dwarf.h: Add DWARF5 DW_FORMs.
933da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_form_val_compute_len): Handle fix length
934da0c48c4Sopenharmony_ci	DW_FORM_implicit_const, DW_FORM_addrx[1234], DW_FORM_strx[1234],
935da0c48c4Sopenharmony_ci	DW_FORM_ref_sup[48] and DW_FORM_data16.
936da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_compute_len): DW_FORM_strp_sup
937da0c48c4Sopenharmony_ci	and DW_FORM_line_strp are offset_size. DW_FORM_addrx, DW_FORM_strx,
938da0c48c4Sopenharmony_ci	DW_FORM_loclistx and DW_FORM_rnglistx are uleb128.
939da0c48c4Sopenharmony_ci
940da0c48c4Sopenharmony_ci2018-01-30  Mark Wielaard  <mark@klomp.org>
941da0c48c4Sopenharmony_ci
942da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_get_units.c.
943da0c48c4Sopenharmony_ci	* dwarf_get_units.c: New file.
944da0c48c4Sopenharmony_ci	* libdw.h (dwarf_get_units): New function declaration.
945da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.170): Add dwarf_get_units.
946da0c48c4Sopenharmony_ci
947da0c48c4Sopenharmony_ci2018-01-29  Mark Wielaard  <mark@klomp.org>
948da0c48c4Sopenharmony_ci
949da0c48c4Sopenharmony_ci	* dwarf.h (DW_UT_*): Add DWARF Unit Header Types.
950da0c48c4Sopenharmony_ci	* dwarf_cu_die.c (dwarf_cu_die): Rename arguments. type_signaturep
951da0c48c4Sopenharmony_ci	is now called unit_idp. type_offsetp is now called subdie_offsetp.
952da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Scan both .debug_info
953da0c48c4Sopenharmony_ci	and .debug_types sections for type units when type signature ref
954da0c48c4Sopenharmony_ci	not found.
955da0c48c4Sopenharmony_ci	* dwarf_getaranges.c (dwarf_getaranges): Use __libdw_findcu and
956da0c48c4Sopenharmony_ci	__libdw_first_die_off_from_cu instead of trying by hand.
957da0c48c4Sopenharmony_ci	* dwarf_getlocation_die.c (dwarf_getlocation_die): Use ISV4TU
958da0c48c4Sopenharmony_ci	instead of checking type_offset by hand.
959da0c48c4Sopenharmony_ci	* dwarf_getlocation_implicit_pointer.c
960da0c48c4Sopenharmony_ci	(dwarf_getlocation_implicit_pointer): Likewise.
961da0c48c4Sopenharmony_ci	* dwarf_nextcu.c (dwarf_next_unit): Call __libdw_next_unit.
962da0c48c4Sopenharmony_ci	(__libdw_next_unit): New function based on dwarf_next_unit with
963da0c48c4Sopenharmony_ci	DWARF5 header support.
964da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_CU): Renamed type_offset to subdie_offset
965da0c48c4Sopenharmony_ci	and type_sig8 to unit_id8.
966da0c48c4Sopenharmony_ci	(ISV4TU): New macro to determine whether a CU is a version 4 type
967da0c48c4Sopenharmony_ci	unit (which comes from the .debug_types section).
968da0c48c4Sopenharmony_ci	(DIE_OFFSET_FROM_CU_OFFSET): Replaced macro by real function...
969da0c48c4Sopenharmony_ci	(__libdw_first_die_from_cu_start): ... that also handles DWARF5
970da0c48c4Sopenharmony_ci	unit headers.
971da0c48c4Sopenharmony_ci	(__libdw_first_die_off_from_cu): New function that calls the above
972da0c48c4Sopenharmony_ci	using the CU fields.
973da0c48c4Sopenharmony_ci	(CUDIE): Use __libdw_first_die_off_from_cu.
974da0c48c4Sopenharmony_ci	(SUBDIE): New macro that provides the DIE for a CU using the
975da0c48c4Sopenharmony_ci	subdie_offset.
976da0c48c4Sopenharmony_ci	(__libdw_next_unit): New internal function declaration.
977da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Use __libdw_next_unit.
978da0c48c4Sopenharmony_ci	Accept DWARF version 5 headers. Setup unit_type.
979da0c48c4Sopenharmony_ci	(__libdw_findcu): Rename debug_types argument to v4_debug_types
980da0c48c4Sopenharmony_ci	argument (to indicate that we are looking in the .debug_types
981da0c48c4Sopenharmony_ci	section). Support finding the exact offset (unit header start).
982da0c48c4Sopenharmony_ci
983da0c48c4Sopenharmony_ci2018-01-25  Mark Wielaard  <mark@klomp.org>
984da0c48c4Sopenharmony_ci
985da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_die_addr_die.c.
986da0c48c4Sopenharmony_ci	* dwarf_die_addr_die.c: New file.
987da0c48c4Sopenharmony_ci	* libdw.h (dwarf_die_addr_die): New function declaration.
988da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.171): New section with dwarf_die_addr_die.
989da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_findcu_addr): New internal function declaration.
990da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_findcu_addr): New internal function.
991da0c48c4Sopenharmony_ci
992da0c48c4Sopenharmony_ci2018-02-09  Joshua Watt  <JPEWhacker@gmail.com>
993da0c48c4Sopenharmony_ci
994da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Use FALLTHROUGH macro instead of comment.
995da0c48c4Sopenharmony_ci	* dwarf_frame_register.c (dwarf_frame_register): Likewise.
996da0c48c4Sopenharmony_ci
997da0c48c4Sopenharmony_ci2018-01-22  Mark Wielaard  <mark@klomp.org>
998da0c48c4Sopenharmony_ci
999da0c48c4Sopenharmony_ci	* Makefile.am (AM_CPPFLAGS): Add -I libdwelf.
1000da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_begin_elf): Initialize Dwarf alt_fd to -1.
1001da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Call dwarf_end and close on the alt_dwarf
1002da0c48c4Sopenharmony_ci	and alt_fd if we allocated them.
1003da0c48c4Sopenharmony_ci	* dwarf_fromref_die.c (dwarf_formref_die): Call dwarf_getalt.
1004da0c48c4Sopenharmony_ci	* dwarf_formstring.c (dwarf_formstring): Likewise.
1005da0c48c4Sopenharmony_ci	* dwarf_getalt.c (__libdw_filepath): New internal function.
1006da0c48c4Sopenharmony_ci	(find_debug_altlink): New static function.
1007da0c48c4Sopenharmony_ci	(dwarf_getalt): Check Dwarf alt_dwarf and call find_debug_altlink.
1008da0c48c4Sopenharmony_ci	Cache result.
1009da0c48c4Sopenharmony_ci	* dwarf_setalt.c (dwarf_setalt): Clean up Dwarf alt_dwarf and alt_fd
1010da0c48c4Sopenharmony_ci	if we allocated.
1011da0c48c4Sopenharmony_ci	* libdw.h (dwarf_getalt): Extend documentation.
1012da0c48c4Sopenharmony_ci	(dwarf_setalt): Likewise.
1013da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): Add alt_fd field.
1014da0c48c4Sopenharmony_ci	(filepath): Declare new internal function.
1015da0c48c4Sopenharmony_ci
1016da0c48c4Sopenharmony_ci2018-01-14  Petr Machata  <pmachata@gmail.com>
1017da0c48c4Sopenharmony_ci
1018da0c48c4Sopenharmony_ci	* dwarf_formsdata.c (dwarf_formsdata):
1019da0c48c4Sopenharmony_ci	<DW_FORM_data1>: Cast to signed char.
1020da0c48c4Sopenharmony_ci	<DW_FORM_data2,4,8>: Use read_*sbyte_unaligned instead of
1021da0c48c4Sopenharmony_ci	read_*ubyte_unaligned.
1022da0c48c4Sopenharmony_ci
1023da0c48c4Sopenharmony_ci2017-12-26  Mark Wielaard  <mark@klomp.org>
1024da0c48c4Sopenharmony_ci
1025da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_Abbrev): Pack struct. Remove attrcnt,
1026da0c48c4Sopenharmony_ci	use bitfields for has_children and code.
1027da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Don't count attrs.
1028da0c48c4Sopenharmony_ci	* dwarf_getattrcnt.c (dwarf_getattrcnt): Count attrs.
1029da0c48c4Sopenharmony_ci
1030da0c48c4Sopenharmony_ci2017-12-26  Mark Wielaard  <mark@klomp.org>
1031da0c48c4Sopenharmony_ci
1032da0c48c4Sopenharmony_ci	* memory-access.h (__libdw_get_uleb128_unchecked): New function.
1033da0c48c4Sopenharmony_ci	(get_uleb128_unchecked): New define.
1034da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr): Use get_uleb128_unchecked to
1035da0c48c4Sopenharmony_ci	read attr name and form.
1036da0c48c4Sopenharmony_ci	* dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
1037da0c48c4Sopenharmony_ci	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
1038da0c48c4Sopenharmony_ci	* dwarf_hasattr.c (dwarf_hasattr): Likewise.
1039da0c48c4Sopenharmony_ci
1040da0c48c4Sopenharmony_ci2017-12-28  Mark Wielaard  <mark@klomp.org>
1041da0c48c4Sopenharmony_ci
1042da0c48c4Sopenharmony_ci	* dwarf_offdie.c (__libdw_offdie): Check sectiondata exists.
1043da0c48c4Sopenharmony_ci
1044da0c48c4Sopenharmony_ci2017-05-09  Ulf Hermann  <ulf.hermann@qt.io>
1045da0c48c4Sopenharmony_ci	    Mark Wielaard  <mark@klomp.org>
1046da0c48c4Sopenharmony_ci
1047da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_in_section): Fix check for the upper border of
1048da0c48c4Sopenharmony_ci	the range.
1049da0c48c4Sopenharmony_ci	(__libdw_offset_in_section): Likewise.
1050da0c48c4Sopenharmony_ci
1051da0c48c4Sopenharmony_ci2017-12-20  Mark Wielaard  <mark@klomp.org>
1052da0c48c4Sopenharmony_ci
1053da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_CU): Add sec_idx field.
1054da0c48c4Sopenharmony_ci	(cu_sec_idx): Return cu->sec_idx.
1055da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Set cu sec_idx to
1056da0c48c4Sopenharmony_ci	IDX_debug_info or IDX_debug_types.
1057da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (valid_p): Set fake_loc_cu->sec_idx to
1058da0c48c4Sopenharmony_ci	IDX_debug_loc.
1059da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (read_macros): Set fake_cu->sec_idx to
1060da0c48c4Sopenharmony_ci	IDX_debug_macro or IDX_debug_macinfo.
1061da0c48c4Sopenharmony_ci
1062da0c48c4Sopenharmony_ci2017-12-12  Mark Wielaard  <mark@klomp.org>
1063da0c48c4Sopenharmony_ci
1064da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (dwarf_aggregate_size): Don't peel the
1065da0c48c4Sopenharmony_ci	given DIE. Reserve memory for a new DIE first.
1066da0c48c4Sopenharmony_ci
1067da0c48c4Sopenharmony_ci2017-12-11  Dima Kogan  <dima@secretsauce.net>
1068da0c48c4Sopenharmony_ci
1069da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (array_size): Handle multi-dimensional
1070da0c48c4Sopenharmony_ci	arrays properly.
1071da0c48c4Sopenharmony_ci
1072da0c48c4Sopenharmony_ci2017-11-03  Mark Wielaard  <mark@klomp.org>
1073da0c48c4Sopenharmony_ci
1074da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Handle
1075da0c48c4Sopenharmony_ci	DW_OP_GNU_variable_value.
1076da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c (dwarf_getlocation_attr): Likewise.
1077da0c48c4Sopenharmony_ci	* dwarf_getlocation_die.c (dwarf_getlocation_die): Likewise.
1078da0c48c4Sopenharmony_ci
1079da0c48c4Sopenharmony_ci2017-11-03  Mark Wielaard  <mark@klomp.org>
1080da0c48c4Sopenharmony_ci
1081da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (attr_ok): Always accept DW_FORM_exprloc.
1082da0c48c4Sopenharmony_ci	Update list of acceptable attribute codes based on DWARF5.
1083da0c48c4Sopenharmony_ci
1084da0c48c4Sopenharmony_ci2017-11-03  Mark Wielaard  <mark@klomp.org>
1085da0c48c4Sopenharmony_ci
1086da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_OP_GNU_variable_value.
1087da0c48c4Sopenharmony_ci
1088da0c48c4Sopenharmony_ci2017-10-03  Mark Wielaard  <mark@klomp.org>
1089da0c48c4Sopenharmony_ci
1090da0c48c4Sopenharmony_ci	* libdw.h: Define LIBDW_CIE_ID and use it in dwarf_cfi_cie_p.
1091da0c48c4Sopenharmony_ci
1092da0c48c4Sopenharmony_ci2017-08-18  Ulf Hermann  <ulf.hermann@qt.io>
1093da0c48c4Sopenharmony_ci
1094da0c48c4Sopenharmony_ci	* memory-access.h: Use attribute_packed.
1095da0c48c4Sopenharmony_ci
1096da0c48c4Sopenharmony_ci2017-02-27  Ulf Hermann  <ulf.hermann@qt.io>
1097da0c48c4Sopenharmony_ci
1098da0c48c4Sopenharmony_ci	* libdwP.h: Use attribute_hidden.
1099da0c48c4Sopenharmony_ci	* libdw_alloc.c: Likewise.
1100da0c48c4Sopenharmony_ci
1101da0c48c4Sopenharmony_ci2017-02-27  Ulf Hermann  <ulf.hermann@qt.io>
1102da0c48c4Sopenharmony_ci
1103da0c48c4Sopenharmony_ci	* Makefile.am: Use fpic_CFLAGS and dso_LDFLAGS.
1104da0c48c4Sopenharmony_ci
1105da0c48c4Sopenharmony_ci2017-07-26  Mark Wielaard  <mark@klomp.org>
1106da0c48c4Sopenharmony_ci
1107da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_MACRO_* and compat defines for DW_MACRO_GNU_*.
1108da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (get_table_for_offset): Accept either version
1109da0c48c4Sopenharmony_ci	4 or 5. Use DW_MACRO names instead of DW_MACRO_GNU names.
1110da0c48c4Sopenharmony_ci	(read_macros): Use table version for fake_cu.
1111da0c48c4Sopenharmony_ci
1112da0c48c4Sopenharmony_ci2017-07-26  Mark Wielaard  <mark@klomp.org>
1113da0c48c4Sopenharmony_ci
1114da0c48c4Sopenharmony_ci	* dwarf_peel_type.c (dwarf_peel_type): Handle DW_TAG_immutable_type,
1115da0c48c4Sopenharmony_ci	DW_TAG_packed_type and DW_TAG_shared_type.
1116da0c48c4Sopenharmony_ci	* libdw.h (dwarf_peel_type): Extend documentation.
1117da0c48c4Sopenharmony_ci
1118da0c48c4Sopenharmony_ci2017-07-26  Mark Wielaard  <mark@klomp.org>
1119da0c48c4Sopenharmony_ci
1120da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_DEFAULTED_no, DW_DEFAULTED_in_class and
1121da0c48c4Sopenharmony_ci	DW_DEFAULTED_out_of_class.
1122da0c48c4Sopenharmony_ci
1123da0c48c4Sopenharmony_ci2017-07-26  Mark Wielaard  <mark@klomp.org>
1124da0c48c4Sopenharmony_ci
1125da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_CC_pass_by_reference and DW_CC_pass_by_reference.
1126da0c48c4Sopenharmony_ci
1127da0c48c4Sopenharmony_ci2017-07-26  Mark Wielaard  <mark@klomp.org>
1128da0c48c4Sopenharmony_ci
1129da0c48c4Sopenharmony_ci	* dwarf_default_lower_bound.c: New file.
1130da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_default_lower_bound.c.
1131da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (array_size): Use dwarf_default_lower_bound.
1132da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add DWARF_E_UNKNOWN_LANGUAGE.
1133da0c48c4Sopenharmony_ci	* libdw.h: Add dwarf_default_lower_bound.
1134da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.170): Add dwarf_default_lower_bound.
1135da0c48c4Sopenharmony_ci	* libdwP.h: Add DWARF_E_UNKNOWN_LANGUAGE and
1136da0c48c4Sopenharmony_ci	dwarf_default_lower_bound INTDECL.
1137da0c48c4Sopenharmony_ci
1138da0c48c4Sopenharmony_ci2017-07-26  Mark Wielaard  <mark@klomp.org>
1139da0c48c4Sopenharmony_ci
1140da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_LANG_OpenCL, DW_LANG_Modula3,
1141da0c48c4Sopenharmony_ci	DW_LANG_C_plus_plus_03, DW_LANG_OCaml, DW_LANG_Rust, DW_LANG_Swift,
1142da0c48c4Sopenharmony_ci	DW_LANG_Julia, DW_LANG_Dylan, DW_LANG_RenderScript, DW_LANG_BLISS.
1143da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (array_size): Add lower bound for
1144da0c48c4Sopenharmony_ci	DW_LANG_C_plus_plus_03, DW_LANG_Python, DW_LANG_OpenCL,
1145da0c48c4Sopenharmony_ci	DW_LANG_Haskell, DW_LANG_OCaml, DW_LANG_Rust, DW_LANG_Swift,
1146da0c48c4Sopenharmony_ci	DW_LANG_Dylan, DW_LANG_RenderScript, DW_LANG_Modula3,
1147da0c48c4Sopenharmony_ci	DW_LANG_Julia and DW_LANG_BLISS.
1148da0c48c4Sopenharmony_ci
1149da0c48c4Sopenharmony_ci2017-07-26  Mark Wielaard  <mark@klomp.org>
1150da0c48c4Sopenharmony_ci
1151da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_ATE_UCS and DW_ATE_ASCII.
1152da0c48c4Sopenharmony_ci
1153da0c48c4Sopenharmony_ci2017-07-25  Mark Wielaard  <mark@klomp.org>
1154da0c48c4Sopenharmony_ci
1155da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_TAG_coarray_type, DW_TAG_generic_subrange,
1156da0c48c4Sopenharmony_ci	DW_TAG_dynamic_type, DW_TAG_call_site, DW_TAG_call_site_parameter,
1157da0c48c4Sopenharmony_ci	DW_TAG_skeleton_unit, DW_TAG_immutable_type. Add reserved comments
1158da0c48c4Sopenharmony_ci	for currently unused numbers.
1159da0c48c4Sopenharmony_ci
1160da0c48c4Sopenharmony_ci2017-07-25  Mark Wielaard  <mark@klomp.org>
1161da0c48c4Sopenharmony_ci
1162da0c48c4Sopenharmony_ci	* dwarf.h (DWARF attributes enum): Remove DW_AT_subscr_data,
1163da0c48c4Sopenharmony_ci	DW_AT_element_list and DW_AT_member. Add DWARF5 attribute constants.
1164da0c48c4Sopenharmony_ci	(DW_AT_subscr_data, DW_AT_element_list, DW_AT_member): New defines.
1165da0c48c4Sopenharmony_ci
1166da0c48c4Sopenharmony_ci2017-07-21  Mark Wielaard  <mark@klomp.org>
1167da0c48c4Sopenharmony_ci
1168da0c48c4Sopenharmony_ci	* dwarf_line_file.c: New file.
1169da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_line_file.c.
1170da0c48c4Sopenharmony_ci	* libdw.h (dwarf_line_file): New function declaration.
1171da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.170): New. Add dwarf_line_file.
1172da0c48c4Sopenharmony_ci
1173da0c48c4Sopenharmony_ci2017-02-17  Ulf Hermann  <ulf.hermann@qt.io>
1174da0c48c4Sopenharmony_ci
1175da0c48c4Sopenharmony_ci	* Makefile.am: Add libdw_so_LIBS to specify the archives libdw is is
1176da0c48c4Sopenharmony_ci	made of, libdw_so_DEPS for libraries it depends on (including
1177da0c48c4Sopenharmony_ci	libeu.a), libdw_so_LDLIBS to specify libraries libdw links against.
1178da0c48c4Sopenharmony_ci	(libdw.so$(EXEEXT)): Add $(libdw_so_LDLIBS), remove enumeration of
1179da0c48c4Sopenharmony_ci	library dependencies, use libdw_so_LIBS rather than relying on the
1180da0c48c4Sopenharmony_ci	order of dependencies specified, add -z,relro.
1181da0c48c4Sopenharmony_ci
1182da0c48c4Sopenharmony_ci2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>
1183da0c48c4Sopenharmony_ci
1184da0c48c4Sopenharmony_ci	* libdw.h: Remove attribute macro declarations and use
1185da0c48c4Sopenharmony_ci	__noreturn_attribute__ as defined in libelf.h.
1186da0c48c4Sopenharmony_ci
1187da0c48c4Sopenharmony_ci2017-04-20  Ulf Hermann  <ulf.hermann@qt.io>
1188da0c48c4Sopenharmony_ci
1189da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c: Include endian.h.
1190da0c48c4Sopenharmony_ci
1191da0c48c4Sopenharmony_ci2017-03-30  Mark Wielaard  <mjw@redhat.com>
1192da0c48c4Sopenharmony_ci
1193da0c48c4Sopenharmony_ci	* dwarf_peel_type.c (dwarf_peel_type): Call dwarf_attr_integrate on
1194da0c48c4Sopenharmony_ci	result.
1195da0c48c4Sopenharmony_ci
1196da0c48c4Sopenharmony_ci2016-10-22  Mark Wielaard  <mjw@redhat.com>
1197da0c48c4Sopenharmony_ci
1198da0c48c4Sopenharmony_ci	* dwarf.h: Correct spelling of DW_LANG_PLI. Add compatibility define.
1199da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (array_size): Use correct spelling of
1200da0c48c4Sopenharmony_ci	DW_LANG_PLI.
1201da0c48c4Sopenharmony_ci
1202da0c48c4Sopenharmony_ci2016-11-02  Mark Wielaard  <mjw@redhat.com>
1203da0c48c4Sopenharmony_ci
1204da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Add fallthrough comments.
1205da0c48c4Sopenharmony_ci	* encoded-value.h (encoded_value_size): Add explicit return instead
1206da0c48c4Sopenharmony_ci	of relying on fallthrough.
1207da0c48c4Sopenharmony_ci	* dwfl_report_elf.c (__libdwfl_elf_address_range): Add fallthrough
1208da0c48c4Sopenharmony_ci	comment.
1209da0c48c4Sopenharmony_ci
1210da0c48c4Sopenharmony_ci2016-10-11  Akihiko Odaki  <akihiko.odaki.4i@stu.hosei.ac.jp>
1211da0c48c4Sopenharmony_ci
1212da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c: Remove sys/param.h include, add system.h.
1213da0c48c4Sopenharmony_ci	* libdw_alloc.c: Likewise.
1214da0c48c4Sopenharmony_ci
1215da0c48c4Sopenharmony_ci2016-07-08  Mark Wielaard  <mjw@redhat.com>
1216da0c48c4Sopenharmony_ci
1217da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.167): New. Add dwelf_strtab_init,
1218da0c48c4Sopenharmony_ci	dwelf_strtab_add, dwelf_strtab_add_len, dwelf_strtab_finalize,
1219da0c48c4Sopenharmony_ci	dwelf_strent_off, dwelf_strent_str and dwelf_strtab_free.
1220da0c48c4Sopenharmony_ci
1221da0c48c4Sopenharmony_ci2016-02-13  Mark Wielaard  <mjw@redhat.com>
1222da0c48c4Sopenharmony_ci
1223da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Calculate ndirs first, then
1224da0c48c4Sopenharmony_ci	assign to ndirlist.
1225da0c48c4Sopenharmony_ci
1226da0c48c4Sopenharmony_ci2015-12-18  Mark Wielaard  <mjw@redhat.com>
1227da0c48c4Sopenharmony_ci
1228da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): Remove sectiondata_gzip_mask.
1229da0c48c4Sopenharmony_ci	(__libdw_free_zdata): Remove.
1230da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (inflate_section): Remove.
1231da0c48c4Sopenharmony_ci	(check_section): Remove __libdw_free_zdata calls. Use elf_compress
1232da0c48c4Sopenharmony_ci	and elf_compress_gnu to decompress if necessary.
1233da0c48c4Sopenharmony_ci	(valid_p): Remove __libdw_free_zdata calls.
1234da0c48c4Sopenharmony_ci	(scngrp_read): Use elf_compress if section is compressed. Remove
1235da0c48c4Sopenharmony_ci	__libdw_free_zdata calls.
1236da0c48c4Sopenharmony_ci	* dwarf_end.c (__libdw_free_zdata): Remove.
1237da0c48c4Sopenharmony_ci	(dwarf_end): Don't call __libdw_free_zdata.
1238da0c48c4Sopenharmony_ci
1239da0c48c4Sopenharmony_ci2015-10-28  Mark Wielaard  <mjw@redhat.com>
1240da0c48c4Sopenharmony_ci
1241da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.165): New. Add dwelf_scn_gnu_compressed_size.
1242da0c48c4Sopenharmony_ci
1243da0c48c4Sopenharmony_ci2015-12-02  Mark Wielaard  <mjw@redhat.com>
1244da0c48c4Sopenharmony_ci
1245da0c48c4Sopenharmony_ci	* fde.c (intern_fde): Don't leak duplicate FDEs.
1246da0c48c4Sopenharmony_ci
1247da0c48c4Sopenharmony_ci2015-12-01  Mark Wielaard  <mjw@redhat.com>
1248da0c48c4Sopenharmony_ci
1249da0c48c4Sopenharmony_ci	* fde.c (intern_fde): Don't intern an fde that doesn't cover a
1250da0c48c4Sopenharmony_ci	valid code range.
1251da0c48c4Sopenharmony_ci
1252da0c48c4Sopenharmony_ci2015-12-01  Mark Wielaard  <mjw@redhat.com>
1253da0c48c4Sopenharmony_ci
1254da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Call cu_free on fake_loc_cu if it exists.
1255da0c48c4Sopenharmony_ci
1256da0c48c4Sopenharmony_ci2015-10-14  Chih-Hung Hsieh  <chh@google.com>
1257da0c48c4Sopenharmony_ci
1258da0c48c4Sopenharmony_ci	* dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Move recursive
1259da0c48c4Sopenharmony_ci	functions 'add_bkpt', 'entrypc_bkpt', and 'search_range' to file scope.
1260da0c48c4Sopenharmony_ci
1261da0c48c4Sopenharmony_ci2015-10-14  Chih-Hung Hsieh  <chh@google.com>
1262da0c48c4Sopenharmony_ci
1263da0c48c4Sopenharmony_ci	* libdw_visit_scopes.c (__libdw_visit_scopes): Move recursive nested
1264da0c48c4Sopenharmony_ci	function 'walk_children' to file scope; inline 'recurse' at its call
1265da0c48c4Sopenharmony_ci	site.
1266da0c48c4Sopenharmony_ci
1267da0c48c4Sopenharmony_ci2015-10-19  Mark Wielaard  <mjw@redhat.com>
1268da0c48c4Sopenharmony_ci
1269da0c48c4Sopenharmony_ci	* frame-cache.c (__libdw_destroy_frame_cache): Call ebl_closebackend
1270da0c48c4Sopenharmony_ci	if necessary.
1271da0c48c4Sopenharmony_ci
1272da0c48c4Sopenharmony_ci2015-10-16  Dmitry V. Levin  <ldv@altlinux.org>
1273da0c48c4Sopenharmony_ci
1274da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Initialize state early.
1275da0c48c4Sopenharmony_ci
1276da0c48c4Sopenharmony_ci2015-10-13  Chih-Hung Hsieh  <chh@google.com>
1277da0c48c4Sopenharmony_ci
1278da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Move nested functions
1279da0c48c4Sopenharmony_ci	'advance_pc' and 'add_new_line' to file scope and keep many
1280da0c48c4Sopenharmony_ci	local state variables within one structure.
1281da0c48c4Sopenharmony_ci
1282da0c48c4Sopenharmony_ci2015-10-13  Chih-Hung Hsieh  <chh@google.com>
1283da0c48c4Sopenharmony_ci
1284da0c48c4Sopenharmony_ci	* dwarf_getscopevar.c (dwarf_getscopevar): Move nested
1285da0c48c4Sopenharmony_ci	function 'file_matches' to file scope.
1286da0c48c4Sopenharmony_ci
1287da0c48c4Sopenharmony_ci2015-10-16  Mark Wielaard  <mjw@redhat.com>
1288da0c48c4Sopenharmony_ci
1289da0c48c4Sopenharmony_ci	* Makefile.am (libdw.so): Add -lz.
1290da0c48c4Sopenharmony_ci
1291da0c48c4Sopenharmony_ci2015-10-14  Chih-Hung Hsieh  <chh@google.com>
1292da0c48c4Sopenharmony_ci
1293da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Move nested functions 'enough_registers'
1294da0c48c4Sopenharmony_ci	and 'require_cfa_offset' to file scope.
1295da0c48c4Sopenharmony_ci
1296da0c48c4Sopenharmony_ci2015-10-09  Josh Stone  <jistone@redhat.com>
1297da0c48c4Sopenharmony_ci
1298da0c48c4Sopenharmony_ci	* dwarf_begin.c (dwarf_begin): Replace stat64 and fstat64 with stat
1299da0c48c4Sopenharmony_ci	and fstat.
1300da0c48c4Sopenharmony_ci
1301da0c48c4Sopenharmony_ci2015-10-05  Josh Stone  <jistone@redhat.com>
1302da0c48c4Sopenharmony_ci
1303da0c48c4Sopenharmony_ci	* Makefile.am (libdw.so): Add AM_V_CCLD and AM_V_at silencers.
1304da0c48c4Sopenharmony_ci
1305da0c48c4Sopenharmony_ci2015-09-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
1306da0c48c4Sopenharmony_ci
1307da0c48c4Sopenharmony_ci	* Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid
1308da0c48c4Sopenharmony_ci	relocation overflows in some platforms.
1309da0c48c4Sopenharmony_ci
1310da0c48c4Sopenharmony_ci2015-09-23  Mark Wielaard  <mjw@redhat.com>
1311da0c48c4Sopenharmony_ci
1312da0c48c4Sopenharmony_ci	* dwarf_error.c (__libdw_seterrno): Mark as internal_function.
1313da0c48c4Sopenharmony_ci	* dwarf_formref.c (__libdw_formref): Likewise.
1314da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_findcu): Likewise.
1315da0c48c4Sopenharmony_ci	* libdw_visit_scopes.c (__libdw_visit_scopes): Likewise.
1316da0c48c4Sopenharmony_ci
1317da0c48c4Sopenharmony_ci2015-09-22  Mark Wielaard  <mjw@redhat.com>
1318da0c48c4Sopenharmony_ci
1319da0c48c4Sopenharmony_ci	* *.c: Remove old-style function definitions.
1320da0c48c4Sopenharmony_ci
1321da0c48c4Sopenharmony_ci2015-09-15  Mark Wielaard  <mjw@redhat.com>
1322da0c48c4Sopenharmony_ci
1323da0c48c4Sopenharmony_ci	* dwarf_peel_type.c (dwarf_peel_type): Don't reassign result pointer.
1324da0c48c4Sopenharmony_ci
1325da0c48c4Sopenharmony_ci2015-09-09  Chih-Hung Hsieh  <chh@google.com>
1326da0c48c4Sopenharmony_ci
1327da0c48c4Sopenharmony_ci	* dwarf_macro_getsrcfiles.c (dwarf_macro_getsrcfiles): Remove
1328da0c48c4Sopenharmony_ci	redundant NULL tests on parameters declared with __nonnull_attribute__.
1329da0c48c4Sopenharmony_ci	* dwarf_siblingof.c (dwarf_siblingof): Likewise.
1330da0c48c4Sopenharmony_ci	* libdw_visit_scopes.c (__libdw_visit_scopes): Likewise.
1331da0c48c4Sopenharmony_ci
1332da0c48c4Sopenharmony_ci2015-09-04  Chih-Hung Hsieh  <chh@google.com>
1333da0c48c4Sopenharmony_ci	    Mark Wielaard  <mjw@redhat.com>
1334da0c48c4Sopenharmony_ci
1335da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (getlocations_addr): Replace K&R function
1336da0c48c4Sopenharmony_ci	definition with ansi-C definition and add const qualifier to
1337da0c48c4Sopenharmony_ci	locs argument.
1338da0c48c4Sopenharmony_ci
1339da0c48c4Sopenharmony_ci2015-09-04  Chih-Hung Hsieh  <chh@google.com>
1340da0c48c4Sopenharmony_ci
1341da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Replace K&R function
1342da0c48c4Sopenharmony_ci	definition with ansi-C definitions.
1343da0c48c4Sopenharmony_ci	(__libdw_findcu): Likewise.
1344da0c48c4Sopenharmony_ci
1345da0c48c4Sopenharmony_ci2015-08-25  Mark Wielaard  <mjw@redhat.com>
1346da0c48c4Sopenharmony_ci
1347da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_LANG_Haskell.
1348da0c48c4Sopenharmony_ci
1349da0c48c4Sopenharmony_ci2015-06-18  Mark Wielaard  <mjw@redhat.com>
1350da0c48c4Sopenharmony_ci
1351da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_begin_elf): Assert page size is big enough
1352da0c48c4Sopenharmony_ci	to hold a Dwarf.
1353da0c48c4Sopenharmony_ci
1354da0c48c4Sopenharmony_ci2015-06-18  Mark Wielaard  <mjw@redhat.com>
1355da0c48c4Sopenharmony_ci
1356da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c (get_offsets): Always free mem on error.
1357da0c48c4Sopenharmony_ci
1358da0c48c4Sopenharmony_ci2015-06-18  Mark Wielaard  <mjw@redhat.com>
1359da0c48c4Sopenharmony_ci
1360da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (get_macinfo_table): Return NULL when
1361da0c48c4Sopenharmony_ci	dwarf_formudata reports an error.
1362da0c48c4Sopenharmony_ci	(get_table_for_offset): Likewise.
1363da0c48c4Sopenharmony_ci
1364da0c48c4Sopenharmony_ci2015-06-08  Mark Wielaard  <mjw@redhat.com>
1365da0c48c4Sopenharmony_ci
1366da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Initialize dirarray early.
1367da0c48c4Sopenharmony_ci
1368da0c48c4Sopenharmony_ci2015-06-06  Mark Wielaard  <mjw@redhat.com>
1369da0c48c4Sopenharmony_ci
1370da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Initialize filelist early.
1371da0c48c4Sopenharmony_ci
1372da0c48c4Sopenharmony_ci2015-05-27  Mark Wielaard  <mjw@redhat.com>
1373da0c48c4Sopenharmony_ci
1374da0c48c4Sopenharmony_ci	* encoded-value.h (read_encoded_value): Check data d_size contains
1375da0c48c4Sopenharmony_ci	at least enough data to hold a pointer for DW_EH_PE_indirect.
1376da0c48c4Sopenharmony_ci
1377da0c48c4Sopenharmony_ci2015-05-22  Mark Wielaard  <mjw@redhat.com>
1378da0c48c4Sopenharmony_ci
1379da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Limit stack usage of lines
1380da0c48c4Sopenharmony_ci	with MAX_STACK_LINES, files with MAX_STACK_LINES and dirs with
1381da0c48c4Sopenharmony_ci	MAX_STACK_DIRS. Calculate number of dirs needed first, then
1382da0c48c4Sopenharmony_ci	create dirarray directly, without needing the next field. Free
1383da0c48c4Sopenharmony_ci	not stack allocated lines and files at the end.
1384da0c48c4Sopenharmony_ci
1385da0c48c4Sopenharmony_ci2015-05-19  Mark Wielaard <mjw@redhat.com>
1386da0c48c4Sopenharmony_ci
1387da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Create a stack
1388da0c48c4Sopenharmony_ci	allocated array to hold locs. Allocate locs bigger than the array
1389da0c48c4Sopenharmony_ci	with malloc and free them when done.
1390da0c48c4Sopenharmony_ci
1391da0c48c4Sopenharmony_ci2015-05-11  Jonathan Lebon  <jlebon@redhat.com>
1392da0c48c4Sopenharmony_ci
1393da0c48c4Sopenharmony_ci	* libdwP.h (DWARF_E_COMPRESSED_ERROR): New enumerator.
1394da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add DWARF_E_COMPRESSED_ERROR message.
1395da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (inflate_section): New static function, lifted
1396da0c48c4Sopenharmony_ci	from...
1397da0c48c4Sopenharmony_ci	(check_section): ... here. Call inflate_section, set libdw errno to
1398da0c48c4Sopenharmony_ci	DWARF_E_COMPRESSED_ERROR if .debug_info section couldn't be inflated.
1399da0c48c4Sopenharmony_ci
1400da0c48c4Sopenharmony_ci2015-05-11  Jonathan Lebon  <jlebon@redhat.com>
1401da0c48c4Sopenharmony_ci
1402da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Add compressed flag. Always
1403da0c48c4Sopenharmony_ci	check for .zdebug sections. Only wrap decompression in #if USE_ZLIB.
1404da0c48c4Sopenharmony_ci
1405da0c48c4Sopenharmony_ci2015-05-06  Mark Wielaard  <mjw@redhat.com>
1406da0c48c4Sopenharmony_ci
1407da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Use an int64_t to store and
1408da0c48c4Sopenharmony_ci	check the line number.
1409da0c48c4Sopenharmony_ci
1410da0c48c4Sopenharmony_ci2015-05-05  Mark Wielaard  <mjw@redhat.com>
1411da0c48c4Sopenharmony_ci
1412da0c48c4Sopenharmony_ci	* dwarf_getaranges.c (dwarf_getaranges): Check there is enough data
1413da0c48c4Sopenharmony_ci	left before reading values.
1414da0c48c4Sopenharmony_ci
1415da0c48c4Sopenharmony_ci2015-05-04  Anthony G. Basile  <blueness@gentoo.org>
1416da0c48c4Sopenharmony_ci
1417da0c48c4Sopenharmony_ci	* Makefile.am (libdw_so_SOURCES): Append $(argp_LDADD) to link
1418da0c48c4Sopenharmony_ci	command.
1419da0c48c4Sopenharmony_ci
1420da0c48c4Sopenharmony_ci2015-04-22  Mark Wielaard  <mjw@redhat.com>
1421da0c48c4Sopenharmony_ci
1422da0c48c4Sopenharmony_ci	* memory-access.h (__libdw_max_len_leb128): Take type_len as argument.
1423da0c48c4Sopenharmony_ci	(__libdw_max_len_uleb128): New function.
1424da0c48c4Sopenharmony_ci	(__libdw_max_len_sleb128): Likewise.
1425da0c48c4Sopenharmony_ci	(__libdw_get_uleb128): Use __libdw_max_len_uleb128.
1426da0c48c4Sopenharmony_ci	(__libdw_get_sleb128): Use __libdw_max_len_sleb128.
1427da0c48c4Sopenharmony_ci
1428da0c48c4Sopenharmony_ci2015-04-21  Mark Wielaard  <mjw@redhat.com>
1429da0c48c4Sopenharmony_ci
1430da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (read_macros): Allocate attributes dynamically
1431da0c48c4Sopenharmony_ci	when there are more than 8.
1432da0c48c4Sopenharmony_ci
1433da0c48c4Sopenharmony_ci2015-04-01  Petr Machata  <pmachata@redhat.com>
1434da0c48c4Sopenharmony_ci
1435da0c48c4Sopenharmony_ci	* libdwP.h (DWARF_E_NOT_CUDIE): New enumerator.
1436da0c48c4Sopenharmony_ci	(is_cudie): New function.
1437da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add message for DWARF_E_NOT_CUDIE.
1438da0c48c4Sopenharmony_ci	* dwarf_getsrcfiles.c (dwarf_getsrcfiles): Call is_cudie instead
1439da0c48c4Sopenharmony_ci	of white-listing valid tags.
1440da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
1441da0c48c4Sopenharmony_ci
1442da0c48c4Sopenharmony_ci2015-03-18  Petr Machata  <pmachata@redhat.com>
1443da0c48c4Sopenharmony_ci
1444da0c48c4Sopenharmony_ci	* Makefile.am (pkginclude_HEADERS): Add known-dwarf.h.
1445da0c48c4Sopenharmony_ci	(EXTRA_DIST): Remove known-dwarf.h.
1446da0c48c4Sopenharmony_ci
1447da0c48c4Sopenharmony_ci2015-02-09  Mark Wielaard  <mjw@redhat.com>
1448da0c48c4Sopenharmony_ci
1449da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_LANG_Fortran03 and DW_LANG_Fortran08.
1450da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (array_size): Recognize array lower bound
1451da0c48c4Sopenharmony_ci	for new Fortran language codes is 1.
1452da0c48c4Sopenharmony_ci
1453da0c48c4Sopenharmony_ci2015-02-09  Mark Wielaard  <mjw@redhat.com>
1454da0c48c4Sopenharmony_ci
1455da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_TAG_atomic_type.
1456da0c48c4Sopenharmony_ci	* libdw.h (dwarf_peel_type): Document DW_TAG_atomic_type.
1457da0c48c4Sopenharmony_ci	* dwarf_peel_type.c (dwarf_peel_type): Handle DW_TAG_atomic_type.
1458da0c48c4Sopenharmony_ci
1459da0c48c4Sopenharmony_ci2015-02-11  Josh Stone  <jistone@redhat.com>
1460da0c48c4Sopenharmony_ci
1461da0c48c4Sopenharmony_ci	* encoded-value.h (read_encoded_value): Initialize value.
1462da0c48c4Sopenharmony_ci
1463da0c48c4Sopenharmony_ci2015-02-11  Petr Machata  <pmachata@redhat.com>
1464da0c48c4Sopenharmony_ci
1465da0c48c4Sopenharmony_ci	* dwarf_ranges.c (dwarf_ranges): Do not bail out when neither
1466da0c48c4Sopenharmony_ci	DW_AT_entry_pc nor DW_AT_low_pc are available.  Instead remember
1467da0c48c4Sopenharmony_ci	the fact in *BASEP and bail out later if it hasn't been updated by
1468da0c48c4Sopenharmony_ci	__libdw_read_begin_end_pair_inc.
1469da0c48c4Sopenharmony_ci
1470da0c48c4Sopenharmony_ci2014-12-24  Mark Wielaard  <mjw@redhat.com>
1471da0c48c4Sopenharmony_ci
1472da0c48c4Sopenharmony_ci	* dwarf_getsrc_die.c (dwarf_getsrc_die): Return the last line record
1473da0c48c4Sopenharmony_ci	smaller than or equal to addr, rather than returning immediately on
1474da0c48c4Sopenharmony_ci	a match.
1475da0c48c4Sopenharmony_ci
1476da0c48c4Sopenharmony_ci2015-01-07  Mark Wielaard  <mjw@redhat.com>
1477da0c48c4Sopenharmony_ci
1478da0c48c4Sopenharmony_ci	* cfi.h (struct Dwarf_CFI_s): Add search_table_len.
1479da0c48c4Sopenharmony_ci	* dwarf_getcfi_elf.c (getcfi_gnu_eh_frame): Check there is enough
1480da0c48c4Sopenharmony_ci	room in the search table for all entries. Store search_table_len.
1481da0c48c4Sopenharmony_ci	(getcfi_scn_eh_frame): Likewise.
1482da0c48c4Sopenharmony_ci	* encoded-value.h (encoded_value_size): Don't abort, return zero.
1483da0c48c4Sopenharmony_ci	(__libdw_cfi_read_address_inc): Check there is enough room to read
1484da0c48c4Sopenharmony_ci	values. Pass other byte order to read functions.
1485da0c48c4Sopenharmony_ci	(read_encoded_value): Check encoded_value_size. Don't abort, but
1486da0c48c4Sopenharmony_ci	set libdw errno and report failure. Check there is enough room to
1487da0c48c4Sopenharmony_ci	read values.
1488da0c48c4Sopenharmony_ci	* fde.c (binary_search_fde): Check encoded value size. Add hdr
1489da0c48c4Sopenharmony_ci	data buf and size to dummy_cfi.
1490da0c48c4Sopenharmony_ci
1491da0c48c4Sopenharmony_ci2015-01-04  Mark Wielaard  <mjw@redhat.com>
1492da0c48c4Sopenharmony_ci
1493da0c48c4Sopenharmony_ci	* dwarf_siblingof.c (dwarf_siblingof): Check sibling attribute
1494da0c48c4Sopenharmony_ci	is after current DIE.
1495da0c48c4Sopenharmony_ci
1496da0c48c4Sopenharmony_ci2015-01-04  Mark Wielaard  <mjw@redhat.com>
1497da0c48c4Sopenharmony_ci
1498da0c48c4Sopenharmony_ci	* cfi.c (enough_registers): Check reg < INT32_MAX / sizeof
1499da0c48c4Sopenharmony_ci	(dwarf_frame_register).
1500da0c48c4Sopenharmony_ci
1501da0c48c4Sopenharmony_ci2015-01-02  Mark Wielaard  <mjw@redhat.com>
1502da0c48c4Sopenharmony_ci
1503da0c48c4Sopenharmony_ci	* dwarf_getcfi_elf.c (parse_eh_frame_hdr): Add size check.
1504da0c48c4Sopenharmony_ci	(getcfi_gnu_eh_frame): Remove size check. Check d_buf is not NULL.
1505da0c48c4Sopenharmony_ci	(getcfi_scn_eh_frame): Check d_buf is not NULL.
1506da0c48c4Sopenharmony_ci
1507da0c48c4Sopenharmony_ci2015-01-02  Mark Wielaard  <mjw@redhat.com>
1508da0c48c4Sopenharmony_ci
1509da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Check dbg is not
1510da0c48c4Sopenharmony_ci	NULL for DW_OP_call_ref and DW_OP_GNU_implicit_pointer. For
1511da0c48c4Sopenharmony_ci	DW_OP_addr if dbg is NULL then read argument directly.
1512da0c48c4Sopenharmony_ci
1513da0c48c4Sopenharmony_ci2015-01-14  Jason P. Leasure <jpleasu@super.org>
1514da0c48c4Sopenharmony_ci
1515da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Offset is cu->type_offset
1516da0c48c4Sopenharmony_ci	plus cu->start.
1517da0c48c4Sopenharmony_ci
1518da0c48c4Sopenharmony_ci2014-12-27  Mark Wielaard  <mjw@redhat.com>
1519da0c48c4Sopenharmony_ci
1520da0c48c4Sopenharmony_ci	* dwarf_siblingof.c (dwarf_siblingof): Check sibling attribute offset
1521da0c48c4Sopenharmony_ci	still falls inside CU data.
1522da0c48c4Sopenharmony_ci
1523da0c48c4Sopenharmony_ci2015-01-11  Mark Wielaard  <mjw@redhat.com>
1524da0c48c4Sopenharmony_ci
1525da0c48c4Sopenharmony_ci	* dwarf_func_inline.c (dwarf_func_inline_instances): Call
1526da0c48c4Sopenharmony_ci	__libdw_visit_scopes with NULL imports.
1527da0c48c4Sopenharmony_ci	* dwarf_getfuncs.c (dwarf_getfuncs): Likewise.
1528da0c48c4Sopenharmony_ci	* dwarf_getscopes.c (pc_record): Likewise.
1529da0c48c4Sopenharmony_ci	(dwarf_getscopes): Likewise.
1530da0c48c4Sopenharmony_ci	* dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
1531da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_visit_scopes): Add imports argument.
1532da0c48c4Sopenharmony_ci	* libdw_visit_scopes.c (__libdw_visit_scopes): Likewise. Add new
1533da0c48c4Sopenharmony_ci	function imports_contains. Push and pop imports around walk_children
1534da0c48c4Sopenharmony_ci	when processing DW_TAG_imported_unit.
1535da0c48c4Sopenharmony_ci
1536da0c48c4Sopenharmony_ci2014-12-18  Ulrich Drepper  <drepper@gmail.com>
1537da0c48c4Sopenharmony_ci
1538da0c48c4Sopenharmony_ci	* Makefile.am: Suppress output of textrel_check command.
1539da0c48c4Sopenharmony_ci
1540da0c48c4Sopenharmony_ci2014-12-16  Mark Wielaard  <mjw@redhat.com>
1541da0c48c4Sopenharmony_ci
1542da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Check diridx is valid under
1543da0c48c4Sopenharmony_ci	DW_LNE_define_file.
1544da0c48c4Sopenharmony_ci
1545da0c48c4Sopenharmony_ci2014-12-16  Mark Wielaard  <mjw@redhat.com>
1546da0c48c4Sopenharmony_ci
1547da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c (dwarf_getpubnames): Make sure there is enough
1548da0c48c4Sopenharmony_ci	space to read die offset.
1549da0c48c4Sopenharmony_ci
1550da0c48c4Sopenharmony_ci2014-12-16  Mark Wielaard  <mjw@redhat.com>
1551da0c48c4Sopenharmony_ci
1552da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Correct overflow check for
1553da0c48c4Sopenharmony_ci	unit_length.
1554da0c48c4Sopenharmony_ci
1555da0c48c4Sopenharmony_ci2014-12-15  Mark Wielaard  <mjw@redhat.com>
1556da0c48c4Sopenharmony_ci
1557da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c (get_offsets): Make sure whole unit fall inside
1558da0c48c4Sopenharmony_ci	section data. Set error to DWARF_E_NO_ENTRY if cnt is zero.
1559da0c48c4Sopenharmony_ci	(dwarf_getpubnames): Make sure section data contains string zero
1560da0c48c4Sopenharmony_ci	terminator.
1561da0c48c4Sopenharmony_ci
1562da0c48c4Sopenharmony_ci2014-12-16  Mark Wielaard  <mjw@redhat.com>
1563da0c48c4Sopenharmony_ci
1564da0c48c4Sopenharmony_ci	* memory-access.h (__libdw_get_sleb128): Unroll the first step to help
1565da0c48c4Sopenharmony_ci	the compiler optimize for the common single-byte case.
1566da0c48c4Sopenharmony_ci
1567da0c48c4Sopenharmony_ci2014-12-15  Josh Stone  <jistone@redhat.com>
1568da0c48c4Sopenharmony_ci
1569da0c48c4Sopenharmony_ci	* memory-access.h (__libdw_max_len_leb128): New.
1570da0c48c4Sopenharmony_ci	(__libdw_get_uleb128): Use __libdw_max_len_leb128.
1571da0c48c4Sopenharmony_ci	(__libdw_get_sleb128): Likewise.
1572da0c48c4Sopenharmony_ci
1573da0c48c4Sopenharmony_ci2014-12-14  Mark Wielaard  <mjw@redhat.com>
1574da0c48c4Sopenharmony_ci
1575da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Add program bounds checks.
1576da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr): Add attrp bounds checks.
1577da0c48c4Sopenharmony_ci	* dwarf_formblock.c (dwarf_formblock): Call get_uleb128 with endp.
1578da0c48c4Sopenharmony_ci	* dwarf_formref.c (__libdw_formref): Add datap bounds checks.
1579da0c48c4Sopenharmony_ci	* dwarf_formsdata.c (dwarf_formsdata): Likewise.
1580da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Likewise.
1581da0c48c4Sopenharmony_ci	* dwarf_frame_register.c (dwarf_frame_register): Call get_uleb128
1582da0c48c4Sopenharmony_ci	with end of data buf.
1583da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Add abbrevp bounds checks.
1584da0c48c4Sopenharmony_ci	* dwarf_getabbrevattr.c (dwarf_getabbrevattr): Assume get_uleb128
1585da0c48c4Sopenharmony_ci	call gets enough data.
1586da0c48c4Sopenharmony_ci	* dwarf_getattrs,c (dwarf_getattrs): Call get_uleb128 with endp.
1587da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (store_implicit_value): Call get_uleb128
1588da0c48c4Sopenharmony_ci	with enough data.
1589da0c48c4Sopenharmony_ci	(__libdw_intern_expression): Call get_uleb128/get_sleb128 with
1590da0c48c4Sopenharmony_ci	end_data.
1591da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (get_table_for_offset): Add nforms bounds check.
1592da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Bounds check linep and call
1593da0c48c4Sopenharmony_ci	get_uleb128 with lineendp.
1594da0c48c4Sopenharmony_ci	* dwarf_hasattr.c (dwarf_hasattr): Bounds check attrp and call
1595da0c48c4Sopenharmony_ci	get_uleb128 with endp.
1596da0c48c4Sopenharmony_ci	* dwarf_next_cfi.c (dwarf_next_cfi): Bounds check bytes and call
1597da0c48c4Sopenharmony_ci	get_uleb128/get_sleb128 with limit.
1598da0c48c4Sopenharmony_ci	* encoded-value.h (read_encoded_value): Assume get_uleb128 and
1599da0c48c4Sopenharmony_ci	get_sleb128 get called with enough data.
1600da0c48c4Sopenharmony_ci	* fde.c (intern_fde): Call get_uleb128 with instructions_end.
1601da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_dieabbrev): Call get_uleb128 with die->cu->endp.
1602da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_compute_len): Call get_uleb128 with
1603da0c48c4Sopenharmony_ci	endp.
1604da0c48c4Sopenharmony_ci	* memory-access.h (__libdw_get_uleb128): Take an extra endp.
1605da0c48c4Sopenharmony_ci	Don't call get_uleb128_step if out of data.
1606da0c48c4Sopenharmony_ci	(__libdw_get_sleb128): Likewise for get_sleb128_step.
1607da0c48c4Sopenharmony_ci
1608da0c48c4Sopenharmony_ci2014-12-12  Mark Wielaard  <mjw@redhat.com>
1609da0c48c4Sopenharmony_ci
1610da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): Add fake_loc_cu.
1611da0c48c4Sopenharmony_ci	(cu_data): Removed.
1612da0c48c4Sopenharmony_ci	(DIE_OFFSET_FROM_CU_OFFSET): Don't use cu_data, use cu_sec_idx.
1613da0c48c4Sopenharmony_ci	(__libdw_form_val_compute_len): Drop dbg and endp arguments.
1614da0c48c4Sopenharmony_ci	(__libdw_form_val_len): Likewise.
1615da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_compute_len): Likewise.
1616da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Don't use cu_data, use
1617da0c48c4Sopenharmony_ci	the already found data buffer directly.
1618da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (valid_p): Setup fake_loc_cu.
1619da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Free fake_loc_cu.
1620da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr): Call __libdw_form_val_len with
1621da0c48c4Sopenharmony_ci	just cu.
1622da0c48c4Sopenharmony_ci	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
1623da0c48c4Sopenharmony_ci	* dwarf_formblock.c (dwarf_formblock): Add bounds checking.
1624da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c (attr_form_cu): New function.
1625da0c48c4Sopenharmony_ci	(dwarf_getlocation_attr): Use attr_form_cu to set result->cu.
1626da0c48c4Sopenharmony_ci	(getlocation): Handle empty blocks immediately.
1627da0c48c4Sopenharmony_ci	* dwarf_getlocation_implicit_pointer.c (empty_cu): New static var.
1628da0c48c4Sopenharmony_ci	(__libdw_empty_loc_attr): Drop cu argument, use empty_cu.
1629da0c48c4Sopenharmony_ci	(dwarf_getlocation_implicit_pointer): Call __libdw_empty_loc_attr with
1630da0c48c4Sopenharmony_ci	one argument.
1631da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (read_macros): Also setup startp and endp for
1632da0c48c4Sopenharmony_ci	fake_cu. Call __libdw_form_val_len with just fake_cu.
1633da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Don't use cu_data, get
1634da0c48c4Sopenharmony_ci	datap and size directly from cu startp and endp.
1635da0c48c4Sopenharmony_ci
1636da0c48c4Sopenharmony_ci2014-12-11  Mark Wielaard  <mjw@redhat.com>
1637da0c48c4Sopenharmony_ci
1638da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Sanity check offset.
1639da0c48c4Sopenharmony_ci
1640da0c48c4Sopenharmony_ci2014-12-13  Mark Wielaard  <mjw@redhat.com>
1641da0c48c4Sopenharmony_ci
1642da0c48c4Sopenharmony_ci	* dwarf_getaranges.c (compare_aranges): Make sure Dwarf_Addr
1643da0c48c4Sopenharmony_ci	difference doesn't wrap around before returning as int.
1644da0c48c4Sopenharmony_ci
1645da0c48c4Sopenharmony_ci2014-12-11  Josh Stone  <jistone@redhat.com>
1646da0c48c4Sopenharmony_ci
1647da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (struct linelist): Add sequence.
1648da0c48c4Sopenharmony_ci	(compare_lines): Take linelists, and break ties by sequence.
1649da0c48c4Sopenharmony_ci	(read_srclines): Use linelists for sorting.
1650da0c48c4Sopenharmony_ci	(read_srclines::add_new_line): Set sequence.
1651da0c48c4Sopenharmony_ci
1652da0c48c4Sopenharmony_ci2014-12-10  Josh Stone  <jistone@redhat.com>
1653da0c48c4Sopenharmony_ci
1654da0c48c4Sopenharmony_ci	* libdwP.h (Dwarf_CU): Add startp and endp boundaries.
1655da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Set startp and endp.
1656da0c48c4Sopenharmony_ci	* dwarf_child.c (dwarf_child): Use cu->endp.
1657da0c48c4Sopenharmony_ci	* dwarf_cuoffset.c (dwarf_cuoffset): Use cu->startp.
1658da0c48c4Sopenharmony_ci	* dwarf_dieoffset.c (dwarf_dieoffset): Use cu->startp.
1659da0c48c4Sopenharmony_ci	* dwarf_siblingof.c (dwarf_siblingof): Use both.
1660da0c48c4Sopenharmony_ci
1661da0c48c4Sopenharmony_ci2014-12-10  Josh Stone  <jistone@redhat.com>
1662da0c48c4Sopenharmony_ci
1663da0c48c4Sopenharmony_ci	* dwarf_hasattr.c (dwarf_hasattr): Just walk abbrev for presence.
1664da0c48c4Sopenharmony_ci
1665da0c48c4Sopenharmony_ci2014-12-10  Josh Stone  <jistone@redhat.com>
1666da0c48c4Sopenharmony_ci
1667da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_dieabbrev): New die->abbrev lookup function.
1668da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr, dwarf_child): Use it.
1669da0c48c4Sopenharmony_ci	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
1670da0c48c4Sopenharmony_ci	* dwarf_haschildren.c (dwarf_haschildren): Likewise.
1671da0c48c4Sopenharmony_ci	* dwarf_tag.c (dwarf_tag): Likewise.
1672da0c48c4Sopenharmony_ci
1673da0c48c4Sopenharmony_ci2014-12-04  Mark Wielaard  <mjw@redhat.com>
1674da0c48c4Sopenharmony_ci
1675da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_form_val_compute_len): Add endp argument.
1676da0c48c4Sopenharmony_ci	(__libdw_form_val_len): Likewise and check len doesn't overflow.
1677da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_compute_len): Likewise.
1678da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr): Call __libdw_form_val_len
1679da0c48c4Sopenharmony_ci	with endp.
1680da0c48c4Sopenharmony_ci	* dwarf_getattrs.c (dwarf_getattrs): Likewise.
1681da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (read_macros): Likewise and check for errors.
1682da0c48c4Sopenharmony_ci
1683da0c48c4Sopenharmony_ci2014-12-02  Petr Machata  <pmachata@redhat.com>
1684da0c48c4Sopenharmony_ci
1685da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (token_from_offset, offset_from_token): New
1686da0c48c4Sopenharmony_ci	helper functions.
1687da0c48c4Sopenharmony_ci	(do_dwarf_getmacros_die): Merge into dwarf_getmacros.
1688da0c48c4Sopenharmony_ci	* libdw.h (DWARF_GETMACROS_START): New macro.
1689da0c48c4Sopenharmony_ci
1690da0c48c4Sopenharmony_ci2014-11-27  Mark Wielaard  <mjw@redhat.com>
1691da0c48c4Sopenharmony_ci
1692da0c48c4Sopenharmony_ci	* Makefile.am (libdw.so): Use textrel_check.
1693da0c48c4Sopenharmony_ci
1694da0c48c4Sopenharmony_ci2014-11-27  Mark Wielaard  <mjw@redhat.com>
1695da0c48c4Sopenharmony_ci
1696da0c48c4Sopenharmony_ci	* dwarf_getcfi_elf.c (getcfi_gnu_eh_frame): Initialize
1697da0c48c4Sopenharmony_ci	search_table_entries and search_table_encoding.
1698da0c48c4Sopenharmony_ci
1699da0c48c4Sopenharmony_ci2014-11-24  Mark Wielaard  <mjw@redhat.com>
1700da0c48c4Sopenharmony_ci
1701da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Check line_range is not zero
1702da0c48c4Sopenharmony_ci	before usage.
1703da0c48c4Sopenharmony_ci
1704da0c48c4Sopenharmony_ci2014-11-23  Mark Wielaard  <mjw@redhat.com>
1705da0c48c4Sopenharmony_ci
1706da0c48c4Sopenharmony_ci	* dwarf_attr.c (dwarf_attr): Check __libdw_find_attr return value.
1707da0c48c4Sopenharmony_ci	* dwarf_hasattr.c (dwarf_hasattr): Likewise.
1708da0c48c4Sopenharmony_ci	* dwarf_siblingof.c (dwarf_siblingof): Likewise.
1709da0c48c4Sopenharmony_ci
1710da0c48c4Sopenharmony_ci2014-11-23  Mark Wielaard  <mjw@redhat.com>
1711da0c48c4Sopenharmony_ci
1712da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Don't assert on bad DWARF.
1713da0c48c4Sopenharmony_ci	Set libdw errno and return NULL.
1714da0c48c4Sopenharmony_ci
1715da0c48c4Sopenharmony_ci2014-11-24  Mark Wielaard  <mjw@redhat.com>
1716da0c48c4Sopenharmony_ci
1717da0c48c4Sopenharmony_ci	* dwarf.h (DW_LANG_C_plus_plus_11): Added.
1718da0c48c4Sopenharmony_ci	(DW_LANG_C11): Likewise.
1719da0c48c4Sopenharmony_ci	(DW_LANG_C_plus_plus_14): Likewise.
1720da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (array_size): Handle DW_LANG_C11,
1721da0c48c4Sopenharmony_ci	DW_LANG_C_plus_plus_11, DW_LANG_C_plus_plus_14 and DW_LANG_Go
1722da0c48c4Sopenharmony_ci	lower bound.
1723da0c48c4Sopenharmony_ci	* dwarf_getfuncs.c (dwarf_getfuncs): Set c_cu to true for
1724da0c48c4Sopenharmony_ci	DW_LANG_C11.
1725da0c48c4Sopenharmony_ci
1726da0c48c4Sopenharmony_ci2014-11-26  Mark Wielaard  <mjw@redhat.com>
1727da0c48c4Sopenharmony_ci
1728da0c48c4Sopenharmony_ci	* dwarf.h (DW_AT_noreturn): Added.
1729da0c48c4Sopenharmony_ci
1730da0c48c4Sopenharmony_ci2014-11-11  Mark Wielaard  <mjw@redhat.com>
1731da0c48c4Sopenharmony_ci
1732da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): Do address_size comparison
1733da0c48c4Sopenharmony_ci	explicitly as uint8_t.
1734da0c48c4Sopenharmony_ci	(__libdw_getsrclines): Add internal_function to declaration.
1735da0c48c4Sopenharmony_ci
1736da0c48c4Sopenharmony_ci2014-09-10  Petr Machata  <pmachata@redhat.com>
1737da0c48c4Sopenharmony_ci
1738da0c48c4Sopenharmony_ci	* dwarf_macro_getparamcnt.c: New file.
1739da0c48c4Sopenharmony_ci	* dwarf_macro_param.c: New file.
1740da0c48c4Sopenharmony_ci	* dwarf_macro_getsrcfiles.c: New file.
1741da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add the new files.
1742da0c48c4Sopenharmony_ci	* libdwP.h (struct files_lines_s): New structure.
1743da0c48c4Sopenharmony_ci	(DWARF_E_INVALID_OPCODE): New enumerator.
1744da0c48c4Sopenharmony_ci	(struct Dwarf): New fields macro_ops, files_lines.
1745da0c48c4Sopenharmony_ci	(Dwarf_Macro_Op_Proto, Dwarf_Macro_Op_Table): New structures for
1746da0c48c4Sopenharmony_ci	keeping macro opcode prototypes in.
1747da0c48c4Sopenharmony_ci	(Dwarf_Macro_s): Redefine from scratch.
1748da0c48c4Sopenharmony_ci	(__libdw_getsrclines, __libdw_getcompdir, libdw_macro_nforms): New
1749da0c48c4Sopenharmony_ci	internal interfaces.
1750da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add a message for
1751da0c48c4Sopenharmony_ci	DWARF_E_INVALID_OPCODE.
1752da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Destroy struct Dwarf.macro_ops and
1753da0c48c4Sopenharmony_ci	files_lines.
1754da0c48c4Sopenharmony_ci	* libdw.h (dwarf_getmacros_off, dwarf_macro_getparamcnt)
1755da0c48c4Sopenharmony_ci	(dwarf_macro_getsrcfiles, dwarf_macro_param): New public
1756da0c48c4Sopenharmony_ci	interfaces.
1757da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (dwarf_getmacros_off): New function,
1758da0c48c4Sopenharmony_ci	(get_offset_from, macro_op_compare, build_table)
1759da0c48c4Sopenharmony_ci	(init_macinfo_table, get_macinfo_table, get_table_for_offset)
1760da0c48c4Sopenharmony_ci	(cache_op_table, read_macros, gnu_macros_getmacros_off)
1761da0c48c4Sopenharmony_ci	(macro_info_getmacros_off, do_dwarf_getmacros_die): New helper
1762da0c48c4Sopenharmony_ci	functions.
1763da0c48c4Sopenharmony_ci	(dwarf_getmacros): Adjust to dispatch to the new interfaces.
1764da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (read_srclines): New function with guts
1765da0c48c4Sopenharmony_ci	taken from dwarf_getsrclines.
1766da0c48c4Sopenharmony_ci	(__libdw_getsrclines): Likewise.
1767da0c48c4Sopenharmony_ci	(__libdw_getcompdir, files_lines_compare): New functions.
1768da0c48c4Sopenharmony_ci	(dwarf_getsrclines): Make it dispatch to the new interfaces.
1769da0c48c4Sopenharmony_ci	* dwarf_macro_param1.c (dwarf_macro_param1): Adjust to dispatch to
1770da0c48c4Sopenharmony_ci	the new interfaces.
1771da0c48c4Sopenharmony_ci	* dwarf_macro_param2.c (dwarf_macro_param2): Likewise.
1772da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.161): New. Add dwarf_getmacros_off,
1773da0c48c4Sopenharmony_ci	dwarf_macro_getsrcfiles, dwarf_macro_getparamcnt, dwarf_macro_param.
1774da0c48c4Sopenharmony_ci
1775da0c48c4Sopenharmony_ci2014-10-06  Mark Wielaard  <mjw@redhat.com>
1776da0c48c4Sopenharmony_ci
1777da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_peel_type.c.
1778da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (get_type): Use dwarf_peel_type.
1779da0c48c4Sopenharmony_ci	(aggregate_size): Likewise. Add old and new version.
1780da0c48c4Sopenharmony_ci	* dwarf_peel_type.c: New file.
1781da0c48c4Sopenharmony_ci	* libdw.h (dwarf_peel_type): New function declaration.
1782da0c48c4Sopenharmony_ci	* libdwP.h (dwarf_peel_type): New internal declaration.
1783da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.161): New section.
1784da0c48c4Sopenharmony_ci
1785da0c48c4Sopenharmony_ci2014-10-15  Petr Machata  <pmachata@redhat.com>
1786da0c48c4Sopenharmony_ci
1787da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_Files_s.cu): Drop field.
1788da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Don't set it.
1789da0c48c4Sopenharmony_ci
1790da0c48c4Sopenharmony_ci2014-10-05  Mark Wielaard  <mjw@redhat.com>
1791da0c48c4Sopenharmony_ci
1792da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_AT_GNU_deleted.
1793da0c48c4Sopenharmony_ci
1794da0c48c4Sopenharmony_ci2014-10-02  Mark Wielaard  <mjw@redhat.com>
1795da0c48c4Sopenharmony_ci
1796da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (aggregate_size): Return CU address_size
1797da0c48c4Sopenharmony_ci	for sizeless DW_TAG_pointer_type, DW_TAG_reference_type or
1798da0c48c4Sopenharmony_ci	DW_TAG_rvalue_reference_type.
1799da0c48c4Sopenharmony_ci
1800da0c48c4Sopenharmony_ci2014-09-12  Petr Machata  <pmachata@redhat.com>
1801da0c48c4Sopenharmony_ci
1802da0c48c4Sopenharmony_ci	* memory-access.h (read_ubyte_unaligned_inc): Allow only 4- and
1803da0c48c4Sopenharmony_ci	8-byte quantities.  Consequently, rename to...
1804da0c48c4Sopenharmony_ci	(read_addr_unaligned_inc): ... this.
1805da0c48c4Sopenharmony_ci	(read_sbyte_unaligned_inc, read_ubyte_unaligned): Drop.
1806da0c48c4Sopenharmony_ci	(read_sbyte_unaligned): Drop.
1807da0c48c4Sopenharmony_ci
1808da0c48c4Sopenharmony_ci2014-09-10  Petr Machata  <pmachata@redhat.com>
1809da0c48c4Sopenharmony_ci
1810da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (attr_ok): Also accept
1811da0c48c4Sopenharmony_ci	DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value,
1812da0c48c4Sopenharmony_ci	DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered.
1813da0c48c4Sopenharmony_ci
1814da0c48c4Sopenharmony_ci2014-08-15  Mark Wielaard  <mjw@redhat.com>
1815da0c48c4Sopenharmony_ci
1816da0c48c4Sopenharmony_ci	* dwarf_cu_die.c: New file.
1817da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_cu_die.c.
1818da0c48c4Sopenharmony_ci	* libdw.h (dwarf_cu_die): New function declaration.
1819da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.160): Add dwarf_cu_die.
1820da0c48c4Sopenharmony_ci
1821da0c48c4Sopenharmony_ci2014-08-15  Mark Wielaard  <mjw@redhat.com>
1822da0c48c4Sopenharmony_ci
1823da0c48c4Sopenharmony_ci	* dwarf_cu_getdwarf.c: New file.
1824da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_cu_getdwarf.c.
1825da0c48c4Sopenharmony_ci	* libdw.h (Dwarf_CU): New typedef.
1826da0c48c4Sopenharmony_ci	(dwarf_cu_getdwarf): New function declaration.
1827da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.160): New. Add dwarf_cu_getdwarf.
1828da0c48c4Sopenharmony_ci
1829da0c48c4Sopenharmony_ci2014-06-18  Mark Wielaard  <mjw@redhat.com>
1830da0c48c4Sopenharmony_ci
1831da0c48c4Sopenharmony_ci	* dwarf.h: Remove DW_TAG_mutable_type.
1832da0c48c4Sopenharmony_ci
1833da0c48c4Sopenharmony_ci2014-05-02  Mark Wielaard  <mjw@redhat.com>
1834da0c48c4Sopenharmony_ci
1835da0c48c4Sopenharmony_ci	* libdwP.h (__check_build_id): Removed now unused.
1836da0c48c4Sopenharmony_ci
1837da0c48c4Sopenharmony_ci2014-05-01  Mark Wielaard  <mjw@redhat.com>
1838da0c48c4Sopenharmony_ci
1839da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): Remove free_alt.
1840da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Don't check free_alt, don't end alt_dwarf.
1841da0c48c4Sopenharmony_ci	* dwarf_setalt.c (dwarf_setalt): Don't check or set free_alt.
1842da0c48c4Sopenharmony_ci
1843da0c48c4Sopenharmony_ci2014-04-30  Mark Wielaard  <mjw@redhat.com>
1844da0c48c4Sopenharmony_ci
1845da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.159): Add dwelf_elf_gnu_build_id.
1846da0c48c4Sopenharmony_ci
1847da0c48c4Sopenharmony_ci2014-04-15  Florian Weimer  <fweimer@redhat.com>
1848da0c48c4Sopenharmony_ci
1849da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (__check_build_id, try_debugaltlink)
1850da0c48c4Sopenharmony_ci	(open_debugaltlink): Move to libdwfl.
1851da0c48c4Sopenharmony_ci	(check_section): Do not locate alternate debuginfo.
1852da0c48c4Sopenharmony_ci
1853da0c48c4Sopenharmony_ci2014-04-24  Florian Weimer  <fweimer@redhat.com>
1854da0c48c4Sopenharmony_ci
1855da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.159): Export dwelf_dwarf_gnu_debugaltlink.
1856da0c48c4Sopenharmony_ci
1857da0c48c4Sopenharmony_ci2014-04-22  Florian Weimer  <fweimer@redhat.com>
1858da0c48c4Sopenharmony_ci
1859da0c48c4Sopenharmony_ci	* dwarf_getalt.c, dwarf_setalt.c: New files.
1860da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add them.
1861da0c48c4Sopenharmony_ci	* libdw.h (dwarf_getalt, dwarf_setalt): Add function declarations.
1862da0c48c4Sopenharmony_ci	* libdwP.h (dwarf_getalt, dwarf_setalt): Add internal function
1863da0c48c4Sopenharmony_ci	declarations.
1864da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.159): Export the two new functions.
1865da0c48c4Sopenharmony_ci
1866da0c48c4Sopenharmony_ci2014-04-15  Florian Weimer  <fweimer@redhat.com>
1867da0c48c4Sopenharmony_ci
1868da0c48c4Sopenharmony_ci	* libdwP.h (enum IDX_gnu_debugaltlink): New.
1869da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_scnnames): Increase string size and add
1870da0c48c4Sopenharmony_ci	.gnu_debugaltlink.
1871da0c48c4Sopenharmony_ci	(check_section): Obtain .gnu_debugaltlink section from the
1872da0c48c4Sopenharmony_ci	setiondata array.
1873da0c48c4Sopenharmony_ci
1874da0c48c4Sopenharmony_ci2014-04-11  Mark Wielaard  <mjw@redhat.com>
1875da0c48c4Sopenharmony_ci
1876da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.159): New. Add dwelf_elf_gnu_debuglink.
1877da0c48c4Sopenharmony_ci	* Makefile.am (libdw.so): Depend on libdwelf_pic.a.
1878da0c48c4Sopenharmony_ci	(libdwelf_objects): New variable.
1879da0c48c4Sopenharmony_ci	(libdw_a_LIBADD): Add libdwelf objects.
1880da0c48c4Sopenharmony_ci
1881da0c48c4Sopenharmony_ci2014-04-22  Mark Wielaard  <mjw@redhat.com>
1882da0c48c4Sopenharmony_ci
1883da0c48c4Sopenharmony_ci	* memory-access.h (get_sleb128_step): Remove undefined behavior
1884da0c48c4Sopenharmony_ci	of left shifting a signed value. Replace it with a multiplication.
1885da0c48c4Sopenharmony_ci
1886da0c48c4Sopenharmony_ci2014-04-13  Mark Wielaard  <mjw@redhat.com>
1887da0c48c4Sopenharmony_ci
1888da0c48c4Sopenharmony_ci	* Makefile.am: Remove !MUDFLAP conditions.
1889da0c48c4Sopenharmony_ci
1890da0c48c4Sopenharmony_ci2014-04-09  Mark Wielaard  <mjw@redhat.com>
1891da0c48c4Sopenharmony_ci
1892da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Check for unsigned overflow
1893da0c48c4Sopenharmony_ci	before calling malloc to uncompress data.
1894da0c48c4Sopenharmony_ci
1895da0c48c4Sopenharmony_ci2014-03-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
1896da0c48c4Sopenharmony_ci
1897da0c48c4Sopenharmony_ci	Fix abort() on missing section headers.
1898da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Replace abort call by goto err.
1899da0c48c4Sopenharmony_ci	New label err to return NULL.
1900da0c48c4Sopenharmony_ci
1901da0c48c4Sopenharmony_ci2014-02-05  Josh Stone  <jistone@redhat.com>
1902da0c48c4Sopenharmony_ci
1903da0c48c4Sopenharmony_ci	* dwarf_decl_file.c (dwarf_decl_file): Read the idx as unsigned.
1904da0c48c4Sopenharmony_ci	* dwarf_decl_line.c (__libdw_attr_intval): Read the line/column as
1905da0c48c4Sopenharmony_ci	unsigned.  Change the range assert to DWARF_E_INVALID_DWARF.
1906da0c48c4Sopenharmony_ci
1907da0c48c4Sopenharmony_ci2013-12-30  Mark Wielaard  <mjw@redhat.com>
1908da0c48c4Sopenharmony_ci
1909da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.158): Add dwfl_core_file_attach and
1910da0c48c4Sopenharmony_ci	dwfl_linux_proc_attach.
1911da0c48c4Sopenharmony_ci
1912da0c48c4Sopenharmony_ci2013-12-20  Mark Wielaard  <mjw@redhat.com>
1913da0c48c4Sopenharmony_ci
1914da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.158): Add dwfl_getthread_frames.
1915da0c48c4Sopenharmony_ci
1916da0c48c4Sopenharmony_ci2013-12-18  Mark Wielaard  <mjw@redhat.com>
1917da0c48c4Sopenharmony_ci
1918da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.158): Remove dwfl_module_addrsym_elf and
1919da0c48c4Sopenharmony_ci	dwfl_module_getsym_elf. Add dwfl_module_addrinfo and
1920da0c48c4Sopenharmony_ci	dwfl_module_getsym_info.
1921da0c48c4Sopenharmony_ci
1922da0c48c4Sopenharmony_ci2013-12-16  Mark Wielaard  <mjw@redhat.com>
1923da0c48c4Sopenharmony_ci
1924da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.158): Add dwfl_module_getsymtab_first_global.
1925da0c48c4Sopenharmony_ci
1926da0c48c4Sopenharmony_ci2013-12-10  Josh Stone  <jistone@redhat.com>
1927da0c48c4Sopenharmony_ci
1928da0c48c4Sopenharmony_ci	* memory-access.h (get_uleb128_rest_return): Removed.
1929da0c48c4Sopenharmony_ci	(get_sleb128_rest_return): Removed.
1930da0c48c4Sopenharmony_ci	(get_uleb128_step): Make this a self-contained block.
1931da0c48c4Sopenharmony_ci	(get_sleb128_step): Ditto, and use a bitfield to extend signs.
1932da0c48c4Sopenharmony_ci	(get_uleb128): Make this wholly implemented by __libdw_get_uleb128.
1933da0c48c4Sopenharmony_ci	(get_sleb128): Make this wholly implemented by __libdw_get_sleb128.
1934da0c48c4Sopenharmony_ci	(__libdw_get_uleb128): Simplify and inline for all callers.
1935da0c48c4Sopenharmony_ci	(__libdw_get_sleb128): Ditto.
1936da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (store_implicit_value): Void the unused uleb128.
1937da0c48c4Sopenharmony_ci	* memory-access.c: Delete file.
1938da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Remove it.
1939da0c48c4Sopenharmony_ci	(DEFS): Remove the now unused -DIS_LIBDW.
1940da0c48c4Sopenharmony_ci
1941da0c48c4Sopenharmony_ci2013-12-09  Josh Stone  <jistone@redhat.com>
1942da0c48c4Sopenharmony_ci
1943da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_compute_len): Renamed function from
1944da0c48c4Sopenharmony_ci	__libdw_form_val_len, now handling only non-constant form lengths.
1945da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_form_val_len): New inlined function.
1946da0c48c4Sopenharmony_ci
1947da0c48c4Sopenharmony_ci2013-12-09  Mark Wielaard  <mjw@redhat.com>
1948da0c48c4Sopenharmony_ci
1949da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Handle empty
1950da0c48c4Sopenharmony_ci	location expressions.
1951da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c (dwarf_getlocation_attr): When no
1952da0c48c4Sopenharmony_ci	location found, return empty location expression.
1953da0c48c4Sopenharmony_ci	* dwarf_getlocation_implicit_pointer.c
1954da0c48c4Sopenharmony_ci	(dwarf_getlocation_implicit_pointer): Likewise.
1955da0c48c4Sopenharmony_ci	(__libdw_empty_loc_attr): New internal function.
1956da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_empty_loc_attr): Define.
1957da0c48c4Sopenharmony_ci
1958da0c48c4Sopenharmony_ci2013-11-27  Mark Wielaard  <mjw@redhat.com>
1959da0c48c4Sopenharmony_ci
1960da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.158): Add dwfl_module_addrsym_elf and
1961da0c48c4Sopenharmony_ci	dwfl_module_getsym_elf.
1962da0c48c4Sopenharmony_ci
1963da0c48c4Sopenharmony_ci2013-11-26  Mark Wielaard  <mjw@redhat.com>
1964da0c48c4Sopenharmony_ci
1965da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.156): Move dwfl_attach_state, dwfl_pid,
1966da0c48c4Sopenharmony_ci	dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread,
1967da0c48c4Sopenharmony_ci	dwfl_thread_state_registers, dwfl_thread_state_register_pc,
1968da0c48c4Sopenharmony_ci	dwfl_getthreads, dwfl_thread_getframes and dwfl_frame_pc to ...
1969da0c48c4Sopenharmony_ci	(ELFUTILS_0.158): ... here.
1970da0c48c4Sopenharmony_ci
1971da0c48c4Sopenharmony_ci2013-11-09  Mark Wielaard  <mjw@redhat.com>
1972da0c48c4Sopenharmony_ci
1973da0c48c4Sopenharmony_ci	* dwarf_getaranges.c (dwarf_getaranges): Read segment_size and
1974da0c48c4Sopenharmony_ci	check that it is zero.
1975da0c48c4Sopenharmony_ci
1976da0c48c4Sopenharmony_ci2013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
1977da0c48c4Sopenharmony_ci
1978da0c48c4Sopenharmony_ci	* cfi.h (struct Dwarf_Frame_s): Make the comment more specific.
1979da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.156): Add dwfl_attach_state, dwfl_pid,
1980da0c48c4Sopenharmony_ci	dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread,
1981da0c48c4Sopenharmony_ci	dwfl_thread_state_registers, dwfl_thread_state_register_pc,
1982da0c48c4Sopenharmony_ci	dwfl_getthreads, dwfl_thread_getframes and dwfl_frame_pc.
1983da0c48c4Sopenharmony_ci
1984da0c48c4Sopenharmony_ci2013-11-01  Michael Forney  <mforney@mforney.org>
1985da0c48c4Sopenharmony_ci
1986da0c48c4Sopenharmony_ci	* Makefile.am (libdwfl_objects): New definition.
1987da0c48c4Sopenharmony_ci	(libdw_a_LIBADD): Use libdwfl_objects.
1988da0c48c4Sopenharmony_ci
1989da0c48c4Sopenharmony_ci2013-11-01  Michael Forney  <mforney@mforney.org>
1990da0c48c4Sopenharmony_ci
1991da0c48c4Sopenharmony_ci	* Makefile.am: Use READELF.
1992da0c48c4Sopenharmony_ci
1993da0c48c4Sopenharmony_ci2013-10-30  Jan Kratochvil  <jan.kratochvil@redhat.com>
1994da0c48c4Sopenharmony_ci
1995da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.158): New.
1996da0c48c4Sopenharmony_ci
1997da0c48c4Sopenharmony_ci2013-10-10  Mark Wielaard  <mjw@redhat.com>
1998da0c48c4Sopenharmony_ci
1999da0c48c4Sopenharmony_ci	* dwarf_getfuncs.c (struct visitor_info): Rename start_offset to
2000da0c48c4Sopenharmony_ci	start_addr and rename last_offset to last_addr. Now both void *.
2001da0c48c4Sopenharmony_ci	(tree_visitor): Use start_add and die_addr instead of start_offset
2002da0c48c4Sopenharmony_ci	and die_offset.
2003da0c48c4Sopenharmony_ci	(dwarf_getfuncs): Use last_addr instead of last_offset.
2004da0c48c4Sopenharmony_ci
2005da0c48c4Sopenharmony_ci2013-10-06  Mark Wielaard  <mjw@redhat.com>
2006da0c48c4Sopenharmony_ci
2007da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Make sure DW_CFA_expression and
2008da0c48c4Sopenharmony_ci	DW_CFA_val_expression are not used with abi_cfi.
2009da0c48c4Sopenharmony_ci
2010da0c48c4Sopenharmony_ci2013-10-03  Josh Stone  <jistone@redhat.com>
2011da0c48c4Sopenharmony_ci
2012da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Don't hash the sig8 here.
2013da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): Since this never revisits
2014da0c48c4Sopenharmony_ci	a unit, make sure to always hash the sig8 here, so none are missed.
2015da0c48c4Sopenharmony_ci
2016da0c48c4Sopenharmony_ci2013-09-29  Mark Wielaard  <mjw@redhat.com>
2017da0c48c4Sopenharmony_ci
2018da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (store_implicit_value): Cast op->number2 to
2019da0c48c4Sopenharmony_ci	uintptr_t before casting to char *.
2020da0c48c4Sopenharmony_ci	(__libdw_intern_expression): Cast data to uintptr_t before casting
2021da0c48c4Sopenharmony_ci	to Dwarf_Word.
2022da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c (dwarf_getlocation_attr): Cast
2023da0c48c4Sopenharmony_ci	op->number2 to uintptr_t before casting to char *.
2024da0c48c4Sopenharmony_ci
2025da0c48c4Sopenharmony_ci2013-09-24  Josh Stone  <jistone@redhat.com>
2026da0c48c4Sopenharmony_ci
2027da0c48c4Sopenharmony_ci	* libdw_visit_scopes.c (classify_die): Removed.
2028da0c48c4Sopenharmony_ci	(may_have_scopes): New function to replace classify_die.  There's no
2029da0c48c4Sopenharmony_ci	need for full classification; just find tags that may contain scopes.
2030da0c48c4Sopenharmony_ci	(__libdw_visit_scopes): Use a direct tag comparison for imported
2031da0c48c4Sopenharmony_ci	units, and use may_have_scopes to test if recursion is needed.
2032da0c48c4Sopenharmony_ci
2033da0c48c4Sopenharmony_ci2013-09-20  Mark Wielaard  <mjw@redhat.com>
2034da0c48c4Sopenharmony_ci
2035da0c48c4Sopenharmony_ci	* dwarf_getfuncs.c (visitor_info): New struct.
2036da0c48c4Sopenharmony_ci	(tree_visitor): New function.
2037da0c48c4Sopenharmony_ci	(dwarf_getfuncs): Use __libdw_visit_scopes with tree_visitor.
2038da0c48c4Sopenharmony_ci	* libdw.h (dwarf_getfuncs): Expand function documentation.
2039da0c48c4Sopenharmony_ci
2040da0c48c4Sopenharmony_ci2013-09-12  Mark Wielaard  <mjw@redhat.com>
2041da0c48c4Sopenharmony_ci
2042da0c48c4Sopenharmony_ci	* fde.c (intern_fde): Free fde and set libdw errno when start
2043da0c48c4Sopenharmony_ci	or end could not be read.
2044da0c48c4Sopenharmony_ci
2045da0c48c4Sopenharmony_ci2013-08-24  Mark Wielaard  <mjw@redhat.com>
2046da0c48c4Sopenharmony_ci
2047da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (store_implicit_value): Don't take data
2048da0c48c4Sopenharmony_ci	as argument, get block data from op number2. Return false when
2049da0c48c4Sopenharmony_ci	block data length and op number don't match up.
2050da0c48c4Sopenharmony_ci	(__libdw_intern_expression): Store start of block for
2051da0c48c4Sopenharmony_ci	DW_OP_implicit_value and DW_OP_GNU_entry_value instead of
2052da0c48c4Sopenharmony_ci	relative data offset. Also store block start (including length)
2053da0c48c4Sopenharmony_ci	for DW_OP_GNU_const_type. Don't pass data to store_implicit_value.
2054da0c48c4Sopenharmony_ci	* dwarf_getlocation_attr.c: New file.
2055da0c48c4Sopenharmony_ci	* dwarf_getlocation_die.c: Likewise.
2056da0c48c4Sopenharmony_ci	* libdw.h (dwarf_getlocation_die): New function definition.
2057da0c48c4Sopenharmony_ci	(dwarf_getlocation_attr): Likewise.
2058da0c48c4Sopenharmony_ci	* libdwP.h: Declare internal dwarf_getlocation_die.
2059da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.157): Add dwarf_getlocation_die and
2060da0c48c4Sopenharmony_ci	dwarf_getlocation_attr.
2061da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_getlocation_die.c and
2062da0c48c4Sopenharmony_ci	dwarf_getlocation_attr.c.
2063da0c48c4Sopenharmony_ci
2064da0c48c4Sopenharmony_ci2013-08-23  Mark Wielaard  <mjw@redhat.com>
2065da0c48c4Sopenharmony_ci
2066da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (attr_ok): Also accept DW_AT_segment.
2067da0c48c4Sopenharmony_ci	(attr_base_address): New function.
2068da0c48c4Sopenharmony_ci	(initial_offset_base): New function.
2069da0c48c4Sopenharmony_ci	(getlocations_addr): New function. Taken from...
2070da0c48c4Sopenharmony_ci	(dwarf_getlocation_addr): here. Use new initial_offset_base and
2071da0c48c4Sopenharmony_ci	getlocations_addr.
2072da0c48c4Sopenharmony_ci	(dwarf_getlocations): New function.
2073da0c48c4Sopenharmony_ci	* libdw.h (dwarf_getlocations): New function definition.
2074da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.157): New.
2075da0c48c4Sopenharmony_ci
2076da0c48c4Sopenharmony_ci2013-07-02  Mark Wielaard  <mjw@redhat.com>
2077da0c48c4Sopenharmony_ci
2078da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Add new stack allocation
2079da0c48c4Sopenharmony_ci	limit MAX_STACK_ALLOC.  After MAX_STACK_ALLOC lines use malloc in
2080da0c48c4Sopenharmony_ci	NEW_LINE macro.  Free malloced line records if any at the end.
2081da0c48c4Sopenharmony_ci
2082da0c48c4Sopenharmony_ci2013-07-02  Mark Wielaard  <mjw@redhat.com>
2083da0c48c4Sopenharmony_ci
2084da0c48c4Sopenharmony_ci	* dwarf_getcfi_elf.c (getcfi_shdr): Check sh_type == SHT_PROGBITS.
2085da0c48c4Sopenharmony_ci
2086da0c48c4Sopenharmony_ci2013-06-26  Mark Wielaard  <mjw@redhat.com>
2087da0c48c4Sopenharmony_ci
2088da0c48c4Sopenharmony_ci	* libdw_visit_scopes.c (__libdw_visit_scopes): Don't reject root
2089da0c48c4Sopenharmony_ci	DIEs without children. Return an error whenever dwarf_child or
2090da0c48c4Sopenharmony_ci	dwarf_siblingof return an error. Don't call recurse and increase
2091da0c48c4Sopenharmony_ci	the depth for an imported unit. Walk the children of an imported
2092da0c48c4Sopenharmony_ci	unit as if they are logical children of the parent root DIE.
2093da0c48c4Sopenharmony_ci
2094da0c48c4Sopenharmony_ci2013-05-03  Mark Wielaard  <mjw@redhat.com>
2095da0c48c4Sopenharmony_ci
2096da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Only set end_sequence
2097da0c48c4Sopenharmony_ci	when nlinelist > 0.
2098da0c48c4Sopenharmony_ci
2099da0c48c4Sopenharmony_ci2013-04-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
2100da0c48c4Sopenharmony_ci
2101da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.156): New.
2102da0c48c4Sopenharmony_ci
2103da0c48c4Sopenharmony_ci2013-04-24  Mark Wielaard  <mjw@redhat.com>
2104da0c48c4Sopenharmony_ci
2105da0c48c4Sopenharmony_ci	* Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
2106da0c48c4Sopenharmony_ci
2107da0c48c4Sopenharmony_ci2013-04-10  Mark Wielaard  <mjw@redhat.com>
2108da0c48c4Sopenharmony_ci
2109da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Reference size is only
2110da0c48c4Sopenharmony_ci	equal to address size when we have a DW_FORM_ref_addr for DWARF
2111da0c48c4Sopenharmony_ci	version 2.
2112da0c48c4Sopenharmony_ci
2113da0c48c4Sopenharmony_ci2013-03-25  Mark Wielaard  <mjw@redhat.com>
2114da0c48c4Sopenharmony_ci
2115da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Mark highest address as
2116da0c48c4Sopenharmony_ci	end_sequence.
2117da0c48c4Sopenharmony_ci
2118da0c48c4Sopenharmony_ci2013-03-12  Mark Wielaard  <mjw@redhat.com>
2119da0c48c4Sopenharmony_ci
2120da0c48c4Sopenharmony_ci	* dwarf_getsrcfiles.c (dwarf_getsrcfiles): Allow DW_TAG_partial_unit.
2121da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
2122da0c48c4Sopenharmony_ci
2123da0c48c4Sopenharmony_ci2013-02-15  Mark Wielaard  <mjw@redhat.com>
2124da0c48c4Sopenharmony_ci
2125da0c48c4Sopenharmony_ci	* dwarf_formstring.c (dwarf_formstring): Check dbg_ret->sectiondata,
2126da0c48c4Sopenharmony_ci	not dbg->sectiondata.
2127da0c48c4Sopenharmony_ci
2128da0c48c4Sopenharmony_ci2013-01-07  Roland McGrath  <roland@hack.frob.com>
2129da0c48c4Sopenharmony_ci
2130da0c48c4Sopenharmony_ci	* memory-access.h
2131da0c48c4Sopenharmony_ci	[ALLOW_UNALIGNED] (read_8ubyte_unaligned_noncvt): New macro.
2132da0c48c4Sopenharmony_ci	[!ALLOW_UNALIGNED] (read_8ubyte_unaligned_noncvt): New inline function.
2133da0c48c4Sopenharmony_ci
2134da0c48c4Sopenharmony_ci2012-12-18  Mark Wielaard  <mjw@redhat.com>
2135da0c48c4Sopenharmony_ci
2136da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (valid_p): Call Dwarf_Sig8_Hash_free if invalid.
2137da0c48c4Sopenharmony_ci	(check_section): Likewise on error.
2138da0c48c4Sopenharmony_ci	(scngrp_read): Likewise.
2139da0c48c4Sopenharmony_ci	(dwarf_begin_elf): Likewise.
2140da0c48c4Sopenharmony_ci
2141da0c48c4Sopenharmony_ci2012-10-09  Petr Machata  <pmachata@redhat.com>
2142da0c48c4Sopenharmony_ci
2143da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Handle
2144da0c48c4Sopenharmony_ci	DW_OP_GNU_parameter_ref, DW_OP_GNU_convert, DW_OP_GNU_reinterpret,
2145da0c48c4Sopenharmony_ci	DW_OP_GNU_regval_type, DW_OP_GNU_entry_value,
2146da0c48c4Sopenharmony_ci	DW_OP_GNU_deref_type, DW_OP_GNU_const_type.
2147da0c48c4Sopenharmony_ci
2148da0c48c4Sopenharmony_ci2012-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
2149da0c48c4Sopenharmony_ci
2150da0c48c4Sopenharmony_ci	* cfi.c: New include system.h.
2151da0c48c4Sopenharmony_ci	(execute_cfi) (enough_registers): Clear new memory after realloc.
2152da0c48c4Sopenharmony_ci
2153da0c48c4Sopenharmony_ci2012-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
2154da0c48c4Sopenharmony_ci
2155da0c48c4Sopenharmony_ci	* fde.c (__libdw_find_fde): Change <fde != NULL> to likely.  Return
2156da0c48c4Sopenharmony_ci	DWARF_E_NO_MATCH if .eh_frame_hdr points to FDE which is too short for
2157da0c48c4Sopenharmony_ci	searched PC.
2158da0c48c4Sopenharmony_ci
2159da0c48c4Sopenharmony_ci2012-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
2160da0c48c4Sopenharmony_ci
2161da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression) <cfap>: Make new
2162da0c48c4Sopenharmony_ci	loclist element DW_OP_call_frame_cfa before decoding the opcodes.
2163da0c48c4Sopenharmony_ci	Remove the later DW_OP_call_frame_cfa push to RESULT.
2164da0c48c4Sopenharmony_ci
2165da0c48c4Sopenharmony_ci2012-10-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
2166da0c48c4Sopenharmony_ci
2167da0c48c4Sopenharmony_ci	Code cleanup.
2168da0c48c4Sopenharmony_ci	* fde.c (binary_search_fde): Remove always true <address >= start>
2169da0c48c4Sopenharmony_ci	conditional.  Move L initialization upwards.
2170da0c48c4Sopenharmony_ci
2171da0c48c4Sopenharmony_ci2012-08-24  Mark Wielaard  <mjw@redhat.com>
2172da0c48c4Sopenharmony_ci
2173da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Only probe for dwz multi files
2174da0c48c4Sopenharmony_ci	when ENABLE_DWZ is defined.
2175da0c48c4Sopenharmony_ci	* libdwP.h (__check_build_id): Only declare when ENABLE_DWZ is
2176da0c48c4Sopenharmony_ci	defined.
2177da0c48c4Sopenharmony_ci
2178da0c48c4Sopenharmony_ci2012-08-16  Mark Wielaard  <mjw@redhat.com>
2179da0c48c4Sopenharmony_ci
2180da0c48c4Sopenharmony_ci	* Makefile.am (EXTRA_DIST): Add known-dwarf.h.
2181da0c48c4Sopenharmony_ci	* dwarf.h (DW_LANG_Go): Update comment.
2182da0c48c4Sopenharmony_ci	(DW_LANG_Mips_Assembler): Likewise.
2183da0c48c4Sopenharmony_ci
2184da0c48c4Sopenharmony_ci2012-06-27  Mark Wielaard  <mjw@redhat.com>
2185da0c48c4Sopenharmony_ci
2186da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt.
2187da0c48c4Sopenharmony_ci	* dwarf_begin.c (dwarf_begin): Add INTDEF.
2188da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (__check_build_id): New internal_function.
2189da0c48c4Sopenharmony_ci	(try_debugaltlink): New function.
2190da0c48c4Sopenharmony_ci	(open_debugaltlink): Likewise.
2191da0c48c4Sopenharmony_ci	(check_section): Try open_debugaltlink for .gnu_debugaltlink.
2192da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Free the alternative Dwarf descriptor if
2193da0c48c4Sopenharmony_ci	necessary.
2194da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add DWARF_E_NO_ALT_DEBUGLINK.
2195da0c48c4Sopenharmony_ci	* dwarf_formref.c (__libdw_formref): Using DW_FORM_GNU_ref_alt
2196da0c48c4Sopenharmony_ci	is an error here.
2197da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Handle DW_FORM_GNU_ref_alt.
2198da0c48c4Sopenharmony_ci	* dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_GNU_strp_alt.
2199da0c48c4Sopenharmony_ci	* dwarf_formudata.c (__libdw_formptr): Adjust __libdw_read_offset
2200da0c48c4Sopenharmony_ci	calls.
2201da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c (get_offsets): Adjust __libdw_read_offset call.
2202da0c48c4Sopenharmony_ci	* libdwP.h: Add DWARF_E_NO_ALT_DEBUGLINK.
2203da0c48c4Sopenharmony_ci	(struct Dwarf): Add alt_dwarf and free_alt fields.
2204da0c48c4Sopenharmony_ci	(__libdw_read_offset): Add dbg_ret argument, use to check with
2205da0c48c4Sopenharmony_ci	__libdw_offset_in_section.
2206da0c48c4Sopenharmony_ci	(__check_build_id): New function declaration.
2207da0c48c4Sopenharmony_ci	(dwarf_begin): Define as INTDECL.
2208da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_len): Handle DW_FORM_GNU_ref_alt
2209da0c48c4Sopenharmony_ci	and DW_FORM_GNU_strp_alt.
2210da0c48c4Sopenharmony_ci
2211da0c48c4Sopenharmony_ci2012-07-19  Mark Wielaard  <mjw@redhat.com>
2212da0c48c4Sopenharmony_ci
2213da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_OP_GNU_parameter_ref.
2214da0c48c4Sopenharmony_ci
2215da0c48c4Sopenharmony_ci2012-07-24  Mark Wielaard  <mjw@redhat.com>
2216da0c48c4Sopenharmony_ci
2217da0c48c4Sopenharmony_ci	* dwarf.h: Correct spelling of DW_LANG_ObjC.
2218da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c (array_size): Use correct spelling of
2219da0c48c4Sopenharmony_ci	DW_LANG_ObjC.
2220da0c48c4Sopenharmony_ci
2221da0c48c4Sopenharmony_ci2012-07-24  Mark Wielaard  <mjw@redhat.com>
2222da0c48c4Sopenharmony_ci
2223da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_ATE_UTF.
2224da0c48c4Sopenharmony_ci
2225da0c48c4Sopenharmony_ci2012-06-27  Mark Wielaard  <mjw@redhat.com>
2226da0c48c4Sopenharmony_ci
2227da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_MACRO_GNU .debug_macro type encodings.
2228da0c48c4Sopenharmony_ci
2229da0c48c4Sopenharmony_ci2012-06-26  Mark Wielaard  <mjw@redhat.com>
2230da0c48c4Sopenharmony_ci
2231da0c48c4Sopenharmony_ci	* libdwP.h: Add IDX_debug_macro.
2232da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_AT_GNU_macros.
2233da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_scnnames): Add .debug_macro.
2234da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Recognize DW_AT_GNU_macros.
2235da0c48c4Sopenharmony_ci
2236da0c48c4Sopenharmony_ci2012-04-27  Mark Wielaard  <mjw@redhat.com>
2237da0c48c4Sopenharmony_ci
2238da0c48c4Sopenharmony_ci	* libdw/dwarf_highpc.c (dwarf_highpc): Handle DW_AT_high_pc being
2239da0c48c4Sopenharmony_ci	a constant offset from DW_AT_low_pc.
2240da0c48c4Sopenharmony_ci
2241da0c48c4Sopenharmony_ci2012-03-19  Tom Tromey  <tromey@redhat.com>
2242da0c48c4Sopenharmony_ci
2243da0c48c4Sopenharmony_ci	* libdw_findcu.c (findcu_cb): Move earlier.
2244da0c48c4Sopenharmony_ci	(__libdw_intern_next_unit): Add new CU to search tree here...
2245da0c48c4Sopenharmony_ci	(__libdw_findcu): ... not here.
2246da0c48c4Sopenharmony_ci
2247da0c48c4Sopenharmony_ci2012-01-31  Mark Wielaard  <mjw@redhat.com>
2248da0c48c4Sopenharmony_ci
2249da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Handle DW_FORM_sec_offset.
2250da0c48c4Sopenharmony_ci
2251da0c48c4Sopenharmony_ci2011-11-31  Mark Wielaard  <mjw@redhat.com>
2252da0c48c4Sopenharmony_ci
2253da0c48c4Sopenharmony_ci	* Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk.
2254da0c48c4Sopenharmony_ci
2255da0c48c4Sopenharmony_ci2011-07-14  Mark Wielaard  <mjw@redhat.com>
2256da0c48c4Sopenharmony_ci
2257da0c48c4Sopenharmony_ci	* libdw.h (dwarf_offdie): Fix documentation to mention .debug_info.
2258da0c48c4Sopenharmony_ci
2259da0c48c4Sopenharmony_ci2011-05-16  Jakub Jelinek  <jakub@redhat.com>
2260da0c48c4Sopenharmony_ci
2261da0c48c4Sopenharmony_ci	* dwarf.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
2262da0c48c4Sopenharmony_ci	DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret):
2263da0c48c4Sopenharmony_ci	New.
2264da0c48c4Sopenharmony_ci
2265da0c48c4Sopenharmony_ci2011-04-26  Mark Wielaard  <mjw@redhat.com>
2266da0c48c4Sopenharmony_ci
2267da0c48c4Sopenharmony_ci	* dwarf_child (dwarf_child): Sanity check end of section against
2268da0c48c4Sopenharmony_ci	cu_data () of die->cu.
2269da0c48c4Sopenharmony_ci
2270da0c48c4Sopenharmony_ci2011-03-22  Mark Wielaard  <mjw@redhat.com>
2271da0c48c4Sopenharmony_ci
2272da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_TAG_GNU_call_site,
2273da0c48c4Sopenharmony_ci	DW_TAG_GNU_call_site_parameter,
2274da0c48c4Sopenharmony_ci	DW_AT_GNU_call_site_value,
2275da0c48c4Sopenharmony_ci	DW_AT_GNU_call_site_data_value,
2276da0c48c4Sopenharmony_ci	DW_AT_GNU_call_site_target,
2277da0c48c4Sopenharmony_ci	DW_AT_GNU_call_site_target_clobbered,
2278da0c48c4Sopenharmony_ci	DW_AT_GNU_tail_call,
2279da0c48c4Sopenharmony_ci	DW_AT_GNU_all_tail_call_sites,
2280da0c48c4Sopenharmony_ci	DW_AT_GNU_all_call_sites,
2281da0c48c4Sopenharmony_ci	DW_AT_GNU_all_source_call_sites,
2282da0c48c4Sopenharmony_ci	and DW_OP_GNU_entry_value.
2283da0c48c4Sopenharmony_ci
2284da0c48c4Sopenharmony_ci2011-03-10  Petr Machata  <pmachata@redhat.com>
2285da0c48c4Sopenharmony_ci
2286da0c48c4Sopenharmony_ci	* libdw/dwarf_tag.c (__libdw_findabbrev): Reject requests for
2287da0c48c4Sopenharmony_ci	abbreviation with code 0.
2288da0c48c4Sopenharmony_ci
2289da0c48c4Sopenharmony_ci2011-03-09  Petr Machata  <pmachata@redhat.com>
2290da0c48c4Sopenharmony_ci
2291da0c48c4Sopenharmony_ci	* libdw/dwarf_child.c (dwarf_child): Check for section overrun.
2292da0c48c4Sopenharmony_ci
2293da0c48c4Sopenharmony_ci2011-02-23  Roland McGrath  <roland@redhat.com>
2294da0c48c4Sopenharmony_ci
2295da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf) [USE_ZLIB]: New member sectiondata_gzip_mask.
2296da0c48c4Sopenharmony_ci	Declare __libdw_free_zdata.
2297da0c48c4Sopenharmony_ci	* dwarf_end.c [USE_ZLIB] (__libdw_free_zdata): New function.
2298da0c48c4Sopenharmony_ci	(dwarf_end): Call it.
2299da0c48c4Sopenharmony_ci
2300da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (valid_p): Likewise.
2301da0c48c4Sopenharmony_ci	(check_section, scngrp_read): Likewise.
2302da0c48c4Sopenharmony_ci	(check_section) [USE_ZLIB]: Grok .z* flavors of sections.
2303da0c48c4Sopenharmony_ci
2304da0c48c4Sopenharmony_ci2010-10-13  Roland McGrath  <roland@redhat.com>
2305da0c48c4Sopenharmony_ci
2306da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_LANG_Go.
2307da0c48c4Sopenharmony_ci
2308da0c48c4Sopenharmony_ci2010-10-05  Roland McGrath  <roland@redhat.com>
2309da0c48c4Sopenharmony_ci
2310da0c48c4Sopenharmony_ci	* dwarf_getaranges.c: Use malloc rather than alloca,
2311da0c48c4Sopenharmony_ci	since the total number of elements can be quite huge.
2312da0c48c4Sopenharmony_ci
2313da0c48c4Sopenharmony_ci2010-07-26  Roland McGrath  <roland@redhat.com>
2314da0c48c4Sopenharmony_ci
2315da0c48c4Sopenharmony_ci	* dwarf_getlocation_implicit_pointer.c: New file.
2316da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
2317da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.149): New set.
2318da0c48c4Sopenharmony_ci	Add dwarf_getlocation_implicit_pointer.
2319da0c48c4Sopenharmony_ci	* libdw.h: Declare it.
2320da0c48c4Sopenharmony_ci
2321da0c48c4Sopenharmony_ci	* dwarf_offdie.c (do_offdie): Renamed to __libdw_offdie, made global.
2322da0c48c4Sopenharmony_ci	(dwarf_offdie, dwarf_offdie_types): Update callers.
2323da0c48c4Sopenharmony_ci	* libdwP.h: Declare it.
2324da0c48c4Sopenharmony_ci
2325da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_OP_GNU_implicit_pointer.
2326da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Handle it.
2327da0c48c4Sopenharmony_ci
2328da0c48c4Sopenharmony_ci2010-08-24  Roland McGrath  <roland@redhat.com>
2329da0c48c4Sopenharmony_ci
2330da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.149): New set.  Add dwfl_dwarf_line.
2331da0c48c4Sopenharmony_ci
2332da0c48c4Sopenharmony_ci2010-07-27  Roland McGrath  <roland@redhat.com>
2333da0c48c4Sopenharmony_ci
2334da0c48c4Sopenharmony_ci	* dwarf_formref_die.c: Fix sig8 hash insertion.
2335da0c48c4Sopenharmony_ci
2336da0c48c4Sopenharmony_ci2010-06-23  Roland McGrath  <roland@redhat.com>
2337da0c48c4Sopenharmony_ci
2338da0c48c4Sopenharmony_ci	* cfi.c (dwarf_cfi_validate_fde): Function removed.
2339da0c48c4Sopenharmony_ci	* libdw.h: Remove it.
2340da0c48c4Sopenharmony_ci	* libdw.map: Likewise.
2341da0c48c4Sopenharmony_ci
2342da0c48c4Sopenharmony_ci2010-06-22  Roland McGrath  <roland@redhat.com>
2343da0c48c4Sopenharmony_ci
2344da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (check_constant_offset): data[48] are constant.
2345da0c48c4Sopenharmony_ci
2346da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Fix signed comparison warning in extended
2347da0c48c4Sopenharmony_ci	opcode parsing.
2348da0c48c4Sopenharmony_ci
2349da0c48c4Sopenharmony_ci2010-06-21  Roland McGrath  <roland@redhat.com>
2350da0c48c4Sopenharmony_ci
2351da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_TAG_GNU_* constants.
2352da0c48c4Sopenharmony_ci
2353da0c48c4Sopenharmony_ci	* memory-access.h (get_sleb128_rest_return): Fix sign extension for
2354da0c48c4Sopenharmony_ci	10-byte case.
2355da0c48c4Sopenharmony_ci
2356da0c48c4Sopenharmony_ci2010-06-20  Roland McGrath  <roland@redhat.com>
2357da0c48c4Sopenharmony_ci
2358da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_findcu): Take new flag argument,
2359da0c48c4Sopenharmony_ci	to search TUs instead of CUs.
2360da0c48c4Sopenharmony_ci	* libdwP.h: Update decl.
2361da0c48c4Sopenharmony_ci	(struct Dwarf): New member tu_tree.
2362da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Clean up tu_tree.
2363da0c48c4Sopenharmony_ci	* dwarf_offdie.c (do_offdie): New function, broken out of ...
2364da0c48c4Sopenharmony_ci	(dwarf_offdie): ... here.
2365da0c48c4Sopenharmony_ci	(dwarf_offdie_types): New function.
2366da0c48c4Sopenharmony_ci	* libdw.h: Declare it.
2367da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.148): Add it.
2368da0c48c4Sopenharmony_ci
2369da0c48c4Sopenharmony_ci	* libdwP.h (CUDIE): Use cu_data.
2370da0c48c4Sopenharmony_ci	* dwarf_formblock.c: Likewise.
2371da0c48c4Sopenharmony_ci	* dwarf_formref_die.c: Likewise.
2372da0c48c4Sopenharmony_ci	* dwarf_diecu.c: Use CUDIE macro.
2373da0c48c4Sopenharmony_ci	* dwarf_formaddr.c: Use cu_sec_idx.
2374da0c48c4Sopenharmony_ci
2375da0c48c4Sopenharmony_ci2010-06-16  Roland McGrath  <roland@redhat.com>
2376da0c48c4Sopenharmony_ci
2377da0c48c4Sopenharmony_ci	* dwarf_formref_die.c: Use dwarf_offdie only for DW_FORM_ref_addr, so
2378da0c48c4Sopenharmony_ci	we don't repeat a CU lookup we've already done.  Handle
2379da0c48c4Sopenharmony_ci	DW_FORM_ref_sig8 using sig8_hash table and __libdw_intern_next_unit.
2380da0c48c4Sopenharmony_ci
2381da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_intern_next_unit): New function,
2382da0c48c4Sopenharmony_ci	broken out of ...
2383da0c48c4Sopenharmony_ci	(__libdw_findcu): ... here.  Call it.
2384da0c48c4Sopenharmony_ci	* libdwP.h: Declare it.
2385da0c48c4Sopenharmony_ci	(struct Dwarf): New member next_tu_offset.
2386da0c48c4Sopenharmony_ci
2387da0c48c4Sopenharmony_ci	* dwarf_sig8_hash.c: New file.
2388da0c48c4Sopenharmony_ci	* dwarf_sig8_hash.h: New file.
2389da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
2390da0c48c4Sopenharmony_ci	* dwarf_abbrev_hash.c: Include dwarf_sig8_hash.h before
2391da0c48c4Sopenharmony_ci	defining NO_UNDEF.
2392da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): New member sig8_hash.
2393da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c: Call Dwarf_Sig8_Hash_init on it.
2394da0c48c4Sopenharmony_ci	* dwarf_end.c: Call Dwarf_Sig8_Hash_free on it.
2395da0c48c4Sopenharmony_ci
2396da0c48c4Sopenharmony_ci	* dwarf_nextcu.c (dwarf_next_unit): New function, broken out of ...
2397da0c48c4Sopenharmony_ci	(dwarf_nextcu): ... here.  Call it.
2398da0c48c4Sopenharmony_ci	* libdw.h: Declare it.
2399da0c48c4Sopenharmony_ci	* libdwP.h: Add INTDECL.
2400da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_findcu): Use it instead of dwarf_nextcu.
2401da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.148): New set, add dwarf_next_unit.
2402da0c48c4Sopenharmony_ci
2403da0c48c4Sopenharmony_ci	* libdwP.h (cu_sec_idx, cu_data): New functions.
2404da0c48c4Sopenharmony_ci	Use .debug_types when CU is a TU.
2405da0c48c4Sopenharmony_ci	* dwarf_cuoffset.c: Use that instead of assuming IDX_debug_info.
2406da0c48c4Sopenharmony_ci	* dwarf_siblingof.c: Likewise.
2407da0c48c4Sopenharmony_ci	* dwarf_formstring.c: Likewise.
2408da0c48c4Sopenharmony_ci	* dwarf_formudata.c (__libdw_formptr, dwarf_formudata): Likewise.
2409da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation): Likewise.
2410da0c48c4Sopenharmony_ci	(dwarf_getlocation_addr): Likewise.
2411da0c48c4Sopenharmony_ci
2412da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_CU): Add new members type_offset, type_sig8.
2413da0c48c4Sopenharmony_ci	(DIE_OFFSET_FROM_CU_OFFSET): Take flag argument; if true, compute
2414da0c48c4Sopenharmony_ci	.debug_types header size instead of .debug_info header size.
2415da0c48c4Sopenharmony_ci	(CUDIE): Use it.
2416da0c48c4Sopenharmony_ci	* dwarf_diecu.c: Update caller.
2417da0c48c4Sopenharmony_ci	* dwarf_getaranges.c: Likewise.
2418da0c48c4Sopenharmony_ci	* dwarf_nextcu.c: Likewise.
2419da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_findcu): Initialize new members.
2420da0c48c4Sopenharmony_ci
2421da0c48c4Sopenharmony_ci	* fde.c (fde_by_offset): Renamed to ...
2422da0c48c4Sopenharmony_ci	(__libdw_fde_by_offset): ... this, made global and internal_function.
2423da0c48c4Sopenharmony_ci	Don't take ADDRESS argument.
2424da0c48c4Sopenharmony_ci	(__libdw_find_fde): Update caller.  Do address sanity check here.
2425da0c48c4Sopenharmony_ci	* cfi.h: Declare __libdw_fde_by_offset.
2426da0c48c4Sopenharmony_ci	* cfi.c (dwarf_cfi_validate_fde): New function.
2427da0c48c4Sopenharmony_ci	* libdw.h: Declare it.
2428da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.148): Add it.
2429da0c48c4Sopenharmony_ci
2430da0c48c4Sopenharmony_ci	* cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
2431da0c48c4Sopenharmony_ci	either DW_EH_PE_udata8 or DW_EH_PE_udata4.
2432da0c48c4Sopenharmony_ci
2433da0c48c4Sopenharmony_ci	* encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
2434da0c48c4Sopenharmony_ci	Don't assume DW_EH_PE_aligned refers to native address size.
2435da0c48c4Sopenharmony_ci
2436da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Barf on CIE initial instructions changing the
2437da0c48c4Sopenharmony_ci	address.
2438da0c48c4Sopenharmony_ci
2439da0c48c4Sopenharmony_ci2010-06-17  Roland McGrath  <roland@redhat.com>
2440da0c48c4Sopenharmony_ci
2441da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_Line_s): Add members isa, discriminator, and
2442da0c48c4Sopenharmony_ci	op_index.
2443da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Move NEW_FILE macro guts
2444da0c48c4Sopenharmony_ci	into an inner inline function.  Set new fields.  Check all fields for
2445da0c48c4Sopenharmony_ci	overflow when setting.
2446da0c48c4Sopenharmony_ci	* dwarf_lineisa.c: New file.
2447da0c48c4Sopenharmony_ci	* dwarf_linediscriminator.c: New file.
2448da0c48c4Sopenharmony_ci	* dwarf_lineop_index.c: New file.
2449da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add them.
2450da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.148): Add them.
2451da0c48c4Sopenharmony_ci	* libdw.h: Declare them.
2452da0c48c4Sopenharmony_ci
2453da0c48c4Sopenharmony_ci2010-06-16  Roland McGrath  <roland@redhat.com>
2454da0c48c4Sopenharmony_ci
2455da0c48c4Sopenharmony_ci	* dwarf_next_cfi.c: Fix version 4 return_address_register decoding.
2456da0c48c4Sopenharmony_ci
2457da0c48c4Sopenharmony_ci	* fde.c (fde_by_offset): Renamed to ...
2458da0c48c4Sopenharmony_ci	(__libdw_fde_by_offset): ... this, made global and internal_function.
2459da0c48c4Sopenharmony_ci	Don't take ADDRESS argument.
2460da0c48c4Sopenharmony_ci	(__libdw_find_fde): Update caller.  Do address sanity check here.
2461da0c48c4Sopenharmony_ci	* cfi.h: Declare __libdw_fde_by_offset.
2462da0c48c4Sopenharmony_ci	* cfi.c (dwarf_cfi_validate_fde): New function.
2463da0c48c4Sopenharmony_ci	* libdw.h: Declare it.
2464da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.148): Add it.
2465da0c48c4Sopenharmony_ci
2466da0c48c4Sopenharmony_ci	* cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
2467da0c48c4Sopenharmony_ci	either DW_EH_PE_udata8 or DW_EH_PE_udata4.
2468da0c48c4Sopenharmony_ci
2469da0c48c4Sopenharmony_ci	* encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
2470da0c48c4Sopenharmony_ci	Don't assume DW_EH_PE_aligned refers to native address size.
2471da0c48c4Sopenharmony_ci
2472da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Barf on CIE initial instructions changing the
2473da0c48c4Sopenharmony_ci	address.
2474da0c48c4Sopenharmony_ci
2475da0c48c4Sopenharmony_ci2010-06-15  Roland McGrath  <roland@redhat.com>
2476da0c48c4Sopenharmony_ci
2477da0c48c4Sopenharmony_ci	* dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like
2478da0c48c4Sopenharmony_ci	DW_FORM_ref_addr.
2479da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way
2480da0c48c4Sopenharmony_ci	here, since we don't support it yet.
2481da0c48c4Sopenharmony_ci
2482da0c48c4Sopenharmony_ci	* dwarf_next_cfi.c: Handle version 4 format.
2483da0c48c4Sopenharmony_ci
2484da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Handle version 4 format.
2485da0c48c4Sopenharmony_ci
2486da0c48c4Sopenharmony_ci2010-06-01  Roland McGrath  <roland@redhat.com>
2487da0c48c4Sopenharmony_ci
2488da0c48c4Sopenharmony_ci	* libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types.
2489da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_scnnames): Likewise.
2490da0c48c4Sopenharmony_ci
2491da0c48c4Sopenharmony_ci	* libdwP.h (CIE_VERSION): Remove unused macro.
2492da0c48c4Sopenharmony_ci
2493da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Fix version field test.
2494da0c48c4Sopenharmony_ci	* libdwP.h (DWARF_VERSION): Remove useless macro.
2495da0c48c4Sopenharmony_ci
2496da0c48c4Sopenharmony_ci	* dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling.
2497da0c48c4Sopenharmony_ci
2498da0c48c4Sopenharmony_ci	* dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc.
2499da0c48c4Sopenharmony_ci
2500da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_findcu): Accept version 4.
2501da0c48c4Sopenharmony_ci
2502da0c48c4Sopenharmony_ci2010-05-31  Mark Wielaard  <mjw@redhat.com>
2503da0c48c4Sopenharmony_ci
2504da0c48c4Sopenharmony_ci	* cfi.h (dwarf_cfi_cie_p): Move definition from here, to ..
2505da0c48c4Sopenharmony_ci	* libdw.h (dwarf_cfi_cie_p): ... here.
2506da0c48c4Sopenharmony_ci
2507da0c48c4Sopenharmony_ci2010-05-31  Mark Wielaard  <mjw@redhat.com>
2508da0c48c4Sopenharmony_ci
2509da0c48c4Sopenharmony_ci	* dwarf.h: Fix DW_LANG_Python constant.
2510da0c48c4Sopenharmony_ci
2511da0c48c4Sopenharmony_ci2010-05-28  Eduardo Santiago  <santiago@redhat.com>
2512da0c48c4Sopenharmony_ci
2513da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first
2514da0c48c4Sopenharmony_ci	thing.
2515da0c48c4Sopenharmony_ci
2516da0c48c4Sopenharmony_ci2010-05-27  Roland McGrath  <roland@redhat.com>
2517da0c48c4Sopenharmony_ci
2518da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name,
2519da0c48c4Sopenharmony_ci	DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator.
2520da0c48c4Sopenharmony_ci
2521da0c48c4Sopenharmony_ci2010-05-08  Roland McGrath  <roland@redhat.com>
2522da0c48c4Sopenharmony_ci
2523da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Take new argument
2524da0c48c4Sopenharmony_ci	REF_SIZE.  Use that to handle DW_OP_call_ref correctly.
2525da0c48c4Sopenharmony_ci	(getlocation): Update caller.
2526da0c48c4Sopenharmony_ci	* dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
2527da0c48c4Sopenharmony_ci	* dwarf_frame_register.c (dwarf_frame_register): Likewise.
2528da0c48c4Sopenharmony_ci	* libdwP.h: Update decl.
2529da0c48c4Sopenharmony_ci
2530da0c48c4Sopenharmony_ci2010-04-26  Roland McGrath  <roland@redhat.com>
2531da0c48c4Sopenharmony_ci
2532da0c48c4Sopenharmony_ci	* cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule.
2533da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Set that instead of doing cfi_assert for
2534da0c48c4Sopenharmony_ci	DW_CFA_def_cfa_{offset*,register} when a non-offset rule is in force.
2535da0c48c4Sopenharmony_ci	* dwarf_frame_cfa.c (dwarf_frame_cfa): Handle cfa_invalid.
2536da0c48c4Sopenharmony_ci
2537da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Take new arg CFAP.
2538da0c48c4Sopenharmony_ci	Prepend DW_OP_call_frame_cfa if true.
2539da0c48c4Sopenharmony_ci	(getlocation): Update caller.
2540da0c48c4Sopenharmony_ci	* dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
2541da0c48c4Sopenharmony_ci	* dwarf_frame_register.c (dwarf_frame_register): Likewise.
2542da0c48c4Sopenharmony_ci	* libdwP.h: Update decl.
2543da0c48c4Sopenharmony_ci
2544da0c48c4Sopenharmony_ci2010-04-22  Roland McGrath  <roland@redhat.com>
2545da0c48c4Sopenharmony_ci
2546da0c48c4Sopenharmony_ci	* cfi.c (execute_cfi): Never return without cleanup.
2547da0c48c4Sopenharmony_ci	Free FS on failure.
2548da0c48c4Sopenharmony_ci	(cie_cache_initial_state): Adjust caller to expect that free.
2549da0c48c4Sopenharmony_ci	(__libdw_frame_at_address): Likewise.
2550da0c48c4Sopenharmony_ci
2551da0c48c4Sopenharmony_ci2010-03-10  Roland McGrath  <roland@redhat.com>
2552da0c48c4Sopenharmony_ci
2553da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.146): New set.  Add dwfl_core_file_report.
2554da0c48c4Sopenharmony_ci
2555da0c48c4Sopenharmony_ci2010-02-15  Roland McGrath  <roland@redhat.com>
2556da0c48c4Sopenharmony_ci
2557da0c48c4Sopenharmony_ci	* Makefile.am: Use config/eu.am for common stuff.
2558da0c48c4Sopenharmony_ci
2559da0c48c4Sopenharmony_ci2010-02-02  Mark Wielaard  <mjw@redhat.com>
2560da0c48c4Sopenharmony_ci
2561da0c48c4Sopenharmony_ci	* fde.c (intern_fde): Fix length check for sized_augmentation_data.
2562da0c48c4Sopenharmony_ci
2563da0c48c4Sopenharmony_ci2010-01-07  Roland McGrath  <roland@redhat.com>
2564da0c48c4Sopenharmony_ci
2565da0c48c4Sopenharmony_ci	* dwarf_getcfi_elf.c (getcfi_phdr): Use elf_getphdrnum.
2566da0c48c4Sopenharmony_ci
2567da0c48c4Sopenharmony_ci2010-01-05  Roland McGrath  <roland@redhat.com>
2568da0c48c4Sopenharmony_ci
2569da0c48c4Sopenharmony_ci	* dwarf_aggregate_size.c: New file.
2570da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
2571da0c48c4Sopenharmony_ci	* libdw.h: Declare it.
2572da0c48c4Sopenharmony_ci	* libdwP.h: Add INTDECL.
2573da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.144): New set.  Add dwarf_aggregate_size.
2574da0c48c4Sopenharmony_ci
2575da0c48c4Sopenharmony_ci	* dwarf_srclang.c: Add INTDEF.
2576da0c48c4Sopenharmony_ci	* libdwP.h: Add INTDECL.
2577da0c48c4Sopenharmony_ci
2578da0c48c4Sopenharmony_ci	* dwarf.h: Add some more DW_AT_GNU_* types from gcc.
2579da0c48c4Sopenharmony_ci
2580da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_AT_GNU_vector, DW_AT_GNU_template_name.
2581da0c48c4Sopenharmony_ci
2582da0c48c4Sopenharmony_ci2009-11-21  Roland McGrath  <roland@redhat.com>
2583da0c48c4Sopenharmony_ci
2584da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (check_constant_offset): Return 1 for all
2585da0c48c4Sopenharmony_ci	non-constant forms.
2586da0c48c4Sopenharmony_ci
2587da0c48c4Sopenharmony_ci2009-10-15  Roland McGrath  <roland@redhat.com>
2588da0c48c4Sopenharmony_ci
2589da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_len): Grok DW_FORM_sec_offset,
2590da0c48c4Sopenharmony_ci	DW_FORM_exprloc, DW_FORM_flag_present, and DW_FORM_ref_sig8.
2591da0c48c4Sopenharmony_ci
2592da0c48c4Sopenharmony_ci2009-09-17  Roland McGrath  <roland@redhat.com>
2593da0c48c4Sopenharmony_ci
2594da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation_implicit_value): Make OP
2595da0c48c4Sopenharmony_ci	argument a pointer to const.
2596da0c48c4Sopenharmony_ci	* libdw.h: Update decl.
2597da0c48c4Sopenharmony_ci
2598da0c48c4Sopenharmony_ci2009-09-10  Roland McGrath  <roland@redhat.com>
2599da0c48c4Sopenharmony_ci
2600da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (store_implicit_value): New function.
2601da0c48c4Sopenharmony_ci	(__libdw_intern_expression): Use it, handle DW_OP_implicit_value.
2602da0c48c4Sopenharmony_ci	(dwarf_getlocation_implicit_value): New function.
2603da0c48c4Sopenharmony_ci	* libdw.h: Declare it.
2604da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.143): Add it.
2605da0c48c4Sopenharmony_ci
2606da0c48c4Sopenharmony_ci2009-09-09  Mark Wielaard  <mjw@redhat.com>
2607da0c48c4Sopenharmony_ci
2608da0c48c4Sopenharmony_ci	* dwarf_getcfi.c (dwarf_getcfi): Clear cfi->ebl.
2609da0c48c4Sopenharmony_ci
2610da0c48c4Sopenharmony_ci2009-08-21  Josh Stone  <jistone@redhat.com>
2611da0c48c4Sopenharmony_ci
2612da0c48c4Sopenharmony_ci	* dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
2613da0c48c4Sopenharmony_ci
2614da0c48c4Sopenharmony_ci2009-08-10  Roland McGrath  <roland@redhat.com>
2615da0c48c4Sopenharmony_ci
2616da0c48c4Sopenharmony_ci	* dwarf_getscopevar.c: Use dwarf_diename.
2617da0c48c4Sopenharmony_ci
2618da0c48c4Sopenharmony_ci2009-08-09  Roland McGrath  <roland@redhat.com>
2619da0c48c4Sopenharmony_ci
2620da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.143): New version set,
2621da0c48c4Sopenharmony_ci	inherits from ELFUTILS_0.142.
2622da0c48c4Sopenharmony_ci	* dwarf_arrayorder.c: Use OLD_VERSION and NEW_VERSION to define an
2623da0c48c4Sopenharmony_ci	alias in the ELFUTILS_0.122 version set and the default in the new set.
2624da0c48c4Sopenharmony_ci	* dwarf_srclang.c: Likewise.
2625da0c48c4Sopenharmony_ci	* dwarf_decl_file.c: Likewise.
2626da0c48c4Sopenharmony_ci	* dwarf_decl_line.c: Likewise.
2627da0c48c4Sopenharmony_ci	* dwarf_decl_column.c: Likewise.
2628da0c48c4Sopenharmony_ci	* dwarf_bytesize.c: Likewise.
2629da0c48c4Sopenharmony_ci	* dwarf_bitsize.c: Likewise.
2630da0c48c4Sopenharmony_ci	* dwarf_bitoffset.c: Likewise.
2631da0c48c4Sopenharmony_ci
2632da0c48c4Sopenharmony_ci2009-08-07  Roland McGrath  <roland@redhat.com>
2633da0c48c4Sopenharmony_ci
2634da0c48c4Sopenharmony_ci	* dwarf_arrayorder.c: Use dwarf_attr_integrate.
2635da0c48c4Sopenharmony_ci	* dwarf_srclang.c: Likewise.
2636da0c48c4Sopenharmony_ci	* dwarf_decl_file.c: Likewise.
2637da0c48c4Sopenharmony_ci	* dwarf_decl_line.c (__libdw_attr_intval): Likewise.
2638da0c48c4Sopenharmony_ci	* dwarf_bytesize.c: Likewise.
2639da0c48c4Sopenharmony_ci	* dwarf_bitsize.c: Likewise.
2640da0c48c4Sopenharmony_ci	* dwarf_bitoffset.c: Likewise.
2641da0c48c4Sopenharmony_ci
2642da0c48c4Sopenharmony_ci2009-07-22  Roland McGrath  <roland@redhat.com>
2643da0c48c4Sopenharmony_ci
2644da0c48c4Sopenharmony_ci	* dwarf_frame_cfa.c: Change calling convention.
2645da0c48c4Sopenharmony_ci	* libdw.h: Update decl.
2646da0c48c4Sopenharmony_ci
2647da0c48c4Sopenharmony_ci	* dwarf_frame_register.c: Change calling/return-value convention for
2648da0c48c4Sopenharmony_ci	value-only results and undefined/same_value.
2649da0c48c4Sopenharmony_ci	* libdw.h: Update decl.
2650da0c48c4Sopenharmony_ci
2651da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): Take new bool
2652da0c48c4Sopenharmony_ci	argument, append DW_OP_stack_value if set.  Don't take NOPS argument,
2653da0c48c4Sopenharmony_ci	return that value instead.
2654da0c48c4Sopenharmony_ci	(getlocation): Update caller.
2655da0c48c4Sopenharmony_ci	* dwarf_frame_cfa.c: Likewise.
2656da0c48c4Sopenharmony_ci	* libdwP.h: Update decl.
2657da0c48c4Sopenharmony_ci
2658da0c48c4Sopenharmony_ci2009-07-21  Roland McGrath  <roland@redhat.com>
2659da0c48c4Sopenharmony_ci
2660da0c48c4Sopenharmony_ci	* dwarf_getsrc_file.c: Ignore a CU that just has no DW_AT_stmt_list.
2661da0c48c4Sopenharmony_ci	Fix loop iteration after skipping a bogus or useless CU.
2662da0c48c4Sopenharmony_ci
2663da0c48c4Sopenharmony_ci	* dwarf_entry_breakpoints.c: Handle 0 dwarf_errno () as harmless
2664da0c48c4Sopenharmony_ci	absence, not DWARF_E_NO_DEBUG_LINE.
2665da0c48c4Sopenharmony_ci
2666da0c48c4Sopenharmony_ci2009-07-20  Roland McGrath  <roland@redhat.com>
2667da0c48c4Sopenharmony_ci
2668da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression):
2669da0c48c4Sopenharmony_ci	Handle DW_OP_stack_value.
2670da0c48c4Sopenharmony_ci
2671da0c48c4Sopenharmony_ci2009-07-16  Roland McGrath  <roland@redhat.com>
2672da0c48c4Sopenharmony_ci
2673da0c48c4Sopenharmony_ci	* dwarf_formudata.c (__libdw_formptr): Handle DW_FORM_sec_offset,
2674da0c48c4Sopenharmony_ci	reject others when CU's version > 3.
2675da0c48c4Sopenharmony_ci
2676da0c48c4Sopenharmony_ci	* dwarf_formflag.c: Handle DW_FORM_flag_present.
2677da0c48c4Sopenharmony_ci
2678da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_OP_{implicit,stack}_value from DWARF 4 draft.
2679da0c48c4Sopenharmony_ci	Also DW_TAG_type_unit and DW_TAG_rvalue_reference_type.
2680da0c48c4Sopenharmony_ci	Also DW_AT_signature, DW_AT_main_subprogram, DW_AT_data_bit_offset,
2681da0c48c4Sopenharmony_ci	and DW_AT_const_expr.
2682da0c48c4Sopenharmony_ci	Also DW_FORM_sec_offset, DW_FORM_exprloc, DW_FORM_flag_present,
2683da0c48c4Sopenharmony_ci	and DW_FORM_ref_sig8.
2684da0c48c4Sopenharmony_ci
2685da0c48c4Sopenharmony_ci2009-07-15  Roland McGrath  <roland@redhat.com>
2686da0c48c4Sopenharmony_ci
2687da0c48c4Sopenharmony_ci	* dwarf_getlocation.c: Grok DW_OP_form_tls_address,
2688da0c48c4Sopenharmony_ci	DW_OP_GNU_push_tls_address, and DW_OP_bit_piece.
2689da0c48c4Sopenharmony_ci
2690da0c48c4Sopenharmony_ci2009-07-13  Roland McGrath  <roland@redhat.com>
2691da0c48c4Sopenharmony_ci
2692da0c48c4Sopenharmony_ci	* dwarf_getlocation.c: Grok DW_OP_call_frame_cfa.
2693da0c48c4Sopenharmony_ci
2694da0c48c4Sopenharmony_ci2009-07-08  Roland McGrath  <roland@redhat.com>
2695da0c48c4Sopenharmony_ci
2696da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.142): Add dwfl_module_dwarf_cfi,
2697da0c48c4Sopenharmony_ci	dwfl_module_eh_cfi.
2698da0c48c4Sopenharmony_ci
2699da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): Add member `cfi'.
2700da0c48c4Sopenharmony_ci	* dwarf_end.c (dwarf_end): Call __libdw_destroy_frame_cache on it.
2701da0c48c4Sopenharmony_ci	* dwarf_getcfi.c: New file.
2702da0c48c4Sopenharmony_ci	* dwarf_getcfi_elf.c: New file.
2703da0c48c4Sopenharmony_ci	* dwarf_cfi_end.c: New file.
2704da0c48c4Sopenharmony_ci	* dwarf_cfi_addrframe.c: New file.
2705da0c48c4Sopenharmony_ci	* dwarf_frame_cfa.c: New file.
2706da0c48c4Sopenharmony_ci	* dwarf_frame_register.c: New file.
2707da0c48c4Sopenharmony_ci	* dwarf_frame_return_address_register.c: New file.
2708da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add them.
2709da0c48c4Sopenharmony_ci	* unwind.h: Declare those functions.
2710da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.142): Export them.
2711da0c48c4Sopenharmony_ci
2712da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (__libdw_intern_expression): New function,
2713da0c48c4Sopenharmony_ci	broken out of ...
2714da0c48c4Sopenharmony_ci	(getlocation): ... here, call it.
2715da0c48c4Sopenharmony_ci	* libdwP.h: Declare it.
2716da0c48c4Sopenharmony_ci
2717da0c48c4Sopenharmony_ci	* cie.c: New file.
2718da0c48c4Sopenharmony_ci	* fde.c: New file.
2719da0c48c4Sopenharmony_ci	* frame-cache.c: New file.
2720da0c48c4Sopenharmony_ci	* cfi.c: New file.
2721da0c48c4Sopenharmony_ci	* cfi.h: New file.
2722da0c48c4Sopenharmony_ci	* encoded-value.h: New file.
2723da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
2724da0c48c4Sopenharmony_ci	* libdwP.h: Add DWARF_E_INVALID_CFI to errors enum.
2725da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add element for it.
2726da0c48c4Sopenharmony_ci
2727da0c48c4Sopenharmony_ci	* dwarf_next_cfi.c: New file.
2728da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
2729da0c48c4Sopenharmony_ci	* libdw.h (Dwarf_CIE, Dwarf_FDE, Dwarf_CIE_Entry): New types.
2730da0c48c4Sopenharmony_ci	Declare dwarf_next_cfi.
2731da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.142): New set, inherits from ELFUTILS_0.136.
2732da0c48c4Sopenharmony_ci	Add dwarf_next_cfi.
2733da0c48c4Sopenharmony_ci
2734da0c48c4Sopenharmony_ci	* memory-access.h [! ALLOW_UNALIGNED]
2735da0c48c4Sopenharmony_ci	(read_2ubyte_unaligned): Renamed to ...
2736da0c48c4Sopenharmony_ci	(read_2ubyte_unaligned_1): ... this.  Take bool rather than Dwarf *.
2737da0c48c4Sopenharmony_ci	(read_2ubyte_unaligned): Define as macro passing dbg->other_byte_order.
2738da0c48c4Sopenharmony_ci	(read_2sbyte_unaligned): Likewise.
2739da0c48c4Sopenharmony_ci	(read_4ubyte_unaligned): Likewise.
2740da0c48c4Sopenharmony_ci	(read_4sbyte_unaligned): Likewise.
2741da0c48c4Sopenharmony_ci	(read_8ubyte_unaligned): Likewise.
2742da0c48c4Sopenharmony_ci	(read_8sbyte_unaligned): Likewise.
2743da0c48c4Sopenharmony_ci
2744da0c48c4Sopenharmony_ci	* libdwP.h (IDX_eh_frame): Remove it.
2745da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_scnnames): Remove its element.
2746da0c48c4Sopenharmony_ci
2747da0c48c4Sopenharmony_ci2009-07-08  Roland McGrath  <roland@redhat.com>
2748da0c48c4Sopenharmony_ci
2749da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_Line_s): Reorder members to pack better.
2750da0c48c4Sopenharmony_ci
2751da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (check_constant_offset): New function.
2752da0c48c4Sopenharmony_ci	(dwarf_getlocation, dwarf_getlocation_addr): Call it to
2753da0c48c4Sopenharmony_ci	handle DW_AT_data_member_location of data[48] as constant offset.
2754da0c48c4Sopenharmony_ci
2755da0c48c4Sopenharmony_ci2009-06-18  Roland McGrath  <roland@redhat.com>
2756da0c48c4Sopenharmony_ci
2757da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_read_address_inc): Constify.
2758da0c48c4Sopenharmony_ci	(__libdw_read_offset_inc): Likewise.
2759da0c48c4Sopenharmony_ci	* dwarf_getaranges.c: Likewise.
2760da0c48c4Sopenharmony_ci	* dwarf_getlocation.c: Likewise.
2761da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Likewise.
2762da0c48c4Sopenharmony_ci	* dwarf_nextcu.c: Likewise.
2763da0c48c4Sopenharmony_ci
2764da0c48c4Sopenharmony_ci2009-05-05  Petr Machata  <pmachata@redhat.com>
2765da0c48c4Sopenharmony_ci
2766da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_formptr): Declare new function.
2767da0c48c4Sopenharmony_ci	* dwarf_formudata.c: Implement it here.
2768da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation_addr):
2769da0c48c4Sopenharmony_ci	Call it instead of hand-rolled offset handling code.
2770da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
2771da0c48c4Sopenharmony_ci	* dwarf_ranges.c (dwarf_ranges): Likewise.
2772da0c48c4Sopenharmony_ci
2773da0c48c4Sopenharmony_ci2009-05-04  Petr Machata  <pmachata@redhat.com>
2774da0c48c4Sopenharmony_ci
2775da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_read_begin_end_pair_inc): Declare new function.
2776da0c48c4Sopenharmony_ci	* dwarf_ranges.c: Implement it here.
2777da0c48c4Sopenharmony_ci	(dwarf_ranges): Call it.
2778da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation_addr): Call it also here.
2779da0c48c4Sopenharmony_ci
2780da0c48c4Sopenharmony_ci2009-04-23  Petr Machata  <pmachata@redhat.com>
2781da0c48c4Sopenharmony_ci
2782da0c48c4Sopenharmony_ci	* dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead
2783da0c48c4Sopenharmony_ci	of read_*ubyte_unaligned.
2784da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Likewise.
2785da0c48c4Sopenharmony_ci	* dwarf_formstring.c (dwarf_formstring): Likewise.
2786da0c48c4Sopenharmony_ci	* dwarf_formudate.c (dwarf_formudata): Likewise.
2787da0c48c4Sopenharmony_ci	* dwarf_getaranges.c (dwarf_getaranges): Likewise.
2788da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation_addr): Likewise.
2789da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c (get_offsets): Likewise.
2790da0c48c4Sopenharmony_ci	* dwarf_nextcu.c (dwarf_nextcu): Likewise.
2791da0c48c4Sopenharmony_ci
2792da0c48c4Sopenharmony_ci2009-04-23  Petr Machata  <pmachata@redhat.com>
2793da0c48c4Sopenharmony_ci
2794da0c48c4Sopenharmony_ci	* libdwP.h (__libdw_read_addr_inc, __libdw_read_off_inc,
2795da0c48c4Sopenharmony_ci	__libdw_read_addr, __libdw_read_off): Add four new internal
2796da0c48c4Sopenharmony_ci	functions.
2797da0c48c4Sopenharmony_ci
2798da0c48c4Sopenharmony_ci2009-05-07  Roland McGrath  <roland@redhat.com>
2799da0c48c4Sopenharmony_ci
2800da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (dwarf_getmacros): Use absolute section offset in
2801da0c48c4Sopenharmony_ci	return value and OFFSET argument, not CU-relative.  Only fetch the
2802da0c48c4Sopenharmony_ci	attribute data when called with OFFSET of 0.
2803da0c48c4Sopenharmony_ci
2804da0c48c4Sopenharmony_ci2009-05-07  Petr Machata  <pmachata@redhat.com>
2805da0c48c4Sopenharmony_ci
2806da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (dwarf_getmacros): Take into account offset in
2807da0c48c4Sopenharmony_ci	DW_AT_macro_info attribute of CU DIE.
2808da0c48c4Sopenharmony_ci
2809da0c48c4Sopenharmony_ci2009-04-15  Roland McGrath  <roland@redhat.com>
2810da0c48c4Sopenharmony_ci
2811da0c48c4Sopenharmony_ci	* dwarf.h (DW_CIE_ID): Removed.
2812da0c48c4Sopenharmony_ci	(DW_CIE_ID_32, DW_CIE_ID_64): New constants replace it.
2813da0c48c4Sopenharmony_ci
2814da0c48c4Sopenharmony_ci2009-04-01  Roland McGrath  <roland@redhat.com>
2815da0c48c4Sopenharmony_ci
2816da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_CFA_GNU_negative_offset_extended.
2817da0c48c4Sopenharmony_ci
2818da0c48c4Sopenharmony_ci2009-01-28  Roland McGrath  <roland@redhat.com>
2819da0c48c4Sopenharmony_ci
2820da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_Line_s): Move out of struct Dwarf_Lines_s
2821da0c48c4Sopenharmony_ci	defn so C++ doesn't scope the name to not match the Dwarf_Line typedef.
2822da0c48c4Sopenharmony_ci
2823da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_Files_s): Replace dbg field with cu field.
2824da0c48c4Sopenharmony_ci
2825da0c48c4Sopenharmony_ci2009-01-26  Roland McGrath  <roland@redhat.com>
2826da0c48c4Sopenharmony_ci
2827da0c48c4Sopenharmony_ci	* dwarf_ranges.c: Return 0 when no ranges or *_pc attrs at all.
2828da0c48c4Sopenharmony_ci
2829da0c48c4Sopenharmony_ci2009-01-25  Roland McGrath  <roland@redhat.com>
2830da0c48c4Sopenharmony_ci
2831da0c48c4Sopenharmony_ci	* dwarf_getattrs.c: Correctly skip attribute values when restarting.
2832da0c48c4Sopenharmony_ci
2833da0c48c4Sopenharmony_ci2009-01-23  Roland McGrath  <roland@redhat.com>
2834da0c48c4Sopenharmony_ci
2835da0c48c4Sopenharmony_ci	* Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back.
2836da0c48c4Sopenharmony_ci	Put these rules under if MAINTAINER_MODE.
2837da0c48c4Sopenharmony_ci
2838da0c48c4Sopenharmony_ci2009-01-22  Roland McGrath  <roland@redhat.com>
2839da0c48c4Sopenharmony_ci
2840da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_OP_GNU_encoded_addr.
2841da0c48c4Sopenharmony_ci
2842da0c48c4Sopenharmony_ci2009-01-21  Roland McGrath  <roland@redhat.com>
2843da0c48c4Sopenharmony_ci
2844da0c48c4Sopenharmony_ci	* Makefile.am (CLEANFILES): Renamed to ...
2845da0c48c4Sopenharmony_ci	(MOSTLYCLEANFILES): ... here.
2846da0c48c4Sopenharmony_ci	(CLEANFILES): New variable, add known-dwarf.h.
2847da0c48c4Sopenharmony_ci
2848da0c48c4Sopenharmony_ci2009-01-17  Roland McGrath  <roland@redhat.com>
2849da0c48c4Sopenharmony_ci
2850da0c48c4Sopenharmony_ci	* Makefile.am (known-dwarf.h): Target renamed, not in $(srcdir).
2851da0c48c4Sopenharmony_ci	Make it unconditional.
2852da0c48c4Sopenharmony_ci	(BUILT_SOURCES): Updated.
2853da0c48c4Sopenharmony_ci
2854da0c48c4Sopenharmony_ci	* dwarf.h: Add description comments for DW_LANG_* values.
2855da0c48c4Sopenharmony_ci
2856da0c48c4Sopenharmony_ci	* Makefile.am [MAINTAINER_MODE]
2857da0c48c4Sopenharmony_ci	($(srcdir)/known-dwarf.h): New target.
2858da0c48c4Sopenharmony_ci	(BUILT_SOURCES): Add it.
2859da0c48c4Sopenharmony_ci
2860da0c48c4Sopenharmony_ci	* dwarf.h: Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit.
2861da0c48c4Sopenharmony_ci
2862da0c48c4Sopenharmony_ci2009-01-10  Ulrich Drepper  <drepper@redhat.com>
2863da0c48c4Sopenharmony_ci
2864da0c48c4Sopenharmony_ci	* dwarf_error.c: Always use __thread.  Remove all !USE_TLS code.
2865da0c48c4Sopenharmony_ci
2866da0c48c4Sopenharmony_ci2009-01-08  Roland McGrath  <roland@redhat.com>
2867da0c48c4Sopenharmony_ci
2868da0c48c4Sopenharmony_ci	* Makefile.am (libdw.so): Don't depend on $(zip_LIBS), just link it in.
2869da0c48c4Sopenharmony_ci
2870da0c48c4Sopenharmony_ci2008-01-06  Roland McGrath  <roland@redhat.com>
2871da0c48c4Sopenharmony_ci
2872da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool.
2873da0c48c4Sopenharmony_ci	Reorder members.
2874da0c48c4Sopenharmony_ci	* dwarf_haschildren.c: Return -1 for error case, not 0.
2875da0c48c4Sopenharmony_ci
2876da0c48c4Sopenharmony_ci	* Makefile.am (libdw.so): Link in $(zip_LIBS).
2877da0c48c4Sopenharmony_ci
2878da0c48c4Sopenharmony_ci2009-01-06  Ulrich Drepper  <drepper@redhat.com>
2879da0c48c4Sopenharmony_ci
2880da0c48c4Sopenharmony_ci	* dwarf.h: Add definition for unwind and call frame information.
2881da0c48c4Sopenharmony_ci
2882da0c48c4Sopenharmony_ci	* memory-access.h: Define read_ubyte_unaligned, read_sbyte_unaligned,
2883da0c48c4Sopenharmony_ci	read_ubyte_unaligned_inc, and read_sbyte_unaligned_inc.
2884da0c48c4Sopenharmony_ci
2885da0c48c4Sopenharmony_ci2008-08-15  Roland McGrath  <roland@redhat.com>
2886da0c48c4Sopenharmony_ci
2887da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.136): New version set, inherits from
2888da0c48c4Sopenharmony_ci	ELFUTILS_0.130.  Add dwfl_addrsegment, dwfl_report_segment.
2889da0c48c4Sopenharmony_ci
2890da0c48c4Sopenharmony_ci2008-01-21  Ulrich Drepper  <drepper@redhat.com>
2891da0c48c4Sopenharmony_ci
2892da0c48c4Sopenharmony_ci	* dwarf_child.c: Minor optimizations.
2893da0c48c4Sopenharmony_ci	* dwarf_getattrs.c: Likewise.
2894da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c: Likewise.
2895da0c48c4Sopenharmony_ci	* dwarf_siblingof.c: Likewise.
2896da0c48c4Sopenharmony_ci	* dwarf_tag.c: Likewise.
2897da0c48c4Sopenharmony_ci
2898da0c48c4Sopenharmony_ci2008-01-18  Ulrich Drepper  <drepper@redhat.com>
2899da0c48c4Sopenharmony_ci
2900da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match
2901da0c48c4Sopenharmony_ci	of DWARF_VERSION comparison, just fail if the file's version is newer.
2902da0c48c4Sopenharmony_ci
2903da0c48c4Sopenharmony_ci2008-01-17  Nick Clifton  <nickc@redhat.com>
2904da0c48c4Sopenharmony_ci
2905da0c48c4Sopenharmony_ci	* dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define.
2906da0c48c4Sopenharmony_ci	(DWARF3_LENGTH_MAX_ESCAPE_CODE): New define.
2907da0c48c4Sopenharmony_ci	(DWARF3_LENGTH_64_BIT): New define.
2908da0c48c4Sopenharmony_ci	* dwarf_getaranges (dwarf_getaranges): Use the new definitions.
2909da0c48c4Sopenharmony_ci	* dwarf_getpubnames: Include dwarf.h.
2910da0c48c4Sopenharmony_ci	(get_offsets): Use the new definitions.
2911da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions.
2912da0c48c4Sopenharmony_ci	* dwarf_nextcu.c: Include dwarf.h.  Correct comment.
2913da0c48c4Sopenharmony_ci	(dwarf_nextcu): Use the new definitions.
2914da0c48c4Sopenharmony_ci
2915da0c48c4Sopenharmony_ci	* libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro.
2916da0c48c4Sopenharmony_ci	* dwarf_diecu.c (dwarf_diecu): Use the new macro.
2917da0c48c4Sopenharmony_ci	* dwarf_getaranges (dwarf_getaranges): Use the new macro.
2918da0c48c4Sopenharmony_ci	* dwarf_nextcu.c (dwarf_nextcu): Use the new macro.
2919da0c48c4Sopenharmony_ci
2920da0c48c4Sopenharmony_ci	* dwarf_getpubnames (get_offsets): Replace assertion with test and
2921da0c48c4Sopenharmony_ci	error return.
2922da0c48c4Sopenharmony_ci
2923da0c48c4Sopenharmony_ci	* dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE.
2924da0c48c4Sopenharmony_ci
2925da0c48c4Sopenharmony_ci	* dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer.
2926da0c48c4Sopenharmony_ci	Set the address in the return structure to the address of the next
2927da0c48c4Sopenharmony_ci	non-sibling die, if there is no sibling and the return pointer is
2928da0c48c4Sopenharmony_ci	not the same as the die pointer.
2929da0c48c4Sopenharmony_ci	* libdw.h: Expand the description of the dwarf_siblingof prototype.
2930da0c48c4Sopenharmony_ci
2931da0c48c4Sopenharmony_ci	* dwarf_child.c: Fix typo in comment.
2932da0c48c4Sopenharmony_ci
2933da0c48c4Sopenharmony_ci	* libdwP.h (DWARF_VERSION): Change to 3.
2934da0c48c4Sopenharmony_ci
2935da0c48c4Sopenharmony_ci	* dwarf_formref.c (__libdw_formref.c): Handle attributes which do
2936da0c48c4Sopenharmony_ci	not have a initialised valp pointer.
2937da0c48c4Sopenharmony_ci
2938da0c48c4Sopenharmony_ci	* dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when
2939da0c48c4Sopenharmony_ci	the end of the attributes is reached.  When the callback fails,
2940da0c48c4Sopenharmony_ci	return the address of the failing attribute, not the address of
2941da0c48c4Sopenharmony_ci	its successor.
2942da0c48c4Sopenharmony_ci	* libdw.h: Expand the description of the dwarf_getattrs prototype.
2943da0c48c4Sopenharmony_ci
2944da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr): Use the new definition.
2945da0c48c4Sopenharmony_ci	(dwarf_child): Likewise.
2946da0c48c4Sopenharmony_ci	* dwarf_tag.c (__libdw_findabbrev): Likewise.
2947da0c48c4Sopenharmony_ci	(dwarf_tag): Likewise.
2948da0c48c4Sopenharmony_ci
2949da0c48c4Sopenharmony_ci2008-01-08  Roland McGrath  <roland@redhat.com>
2950da0c48c4Sopenharmony_ci
2951da0c48c4Sopenharmony_ci	* Makefile.am (euinclude): Variable removed.
2952da0c48c4Sopenharmony_ci	(pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
2953da0c48c4Sopenharmony_ci	(libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir).
2954da0c48c4Sopenharmony_ci
2955da0c48c4Sopenharmony_ci2007-10-17  Roland McGrath  <roland@redhat.com>
2956da0c48c4Sopenharmony_ci
2957da0c48c4Sopenharmony_ci	* libdw.h (__deprecated_attribute__): New macro.
2958da0c48c4Sopenharmony_ci	(dwarf_formref): Mark it deprecated.
2959da0c48c4Sopenharmony_ci	* dwarf_formref.c (__libdw_formref): New function, broken out of ...
2960da0c48c4Sopenharmony_ci	(dwarf_formref): ... here.  Call it.  Remove INTDEF.
2961da0c48c4Sopenharmony_ci	* libdwP.h: Remove INTDECL.
2962da0c48c4Sopenharmony_ci	Declare __libdw_formref.
2963da0c48c4Sopenharmony_ci	* dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead.
2964da0c48c4Sopenharmony_ci	* dwarf_formref_die.c: Likewise.  Handle DW_FORM_ref_addr here.
2965da0c48c4Sopenharmony_ci
2966da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result,
2967da0c48c4Sopenharmony_ci	needs to check CU->version.
2968da0c48c4Sopenharmony_ci
2969da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_CU): New member `version'.
2970da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_findcu): Initialize it.
2971da0c48c4Sopenharmony_ci
2972da0c48c4Sopenharmony_ci	* dwarf_child.c: Return 1 for null entry as first child.
2973da0c48c4Sopenharmony_ci
2974da0c48c4Sopenharmony_ci2007-10-05  Roland McGrath  <roland@redhat.com>
2975da0c48c4Sopenharmony_ci
2976da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections.
2977da0c48c4Sopenharmony_ci
2978da0c48c4Sopenharmony_ci	* libdw.h (__extern_inline): Rename to __libdw_extern_inline.
2979da0c48c4Sopenharmony_ci	[__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses.
2980da0c48c4Sopenharmony_ci
2981da0c48c4Sopenharmony_ci2007-10-03  Roland McGrath  <roland@redhat.com>
2982da0c48c4Sopenharmony_ci
2983da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf
2984da0c48c4Sopenharmony_ci	and dwfl_build_id_find_debuginfo.
2985da0c48c4Sopenharmony_ci
2986da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.130): New version set, inherits from
2987da0c48c4Sopenharmony_ci	ELFUTILS_0.127.  Add dwfl_module_build_id, dwfl_module_report_build_id.
2988da0c48c4Sopenharmony_ci
2989da0c48c4Sopenharmony_ci2007-10-02  Roland McGrath  <roland@redhat.com>
2990da0c48c4Sopenharmony_ci
2991da0c48c4Sopenharmony_ci	* libdw_visit_scopes.c (classify_die): Return walk for class_type and
2992da0c48c4Sopenharmony_ci	structure_type.
2993da0c48c4Sopenharmony_ci
2994da0c48c4Sopenharmony_ci2007-08-07  Roland McGrath  <roland@redhat.com>
2995da0c48c4Sopenharmony_ci
2996da0c48c4Sopenharmony_ci	* dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
2997da0c48c4Sopenharmony_ci	error code is DWARF_E_NOERROR (0).
2998da0c48c4Sopenharmony_ci
2999da0c48c4Sopenharmony_ci	* dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
3000da0c48c4Sopenharmony_ci	Fix typo in __libdw_visit_scopes argument.
3001da0c48c4Sopenharmony_ci
3002da0c48c4Sopenharmony_ci	* dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
3003da0c48c4Sopenharmony_ci	swallow DWARF_E_NO_DEBUG_RANGES but not other errors.
3004da0c48c4Sopenharmony_ci
3005da0c48c4Sopenharmony_ci2007-07-03  Roland McGrath  <roland@redhat.com>
3006da0c48c4Sopenharmony_ci
3007da0c48c4Sopenharmony_ci	* libdw.h (__extern_inline): New macro.
3008da0c48c4Sopenharmony_ci	[__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.
3009da0c48c4Sopenharmony_ci
3010da0c48c4Sopenharmony_ci2007-04-16  Roland McGrath  <roland@redhat.com>
3011da0c48c4Sopenharmony_ci
3012da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
3013da0c48c4Sopenharmony_ci
3014da0c48c4Sopenharmony_ci2007-04-05  Roland McGrath  <roland@redhat.com>
3015da0c48c4Sopenharmony_ci
3016da0c48c4Sopenharmony_ci	* dwarf_getsrcdirs.c: New file.
3017da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3018da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_getsrcdirs.
3019da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.127): Add it.
3020da0c48c4Sopenharmony_ci
3021da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_Files_s): New member ndirs.
3022da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
3023da0c48c4Sopenharmony_ci	zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
3024da0c48c4Sopenharmony_ci	Save DIRARRAY in the Dwarf_Files.
3025da0c48c4Sopenharmony_ci
3026da0c48c4Sopenharmony_ci	* dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
3027da0c48c4Sopenharmony_ci	address to check for all-ones base address entry.  Check directly.
3028da0c48c4Sopenharmony_ci	Reported by Sébastien Dugué <sebastien.dugue@bull.net>.
3029da0c48c4Sopenharmony_ci
3030da0c48c4Sopenharmony_ci2007-03-25  Roland McGrath  <roland@redhat.com>
3031da0c48c4Sopenharmony_ci
3032da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
3033da0c48c4Sopenharmony_ci	Return NULL when freeing RESULT on error.
3034da0c48c4Sopenharmony_ci	(global_read, scngrp_read): Check return value from check_section,
3035da0c48c4Sopenharmony_ci	break out of loop after it has freed RESULT.
3036da0c48c4Sopenharmony_ci	(valid_p): Handle null argument.
3037da0c48c4Sopenharmony_ci
3038da0c48c4Sopenharmony_ci2007-03-12  Roland McGrath  <roland@redhat.com>
3039da0c48c4Sopenharmony_ci
3040da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.
3041da0c48c4Sopenharmony_ci
3042da0c48c4Sopenharmony_ci2007-03-04  Roland McGrath  <roland@redhat.com>
3043da0c48c4Sopenharmony_ci
3044da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.127): New version set, inherits from
3045da0c48c4Sopenharmony_ci	ELFUTILS_0.126.  Add dwfl_module_addrsym.
3046da0c48c4Sopenharmony_ci
3047da0c48c4Sopenharmony_ci2007-02-10  Roland McGrath  <roland@redhat.com>
3048da0c48c4Sopenharmony_ci
3049da0c48c4Sopenharmony_ci	* dwarf.h (DW_OP_fbreg): Comment fix.
3050da0c48c4Sopenharmony_ci
3051da0c48c4Sopenharmony_ci2007-02-03  Roland McGrath  <roland@redhat.com>
3052da0c48c4Sopenharmony_ci
3053da0c48c4Sopenharmony_ci	* dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
3054da0c48c4Sopenharmony_ci	* libdw.map (ELFUTILS_0.126): New version set, inherits from
3055da0c48c4Sopenharmony_ci	ELFUTILS_0.122.  Move dwarf_getelf there; it was never truly
3056da0c48c4Sopenharmony_ci	exported in the past.
3057da0c48c4Sopenharmony_ci
3058da0c48c4Sopenharmony_ci2006-12-17  Roland McGrath  <roland@redhat.com>
3059da0c48c4Sopenharmony_ci
3060da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
3061da0c48c4Sopenharmony_ci	address when the CU is missing attributes due to buggy GCC.
3062da0c48c4Sopenharmony_ci
3063da0c48c4Sopenharmony_ci2006-08-29  Roland McGrath  <roland@redhat.com>
3064da0c48c4Sopenharmony_ci
3065da0c48c4Sopenharmony_ci	* Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
3066da0c48c4Sopenharmony_ci
3067da0c48c4Sopenharmony_ci	* libdw.h (dwarf_diecu): Add __nonnull_attribute__.
3068da0c48c4Sopenharmony_ci	(dwarf_child): Don't list arg 1 in __nonnull_attribute__.
3069da0c48c4Sopenharmony_ci
3070da0c48c4Sopenharmony_ci	* libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
3071da0c48c4Sopenharmony_ci	result is aligned.  Adjust NEWP->remaining here for this allocation.
3072da0c48c4Sopenharmony_ci	* libdwP.h: Update decl.
3073da0c48c4Sopenharmony_ci	(libdw_alloc): Update caller.
3074da0c48c4Sopenharmony_ci
3075da0c48c4Sopenharmony_ci2006-07-12  Ulrich Drepper  <drepper@redhat.com>
3076da0c48c4Sopenharmony_ci
3077da0c48c4Sopenharmony_ci	* dwarf_child.c: Adjust for internal_function_def removal.
3078da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c: Likewise.
3079da0c48c4Sopenharmony_ci	* dwarf_tag.c: Likewise.
3080da0c48c4Sopenharmony_ci	* libdw_form.c: Likewise.
3081da0c48c4Sopenharmony_ci	* memory-access.c: Likewise.
3082da0c48c4Sopenharmony_ci
3083da0c48c4Sopenharmony_ci2006-06-28  Roland McGrath  <roland@redhat.com>
3084da0c48c4Sopenharmony_ci
3085da0c48c4Sopenharmony_ci	* libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
3086da0c48c4Sopenharmony_ci
3087da0c48c4Sopenharmony_ci	* libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
3088da0c48c4Sopenharmony_ci	dwfl_module_getsym.
3089da0c48c4Sopenharmony_ci
3090da0c48c4Sopenharmony_ci2006-05-27  Ulrich Drepper  <drepper@redhat.com>
3091da0c48c4Sopenharmony_ci
3092da0c48c4Sopenharmony_ci	* libdw.h: Add extern "C".
3093da0c48c4Sopenharmony_ci
3094da0c48c4Sopenharmony_ci2006-05-22  Ulrich Drepper  <drepper@redhat.com>
3095da0c48c4Sopenharmony_ci
3096da0c48c4Sopenharmony_ci	* dwarf_getaranges.c (dwarf_getaranges): Handle files without
3097da0c48c4Sopenharmony_ci	aranges information.
3098da0c48c4Sopenharmony_ci
3099da0c48c4Sopenharmony_ci2006-05-21  Ulrich Drepper  <drepper@redhat.com>
3100da0c48c4Sopenharmony_ci
3101da0c48c4Sopenharmony_ci	* libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
3102da0c48c4Sopenharmony_ci	dwarf_haschildren.
3103da0c48c4Sopenharmony_ci
3104da0c48c4Sopenharmony_ci2006-02-28  Roland McGrath  <roland@redhat.com>
3105da0c48c4Sopenharmony_ci
3106da0c48c4Sopenharmony_ci	* dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
3107da0c48c4Sopenharmony_ci	DW_OP_* values, to match DWARF 3.0.  Add new DW_DS_*, DW_END_*
3108da0c48c4Sopenharmony_ci	values from DWARF 3.0.
3109da0c48c4Sopenharmony_ci
3110da0c48c4Sopenharmony_ci2006-02-22  Roland McGrath  <roland@redhat.com>
3111da0c48c4Sopenharmony_ci
3112da0c48c4Sopenharmony_ci	* libdw.map: Bump to 0.120; export dwfl_version.
3113da0c48c4Sopenharmony_ci
3114da0c48c4Sopenharmony_ci2005-12-22  Roland McGrath  <roland@redhat.com>
3115da0c48c4Sopenharmony_ci
3116da0c48c4Sopenharmony_ci	* libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.
3117da0c48c4Sopenharmony_ci
3118da0c48c4Sopenharmony_ci2005-12-12  Roland McGrath  <roland@redhat.com>
3119da0c48c4Sopenharmony_ci
3120da0c48c4Sopenharmony_ci	* dwarf_ranges.c: Copy CU base address-finding code from
3121da0c48c4Sopenharmony_ci	dwarf_getlocation.
3122da0c48c4Sopenharmony_ci
3123da0c48c4Sopenharmony_ci2005-12-09  Roland McGrath  <roland@redhat.com>
3124da0c48c4Sopenharmony_ci
3125da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
3126da0c48c4Sopenharmony_ci	Delay CU base lookup until it's needed.
3127da0c48c4Sopenharmony_ci	If CU base lookup fails with no error, flag invalid DWARF.
3128da0c48c4Sopenharmony_ci
3129da0c48c4Sopenharmony_ci2005-11-25  Roland McGrath  <roland@redhat.com>
3130da0c48c4Sopenharmony_ci
3131da0c48c4Sopenharmony_ci	* libdw.map: Bump to 0.118; export dwfl_module_register_names.
3132da0c48c4Sopenharmony_ci
3133da0c48c4Sopenharmony_ci2005-11-15  Roland McGrath  <roland@redhat.com>
3134da0c48c4Sopenharmony_ci
3135da0c48c4Sopenharmony_ci	* Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.
3136da0c48c4Sopenharmony_ci
3137da0c48c4Sopenharmony_ci2005-11-13  Roland McGrath  <roland@redhat.com>
3138da0c48c4Sopenharmony_ci
3139da0c48c4Sopenharmony_ci	* libdw.map: Bump to 0.117; export dwfl_module_return_value_location.
3140da0c48c4Sopenharmony_ci
3141da0c48c4Sopenharmony_ci2005-10-27  Roland McGrath  <roland@redhat.com>
3142da0c48c4Sopenharmony_ci
3143da0c48c4Sopenharmony_ci	* dwarf_entry_breakpoints.c (search_range): Fix binary search code;
3144da0c48c4Sopenharmony_ci	don't match end_sequence markers.
3145da0c48c4Sopenharmony_ci
3146da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
3147da0c48c4Sopenharmony_ci	before normal records at the same address.
3148da0c48c4Sopenharmony_ci	* dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
3149da0c48c4Sopenharmony_ci	marker.
3150da0c48c4Sopenharmony_ci
3151da0c48c4Sopenharmony_ci2005-10-26  Roland McGrath  <roland@redhat.com>
3152da0c48c4Sopenharmony_ci
3153da0c48c4Sopenharmony_ci	* dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
3154da0c48c4Sopenharmony_ci	* dwarf_func_file.c: Renamed to ...
3155da0c48c4Sopenharmony_ci	* dwarf_decl_file.c: ... here.
3156da0c48c4Sopenharmony_ci	* dwarf_func_col.c: Renamed to ...
3157da0c48c4Sopenharmony_ci	* dwarf_decl_column.c: ... here.
3158da0c48c4Sopenharmony_ci	* dwarf_func_line.c: Renamed to ...
3159da0c48c4Sopenharmony_ci	* dwarf_decl_line.c: ... here.
3160da0c48c4Sopenharmony_ci	(dwarf_func_line): Renamed to ...
3161da0c48c4Sopenharmony_ci	(dwarf_decl_line): ... this.  Take a Dwarf_Die * argument.
3162da0c48c4Sopenharmony_ci	(__libdw_func_intval): Renamed __libdw_attr_intval.
3163da0c48c4Sopenharmony_ci	* dwarf_func_name.c: File removed.
3164da0c48c4Sopenharmony_ci	* dwarf_func_lowpc.c: File removed.
3165da0c48c4Sopenharmony_ci	* dwarf_func_highpc.c: File removed.
3166da0c48c4Sopenharmony_ci	* dwarf_func_entrypc.c: File removed.
3167da0c48c4Sopenharmony_ci	* dwarf_func_die.c: File removed.
3168da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Updated.
3169da0c48c4Sopenharmony_ci	* libdw.h: Update decls.
3170da0c48c4Sopenharmony_ci	(Dwarf_Func): Type removed.
3171da0c48c4Sopenharmony_ci	* libdwP.h: Update decls.
3172da0c48c4Sopenharmony_ci	(struct Dwarf_Func_s): Type removed.
3173da0c48c4Sopenharmony_ci	* libdw.map: Updated.
3174da0c48c4Sopenharmony_ci
3175da0c48c4Sopenharmony_ci	* libdwP.h (CUDIE): New macro.
3176da0c48c4Sopenharmony_ci	* dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
3177da0c48c4Sopenharmony_ci	* dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
3178da0c48c4Sopenharmony_ci	* dwarf_ranges.c (dwarf_ranges): Likewise.
3179da0c48c4Sopenharmony_ci
3180da0c48c4Sopenharmony_ci	* dwarf_getloclist.c: Renamed to ...
3181da0c48c4Sopenharmony_ci	* dwarf_getlocation.c: ... here.
3182da0c48c4Sopenharmony_ci	(getloclist): Renamed to getlocation.
3183da0c48c4Sopenharmony_ci	(dwarf_getloclist): Renamed to dwarf_getlocation.
3184da0c48c4Sopenharmony_ci	(dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
3185da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Updated.
3186da0c48c4Sopenharmony_ci	* libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
3187da0c48c4Sopenharmony_ci	(dwarf_addrloclists): Renamed dwarf_getlocation_addr.
3188da0c48c4Sopenharmony_ci	(Dwarf_Loc): Renamed Dwarf_Op.
3189da0c48c4Sopenharmony_ci	* libdwP.h (struct loc_s): Update use.
3190da0c48c4Sopenharmony_ci	* libdw.map: Update map.
3191da0c48c4Sopenharmony_ci
3192da0c48c4Sopenharmony_ci	* dwarf_entry_breakpoints.c: Use the second line record within the
3193da0c48c4Sopenharmony_ci	function, regardless of its source location data.
3194da0c48c4Sopenharmony_ci
3195da0c48c4Sopenharmony_ci2005-10-25  Roland McGrath  <roland@redhat.com>
3196da0c48c4Sopenharmony_ci
3197da0c48c4Sopenharmony_ci	* dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.
3198da0c48c4Sopenharmony_ci
3199da0c48c4Sopenharmony_ci	* libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.
3200da0c48c4Sopenharmony_ci
3201da0c48c4Sopenharmony_ci2005-10-14  Roland McGrath  <roland@redhat.com>
3202da0c48c4Sopenharmony_ci
3203da0c48c4Sopenharmony_ci	* dwarf_diecu.c (dwarf_diecu): New file.
3204da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3205da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_diecu.
3206da0c48c4Sopenharmony_ci	* libdw.map: Export it.
3207da0c48c4Sopenharmony_ci
3208da0c48c4Sopenharmony_ci	* libdw.map: Bump to 0.116; export dwarf_ranges.
3209da0c48c4Sopenharmony_ci
3210da0c48c4Sopenharmony_ci2005-09-20  Roland McGrath  <roland@redhat.com>
3211da0c48c4Sopenharmony_ci
3212da0c48c4Sopenharmony_ci	* dwarf_haspc.c: Use dwarf_ranges.
3213da0c48c4Sopenharmony_ci	* dwarf_entry_breakpoints.c: Likewise.
3214da0c48c4Sopenharmony_ci
3215da0c48c4Sopenharmony_ci	* dwarf_ranges.c: New file.
3216da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3217da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_ranges.
3218da0c48c4Sopenharmony_ci	* libdwP.h: Add INTDECL.
3219da0c48c4Sopenharmony_ci
3220da0c48c4Sopenharmony_ci2005-09-14  Roland McGrath  <roland@redhat.com>
3221da0c48c4Sopenharmony_ci
3222da0c48c4Sopenharmony_ci	* dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
3223da0c48c4Sopenharmony_ci	prologue_end marker scanning loop.
3224da0c48c4Sopenharmony_ci
3225da0c48c4Sopenharmony_ci2005-09-11  Roland McGrath  <roland@redhat.com>
3226da0c48c4Sopenharmony_ci
3227da0c48c4Sopenharmony_ci	* dwarf.h: Comment typo fix.
3228da0c48c4Sopenharmony_ci
3229da0c48c4Sopenharmony_ci2005-09-07  Roland McGrath  <roland@redhat.com>
3230da0c48c4Sopenharmony_ci
3231da0c48c4Sopenharmony_ci	* dwarf_entry_breakpoints.c: New file.
3232da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3233da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_entry_breakpoints.
3234da0c48c4Sopenharmony_ci
3235da0c48c4Sopenharmony_ci	* dwarf_entrypc.c: New file.
3236da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3237da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_entrypc.
3238da0c48c4Sopenharmony_ci	* libdwP.h: Add INTDECL.
3239da0c48c4Sopenharmony_ci
3240da0c48c4Sopenharmony_ci2005-08-28  Ulrich Drepper  <drepper@redhat.com>
3241da0c48c4Sopenharmony_ci
3242da0c48c4Sopenharmony_ci	* Makefile.am: Use $(LINK) not $(CC) when creating DSO.
3243da0c48c4Sopenharmony_ci	(%.os): Use COMPILE.os.
3244da0c48c4Sopenharmony_ci	(COMPILE.os): Filter out gconv options.
3245da0c48c4Sopenharmony_ci
3246da0c48c4Sopenharmony_ci2005-08-27  Roland McGrath  <roland@redhat.com>
3247da0c48c4Sopenharmony_ci
3248da0c48c4Sopenharmony_ci	* dwarf_getscopes.c (dwarf_getscopes): Rewritten using
3249da0c48c4Sopenharmony_ci	__libdw_visit_scopes.
3250da0c48c4Sopenharmony_ci
3251da0c48c4Sopenharmony_ci	* dwarf_getscopes_die.c: New file.
3252da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3253da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_getscopes_die.
3254da0c48c4Sopenharmony_ci	* libdw.map: Bump to 0.115 and add it.
3255da0c48c4Sopenharmony_ci
3256da0c48c4Sopenharmony_ci	* libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
3257da0c48c4Sopenharmony_ci	containing a DIE and its parent pointer, instead of just Dwarf_Die.
3258da0c48c4Sopenharmony_ci	Take two functions for both preorder and postorder visitors.
3259da0c48c4Sopenharmony_ci	* libdwP.h: Update decl.
3260da0c48c4Sopenharmony_ci	(struct Dwarf_Die_Chain): New type.
3261da0c48c4Sopenharmony_ci	* dwarf_func_inline.c: Update uses.
3262da0c48c4Sopenharmony_ci
3263da0c48c4Sopenharmony_ci	* dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
3264da0c48c4Sopenharmony_ci	Add INTDEF.
3265da0c48c4Sopenharmony_ci	* libdwP.h: Add INTDECL.
3266da0c48c4Sopenharmony_ci	* dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.
3267da0c48c4Sopenharmony_ci
3268da0c48c4Sopenharmony_ci2005-08-23  Roland McGrath  <roland@redhat.com>
3269da0c48c4Sopenharmony_ci
3270da0c48c4Sopenharmony_ci	* dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
3271da0c48c4Sopenharmony_ci	DW_AT_specification the same as DW_AT_abstract_origin.
3272da0c48c4Sopenharmony_ci
3273da0c48c4Sopenharmony_ci2005-08-20  Roland McGrath  <roland@redhat.com>
3274da0c48c4Sopenharmony_ci
3275da0c48c4Sopenharmony_ci	* libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
3276da0c48c4Sopenharmony_ci	Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
3277da0c48c4Sopenharmony_ci	and dwfl_report_offline.
3278da0c48c4Sopenharmony_ci
3279da0c48c4Sopenharmony_ci2005-08-19  Roland McGrath  <roland@redhat.com>
3280da0c48c4Sopenharmony_ci
3281da0c48c4Sopenharmony_ci	* libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
3282da0c48c4Sopenharmony_ci	Add dwfl_module_relocate_address, dwfl_module_relocations,
3283da0c48c4Sopenharmony_ci	dwfl_module_relocation_info.
3284da0c48c4Sopenharmony_ci
3285da0c48c4Sopenharmony_ci2005-08-18  Roland McGrath  <roland@redhat.com>
3286da0c48c4Sopenharmony_ci
3287da0c48c4Sopenharmony_ci	* dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
3288da0c48c4Sopenharmony_ci	outermost scope in the results.
3289da0c48c4Sopenharmony_ci
3290da0c48c4Sopenharmony_ci2005-08-15  Roland McGrath  <roland@redhat.com>
3291da0c48c4Sopenharmony_ci
3292da0c48c4Sopenharmony_ci	* dwarf_func_inline.c: New file.
3293da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3294da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
3295da0c48c4Sopenharmony_ci	* libdw.map: Add them.
3296da0c48c4Sopenharmony_ci
3297da0c48c4Sopenharmony_ci	* dwarf_func_die.c: New file.
3298da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3299da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_func_die.
3300da0c48c4Sopenharmony_ci	* libdw.map: Add it.  Bump version to ELFUTILS_0.114.
3301da0c48c4Sopenharmony_ci
3302da0c48c4Sopenharmony_ci2005-08-10  Ulrich Drepper  <drepper@redhat.com>
3303da0c48c4Sopenharmony_ci
3304da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
3305da0c48c4Sopenharmony_ci	of DW_LNS_set_epilog_begin.
3306da0c48c4Sopenharmony_ci
3307da0c48c4Sopenharmony_ci2005-08-09  Roland McGrath  <roland@redhat.com>
3308da0c48c4Sopenharmony_ci
3309da0c48c4Sopenharmony_ci	* dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.
3310da0c48c4Sopenharmony_ci
3311da0c48c4Sopenharmony_ci	* dwarf_end.c: Add INTDEF.
3312da0c48c4Sopenharmony_ci	* dwarf_error.c (dwarf_errmsg): Likewise.
3313da0c48c4Sopenharmony_ci	* libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.
3314da0c48c4Sopenharmony_ci
3315da0c48c4Sopenharmony_ci2005-08-01  Roland McGrath  <roland@redhat.com>
3316da0c48c4Sopenharmony_ci
3317da0c48c4Sopenharmony_ci	* dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
3318da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
3319da0c48c4Sopenharmony_ci
3320da0c48c4Sopenharmony_ci2005-07-28  Ulrich Drepper  <drepper@redhat.com>
3321da0c48c4Sopenharmony_ci
3322da0c48c4Sopenharmony_ci	* Makefile.am (libdw.so): No need to link with libeu.a anymore.
3323da0c48c4Sopenharmony_ci	(libdw_a_LIBADD): Add all files from libdwfl.a.
3324da0c48c4Sopenharmony_ci
3325da0c48c4Sopenharmony_ci2005-07-27  Roland McGrath  <roland@redhat.com>
3326da0c48c4Sopenharmony_ci
3327da0c48c4Sopenharmony_ci	* Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
3328da0c48c4Sopenharmony_ci	along with ../libebl/libebl.a and ../lib/libeu.a;
3329da0c48c4Sopenharmony_ci	depend on ../libelf/libelf.so.
3330da0c48c4Sopenharmony_ci	(libdw_so_LDADD): New variable.
3331da0c48c4Sopenharmony_ci	* libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.
3332da0c48c4Sopenharmony_ci
3333da0c48c4Sopenharmony_ci	* libdw.map: Define an empty base version and move all symbols to
3334da0c48c4Sopenharmony_ci	version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.
3335da0c48c4Sopenharmony_ci
3336da0c48c4Sopenharmony_ci2005-07-23  Ulrich Drepper  <drepper@redhat.com>
3337da0c48c4Sopenharmony_ci
3338da0c48c4Sopenharmony_ci	* dwarf_error.c: Add internal alias for dwarf_errno.
3339da0c48c4Sopenharmony_ci	* libdwP.h: Declare __dwarf_errno_internal.
3340da0c48c4Sopenharmony_ci	* dwarf_getloclist.c: Use INTDEF for dwarf_errno.
3341da0c48c4Sopenharmony_ci
3342da0c48c4Sopenharmony_ci	* dwarf_error.c [USE_TLS]: Actually use __thread in definition of
3343da0c48c4Sopenharmony_ci	global_error.
3344da0c48c4Sopenharmony_ci
3345da0c48c4Sopenharmony_ci2005-06-01  Roland McGrath  <roland@redhat.com>
3346da0c48c4Sopenharmony_ci
3347da0c48c4Sopenharmony_ci	* dwarf_getaranges.c (dwarf_getaranges): Sort result array.
3348da0c48c4Sopenharmony_ci	* dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.
3349da0c48c4Sopenharmony_ci
3350da0c48c4Sopenharmony_ci2005-06-08  Roland McGrath  <roland@redhat.com>
3351da0c48c4Sopenharmony_ci
3352da0c48c4Sopenharmony_ci	* memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
3353da0c48c4Sopenharmony_ci	(get_sleb128_step, get_sleb128): Likewise.
3354da0c48c4Sopenharmony_ci	* dwarf_getattrs.c (dwarf_getattrs): Add consts.
3355da0c48c4Sopenharmony_ci	* dwarf_getloclist.c (getloclist): Likewise.
3356da0c48c4Sopenharmony_ci	* dwarf_formblock.c (dwarf_formblock): Likewise.
3357da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
3358da0c48c4Sopenharmony_ci	* dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
3359da0c48c4Sopenharmony_ci	* dwarf_formref.c (dwarf_formref): Likewise.
3360da0c48c4Sopenharmony_ci	* dwarf_formsdata.c (dwarf_formsdata): Likewise.
3361da0c48c4Sopenharmony_ci	* dwarf_formudata.c (dwarf_formudata): Likewise.
3362da0c48c4Sopenharmony_ci	* dwarf_haschildren.c (dwarf_haschildren): Likewise.
3363da0c48c4Sopenharmony_ci	* dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
3364da0c48c4Sopenharmony_ci	* dwarf_tag.c (dwarf_tag): Likewise.
3365da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
3366da0c48c4Sopenharmony_ci	* memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
3367da0c48c4Sopenharmony_ci	* libdw_form.c (__libdw_form_val_len): Likewise.
3368da0c48c4Sopenharmony_ci	* libdwP.h: Update decl.
3369da0c48c4Sopenharmony_ci
3370da0c48c4Sopenharmony_ci2005-06-04  Roland McGrath  <roland@redhat.com>
3371da0c48c4Sopenharmony_ci
3372da0c48c4Sopenharmony_ci	* memory-access.h (get_uleb128_rest_return): New macro.
3373da0c48c4Sopenharmony_ci	[! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
3374da0c48c4Sopenharmony_ci	(get_sleb128_rest_return): New macro.
3375da0c48c4Sopenharmony_ci	[! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
3376da0c48c4Sopenharmony_ci	* memory-access.c: New file.
3377da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3378da0c48c4Sopenharmony_ci	(DEFS): Add -DIS_LIBDW.
3379da0c48c4Sopenharmony_ci
3380da0c48c4Sopenharmony_ci2005-05-31  Roland McGrath  <roland@redhat.com>
3381da0c48c4Sopenharmony_ci
3382da0c48c4Sopenharmony_ci	* dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
3383da0c48c4Sopenharmony_ci	formref offset.
3384da0c48c4Sopenharmony_ci
3385da0c48c4Sopenharmony_ci2005-05-30  Roland McGrath  <roland@redhat.com>
3386da0c48c4Sopenharmony_ci
3387da0c48c4Sopenharmony_ci	* dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
3388da0c48c4Sopenharmony_ci	address if DW_AT_low_pc is missing.  Not to spec, but GCC generates it.
3389da0c48c4Sopenharmony_ci
3390da0c48c4Sopenharmony_ci	* dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
3391da0c48c4Sopenharmony_ci	BEGIN value.  Instead, match base address entries separately for
3392da0c48c4Sopenharmony_ci	32/64 size cases.
3393da0c48c4Sopenharmony_ci
3394da0c48c4Sopenharmony_ci2005-05-28  Roland McGrath  <roland@redhat.com>
3395da0c48c4Sopenharmony_ci
3396da0c48c4Sopenharmony_ci	* dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
3397da0c48c4Sopenharmony_ci	past location expression contents.
3398da0c48c4Sopenharmony_ci
3399da0c48c4Sopenharmony_ci2005-05-23  Roland McGrath  <roland@redhat.com>
3400da0c48c4Sopenharmony_ci
3401da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Comment typo fix.
3402da0c48c4Sopenharmony_ci
3403da0c48c4Sopenharmony_ci	* dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
3404da0c48c4Sopenharmony_ci	* dwarf_getloclist.c (dwarf_addrloclists): Likewise.
3405da0c48c4Sopenharmony_ci
3406da0c48c4Sopenharmony_ci2005-05-22  Ulrich Drepper  <drepper@redhat.com>
3407da0c48c4Sopenharmony_ci
3408da0c48c4Sopenharmony_ci	* libdwP.h: Only use INTDECL for alias prototypes.
3409da0c48c4Sopenharmony_ci
3410da0c48c4Sopenharmony_ci2005-05-19  Roland McGrath  <roland@redhat.com>
3411da0c48c4Sopenharmony_ci
3412da0c48c4Sopenharmony_ci	* dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.
3413da0c48c4Sopenharmony_ci
3414da0c48c4Sopenharmony_ci	* dwarf_getscopevar.c: New file.
3415da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3416da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_getscopevar.
3417da0c48c4Sopenharmony_ci
3418da0c48c4Sopenharmony_ci	* dwarf_getsrcfiles.c: Add INTDEF.
3419da0c48c4Sopenharmony_ci	* dwarf_haschildren.c: Likewise.
3420da0c48c4Sopenharmony_ci	* libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.
3421da0c48c4Sopenharmony_ci
3422da0c48c4Sopenharmony_ci	* dwarf_getscopes.c: New file.
3423da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3424da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_getscopes.
3425da0c48c4Sopenharmony_ci	* libdw.map: Add it.
3426da0c48c4Sopenharmony_ci
3427da0c48c4Sopenharmony_ci2005-05-18  Roland McGrath  <roland@redhat.com>
3428da0c48c4Sopenharmony_ci
3429da0c48c4Sopenharmony_ci	* libdwP.h (IDX_debug_ranges): New enum constant.
3430da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
3431da0c48c4Sopenharmony_ci	* libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
3432da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add it.
3433da0c48c4Sopenharmony_ci	* dwarf_haspc.c: New file.
3434da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_haspc.
3435da0c48c4Sopenharmony_ci	* libdw.map: Add it.
3436da0c48c4Sopenharmony_ci	* libdwP.h: Add INTDECL.
3437da0c48c4Sopenharmony_ci
3438da0c48c4Sopenharmony_ci	* dwarf_attr_integrate.c: New file.
3439da0c48c4Sopenharmony_ci	* dwarf_hasattr_integrate.c: New file.
3440da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add them.
3441da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
3442da0c48c4Sopenharmony_ci	* libdw.map: Add them.
3443da0c48c4Sopenharmony_ci
3444da0c48c4Sopenharmony_ci	* dwarf_hasattr.c: Add INTDEF.
3445da0c48c4Sopenharmony_ci	* libdwP.h: Add INTDECL for it.
3446da0c48c4Sopenharmony_ci
3447da0c48c4Sopenharmony_ci	* dwarf_formref_die.c: New file.
3448da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add it.
3449da0c48c4Sopenharmony_ci	* libdw.h (dwarf_formref_die): Declare it.
3450da0c48c4Sopenharmony_ci	* libdwP.h (dwarf_formref_die): Add INTDECL.
3451da0c48c4Sopenharmony_ci	* libdw.map: Add it.
3452da0c48c4Sopenharmony_ci
3453da0c48c4Sopenharmony_ci	* dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
3454da0c48c4Sopenharmony_ci	of ...
3455da0c48c4Sopenharmony_ci	(dwarf_getloclist): ... here.  Call them.
3456da0c48c4Sopenharmony_ci	(dwarf_addrloclists): New function.
3457da0c48c4Sopenharmony_ci	* libdw.h: Declare it.
3458da0c48c4Sopenharmony_ci	* libdw.map: Add it.
3459da0c48c4Sopenharmony_ci
3460da0c48c4Sopenharmony_ci	* dwarf_getmacros.c (dwarf_getmacros): Don't bail at
3461da0c48c4Sopenharmony_ci	DW_MACINFO_end_file.  Recognize type 0 as terminator.
3462da0c48c4Sopenharmony_ci
3463da0c48c4Sopenharmony_ci2005-05-05  Roland McGrath  <roland@redhat.com>
3464da0c48c4Sopenharmony_ci
3465da0c48c4Sopenharmony_ci	* dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.
3466da0c48c4Sopenharmony_ci
3467da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
3468da0c48c4Sopenharmony_ci	the line program does not produce all entries in ascending order.
3469da0c48c4Sopenharmony_ci
3470da0c48c4Sopenharmony_ci2005-04-25  Ulrich Drepper  <drepper@redhat.com>
3471da0c48c4Sopenharmony_ci
3472da0c48c4Sopenharmony_ci	* dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
3473da0c48c4Sopenharmony_ci	occurences (e.g., inlines) better.
3474da0c48c4Sopenharmony_ci
3475da0c48c4Sopenharmony_ci2005-04-24  Ulrich Drepper  <drepper@redhat.com>
3476da0c48c4Sopenharmony_ci
3477da0c48c4Sopenharmony_ci	* libdw.h (DWARF_END_ABBREV): Define.
3478da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
3479da0c48c4Sopenharmony_ci	end is reached.
3480da0c48c4Sopenharmony_ci	* dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
3481da0c48c4Sopenharmony_ci	of records reached.
3482da0c48c4Sopenharmony_ci	* dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
3483da0c48c4Sopenharmony_ci	as error of __libdw_getabbrev.
3484da0c48c4Sopenharmony_ci
3485da0c48c4Sopenharmony_ci2005-04-04  Ulrich Drepper  <drepper@redhat.com>
3486da0c48c4Sopenharmony_ci
3487da0c48c4Sopenharmony_ci	* dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.
3488da0c48c4Sopenharmony_ci
3489da0c48c4Sopenharmony_ci	* dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
3490da0c48c4Sopenharmony_ci	results back to caller.
3491da0c48c4Sopenharmony_ci
3492da0c48c4Sopenharmony_ci2005-04-04  Roland McGrath  <roland@redhat.com>
3493da0c48c4Sopenharmony_ci
3494da0c48c4Sopenharmony_ci	* dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.
3495da0c48c4Sopenharmony_ci
3496da0c48c4Sopenharmony_ci	* dwarf_func_line.c (__libdw_func_intval): Use internal_function in
3497da0c48c4Sopenharmony_ci	defn.
3498da0c48c4Sopenharmony_ci
3499da0c48c4Sopenharmony_ci2005-04-04  Ulrich Drepper  <drepper@redhat.com>
3500da0c48c4Sopenharmony_ci
3501da0c48c4Sopenharmony_ci	* dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.
3502da0c48c4Sopenharmony_ci
3503da0c48c4Sopenharmony_ci	* dwarf_getsrc_file.c: New file.
3504da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
3505da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_getsrc_file.
3506da0c48c4Sopenharmony_ci	* libdw.map: Add dwarf_getsrc_file.
3507da0c48c4Sopenharmony_ci
3508da0c48c4Sopenharmony_ci2005-04-02  Ulrich Drepper  <drepper@redhat.com>
3509da0c48c4Sopenharmony_ci
3510da0c48c4Sopenharmony_ci	* dwarf_func_entrypc.c: New file.
3511da0c48c4Sopenharmony_ci	* dwarf_func_col.c: New file.
3512da0c48c4Sopenharmony_ci	* dwarf_func_line.c: New file.
3513da0c48c4Sopenharmony_ci	* dwarf_func_file.c: New file.
3514da0c48c4Sopenharmony_ci	* libdw.h: Add prototypes for new functions.
3515da0c48c4Sopenharmony_ci	* libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
3516da0c48c4Sopenharmony_ci	dwarf_func_file.
3517da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
3518da0c48c4Sopenharmony_ci	dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
3519da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_Func_s): Add cudie element.
3520da0c48c4Sopenharmony_ci	Declare __libdw_func_intval and __dwarf_formsdata_internal.
3521da0c48c4Sopenharmony_ci	* dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
3522da0c48c4Sopenharmony_ci	* dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.
3523da0c48c4Sopenharmony_ci
3524da0c48c4Sopenharmony_ci	* dwarf.h: Add some DWARF3 definitions.
3525da0c48c4Sopenharmony_ci
3526da0c48c4Sopenharmony_ci2005-04-01  Ulrich Drepper  <drepper@redhat.com>
3527da0c48c4Sopenharmony_ci
3528da0c48c4Sopenharmony_ci	* dwarf_getfuncs.c: New file.
3529da0c48c4Sopenharmony_ci	* dwarf_func_highpc.c: New file.
3530da0c48c4Sopenharmony_ci	* dwarf_func_lowpc.c: New file.
3531da0c48c4Sopenharmony_ci	* dwarf_func_name.c: New file.
3532da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
3533da0c48c4Sopenharmony_ci	dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
3534da0c48c4Sopenharmony_ci	* libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
3535da0c48c4Sopenharmony_ci	and dwarf_func_name.
3536da0c48c4Sopenharmony_ci	* libdw.h: Add prototypes for new functions.
3537da0c48c4Sopenharmony_ci	* dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
3538da0c48c4Sopenharmony_ci	* dwarf_siblingof.c: Likewise.
3539da0c48c4Sopenharmony_ci	* dwarf_dieoffset.c: Likewise.
3540da0c48c4Sopenharmony_ci	* dwarf_highpc.c: Likewise.
3541da0c48c4Sopenharmony_ci	* dwarf_lowpc.c: Likewise.
3542da0c48c4Sopenharmony_ci	* libdwP.h: Add prototypes for internal functions.
3543da0c48c4Sopenharmony_ci	Define Dwarf_Func_s structure.
3544da0c48c4Sopenharmony_ci
3545da0c48c4Sopenharmony_ci2005-03-29  Ulrich Drepper  <drepper@redhat.com>
3546da0c48c4Sopenharmony_ci
3547da0c48c4Sopenharmony_ci	* libdw.h: Add padding in Dwarf_die.
3548da0c48c4Sopenharmony_ci
3549da0c48c4Sopenharmony_ci	* dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
3550da0c48c4Sopenharmony_ci	* dwarf_attr.c: Likewise.
3551da0c48c4Sopenharmony_ci	* dwarf_begin.c: Likewise.
3552da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c: Likewise.
3553da0c48c4Sopenharmony_ci	* dwarf_bitoffset.c: Likewise.
3554da0c48c4Sopenharmony_ci	* dwarf_bitsize.c: Likewise.
3555da0c48c4Sopenharmony_ci	* dwarf_bytesize.c: Likewise.
3556da0c48c4Sopenharmony_ci	* dwarf_diename.c: Likewise.
3557da0c48c4Sopenharmony_ci	* dwarf_formaddr.c: Likewise.
3558da0c48c4Sopenharmony_ci	* dwarf_formblock.c: Likewise.
3559da0c48c4Sopenharmony_ci	* dwarf_formref.c: Likewise.
3560da0c48c4Sopenharmony_ci	* dwarf_formstring.c: Likewise.
3561da0c48c4Sopenharmony_ci	* dwarf_formudata.c: Likewise.
3562da0c48c4Sopenharmony_ci	* dwarf_getarange_addr.c: Likewise.
3563da0c48c4Sopenharmony_ci	* dwarf_getarangeinfo.c: Likewise.
3564da0c48c4Sopenharmony_ci	* dwarf_getaranges.c: Likewise.
3565da0c48c4Sopenharmony_ci	* dwarf_getloclist.c: Likewise.
3566da0c48c4Sopenharmony_ci	* dwarf_getmacros.c: Likewise.
3567da0c48c4Sopenharmony_ci	* dwarf_getsrc_die.c: Likewise.
3568da0c48c4Sopenharmony_ci	* dwarf_getsrcfiles.c: Likewise.
3569da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Likewise.
3570da0c48c4Sopenharmony_ci	* dwarf_highpc.c: Likewise.
3571da0c48c4Sopenharmony_ci	* dwarf_lowpc.c: Likewise.
3572da0c48c4Sopenharmony_ci	* dwarf_nextcu.c: Likewise.
3573da0c48c4Sopenharmony_ci	* dwarf_offdie.c: Likewise.
3574da0c48c4Sopenharmony_ci	* dwarf_siblingof.c: Likewise.
3575da0c48c4Sopenharmony_ci	* dwarf_srclang.c: Likewise.
3576da0c48c4Sopenharmony_ci	* dwarf_tag.c: Likewise.
3577da0c48c4Sopenharmony_ci	* libdw_findcu.c: Likewise.
3578da0c48c4Sopenharmony_ci	* libdwP.h: Add prototypes for internal functions.
3579da0c48c4Sopenharmony_ci
3580da0c48c4Sopenharmony_ci	* dwarf_addrdie.c: New file.
3581da0c48c4Sopenharmony_ci	* dwarf_macro_opcode.c: New file.
3582da0c48c4Sopenharmony_ci	* dwarf_macro_param1.c: New file.
3583da0c48c4Sopenharmony_ci	* dwarf_macro_param2.c: New file.
3584da0c48c4Sopenharmony_ci	* libdw.h: Add declarations.  Move Dwarf_Macro definition to libdwP.h.
3585da0c48c4Sopenharmony_ci	* libdwP.h: Remove Dwarf_Macro definition.
3586da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
3587da0c48c4Sopenharmony_ci	dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
3588da0c48c4Sopenharmony_ci	* libdw.map: Add entries for new functions.
3589da0c48c4Sopenharmony_ci
3590da0c48c4Sopenharmony_ci2005-03-21  Ulrich Drepper  <drepper@redhat.com>
3591da0c48c4Sopenharmony_ci
3592da0c48c4Sopenharmony_ci	* libdw.h: Handle broken gcc < 4.
3593da0c48c4Sopenharmony_ci
3594da0c48c4Sopenharmony_ci2005-02-15  Ulrich Drepper  <drepper@redhat.com>
3595da0c48c4Sopenharmony_ci
3596da0c48c4Sopenharmony_ci	* Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
3597da0c48c4Sopenharmony_ci
3598da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c: Fix warnings.
3599da0c48c4Sopenharmony_ci	* dwarf_dieoffset.c: Likewise.
3600da0c48c4Sopenharmony_ci	* dwarf_end.c: Likewise.
3601da0c48c4Sopenharmony_ci	* dwarf_error.c: Likewise.
3602da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c: Likewise.
3603da0c48c4Sopenharmony_ci
3604da0c48c4Sopenharmony_ci	* libdwP.h: Add new error values.
3605da0c48c4Sopenharmony_ci	* dwarf_error.c: Support new error values.
3606da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c: Check parameter value.
3607da0c48c4Sopenharmony_ci
3608da0c48c4Sopenharmony_ci2005-02-05  Ulrich Drepper  <drepper@redhat.com>
3609da0c48c4Sopenharmony_ci
3610da0c48c4Sopenharmony_ci	* Makefile.am: Check for text relocations in constructed DSO.
3611da0c48c4Sopenharmony_ci
3612da0c48c4Sopenharmony_ci	* Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.
3613da0c48c4Sopenharmony_ci
3614da0c48c4Sopenharmony_ci2005-02-04  Ulrich Drepper  <drepper@redhat.com>
3615da0c48c4Sopenharmony_ci
3616da0c48c4Sopenharmony_ci	* dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
3617da0c48c4Sopenharmony_ci	checks to not read over buffer boundaries for ill-formed DWARF data.
3618da0c48c4Sopenharmony_ci
3619da0c48c4Sopenharmony_ci2004-09-25  Ulrich Drepper  <drepper@redhat.com>
3620da0c48c4Sopenharmony_ci
3621da0c48c4Sopenharmony_ci	* dwarf_child.c: Make compile with gcc 4.0.
3622da0c48c4Sopenharmony_ci	* dwarf_error.c: Likewise.
3623da0c48c4Sopenharmony_ci	* dwarf_formblock.c: Likewise.
3624da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c: Likewise.
3625da0c48c4Sopenharmony_ci	* dwarf_getattrs.c: Likewise.
3626da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Likewise.
3627da0c48c4Sopenharmony_ci	* dwarf_tag.c: Likewise.
3628da0c48c4Sopenharmony_ci	* libdw_form.c: Likewise.
3629da0c48c4Sopenharmony_ci
3630da0c48c4Sopenharmony_ci2004-01-20  Ulrich Drepper  <drepper@redhat.com>
3631da0c48c4Sopenharmony_ci
3632da0c48c4Sopenharmony_ci	* Makefile.am: Support building with mudflap.
3633da0c48c4Sopenharmony_ci
3634da0c48c4Sopenharmony_ci	* dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
3635da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Likewise.
3636da0c48c4Sopenharmony_ci	* dwarf_memory-access.h: Likewise.
3637da0c48c4Sopenharmony_ci
3638da0c48c4Sopenharmony_ci2004-01-19  Ulrich Drepper  <drepper@redhat.com>
3639da0c48c4Sopenharmony_ci
3640da0c48c4Sopenharmony_ci	* dwarf_getsrcfiles.c: Third parameter can be NULL.
3641da0c48c4Sopenharmony_ci
3642da0c48c4Sopenharmony_ci	* libdw.h: Define Dwarf_macro.  Declare dwarf_getmacros.
3643da0c48c4Sopenharmony_ci	Third parameter of dwarf_getsrcfiles can be NULL.
3644da0c48c4Sopenharmony_ci
3645da0c48c4Sopenharmony_ci	* libdw.map: Add dwarf_getmacros.
3646da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
3647da0c48c4Sopenharmony_ci	* dwarf_getmacros.c: New file.
3648da0c48c4Sopenharmony_ci
3649da0c48c4Sopenharmony_ci2004-01-18  Ulrich Drepper  <drepper@redhat.com>
3650da0c48c4Sopenharmony_ci
3651da0c48c4Sopenharmony_ci	* libdw.h: Second parameter of dwarf_getaranges can be NULL.
3652da0c48c4Sopenharmony_ci
3653da0c48c4Sopenharmony_ci	* dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
3654da0c48c4Sopenharmony_ci
3655da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c:
3656da0c48c4Sopenharmony_ci	Use read_2ubyte_unaligned_inc instead of _inc-less variant.
3657da0c48c4Sopenharmony_ci
3658da0c48c4Sopenharmony_ci	* dwarf_getaranges.c: Allow naranges parameter to be NULL.
3659da0c48c4Sopenharmony_ci
3660da0c48c4Sopenharmony_ci	* libdwP.h (_): Use elfutils domain.
3661da0c48c4Sopenharmony_ci
3662da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
3663da0c48c4Sopenharmony_ci
3664da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Fix typo in comment.
3665da0c48c4Sopenharmony_ci
3666da0c48c4Sopenharmony_ci2004-01-17  Ulrich Drepper  <drepper@redhat.com>
3667da0c48c4Sopenharmony_ci
3668da0c48c4Sopenharmony_ci	* Makefile.am: Support building with mudflap.
3669da0c48c4Sopenharmony_ci
3670da0c48c4Sopenharmony_ci2004-01-16  Ulrich Drepper  <drepper@redhat.com>
3671da0c48c4Sopenharmony_ci
3672da0c48c4Sopenharmony_ci	* memory-access.h: Add lots of const in case a pointer passed is const.
3673da0c48c4Sopenharmony_ci
3674da0c48c4Sopenharmony_ci	* dwarf_formflag.c: New file.
3675da0c48c4Sopenharmony_ci	* dwarf_getattrs.c: New file.
3676da0c48c4Sopenharmony_ci	* dwarf_error.c: Add new error value.
3677da0c48c4Sopenharmony_ci	* libdw.h: Add prototypes for new functions.  Adjust prototype for
3678da0c48c4Sopenharmony_ci	dwarf_getpubnames.
3679da0c48c4Sopenharmony_ci	* libdw.map: Add new functions.
3680da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c: Change type of return value and fourth parameter
3681da0c48c4Sopenharmony_ci	to ptrdiff_t.
3682da0c48c4Sopenharmony_ci	* libdwP.h: Add new error value.
3683da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
3684da0c48c4Sopenharmony_ci	dwarf_formflag.c.
3685da0c48c4Sopenharmony_ci
3686da0c48c4Sopenharmony_ci	* dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
3687da0c48c4Sopenharmony_ci
3688da0c48c4Sopenharmony_ci2004-01-12  Ulrich Drepper  <drepper@redhat.com>
3689da0c48c4Sopenharmony_ci
3690da0c48c4Sopenharmony_ci	* dwarf_getarange_addr.c: New file
3691da0c48c4Sopenharmony_ci	* dwarf_getarangeinfo.c: New file.
3692da0c48c4Sopenharmony_ci	* dwarf_getaranges.c: New file.
3693da0c48c4Sopenharmony_ci	* dwarf_onerange.c: New file.
3694da0c48c4Sopenharmony_ci	* libdw.h: Declare new functions.  Define Dwarf_Arange and
3695da0c48c4Sopenharmony_ci	Dwarf_Aranges.
3696da0c48c4Sopenharmony_ci	* libdw.map: Add new functions.
3697da0c48c4Sopenharmony_ci	* libdwP.h: Add new errors.  Add aranges member to struct Dwarf.
3698da0c48c4Sopenharmony_ci	Define Dwarf_Aranges_s and Dwarf_Arange_s.
3699da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
3700da0c48c4Sopenharmony_ci	dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
3701da0c48c4Sopenharmony_ci	* dwarf_error.c: Add new message.
3702da0c48c4Sopenharmony_ci
3703da0c48c4Sopenharmony_ci2004-01-11  Ulrich Drepper  <drepper@redhat.com>
3704da0c48c4Sopenharmony_ci
3705da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
3706da0c48c4Sopenharmony_ci	dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
3707da0c48c4Sopenharmony_ci	dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
3708da0c48c4Sopenharmony_ci	* dwarf_error.c: Add another message.
3709da0c48c4Sopenharmony_ci	* dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
3710da0c48c4Sopenharmony_ci	introduction.
3711da0c48c4Sopenharmony_ci	* dwarf_filesrc.c: Likewise.
3712da0c48c4Sopenharmony_ci	* dwarf_getsrcfiles.c: Likewise.
3713da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Likewise.
3714da0c48c4Sopenharmony_ci	* dwarf_lineaddr.c: New file.
3715da0c48c4Sopenharmony_ci	* dwarf_linebeginstatement.c: New file.
3716da0c48c4Sopenharmony_ci	* dwarf_lineblock.c: New file.
3717da0c48c4Sopenharmony_ci	* dwarf_linecol.c: New file.
3718da0c48c4Sopenharmony_ci	* dwarf_lineendsequence.c: New file.
3719da0c48c4Sopenharmony_ci	* dwarf_lineepiloguebegin.c: New file.
3720da0c48c4Sopenharmony_ci	* dwarf_lineno.c: New file.
3721da0c48c4Sopenharmony_ci	* dwarf_lineprologueend.c: New file.
3722da0c48c4Sopenharmony_ci	* dwarf_onesrcline.c: New file.
3723da0c48c4Sopenharmony_ci	* dwarf_lineno.c: Change interface to store result in object pointed
3724da0c48c4Sopenharmony_ci	to by second parameter.
3725da0c48c4Sopenharmony_ci	* libdw.h: Add prototypes for new functions.  Change dwarf_lineno
3726da0c48c4Sopenharmony_ci	prototype.  Define Dwarf_Files and Dwarf_Lines.
3727da0c48c4Sopenharmony_ci	* libdw.map: Add new functions.
3728da0c48c4Sopenharmony_ci	* libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
3729da0c48c4Sopenharmony_ci	* libdw_findcu.c: Don't initialize nlines field.
3730da0c48c4Sopenharmony_ci
3731da0c48c4Sopenharmony_ci	* dwarf_siblingof: Little optimization.
3732da0c48c4Sopenharmony_ci
3733da0c48c4Sopenharmony_ci	* dwarf_begin.c: Remember that the ELF descriptor must be closed.
3734da0c48c4Sopenharmony_ci	* dwarf_end.c: Close ELF descriptor if free_elf is set.
3735da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf): Add free_elf field.
3736da0c48c4Sopenharmony_ci
3737da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
3738da0c48c4Sopenharmony_ci	dwarf_offabbrev.c.
3739da0c48c4Sopenharmony_ci	* dwarf_getstring.c: New file.
3740da0c48c4Sopenharmony_ci	* dwarf_offabbrev.c: New file.
3741da0c48c4Sopenharmony_ci	* libdw.map: Add dwarf_getstring and dwarf_offabbrev.
3742da0c48c4Sopenharmony_ci	* dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
3743da0c48c4Sopenharmony_ci	parameters.  Don't allocate memory if not necessary and don't lookup
3744da0c48c4Sopenharmony_ci	previous results if no CU given.
3745da0c48c4Sopenharmony_ci	(dwarf_getabbrev): Adjust call to __libdw_getabbrev.
3746da0c48c4Sopenharmony_ci	* dwarf_tag.c: Adjust call to __libdw_getabbrev.
3747da0c48c4Sopenharmony_ci	* libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
3748da0c48c4Sopenharmony_ci	* libdwP.h: Change prototype for __libdw_getabbrev.
3749da0c48c4Sopenharmony_ci
3750da0c48c4Sopenharmony_ci	* dwarf_getabbrevattr.c: Add offsetp parameter.  Fill in before
3751da0c48c4Sopenharmony_ci	returning if this is wanted.
3752da0c48c4Sopenharmony_ci
3753da0c48c4Sopenharmony_ci2004-01-09  Ulrich Drepper  <drepper@redhat.com>
3754da0c48c4Sopenharmony_ci
3755da0c48c4Sopenharmony_ci	* dwarf_nextcu.c: Add new parameter offset_sizep.  Initialize it
3756da0c48c4Sopenharmony_ci	with offset_size value.
3757da0c48c4Sopenharmony_ci	* libdw.h: Adjust dwarf_nextcu prototype.
3758da0c48c4Sopenharmony_ci	* libdwP.h (struct Dwarf_CU): Add offset_size member.
3759da0c48c4Sopenharmony_ci	* libdw_findcu.c: Adjust dwarf_nextcu call.  Initialize offset_size
3760da0c48c4Sopenharmony_ci	member of new CU struct.
3761da0c48c4Sopenharmony_ci	* dwarf_formstring.c: Depend on offset_size not address_size for
3762da0c48c4Sopenharmony_ci	DW_FORM_strp handling.
3763da0c48c4Sopenharmony_ci	* dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
3764da0c48c4Sopenharmony_ci
3765da0c48c4Sopenharmony_ci	* dwarf_tag.c (__libdw_findabbrev): Return correct value for
3766da0c48c4Sopenharmony_ci	failing lookup.
3767da0c48c4Sopenharmony_ci	(dwarf_tag): Correctly recognize failed lookup.
3768da0c48c4Sopenharmony_ci
3769da0c48c4Sopenharmony_ci	* dwarf_end.c (cu_free):  Call tdestroy for locs member.  Use new
3770da0c48c4Sopenharmony_ci	function noop_free.
3771da0c48c4Sopenharmony_ci	* dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
3772da0c48c4Sopenharmony_ci	* dwarf_formblock.c: New file.
3773da0c48c4Sopenharmony_ci	* dwarf_getloclist.c: Rewrite to handle a single block.
3774da0c48c4Sopenharmony_ci	* libdw.h: Define Dwarf_Block.  Rename Dwarf_Loc members.  Remove
3775da0c48c4Sopenharmony_ci	Dwarf_Locdesc definition.  Declare dwarf_formblock.  Remove
3776da0c48c4Sopenharmony_ci	dwarf_getloclistent declaration.
3777da0c48c4Sopenharmony_ci	* libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
3778da0c48c4Sopenharmony_ci	* libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
3779da0c48c4Sopenharmony_ci	Add locs member to struct Dwarf_CU.
3780da0c48c4Sopenharmony_ci	* libdw_fundcu.c: Initialize locs member of new CU.
3781da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
3782da0c48c4Sopenharmony_ci	Remove dwarf_getloclistent.c.
3783da0c48c4Sopenharmony_ci
3784da0c48c4Sopenharmony_ci2004-01-07  Ulrich Drepper  <drepper@redhat.com>
3785da0c48c4Sopenharmony_ci
3786da0c48c4Sopenharmony_ci	* libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
3787da0c48c4Sopenharmony_ci	* libdwP.h: Likewise.
3788da0c48c4Sopenharmony_ci
3789da0c48c4Sopenharmony_ci	* dwarf_getloclist.c: New file.
3790da0c48c4Sopenharmony_ci	* dwarf_getloclistent.c: New file.
3791da0c48c4Sopenharmony_ci	* libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
3792da0c48c4Sopenharmony_ci	Declare dwarf_getloclistent and dwarf_getloclist.
3793da0c48c4Sopenharmony_ci	* libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
3794da0c48c4Sopenharmony_ci	* libdwP.h: Define DWARF_E_NO_LOCLIST.
3795da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
3796da0c48c4Sopenharmony_ci	dwarf_getloclist.c.
3797da0c48c4Sopenharmony_ci
3798da0c48c4Sopenharmony_ci	* dwarf_error.c: More error messages.
3799da0c48c4Sopenharmony_ci
3800da0c48c4Sopenharmony_ci2004-01-06  Ulrich Drepper  <drepper@redhat.com>
3801da0c48c4Sopenharmony_ci
3802da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Remove debugging support.
3803da0c48c4Sopenharmony_ci
3804da0c48c4Sopenharmony_ci	* dwarf_getsrcfiles.c: New file.
3805da0c48c4Sopenharmony_ci	* dwarf_filesrc.c: New file.
3806da0c48c4Sopenharmony_ci	* libdw.h: Declare these functions.  Define Dwarf_File.
3807da0c48c4Sopenharmony_ci	* libdwP.c: Adjust Dwarf_File_s definition.
3808da0c48c4Sopenharmony_ci	* libdw.map: Add these functions.
3809da0c48c4Sopenharmony_ci	* Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
3810da0c48c4Sopenharmony_ci	dwarf_filesrc.c.
3811da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: Initialize cu->files.
3812da0c48c4Sopenharmony_ci
3813da0c48c4Sopenharmony_ci2004-01-05  Ulrich Drepper  <drepper@redhat.com>
3814da0c48c4Sopenharmony_ci
3815da0c48c4Sopenharmony_ci	* libdw.h: Add more nonnull function attributes.
3816da0c48c4Sopenharmony_ci
3817da0c48c4Sopenharmony_ci	* dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
3818da0c48c4Sopenharmony_ci	* dwarf_end.c (cu_free): New function.
3819da0c48c4Sopenharmony_ci	(dwarf_end): Also free CU tree.  Correct freeing of memory blocks.
3820da0c48c4Sopenharmony_ci	* dwarf_error.c (errmsgs): Add new messages.
3821da0c48c4Sopenharmony_ci	* dwarf_getsrc_die.c: New file.
3822da0c48c4Sopenharmony_ci	* dwarf_getsrclines.c: New file.
3823da0c48c4Sopenharmony_ci	* dwarf_lineno.c: New file.
3824da0c48c4Sopenharmony_ci	* dwarf_linesrc.c: New file.
3825da0c48c4Sopenharmony_ci	* dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
3826da0c48c4Sopenharmony_ci	instead of the *_inc-less variants.
3827da0c48c4Sopenharmony_ci	* libdw.h: Define Dwarf_Line.  Add some function attributes.  Declare
3828da0c48c4Sopenharmony_ci	dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
3829da0c48c4Sopenharmony_ci	* libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
3830da0c48c4Sopenharmony_ci	and dwarf_linesrc.
3831da0c48c4Sopenharmony_ci	* libdwP.h: Add more error codes.
3832da0c48c4Sopenharmony_ci	(struct Dwarf): Remove mem_tail.next member.
3833da0c48c4Sopenharmony_ci	(Dwarf_File): Define type.
3834da0c48c4Sopenharmony_ci	(struct Dwarf_Line_s): Define type.
3835da0c48c4Sopenharmony_ci	(struct Dwarf_CU): Add lines and nlines members.
3836da0c48c4Sopenharmony_ci	(libdw_alloc): Define local variable _tail and use it.
3837da0c48c4Sopenharmony_ci	Add some function attributes.
3838da0c48c4Sopenharmony_ci	* libdw_alloc.c (__libdw_allocate): Don't initialize next member.
3839da0c48c4Sopenharmony_ci	* libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
3840da0c48c4Sopenharmony_ci	* memory-access.h: Add unlikely for the endian conversion paths.
3841da0c48c4Sopenharmony_ci	* Makefile.am (AM_CFLAGS): Add -std parameter.
3842da0c48c4Sopenharmony_ci	(libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
3843da0c48c4Sopenharmony_ci	dwarf_lineno, and dwarf_linesrc.
3844da0c48c4Sopenharmony_ci
3845da0c48c4Sopenharmony_ci2003-08-11  Ulrich Drepper  <drepper@redhat.com>
3846da0c48c4Sopenharmony_ci
3847da0c48c4Sopenharmony_ci	* Moved to CVS archive.
3848