summaryrefslogtreecommitdiff
path: root/libdwfl/ChangeLog
blob: e14cce9cfd079223debcd32c02aed51cde61b887 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
2007-01-10  Roland McGrath  <roland@redhat.com>

	* libdwfl.h (dwfl_begin): Require nonnull argument.

2006-12-27  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (compare_modules): Fix address comparison to avoid
	signed overflow.  Patch by Frank Ch. Eigler <fche@redhat.com>.

2006-10-30  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (dwfl_report_module): Comment typo fix.

2006-09-05  Roland McGrath  <roland@redhat.com>

	* derelocate.c (cache_sections): Use alloca instead of variable-sized
	auto array, in function already alloca.

2006-08-14  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (try_kernel_name): If the call to
	dwfl_standard_find_debuginfo produces no results, try it again
	with NULL as DEBUGLINK_FILE to try *FNAME with .debug suffix.

	* find-debuginfo.c (DEFAULT_DEBUGINFO_PATH): Macro moved ...
	* libdwflP.h: ... to here.
	* linux-kernel-modules.c (try_kernel_name): Skip manual open if it
	repeats the first thing dwfl_standard_find_debuginfo will try.

	* linux-kernel-modules.c (MODULE_SECT_NAME_LEN): New macro.
	(dwfl_linux_kernel_module_section_address): If a /sys file is missing
	and the section name is >= MODULE_SECT_NAME_LEN, try truncating the
	section name.

2006-07-12  Ulrich Drepper  <drepper@redhat.com>

	* cu.c: Adjust for internal_function_def removal.
	* dwfl_error.c: Likewise.
	* dwfl_module.c: Likewise.
	* dwfl_module_getdwarf.c: Likewise.
	* lines.c: Likewise.
	* relocate.c: Likewise.

2006-07-11  Ulrich Drepper  <drepper@redhat.com>

	* dwfl_module.c (compare_modules): Don't return GElf_Sxword value,
	it can overflow the return value type.
	Patch by Tim Moore <timoore@redhat.com>.

2006-06-28  Roland McGrath  <roland@redhat.com>

	* libdwfl.h: Cosmetic changes.

	* dwfl_line_comp_dir.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_line_comp_dir.

	* dwfl_lineinfo.c (dwfl_lineinfo): Remove stray extern in defn.

	* dwfl_linecu.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_linecu.

	* libdwflP.h (dwfl_linecu_inline): Function renamed from dwfl_linecu.
	(dwfl_linecu): Define as macro.

	* relocate.c (__libdwfl_relocate): Use dwfl_module_getsym.

	* dwfl_module_getdwarf.c (dwfl_module_getsymtab): New function.
	(dwfl_module_addrname): Function moved ...
	* dwfl_module_addrname.c: ... here, new file.
	* dwfl_module_getsym.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add them.
	* libdwfl.h: Declare dwfl_module_getsymtab, dwfl_module_getsym.
	* libdwflP.h: Add INTDECLs.

2006-06-27  Roland McGrath  <roland@redhat.com>

	* dwfl_module.c (dwfl_report_end): Whitespace fix.

2006-06-13  Roland McGrath  <roland@redhat.com>

	* elf-from-memory.c (elf_from_remote_memory): Fix 32/64 typo.
	Use __libdwfl_seterrno for elf_memory failure.

2006-05-22  Roland McGrath  <roland@redhat.com>

	* dwfl_module_return_value_location.c
	(dwfl_module_return_value_location): Use __libdwfl_module_getebl.

2006-05-27  Ulrich Drepper  <drepper@redhat.com>

	* libdwfl.h: Add extern "C".

2006-05-22  Ulrich Drepper  <drepper@redhat.com>

	* cu.c (addrarange): Handle files without aranges information.

2006-05-16  Ulrich Drepper  <drepper@redhat.com>

	* dwfl_addrmodule.c (dwfl_addrmodule): Also return NULL of
	->modules is NULL.

2006-02-26  Roland McGrath  <roland@redhat.com>

	* dwfl_version.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_version.

	* offline.c (dwfl_report_offline): Account for dwfl_report_elf having
	aligned up from DWFL->offline_next_address when checking for overlap.

2005-12-22  Roland McGrath  <roland@redhat.com>

	* argp-std.c (parse_opt): Call dwfl_end in failure cases.

	* linux-proc-maps.c (proc_maps_report): New function, broken out of ...
	(dwfl_linux_proc_report): ... here.  Call it.
	(dwfl_linux_proc_maps_report): New function.
	* libdwfl.h: Declare it.
	* libdwflP.h: Add INTDECL.
	* argp-std.c (options, parse_opt): Grok -M/--linux-process-map.

	* dwfl_nextcu.c (dwfl_nextcu): Don't fail when dwfl_module_getdwarf
	failed with DWFL_E_NO_DWARF.

2005-11-26  Roland McGrath  <roland@redhat.com>

	* dwfl_end.c (dwfl_end): Free the DWFL itself.

