blob: 127e60132159343ffd5e3e19c83d6b702b3a4357 [file] [log] [blame]
Mark Wielaard472890f2015-05-20 12:10:47 +020012015-05-20 Mark Wielaard <mjw@redhat.com>
2
Mark Wielaard70a504d2015-05-19 16:21:27 +02003 * addr2line.c (argp_option): Add "addresses", 'a'.
4 (print_addresses): New static bool.
5 (parse_opt): Set print_addresses.
6 (get_addr_width): New static function.
7 (handle_address): Print address if print_addresses is true.
8
92015-05-20 Mark Wielaard <mjw@redhat.com>
10
Mark Wielaardd76d73f2015-05-19 23:08:00 +020011 * addr2line.c (handle_address): Call strtoumax with base 16. Make
12 sure all input has been processed.
13
142015-05-20 Mark Wielaard <mjw@redhat.com>
15
Mark Wielaard472890f2015-05-20 12:10:47 +020016 * addr2line (argp_option): Group 'section' under "Input format
17 options".
18
Mark Wielaard6d93c8c2015-05-12 15:59:04 +0200192015-05-12 Mark Wielaard <mjw@redhat.com>
20
21 * strip.c (debug_fd): New static variable.
22 (tmp_debug_fname): Likewise.
23 (cleanup_debug): New function using the above to clean up temporary
24 debug file.
25 (INTERNAL_ERROR): Call cleanup_debug.
26 (handle_elf): Use debug_fd and tmp_debug_fname statics and call
27 cleanup_debug before any error. Use output_fname instead of fname in
28 error messages when it exists (-o was given). SHT_NOBITS sections
29 can also be moved freely even if SHF_ALLOC is set. Add various
30 sanity checks. Use elf_assert instead of plain assert.
31
Mark Wielaarda2b964c2015-05-08 17:56:32 +0200322015-05-08 Mark Wielaard <mjw@redhat.com>
33
34 * nm.c (show_symbols): Call gelf_fsize with EV_CURRENT.
35 * strip.c (handle_elf): Likewise.
36
Mark Wielaard16e2ac32015-05-06 13:09:23 +0200372015-05-06 Mark Wielaard <mjw@redhat.com>
38
39 * elflint.c (check_gnu_hash): Return early when 2nd hash function
Mark Wielaard281bb492015-05-06 18:02:10 +020040 shift too big. Check there is enough data available. Make sure
41 bitmask_words is not zero.
Mark Wielaard9d092652015-05-06 16:01:55 +020042 (check_verdef): Use Elf64_Word for shdr->sh_info cnt.
43 (check_verneed): Likewise.
Mark Wielaard5e80a1e2015-05-06 17:38:18 +020044 (check_attributes): Break when vendor name isn't terminated.
45 Add overflow check for subsection_len.
Mark Wielaard16e2ac32015-05-06 13:09:23 +020046
Mark Wielaarda3344c72015-05-06 12:45:49 +0200472015-05-05 Mark Wielaard <mjw@redhat.com>
48
49 * nm.c (show_symbols): Handle dwarf_linesrc returning NULL.
50
Max Filippovb88bece2015-05-04 02:25:40 +0300512015-05-04 Max Filippov <jcmvbkbc@gmail.com>
52
Max Filippov8c4aa0e2015-05-04 20:17:51 +030053 * ar.c (do_oper_extract): Replace struct timeval with struct timespec
54 and futimes with futimens.
55 * strip.c (process_file): Replace struct timeval with struct timespec.
56 (handle_elf, handle_ar): Replace struct timeval with struct timespec
57 in prototype. Replace futimes with futimens.
58
592015-05-04 Max Filippov <jcmvbkbc@gmail.com>
60
Max Filippovb88bece2015-05-04 02:25:40 +030061 * addr2line.c (main): Drop mtrace() call and #include <mcheck.h>.
62 * ar.c: Likewise.
63 * ld.c: Likewise.
64 * nm.c: Likewise.
65 * objdump.c: Likewise.
66 * ranlib.c: Likewise.
67 * size.c: Likewise.
68 * strip.c: Likewise.
69 * unstrip.c: Likewise.
70
Anthony G. Basile1ab3c2b2015-05-04 02:25:39 +0300712015-05-04 Anthony G. Basile <blueness@gentoo.org>
72
73 * Makefile.am (readelf_LDADD, nm_LDADD, size_LDADD, strip_LDADD)
74 (ld_LDADD, elflint_LDADD, findtextrel_LDADD, addr2line_LDADD)
75 (elfcmp_LDADD, objdump_LDADD, ranlib_LDADD, strings_LDADD)
76 (ar_LDADD, unstrip_LDADD, stack_LDADD): Append $(argp_LDADD).
77
Mark Wielaardf333a1c2015-04-22 11:44:32 +0200782015-03-22 Mark Wielaard <mjw@redhat.com>
79
Mark Wielaard32d5b6f2015-04-22 12:47:46 +020080 * readelf.c (print_debug_frame_section): Cast start to Dwarf_Off
81 before subtracting cie_id. And cast cie_offset to Dwarf_Off before
82 comparison.
83
842015-03-22 Mark Wielaard <mjw@redhat.com>
85
Mark Wielaardf333a1c2015-04-22 11:44:32 +020086 * readelf.c (print_gdb_index_section): Check all offsets used
87 against section d_size.
88
Mark Wielaard86de7922015-04-17 20:03:44 +0200892015-03-17 Mark Wielaard <mjw@redhat.com>
90
Mark Wielaard9b5f7952015-04-17 22:24:41 +020091 * readelf.c (print_debug): Don't return, but always use dummy_dbg.
92
932015-03-17 Mark Wielaard <mjw@redhat.com>
94
Mark Wielaard86de7922015-04-17 20:03:44 +020095 * readelf.c (print_gdb_index_section): Add overflow checking for
96 dataend checks.
97
Mark Wielaard587c4b32015-04-14 11:59:36 +0200982015-03-14 Mark Wielaard <mjw@redhat.com>
99
100 * nm.c (INTERNAL_ERROR): Remove __DATE__.
101 * objdump.c (INTERNAL_ERROR): Likewise.
102 * size.c (INTERNAL_ERROR): Likewise.
103 * strip.c (INTERNAL_ERROR): Likewise.
104
Petr Machata7f617342015-03-18 19:42:02 +01001052015-03-18 Petr Machata <pmachata@redhat.com>
106
107 * readelf.c (dwarf_tag_string, dwarf_attr_string)
108 (dwarf_form_string, dwarf_lang_string, dwarf_inline_string)
109 (dwarf_encoding_string, dwarf_access_string)
110 (dwarf_visibility_string, dwarf_virtuality_string)
111 (dwarf_identifier_case_string, dwarf_calling_convention_string)
112 (dwarf_ordering_string, dwarf_discr_list_string)
113 (dwarf_locexpr_opcode_string): Adjust uses of know-dwarf.h macros
114 to match the API changes.
115
Mark Wielaardae9aa3e2015-03-09 16:41:48 +01001162015-03-09 Mark Wielaard <mjw@redhat.com>
117
118 * elflint.c (compare_hash_gnu_hash): Correct gnu_symbias usage.
119
Mark Wielaarde16e1412015-01-04 00:35:25 +01001202015-01-03 Mark Wielaard <mjw@redhat.com>
121
122 * elfcmp (main): Check section name is not NULL. Check sh_entsize
123 is not zero for symbol tables. Check phdrs are not NULL.
124 (search_for_copy_reloc): Check sh_entsize is not zero.
125
Mark Wielaard0a545e62014-12-29 00:53:27 +01001262014-12-30 Mark Wielaard <mjw@redhat.com>
127
128 * elflint.c (check_scn_group): Check d_buf and name are not NULL.
129 (is_rel_dyn): Check d is not NULL. Check shdr->sh_entsize is not
130 zero.
131 (check_dynamic): Check strshdr is not NULL. Check d_tag is positive.
132 (check_symtab_shndx): Check symshdr and data->d_buf are not NULL.
133 Check shdr and symshdr sh_entsize are not zero.
134 (check_gnu_hash): Make sure maskidx is smaller than bitmask_words.
135 Check symshdr->sh_entsize is not zero. Check data->d_buf is not
136 NULL.
137 (compare_hash_gnu_hash): Check sections d_buf are not NULL.
138 Check section data is large enough. Use gnu_symbias.
139 (check_group): Check section val is valid.
140 (has_copy_reloc): Check sh_entsize is not zero.
141 (check_versym): Likewise.
142 (unknown_dependency_p): Likewise.
143 (check_verneed): Break on invalid ref or offset. Don't assert.
144 Report error when next offset is zero, but more vers expected.
145 (check_verdef): Likewise.
146 (check_attributes): Make sure d_buf is not NULL.
147 (check_note): Likewise.
148 (check_note_section): Likewise.
149 (check_program_header): Make sure section name is not NULL.
150
Mark Wielaard0b799ad2014-12-26 16:12:52 +01001512014-12-26 Mark Wielaard <mjw@redhat.com>
152
Mark Wielaard555fdae2014-12-26 22:57:00 +0100153 * strings.c (read_elf): Produce error when section data falls outside
154 file.
155
1562014-12-26 Mark Wielaard <mjw@redhat.com>
157
Mark Wielaard309e7122014-12-26 19:36:31 +0100158 * nm.c (show_symbols): Guard against divide by zero in error check.
159 Add section index number in error message.
160
1612014-12-26 Mark Wielaard <mjw@redhat.com>
162
Mark Wielaard8fb260f2014-12-26 16:20:39 +0100163 * nm.c (handle_ar): Skip over /SYM64/ entries.
164
1652014-12-26 Mark Wielaard <mjw@redhat.com>
166
Mark Wielaard0b799ad2014-12-26 16:12:52 +0100167 * nm.c (handle_ar): Break on arsym with invalid offset.
168
Mark Wielaardcda1a312014-12-21 22:55:54 +01001692014-12-20 Mark Wielaard <mjw@redhat.com>
170
Mark Wielaard8f2f5802014-12-21 23:02:12 +0100171 * readelf.c (print_debug_macinfo_section): Mark cus sentinel files
172 as -1 non-existent. Check macoff against sentinel cus.
173
1742014-12-20 Mark Wielaard <mjw@redhat.com>
175
Mark Wielaardcda1a312014-12-21 22:55:54 +0100176 * readelf.c (print_debug_exception_table): Add max_action overflow
177 check. Check action_table_end before reading slib128. Check
178 max_ar_filter underflow.
179
Ulrich Drepper898ed262014-12-18 12:32:39 -05001802014-12-18 Ulrich Drepper <drepper@gmail.com>
181
182 * Makefile.am: Suppress output of textrel_check command.
183
Mark Wielaard99a6f222014-12-17 15:07:49 +01001842014-12-17 Mark Wielaard <mjw@redhat.com>
185
186 * readelf.c (print_cfa_program): Add bounds check before each op that
187 takes at least one argument.
188
Mark Wielaardff1ce972014-12-16 16:10:28 +01001892014-12-16 Mark Wielaard <mjw@redhat.com>
190
Mark Wielaard32270932014-12-16 22:19:08 +0100191 * readelf.c (print_decoded_line_section): Print dwarf_errmsg if
192 dwarf_onesrcline or dwarf_linesrc fails.
193
1942014-12-16 Mark Wielaard <mjw@redhat.com>
195
Mark Wielaardff1ce972014-12-16 16:10:28 +0100196 * readelf.c (print_debug_line_section): Correct overflow check for
197 unit_length.
Mark Wielaardacb50692014-12-16 16:30:59 +0100198 (print_debug_aranges_section): Correct overflow check for length.
Mark Wielaardff1ce972014-12-16 16:10:28 +0100199
Mark Wielaardb171ca42014-12-15 11:35:46 +01002002014-12-15 Mark Wielaard <mjw@redhat.com>
201
Mark Wielaard6a8a9e32014-12-15 19:43:02 +0100202 * readelf.c (notice_listptr): Return false if offset doesn't fit
203 in 61-bits.
204 (attr_callback): Warn if loclist or rangelist offset doesn't fit.
205
2062014-12-15 Mark Wielaard <mjw@redhat.com>
207
Mark Wielaard198e9492014-12-15 19:05:43 +0100208 * readelf.c (print_ops): Don't assert when addr_size or ref_size
209 is not 4 or 8, just report invalid data.
210
2112014-12-15 Mark Wielaard <mjw@redhat.com>
212
Mark Wielaard2323b452014-12-15 15:34:59 +0100213 * readelf.c (print_gdb_index_section): Add more bounds checks.
214
2152014-12-15 Mark Wielaard <mjw@redhat.com>
216
Mark Wielaardb171ca42014-12-15 11:35:46 +0100217 * readelf.c (print_debug_line_section): Check there is enough room
Mark Wielaard9c42b782014-12-15 13:40:18 +0100218 for DW_LNE_set_address argument. Make sure there is enough room
219 for the the initial unit_length.
Mark Wielaardb171ca42014-12-15 11:35:46 +0100220
Mark Wielaard7a053472014-12-14 21:48:23 +01002212014-12-14 Mark Wielaard <mjw@redhat.com>
222
223 * elflint.c (check_attributes): Call get_uleb128 with end pointer.
224 * readelf.c (print_attributes): Likewise.
225 (print_ops): Likewise and also for get_sleb128.
226 (print_cfa_program): Likewise and add more readp bounds checks.
227 (read_encoded): Likewise.
228 (print_debug_frame_section): Likewise.
229 (print_debug_line_section): Likewise.
230 (print_debug_macinfo_section): Likewise.
231 (print_debug_macro_section): Likewise.
232 (print_debug_exception_table): Likewise.
233
Mark Wielaard274cbda2014-12-16 11:04:55 +01002342014-12-16 Mark Wielaard <mjw@redhat.com>
235
236 * elfcmp.c (compare_Elf32_Word): Make sure (unsigned) Elf32_Word
237 difference doesn't wrap around before returning as int.
238
Mark Wielaardcd339292014-12-11 17:21:22 +01002392014-12-11 Mark Wielaard <mjw@redhat.com>
240
Mark Wielaardee5693b2014-12-11 18:26:09 +0100241 * readelf.c (print_debug_exception_table): Check TType base offset
242 and Action table are sane.
243
2442014-12-11 Mark Wielaard <mjw@redhat.com>
245
Mark Wielaardcd339292014-12-11 17:21:22 +0100246 * readelf.c (print_debug_frame_section): Check number of augmentation
247 chars to print.
248
Mark Wielaarda0da7562014-12-09 12:58:07 +01002492014-12-09 Mark Wielaard <mjw@redhat.com>
250
251 * readelf.c (handle_file_note): Check count fits data section and
252 doesn't overflow fptr.
253
Mark Wielaard990fbe52014-12-08 10:11:43 +01002542014-12-08 Mark Wielaard <mjw@redhat.com>
255
256 * readelf.c (print_debug_exception_table): Report invalid data if
257 action table doesn't immediately follow call site table.
258
Josh Stoneaecdf262014-12-10 11:06:52 -08002592014-12-10 Josh Stone <jistone@redhat.com>
260
Josh Stone2098b3d2014-12-10 11:14:40 -0800261 * addr2line.c (get_diename): New, get linkage_name or name.
262 * addr2line.c (print_dwarf_function): Use get_diename.
263 * addr2line.c (handle_address): Likewise.
264 * addr2line.c (print_diesym): Removed.
265
2662014-12-10 Josh Stone <jistone@redhat.com>
267
Josh Stoneaecdf262014-12-10 11:06:52 -0800268 * addr2line.c (handle_address): Find the proper inline parents.
269
Mark Wielaard96ddcad2014-12-07 22:45:28 +01002702014-12-07 Mark Wielaard <mjw@redhat.com>
271
Mark Wielaardf0c5ef82014-12-07 23:40:12 +0100272 * readelf.c (print_debug_line_section): max_ops_per_instr cannot
273 be zero.
274
2752014-12-07 Mark Wielaard <mjw@redhat.com>
276
Mark Wielaard96ddcad2014-12-07 22:45:28 +0100277 * readelf.c (print_ops): Handle zero ref_size for DW_OP_call_ref
278 and DW_OP_GNU_implicit_pointer.
279
Mark Wielaardd0070a92014-12-04 17:01:20 +01002802014-12-04 Mark Wielaard <mjw@redhat.com>
281
282 * objdump.c (show_relocs_x): Make sure destshdr exists.
283 (show_relocs_rel): Don't rely on shdr->sh_entsize, use gelf_fsize.
284 (show_relocs_rela): Likewise.
285 (show_relocs): Make sure destshdr, symshdr and symdata exists.
286
Mark Wielaard0ed4f982014-11-30 21:03:57 +01002872014-11-30 Mark Wielaard <mjw@redhat.com>
288
289 * readelf.c (handle_sysv_hash64): Fix overflow check.
290
Mark Wielaard98755612014-11-28 22:22:16 +01002912014-11-28 Mark Wielaard <mjw@redhat.com>
292
293 * readelf.c (handle_relocs_rel): Don't reuse destshdr to store
294 section header of a relocation against a STT_SECTION symbol. Use
295 a new local variable secshdr.
296 (handle_relocs_rela): Likewise.
297
Mark Wielaard13a9fa32014-11-27 00:12:32 +01002982014-11-26 Mark Wielaard <mjw@redhat.com>
299
300 * readelf.c (print_debug_aranges_section): Cast Dwarf_Word length
301 to ptrdiff_t for comparison.
302
Mark Wielaard020fc022014-11-24 21:54:42 +01003032014-11-24 Mark Wielaard <mjw@redhat.com>
304
305 * readelf.c (print_debug_line_section): Check line_range is not zero
306 before usage.
307
Mark Wielaard49296062014-11-23 18:26:16 +01003082014-11-23 Mark Wielaard <mjw@redhat.com>
309
310 * readelf.c (print_debug_aranges_section): Check length to catch
311 nexthdr overflow.
312
Mark Wielaard9644aaf2014-11-21 23:26:35 +01003132014-11-21 Mark Wielaard <mjw@redhat.com>
314
315 * readelf.c (print_attributes): Guard against empty section.
316 Document attribute format. Break when vendor name isn't terminated.
317 Add overflow check for subsection_len. Handle both gnu and non-gnu
318 attribute tags.
319
Mark Wielaard712c8fa2014-11-22 23:08:48 +01003202014-11-22 Mark Wielaard <mjw@redhat.com>
321
322 * elflint.c (check_sections): Call ebl_bss_plt_p without ehdr.
323 * findtextrel.c (process_file): Use elf_getphdrnum.
324 * readelf.c (process_elf_file): Remove redundant ehdr->e_phoff check.
325 (print_phdr): Check phnum.
326 * size.c (show_segments): Use elf_getphdrnum.
327 * strip.c (handle_elf): Likewise.
328 * unstrip.c (copy_elf): Likewise.
329 (copy_elided_sections): Likewise.
330 (handle_file): Likewise.
331
Mark Wielaard86b0b132014-11-18 10:07:10 +01003322014-11-18 Mark Wielaard <mjw@redhat.com>
333
334 * readelf.c (print_cfa_program): Fix sanity check of DW_FORM_block
335 length.
336
Mark Wielaard7df0da32014-11-17 23:01:34 +01003372014-11-17 Mark Wielaard <mjw@redhat.com>
338
Mark Wielaard3b3a1912014-11-17 23:35:28 +0100339 * readelf.c (handle_verneed): Check vna_next and vn_next exist.
340 (handle_verdef): Check vda_next and vd_next exist.
341 (handle_versym): Check vd_next, vna_next and vn_next exist.
342 Check vername and filename are not NULL before use.
343
3442014-11-17 Mark Wielaard <mjw@redhat.com>
345
Mark Wielaard5c1a45c2014-11-17 23:15:45 +0100346 * elfcmp.c (main): Check section names are NULL before use.
347 * objdump.c (section_match): Likewise.
348 * size.c (show_sysv): Likewise.
349
3502014-11-17 Mark Wielaard <mjw@redhat.com>
351
Mark Wielaard7df0da32014-11-17 23:01:34 +0100352 * readelf.c (print_debug_frame_section): Warn if ptr_size is not 4
353 or 8 instead of just calling print_cfa_program.
354
Mark Wielaard2af7b492014-11-16 11:40:08 +01003552014-11-16 Mark Wielaard <mjw@redhat.com>
356
Mark Wielaard436275e2014-11-17 00:33:36 +0100357 * readelf (process_elf_file): Set phnum to zero if there aren't
358 actually any pheaders.
359 (print_phdr): Check there actually is a phdr.
360
3612014-11-16 Mark Wielaard <mjw@redhat.com>
362
Mark Wielaard2af7b492014-11-16 11:40:08 +0100363 * readelf.c (print_cfa_program): Check block len before calling
364 print_ops.
365
Mark Wielaardad87d272014-11-14 12:24:28 +01003662014-11-14 Mark Wielaard <mjw@redhat.com>
367
Mark Wielaardd1b11632014-11-14 21:42:47 +0100368 * readelf.c (print_debug_frame_section): Sanity Check CIE
369 unit_length and augmentationlen.
370
3712014-11-14 Mark Wielaard <mjw@redhat.com>
372
Mark Wielaardad87d272014-11-14 12:24:28 +0100373 * readelf.c (handle_versym): Check def == NULL before use.
374
Mark Wielaardd8b96822014-11-08 14:04:27 +01003752014-11-08 Mark Wielaard <mjw@redhat.com>
376
377 * readelf.c (handle_versym): Initialize vername and filename array
378 elements.
379
Mark Wielaard6b246e02014-11-07 12:54:02 +01003802014-11-07 Mark Wielaard <mjw@redhat.com>
381
382 * readelf.c (handle_sysv_hash): Sanity check section contents.
383 (handle_sysv_hash64): Likewise.
384 (handle_gnu_hash): Likewise.
385
Petr Machatafbf1a442014-09-14 00:47:42 +02003862014-09-14 Petr Machata <pmachata@redhat.com>
387
388 * readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly.
389
Petr Machata1498f542014-09-12 19:03:33 +02003902014-09-12 Petr Machata <pmachata@redhat.com>
391
392 * readelf.c (encoded_ptr_size): In the switch statement, change
393 magic constants 3 and 4 to DW_EH_PE_* counterparts. Still accept
394 0. Print diagnostic for anything else.
395
Josh Stonef1ec7442014-08-25 14:40:35 -07003962014-08-25 Josh Stone <jistone@redhat.com>
397
398 * Makefile.am: Prevent premature @AR@ replacement in a sed expression.
399
Mark Wielaarda95c4ad2014-07-04 14:30:48 +02004002014-07-04 Menanteau Guy <menantea@linux.vnet.ibm.com>
401 Mark Wielaard <mjw@redhat.com>
402
403 * elflint (check_symtab): Add ".TOC." to the list of possibly
404 dangling symbols because of sourceware PR13621.
405
Mark Wielaardc1c1c062014-06-14 17:15:37 +02004062014-06-14 Mark Wielaard <mjw@redhat.com>
407
408 * elflint (check_symtab): Use ebl_func_addr_mask on st_value.
409
Mark Wielaard903f3342014-05-27 10:25:27 +02004102014-05-27 Mark Wielaard <mjw@redhat.com>
411
412 * readelf.c (print_debug): Skip section if name is NULL.
413
Mark Wielaard22497092014-05-26 21:28:05 +02004142014-05-26 Mark Wielaard <mjw@redhat.com>
415
Mark Wielaardeb4811d2014-05-26 22:54:38 +0200416 * readelf.c (handle_relocs_rela): Print header like handle_relocs_rel
417 does, when sh_info == 0.
418
4192014-05-26 Mark Wielaard <mjw@redhat.com>
420
Mark Wielaardbd1a0d12014-05-26 22:35:30 +0200421 * unstrip.c (find_alloc_sections_prelink): Allow non-split .bss
422 section when sh_size of the original and undo .bss section are equal.
423
4242014-05-26 Mark Wielaard <mjw@redhat.com>
425
Mark Wielaard22497092014-05-26 21:28:05 +0200426 * unstrip.c (options): Add --force, -F.
427 (struct arg_info): Add bool force.
428 (parse_opt): Handle 'F', set force.
429 (handle_explicit_files): Add force argument, add warn function,
430 separate check ehdr field checks, use warn.
431 (handle_dwfl_module): Add force argument, pass on to
432 handle_explicit_files.
433 (handle_output_dir_module): Add force argument, pass on to
434 handle_dwfl_module.
435 (handle_implicit_modules): Pass info->force to handle_dwfl_module and
436 handle_output_dir_module.
437 (main): Pass info.force to handle_explicit_files.
438
Mark Wielaard028d0ab2014-05-19 16:52:56 +02004392014-05-19 Mark Wielaard <mjw@redhat.com>
440
441 * elflint.c (check_reloc_shdr): Check ebl_check_reloc_target_type.
442
Mark Wielaarddf85bf92014-05-01 14:48:27 +02004432014-05-01 Mark Wielaard <mjw@redhat.com>
444
445 * readelf.c (find_no_debuginfo): Call dwfl_standard_find_debuginfo
446 if looking for alternate debug file.
447
Mark Wielaard93802972014-04-11 23:52:47 +02004482014-04-11 Mark Wielaard <mjw@redhat.com>
449
450 * Makefile.am (AM_CPPFLAGS): Add -I libdwelf.
451
Mark Wielaard7c757b32014-04-22 22:23:18 +02004522014-04-22 Mark Wielaard <mjw@redhat.com>
453
Mark Wielaard7c680a22014-04-22 23:26:34 +0200454 * readelf.c (handle_core_item): Make sure variable length array
455 contains at least enough space for terminating zero char.
456
4572014-04-22 Mark Wielaard <mjw@redhat.com>
458
Mark Wielaard7c757b32014-04-22 22:23:18 +0200459 * readelf.c (print_gdb_index_section): Use unsigned int for 31 bits
460 left shift.
461
Mark Wielaard32324792014-04-13 17:39:57 +02004622014-03-13 Mark Wielaard <mjw@redhat.com>
463
464 * Makefile.am: Remove no_mudflap.os. Remove libmudflap from all
465 LDADD lines.
466 * strings.c (process_chunk): Remove _MUDFLAP condition.
467
Mark Wielaardf7cdc742014-04-09 22:38:07 +02004682014-04-09 Mark Wielaard <mjw@redhat.com>
469
470 * readelf.c (print_debug_aranges_section): Don't get the raw section
471 data, use the possibly decompressed .[z]debug sectiondata.
472 (print_debug_ranges_section): Likewise.
473 (print_debug_frame_section): Likewise.
474 (print_debug_line_section): Likewise.
475 (print_debug_loc_section): Likewise.
476 (print_debug_macinfo_section): Likewise.
477 (print_debug_macro_section): Likewise.
478
Mark Wielaard110c2732014-04-10 15:02:53 +02004792014-04-10 Mark Wielaard <mjw@redhat.com>
480
481 * readelf.c (buf_read_ulong): Pass actual long size to convert.
482
Mark Wielaardb9207522014-03-05 16:17:54 +01004832014-03-05 Mark Wielaard <mjw@redhat.com>
484
485 * readelf.c (attr_callback): Print DW_FORM_sdata values as signed
486 numbers.
487
Mark Wielaardcb7b2d62014-02-24 17:44:42 +01004882014-02-24 Mark Wielaard <mjw@redhat.com>
489
490 * readelf (print_phdr): Check there is a SHT_PROGBITS section at the
491 offset given by p_offsets for a PT_INTERP segment before trying to
492 display the interpreter string.
493
Mark Wielaard43c9c2d2014-02-07 14:23:24 +01004942014-02-07 Mark Wielaard <mjw@redhat.com>
495
496 * readelf.c (print_phdr): Check phdr->p_filesz and make sure
497 interpreter string is zero terminated before calling printf.
498
Mark Wielaardf48eb6b2014-01-23 00:56:41 +01004992014-01-22 Mark Wielaard <mjw@redhat.com>
500
501 * Makefile.am (nm_no_Wformat): Removed.
502 (size_no_Wformat): Likewise.
503 (strings_no_Wformat): Likewise.
504 (addr2line_no_Wformat): Likewise.
505 * size.c (show_sysv): Use fmtstr directly as literal in printf.
506 (show_sysv_one_line): Likewise.
507 * strings.c (locfmt): Removed.
508 (radix): New static enum.
509 (parse_opt): Set radix, not locfmt.
510 (process_chunk_mb): Use fmtstr directly as literal in printf based
511 on radix.
512 (process_chunk): Likewise.
513 * nm.c (show_symbols_sysv): Use fmtstr directly as literal in printf.
514 (show_symbols_bsd): Likewise.
515 (show_symbols_posix): Likewise.
516
Mark Wielaard13968d92014-01-21 16:13:49 +01005172014-01-21 Mark Wielaard <mjw@redhat.com>
518
519 * stack.c (show_inlines): New static boolean.
520 (print_frame): New function split out from...
521 (print_frames): ..here. If show_inlines is true and we found a
522 DIE for the frame address, call print_inline_frames otherwise
523 call print_frame. Keep track of and track frame_nr.
524 (print_inline_frames): New function.
525 (parse_opt): Handle '-i'.
526 (main): Add 'i' to options.
527
Mark Wielaard8520f702014-01-27 16:05:54 +01005282014-01-27 Mark Wielaard <mjw@redhat.com>
529
530 * stack.c (maxframes): Initialize to 256.
531 (main): Document new default in options. Document magic number
532 used in frames.allocated initialization.
533
Mark Wielaard247f8582014-01-20 13:49:48 +01005342014-01-20 Mark Wielaard <mjw@redhat.com>
535
Mark Wielaard531a30a2014-01-20 23:09:26 +0100536 * stack.c (show_debugname): New static boolean.
537 (die_name): New function.
538 (print_frames): If show_debugname is true set symname to the
539 first function-like DIE with a name in scope for the address in
540 the debuginfo.
541 (parse_opt): Handle '-d'.
542 (main): Add 'd' to options.
543
5442014-01-20 Mark Wielaard <mjw@redhat.com>
545
Mark Wielaard247f8582014-01-20 13:49:48 +0100546 * addr2line.c (handle_address): Initialize scopes to NULL.
547
Roland McGrath7d5b3012014-01-17 17:11:39 +01005482014-01-17 Roland McGrath <roland@redhat.com>
549
Roland McGrath58d36192014-01-17 17:12:46 +0100550 * strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
551 st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data.
552 Don't use assert on input values, instead bail with "illformed" error.
553
5542014-01-17 Roland McGrath <roland@redhat.com>
555
Roland McGrath7d5b3012014-01-17 17:11:39 +0100556 * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link.
557 (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise.
558 (handle_scngrp): Check for bogus sh_info.
559
Jakub Jelinek71c15342014-01-17 17:07:27 +01005602014-01-17 Jakub Jelinek <jakub@redhat.com>
561
562 * elflint.c (section_name): Return "<invalid>" instead of
563 crashing on invalid section name.
564 (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
565 check_symtab_shndx, check_hash, check_versym): Robustify.
566 (check_hash): Don't check entries beyond end of section.
567 (check_note): Don't crash if gelf_rawchunk fails.
568
Petr Machataced66872014-01-17 17:00:12 +01005692014-01-17 Petr Machata <pmachata@redhat.com>
570
571 * readelf.c (handle_dynamic, handle_relocs_rel)
572 (handle_relocs_rela, handle_versym, print_liblist):
573 Use gelf_fsize instead of relying on shdr->sh_entsize.
574
Mark Wielaard04781c32014-01-14 22:13:43 +01005752014-01-14 Mark Wielaard <mjw@redhat.com>
576
577 * readelf.c (print_debug_macro_section): Clear vendor array before
578 use.
579
Jan Kratochvil7c6e7852014-01-15 21:16:57 +01005802014-01-15 Jan Kratochvil <jan.kratochvil@redhat.com>
581
582 Fix corruption of non-C++ symbols by the demangler.
583 * nm.c (show_symbols_sysv, show_symbols_bsd, show_symbols_posix)
584 (show_symbols): Check for _Z.
585 * stack.c (print_frames) <USE_DEMANGLE>: Check for _Z.
586
Mark Wielaard6034e2f2014-01-02 22:31:07 +01005872014-01-02 Mark Wielaard <mjw@redhat.com>
588
Mark Wielaardda91c5b2014-01-03 00:06:31 +0100589 * stack.c (show_raw): Declare unconditionally.
590 (parse_opt): Handle '-r' unconditionally.
591 (main): Show "raw" option even without USE_DEMANGLE.
592
5932014-01-02 Mark Wielaard <mjw@redhat.com>
594
Mark Wielaard36490c92014-01-02 23:59:41 +0100595 * stack.c (print_frames): Print 0x before build-id hex-offset.
596
5972014-01-02 Mark Wielaard <mjw@redhat.com>
598
Mark Wielaard6034e2f2014-01-02 22:31:07 +0100599 * stack.c (maxframes): Increase to 2048.
600 (struct frames): Add allocated field.
601 (frame_callback): If frames used is frames allocated, realloc.
602 (print_frames): Show an error if maxframes has been reached.
603 (parse_opt): Allow -n 0 for unlimited frames.
604 (main): Document -n 0 and new default 2048 frames. Allocate initial
605 number of frames with malloc.
606
Mark Wielaard19108012013-12-30 22:00:57 +01006072013-12-30 Mark Wielaard <mjw@redhat.com>
608
609 * stack.c (parse_opt): Explicitly call dwfl_linux_proc_attach
610 or dwfl_core_file_attach and check for errors.
611
Mark Wielaarda6141d22013-12-28 23:25:54 +01006122013-12-28 Mark Wielaard <mjw@redhat.com>
613
614 * stack.c (print_frames): Remove address width code and use...
615 (get_addr_width): ...this new function.
616 (show_modules): New static boolean.
617 (module_callback): New static function.
618 (parse_opt): Handle '-l'.
619 (main): Add 'l' to options. If show_modules then use dwfl_getmodules
620 with module_callback to show all detected modules and possible
621 build_id, elf and dwarf files.
622
Mark Wielaard1f7763e2013-12-27 10:49:51 +01006232013-12-27 Mark Wielaard <mjw@redhat.com>
624
625 * stack.c (frames_shown): New static boolean.
626 (EXIT_OK,EXIT_ERROR,EXIT_BAD,EXIT_USAGES): New defines.
627 (frame_callback): Return -1 on error. Don't print error.
628 (print_frames): Add arguments, tid, dwflerr and what. Print tid.
629 If there was an error report it with address and module if possible.
630 Record whether any frames were actually printed.
631 (thread_callback): Collect tid and err, pass it to print_frames.
632 (parse_opt): Use EXIT_BAD for errors. On ARGP_KEY_END print errno
633 if dwfl_linux_proc_report returned it. Check whether we are properly
634 attached with dwfl_pid.
635 (main): Document exit status. Don't report DWARF_CB_ABORT from
636 callbacks as error. Pass real errors to print_frames. Return
637 EXIT_BAD if no frames could be shown. Return EXIT_ERROR if there
638 were any non-fatal errors.
639
Mark Wielaard99fc3f72013-12-23 00:47:06 +01006402013-12-23 Mark Wielaard <mjw@redhat.com>
641
Mark Wielaardfdb64e62013-12-23 21:19:05 +0100642 * Makefile.am (stack_LDADD): Add demanglelib.
643 * stack.c (show_quiet): New static boolean, default false.
644 (show_raw): Likewise.
645 (demangle_buffer_len): New static size_t.
646 (demangle_buffer): New static char *.
647 (print_frames): Don't resolve pc name if show_quiet. Demangle name
648 unless show_raw.
649 (parse_opt): Handle '-q' and '-r'.
650 (main): Add 'q' and 'r' to options. Free demangle_buffer.
651
6522013-12-23 Mark Wielaard <mjw@redhat.com>
653
Mark Wielaardfe9b95d2013-12-23 10:46:54 +0100654 * stack.c (OPT_DEBUGINFO): New define.
655 (OPT_COREFILE): Likewise.
656 (pid): New static.
657 (core_fd): Likewise.
658 (core): Likewise.
659 (exec): Likewise.
660 (debuginfo_path): Likewise.
661 (parse_opt): Handle '-p', '--core', '-e' and '--debuginfo-path'.
662 Do argument sanity checking. Setup Dwfl.
663 (main): Add 'p', 'core', 'e' and 'debuginfo-path' to options.
664 Remove argp_child children, simplify argp doc, remove custom
665 usage message and construction of dwfl with dwfl_standard_argp.
666 Use pid directly as tid. close core and core_fd if opened. Print
667 pid of process or core.
668
6692013-12-23 Mark Wielaard <mjw@redhat.com>
670
Mark Wielaard99fc3f72013-12-23 00:47:06 +0100671 * stack.c (show_build_id): New static boolean.
672 (print_frames): Print module build-id, load address and pc offset
673 if show_build_id is true.
674 (parse_opt): Handle '-b'.
675 (main): Add -b to options.
676
Mark Wielaard9fec14a2013-12-22 23:48:26 +01006772013-12-22 Mark Wielaard <mjw@redhat.com>
678
679 * stack.c (maxframes): New static unsigned. Initialize to 64.
680 (struct frame): New struct.
681 (struct frames): Likewise.
682 (dwfl): New static Dwfl pointer.
683 (frame_callback): Use arg as struct frames and fill it next frame.
684 Return DWARF_CB_ABORT when maxframes has been reached. Move
685 printing of frame to...
686 (print_frames): ...here. New function.
687 (thread_callback): Use arg as struct frames and set frames to zero.
688 Call print_frames.
689 (parse_opt): Handle '-n'.
690 (main): Add -n to options. Allocate frames using maxframes. Pass
691 frames to frame_callback and thread_callback.
692
Mark Wielaarde962ec32013-12-20 10:09:12 +01006932013-12-20 Mark Wielaard <mjw@redhat.com>
694
695 * stack.c (show_one_tid): New static boolean.
696 (parse_opt): Handle '-1'.
697 (main): Add -1 to options. Call dwfl_getthread_frames when
698 show_one_tid is true.
699
Mark Wielaard159ac522013-12-18 11:05:54 +01007002013-12-18 Mark Wielaard <mjw@redhat.com>
701
702 * addr2line.c (options): Add symbol-sections, 'x'.
703 (show_symbol_sections): New static bool.
704 (parse_opt): Handle 'x'.
705 (print_addrsym): Use dwfl_module_addrinfo value.r
706 Also show section of address with show_symbol_sections.
707 (find_symbol): Use dwfl_module_getsym_info and set value.
708 (handle_address): Request value and use it instead of sym.st_value.
709 * readelf.c (format_dwarf_addr): Use dwfl_module_addrinfo to get
710 name and offset.
711
Masatake YAMATOc8c610b2013-12-17 12:03:29 +09007122013-12-17 Masatake YAMATO <yamato@redhat.com>
713 Mark Wielaard <mjw@redhat.com>
714
715 * stack.c (show_activation, show_module, show_source): New variables.
716 (parse_opt): Set show_activation if -a option is given.
717 Set show_module if -m option is given. Set show_source if -s option
718 is given. Set all show booleans when -v option is given.
719 (main): Added `-a', `-m', `-s', and `-v' to the help message.
720 (frame_callback): Print module and source file information.
721
Petr Machata98c8a732013-11-26 03:10:31 +01007222013-11-25 Petr Machata <pmachata@redhat.com>
723
724 * elflint.c (valid_e_machine): Add EM_AARCH64.
725
Petr Machataa47a0962013-11-14 01:07:22 +01007262013-11-14 Petr Machata <pmachata@redhat.com>
727
728 * readelf.c (handle_core_item) <'h'>: New branch for handling
729 fields that shouldn't be displayed.
730
Mark Wielaard875cad82013-11-10 22:17:05 +01007312013-11-10 Mark Wielaard <mjw@redhat.com>
732
733 * stack.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
734 ARGP_PROGRAM_BUG_ADDRESS_DEF.
735 (print_version): New function.
736
Mark Wielaard03d76f42013-11-09 16:45:22 +01007372013-11-09 Mark Wielaard <mjw@redhat.com>
738
739 * arlib.c (arlib_init): Call snprintf before using the result
740 with memcpy.
741 (arlib_finalize): Likewise.
742 * nm.c (show_symbols_sysv): Don't modify cnt inside assert.
743
Jan Kratochvil0b867462013-05-30 14:37:38 +02007442013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com>
745
746 * Makefile.am (bin_PROGRAMS): Add stack.
747 (stack_LDADD): New.
748 * stack.c: New file.
749
Mark Wielaardbe860842013-11-05 13:37:33 +01007502013-11-05 Mark Wielaard <mjw@redhat.com>
751
752 * readelf.c (print_debug_ranges_section): Cast address to size_t
753 before comparison.
754 (print_debug_loc_section): Likewise.
755
Mark Wielaard4f7673f2013-10-18 10:37:53 +02007562013-10-18 Mark Wielaard <mjw@redhat.com>
757
758 * ar.c (main): Correct operation check when instance_specifed is set.
759
Petr Machataab224102013-09-26 00:39:34 +02007602013-09-26 Petr Machata <pmachata@redhat.com>
761
Petr Machata0c9ae0c2013-09-26 21:02:22 +0200762 * readelf.c (handle_file_note): New function.
763 (handle_notes_data): Call it to handle NT_FILE notes.
764
7652013-09-26 Petr Machata <pmachata@redhat.com>
766
Petr Machataab224102013-09-26 00:39:34 +0200767 * readelf.c (handle_siginfo_note): New function.
768 (handle_notes_data): Call it to handle NT_SIGINFO notes.
769 (buf_read_int, buf_read_ulong, buf_has_data): New functions.
770
Mark Wielaard4b9e6392013-08-13 11:40:21 +02007712013-08-13 Mark Wielaard <mjw@redhat.com>
772
773 * addr2line.c (options): Add "inlines", 'i'.
774 (show_inlines): New bool.
775 (parse_opt): Handle 'i'.
776 (print_diesym): New static function.
777 (print_src): New function taking code from...
778 (handle_address): here. Call print_src. Print inlines.
779
Mark Wielaardd0f85012013-08-12 14:21:31 +02007802013-08-12 Mark Wielaard <mjw@redhat.com>
781
782 * addr2line.c (main): If there is a newline char at end of buf,
783 then remove it.
784
Mark Wielaard35230222013-07-05 16:44:47 +02007852013-07-05 Mark Wielaard <mjw@redhat.com>
786
787 * readelf.c (print_ops): Take CU as argument, use it to print
788 parameter_ref DIE offset.
789 (struct listptr): Replace base field with cu.
790 (listptr_base): New function.
791 (compare_listptr): Use listptr_base.
792 (notice_listptr): Take CU as argument.
793 (skip_listptr_hole): Likewise.
794 (print_debug_ranges_section): Pass NULL as CU to skip_listptr_hole.
795 (print_cfa_program): Pass NULL as CU to print_ops.
796 (struct attrcb_args): Replace cu_base field with cu.
797 (attr_callback): Pass cu not cu_base to notice_listptr.
798 (print_debug_units): Don't calculate base, just set cu.
799 (print_debug_loc_section): Pass cu to skip_listptr_hole and
800 print_ops.
801
Mark Wielaard63d8bfd2013-05-06 15:48:56 +02008022013-05-06 Mark Wielaard <mjw@redhat.com>
803
804 * readelf.c (print_ops): Format first DW_OP_GNU_implicit_pointer
805 argument as DIE offset.
806
Mark Wielaardcdaaf212013-04-25 16:50:11 -04008072013-04-24 Mark Wielaard <mjw@redhat.com>
808
809 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
810
Mark Wielaarda8c7f052013-03-25 21:11:53 +01008112013-03-25 Mark Wielaard <mjw@redhat.com>
812
Mark Wielaard1a094202013-03-25 14:48:06 +0100813 * readelf.c (argp_options): Add decodedline.
814 (decodedline): New boolean initialized to false.
815 (parse_opt): Set decodedline when arg is decodedline.
816 (print_decoded_line_section): New function.
817 (print_debug_line_section): Call print_decoded_line_section when
818 decodedline is true.
819
8202013-03-25 Mark Wielaard <mjw@redhat.com>
821
Mark Wielaardb79788c2013-03-25 11:45:22 +0100822 * readelf.c (argp_option): Add decodedaranges.
823 (decodedaranges): New boolean initialized to false.
824 (parse_opt): Set decodedaranges when arg is decodedaranges.
825 (print_debug_aranges_section): Reimplemented and original
826 implementation renamed to...
827 (print_decoded_aranges_section): this.
828
8292013-03-25 Mark Wielaard <mjw@redhat.com>
830
Mark Wielaarda8c7f052013-03-25 21:11:53 +0100831 * readelf.c (attrcb_args): Add Dwarf_Die.
832 (attr_callback): When highpc is in constant form also print as
833 address.
834 (print_debug_units): Set args.die.
835
Mark Wielaard10cd97e2013-03-19 11:43:49 +01008362013-03-19 Mark Wielaard <mjw@redhat.com>
837
838 * readelf.c (print_gdb_index_section): Free format_dwarf_addr results.
839
Mark Wielaarda73fecc2013-03-18 13:54:50 +01008402013-03-18 Mark Wielaard <mjw@redhat.com>
841
842 * readelf.c (print_gdb_index_section): Accept version 8.
843
Mark Wielaarda58951b2013-03-01 11:51:58 +01008442013-03-01 Mark Wielaard <mjw@redhat.com>
845
846 * findtextrel.c (process_file): Release ELF and close file when not
847 text relocations are found.
848 * strip.c (handle_elf): Track memory used for .debuglink section data
849 and free when done.
850
Mark Wielaardb94ccea2013-02-24 22:58:49 +01008512013-02-24 Mark Wielaard <mjw@redhat.com>
852
853 * elflint.c (check_symtab): Add __bss_start__ to the list of symbols
854 allowed to have out of section values because of GNU ld bugs.
855
Mark Wielaard3bdc16c2013-02-06 16:20:17 +01008562013-02-06 Mark Wielaard <mjw@redhat.com>
857
858 * elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the
859 list of symbols allowed to have out of section values because of
860 GNU ld bugs in either .symtab or .dynsym, but only when they are
861 zero sized.
862
Mark Wielaard10186a12013-01-24 11:29:21 +01008632013-01-24 Mark Wielaard <mjw@redhat.com>
864
865 * readelf.c (argp_option): Add unresolved-address-offsets, U.
866 (print_unresolved_addresses): New static.
867 (parse_opt): Handle 'U', set print_unprocessed_values.
868 (format_dwarf_addr): Take and handle new raw argument.
869 (print_ops): Call format_dwarf_addr with raw offset values.
870 (print_debug_ranges_section): Likewise.
871 (print_debug_frame_section): Likewise.
872 (attr_callback): Likewise.
873 (print_debug_line_section): Likewise.
874 (print_debug_loc_section): Likewise.
875 (print_gdb_index_section): Likewise.
876
Mark Wielaard24257102013-01-18 22:19:08 +01008772013-01-18 Mark Wielaard <mjw@redhat.com>
878
879 * readelf.c (struct listptr): Add base Dwarf_Addr field.
880 (compare_listptr): Warn for same offset with different base.
881 (notice_listptr): Take base argument and set it.
882 (skip_listptr_hole): Likewise.
883 (struct attrcb_args): Removed unused cu_offset field.
884 Add cu_base Dwarf_Addr field.
885 (attr_callback): Call notice_listptr with cbargs->cu_base.
886 (print_debug_units): Set args.cu_base.
887 (print_debug_ranges_section): Get base and use for format_dwarf_addr.
888 (print_debug_loc_section): Likewise.
889
Jan Kratochvilc44cce02012-10-10 19:32:05 +02008902013-01-29 Jan Kratochvil <jan.kratochvil@redhat.com>
891
892 * readelf.c (handle_core_items): Limit special repeated items handling
893 to single-item formats '\n', 'b' and 'B', assert OFFSET 0 there.
894
Mark Wielaard6d258ce2013-01-16 15:19:20 +01008952012-12-18 Mark Wielaard <mark@bordewijk.wildebeest.org>
896
897 * readelf.c (ELF_INPUT_SECTION): New argp key value.
898 (argp_option): Add elf-section.
899 (elf_input_section): New static.
900 (parse_opt): Handle ELF_INPUT_SECTION and set elf_input_section.
901 (open_input_section): New function.
902 (process_file): Call open_input_section if elf_input_section set.
903
David Abdurachmanov1a4d0662013-01-13 16:44:21 +01009042013-01-13 David Abdurachmanov <David.Abdurachmanov@cern.ch>
905
906 ar.c (do_oper_delete): Fix num passed to memset.
907
Mark Wielaard55324042012-12-21 10:02:11 +01009082012-12-21 Mark Wielaard <mjw@redhat.com>
909
Mark Wielaard00f758c2012-12-21 22:11:44 +0100910 * readelf.c (print_debug_frame_section): Adjust FDE start address
911 if pcrel before feeding it to format_dwarf_addr.
912
9132012-12-21 Mark Wielaard <mjw@redhat.com>
914
915 * addr2line.c (main): Call dwfl_end.
Mark Wielaard55324042012-12-21 10:02:11 +0100916
Roland McGrath57bd66c2012-12-11 09:42:07 -08009172012-12-11 Roland McGrath <roland@hack.frob.com>
918
919 * nm.c (show_symbols_sysv): Fix size passed to snprintf for invalid
920 sh_name case.
921 Reported by David Abdurachmanov <David.Abdurachmanov@cern.ch>.
922
Mark Wielaard7e3bd4f2012-11-16 12:25:04 +01009232012-10-16 Mark Wielaard <mjw@redhat.com>
924
925 * readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are
926 calculated beginning after the operand and 2-byte constant.
927
Jan Kratochvil4bdbb672012-10-10 22:27:58 +02009282012-10-12 Jan Kratochvil <jan.kratochvil@redhat.com>
929
930 * readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ...
931 (WRAP_COLUMN): ... here.
932 (print_core_item): Remove parameter format_max. Update function
933 comment. Replace FORMAT_MAX by the real output width.
934 (handle_core_item): Remove the FORMAT_MAX values in TYPES, DO_TYPE,
935 calls of print_core_item, remove variable maxfmt, change
936 ITEM_WRAP_COLUMN to WRAP_COLUMN.
937 (handle_core_register): Remove the FORMAT_MAX values in TYPES, BITS,
938 calls of print_core_item, change REGISTER_WRAP_COLUMN to WRAP_COLUMN.
939
Roland McGrath82ed98a2012-10-11 14:53:18 -07009402012-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
941
942 * readelf.c (handle_core_item) <b>: Make run an outer block variable.
943 Increase run only if LASTBIT != 0. Print last element only if RUN > 0.
944
Mark Wielaarde89c5002012-08-27 14:30:05 +02009452012-08-27 Mark Wielaard <mjw@redhat.com>
946
Mark Wielaard3e440062012-08-27 15:21:58 +0200947 * readelf.c (print_debug_macro_section): Print offset as PRIx64.
948
9492012-08-27 Mark Wielaard <mjw@redhat.com>
950
Mark Wielaarde89c5002012-08-27 14:30:05 +0200951 * readelf.c (register_info): Handle loc == NULL.
952
Jeff Kenton257dcf42012-08-22 09:00:03 -04009532012-08-22 Jeff Kenton <jkenton@tilera.com>
954
955 * elflint.c (valid_e_machine): Add EM_TILEGX and EM_TILEPRO.
956
Mark Wielaardf31c4412012-08-17 00:35:03 +02009572012-08-16 Mark Wielaard <mjw@redhat.com>
958
959 * readelf.c (dwarf_tag_name): Renamed from dwarf_tag_string.
960 Uses new dwarf_tag_string or adds ??? or lo_user+%#x when
961 appropriate.
962 (dwarf_attr_name): Likewise.
963 (dwarf_form_name): Likewise.
964 (dwarf_lang_name): Likewise.
965 (dwarf_inline_name): Likewise.
966 (dwarf_encoding_name): Likewise.
967 (dwarf_access_name): Likewise.
968 (dwarf_visibility_name): Likewise.
969 (dwarf_virtuality_name): Likewise.
970 (dwarf_identifier_case_name): Likewise.
971 (dwarf_calling_convention_name): Likewise.
972 (dwarf_ordering_name): Likewise.
973 (dwarf_discr_list_name): Likewise.
974 (print_ops): Remove KNOWN. Use dwarf_locexpr_opcode_string.
975 (attr_callback): Call new dwarf_foobar_name instead of old
976 dwarf_foobar_string functions.
977 (dwarf_tag_string): New function using known-dwarf.h macros.
978 (dwarf_attr_string): Likewise.
979 (dwarf_form_string): Likewise.
980 (dwarf_lang_string): Likewise.
981 (dwarf_inline_string): Likewise.
982 (dwarf_encoding_string): Likewise.
983 (dwarf_access_string): Likewise.
984 (dwarf_visibility_string): Likewise.
985 (dwarf_virtuality_string): Likewise.
986 (dwarf_identifier_case_string): Likewise.
987 (dwarf_calling_convention_string): Likewise.
988 (dwarf_ordering_string): Likewise.
989 (dwarf_discr_list_string): Likewise.
990 (dwarf_locexpr_opcode_string): Likewise.
991
Mark Wielaard775375e2012-06-22 12:02:45 +02009922012-06-27 Mark Wielaard <mjw@redhat.com>
993
994 * readelf.c (dwarf_form_string): Handle DW_FORM_GNU_ref_alt and
995 DW_FORM_GNU_strp_alt.
996 (attr_callback): Likewise.
997
Petr Machatafe198bc2012-07-30 19:48:28 +02009982012-07-30 Petr Machata <pmachata@redhat.com>
999
1000 * nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and
1001 corresponding printf) so that those that are referenced by only
1002 one of the formatting strings are at the end.
1003
Mark Wielaard629b2562012-07-29 14:05:20 +020010042012-07-29 Mark Wielaard <mjw@redhat.com>
1005
1006 * readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc.
1007 (print_ops): Use known[op], not op_name, for DW_OP_GNU_parameter_ref.
1008
Mark Wielaard515fba92012-07-20 00:09:56 +020010092012-07-19 Mark Wielaard <mjw@redhat.com>
1010
1011 * readelf.c (print_ops): Handle DW_OP_GNU_parameter_ref.
1012
Mark Wielaarde9b23882012-06-29 22:30:15 +020010132012-07-11 Mark Wielaard <mjw@redhat.com>
1014
1015 * readelf.c (options): Add macro to help of debug-dump.
1016 (section_e): Add section_macro.
1017 (section_all): Add section_macro.
1018 (parse_opt): Handle macro.
1019 (print_debug_macro_section): New function.
1020 (print_debug): Add NEW_SECTION (macro).
1021
Mark Wielaard84a1e0b2012-06-29 23:38:09 +020010222012-07-10 Mark Wielaard <mjw@redhat.com>
1023
1024 * readelf.c (print_gdb_index_section): Add version 7 support.
1025 Keep track of cu_nr. Print kind and static/global flag for each
1026 symbol. When a symbol is in the TU list add 'T'.
1027
Mark Wielaarda0172d72012-06-25 17:18:53 +020010282012-06-26 Mark Wielaard <mjw@redhat.com>
1029
1030 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros.
1031
Mark Wielaard50e2d392012-06-22 16:44:54 +020010322012-06-22 Mark Wielaard <mjw@redhat.com>
1033
1034 * readelf.c (print_ops): Cast printf PRIu/x64 arguments to uint64_t
1035 for gcc 4.7 -Wformat.
1036
Mark Wielaard36aa5982012-05-09 11:27:44 +020010372012-05-09 Roland McGrath <roland@hack.frob.com>
1038
1039 * elflint (check_sections): Allow zero sized sections at (filesz) end
1040 of segment. And make check overflow-proofed.
1041
Mark Wielaard716486d2012-04-24 11:56:42 +020010422012-04-24 Mark Wielaard <mjw@redhat.com>
1043
1044 * readelf.c (print_ops): Add DW_OP_GNU_push_tls_address,
1045 DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr.
1046
Roland McGrath738c1832012-03-28 15:01:49 -070010472012-03-28 Roland McGrath <roland@hack.frob.com>
1048
1049 * elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections.
1050
Mark Wielaard61651c12012-03-28 11:20:36 +020010512012-03-28 Mark Wielaard <mjw@redhat.com>
1052
1053 * readelf.c (print_debug_abbrev_section): Check there is Dwarf
1054 section data.
1055 (print_debug_str_section): Likewise.
1056
Mark Wielaard30bb7142012-03-21 16:05:31 +010010572012-03-21 Mark Wielaard <mjw@redhat.com>
1058
1059 * readelf.c (print_gdb_index_section): Accept version 6.
1060
Mark Wielaardcb643d62012-01-31 19:22:03 +010010612012-01-31 Mark Wielaard <mjw@redhat.com>
1062
1063 * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset.
1064
Ulrich Drepperc6b3d0c2012-01-21 18:14:39 -050010652012-01-21 Ulrich Drepper <drepper@gmail.com>
1066
Ulrich Drepper3a64a302012-01-21 18:19:24 -05001067 * addr2line.c: Update copyright year.
1068 * ar.c: Likewise.
1069 * elfcmp.c: Likewise.
1070 * elflint.c: Likewise.
1071 * findtextrel.c: Likewise.
1072 * ld.c: Likewise.
1073 * nm.c: Likewise.
1074 * objdump.c: Likewise.
1075 * ranlib.c: Likewise.
1076 * readelf.c: Likewise.
1077 * size.c: Likewise.
1078 * strings.c: Likewise.
1079 * strip.c: Likewise.
1080 * unstrip.c: Likewise.
1081
Ulrich Drepperc6b3d0c2012-01-21 18:14:39 -05001082 * nm.c (argp_children): Define.
1083 (argp): Hook up argp_children.
1084 (handle_ar): Optimize puts call.
1085 (show_symbols_bsd): Use positional parameters to also print color
1086 codes. Don't print STT_FILE symbols.
1087 * objdump.c (options): Improve help text.
1088 (argp_children): Define.
1089 (argp): Hook up argp_children.
1090 (disasm_info): Add elements for color codes.
1091 (disasm_output): Print color codes as well.
1092 (show_disasm): Set up disasm_info data for callback.
1093
Roland McGrath85924782012-01-20 11:40:59 -080010942012-01-20 Roland McGrath <roland@hack.frob.com>
1095
Roland McGrath3284b792012-01-20 12:51:46 -08001096 * arlib-argp.c (arlib_deterministic_output): Initialize from
1097 configured value.
1098 (help_filter): New function.
1099 (argp): Use it.
1100
Roland McGrath9bffd362012-01-20 12:04:19 -08001101 * ar.c (main): Handle oper_none as usage error.
1102
Roland McGrath6e063d92012-01-20 11:43:36 -08001103 * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D.
1104
Roland McGrath85924782012-01-20 11:40:59 -08001105 * ranlib.c (argp): Use arlib_argp_children.
1106
1107 * arlib.c (arlib_init): Obey arlib_deterministic_output.
1108
1109 * arlib-argp.c: New file.
1110 * Makefile.am (libar_a_SOURCES): Add it.
1111 * arlib.h (arlib_deterministic_output, arlib_argp_children):
1112 Declare new variables.
1113 * ar.c (deterministic_output): Variable removed.
1114 (do_oper_insert): Use arlib_deterministic_output instead.
1115 (options, parse_opt): Don't handle -D here. Add group numbers.
1116 (argp): Use arlib_argp_children.
1117
Roland McGratha065c4b2011-12-20 10:55:01 -080011182011-12-20 Roland McGrath <roland@hack.frob.com>
1119
1120 * readelf.c (print_debug): Initialize DUMMY_DBG.elf.
1121 Reported by Karel Klic <kklic@redhat.com>.
1122
Roland McGrath4fa988e2011-11-05 20:58:14 -070011232011-11-05 Roland McGrath <roland@hack.frob.com>
1124
Roland McGrathe5ba2a12011-11-05 21:08:07 -07001125 * ar.c (deterministic_output): New flag variable.
1126 (options, parse_opt): Grok -D to set it.
1127 (do_oper_insert): When set, use zero from mtime, uid, and gid.
1128
Roland McGrath4fa988e2011-11-05 20:58:14 -07001129 * ar.c (do_oper_insert): Fix check on elf_rawfile return value.
1130
Marek Polacek8d1e2972011-10-04 05:11:42 -040011312011-10-04 Marek Polacek <mpolacek@redhat.com>
1132
1133 * readelf.c (register_info): Assume the right size of an array.
1134
Ulrich Drepper2356ba02011-10-03 07:23:07 -040011352011-10-03 Ulrich Drepper <drepper@gmail.com>
1136
1137 * nm.c: Recognize option --mark-special. Still recognize --mark-weak
1138 but don't show it in help anymore.
1139 (mark_special): Renamed from mark_weak.
1140 (parse_opt): Adjust.
1141 (class_type_char): Take additional parameters for ELF file and ELF
1142 header. Treat TLS symbols like objects.
1143 In case of D symbols, show u for unique symbols, R for symbols in
1144 read-only sections, B for symbols in BSS sections.
Ulrich Drepper21b5d4c2011-10-03 16:08:33 -04001145 (show_symbols_bsd): Take additional parameters for ELF file and ELF
Ulrich Drepper2356ba02011-10-03 07:23:07 -04001146 header. Adjust for class_type_char change. Show TLS symbols with
1147 @ after them in case --mark-special is selected.
1148 (show_symbols_posix): Likewise.
1149 (show_symbols): Adjust calls to show_symbols_bsd and
1150 show_symbols_posix.
Ulrich Drepper66f4c372011-10-03 15:53:12 -04001151 (show_symbols_sysv): Avoid printing adress and size for undefined
Ulrich Drepper21b5d4c2011-10-03 16:08:33 -04001152 symbols. Don't print initial special entry and section entries.
Ulrich Drepper2356ba02011-10-03 07:23:07 -04001153
Ulrich Drepperb4a16cf2011-10-02 08:33:19 -040011542011-10-02 Ulrich Drepper <drepper@gmail.com>
1155
1156 * Makefile.am (demanglelib): Define.
1157 (nm_LDADD): Add demanglelib.
1158 * nm.c (options): Add -C option.
1159 (demangle): Define as global variable.
1160 (parse_opt): Recognize -C.
1161 (show_symbols_sysv): Handle demangling.
1162 (show_symbols_bad): Likewise.
1163 (show_symbols_posix): Likewise.
1164 (show_symbols): Likewise.
1165
Roland McGrathb0a0e0d2011-07-09 03:20:16 -070011662011-07-09 Roland McGrath <roland@hack.frob.com>
1167
Roland McGrathbd754192011-07-09 05:33:37 -07001168 * readelf.c (options, parse_opt): Grok -W/--wide and ignore it.
1169
1170 * ar.c (parse_opt): Grok -u.
Roland McGrathb0a0e0d2011-07-09 03:20:16 -07001171
Mark Wielaard02a958b2011-05-30 17:23:57 +020011722011-05-30 Mark Wielaard <mjw@redhat.com>
1173
1174 * strip.c (relocate): Make offset check overflow-proof.
1175
Mark Wielaard1662bc32011-05-16 11:33:11 +020011762011-05-23 Mark Wielaard <mjw@redhat.com>
1177
Mark Wielaard63868c22011-05-24 16:09:31 +02001178 * strip.c (relocate): Take new arguments is_rela to indicate
Roland McGrathb0a0e0d2011-07-09 03:20:16 -07001179 whether the relocation is from a SHT_REL or SHT_RELA section.
Mark Wielaard63868c22011-05-24 16:09:31 +02001180 Relocate against any debug section symbol, not just STT_SECTION
1181 symbols. For SHT_REL relocations, fetch addend from offset and
1182 add it to symbol value if not zero.
1183
11842011-05-23 Mark Wielaard <mjw@redhat.com>
1185
Mark Wielaard1662bc32011-05-16 11:33:11 +02001186 * strip.c (OPT_RELOC_DEBUG): New option.
1187 (argp_option): Add new --reloc-debug-sections option.
1188 (main): Check new option.
1189 (parse_opt): Likewise.
1190 (handle_elf): Remove any relocations between debug sections
1191 in ET_REL for the debug file when requested.
1192
Mark Wielaard7a125b92011-05-17 12:20:01 +020011932011-05-18 Mark Wielaard <mjw@redhat.com>
1194
1195 * strip.c (handle_elf): Make sure all sections of a removed group
1196 section are removed too. Don't discard SHT_GROUP sections, copy
1197 section table before it gets modified. Section group signature
1198 symbols don't have to be retained.
1199
Jakub Jelinek03124242011-05-17 17:00:14 +020012002011-05-16 Jakub Jelinek <jakub@redhat.com>
1201
1202 * readelf.c (print_ops): Handle DW_OP_GNU_const_type,
1203 DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert
1204 and DW_OP_GNU_reinterpret.
1205
Mark Wielaard69a9b112011-05-17 15:34:02 +020012062011-05-17 Mark Wielaard <mjw@redhat.com>
1207
1208 * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and
1209 DW_TAG_GNU_call_site_parameter return strings.
1210
Marek Polacekc8920de2011-05-12 12:08:21 +020012112011-05-11 Marek Polacek <mpolacek@redhat.com>
1212
1213 * nm.c (show_symbols_sysv): Remove unused if/else, remove
1214 unused `prefix' and `fname' parameters.
1215
Marek Polacek82f77d72011-05-07 19:26:20 +020012162011-05-07 Marek Polacek <mpolacek@redhat.com>
1217
1218 * unstrip.c (compare_sections_nonrel): Mark this function as static.
1219
Mark Wielaardbb9d1b42011-04-24 17:53:38 +020012202011-04-26 Mark Wielaard <mjw@redhat.com>
1221
1222 * readelf.c (handle_notes_data): Call ebl_object_note_type_name
1223 with note name.
1224
Mark Wielaard093a1d32011-04-14 23:47:26 +020012252011-04-14 Mark Wielaard <mjw@redhat.com>
1226
1227 * readelf.c (options): Add gdb_index.
1228 (section_e): Define section_gdb_index.
1229 (parse_opt): Recognize gdb_index debug-dump argument.
1230 (print_gdb_index_section): New function.
1231 (print_debug): Add gdb_index to debug_sections.
1232
Petr Machata1879e5b2011-03-25 15:17:04 +010012332011-03-24 Petr Machata <pmachata@redhat.com>
1234
1235 * readelf.c (print_debug_line_section): Emit initial space for all
1236 opcode lines. Print offset in front of each opcode.
1237
Marek Polacek44de92a2011-03-22 01:07:20 +010012382011-03-22 Marek Polacek <mpolacek@redhat.com>
1239
1240 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case.
1241
Mark Wielaarde3368c52011-03-22 23:03:31 +010012422011-03-22 Mark Wielaard <mjw@redhat.com>
1243
1244 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site
1245 and DW_TAG_GNU_call_site_parameter.
1246 (dwarf_attr_string): Support DW_AT_GNU_call_site_value,
1247 DW_AT_GNU_call_site_data_value,
1248 DW_AT_GNU_call_site_target,
1249 DW_AT_GNU_call_site_target_clobbered,
1250 DW_AT_GNU_tail_call,
1251 DW_AT_GNU_all_tail_call_sites,
1252 DW_AT_GNU_all_call_sites,
1253 and DW_AT_GNU_all_source_call_sites.
1254 (print_ops): Handle DW_OP_GNU_entry_value.
1255 (attr_callback): Handle DW_AT_GNU_call_site_value,
1256 DW_AT_GNU_call_site_data_value,
1257 DW_AT_GNU_call_site_target,
1258 and DW_AT_GNU_call_site_target_clobbered.
1259
Mark Wielaarda062b6b2011-03-10 13:02:32 +010012602011-03-10 Mark Wielaard <mjw@redhat.com>
1261
1262 * elflint.c (check_symtab): Use ebl_check_st_other_bits.
1263
Jan Kratochvilfec39992011-02-27 12:01:25 -080012642011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
1265
1266 * readelf.c (reset_listptr): Clear TABLE->TABLE.
1267
Mark Wielaardcf454ab2011-02-25 12:58:54 +010012682011-02-25 Mark Wielaard <mjw@redhat.com>
1269
1270 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
1271 (dwarf_form_string): Properly format and return unknown form.
1272
Roland McGrath47c53232011-02-23 09:23:08 -080012732011-02-23 Roland McGrath <roland@redhat.com>
1274
Roland McGrath725aad52011-02-23 19:52:46 -08001275 * readelf.c (section_name): New function.
1276 (print_debug_abbrev_section): Use it instead of constant.
1277 (print_debug_aranges_section): Likewise.
1278 (print_debug_ranges_section): Likewise.
1279 (print_debug_units): Likewise.
1280 (print_debug_line_section): Likewise.
1281 (print_debug_loc_section): Likewise.
1282 (print_debug_macinfo_section): Likewise.
1283 (print_debug_pubnames_section): Likewise.
1284 (print_debug_str_section): Likewise.
1285 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too.
1286 (print_debug_abbrev_section): Use decoded d_size, not sh_size.
1287 (print_debug_str_section): Likewise.
1288
Roland McGrath47c53232011-02-23 09:23:08 -08001289 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
1290
Roland McGrath1fb9c912011-02-11 10:32:30 -080012912011-02-11 Roland McGrath <roland@redhat.com>
1292
Roland McGrath4a14ef72011-02-11 10:42:45 -08001293 * elfcmp.c (verbose): New variable.
1294 (options, parse_opt): Grok -l/--verbose to set it.
1295 (main): Under -l, keep going after first difference.
1296
Roland McGrath1fb9c912011-02-11 10:32:30 -08001297 * elfcmp.c (ignore_build_id): New variable.
1298 (options, parse_opt): Grok --ignore-build-id to set it.
1299 (main): For SHT_NOTE sections, compare note details rather than raw
1300 bytes. Under --ignore-build-id, don't complain about differing build
1301 ID contents if lengths match.
1302
Roland McGrathfd992542011-02-08 19:45:12 -080013032011-02-08 Roland McGrath <roland@redhat.com>
1304
Roland McGrath240784b2011-02-08 19:48:42 -08001305 * ldscript.y (filename_id_star): Remove unused variable.
1306
Roland McGrath8f6c1792011-02-08 19:48:02 -08001307 * unstrip.c (copy_elided_sections): Remove unused variable.
1308
Roland McGrath4db89f02011-02-08 19:46:50 -08001309 * elflint.c (check_dynamic): Remove unused variables.
1310
Roland McGrath33231312011-02-08 19:45:26 -08001311 * elflint.c (check_symtab): Warn about missing xndx section only once.
1312
Roland McGrathfd992542011-02-08 19:45:12 -08001313 * ldgeneric.c (check_for_duplicate2): Remove unused variable.
1314
Roland McGrathf151b7d2011-01-06 12:14:43 -080013152011-01-06 Roland McGrath <roland@redhat.com>
1316
1317 * strip.c (handle_elf): Under --strip-sections, remove all
1318 non-allocated sections and never generate .gnu_debuglink.
1319
Roland McGrath0b9d1fb2011-01-04 19:29:24 -080013202011-01-04 Roland McGrath <roland@redhat.com>
1321
1322 * strip.c (remove_shdrs): New variable.
1323 (options, parse_opt): Grok --strip-sections to set it.
1324 (handle_elf): When that's set, truncate off .shstrtab and shdrs.
1325
Roland McGrath77221de2010-11-10 19:47:31 -080013262010-11-10 Roland McGrath <roland@redhat.com>
1327
1328 * findtextrel.c (process_file): Don't assume order of sections.
1329 Reported by Mike Hommey <mh@glandium.org>.
1330
Roland McGrath932585d2010-05-08 04:01:14 -070013312010-07-26 Roland McGrath <roland@redhat.com>
1332
1333 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer.
1334
Roland McGratha1599152010-08-30 04:04:37 -070013352010-08-30 Roland McGrath <roland@redhat.com>
1336
Roland McGrathfa144952010-08-30 19:22:41 -07001337 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses.
1338 * readelf.c (parse_opt): Add section_info to implicit_debug_sections
1339 for ranges, loc.
1340 (struct listptr, struct listptr_table): New types.
1341 (compare_listptr, reset_listptr, sort_listptr): New functions.
1342 (notice_listptr, skip_listptr_hole): New functions.
1343 (struct attrcb_args): Add silent member.
1344 (attr_callback): Call notice_listptr for loclistptr and rangelistptr.
1345 Suppress output if silent, but still call notice_listptr.
1346 (print_debug_units): Suppress output if section_info not requested.
1347 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole.
1348 (print_debug_ranges_section): Likewise.
1349 (print_debug): Call reset_listptr on both tables.
1350
1351 * readelf.c (print_debug_ranges_section): Print empty list.
1352 (print_debug_loc_section): Likewise.
1353
Roland McGratha1599152010-08-30 04:04:37 -07001354 * readelf.c (print_debug_loc_section): Check for bogus length
1355 before calling print_ops.
1356 (print_ops): Check harder for bogus data that would read off end.
1357
Roland McGrathf4763cf2010-08-11 13:04:12 -070013582010-08-11 Roland McGrath <roland@redhat.com>
1359
1360 * readelf.c (for_each_section_argument): Process all sections with
1361 matching name, not just the first.
1362
Roland McGrath52604ba2010-07-26 21:29:44 -070013632010-07-26 Roland McGrath <roland@redhat.com>
1364
1365 * readelf.c (print_ops): Take new argument for CU version.
1366 Fix DW_OP_call_ref decoding to depend on it.
1367 (print_debug_loc_section): Update caller.
1368 (print_cfa_program): Take new argument, pass it down.
1369 (print_debug_frame_section): Update caller.
1370 (struct attrcb_args): New member version.
1371 (print_debug_units): Initialize it.
1372
Roland McGrath2f14a312010-07-02 11:16:25 -070013732010-07-02 Roland McGrath <roland@redhat.com>
1374
1375 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for
1376 initial_location.
1377
Roland McGrathb6458032010-06-30 11:57:19 -070013782010-06-30 Roland McGrath <roland@redhat.com>
1379
1380 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO.
1381 Ignore st_size for a non-S_ISREG file descriptor.
1382 (read_block): Move assert after no-mmap bail-out.
1383 (read_block_no_mmap): Fix size calculations for moving buffer remnant.
1384
Roland McGrathfa799902010-06-22 13:05:23 -070013852010-06-22 Roland McGrath <roland@redhat.com>
1386
1387 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa.
1388
Roland McGrath0c5638c2010-06-21 23:00:35 -070013892010-06-21 Roland McGrath <roland@redhat.com>
1390
1391 * readelf.c (dwarf_tag_string): Handle new v4 tags.
Roland McGrath474cb482010-06-22 00:10:54 -07001392 (dwarf_attr_string): Add new attributes.
1393 (dwarf_tag_string): Handle DW_TAG_GNU_*.
Roland McGrath0c5638c2010-06-21 23:00:35 -07001394
1395 * readelf.c (print_ops): Use 64-bit types for LEB128 operands.
1396 (print_cfa_program): Likewise.
1397
Roland McGrathe5251a12010-06-20 16:59:39 -070013982010-06-20 Roland McGrath <roland@redhat.com>
1399
Roland McGrath2b1f0952010-06-20 17:55:50 -07001400 * readelf.c (print_debug_units): New function, broken out of ...
1401 (print_debug_info_section): ... here. Call it.
1402 (print_debug_types_section): New function.
1403 (enum section_e): Add section_types alias for section_info.
1404 (print_debug): Add types to the sections table.
1405
Roland McGrath599f7f52010-06-20 17:12:43 -07001406 * readelf.c (print_debug_frame_section): Handle version 4 format.
1407
Roland McGrathe5251a12010-06-20 16:59:39 -07001408 * readelf.c (print_debug_line_section): Handle version 4 format.
1409
Roland McGrathec86e5f2010-06-14 17:44:38 -070014102010-06-14 Roland McGrath <roland@redhat.com>
1411
1412 * unstrip.c (copy_elided_sections): Make sure all sections' data have
1413 been read in before we write anything out.
1414
Roland McGrath3b1b6512010-06-04 02:26:30 -070014152010-06-04 Roland McGrath <roland@redhat.com>
1416
Roland McGrathaa32f922010-06-04 02:29:08 -07001417 * unstrip.c (update_shdr): New function.
1418 (update_sh_size): Call it instead of gelf_update_shdr.
1419 (adjust_relocs, add_new_section_symbols): Likewise.
1420 (new_shstrtab, copy_elided_sections): Likewise.
1421
Roland McGrath3b1b6512010-06-04 02:26:30 -07001422 * unstrip.c (copy_elided_sections): Bail if stripped file has more
1423 sections than unstripped file, rather than getting confused later.
1424
Roland McGrath7a5bed82010-06-01 13:44:00 -070014252010-06-01 Roland McGrath <roland@redhat.com>
1426
Roland McGrath7fac1ce2010-06-01 15:56:58 -07001427 * readelf.c (dwarf_form_string): Handle DWARF 4 forms.
1428 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
Roland McGrathc8a06732010-06-01 19:52:39 -07001429 DW_FORM_sec_offset, DW_FORM_ref_sig8.
Roland McGrath7fac1ce2010-06-01 15:56:58 -07001430
Roland McGrath7a5bed82010-06-01 13:44:00 -07001431 * readelf.c (print_debug): Don't bail if libdw setup fails.
1432 Suppress complaint if we only want .eh_frame anyway.
1433
Ulrich Drepper173ade82010-05-28 07:39:49 -070014342010-05-28 Ulrich Drepper <drepper@redhat.com>
1435
1436 * readelf.c (attr_callback): Also print form information.
1437
Roland McGrath12e3d1f2010-05-19 18:03:31 -070014382010-05-19 Roland McGrath <roland@redhat.com>
1439
1440 * addr2line.c (find_symbol): Short-circuit on empty name.
1441 (handle_address): Handle SYMBOL with no +OFFSET.
1442
Roland McGrath688f7fc2010-05-08 03:22:59 -070014432010-05-08 Roland McGrath <roland@redhat.com>
1444
1445 * readelf.c (print_ops): Take new arg OFFSET_SIZE.
1446 Use that for DW_OP_call_ref, not ADDRSIZE.
1447 (print_cfa_program): Update caller.
1448 (struct attrcb_args): Add offset_size field.
1449 (attr_callback): Use it for print_ops call.
1450 (print_debug_info_section): Initialize it.
Roland McGrath932585d2010-05-08 04:01:14 -07001451 (print_ops): Likewise.
Roland McGrath50aa8d12010-06-01 11:22:36 -07001452
Roland McGrath62b28b62010-04-14 11:54:06 -070014532010-04-14 Roland McGrath <roland@redhat.com>
1454
1455 * readelf.c (handle_core_item): Fix bitmask printing.
1456
Roland McGrath3b495d82010-04-06 12:58:32 -070014572010-04-06 Roland McGrath <roland@redhat.com>
1458
1459 * ld.c (options): Fix some typos in messages.
1460 * elflint.c (check_scn_group, check_group): Likewise.
1461 * ldscript.y (add_id_list): Likewise.
1462 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
1463 before translated string containing a literal %.
1464
Roland McGrath890081b2010-02-26 17:57:50 -080014652010-02-26 Roland McGrath <roland@redhat.com>
1466
1467 * readelf.c (process_file): Don't leak an fd in failure case.
1468
Roland McGrathc2b26f12010-02-15 15:16:15 -080014692010-02-15 Roland McGrath <roland@redhat.com>
1470
Roland McGrath22359e22010-02-15 15:57:03 -08001471 * Makefile.am: Use config/eu.am for common stuff.
1472
Roland McGrathc2b26f12010-02-15 15:16:15 -08001473 * readelf.c (print_debug_frame_section): Add a cast to avoid sign
1474 mismatch in comparison.
1475
Roland McGrathf920fd52010-02-02 15:50:15 -080014762010-02-02 Roland McGrath <roland@redhat.com>
1477
1478 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
1479 (read_encoded): Likewise.
1480 (print_debug_frame_section): Check for bogus augmentation length.
1481 For P augmentation, use read_encoded, print the encoding description,
1482 and use hex for unsigned values.
1483
Roland McGrathb337b1f2010-01-15 01:02:27 -080014842010-01-15 Roland McGrath <roland@redhat.com>
1485
1486 * ar.c: Include <sys/stat.h>.
1487 * elflint.c: Likewise.
1488 * readelf.c: Likewise.
1489 * strip.c: Likewise.
1490 * unstrip.c: Likewise
1491
Roland McGrathbd733ca2010-01-07 20:11:42 -080014922010-01-07 Roland McGrath <roland@redhat.com>
1493
Roland McGrath8111da02010-01-07 20:31:59 -08001494 * readelf.c (print_ehdr): Handle PN_XNUM.
1495 (phnum): New static variable.
1496 (process_elf_file): Set it with elf_getphdrnum.
1497 (print_phdr): Use phnum instead of EHDR->e_phnum.
1498 (print_dynamic, handle_notes): Likewise.
1499 (handle_relocs_rel, handle_relocs_rela): Likewise.
1500
Roland McGrathbd733ca2010-01-07 20:11:42 -08001501 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
1502
1503 * elflint.c (phnum): New static variable.
1504 (check_elf_header): Set it, handling PN_XNUM.
1505 Use that in place of EHDR->e_phnum throughout.
1506 (check_symtab, check_reloc_shdr, check_dynamic): Likewise.
1507 (unknown_dependency_p, check_sections, check_program_header): Likewise.
1508
Roland McGrath019d9fb2010-01-05 13:36:07 -080015092010-01-05 Roland McGrath <roland@redhat.com>
1510
1511 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
1512 DW_AT_GNU_template_name.
1513
Roland McGrathe4061d02010-01-04 20:25:09 -080015142010-01-04 Roland McGrath <roland@redhat.com>
1515
Roland McGrath0ccbbcd2010-01-04 21:59:07 -08001516 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
1517 (handle_core_note): Pass NHDR and NAME to ebl_core_note.
1518 (handle_core_item): Handle .format of '\n' as \n-separated strings.
1519
Roland McGrath2e79deb2010-01-04 20:36:10 -08001520 * readelf.c (implicit_debug_sections): New variable.
1521 (parse_opt): Set it instead of print_debug_sections for -a.
1522 OR them together for print_debug check.
1523 (print_debug): OR them together for section check.
1524
Roland McGratha7422be2010-01-04 20:29:33 -08001525 * readelf.c (options): Repartition into set implied by -a and others.
1526 Correct -a text to match reality.
1527
Roland McGrathe4061d02010-01-04 20:25:09 -08001528 * readelf.c (struct section_argument): Add bool member 'implicit'.
1529 (parse_opt): Set it for -a cases, clear it for -x args.
1530 (for_each_section_argument): Don't complain about a missing section by
1531 name if it's implicit.
1532
Roland McGrathefa64962009-11-16 01:50:58 -080015332009-11-16 Roland McGrath <roland@redhat.com>
1534
1535 * readelf.c (print_string_section): Punt SHT_NOBITS like empty
1536 sections, just as dump_data_section already does.
1537
Mark Wielaardc49d00a2009-09-21 16:47:07 -070015382009-09-21 Ulrich Drepper <drepper@redhat.com>
1539
1540 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be
1541 set for .comment section.
1542 Patch by Mark Wielaard <mjw@redhat.com>.
1543
Roland McGrathfb33c672009-09-08 00:21:18 -070015442009-09-08 Roland McGrath <roland@redhat.com>
1545
1546 * ar.c (main): Fix typo in message format.
1547
Roland McGrath2d13ea22009-08-21 03:16:32 -070015482009-08-21 Roland McGrath <roland@redhat.com>
1549
1550 * readelf.c (attr_callback): Use print_block only when we don't use
1551 print_ops.
1552
Roland McGrath536127f2009-08-14 13:10:09 -070015532009-08-14 Roland McGrath <roland@redhat.com>
1554
1555 * ar.c (do_oper_extract): Use pathconf instead of statfs.
1556
Ulrich Drepper9ccf76a2009-08-01 10:07:24 -070015572009-08-01 Ulrich Drepper <drepper@redhat.com>
1558
1559 * debugpred.h: Add two most const.
1560
Mark Wielaardbc1b92e2009-07-26 08:33:18 -070015612009-07-26 Mark Wielaard <mjw@redhat.com>
1562
1563 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
1564
Mark Wielaard79178202009-07-25 12:44:46 -070015652009-07-25 Mark Wielaard <mjw@redhat.com>
1566
1567 * Makefile.am (addr2line_LDADD): Add $(libelf).
1568
Roland McGrathbe4589d2009-07-24 16:23:12 -070015692009-07-24 Roland McGrath <roland@redhat.com>
1570
1571 * readelf.c (print_block): New function.
1572 (print_ops): Use it.
1573 (attr_callback): Use it for DW_FORM_block* forms.
1574
Mark Wielaarddaf85b22009-07-24 15:49:51 -070015752009-07-20 Mark Wielaard <mjw@redhat.com>
1576
1577 * readelf.c (print_ops): Add handling of DW_OP_implicit_value
1578 and DW_OP_stack_value.
1579
Ulrich Drepper96d950e2009-07-14 10:42:01 -070015802009-07-14 Ulrich Drepper <drepper@redhat.com>
1581
1582 * elflint.c (check_elf_header): Allow Linux ABI.
1583 (check_symtab): Handle STB_GNU_UNIQUE.
1584
Mark Wielaardf735db12009-07-08 19:18:53 +020015852009-07-08 Mark Wielaard <mjw@redhat.com>
1586
1587 * readelf.c (attr_callback): Handle DW_Form constants for
1588 DW_AT_data_member_location.
1589
Roland McGrathdffc33d2009-07-06 16:06:41 -070015902009-07-06 Roland McGrath <roland@redhat.com>
1591
1592 * readelf.c (register_info): New function. Handle unknown register #s.
1593 (print_cfa_program): Use it.
1594 (handle_core_register, handle_core_registers): Likewise.
1595
Roland McGrath5dbccdb2009-06-28 14:48:02 -070015962009-06-28 Roland McGrath <roland@redhat.com>
1597
1598 * readelf.c (print_address_names): New static variable.
1599 (options, parse_opt): Grok -N/--numeric-addresses to clear it.
1600 (format_dwarf_addr): Don't look up name if !print_address_names.
1601
Ulrich Drepperf1894932009-06-13 15:55:42 -070016022009-06-13 Ulrich Drepper <drepper@redhat.com>
1603
1604 * ldgeneric.c: Don't use deprecated libelf functions.
1605 * nm.c: Likewise.
1606 * objdump.c: Likewise.
1607 * readelf.c: Likewise.
1608 * size.c: Likewise.
1609 * strip.c: Likewise.
1610 * unstrip.c: Likewise.
1611 * ld.h: Fix up comment.
1612
Ulrich Drepperb47d2902009-06-01 07:38:32 -070016132009-06-01 Ulrich Drepper <drepper@redhat.com>
1614
1615 * readelf.c (print_relocs): Expect ELF header argument and pass on
1616 to handle_relocs_rel* functions. Adjust caller.
1617 (handle_relocs_rel): Add ELF header argument. Add special case for
1618 the IRELATIVE relocations in statically linked executables.
1619 (handle_relocs_rela): Likewise.
1620
Roland McGrathdb19f0b2009-05-07 18:44:27 -070016212009-04-29 Ulrich Drepper <drepper@redhat.com>
1622
1623 * elflint.c (check_symtab): Add tests of st_other field.
1624
Ulrich Drepperaab90f92009-04-23 07:44:36 -070016252009-04-23 Ulrich Drepper <drepper@redhat.com>
1626
1627 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
1628
Roland McGrathd86e1832009-04-20 00:49:33 -070016292009-04-20 Roland McGrath <roland@redhat.com>
1630
Roland McGrath8a592412009-04-20 01:20:44 -07001631 * addr2line.c (print_dwarf_function): Honor -s and -A for file names
1632 of inline call sites.
1633
Roland McGrathd86e1832009-04-20 00:49:33 -07001634 * addr2line.c (just_section): New variable.
1635 (adjust_to_section): New function, broken out of ...
1636 (handle_address): ... here.
1637 (options, parse_opt): Add -j/--section=NAME to set it.
1638
Roland McGrath2fb90512009-04-15 14:47:13 -070016392009-04-15 Roland McGrath <roland@redhat.com>
1640
1641 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
1642 64-bit format header, DW_CIE_ID_32 in 32-bit format header.
1643
Roland McGrath04a14162009-04-14 01:02:17 -070016442009-04-14 Roland McGrath <roland@redhat.com>
1645
Roland McGratheb9ba472009-04-14 18:44:45 -07001646 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
1647 like SHT_GNU_ATTRIBUTES.
1648
Roland McGrath94f43832009-04-14 04:39:32 -07001649 * readelf.c (handle_core_registers): Fix error message.
1650
Roland McGrath04a14162009-04-14 01:02:17 -07001651 * strip.c (handle_elf: check_preserved): Don't note any change when
1652 .debug_data is already filled from a previous pass.
1653
Ulrich Drepper411cdb22009-02-05 22:04:26 -080016542009-02-05 Ulrich Drepper <drepper@redhat.com>
1655
Ulrich Drepper51b3f472009-02-05 22:10:39 -08001656 * objdump.c (show_relocs_x): Minor cleanups.
1657
Ulrich Drepper411cdb22009-02-05 22:04:26 -08001658 * readelf.c (print_cfa_program): Correct a few labels.
Ulrich Drepper973a9c72009-02-05 22:56:39 -08001659 Print first DW_CFA_expression and DW_CFA_val_expression parameter
1660 as register.
Ulrich Drepper411cdb22009-02-05 22:04:26 -08001661
Ulrich Drepper5ee720c2009-02-01 16:18:18 -080016622009-02-01 Ulrich Drepper <drepper@redhat.com>
1663
Ulrich Drepper95fa15e2009-02-01 19:06:10 -08001664 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
1665 into ...
1666 (show_relocs_x): ...here. New function.
Ulrich Drepperf44f0ce2009-02-01 21:31:26 -08001667 (show_relocs): Better spacing in output.
Ulrich Drepper95fa15e2009-02-01 19:06:10 -08001668
Ulrich Dreppercbb422e2009-02-01 18:18:55 -08001669 * objdump.c (show_relocs_rela): Show offsets as signed values.
1670
Ulrich Drepper5ee720c2009-02-01 16:18:18 -08001671 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
1672 Improve some error messages.
1673 Use program_invocation_short_name instead of AR macro.
1674 * Makefile.am (CFLAGS_ar): Remove.
1675 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
1676 * objdump.c (parse_opt): Likewise.
1677 * readelf.c (parse_opt): Likewise.
1678
Roland McGrath51f01282009-01-27 17:08:03 -080016792009-01-27 Roland McGrath <roland@redhat.com>
1680
1681 * readelf.c (print_ops): Notice short length, don't overrun buffer
1682 (still need to fix LEB128).
1683
1684 * readelf.c (print_ops): Fix DW_OP_call[24] decoding.
1685
1686 * readelf.c (print_ops): Print (empty)\n when LEN == 0.
1687
Ulrich Drepper62c46532009-01-24 17:01:08 -080016882009-01-24 Ulrich Drepper <drepper@redhat.com>
1689
1690 * readelf.c (print_debug_frame_section): Fix computation of vma_base
1691 for PC-relative mode.
1692
Ulrich Drepperd7285e12009-01-23 16:10:44 -080016932009-01-23 Ulrich Drepper <drepper@redhat.com>
1694
Ulrich Drepperccccab02009-01-23 16:32:21 -08001695 * size.c (process_file): When handling archive, close file descriptor
1696 here. For unknown file format also close file descriptor.
1697 (handle_ar): Don't close file descriptor here.
1698
Ulrich Drepperd7285e12009-01-23 16:10:44 -08001699 * readelf.c (parse_opt): Move code to add to dump_data_sections and
1700 string_sections list in local function add_dump_section. Adjust 'x'
1701 key handling. For 'a' key add .strtab, .dynstr, and .comment section
1702 to string_sections list.
1703
Roland McGrathe9de9b42009-01-22 13:05:40 -080017042009-01-22 Roland McGrath <roland@redhat.com>
1705
Roland McGrath9a847e12009-01-22 19:55:00 -08001706 * readelf.c (print_phdr): Don't print section mapping when no sections.
1707
Roland McGrathd759aa62009-01-22 19:17:07 -08001708 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
1709
Roland McGrathcabeeee2009-01-22 13:17:45 -08001710 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
1711 and reset it only for the 'true' cases.
1712
1713 * Makefile.am (addr2line_no_Wformat): New variable.
1714
Roland McGrathe9de9b42009-01-22 13:05:40 -08001715 * readelf.c (print_debug_frame_section): Use t instead of j formats
1716 for ptrdiff_t OFFSET.
1717
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -080017182009-01-21 Ulrich Drepper <drepper@redhat.com>
1719
1720 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
Ulrich Drepperf93ee8d2009-01-21 15:02:03 -08001721 test. Handle debuginfo files.
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -08001722 (check_exception_data): First sanity test.
1723
Ulrich Drepperfdc93e12009-01-17 11:47:10 -080017242009-01-17 Ulrich Drepper <drepper@redhat.com>
1725
Ulrich Drepper935edde2009-01-17 16:06:42 -08001726 * readelf.c (print_debug_exception_table): Show target of ar_disp
1727 field.
1728
1729 * elflint.c (check_program_header): Add most consistency checks for
1730 PT_GNU_EH_FRAME entry.
1731
Ulrich Drepperfdc93e12009-01-17 11:47:10 -08001732 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
1733 ARGP_PROGRAM_BUG_ADDRESS_DEF.
1734 * ar.c: Likewise.
1735 * elfcmp.c: Likewise.
1736 * elflint.c: Likewise.
1737 * findtextrel.c: Likewise.
1738 * ld.c: Likewise.
1739 * nm.c: Likewise.
1740 * objdump.c: Likewise.
1741 * ranlib.c: Likewise.
1742 * readelf.c: Likewise.
Ulrich Drepper935edde2009-01-17 16:06:42 -08001743
Ulrich Drepperfdc93e12009-01-17 11:47:10 -08001744 * size.c: Likewise.
1745 * strings.c: Likewise.
1746 * strip.c: Likewise.
1747 * unstrip.c: Likewise.
1748
Ulrich Drepperb006fbf2009-01-16 03:08:25 -080017492009-01-16 Ulrich Drepper <drepper@redhat.com>
1750
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -08001751 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
1752 matches .eh_frame_hdr section, if it is available. Also check that
1753 the segment is allocated, not writable, not executable.
1754
Ulrich Drepperb006fbf2009-01-16 03:08:25 -08001755 * readelf.c: Add -e option. Dump exception and unwind related
1756 sections. Add -e to -a.
Ulrich Drepper05d2b202009-01-16 17:58:54 -08001757 (print_encoding_base): Handle DW_EH_PE_omit.
Ulrich Drepperb006fbf2009-01-16 03:08:25 -08001758 (print_debug_exception_table): Beginning of support.
1759 (print_debug): Hook up print_debug_exception_table for
1760 .gcc_except_table sections.
1761
1762 * readelf.c (print_debug_frame_section): Some fixes for last change.
1763
Ulrich Drepper351bf202009-01-15 20:18:40 -080017642009-01-15 Ulrich Drepper <drepper@redhat.com>
1765
1766 * readelf.c (print_encoding): Now a toplevel function.
1767 (print_relinfo): Likewise.
1768 (print_encoding_base): Broken out of print_debug_frame_section.
1769 (print_debug_frame_section): Print different header for .eh_frame
1770 sections. Fix recognition of matching CIEs in .debug_frame sections.
1771 Print absolute offset for PC-relative FDE locations. Don't print
1772 table header for FDEs if the table is empty.
1773 (read_encoded): New function.
1774 (print_debug_frame_hdr_section): New function.
1775 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
1776 sections.
1777
1778 * readelf.c (handle_relocs_rel): Print section number.
1779 (print_debug_abbrev_section): Likewise.
1780 (print_debug_aranges_section): Likewise.
1781 (print_debug_ranges_section): Likewise.
1782 (print_debug_info_section): Likewise.
1783 (print_debug_line_section): Likewise.
1784 (print_debug_loc_section): Likewise.
1785 (print_debug_macinfo_section): Likewise.
1786 (print_debug_pubnames_section): Likewise.
1787 (print_debug_str_section): Likewise.
1788
Ulrich Drepper8b394632009-01-10 18:29:56 -080017892009-01-10 Ulrich Drepper <drepper@redhat.com>
1790
1791 * strings.c (read_block): Fix typo in error message string.
1792
Ulrich Drepper87cf5832009-01-07 20:39:21 -080017932009-01-07 Ulrich Drepper <drepper@redhat.com>
1794
1795 * ld.c (ld_new_searchdir): Fix adding to search path list.
1796
Ulrich Drepperac194d02009-01-06 00:30:01 -080017972009-01-06 Ulrich Drepper <drepper@redhat.com>
1798
1799 * readelf.c: Implement call frame debug section dumping.
Roland McGrathe9243e62009-01-21 18:54:20 -08001800
Roland McGrath3614d992009-01-05 18:05:32 -080018012009-01-05 Roland McGrath <roland@redhat.com>
1802
1803 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
1804 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
Ulrich Drepperac194d02009-01-06 00:30:01 -08001805
Ulrich Drepper44173ed2009-01-01 19:00:41 -080018062009-01-01 Ulrich Drepper <drepper@redhat.com>
1807
1808 * addr2line.c: Update copyright year.
1809 * ar.c: Likewise.
1810 * elfcmp.c: Likewise.
1811 * elflint.c: Likewise.
1812 * findtextrel.c: Likewise.
1813 * ld.c: Likewise.
1814 * nm.c: Likewise.
1815 * objdump.c: Likewise.
1816 * ranlib.c: Likewise.
1817 * readelf.c: Likewise.
1818 * size.c: Likewise.
1819 * strings.c: Likewise.
1820 * strip.c: Likewise.
1821 * unstrip.c: Likewise.
1822
Roland McGrath468fe4d2008-12-11 21:00:12 -080018232008-12-11 Roland McGrath <roland@redhat.com>
1824
1825 * nm.c (sym_name): New function.
1826 (show_symbols_sysv): Use it in place of elf_strptr.
1827 (show_symbols_bsd, show_symbols_posix): Likewise.
1828 Fixes RHBZ#476136.
1829
1830 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
1831 elf_strptr fails.
1832
Roland McGratha845f682008-12-03 03:41:58 +000018332008-12-02 Roland McGrath <roland@redhat.com>
1834
1835 * readelf.c (count_dwflmod, process_file): Don't presume encoding of
1836 nonzero OFFSET argument to dwfl_getmodules.
1837
Roland McGrath1d8bb252008-08-07 08:39:41 +000018382008-08-07 Roland McGrath <roland@redhat.com>
1839
1840 * addr2line.c (main): Pass string to handle_address.
1841 (see_one_module): New function, subroutine of handle_address.
1842 (find_symbol): Likewise.
1843 (handle_address): Take string argument rather than address.
1844 Convert plain number, or handle strings like "(section)+offset"
1845 or "symbol+offset".
1846
18472008-08-01 Roland McGrath <roland@redhat.com>
1848
1849 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
1850 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
1851
1852 * readelf.c (convert): Take new argument SIZE.
1853 (handle_core_register, handle_core_item): Update callers.
1854 (handle_core_item): Take new arg REPEATED_SIZE.
1855 (handle_core_items): Special case for a singleton item,
1856 let handle_core_item handle repeats if it wants to.
1857
1858 * readelf.c (handle_core_items): Give abridged output
1859 for identical groups repeated more than twice.
1860
18612008-07-04 Roland McGrath <roland@redhat.com>
1862
1863 * readelf.c (handle_core_items): Handle ELF_T_ADDR.
1864
Roland McGrath521c47d2008-04-11 07:01:58 +000018652008-04-10 Roland McGrath <roland@redhat.com>
1866
1867 * strip.c (handle_elf): Don't keep sections that kept symbol tables
1868 refer to. Instead, just be sure to preserve the original symbol
1869 table in the debug file so those symbols go with their sections and
1870 can be elided from the stripped version of the symbol table.
1871
1872 * strip.c (handle_elf): When a discarded section kept in the debug
1873 file refers to a nondiscard section via sh_link/sh_info, preserve
1874 that nondiscarded section unmodified in the debug file as well.
1875 Skip adjustment of discarded sections symbol table references when
1876 that symbol table is copied in this way.
1877
1878 * elflint.c (check_symtab): Don't crash from missing symbol names
1879 after diagnosing bogus strtab.
1880
1881 * strip.c (handle_elf): Cosmetic cleanup in special section contents
1882 adjustment for symtab changes.
1883
Roland McGrath13b69602008-04-01 02:30:05 +000018842008-03-31 Roland McGrath <roland@redhat.com>
1885
1886 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
1887 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook
1888 excuse a special section.
1889
18902008-03-27 Roland McGrath <roland@redhat.com>
1891
1892 * elflint.c (check_sections): Check that executability and writability
1893 of sections is reflected in segment p_flags.
1894
Roland McGrathd11f9cb2008-03-26 20:51:59 +000018952008-03-26 Roland McGrath <roland@redhat.com>
1896
1897 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
1898 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
1899 is valid in RELRO.
1900
Roland McGrath47c5c352008-02-29 10:17:16 +000019012008-02-29 Roland McGrath <roland@redhat.com>
1902
1903 * readelf.c (print_attributes): Add a cast.
1904 * elflint.c (check_attributes): Likewise.
1905
1906 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
1907 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
1908 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
1909
Ulrich Drepper834de6f2008-02-23 06:50:01 +000019102008-02-03 Ulrich Drepper <drepper@redhat.com>
1911
1912 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
1913 when linked into executable.
1914 (elf_i386_create_relocations): Likewise.
1915
Roland McGrath059c83e2008-02-21 06:19:39 +000019162008-02-20 Roland McGrath <roland@redhat.com>
1917
1918 * readelf.c (print_attributes): New function.
1919 (process_elf_file): Call it under -A.
1920
1921 * elflint.c (check_attributes): Implement it for real.
1922
19232008-02-19 Roland McGrath <roland@redhat.com>
1924
1925 * elflint.c (special_sections): Handle .gnu.attributes section.
1926 (check_sections): Likewise.
1927 (check_attributes): New function.
1928
19292008-02-10 Roland McGrath <roland@redhat.com>
1930
1931 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
1932 sections and ET_REL files.
1933
Ulrich Drepper712d78e2008-02-02 10:01:53 +000019342008-02-02 Ulrich Drepper <drepper@redhat.com>
1935
1936 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
1937 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
1938 and R_386_TLS_LE.
1939 (elf_i386_create_relocations): Likewise.
1940 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
1941 elements.
1942 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
1943 (ld_generic_create_outfile): Add PT_TLS entry to program header.
1944 Fix generation of PT_GNU_STACK entry.
1945
Ulrich Drepperc54785a2008-02-01 18:05:21 +000019462008-02-01 Ulrich Drepper <drepper@redhat.com>
1947
Ulrich Drepper7cd1bf72008-02-01 23:52:59 +00001948 * ld.c (replace_args): Prevent loop over replacements if the parameter
1949 is only two characters long.
1950
Ulrich Drepperc54785a2008-02-01 18:05:21 +00001951 * ld.c: Recognize sha1 argument for --build-id parameter.
1952 * ldgeneric.c (create_build_id_section): Handle sha1.
1953 (compute_hash_sum): New function. Broken out of compute_build_id.
1954 Take hash function and context as parameters.
1955 (compute_build_id): Use compute_hash_sum for md5 and the new sha1
1956 implementation.
1957
Ulrich Drepper89759c72008-01-31 19:44:12 +000019582008-01-31 Ulrich Drepper <drepper@redhat.com>
1959
1960 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
1961 * ld.c: Recognize --build-id command line parameter.
1962 * ld.h: Define scn_dot_note_gnu_build_id.
1963 (struct ld_state): Add build_id and buildidscnidx elements.
1964 * ldgeneric.c: Implement --build-id command line parameter.
1965 * ldlex.l (ID): Recognize - as valid character after the first one.
1966
Ulrich Drepper5530ec52008-01-29 10:42:07 +000019672008-01-29 Ulrich Drepper <drepper@redhat.com>
1968
Ulrich Drepperb61c4cc2008-01-30 07:16:28 +00001969 * ld.c (replace_args): New function.
1970 (main): Use it to rewrite old-style parameters.
1971
Ulrich Dreppered9b6cb2008-01-30 06:33:33 +00001972 * elf32-i386.script: Add .gnu.hash section.
1973 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
1974 (fillin_special_symbol): Initialize st_size.
1975 (sortfct_hashval): New function.
1976 (create_gnu_hash): New function.
1977 (create_hash): New function.
1978 (ld_generic_create_outfile): Use the new functions to create the
1979 hash tables.
1980
Ulrich Drepper5530ec52008-01-29 10:42:07 +00001981 * elflint.c (check_gnu_hash): Fix index value printed in error message.
1982
Ulrich Drepper0e864dd2008-01-25 00:18:42 +000019832008-01-24 Ulrich Drepper <drepper@redhat.com>
1984
1985 * elflint.c (check_group): Check that signature symbol for section
1986 group is not an empty string.
1987 * ldgeneric.c: Remove magic assignment of indeces in the dynsym
1988 section. Start implementation of --hash-style.
1989 * i386_ld.c: Likewise.
1990 * ld.c: Recognize --hash-style.
1991 * ld.h (struct scninfo): Add comdat_group.
1992 Add additional parameter to finalize_plt callback.
1993
Ulrich Drepper5449a6b2008-01-22 15:49:39 +000019942008-01-22 Ulrich Drepper <drepper@redhat.com>
1995
1996 * ld.h (struct callbacks): Add initialize_gotplt.
1997 (struct scnhead): Add scn_dot_gotplt.
1998 (struct ld_state): Add gotpltscnidx.
1999 * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
2000 (elf_i386_initialize_pltrel): Likewise.
2001 (elf_i386_initialize_got): There is now a separate .got.plt, so
2002 don't do the PLT-related work here. Initialize d_type.
2003 (elf_i386_initialize_gotplt): New function.
2004 (elf_i386_plt0): Use ud2a after indirect jump.
2005 (elf_i386_pic_plt0_entry): Likewise.
2006 (elf_i386_finalize_plt): Reference now .got.plt.
2007 (elf_i386_count_relocations): For GOT entries which need no relocation
2008 don't bump nrel_got.
2009 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32
2010 handling for split .got/.got.plt.
2011 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
2012 * elf32-i386.script: Sort sections for security. There are no .got
2013 input sections. Add .got.plt.
2014 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
2015 (ld_generic_create_outfile): Initialize .got.plt section.
2016 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
2017
Ulrich Drepperd9488292008-01-20 16:43:15 +000020182008-01-19 Ulrich Drepper <drepper@redhat.com>
2019
2020 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
2021 symbols are not carried over into statically linked output files.
2022 Add dummy entries for more TLS relocations.
2023
2024 * ld.c (options): Add long names for -( and -).
2025
2026 * ldgeneric.c (check_definition): For newly found definitions don't
2027 mark section as used if symbol is absolute.
2028 (extract_from_archive): Only assign archive sequence number the first
2029 time the archive is handled. Update ld_state.last_archive_used
2030 if any symbol was used. Remove nround variable.
2031 (file_process2): When using symbol from an archive, update
2032 ld_state.group_start_archive, ld_state.archives, and
2033 ld_state.tailarchives.
2034 (ld_generic_file_process): If group is not handled anymore, after
2035 freeing ELF handles for the archives, clear ld_state.archives and
2036 *nextp. Fix wrong logic in recognizing first iteration of group
2037 loop. When clearing flags, also clear ld_state.group_start_archive.
2038
Ulrich Drepper5eee1222008-01-11 10:12:18 +000020392008-01-11 Ulrich Drepper <drepper@redhat.com>
2040
2041 * objdump.c (show_disasm): Adjust disassembler format string for
2042 removal of %e.
2043
Ulrich Dreppere219f1c2008-01-09 05:49:49 +000020442008-01-04 Roland McGrath <roland@redhat.com>
2045
Roland McGrath059c83e2008-02-21 06:19:39 +00002046 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
2047 a size greater than the items cover means multiple sets of items.
2048 (handle_core_note): Update caller.
2049
20502008-01-04 Roland McGrath <roland@redhat.com>
2051
Ulrich Dreppere219f1c2008-01-09 05:49:49 +00002052 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
2053
20542008-01-03 Roland McGrath <roland@redhat.com>
2055
2056 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
2057
2058 * elflint.c (check_dynamic): Remove duplicate initializer.
2059
Ulrich Drepperad024af2008-01-02 17:42:52 +000020602008-01-02 Ulrich Drepper <drepper@redhat.com>
2061
2062 * addr2line.c: Update copyright year.
2063 * ar.c: Likewise.
2064 * elfcmp.c: Likewise.
2065 * elflint.c: Likewise.
2066 * findtextrel.c: Likewise.
2067 * ld.c: Likewise.
2068 * nm.c: Likewise.
2069 * objdump.c: Likewise.
2070 * ranlib.c: Likewise.
2071 * readelf.c: Likewise.
2072 * size.c: Likewise.
2073 * strings.c: Likewise.
2074 * strip.c: Likewise.
2075 * unstrip.c: Likewise.
2076
Ulrich Drepper3cbdd382008-01-02 17:44:39 +000020772007-12-30 Ulrich Drepper <drepper@redhat.com>
2078
2079 * objdump (show_disasm): Use %e after third parameter.
2080
20812007-12-21 Ulrich Drepper <drepper@redhat.com>
2082
2083 * strip.c: Fix wrong parenthesis in a few branch predictions.
2084 * strings.c: Likewise.
2085
20862007-12-20 Ulrich Drepper <drepper@redhat.com>
2087
2088 * Makefile.am (DEFS): Add DEBUGPRED.
2089 * addr2line.c: Include debugpred.h.
2090 * ar.c: Likewise.
2091 * elfcmp.c: Likewise.
2092 * elflint.c: Likewise.
2093 * findtextrel.c: Likewise.
2094 * nm.c: Likewise.
2095 * objdump.c: Likewise.
2096 * ranlib.c: Likewise.
2097 * readelf.c: Likewise.
2098 * size.c: Likewise.
2099 * strings.c: Likewise.
2100 * strip.c: Likewise.
2101 * unstrip.c: Likewise.
2102 * debugpred.h: New file.
2103
2104 * readelf.c (handle_relocs_rel): Use elf_scnshndx.
2105 (handle_relocs_rela): Likewise.
2106
2107 * readelf.c: Add lots of likely/unlikely.
2108
2109 * elflint.c: Minor cleanups.
2110
Roland McGrath1a2e8f42007-12-15 23:39:34 +000021112007-11-19 Roland McGrath <roland@redhat.com>
2112
2113 * readelf.c (print_ops): Handle all bad op codes gracefully.
2114 Print their numbers instead of just ???.
2115
Roland McGrath07a696e2007-11-09 22:44:26 +000021162007-11-09 Roland McGrath <roland@redhat.com>
2117
2118 * readelf.c (attr_callback): Handle DW_AT_data_location.
Roland McGrath1a2e8f42007-12-15 23:39:34 +00002119 Handle block forms to mean a DWARF expression for DW_AT_allocated,
2120 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
2121 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
2122 DW_AT_upper_bound.
Roland McGrath07a696e2007-11-09 22:44:26 +00002123
Roland McGrathe4c22ea2007-10-23 13:07:39 +000021242007-10-20 Roland McGrath <roland@redhat.com>
2125
2126 * unstrip.c (options): Update -R description.
2127 (struct symbol): Put symbol details a union with a size_t pointer
2128 `duplicate'.
2129 (compare_symbols_output): Use null ->name as marker for discard
2130 symbols, not zero *->map.
2131 (copy_elided_sections): Record forwarding pointers for discarded
2132 duplicates and fill SYMNDX_MAP elements through them.
2133
2134 * readelf.c (process_file): Set offline_next_address to 0 at start.
2135 (struct process_dwflmod_args): New type.
2136 (process_dwflmod): Take args in it, pass fd to process_elf_file.
2137 (process_file): Update caller; dup FD for passing to libdwfl.
2138 (process_elf_file): Take new arg FD. For ET_REL file when
2139 displaying data affected by libdwfl relocation, open a new Elf handle.
2140
21412007-10-17 Roland McGrath <roland@redhat.com>
2142
2143 * readelf.c (print_debug_line_section): For invalid data inside a
2144 unit with plausible length, keep printing at the next unit boundary.
2145
2146 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
2147
21482007-10-16 Roland McGrath <roland@redhat.com>
2149
2150 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
2151
Ulrich Drepperb597dfa2007-10-16 05:21:27 +000021522007-10-15 Roland McGrath <roland@redhat.com>
2153
2154 * make-debug-archive.in: New file.
2155 * Makefile.am (EXTRA_DIST): Add it.
2156 (make-debug-archive): New target.
2157 (bin_SCRIPTS, CLEANFILES): Add it.
2158
21592007-10-10 Roland McGrath <roland@redhat.com>
2160
2161 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
2162 Use it to check MERGE|STRINGS for .debug_str.
2163 (check_sections): Handle exact_or_gnuld.
2164
21652007-10-08 Roland McGrath <roland@redhat.com>
2166
2167 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
2168 64-bit struct timeval with 32-bit tv_usec.
2169
21702007-10-07 Roland McGrath <roland@redhat.com>
2171
2172 * readelf.c (check_archive_index): New function.
2173 (process_file): Call it. Change signature to take only fd and name.
2174 Use libdwfl to open the file, then iterate on its modules (multiple
2175 for an archive) to print file name and call process_elf_file.
2176 (main): Update caller. Let process_file do elf_begin.
2177 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
2178 (process_elf_file): Take only Dwfl_Module * argument.
2179 Don't print the file name here.
2180 (print_debug_*_section): Take Dwfl_Module * argument.
2181 (print_debug): Likewise. Update caller.
2182 (format_dwarf_addr): New function.
2183 (print_debug_ranges_section): Use it.
2184 (attr_callback): Likewise.
2185 (print_debug_line_section, print_debug_loc_section): Likewise.
2186
2187 * readelf.c (print_debug_ranges_section): Translate all strings.
2188 (print_debug_loc_section): Likewise.
2189
2190 * unstrip.c (copy_elided_sections): Initialize SEC.
2191
2192 * ar.c (do_oper_insert): Put trailing / on short names.
2193
2194 * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
2195
2196 * arlib2.c (arlib_add_long_name): Adjust for header size.
2197
2198 * arlib.c (arlib_finalize): Pad long name table to keep size even.
2199
2200 * ar.c (do_oper_insert): Use write_retry for padding write.
2201
2202 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
2203 Unconditionally set FOUND[CNT]->elf when setting ->mem.
2204 (remember_long_name): New function.
2205 (do_oper_insert): Call it. Correctly use length of basename,
2206 not original name. Don't store long name twice for new member.
2207
22082007-10-06 Roland McGrath <roland@redhat.com>
2209
2210 * elflint.c (check_note): Skip empty segment.
2211 (check_note_section): Skip empty section.
2212
2213 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
2214 (handle_output_dir_module, handle_implicit_modules): Pass it down.
2215 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
2216 (compare_alloc_sections): Take new arg REL, ignore address if true.
2217 (compare_sections): Likewise, pass it down.
2218 (compare_sections_rel, compare_sections_nonrel): New functions.
2219 (find_alloc_sections_prelink, copy_elided_sections): Use them
2220 instead of compare_sections.
2221 (sections_match): New function, broken out of ...
2222 (find_alloc_section): ... here.
2223 (copy_elided_sections): Reorganize section match-up logic.
2224 Use sections_match for SHF_ALLOC in ET_REL.
2225 For ET_REL, let the nonzero sh_addr from the debug file dominate.
2226
2227 * unstrip.c (add_new_section_symbols): Take new arg REL.
2228 When true, do not update section symbol values.
2229 (collect_symbols): Likewise. Update section symbols with address
2230 of chosen output section, not original section.
2231 (check_symtab_section_symbols, copy_elided_sections): Update callers.
2232
2233 * unstrip.c (compare_alloc_sections): At the same address, preserve
2234 original section order.
2235
2236 * elflint.c (special_sections): Don't require MERGE|STRINGS for
2237 .debug_str, it didn't always have them with older tools.
2238
2239 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
2240
22412007-10-05 Roland McGrath <roland@redhat.com>
2242
2243 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
2244 ET_REL file.
2245
2246 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
2247 SHN_UNDEF as "bad section". Use shndx value in messages.
2248
2249 * elflint.c (special_sections): Add ".debug_str". Decrement namelen
2250 for ".debug" so it matches as a prefix.
2251 (IS_KNOWN_SPECIAL): New macro.
2252 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS
2253 type even under -d, for a .debug* or .shstrtab section.
2254
2255 * readelf.c (print_ops): Use hex for address operand.
2256
22572007-10-04 Roland McGrath <roland@redhat.com>
2258
2259 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
2260 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for
2261 sections mapped to SHN_UNDEF.
2262
Ulrich Drepper3fc3d7b2007-10-04 18:40:28 +000022632007-10-04 Ulrich Drepper <drepper@redhat.com>
2264
2265 * readelf.c (dump_archive_index): Avoid warning about uninitialized
2266 variable with older glibc versions.
2267 Add some branch prediction.
2268
Roland McGrath59ea7f32007-10-04 08:50:09 +000022692007-10-04 Roland McGrath <roland@redhat.com>
2270
2271 * readelf.c (print_archive_index): New variable.
2272 (options, parse_opt): Accept -c/--archive-index to set it.
2273 (dump_archive_index): New function.
2274 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
2275 Call dump_archive_index on archives if set.
2276 (main): Update caller.
2277 (any_control_option): Give it file scope, moved out of ...
2278 (parse_opt): ... here.
2279
22802007-10-03 Roland McGrath <roland@redhat.com>
2281
2282 * unstrip.c (struct arg_info): Add `list' flag.
2283 (options, parse_opt): Grok -n/--list to set it.
2284 (list_module): New function.
2285 (handle_implicit_modules): Call it under -n.
2286
2287 * elflint.c (check_note_section): New function.
2288 (check_sections): Call it for SHT_NOTE.
2289
2290 * readelf.c (handle_notes): Use sections when available.
2291
2292 * elflint.c (check_note_data): New function, broken out of ...
2293 (check_note): ... here. Call it and elf_getdata_rawchunk.
2294
2295 * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
2296 Use elf_getdata_rawchunk and gelf_getauxv.
2297 (handle_notes_data): New function, broken out of ...
2298 (handle_notes): ... here. Call it and elf_getdata_rawchunk.
2299
Roland McGrath241ac022007-10-01 18:21:46 +000023002007-10-01 Roland McGrath <roland@redhat.com>
2301
Roland McGrathac0a16c2007-10-01 18:50:35 +00002302 * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
2303
Roland McGrath241ac022007-10-01 18:21:46 +00002304 * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
2305
Roland McGrathc76f0b02007-09-27 07:31:33 +000023062007-09-10 Roland McGrath <roland@redhat.com>
2307
2308 * readelf.c (options): Give -p optional argument, alias --string-dump.
2309 (string_sections, string_sections_tail): New static variables.
2310 (parse_opt): Set them when -p has an argument.
2311 (print_string_section): New function, broken out of ...
2312 (print_strings): ... here. Call it.
2313 (dump_data_section): New function, broken out of ...
2314 (dump_data): ... here. Call it.
2315 (for_each_section_argument): New function, broken out of ...
2316 (dump_data): ... here. Call it.
2317 (dump_strings): New function.
2318
23192007-08-31 Roland McGrath <roland@redhat.com>
2320
2321 * readelf.c (print_strings): Typo fix.
2322
Roland McGrathcb6d8652007-08-23 08:10:54 +000023232007-08-23 Roland McGrath <roland@redhat.com>
2324
2325 * readelf.c (printf_with_wrap): Function removed.
2326 (REGISTER_WRAP_COLUMN): New macro.
2327 (handle_core_register): Use print_core_item instead.
2328 (struct register_info): New type.
2329 (compare_registers, compare_register_sets): New functions.
2330 (register_bitpos, compare_sets_by_info): New functions.
2331 (handle_core_registers): Use those to segregate and sort registers
2332 for display.
2333
2334 * readelf.c (ITEM_WRAP_COLUMN): New macro.
2335 (print_core_item): New function.
2336 (handle_core_item): Use it instead of printf_with_wrap.
2337 (compare_core_items, compare_core_item_groups): New functions.
2338 (handle_core_items): Use them. Sort by group and force line breaks
2339 between groups.
2340
2341 * readelf.c (handle_core_registers, handle_core_items): New functions,
2342 broken out of ...
2343 (handle_core_note): ... here. Call them.
2344
23452007-08-22 Roland McGrath <roland@redhat.com>
2346
2347 * unstrip.c (new_shstrtab): New function, broken out of ...
2348 (copy_elided_sections): ... here.
2349
23502007-08-20 Roland McGrath <roland@redhat.com>
2351
2352 Avoid local function trampolines in nm binary.
2353 * nm.c (sort_by_address): Move to a static function instead of local
2354 inside show_symbols.
2355 (sort_by_name_strtab): New static variable.
2356 (sort_by_name): Use it. Move to a static function instead of local
2357 inside show_symbols.
2358 (show_symbols): Set sort_by_name_strtab.
2359
23602007-08-19 Roland McGrath <roland@redhat.com>
2361
2362 * readelf.c (handle_auxv_note): New function.
2363 (handle_notes): Call it.
2364
2365 * readelf.c (printf_with_wrap, convert): New functions.
2366 (handle_core_item, (handle_core_register): New functions.
2367 (handle_notes): Call those with details from ebl_core_note.
2368
Roland McGrath099dd522007-08-13 22:58:36 +000023692007-08-12 Roland McGrath <roland@redhat.com>
2370
2371 * elflint.c (check_note): Accept type 0 with name "Linux".
2372
2373 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
2374
2375 * elflint.c (section_flags_string): Return "none" for 0, not "".
2376
Roland McGrathd8221722007-08-11 21:18:09 +000023772007-08-11 Roland McGrath <roland@redhat.com>
2378
2379 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
2380
Ulrich Drepperc98bcc72007-08-04 17:06:14 +000023812007-08-04 Ulrich Drepper <drepper@redhat.com>
2382
2383 * readelf.c (hex_dump): Use isprint to determine whether to print
2384 character itself or full stop character.
2385 (dump_data): No need to check endp for NULL after strtol call.
2386
Roland McGrath60fc84c2007-08-03 21:59:15 +000023872007-08-03 Roland McGrath <roland@redhat.com>
2388
2389 * readelf.c (print_string_sections): New variable.
2390 (options, parse_opt): Handle --strings/-p to set it.
2391 (print_strings): New function.
2392 (process_elf_file): Call it under -p.
2393
2394 * readelf.c (options): Add hidden aliases --segments, --sections,
2395 as taken by binutils readelf.
2396
23972007-08-01 Roland McGrath <roland@redhat.com>
2398
2399 * readelf.c (dump_data_sections, dump_data_sections_tail):
2400 New variables.
2401 (options, parse_opt): Handle --hex-dump/-x, set them.
2402 (hex_dump): New function.
2403 (dump_data): New function, call it.
2404 (process_elf_file): Call it.
2405
24062007-07-25 Roland McGrath <roland@redhat.com>
2407
2408 * addr2line.c (show_symbols): New variable.
2409 (print_addrsym): New function.
2410 (handle_address): Call it.
2411 (options, parse_opt): Handle -S/--symbols.
2412
Ulrich Drepperb0243862007-06-06 00:09:36 +000024132007-06-05 Ulrich Drepper <drepper@redhat.com>
2414
2415 * addr2line.c: Update for latest autoconf header.
2416 * ar.c: Likewise.
2417 * elfcmp.c: Likewise.
2418 * elflint.c: Likewise.
2419 * findtextrel.c: Likewise.
2420 * ld.c: Likewise.
2421 * ldgeneric.c: Likewise.
2422 * nm.c: Likewise.
2423 * objdump.c: Likewise.
2424 * ranlib.c: Likewise.
2425 * readelf.c: Likewise.
2426 * size.c: Likewise.
2427 * strings.c: Likewise.
2428 * strip.c: Likewise.
2429 * unstrip.c: Likewise.
2430
Roland McGrath9aa8ef72007-05-18 08:59:43 +000024312007-05-18 Roland McGrath <roland@redhat.com>
2432
2433 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
2434 stripped file, so as not to duplicate a section copied in both.
2435
2436 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
2437
24382007-05-17 Roland McGrath <roland@redhat.com>
2439
2440 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
2441
2442 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
2443
2444 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
2445 call make_directories here.
2446 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
2447 (handle_dwfl_module): Likewise.
2448 (handle_implicit_modules): Update callers.
2449 (handle_output_dir_module): Likewise. Don't do make_directories here.
2450
2451 * unstrip.c (get_section_name): New function, broken out of ...
2452 (copy_elided_sections): here. Update callers.
2453 (find_alloc_section): Broken out of ...
2454 (copy_elided_sections): ... here. Update caller.
2455 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
2456 update STT_SECTION symbols' st_value fields as a side effect.
2457 (check_symtab_section_symbols): Update caller.
2458 (add_new_section_symbols): Set st_value in symbols added.
2459 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
2460 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
2461 from .bss to .dynbss.
2462 (find_alloc_sections_prelink): New function. Associate debug file
2463 allocated SHT_NOBITS shdrs with stripped moved by prelink via
2464 .gnu.prelink_undo information.
2465 (copy_elided_sections): Call it when we couldn't find every allocated
2466 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
2467 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
2468 (handle_file): Update callers.
2469
2470 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
2471 named ".comment".
2472
2473 * elflint.c (check_sections): Fix association of segments with
2474 sections when p_memsz > p_filesz.
2475
24762007-04-29 Roland McGrath <roland@redhat.com>
2477
2478 * addr2line.c (options, main): Tweak argp group settings to fix
2479 usage output.
2480
24812007-04-28 Roland McGrath <roland@redhat.com>
2482
2483 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
2484 sizes to match sections adjusted in the stripped file.
2485
Roland McGrath4be15242007-04-25 03:09:33 +000024862007-04-24 Roland McGrath <roland@redhat.com>
2487
2488 * elfcmp.c (OPT_HASH_INEXACT): New macro.
2489 (hash_inexact): New variable.
2490 (options, parse_opt): Add --hash-inexact option to set it.
2491 (hash_content_equivalent): New function.
2492 (main): Call it for differing SHT_HASH sections under --hash-inexact.
2493
24942007-04-23 Roland McGrath <roland@redhat.com>
2495
2496 * unstrip.c: New file.
2497 * Makefile.am (bin_PROGRAMS): Add it.
2498 (unstrip_LDADD): New variable.
2499
2500 * strip.c (options): Allow --output for -o.
2501
Ulrich Drepper8b383102007-02-16 00:31:57 +000025022007-02-15 Ulrich Drepper <drepper@redhat.com>
2503
2504 * readelf.c: Remove unused code. Add a few consts.
2505
Ulrich Drepper903c1162007-02-15 19:40:37 +000025062007-02-15 Roland McGrath <roland@redhat.com>
2507
2508 * readelf.c (print_debug): Fix brainos in SHDR test.
2509
Roland McGrathf82a1ec2007-02-06 04:47:44 +000025102007-02-05 Roland McGrath <roland@redhat.com>
2511
2512 * ar.c: Include <limits.h>, since we use LONG_MAX.
2513
Ulrich Drepper0fe63532007-02-05 21:05:51 +000025142007-02-05 Ulrich Drepper <drepper@redhat.com>
2515
Ulrich Drepper8b383102007-02-16 00:31:57 +00002516 * ar.c: Add ugly hack to work around gcc complaining that we
Ulrich Drepper93ab56f2007-02-05 22:12:41 +00002517 ignore fchown's return value.
2518 (do_oper_insert): Handle error when writing padding.
2519 * ranlib.c: Add fchown complain work around.
2520
Ulrich Drepper0fe63532007-02-05 21:05:51 +00002521 * arlib.c: Make symtab a global variable. Change all users.
2522 * arlib2.c: Likewise.
2523 * ranlib.c: Likewise.
2524 * ar.c: Likewise.
2525 * arlib.h: Declare it.
2526
Ulrich Drepperaa915fd2007-02-05 07:25:33 +000025272007-01-11 Roland McGrath <roland@redhat.com>
2528
2529 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
2530 SHF_MASKPROC bits separately from generic sh_flags validation.
2531
Ulrich Drepperce0bdb62007-02-05 07:13:52 +000025322007-02-04 Ulrich Drepper <drepper@redhat.com>
2533
2534 * ar.c: New file.
2535 * arlib.c: New file.
2536 * arlib2.c: New file.
2537 * arlib.h: New file.
2538 * Makefile (noinst_LIBRARIES): Add libar.
2539 (libar_a_SOURCES): Define.
2540 (ar_LDADD): Define.
2541 (CFLAGS_ar): Define.
2542 * ranlib.c: Change to use arlib.
2543
2544 * elflint.c (check_symtab): Work around GNU ld bug which omits
2545 sections but not symbols in those sections.
2546
Ulrich Drepperb770cf92007-01-10 21:02:34 +000025472007-01-10 Ulrich Drepper <drepper@redhat.com>
2548
2549 * addr2line.c: Update copyright year.
2550 * elfcmp.c: Likewise.
2551 * elflint.c: Likewise.
2552 * findtextrel.c: Likewise.
2553 * ld.c: Likewise.
2554 * nm.c: Likewise.
2555 * objdump.c: Likewise.
2556 * ranlib.c: Likewise.
2557 * readelf.c: Likewise.
2558 * size.c: Likewise.
2559 * strings.c: Likewise.
2560 * strip.c: Likewise.
2561
Ulrich Drepper7c0e79f2006-12-09 21:10:19 +000025622006-12-09 Ulrich Drepper <drepper@redhat.com>
2563
2564 * elflint.c (compare_hash_gnu_hash): New function. Report if the
2565 two hash tables have different content (module expected omission
2566 of undefined symbols).
2567
Roland McGrath8190db62006-12-17 23:56:51 +000025682006-10-31 Roland McGrath <roland@redhat.com>
2569
2570 * elflint.c (check_program_header): Don't complain about
Ulrich Drepper56bc0b82006-12-18 22:38:08 +00002571 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
Roland McGrath8190db62006-12-17 23:56:51 +00002572
25732006-09-19 Jakub Jelinek <jakub@redhat.com>
2574
2575 * strip.c (process_file): Disallow -f on archives.
2576
25772006-10-09 Roland McGrath <roland@redhat.com>
2578
2579 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
2580
Roland McGrathc373d852006-10-10 00:25:21 +000025812006-08-29 Roland McGrath <roland@redhat.com>
2582
2583 * Makefile.am (MAINTAINERCLEANFILES): New variable.
2584
2585 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
2586 Reported by Christian Aichinger <Greek0@gmx.net>.
2587
2588 * elflint.c (valid_e_machine): Add EM_ALPHA.
2589 Reported by Christian Aichinger <Greek0@gmx.net>.
2590
Ulrich Drepper231c5902006-08-08 22:00:11 +000025912006-08-08 Ulrich Drepper <drepper@redhat.com>
2592
2593 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
2594 Keep track of which "high DT" entries are present.
2595 Check that either old or GNU-style hash table is present.
2596 If GNU-style hash table is used a symbol table is mandatory.
2597 Check that if any prelink entry is present all of them are.
2598 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
2599 table if they don't refer to functions.
2600
Roland McGrath858b1892006-07-17 08:41:15 +000026012006-07-17 Roland McGrath <roland@redhat.com>
2602
2603 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
2604 (add_version): Likewise for argument.
2605 (check_versym): Cast constant to GElf_Versym for comparison.
2606
Roland McGrath4ec807e2006-07-13 03:59:46 +000026072006-07-12 Roland McGrath <roland@redhat.com>
2608
2609 * readelf.c (handle_gnu_hash): Add casts for machines where
2610 Elf32_Word != unsigned int.
2611
Ulrich Drepperdcf61602006-07-12 19:59:02 +000026122006-07-12 Ulrich Drepper <drepper@redhat.com>
2613
2614 * elflint.c (check_sysv_hash64): Fix printf format.
2615
Ulrich Dreppercc415622006-07-12 19:42:23 +000026162006-07-11 Roland McGrath <roland@redhat.com>
Ulrich Drepper8ae58142006-07-12 05:22:32 +00002617
Ulrich Dreppercc415622006-07-12 19:42:23 +00002618 * addr2line.c (options): English fix in -f doc string.
2619
2620 * addr2line.c (use_comp_dir): New variable.
2621 (options, parse_opt): Grok -A/--absolute to set it.
2622 (handle_address): If set, prepend dwfl_line_comp_dir results to
2623 relative file names.
Ulrich Drepper8ae58142006-07-12 05:22:32 +00002624
Ulrich Drepper28ed8952006-07-07 03:43:47 +000026252006-07-06 Ulrich Drepper <drepper@redhat.com>
2626
2627 * elflint.c: Adjust for latest new hash table format.
2628 * readelf.c: Likewise.
2629
2630 * elflint.c (check_versym): Ignore hidden bit when comparing version
2631 numbers.
2632
26332006-07-05 Ulrich Drepper <drepper@redhat.com>
2634
2635 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
2636 discarded COMDAT symbols.
2637
2638 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
2639 (elf_i386_create_relocations): Likewise.
2640 * ld.h (struct symbol): Add local and hidden bits.
2641 * ld.c (create_special_section_symbol): These synthsized symbols
2642 are local and hidden.
2643 * ldgeneric.c (file_process2): Check whether input file matches
2644 the emulation.
2645 (fillin_special_symbol): Create symbols as local and/or hidden
2646 if requested.
2647 (ld_generic_create_outfile): Make local copy of symbol.
2648 Don't hide global, defined symbols in dynamic symbol table unless
2649 requested. Synthetic symbols have no version information.
2650
2651 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
2652 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
2653
26542006-07-04 Ulrich Drepper <drepper@redhat.com>
2655
2656 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
2657 testing.
2658
26592006-07-03 Ulrich Drepper <drepper@redhat.com>
2660
2661 * elflint.c: Add testing of DT_GNU_HASH.
2662 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
2663
2664 * Makefile.am: Add hacks to create dependency files for non-generic
2665 linker.
2666
Ulrich Drepper6ca46002006-06-12 22:40:23 +000026672006-06-12 Ulrich Drepper <drepper@redhat.com>
2668
2669 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
2670 section if creating a DSO and no interpreter is given.
2671 (ld_generic_create_outfile): Don't store reference to symbols in
2672 discarded COMDAT groups. Don't create PHDR and INTERP program header
2673 for DSO if no interpreter is specified.
Ulrich Drepper595d0e72006-06-12 23:25:17 +00002674 (create_verneed_data): Pretty printing.
2675
Ulrich Drepper6ca46002006-06-12 22:40:23 +00002676 * ldscript.y (content): If a DSO is created don't set default
2677 interpreter from linker script.
2678
2679 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
2680 for symbols in discarded COMDAT groups.
2681 (elf_i386_create_relocations): Likewise.
2682 * ld.h (struct scninfo): Add unused_comdat.
2683 * ldgeneric.c (add_section): Also check group signature when
2684 matching COMDAT sections.
2685 (add_relocatable_file): Ignore symbols in COMDAT group which are
2686 discarded.
2687
2688 * elflint.c (check_one_reloc): For *_NONE relocs only check type
2689 and symbol reference.
2690
Ulrich Drepper54f33a72006-06-11 09:07:37 +000026912006-06-11 Ulrich Drepper <drepper@redhat.com>
2692
Ulrich Dreppercbb51e52006-06-11 20:25:23 +00002693 * elflint.c (check_dynamic): Fix checking value of tags which are
2694 offsets in the string section. Make sure DT_STRTAB points to the
2695 section referenced in sh_link.
2696
2697 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
2698
Ulrich Drepper54f33a72006-06-11 09:07:37 +00002699 * ld.c: Recognize --eh-frame-hdr option.
2700 * ld.h (struct ld_state): Add eh_frame_hdr field.
2701 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
2702
2703 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
2704 SH_FLAGS_COMBINE.
2705 (add_relocatable_file): Minor optimization of last change.
2706 (match_section): Don't preserve SHF_GROUP flag any longer.
2707
Ulrich Drepper2d880282006-06-11 00:20:43 +000027082006-06-10 Ulrich Drepper <drepper@redhat.com>
2709
2710 * ld.c (parse_z_option): Recognize execstack and noexecstack.
Ulrich Drepper4f0a7a82006-06-11 00:53:45 +00002711 Handle record and ignore as position dependent options.
2712 (parse_z_option_2): Handle ignore and record here.
Ulrich Drepper2d880282006-06-11 00:20:43 +00002713 * ld.h (struct ld_state): Add execstack field.
2714 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
2715 sections.
2716 (ld_generic_create_outfile): Fix program header creation in native
2717 linker. Add PT_GNU_STACK program header.
2718
Ulrich Dreppera688a732006-06-10 06:33:00 +000027192006-06-09 Ulrich Drepper <drepper@redhat.com>
2720
2721 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
2722 for PLT entries if there is no local definition.
2723
2724 * ld.c (parse_option): Handle -z ignore like --as-needed and
2725 -z record like --no-as-needed.
2726 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
2727 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
2728 looping over DSOs. When deciding about adding DT_NEEDED entries
2729 use ->as_needed instead of ignore_unused_dsos.
2730
Ulrich Drepper8c56fe32006-05-31 15:50:43 +000027312006-05-31 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper11b030e2006-05-28 20:28:19 +00002732
Ulrich Drepper8c56fe32006-05-31 15:50:43 +00002733 * ld.c: Recognize --as-needed and --no-as-needed options.
2734 * ld.h (struct usedfile): Add as_needed field.
2735 (struct ld_state): Likewise.
2736 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
2737 the list.
2738 * ldscript.y (filename_id_list): Split to correctly parse all
2739 combinations.
2740 (mark_as_needed): Fix loop.
Ulrich Drepper11b030e2006-05-28 20:28:19 +00002741
Ulrich Drepper697f4db2006-06-10 06:50:47 +000027422006-05-28 Ulrich Drepper <drepper@redhat.com>
2743
2744 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
2745 and colno.
2746
Ulrich Drepper2cb8e732006-05-27 21:57:27 +000027472006-05-27 Ulrich Drepper <drepper@redhat.com>
2748
2749 * readelf.c (handle_relocs_rela): Better notations for addon value.
Ulrich Drepper41a99082006-05-28 00:01:43 +00002750 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
Ulrich Drepper2cb8e732006-05-27 21:57:27 +00002751
Ulrich Drepper82c345d2006-04-04 22:07:54 +000027522006-04-04 Ulrich Drepper <drepper@redhat.com>
2753
2754 * addr2line.c: Update copyright year.
2755 * elfcmp.c: Likewise.
2756 * elflint.c: Likewise.
2757 * findtextrel.c: Likewise.
2758 * ld.c: Likewise.
2759 * nm.c: Likewise.
2760 * objdump.c: Likewise.
2761 * ranlib.c: Likewise.
2762 * readelf.c: Likewise.
2763 * size.c: Likewise.
2764 * strings.c: Likewise.
2765 * strip.c: Likewise.
2766
Roland McGrathdd7e22b2006-03-09 23:05:47 +000027672006-03-09 Roland McGrath <roland@redhat.com>
2768
2769 * Makefile.am (AM_LDFLAGS): New variable.
2770
Roland McGrath060fa052006-03-02 07:51:50 +000027712006-03-01 Roland McGrath <roland@redhat.com>
2772
2773 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
2774 for dwarf.h changes matching 3.0 spec.
2775 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
2776
Ulrich Drepper038129b2005-12-04 16:47:24 +000027772005-12-04 Ulrich Drepper <drepper@redhat.com>
2778
2779 * elflint.c (check_one_reloc): If relocation section is not loaded,
2780 don't check whether the relocations modify read-only sections or
2781 loaded and unloaded sections.
2782
Ulrich Drepper607e0542005-12-04 15:51:06 +000027832005-11-28 Ulrich Drepper <drepper@redhat.com>
2784
2785 * elflint.c (check_one_reloc): Take additional parameters. Use
2786 them to determine whether relocation is valid in this type of
2787 file. DSOs and executables can contain relocation sections in
2788 unloaded sections which just show the relocations the linker
2789 applied. Adjust all callers.
2790 (check_program_header): Check that PT_PHDR is loaded and that offset
2791 matches the one in the ELF header.
2792
Roland McGrath6724c902005-10-28 07:07:19 +000027932005-10-26 Roland McGrath <roland@redhat.com>
2794
2795 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
2796
Ulrich Drepperd0449522005-09-03 07:23:52 +000027972005-09-03 Ulrich Drepper <drepper@redhat.com>
2798
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00002799 * strip.c (handle_elf): Unify some error messages.
2800 * ld.c (main): Likewise.
2801 * ldgeneric.c (open_elf): Likewise.
2802 * elfcmp.c (main): Likewise.
2803 * elflint.c (check_elf_header): Likewise.
2804
2805 * size.c (process_file): Fix typo in error message.
2806
Ulrich Drepperd0449522005-09-03 07:23:52 +00002807 * readelf.c: Lots of little cleanups. Use _unlocked functions.
2808
Ulrich Dreppera60501e2005-09-02 19:50:17 +000028092005-09-02 Ulrich Drepper <drepper@redhat.com>
2810
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00002811 * strings.c (main): Reset elfmap variable after munmap call.
Ulrich Drepper618795f2005-09-02 20:01:37 +00002812 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
Ulrich Dreppera60501e2005-09-02 19:50:17 +00002813
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000028142005-08-28 Ulrich Drepper <drepper@redhat.com>
2815
2816 * ranlib.c: Don't define pread_retry and write_retry here.
2817
2818 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
2819 (CLEANFILES): Add *.gcno *.gcda *.gconv.
2820
2821 * strings.c (process_chunk): Reorder expressions in conditional
2822 (process_chunk_mb): Likewise.
2823
2824 * strings.c: New file.
2825 * Makefile.am (bin_PROGRAMS): Add strings.
2826 (strings_no_Wstring): Define.
2827 (strings_LDADD): Define.
2828
Roland McGrath71e15a02005-08-27 10:33:26 +000028292005-08-27 Roland McGrath <roland@redhat.com>
2830
2831 * addr2line.c (dwarf_diename_integrate): Function removed.
2832 (print_dwarf_function): Use plain dwarf_diename.
2833
Ulrich Drepperc5a06cd2005-08-24 19:50:14 +000028342005-08-24 Ulrich Drepper <drepper@redhat.com>
2835
2836 * elflint.c (check_versym): Versioned symbols should not have
2837 local binding.
2838
Ulrich Drepper5d832292005-08-15 21:36:27 +000028392005-08-15 Ulrich Drepper <drepper@redhat.com>
2840
Ulrich Drepper61655e02005-08-16 04:23:02 +00002841 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
2842 undefined.
2843
Ulrich Drepper5d832292005-08-15 21:36:27 +00002844 * Makefile.am: Add rules to build ranlib.
2845 * ranlib.c: New file.
2846
Roland McGrath18e13422005-08-15 08:01:25 +000028472005-08-14 Roland McGrath <roland@redhat.com>
2848
2849 * elflint.c (check_sections): Use ebl_section_type_name and allow any
2850 sh_type it recognizes.
2851
2852 * elflint.c (check_sections): Print unknown flags in hex, don't
2853 truncate high bits. Print section number and name for unknown type.
2854
Roland McGrathf6895042005-08-13 20:56:52 +000028552005-08-13 Roland McGrath <roland@redhat.com>
2856
2857 * elflint.c (check_program_header): Use ebl_segment_type_name and
2858 allow any p_type it recognizes. Include p_type value in error
2859 message for unknown type.
2860
Ulrich Drepperc5c33a62005-08-13 17:50:47 +000028612005-08-13 Ulrich Drepper <drepper@redhat.com>
2862
2863 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
2864 to ebl_check_special_symbol.
2865 (check_sections): Pass ehdr to ebl_bss_plt_p.
2866
Roland McGrath653d3762005-08-13 01:59:10 +000028672005-08-12 Roland McGrath <roland@redhat.com>
2868
2869 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
2870 refers to the right section if it's not SHN_ABS.
2871 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
2872
2873 * elflint.c (check_sections): Don't complain about a non-NOBITS
2874 section taking no segment space, if it's sh_size is 0.
2875
2876 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
2877 be PROGBITS or NOBITS.
2878
2879 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
2880 standard st_value and st_size checks.
2881
Roland McGrath1c83bf12005-08-11 07:03:55 +000028822005-07-28 Roland McGrath <roland@redhat.com>
Ulrich Drepperfaf4d192005-08-11 05:12:05 +00002883
Roland McGrath1c83bf12005-08-11 07:03:55 +00002884 * addr2line.c (options, parse_opt): Don't handle -e here.
2885 (executable): Variable removed.
2886 (argp_children): New static variable.
2887 (argp): Use it. Make const.
2888 (main): Fill in argp_children from dwfl_standard_argp ().
2889 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
2890 (print_dwarf_function): New function. Try to figure out inline chain.
2891 (elf_getname): Function removed, libdwfl does it for us.
2892 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
2893 Use dwfl_module_addrname instead of elf_getname.
2894 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
2895 * Makefile.am (INCLUDES): Add libdwfl directory to path.
2896
28972005-08-10 Ulrich Drepper <drepper@redhat.com>
2898
2899 * strip.c (parse_opt): STATE parameter is now used.
2900 Various little cleanups.
2901
2902 * readelf.c (print_debug_line_section): Correct fallout of renaming
2903 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +00002904
Roland McGrath8f31c2c2005-08-09 04:58:05 +000029052005-08-08 Roland McGrath <roland@redhat.com>
2906
2907 * strip.c (options, parse_opt): Grok -R .comment for compatibility
2908 with binutils strip. Likewise -d, -S, as aliases for -g.
2909 Likewise ignore -s/--strip-all.
2910
Roland McGrath095a01b2005-08-08 03:49:35 +000029112005-08-07 Roland McGrath <roland@redhat.com>
2912
2913 * strip.c (process_file): Open read-only when using a different output
2914 file.
2915
Ulrich Drepper47be7952005-08-07 04:41:39 +000029162005-08-06 Ulrich Drepper <drepper@redhat.com>
2917
Ulrich Drepper637963b2005-08-07 05:33:07 +00002918 * elflint.c (in_nobits_scn): New function.
2919 (check_versym): Allow references for defined symbols against versions
2920 of other DSOs also for symbols in nobits sections.
2921 Move a few variables around.
2922
Ulrich Drepper47be7952005-08-07 04:41:39 +00002923 * Makefile.am (AM_CFLAGS): Avoid duplication.
2924 Link with statis libs if BUILD_STATIC.
2925
Ulrich Drepperdbace232005-08-06 01:37:23 +000029262005-08-05 Ulrich Drepper <drepper@redhat.com>
2927
2928 * elflint.c: Many, many more tests. Mostly related to symbol
2929 versioning. Those sections should now be completely checked.
2930
2931 * readelf.c (print_dynamic): Use gelf_offscn.
2932
Ulrich Drepperacb89832005-08-04 07:01:49 +000029332005-08-04 Ulrich Drepper <drepper@redhat.com>
2934
2935 * elflint.c: Add lots more tests: more extension symbol table sanity,
2936 versioning section tests, hash table tests. General cleanup.
2937
Ulrich Drepperc911c9e2005-08-02 16:07:42 +000029382005-08-02 Ulrich Drepper <drepper@redhat.com>
2939
Ulrich Drepper8a687742005-08-03 02:24:12 +00002940 * objdump.c: New file.
2941 * Makefile.am (bin_PROGRAMS): Add objdump.
2942 (objdump_LDADD): Define.
2943
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00002944 * elflint.c (check_reloc_shdr): New function split out from check_rela
2945 and check_rel.
2946 (check_one_reloc): New function. Likewise.
2947 (check_rela): Use check_reloc_shdr and check_one_reloc.
2948 (check_rel): Likewise.
Ulrich Drepper41de4882005-08-03 00:02:56 +00002949 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
2950 section.
2951 Add checks that relocations against read-only segments are flagged,
2952 that the text relocation flag is not set unnecessarily, and that
2953 relocations in one section are either against loaded or not-loaded
2954 segments.
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00002955
Ulrich Drepper8533dcf2005-08-01 07:18:47 +000029562005-08-01 Ulrich Drepper <drepper@redhat.com>
2957
2958 * elfcmp.c (main): Ignore section count and section name string table
2959 section index.
2960
Roland McGrathf9ece8a2005-07-28 07:03:04 +000029612005-07-27 Roland McGrath <roland@redhat.com>
2962
2963 * elfcmp.c: Include <locale.h>.
2964
Ulrich Drepper7d48d6a2005-07-27 10:13:23 +000029652005-07-27 Ulrich Drepper <drepper@redhat.com>
2966
2967 * elfcmp.c: Print name and index of differing section.
2968
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000029692005-07-24 Ulrich Drepper <drepper@redhat.com>
2970
2971 * elfcmp.c: Implement comparing gaps between sections.
2972
29732005-07-23 Ulrich Drepper <drepper@redhat.com>
2974
2975 * elflint.c: Include libeblP.h instead of libebl.h.
2976 * nm.c: Likewise.
2977 * readelf.c: Likewise.
2978 * elfcmp.c: Likewise.
2979
2980 * elfcmp.c (main): Compare individual ELF header fields, excluding
2981 e_shoff instead of the whole struct at once.
2982 Use ebl_section_strip_p instead of SECTION_STRIP_P.
2983 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
2984
29852005-07-22 Ulrich Drepper <drepper@redhat.com>
2986
2987 * elfcmp.c (main): Take empty section into account when comparing
2988 section content.
2989
2990 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
2991 using it.
2992
29932005-07-21 Ulrich Drepper <drepper@redhat.com>
2994
2995 * elfcmp.c: New file.
2996 * Makefile.am (bin_PROGRAMS): Add elfcmp.
2997 (elfcmp_LDADD): Define.
2998
2999 * elflint.c (check_rela): Check that copy relocations only reference
3000 object symbols or symbols with unknown type.
3001 (check_rel): Likewise.
3002
30032005-06-08 Roland McGrath <roland@redhat.com>
3004
3005 * readelf.c (print_ops): Add consts.
3006
30072005-05-31 Roland McGrath <roland@redhat.com>
3008
3009 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
3010 abbreviations. Print a header line before each CU section.
3011
3012 * readelf.c (print_debug_loc_section): Fix indentation for larger
3013 address size.
3014
30152005-05-30 Roland McGrath <roland@redhat.com>
3016
3017 * readelf.c (print_debug_line_section): Print section offset of each
3018 CU's table, so they are easy to find from seeing the stmt_list value.
3019
3020 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
3021 (attr_callback): Grok DW_AT_ranges and print offset in hex.
3022
3023 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
3024 (print_debug_ranges_section, print_debug_loc_section): Likewise.
3025
3026 * readelf.c (print_ops): Take different args for indentation control.
3027 (attr_callback): Caller updated.
3028 Grok several more block-form attributes as being location expressions.
3029 For those same attributes with udata forms, format output differently
3030 for location list offset.
3031 (print_debug_loc_section): Implement it for real.
3032
3033 * readelf.c (options): Mention ranges for --debug-dump.
3034 (enum section_e): Add section_ranges.
3035 (parse_opt): Grok "ranges" for -w/--debug-dump.
3036 (print_debug_ranges_section): New function.
3037 (print_debug): Handle .debug_ranges section.
3038
30392005-05-30 Ulrich Drepper <drepper@redhat.com>
3040
3041 * readelf.c (handle_notes): At least x86-64 need not have the note
3042 section values aligned to 8 bytes.
3043
30442005-05-18 Ulrich Drepper <drepper@redhat.com>
3045
3046 * readelf.c (dwarf_tag_string): Add new tags.
3047
30482005-05-08 Roland McGrath <roland@redhat.com>
3049
3050 * strip.c (handle_elf): Don't translate hash and versym data formats,
3051 elf_getdata already did it for us.
3052
30532005-05-07 Ulrich Drepper <drepper@redhat.com>
3054
3055 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
3056 (addr2line_LDADD): Likewise.
3057
30582005-05-03 Roland McGrath <roland@redhat.com>
3059
3060 * strip.c (handle_elf): Apply symbol table fixups to discarded
3061 relocation sections when they are being saved in the debug file.
3062
3063 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
3064 and gelf_xlatetof, not the native byte order.
3065
3066 * strip.c (parse_opt): Give error if -f or -o is repeated.
3067 (main): Exit if argp_parse returns nonzero.
3068
3069 * strip.c (debug_fname_embed): New variable.
3070 (options, parse_opt): New option -F to set it.
3071
30722005-05-07 Ulrich Drepper <drepper@redhat.com>
3073
3074 * readelf.c (parse_opt): Make any_control_option variable
3075 local. Simplify some tests.
3076
30772005-05-03 Roland McGrath <roland@redhat.com>
3078
3079 * strip.c (crc32_file): Function removed (now in ../lib).
3080
30812005-05-03 Roland McGrath <roland@redhat.com>
3082
3083 * elflint.c (is_debuginfo): New variable.
3084 (options, parse_opt): New option --debuginfo/-d to set it.
3085 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
3086 (check_note): If is_debuginfo, don't try to get note contents.
3087
30882005-04-24 Ulrich Drepper <drepper@redhat.com>
3089
3090 * readelf.c (print_debug_abbrev_section): Don't print error when end of
3091 section reached.
3092
30932005-04-14 Ulrich Drepper <drepper@redhat.com>
3094
3095 * readelf.c (dwarf_encoding_string): New function.
3096 (dwarf_inline_string): New function.
3097 (dwarf_access_string): New function.
3098 (dwarf_visibility_string): New function.
3099 (dwarf_virtuality_string): New function.
3100 (dwarf_identifier_case_string): New function.
3101 (dwarf_calling_convention_string): New function.
3102 (dwarf_ordering_string): New function.
3103 (dwarf_discr_list_string): New function.
3104 (attr_callback): Decode man more attribute values.
3105
31062005-04-01 Ulrich Drepper <drepper@redhat.com>
3107
3108 * addr2line.c: Finish implementation of -f option.
3109
31102005-03-29 Ulrich Drepper <drepper@redhat.com>
3111
3112 * addr2line.c: New file.
3113 * Makefile.am (bin_PROGRAMS): Add addr2line.
3114 Define addr2line_LDADD.
3115
3116 * findtextrel.c: Use new dwarf_addrdie function.
3117
3118 * findtextrel.c: Fix usage message and re-add accidentally removed
3119 line.
3120
31212005-03-28 Ulrich Drepper <drepper@redhat.com>
3122
3123 * findtextrel.c: New file.
3124 * Makefile: Add rules to build findtextrel.
3125
31262005-02-15 Ulrich Drepper <drepper@redhat.com>
3127
3128 * ldlex.l: Provide ECHO definition to avoid warning.
3129
3130 * elflint.c (check_program_header): Fix typo in RELRO test.
3131
3132 * Makefile.am (AM_CFLAGS): Add more warning options.
3133 * elflint.c: Fix warnings introduced by the new warning options.
3134 * i386_ld.c: Likewise.
3135 * ld.c: Likewise.
3136 * ld.h: Likewise.
3137 * ldgeneric.c: Likewise.
3138 * nm.c: Likewise.
3139 * readelf.c: Likewise.
3140 * sectionhash.c: Likewise.
3141 * size.c: Likewise.
3142 * string.c: Likewise.
3143
31442005-02-05 Ulrich Drepper <drepper@redhat.com>
3145
3146 * Makefile.am: Check for text relocations in constructed DSOs.
3147
3148 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
3149 with -lmudflap.
3150
3151 * ldscript.y: Add as_needed handling.
3152 * ldlex.l: Recognize AS_NEEDED token.
3153 * ld.h (struct filename_list): Add as_needed flag.
3154
31552005-02-04 Ulrich Drepper <drepper@redhat.com>
3156
3157 * elflint.c (check_symtab): Correctly determine size of GOT section.
3158
31592005-01-19 Ulrich Drepper <drepper@redhat.com>
3160
3161 * ld.c: Remove unnecessary more_help function. Print bug report
3162 address using argp.
3163 * strip.c: Likewise.
3164 * size.c: Likewise.
3165 * nm.c: Likewise.
3166 * readelf.c: Likewise.
3167 * elflint.c: Likewise.
3168
3169 * elflint.c (main): Don't check for parameter problems here.
3170 (parse_opt): Do it here, where we get informed about some of them
3171 anyway.
3172
3173 * readelf.c (main): Don't check for parameter problems here.
3174 (parse_opt): Do it here, where we get informed about some of them
3175 anyway.
3176
31772005-01-11 Ulrich Drepper <drepper@redhat.com>
3178
3179 * strip.c: Update copyright year.
3180 * readelf.c: Likewise.
3181 * size.c: Likewise.
3182 * nm.c: Likewise.
3183 * ld.c: Likewise.
3184 * elflint.c: Likewise.
3185
3186 * elflint.c (check_symtab): Don't warn about wrong size for
3187 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
3188
31892004-10-05 Ulrich Drepper <drepper@redhat.com>
3190
3191 * readelf.c (print_phdr): In section mapping, also indicate
3192 sections in read-only segments.
3193
31942004-09-25 Ulrich Drepper <drepper@redhat.com>
3195
3196 * readelf.c: Make compile with gcc 4.0.
3197 * strip.c: Likewise.
3198
31992004-08-16 Ulrich Drepper <drepper@redhat.com>
3200
3201 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
3202 allocate to work around gcc 3.4 bug.
3203
32042004-01-25 Ulrich Drepper <drepper@redhat.com>
3205
3206 * ldlex.l (invalid_char): Better error message.
3207
32082004-01-23 Ulrich Drepper <drepper@redhat.com>
3209
3210 * readelf.c: Print SHT_GNU_LIBLIST sections.
3211
3212 * none_ld.c: New file.
3213
32142004-01-21 Ulrich Drepper <drepper@redhat.com>
3215
3216 * Makefile.am: Enable building of machine specific linker.
3217
32182004-01-20 Ulrich Drepper <drepper@redhat.com>
3219
3220 * Makefile.am: Support building with mudflap.
3221
3222 * i386_ld.c: Fix warnings gcc 3.4 spits out.
3223 * ldgeneric.c: Likewise.
3224 * ldscript.y: Likewise.
3225 * readelf.c: Likewise.
3226 * strip.c: Likewise.
3227
3228 * readelf.c (print_debug_line_section): Determine address size
3229 correctly.
3230
32312004-01-19 Ulrich Drepper <drepper@redhat.com>
3232
3233 * readelf.c (print_phdr): Show which sections are covered by the
3234 PT_GNU_RELRO entry.
3235
3236 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
3237
3238 * readelf.c (print_debug_macinfo_section): Implement.
3239
32402004-01-18 Ulrich Drepper <drepper@redhat.com>
3241
3242 * readelf.c (print_debug_line_section): Implement.
3243
32442004-01-17 Ulrich Drepper <drepper@redhat.com>
3245
3246 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
3247 * src/ld.c: Likewise.
3248 * src/nm.c: Likewise.
3249 * src/readelf.c: Likewise.
3250 * src/size.c: Likewise.
3251 * src/strip.c: Likewise.
3252
3253 * strip.c: Add a few more unlikely. Reduce scope of some variables.
3254
3255 * Makefile.am: Support building with mudflap.
3256
32572004-01-16 Ulrich Drepper <drepper@redhat.com>
3258
3259 * readelf.c (print_debug_info_section): Free dies memory.
3260
3261 * readelf.c: Print .debug_info section content.
3262
32632004-01-13 Ulrich Drepper <drepper@redhat.com>
3264
3265 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
3266
32672004-01-12 Ulrich Drepper <drepper@redhat.com>
3268
3269 * readelf.c (print_debug_aranges): Implement using libdw.
3270
32712004-01-11 Ulrich Drepper <drepper@redhat.com>
3272
3273 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
3274
3275 * readelf.c: Use libdw instead of libdwarf. Not all of the old
3276 behavior is available yet.
3277 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
3278
32792004-01-09 Ulrich Drepper <drepper@redhat.com>
3280
3281 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
3282
3283 * nm.c: Implement getting information about local variables.
3284
32852004-01-07 Ulrich Drepper <drepper@redhat.com>
3286
3287 * nm.c: Read also debug information for local symbols.
3288
32892004-01-05 Ulrich Drepper <drepper@redhat.com>
3290
3291 * nm.c: Shuffle dwarf handling code around so the maximum column
3292 width can be computed ahead of printing. Avoid collection symbols
3293 which are not printed anyway.
3294
3295 * nm.c: Rewrite dwarf handling to use libdw.
3296 * Makefile.am (AM_CFLAGS): Add -std parameter.
3297 (INCLUDES): Find header in libdw subdir.
3298 (nm_LDADD): Replace libdwarf with libdw.
3299
3300 * elflint.c: Update copyright year.
3301 * readelf.c: Likewise.
3302 * size.c: Likewise.
3303 * strip.c: Likewise.
3304 * nm.c: Likewise.
3305
33062003-12-31 Ulrich Drepper <drepper@redhat.com>
3307
3308 * strip.c (process_file): Close file before returning.
3309
33102003-11-19 Ulrich Drepper <drepper@redhat.com>
3311
3312 * readelf.c (handle_dynamic): Make column for tag name wider.
3313
33142003-09-29 Ulrich Drepper <drepper@redhat.com>
3315
3316 * readelf.c (handle_dynamic): Always terminate tag name with a space.
3317
33182003-09-25 Ulrich Drepper <drepper@redhat.com>
3319
3320 * strip.c (process_file): Don't mmap the input file, we modify the
3321 data structures and don't want the change end up on disk.
3322
33232003-09-23 Jakub Jelinek <jakub@redhat.com>
3324
3325 * unaligned.h (union u_2ubyte_unaligned,
3326 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
3327 packed attribute.
3328 (add_2ubyte_unaligned, add_4ubyte_unaligned,
3329 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
3330 Read/store value through _ptr->u instead of *_ptr.
3331
33322003-09-22 Ulrich Drepper <drepper@redhat.com>
3333
3334 * size.c (show_sysv): Change type of maxlen to int.
3335
3336 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
3337 buckets.
3338
3339 * i386_ld.c: Many many fixes and extensions.
3340 * ld.c: Likewise.
3341 * ldgeneric.c: Likewise.
3342
33432003-08-16 Ulrich Drepper <drepper@redhat.com>
3344
3345 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
3346 the reference is from another DSO.
3347
33482003-08-15 Ulrich Drepper <drepper@redhat.com>
3349
3350 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
3351 point is found when creating a DSO.
3352
33532003-08-14 Ulrich Drepper <drepper@redhat.com>
3354
3355 * ld.c (main): Always call FLAG_UNRESOLVED.
3356 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
3357 undefined symbols if not creating DSO or ld_state.nodefs is not set.
3358
33592003-08-13 Ulrich Drepper <drepper@redhat.com>
3360
3361 * Makefile.in: Depend on libebl.a, not libebl.so.
3362
3363 * ld.c (main): Mark stream for linker script as locked by caller.
3364 (read_version_script): Likewise.
3365 * ldlex.c: Define fread and fwrite to _unlocked variant.
3366
3367 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
3368 target_bswap_32.
3369 * unaligned.h: Define target_bswap_16, target_bswap_32, and
3370 target_bswap_64.
3371 (store_2ubyte_unaligned, store_4ubyte_unaligned,
3372 store_8ubyte_unaligned): Define using new macros.
3373
33742003-08-12 Ulrich Drepper <drepper@redhat.com>
3375
3376 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
3377 possibly unaligned memory. Support use of big endian machines.
3378
33792003-08-11 Ulrich Drepper <drepper@redhat.com>
3380
3381 * Moved to CVS archive.