2005-11-25  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getdwarf.c (__libdwfl_module_getebl): New function.
	(load_dw): Use it.
	* dwfl_module_register_names.c (dwfl_module_register_names): Likewise.
	* libdwflP.h: Declare it.

	* dwfl_module_register_names.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_module_register_names.

2005-11-21  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_module_section_address):
	Don't leak malloc'd file name.
	If a /sys/.../sections file is missing and starts with ".init",
	try the variant with "_init" too; catches PPC64 kernel braindamage.

2005-11-15  Roland McGrath  <roland@redhat.com>

	* libdwfl.h: Comment fixes.

	* dwfl_module_return_value_location.c: Add unlikely for error case.

2005-11-13  Roland McGrath  <roland@redhat.com>

	* dwfl_return_value_location.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_module_return_value_location.
	* libdwflP.h (DWFL_ERRORS): Add DWFL_E_WEIRD_TYPE.

2005-10-20  Roland McGrath  <roland@redhat.com>

	* libdwflP.h (DWFL_ERRORS): New error UNKNOWN_MACHINE.
	* relocate.c (__libdwfl_relocate): Return DWFL_E_UNKNOWN_MACHINE
	instead of DWFL_E_BADRELTYPE if ebl_get_elfmachine yields EM_NONE.

2005-10-01  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (report_kernel): Return ENOENT if we fail
	with errno 0.

2005-09-19  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_report_modules): Use
	PRIx64 instead of PRIi64, lest addresses with high bits set overflow
	the signed integer reading; they will just have to be in hexadecimal.
	(dwfl_linux_kernel_module_section_address): Likewise.

2005-08-28  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am (%.os): Use COMPILE.os.
	(COMPILE.os): Filter out gconv options.

2005-08-25  Roland McGrath  <roland@redhat.com>

	* cu.c (__libdwfl_nextcu): Return success when dwarf_nextcu hits end.
	* dwfl_nextcu.c (dwfl_nextcu): Skip modules with no dwarf info.

2005-08-24  Roland McGrath  <roland@redhat.com>

	* dwfl_lineinfo.c (dwfl_lineinfo): Add bias, don't subtract it.

	* argp-std.c [_MUDFLAP] (__libdwfl_argp_mudflap_options): New function,
	magic initializer to set -heur-stack-bound option.

2005-08-22  Roland McGrath  <roland@redhat.com>

	* dwfl_validate_address.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_validate_address.

	* derelocate.c (dwfl_module_relocate_address): Add INTDEF.
	* libdwflP.h: Add INTDECL.

	* dwfl_module_getdwarf.c (find_symtab): Use elf_getdata instead of
	elf_rawdata for symbol-related sections.

	* offline.c (dwfl_report_offline): Move offline_next_address outside
	module's range, in case it's an ET_EXEC using fixed segment locations.
	* libdwfl.h: Update comment.

	* dwfl_report_elf.c (dwfl_report_elf): Align BASE to first segment's
	required alignment.

2005-08-20  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (report_kernel): Take new argument PREDICATE,
	function to choose whether to report.
	(dwfl_linux_kernel_report_offline): Likewise.
	* libdwfl.h: Update decl.
	* argp-std.c (parse_opt): Update caller.

	* dwfl_getsrclines.c: New file.
	* dwfl_onesrcline.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add them.
	* libdwfl.h: Declare dwfl_getsrclines, dwfl_onesrcline.

	* linux-kernel-modules.c (dwfl_linux_kernel_find_elf): Don't leak
	MODULESDIR[0].  Call fts_close on failure.

	* dwfl_module_getdwarf.c (load_dw): Take dwfl_file * instead of Elf *.
	Close ET_REL file descriptors after relocation.
	(find_dw): Update caller.
	* offline.c (dwfl_report_offline): Get the file into memory and close
	the file descriptor.

	* dwfl_module_getdwarf.c (find_debuginfo): Do nothing when
	MOD->debug.elf is already set.

	* find-debuginfo.c (try_open): Use TEMP_FAILURE_RETRY.
	(dwfl_standard_find_debuginfo): Fail on errors not ENOENT or ENOTDIR.

	* argp-std.c (options, parse_opt): Grok -K/--offline-kernel, use
	dwfl_linux_kernel_report_offline with offline_callbacks.

	* linux-kernel-modules.c (report_kernel): New function, broken out of
	...
	(dwfl_linux_kernel_report_kernel): ... here.  Use it.
	(dwfl_linux_kernel_report_offline): New function.
	* libdwfl.h: Declare it.
	* libdwflP.h: Add INTDECL.

2005-08-19  Roland McGrath  <roland@redhat.com>

	Use standard debuginfo search path to look for vmlinux.
	* find-debuginfo.c (dwfl_standard_find_debuginfo): Don't check CRC if
	passed zero.
	* linux-kernel-modules.c (try_kernel_name): New function, broken out
	of ...
	(dwfl_linux_kernel_report_kernel): ... here.  Use it.

	* argp-std.c (offline_callbacks): New variable.
	(parse_opt): Use it for -e.  Allow multiple -e options.

	* offline.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.
	* libdwfl.h: Declare dwfl_offline_section_address, dwfl_report_offline.
	* libdwflP.h: Add INTDECLs.
	(OFFLINE_REDZONE): New macro.
	(struct Dwfl): New member `offline_next_address'.
	* dwfl_begin.c (dwfl_begin): Initialize it.
	* dwfl_module.c (dwfl_report_begin): Likewise.

	* dwfl_report_elf.c (dwfl_report_elf): Accept all types.  When ET_REL,
	do a nominal absolute section layout starting at BASE.
	* libdwfl.h: Update comment.

2005-08-18  Roland McGrath  <roland@redhat.com>

	* dwfl_module_getsrc_file.c (dwfl_module_getsrc_file): Do
	dwfl_module_getdwarf if necessary.

	* dwfl_report_elf.c (dwfl_report_elf): Permit ET_REL with BASE==0.
	* libdwfl.h: Update comment.

	* derelocate.c: New file.
	* Makefile.am (libdwfl_a_SOURCES): Add it.

	* libdwflP.h (struct Dwfl_Module): isrel -> e_type.
	* dwfl_report_elf.c (dwfl_report_elf): Initialize it.
	* dwfl_module_getdwarf.c (open_elf): Update initialization.
	(load_dw, dwfl_module_addrname): Update uses.
	* relocate.c (__libdwfl_relocate): Likewise.

2005-08-04  Roland McGrath  <roland@redhat.com>

	* libdwfl.h (Dwfl_Callbacks.section_address): Take additional
	arguments SHNDX, SHDR.
	(dwfl_linux_kernel_module_section_address): Update prototype.
	* relocate.c (__libdwfl_relocate_value): Update caller.
	* linux-kernel-modules.c (dwfl_linux_kernel_module_section_address):
	Take the new arguments.

2005-08-10  Roland McGrath  <roland@redhat.com>

	* relocate.c (__libdwfl_relocate): Take argument DEBUGFILE,
	use it instead of MOD->debug.file.
	* libdwflP.h: Update decl.
	* dwfl_module_getdwarf.c (load_dw): Update caller.
	Fixes bug #165598.

2005-08-09  Roland McGrath  <roland@redhat.com>

	* libdwflP.h: Include ../libdw/libdwP.h for its INTDECLs.
	* cu.c: Use INTUSE on dwarf_* calls.
	* dwfl_error.c: Likewise.
	* dwfl_module.c: Likewise.
	* dwfl_module_getdwarf.c: Likewise.
	* dwfl_module_getsrc_file.c: Likewise.
	* lines.c: Likewise.

2005-08-07  Roland McGrath  <roland@redhat.com>

	* linux-kernel-modules.c (dwfl_linux_kernel_find_elf): When module
	names contain '_' or '-', look for files named either "foo-bar.ko"
	or "foo_bar.ko".

2005-07-29  Roland McGrath  <roland@redhat.com>

	* loc2c.c: File removed.
	* loc2c.h: File removed.
	* loc2c-runtime.h: File removed.
	* test2.c: File removed.
	* Makefile.am (EXTRA_DIST): Variable removed.
	(noinst_HEADERS): Remove loc2c.h from here.

2005-07-28  Ulrich Drepper  <drepper@redhat.com>

	* libdwfl.h: Add a few missing extern for function prototypes.

	* libdwfl_crc32.c: New file.
	* libdwfl_crc32_file.c: New file.
	* libdwflP.h: Declare the new functions.
	* Makefile.am (libdwfl_a_SOURCES): Add libdwfl_crc32.c and
	libdwfl_crc32_file.c.
	* libdwfl/find-debuginfo.c (check_crc): Use __libdwfl_crc32_file
	instead of crc32_file.

2005-07-28  Roland McGrath  <roland@redhat.com>

	* ptest.c: Moved to ../tests/dwflmodtest.c.

	* Makefile.am (noinst_PROGRAMS): Variable removed.
	(libdwfl_so_SOURCES, libdwfl_LIBS, libdwfl_so_LDADD): Likewise.
	(EXTRA_DIST, ptest_LDADD, test2_LDADD): Likewise.
	(libdwfl): Don't use libdwfl.so any more.
	(libdwfl.so, install, uninstall): Targets removed.
	(test2_SOURCES): Define EXTRA_DIST instead of this.
	* libdwfl.map: File removed.

	* libdwfl.h: Use "" for libdw.h #include.

2005-07-27  Roland McGrath  <roland@redhat.com>

	* libdwfl.map: Add dwfl_getmodules.

2005-07-23  Ulrich Drepper  <drepper@redhat.com>

	* Makefile.am: Fix rules to allow building with mudflap.

2005-07-21  Roland McGrath  <roland@redhat.com>

	* Makefile.am (noinst_HEADERS): Add loc2c.c.

	* test2.c (main): Check sscanf result to quiet warning.

2005-07-20  Roland McGrath  <roland@redhat.com>

	* libdwfl-branch merged, creating this direcotry.