blob: 112af1916dd83665f9cd10c31527409a22f08549 [file] [log] [blame]
Mark Wielaardff1ce972014-12-16 16:10:28 +010012014-12-16 Mark Wielaard <mjw@redhat.com>
2
3 * readelf.c (print_debug_line_section): Correct overflow check for
4 unit_length.
5
Mark Wielaardb171ca42014-12-15 11:35:46 +010062014-12-15 Mark Wielaard <mjw@redhat.com>
7
Mark Wielaard6a8a9e32014-12-15 19:43:02 +01008 * readelf.c (notice_listptr): Return false if offset doesn't fit
9 in 61-bits.
10 (attr_callback): Warn if loclist or rangelist offset doesn't fit.
11
122014-12-15 Mark Wielaard <mjw@redhat.com>
13
Mark Wielaard198e9492014-12-15 19:05:43 +010014 * readelf.c (print_ops): Don't assert when addr_size or ref_size
15 is not 4 or 8, just report invalid data.
16
172014-12-15 Mark Wielaard <mjw@redhat.com>
18
Mark Wielaard2323b452014-12-15 15:34:59 +010019 * readelf.c (print_gdb_index_section): Add more bounds checks.
20
212014-12-15 Mark Wielaard <mjw@redhat.com>
22
Mark Wielaardb171ca42014-12-15 11:35:46 +010023 * readelf.c (print_debug_line_section): Check there is enough room
Mark Wielaard9c42b782014-12-15 13:40:18 +010024 for DW_LNE_set_address argument. Make sure there is enough room
25 for the the initial unit_length.
Mark Wielaardb171ca42014-12-15 11:35:46 +010026
Mark Wielaard7a053472014-12-14 21:48:23 +0100272014-12-14 Mark Wielaard <mjw@redhat.com>
28
29 * elflint.c (check_attributes): Call get_uleb128 with end pointer.
30 * readelf.c (print_attributes): Likewise.
31 (print_ops): Likewise and also for get_sleb128.
32 (print_cfa_program): Likewise and add more readp bounds checks.
33 (read_encoded): Likewise.
34 (print_debug_frame_section): Likewise.
35 (print_debug_line_section): Likewise.
36 (print_debug_macinfo_section): Likewise.
37 (print_debug_macro_section): Likewise.
38 (print_debug_exception_table): Likewise.
39
Mark Wielaard274cbda2014-12-16 11:04:55 +0100402014-12-16 Mark Wielaard <mjw@redhat.com>
41
42 * elfcmp.c (compare_Elf32_Word): Make sure (unsigned) Elf32_Word
43 difference doesn't wrap around before returning as int.
44
Mark Wielaardcd339292014-12-11 17:21:22 +0100452014-12-11 Mark Wielaard <mjw@redhat.com>
46
Mark Wielaardee5693b2014-12-11 18:26:09 +010047 * readelf.c (print_debug_exception_table): Check TType base offset
48 and Action table are sane.
49
502014-12-11 Mark Wielaard <mjw@redhat.com>
51
Mark Wielaardcd339292014-12-11 17:21:22 +010052 * readelf.c (print_debug_frame_section): Check number of augmentation
53 chars to print.
54
Mark Wielaarda0da7562014-12-09 12:58:07 +0100552014-12-09 Mark Wielaard <mjw@redhat.com>
56
57 * readelf.c (handle_file_note): Check count fits data section and
58 doesn't overflow fptr.
59
Mark Wielaard990fbe52014-12-08 10:11:43 +0100602014-12-08 Mark Wielaard <mjw@redhat.com>
61
62 * readelf.c (print_debug_exception_table): Report invalid data if
63 action table doesn't immediately follow call site table.
64
Josh Stoneaecdf262014-12-10 11:06:52 -0800652014-12-10 Josh Stone <jistone@redhat.com>
66
Josh Stone2098b3d2014-12-10 11:14:40 -080067 * addr2line.c (get_diename): New, get linkage_name or name.
68 * addr2line.c (print_dwarf_function): Use get_diename.
69 * addr2line.c (handle_address): Likewise.
70 * addr2line.c (print_diesym): Removed.
71
722014-12-10 Josh Stone <jistone@redhat.com>
73
Josh Stoneaecdf262014-12-10 11:06:52 -080074 * addr2line.c (handle_address): Find the proper inline parents.
75
Mark Wielaard96ddcad2014-12-07 22:45:28 +0100762014-12-07 Mark Wielaard <mjw@redhat.com>
77
Mark Wielaardf0c5ef82014-12-07 23:40:12 +010078 * readelf.c (print_debug_line_section): max_ops_per_instr cannot
79 be zero.
80
812014-12-07 Mark Wielaard <mjw@redhat.com>
82
Mark Wielaard96ddcad2014-12-07 22:45:28 +010083 * readelf.c (print_ops): Handle zero ref_size for DW_OP_call_ref
84 and DW_OP_GNU_implicit_pointer.
85
Mark Wielaardd0070a92014-12-04 17:01:20 +0100862014-12-04 Mark Wielaard <mjw@redhat.com>
87
88 * objdump.c (show_relocs_x): Make sure destshdr exists.
89 (show_relocs_rel): Don't rely on shdr->sh_entsize, use gelf_fsize.
90 (show_relocs_rela): Likewise.
91 (show_relocs): Make sure destshdr, symshdr and symdata exists.
92
Mark Wielaard0ed4f982014-11-30 21:03:57 +0100932014-11-30 Mark Wielaard <mjw@redhat.com>
94
95 * readelf.c (handle_sysv_hash64): Fix overflow check.
96
Mark Wielaard98755612014-11-28 22:22:16 +0100972014-11-28 Mark Wielaard <mjw@redhat.com>
98
99 * readelf.c (handle_relocs_rel): Don't reuse destshdr to store
100 section header of a relocation against a STT_SECTION symbol. Use
101 a new local variable secshdr.
102 (handle_relocs_rela): Likewise.
103
Mark Wielaard13a9fa32014-11-27 00:12:32 +01001042014-11-26 Mark Wielaard <mjw@redhat.com>
105
106 * readelf.c (print_debug_aranges_section): Cast Dwarf_Word length
107 to ptrdiff_t for comparison.
108
Mark Wielaard020fc022014-11-24 21:54:42 +01001092014-11-24 Mark Wielaard <mjw@redhat.com>
110
111 * readelf.c (print_debug_line_section): Check line_range is not zero
112 before usage.
113
Mark Wielaard49296062014-11-23 18:26:16 +01001142014-11-23 Mark Wielaard <mjw@redhat.com>
115
116 * readelf.c (print_debug_aranges_section): Check length to catch
117 nexthdr overflow.
118
Mark Wielaard9644aaf2014-11-21 23:26:35 +01001192014-11-21 Mark Wielaard <mjw@redhat.com>
120
121 * readelf.c (print_attributes): Guard against empty section.
122 Document attribute format. Break when vendor name isn't terminated.
123 Add overflow check for subsection_len. Handle both gnu and non-gnu
124 attribute tags.
125
Mark Wielaard712c8fa2014-11-22 23:08:48 +01001262014-11-22 Mark Wielaard <mjw@redhat.com>
127
128 * elflint.c (check_sections): Call ebl_bss_plt_p without ehdr.
129 * findtextrel.c (process_file): Use elf_getphdrnum.
130 * readelf.c (process_elf_file): Remove redundant ehdr->e_phoff check.
131 (print_phdr): Check phnum.
132 * size.c (show_segments): Use elf_getphdrnum.
133 * strip.c (handle_elf): Likewise.
134 * unstrip.c (copy_elf): Likewise.
135 (copy_elided_sections): Likewise.
136 (handle_file): Likewise.
137
Mark Wielaard86b0b132014-11-18 10:07:10 +01001382014-11-18 Mark Wielaard <mjw@redhat.com>
139
140 * readelf.c (print_cfa_program): Fix sanity check of DW_FORM_block
141 length.
142
Mark Wielaard7df0da32014-11-17 23:01:34 +01001432014-11-17 Mark Wielaard <mjw@redhat.com>
144
Mark Wielaard3b3a1912014-11-17 23:35:28 +0100145 * readelf.c (handle_verneed): Check vna_next and vn_next exist.
146 (handle_verdef): Check vda_next and vd_next exist.
147 (handle_versym): Check vd_next, vna_next and vn_next exist.
148 Check vername and filename are not NULL before use.
149
1502014-11-17 Mark Wielaard <mjw@redhat.com>
151
Mark Wielaard5c1a45c2014-11-17 23:15:45 +0100152 * elfcmp.c (main): Check section names are NULL before use.
153 * objdump.c (section_match): Likewise.
154 * size.c (show_sysv): Likewise.
155
1562014-11-17 Mark Wielaard <mjw@redhat.com>
157
Mark Wielaard7df0da32014-11-17 23:01:34 +0100158 * readelf.c (print_debug_frame_section): Warn if ptr_size is not 4
159 or 8 instead of just calling print_cfa_program.
160
Mark Wielaard2af7b492014-11-16 11:40:08 +01001612014-11-16 Mark Wielaard <mjw@redhat.com>
162
Mark Wielaard436275e2014-11-17 00:33:36 +0100163 * readelf (process_elf_file): Set phnum to zero if there aren't
164 actually any pheaders.
165 (print_phdr): Check there actually is a phdr.
166
1672014-11-16 Mark Wielaard <mjw@redhat.com>
168
Mark Wielaard2af7b492014-11-16 11:40:08 +0100169 * readelf.c (print_cfa_program): Check block len before calling
170 print_ops.
171
Mark Wielaardad87d272014-11-14 12:24:28 +01001722014-11-14 Mark Wielaard <mjw@redhat.com>
173
Mark Wielaardd1b11632014-11-14 21:42:47 +0100174 * readelf.c (print_debug_frame_section): Sanity Check CIE
175 unit_length and augmentationlen.
176
1772014-11-14 Mark Wielaard <mjw@redhat.com>
178
Mark Wielaardad87d272014-11-14 12:24:28 +0100179 * readelf.c (handle_versym): Check def == NULL before use.
180
Mark Wielaardd8b96822014-11-08 14:04:27 +01001812014-11-08 Mark Wielaard <mjw@redhat.com>
182
183 * readelf.c (handle_versym): Initialize vername and filename array
184 elements.
185
Mark Wielaard6b246e02014-11-07 12:54:02 +01001862014-11-07 Mark Wielaard <mjw@redhat.com>
187
188 * readelf.c (handle_sysv_hash): Sanity check section contents.
189 (handle_sysv_hash64): Likewise.
190 (handle_gnu_hash): Likewise.
191
Petr Machatafbf1a442014-09-14 00:47:42 +02001922014-09-14 Petr Machata <pmachata@redhat.com>
193
194 * readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly.
195
Petr Machata1498f542014-09-12 19:03:33 +02001962014-09-12 Petr Machata <pmachata@redhat.com>
197
198 * readelf.c (encoded_ptr_size): In the switch statement, change
199 magic constants 3 and 4 to DW_EH_PE_* counterparts. Still accept
200 0. Print diagnostic for anything else.
201
Josh Stonef1ec7442014-08-25 14:40:35 -07002022014-08-25 Josh Stone <jistone@redhat.com>
203
204 * Makefile.am: Prevent premature @AR@ replacement in a sed expression.
205
Mark Wielaarda95c4ad2014-07-04 14:30:48 +02002062014-07-04 Menanteau Guy <menantea@linux.vnet.ibm.com>
207 Mark Wielaard <mjw@redhat.com>
208
209 * elflint (check_symtab): Add ".TOC." to the list of possibly
210 dangling symbols because of sourceware PR13621.
211
Mark Wielaardc1c1c062014-06-14 17:15:37 +02002122014-06-14 Mark Wielaard <mjw@redhat.com>
213
214 * elflint (check_symtab): Use ebl_func_addr_mask on st_value.
215
Mark Wielaard903f3342014-05-27 10:25:27 +02002162014-05-27 Mark Wielaard <mjw@redhat.com>
217
218 * readelf.c (print_debug): Skip section if name is NULL.
219
Mark Wielaard22497092014-05-26 21:28:05 +02002202014-05-26 Mark Wielaard <mjw@redhat.com>
221
Mark Wielaardeb4811d2014-05-26 22:54:38 +0200222 * readelf.c (handle_relocs_rela): Print header like handle_relocs_rel
223 does, when sh_info == 0.
224
2252014-05-26 Mark Wielaard <mjw@redhat.com>
226
Mark Wielaardbd1a0d12014-05-26 22:35:30 +0200227 * unstrip.c (find_alloc_sections_prelink): Allow non-split .bss
228 section when sh_size of the original and undo .bss section are equal.
229
2302014-05-26 Mark Wielaard <mjw@redhat.com>
231
Mark Wielaard22497092014-05-26 21:28:05 +0200232 * unstrip.c (options): Add --force, -F.
233 (struct arg_info): Add bool force.
234 (parse_opt): Handle 'F', set force.
235 (handle_explicit_files): Add force argument, add warn function,
236 separate check ehdr field checks, use warn.
237 (handle_dwfl_module): Add force argument, pass on to
238 handle_explicit_files.
239 (handle_output_dir_module): Add force argument, pass on to
240 handle_dwfl_module.
241 (handle_implicit_modules): Pass info->force to handle_dwfl_module and
242 handle_output_dir_module.
243 (main): Pass info.force to handle_explicit_files.
244
Mark Wielaard028d0ab2014-05-19 16:52:56 +02002452014-05-19 Mark Wielaard <mjw@redhat.com>
246
247 * elflint.c (check_reloc_shdr): Check ebl_check_reloc_target_type.
248
Mark Wielaarddf85bf92014-05-01 14:48:27 +02002492014-05-01 Mark Wielaard <mjw@redhat.com>
250
251 * readelf.c (find_no_debuginfo): Call dwfl_standard_find_debuginfo
252 if looking for alternate debug file.
253
Mark Wielaard93802972014-04-11 23:52:47 +02002542014-04-11 Mark Wielaard <mjw@redhat.com>
255
256 * Makefile.am (AM_CPPFLAGS): Add -I libdwelf.
257
Mark Wielaard7c757b32014-04-22 22:23:18 +02002582014-04-22 Mark Wielaard <mjw@redhat.com>
259
Mark Wielaard7c680a22014-04-22 23:26:34 +0200260 * readelf.c (handle_core_item): Make sure variable length array
261 contains at least enough space for terminating zero char.
262
2632014-04-22 Mark Wielaard <mjw@redhat.com>
264
Mark Wielaard7c757b32014-04-22 22:23:18 +0200265 * readelf.c (print_gdb_index_section): Use unsigned int for 31 bits
266 left shift.
267
Mark Wielaard32324792014-04-13 17:39:57 +02002682014-03-13 Mark Wielaard <mjw@redhat.com>
269
270 * Makefile.am: Remove no_mudflap.os. Remove libmudflap from all
271 LDADD lines.
272 * strings.c (process_chunk): Remove _MUDFLAP condition.
273
Mark Wielaardf7cdc742014-04-09 22:38:07 +02002742014-04-09 Mark Wielaard <mjw@redhat.com>
275
276 * readelf.c (print_debug_aranges_section): Don't get the raw section
277 data, use the possibly decompressed .[z]debug sectiondata.
278 (print_debug_ranges_section): Likewise.
279 (print_debug_frame_section): Likewise.
280 (print_debug_line_section): Likewise.
281 (print_debug_loc_section): Likewise.
282 (print_debug_macinfo_section): Likewise.
283 (print_debug_macro_section): Likewise.
284
Mark Wielaard110c2732014-04-10 15:02:53 +02002852014-04-10 Mark Wielaard <mjw@redhat.com>
286
287 * readelf.c (buf_read_ulong): Pass actual long size to convert.
288
Mark Wielaardb9207522014-03-05 16:17:54 +01002892014-03-05 Mark Wielaard <mjw@redhat.com>
290
291 * readelf.c (attr_callback): Print DW_FORM_sdata values as signed
292 numbers.
293
Mark Wielaardcb7b2d62014-02-24 17:44:42 +01002942014-02-24 Mark Wielaard <mjw@redhat.com>
295
296 * readelf (print_phdr): Check there is a SHT_PROGBITS section at the
297 offset given by p_offsets for a PT_INTERP segment before trying to
298 display the interpreter string.
299
Mark Wielaard43c9c2d2014-02-07 14:23:24 +01003002014-02-07 Mark Wielaard <mjw@redhat.com>
301
302 * readelf.c (print_phdr): Check phdr->p_filesz and make sure
303 interpreter string is zero terminated before calling printf.
304
Mark Wielaardf48eb6b2014-01-23 00:56:41 +01003052014-01-22 Mark Wielaard <mjw@redhat.com>
306
307 * Makefile.am (nm_no_Wformat): Removed.
308 (size_no_Wformat): Likewise.
309 (strings_no_Wformat): Likewise.
310 (addr2line_no_Wformat): Likewise.
311 * size.c (show_sysv): Use fmtstr directly as literal in printf.
312 (show_sysv_one_line): Likewise.
313 * strings.c (locfmt): Removed.
314 (radix): New static enum.
315 (parse_opt): Set radix, not locfmt.
316 (process_chunk_mb): Use fmtstr directly as literal in printf based
317 on radix.
318 (process_chunk): Likewise.
319 * nm.c (show_symbols_sysv): Use fmtstr directly as literal in printf.
320 (show_symbols_bsd): Likewise.
321 (show_symbols_posix): Likewise.
322
Mark Wielaard13968d92014-01-21 16:13:49 +01003232014-01-21 Mark Wielaard <mjw@redhat.com>
324
325 * stack.c (show_inlines): New static boolean.
326 (print_frame): New function split out from...
327 (print_frames): ..here. If show_inlines is true and we found a
328 DIE for the frame address, call print_inline_frames otherwise
329 call print_frame. Keep track of and track frame_nr.
330 (print_inline_frames): New function.
331 (parse_opt): Handle '-i'.
332 (main): Add 'i' to options.
333
Mark Wielaard8520f702014-01-27 16:05:54 +01003342014-01-27 Mark Wielaard <mjw@redhat.com>
335
336 * stack.c (maxframes): Initialize to 256.
337 (main): Document new default in options. Document magic number
338 used in frames.allocated initialization.
339
Mark Wielaard247f8582014-01-20 13:49:48 +01003402014-01-20 Mark Wielaard <mjw@redhat.com>
341
Mark Wielaard531a30a2014-01-20 23:09:26 +0100342 * stack.c (show_debugname): New static boolean.
343 (die_name): New function.
344 (print_frames): If show_debugname is true set symname to the
345 first function-like DIE with a name in scope for the address in
346 the debuginfo.
347 (parse_opt): Handle '-d'.
348 (main): Add 'd' to options.
349
3502014-01-20 Mark Wielaard <mjw@redhat.com>
351
Mark Wielaard247f8582014-01-20 13:49:48 +0100352 * addr2line.c (handle_address): Initialize scopes to NULL.
353
Roland McGrath7d5b3012014-01-17 17:11:39 +01003542014-01-17 Roland McGrath <roland@redhat.com>
355
Roland McGrath58d36192014-01-17 17:12:46 +0100356 * strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
357 st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data.
358 Don't use assert on input values, instead bail with "illformed" error.
359
3602014-01-17 Roland McGrath <roland@redhat.com>
361
Roland McGrath7d5b3012014-01-17 17:11:39 +0100362 * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link.
363 (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise.
364 (handle_scngrp): Check for bogus sh_info.
365
Jakub Jelinek71c15342014-01-17 17:07:27 +01003662014-01-17 Jakub Jelinek <jakub@redhat.com>
367
368 * elflint.c (section_name): Return "<invalid>" instead of
369 crashing on invalid section name.
370 (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
371 check_symtab_shndx, check_hash, check_versym): Robustify.
372 (check_hash): Don't check entries beyond end of section.
373 (check_note): Don't crash if gelf_rawchunk fails.
374
Petr Machataced66872014-01-17 17:00:12 +01003752014-01-17 Petr Machata <pmachata@redhat.com>
376
377 * readelf.c (handle_dynamic, handle_relocs_rel)
378 (handle_relocs_rela, handle_versym, print_liblist):
379 Use gelf_fsize instead of relying on shdr->sh_entsize.
380
Mark Wielaard04781c32014-01-14 22:13:43 +01003812014-01-14 Mark Wielaard <mjw@redhat.com>
382
383 * readelf.c (print_debug_macro_section): Clear vendor array before
384 use.
385
Jan Kratochvil7c6e7852014-01-15 21:16:57 +01003862014-01-15 Jan Kratochvil <jan.kratochvil@redhat.com>
387
388 Fix corruption of non-C++ symbols by the demangler.
389 * nm.c (show_symbols_sysv, show_symbols_bsd, show_symbols_posix)
390 (show_symbols): Check for _Z.
391 * stack.c (print_frames) <USE_DEMANGLE>: Check for _Z.
392
Mark Wielaard6034e2f2014-01-02 22:31:07 +01003932014-01-02 Mark Wielaard <mjw@redhat.com>
394
Mark Wielaardda91c5b2014-01-03 00:06:31 +0100395 * stack.c (show_raw): Declare unconditionally.
396 (parse_opt): Handle '-r' unconditionally.
397 (main): Show "raw" option even without USE_DEMANGLE.
398
3992014-01-02 Mark Wielaard <mjw@redhat.com>
400
Mark Wielaard36490c92014-01-02 23:59:41 +0100401 * stack.c (print_frames): Print 0x before build-id hex-offset.
402
4032014-01-02 Mark Wielaard <mjw@redhat.com>
404
Mark Wielaard6034e2f2014-01-02 22:31:07 +0100405 * stack.c (maxframes): Increase to 2048.
406 (struct frames): Add allocated field.
407 (frame_callback): If frames used is frames allocated, realloc.
408 (print_frames): Show an error if maxframes has been reached.
409 (parse_opt): Allow -n 0 for unlimited frames.
410 (main): Document -n 0 and new default 2048 frames. Allocate initial
411 number of frames with malloc.
412
Mark Wielaard19108012013-12-30 22:00:57 +01004132013-12-30 Mark Wielaard <mjw@redhat.com>
414
415 * stack.c (parse_opt): Explicitly call dwfl_linux_proc_attach
416 or dwfl_core_file_attach and check for errors.
417
Mark Wielaarda6141d22013-12-28 23:25:54 +01004182013-12-28 Mark Wielaard <mjw@redhat.com>
419
420 * stack.c (print_frames): Remove address width code and use...
421 (get_addr_width): ...this new function.
422 (show_modules): New static boolean.
423 (module_callback): New static function.
424 (parse_opt): Handle '-l'.
425 (main): Add 'l' to options. If show_modules then use dwfl_getmodules
426 with module_callback to show all detected modules and possible
427 build_id, elf and dwarf files.
428
Mark Wielaard1f7763e2013-12-27 10:49:51 +01004292013-12-27 Mark Wielaard <mjw@redhat.com>
430
431 * stack.c (frames_shown): New static boolean.
432 (EXIT_OK,EXIT_ERROR,EXIT_BAD,EXIT_USAGES): New defines.
433 (frame_callback): Return -1 on error. Don't print error.
434 (print_frames): Add arguments, tid, dwflerr and what. Print tid.
435 If there was an error report it with address and module if possible.
436 Record whether any frames were actually printed.
437 (thread_callback): Collect tid and err, pass it to print_frames.
438 (parse_opt): Use EXIT_BAD for errors. On ARGP_KEY_END print errno
439 if dwfl_linux_proc_report returned it. Check whether we are properly
440 attached with dwfl_pid.
441 (main): Document exit status. Don't report DWARF_CB_ABORT from
442 callbacks as error. Pass real errors to print_frames. Return
443 EXIT_BAD if no frames could be shown. Return EXIT_ERROR if there
444 were any non-fatal errors.
445
Mark Wielaard99fc3f72013-12-23 00:47:06 +01004462013-12-23 Mark Wielaard <mjw@redhat.com>
447
Mark Wielaardfdb64e62013-12-23 21:19:05 +0100448 * Makefile.am (stack_LDADD): Add demanglelib.
449 * stack.c (show_quiet): New static boolean, default false.
450 (show_raw): Likewise.
451 (demangle_buffer_len): New static size_t.
452 (demangle_buffer): New static char *.
453 (print_frames): Don't resolve pc name if show_quiet. Demangle name
454 unless show_raw.
455 (parse_opt): Handle '-q' and '-r'.
456 (main): Add 'q' and 'r' to options. Free demangle_buffer.
457
4582013-12-23 Mark Wielaard <mjw@redhat.com>
459
Mark Wielaardfe9b95d2013-12-23 10:46:54 +0100460 * stack.c (OPT_DEBUGINFO): New define.
461 (OPT_COREFILE): Likewise.
462 (pid): New static.
463 (core_fd): Likewise.
464 (core): Likewise.
465 (exec): Likewise.
466 (debuginfo_path): Likewise.
467 (parse_opt): Handle '-p', '--core', '-e' and '--debuginfo-path'.
468 Do argument sanity checking. Setup Dwfl.
469 (main): Add 'p', 'core', 'e' and 'debuginfo-path' to options.
470 Remove argp_child children, simplify argp doc, remove custom
471 usage message and construction of dwfl with dwfl_standard_argp.
472 Use pid directly as tid. close core and core_fd if opened. Print
473 pid of process or core.
474
4752013-12-23 Mark Wielaard <mjw@redhat.com>
476
Mark Wielaard99fc3f72013-12-23 00:47:06 +0100477 * stack.c (show_build_id): New static boolean.
478 (print_frames): Print module build-id, load address and pc offset
479 if show_build_id is true.
480 (parse_opt): Handle '-b'.
481 (main): Add -b to options.
482
Mark Wielaard9fec14a2013-12-22 23:48:26 +01004832013-12-22 Mark Wielaard <mjw@redhat.com>
484
485 * stack.c (maxframes): New static unsigned. Initialize to 64.
486 (struct frame): New struct.
487 (struct frames): Likewise.
488 (dwfl): New static Dwfl pointer.
489 (frame_callback): Use arg as struct frames and fill it next frame.
490 Return DWARF_CB_ABORT when maxframes has been reached. Move
491 printing of frame to...
492 (print_frames): ...here. New function.
493 (thread_callback): Use arg as struct frames and set frames to zero.
494 Call print_frames.
495 (parse_opt): Handle '-n'.
496 (main): Add -n to options. Allocate frames using maxframes. Pass
497 frames to frame_callback and thread_callback.
498
Mark Wielaarde962ec32013-12-20 10:09:12 +01004992013-12-20 Mark Wielaard <mjw@redhat.com>
500
501 * stack.c (show_one_tid): New static boolean.
502 (parse_opt): Handle '-1'.
503 (main): Add -1 to options. Call dwfl_getthread_frames when
504 show_one_tid is true.
505
Mark Wielaard159ac522013-12-18 11:05:54 +01005062013-12-18 Mark Wielaard <mjw@redhat.com>
507
508 * addr2line.c (options): Add symbol-sections, 'x'.
509 (show_symbol_sections): New static bool.
510 (parse_opt): Handle 'x'.
511 (print_addrsym): Use dwfl_module_addrinfo value.r
512 Also show section of address with show_symbol_sections.
513 (find_symbol): Use dwfl_module_getsym_info and set value.
514 (handle_address): Request value and use it instead of sym.st_value.
515 * readelf.c (format_dwarf_addr): Use dwfl_module_addrinfo to get
516 name and offset.
517
Masatake YAMATOc8c610b2013-12-17 12:03:29 +09005182013-12-17 Masatake YAMATO <yamato@redhat.com>
519 Mark Wielaard <mjw@redhat.com>
520
521 * stack.c (show_activation, show_module, show_source): New variables.
522 (parse_opt): Set show_activation if -a option is given.
523 Set show_module if -m option is given. Set show_source if -s option
524 is given. Set all show booleans when -v option is given.
525 (main): Added `-a', `-m', `-s', and `-v' to the help message.
526 (frame_callback): Print module and source file information.
527
Petr Machata98c8a732013-11-26 03:10:31 +01005282013-11-25 Petr Machata <pmachata@redhat.com>
529
530 * elflint.c (valid_e_machine): Add EM_AARCH64.
531
Petr Machataa47a0962013-11-14 01:07:22 +01005322013-11-14 Petr Machata <pmachata@redhat.com>
533
534 * readelf.c (handle_core_item) <'h'>: New branch for handling
535 fields that shouldn't be displayed.
536
Mark Wielaard875cad82013-11-10 22:17:05 +01005372013-11-10 Mark Wielaard <mjw@redhat.com>
538
539 * stack.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
540 ARGP_PROGRAM_BUG_ADDRESS_DEF.
541 (print_version): New function.
542
Mark Wielaard03d76f42013-11-09 16:45:22 +01005432013-11-09 Mark Wielaard <mjw@redhat.com>
544
545 * arlib.c (arlib_init): Call snprintf before using the result
546 with memcpy.
547 (arlib_finalize): Likewise.
548 * nm.c (show_symbols_sysv): Don't modify cnt inside assert.
549
Jan Kratochvil0b867462013-05-30 14:37:38 +02005502013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com>
551
552 * Makefile.am (bin_PROGRAMS): Add stack.
553 (stack_LDADD): New.
554 * stack.c: New file.
555
Mark Wielaardbe860842013-11-05 13:37:33 +01005562013-11-05 Mark Wielaard <mjw@redhat.com>
557
558 * readelf.c (print_debug_ranges_section): Cast address to size_t
559 before comparison.
560 (print_debug_loc_section): Likewise.
561
Mark Wielaard4f7673f2013-10-18 10:37:53 +02005622013-10-18 Mark Wielaard <mjw@redhat.com>
563
564 * ar.c (main): Correct operation check when instance_specifed is set.
565
Petr Machataab224102013-09-26 00:39:34 +02005662013-09-26 Petr Machata <pmachata@redhat.com>
567
Petr Machata0c9ae0c2013-09-26 21:02:22 +0200568 * readelf.c (handle_file_note): New function.
569 (handle_notes_data): Call it to handle NT_FILE notes.
570
5712013-09-26 Petr Machata <pmachata@redhat.com>
572
Petr Machataab224102013-09-26 00:39:34 +0200573 * readelf.c (handle_siginfo_note): New function.
574 (handle_notes_data): Call it to handle NT_SIGINFO notes.
575 (buf_read_int, buf_read_ulong, buf_has_data): New functions.
576
Mark Wielaard4b9e6392013-08-13 11:40:21 +02005772013-08-13 Mark Wielaard <mjw@redhat.com>
578
579 * addr2line.c (options): Add "inlines", 'i'.
580 (show_inlines): New bool.
581 (parse_opt): Handle 'i'.
582 (print_diesym): New static function.
583 (print_src): New function taking code from...
584 (handle_address): here. Call print_src. Print inlines.
585
Mark Wielaardd0f85012013-08-12 14:21:31 +02005862013-08-12 Mark Wielaard <mjw@redhat.com>
587
588 * addr2line.c (main): If there is a newline char at end of buf,
589 then remove it.
590
Mark Wielaard35230222013-07-05 16:44:47 +02005912013-07-05 Mark Wielaard <mjw@redhat.com>
592
593 * readelf.c (print_ops): Take CU as argument, use it to print
594 parameter_ref DIE offset.
595 (struct listptr): Replace base field with cu.
596 (listptr_base): New function.
597 (compare_listptr): Use listptr_base.
598 (notice_listptr): Take CU as argument.
599 (skip_listptr_hole): Likewise.
600 (print_debug_ranges_section): Pass NULL as CU to skip_listptr_hole.
601 (print_cfa_program): Pass NULL as CU to print_ops.
602 (struct attrcb_args): Replace cu_base field with cu.
603 (attr_callback): Pass cu not cu_base to notice_listptr.
604 (print_debug_units): Don't calculate base, just set cu.
605 (print_debug_loc_section): Pass cu to skip_listptr_hole and
606 print_ops.
607
Mark Wielaard63d8bfd2013-05-06 15:48:56 +02006082013-05-06 Mark Wielaard <mjw@redhat.com>
609
610 * readelf.c (print_ops): Format first DW_OP_GNU_implicit_pointer
611 argument as DIE offset.
612
Mark Wielaardcdaaf212013-04-25 16:50:11 -04006132013-04-24 Mark Wielaard <mjw@redhat.com>
614
615 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
616
Mark Wielaarda8c7f052013-03-25 21:11:53 +01006172013-03-25 Mark Wielaard <mjw@redhat.com>
618
Mark Wielaard1a094202013-03-25 14:48:06 +0100619 * readelf.c (argp_options): Add decodedline.
620 (decodedline): New boolean initialized to false.
621 (parse_opt): Set decodedline when arg is decodedline.
622 (print_decoded_line_section): New function.
623 (print_debug_line_section): Call print_decoded_line_section when
624 decodedline is true.
625
6262013-03-25 Mark Wielaard <mjw@redhat.com>
627
Mark Wielaardb79788c2013-03-25 11:45:22 +0100628 * readelf.c (argp_option): Add decodedaranges.
629 (decodedaranges): New boolean initialized to false.
630 (parse_opt): Set decodedaranges when arg is decodedaranges.
631 (print_debug_aranges_section): Reimplemented and original
632 implementation renamed to...
633 (print_decoded_aranges_section): this.
634
6352013-03-25 Mark Wielaard <mjw@redhat.com>
636
Mark Wielaarda8c7f052013-03-25 21:11:53 +0100637 * readelf.c (attrcb_args): Add Dwarf_Die.
638 (attr_callback): When highpc is in constant form also print as
639 address.
640 (print_debug_units): Set args.die.
641
Mark Wielaard10cd97e2013-03-19 11:43:49 +01006422013-03-19 Mark Wielaard <mjw@redhat.com>
643
644 * readelf.c (print_gdb_index_section): Free format_dwarf_addr results.
645
Mark Wielaarda73fecc2013-03-18 13:54:50 +01006462013-03-18 Mark Wielaard <mjw@redhat.com>
647
648 * readelf.c (print_gdb_index_section): Accept version 8.
649
Mark Wielaarda58951b2013-03-01 11:51:58 +01006502013-03-01 Mark Wielaard <mjw@redhat.com>
651
652 * findtextrel.c (process_file): Release ELF and close file when not
653 text relocations are found.
654 * strip.c (handle_elf): Track memory used for .debuglink section data
655 and free when done.
656
Mark Wielaardb94ccea2013-02-24 22:58:49 +01006572013-02-24 Mark Wielaard <mjw@redhat.com>
658
659 * elflint.c (check_symtab): Add __bss_start__ to the list of symbols
660 allowed to have out of section values because of GNU ld bugs.
661
Mark Wielaard3bdc16c2013-02-06 16:20:17 +01006622013-02-06 Mark Wielaard <mjw@redhat.com>
663
664 * elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the
665 list of symbols allowed to have out of section values because of
666 GNU ld bugs in either .symtab or .dynsym, but only when they are
667 zero sized.
668
Mark Wielaard10186a12013-01-24 11:29:21 +01006692013-01-24 Mark Wielaard <mjw@redhat.com>
670
671 * readelf.c (argp_option): Add unresolved-address-offsets, U.
672 (print_unresolved_addresses): New static.
673 (parse_opt): Handle 'U', set print_unprocessed_values.
674 (format_dwarf_addr): Take and handle new raw argument.
675 (print_ops): Call format_dwarf_addr with raw offset values.
676 (print_debug_ranges_section): Likewise.
677 (print_debug_frame_section): Likewise.
678 (attr_callback): Likewise.
679 (print_debug_line_section): Likewise.
680 (print_debug_loc_section): Likewise.
681 (print_gdb_index_section): Likewise.
682
Mark Wielaard24257102013-01-18 22:19:08 +01006832013-01-18 Mark Wielaard <mjw@redhat.com>
684
685 * readelf.c (struct listptr): Add base Dwarf_Addr field.
686 (compare_listptr): Warn for same offset with different base.
687 (notice_listptr): Take base argument and set it.
688 (skip_listptr_hole): Likewise.
689 (struct attrcb_args): Removed unused cu_offset field.
690 Add cu_base Dwarf_Addr field.
691 (attr_callback): Call notice_listptr with cbargs->cu_base.
692 (print_debug_units): Set args.cu_base.
693 (print_debug_ranges_section): Get base and use for format_dwarf_addr.
694 (print_debug_loc_section): Likewise.
695
Jan Kratochvilc44cce02012-10-10 19:32:05 +02006962013-01-29 Jan Kratochvil <jan.kratochvil@redhat.com>
697
698 * readelf.c (handle_core_items): Limit special repeated items handling
699 to single-item formats '\n', 'b' and 'B', assert OFFSET 0 there.
700
Mark Wielaard6d258ce2013-01-16 15:19:20 +01007012012-12-18 Mark Wielaard <mark@bordewijk.wildebeest.org>
702
703 * readelf.c (ELF_INPUT_SECTION): New argp key value.
704 (argp_option): Add elf-section.
705 (elf_input_section): New static.
706 (parse_opt): Handle ELF_INPUT_SECTION and set elf_input_section.
707 (open_input_section): New function.
708 (process_file): Call open_input_section if elf_input_section set.
709
David Abdurachmanov1a4d0662013-01-13 16:44:21 +01007102013-01-13 David Abdurachmanov <David.Abdurachmanov@cern.ch>
711
712 ar.c (do_oper_delete): Fix num passed to memset.
713
Mark Wielaard55324042012-12-21 10:02:11 +01007142012-12-21 Mark Wielaard <mjw@redhat.com>
715
Mark Wielaard00f758c2012-12-21 22:11:44 +0100716 * readelf.c (print_debug_frame_section): Adjust FDE start address
717 if pcrel before feeding it to format_dwarf_addr.
718
7192012-12-21 Mark Wielaard <mjw@redhat.com>
720
721 * addr2line.c (main): Call dwfl_end.
Mark Wielaard55324042012-12-21 10:02:11 +0100722
Roland McGrath57bd66c2012-12-11 09:42:07 -08007232012-12-11 Roland McGrath <roland@hack.frob.com>
724
725 * nm.c (show_symbols_sysv): Fix size passed to snprintf for invalid
726 sh_name case.
727 Reported by David Abdurachmanov <David.Abdurachmanov@cern.ch>.
728
Mark Wielaard7e3bd4f2012-11-16 12:25:04 +01007292012-10-16 Mark Wielaard <mjw@redhat.com>
730
731 * readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are
732 calculated beginning after the operand and 2-byte constant.
733
Jan Kratochvil4bdbb672012-10-10 22:27:58 +02007342012-10-12 Jan Kratochvil <jan.kratochvil@redhat.com>
735
736 * readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ...
737 (WRAP_COLUMN): ... here.
738 (print_core_item): Remove parameter format_max. Update function
739 comment. Replace FORMAT_MAX by the real output width.
740 (handle_core_item): Remove the FORMAT_MAX values in TYPES, DO_TYPE,
741 calls of print_core_item, remove variable maxfmt, change
742 ITEM_WRAP_COLUMN to WRAP_COLUMN.
743 (handle_core_register): Remove the FORMAT_MAX values in TYPES, BITS,
744 calls of print_core_item, change REGISTER_WRAP_COLUMN to WRAP_COLUMN.
745
Roland McGrath82ed98a2012-10-11 14:53:18 -07007462012-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
747
748 * readelf.c (handle_core_item) <b>: Make run an outer block variable.
749 Increase run only if LASTBIT != 0. Print last element only if RUN > 0.
750
Mark Wielaarde89c5002012-08-27 14:30:05 +02007512012-08-27 Mark Wielaard <mjw@redhat.com>
752
Mark Wielaard3e440062012-08-27 15:21:58 +0200753 * readelf.c (print_debug_macro_section): Print offset as PRIx64.
754
7552012-08-27 Mark Wielaard <mjw@redhat.com>
756
Mark Wielaarde89c5002012-08-27 14:30:05 +0200757 * readelf.c (register_info): Handle loc == NULL.
758
Jeff Kenton257dcf42012-08-22 09:00:03 -04007592012-08-22 Jeff Kenton <jkenton@tilera.com>
760
761 * elflint.c (valid_e_machine): Add EM_TILEGX and EM_TILEPRO.
762
Mark Wielaardf31c4412012-08-17 00:35:03 +02007632012-08-16 Mark Wielaard <mjw@redhat.com>
764
765 * readelf.c (dwarf_tag_name): Renamed from dwarf_tag_string.
766 Uses new dwarf_tag_string or adds ??? or lo_user+%#x when
767 appropriate.
768 (dwarf_attr_name): Likewise.
769 (dwarf_form_name): Likewise.
770 (dwarf_lang_name): Likewise.
771 (dwarf_inline_name): Likewise.
772 (dwarf_encoding_name): Likewise.
773 (dwarf_access_name): Likewise.
774 (dwarf_visibility_name): Likewise.
775 (dwarf_virtuality_name): Likewise.
776 (dwarf_identifier_case_name): Likewise.
777 (dwarf_calling_convention_name): Likewise.
778 (dwarf_ordering_name): Likewise.
779 (dwarf_discr_list_name): Likewise.
780 (print_ops): Remove KNOWN. Use dwarf_locexpr_opcode_string.
781 (attr_callback): Call new dwarf_foobar_name instead of old
782 dwarf_foobar_string functions.
783 (dwarf_tag_string): New function using known-dwarf.h macros.
784 (dwarf_attr_string): Likewise.
785 (dwarf_form_string): Likewise.
786 (dwarf_lang_string): Likewise.
787 (dwarf_inline_string): Likewise.
788 (dwarf_encoding_string): Likewise.
789 (dwarf_access_string): Likewise.
790 (dwarf_visibility_string): Likewise.
791 (dwarf_virtuality_string): Likewise.
792 (dwarf_identifier_case_string): Likewise.
793 (dwarf_calling_convention_string): Likewise.
794 (dwarf_ordering_string): Likewise.
795 (dwarf_discr_list_string): Likewise.
796 (dwarf_locexpr_opcode_string): Likewise.
797
Mark Wielaard775375e2012-06-22 12:02:45 +02007982012-06-27 Mark Wielaard <mjw@redhat.com>
799
800 * readelf.c (dwarf_form_string): Handle DW_FORM_GNU_ref_alt and
801 DW_FORM_GNU_strp_alt.
802 (attr_callback): Likewise.
803
Petr Machatafe198bc2012-07-30 19:48:28 +02008042012-07-30 Petr Machata <pmachata@redhat.com>
805
806 * nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and
807 corresponding printf) so that those that are referenced by only
808 one of the formatting strings are at the end.
809
Mark Wielaard629b2562012-07-29 14:05:20 +02008102012-07-29 Mark Wielaard <mjw@redhat.com>
811
812 * readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc.
813 (print_ops): Use known[op], not op_name, for DW_OP_GNU_parameter_ref.
814
Mark Wielaard515fba92012-07-20 00:09:56 +02008152012-07-19 Mark Wielaard <mjw@redhat.com>
816
817 * readelf.c (print_ops): Handle DW_OP_GNU_parameter_ref.
818
Mark Wielaarde9b23882012-06-29 22:30:15 +02008192012-07-11 Mark Wielaard <mjw@redhat.com>
820
821 * readelf.c (options): Add macro to help of debug-dump.
822 (section_e): Add section_macro.
823 (section_all): Add section_macro.
824 (parse_opt): Handle macro.
825 (print_debug_macro_section): New function.
826 (print_debug): Add NEW_SECTION (macro).
827
Mark Wielaard84a1e0b2012-06-29 23:38:09 +02008282012-07-10 Mark Wielaard <mjw@redhat.com>
829
830 * readelf.c (print_gdb_index_section): Add version 7 support.
831 Keep track of cu_nr. Print kind and static/global flag for each
832 symbol. When a symbol is in the TU list add 'T'.
833
Mark Wielaarda0172d72012-06-25 17:18:53 +02008342012-06-26 Mark Wielaard <mjw@redhat.com>
835
836 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros.
837
Mark Wielaard50e2d392012-06-22 16:44:54 +02008382012-06-22 Mark Wielaard <mjw@redhat.com>
839
840 * readelf.c (print_ops): Cast printf PRIu/x64 arguments to uint64_t
841 for gcc 4.7 -Wformat.
842
Mark Wielaard36aa5982012-05-09 11:27:44 +02008432012-05-09 Roland McGrath <roland@hack.frob.com>
844
845 * elflint (check_sections): Allow zero sized sections at (filesz) end
846 of segment. And make check overflow-proofed.
847
Mark Wielaard716486d2012-04-24 11:56:42 +02008482012-04-24 Mark Wielaard <mjw@redhat.com>
849
850 * readelf.c (print_ops): Add DW_OP_GNU_push_tls_address,
851 DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr.
852
Roland McGrath738c1832012-03-28 15:01:49 -07008532012-03-28 Roland McGrath <roland@hack.frob.com>
854
855 * elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections.
856
Mark Wielaard61651c12012-03-28 11:20:36 +02008572012-03-28 Mark Wielaard <mjw@redhat.com>
858
859 * readelf.c (print_debug_abbrev_section): Check there is Dwarf
860 section data.
861 (print_debug_str_section): Likewise.
862
Mark Wielaard30bb7142012-03-21 16:05:31 +01008632012-03-21 Mark Wielaard <mjw@redhat.com>
864
865 * readelf.c (print_gdb_index_section): Accept version 6.
866
Mark Wielaardcb643d62012-01-31 19:22:03 +01008672012-01-31 Mark Wielaard <mjw@redhat.com>
868
869 * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset.
870
Ulrich Drepperc6b3d0c2012-01-21 18:14:39 -05008712012-01-21 Ulrich Drepper <drepper@gmail.com>
872
Ulrich Drepper3a64a302012-01-21 18:19:24 -0500873 * addr2line.c: Update copyright year.
874 * ar.c: Likewise.
875 * elfcmp.c: Likewise.
876 * elflint.c: Likewise.
877 * findtextrel.c: Likewise.
878 * ld.c: Likewise.
879 * nm.c: Likewise.
880 * objdump.c: Likewise.
881 * ranlib.c: Likewise.
882 * readelf.c: Likewise.
883 * size.c: Likewise.
884 * strings.c: Likewise.
885 * strip.c: Likewise.
886 * unstrip.c: Likewise.
887
Ulrich Drepperc6b3d0c2012-01-21 18:14:39 -0500888 * nm.c (argp_children): Define.
889 (argp): Hook up argp_children.
890 (handle_ar): Optimize puts call.
891 (show_symbols_bsd): Use positional parameters to also print color
892 codes. Don't print STT_FILE symbols.
893 * objdump.c (options): Improve help text.
894 (argp_children): Define.
895 (argp): Hook up argp_children.
896 (disasm_info): Add elements for color codes.
897 (disasm_output): Print color codes as well.
898 (show_disasm): Set up disasm_info data for callback.
899
Roland McGrath85924782012-01-20 11:40:59 -08009002012-01-20 Roland McGrath <roland@hack.frob.com>
901
Roland McGrath3284b792012-01-20 12:51:46 -0800902 * arlib-argp.c (arlib_deterministic_output): Initialize from
903 configured value.
904 (help_filter): New function.
905 (argp): Use it.
906
Roland McGrath9bffd362012-01-20 12:04:19 -0800907 * ar.c (main): Handle oper_none as usage error.
908
Roland McGrath6e063d92012-01-20 11:43:36 -0800909 * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D.
910
Roland McGrath85924782012-01-20 11:40:59 -0800911 * ranlib.c (argp): Use arlib_argp_children.
912
913 * arlib.c (arlib_init): Obey arlib_deterministic_output.
914
915 * arlib-argp.c: New file.
916 * Makefile.am (libar_a_SOURCES): Add it.
917 * arlib.h (arlib_deterministic_output, arlib_argp_children):
918 Declare new variables.
919 * ar.c (deterministic_output): Variable removed.
920 (do_oper_insert): Use arlib_deterministic_output instead.
921 (options, parse_opt): Don't handle -D here. Add group numbers.
922 (argp): Use arlib_argp_children.
923
Roland McGratha065c4b2011-12-20 10:55:01 -08009242011-12-20 Roland McGrath <roland@hack.frob.com>
925
926 * readelf.c (print_debug): Initialize DUMMY_DBG.elf.
927 Reported by Karel Klic <kklic@redhat.com>.
928
Roland McGrath4fa988e2011-11-05 20:58:14 -07009292011-11-05 Roland McGrath <roland@hack.frob.com>
930
Roland McGrathe5ba2a12011-11-05 21:08:07 -0700931 * ar.c (deterministic_output): New flag variable.
932 (options, parse_opt): Grok -D to set it.
933 (do_oper_insert): When set, use zero from mtime, uid, and gid.
934
Roland McGrath4fa988e2011-11-05 20:58:14 -0700935 * ar.c (do_oper_insert): Fix check on elf_rawfile return value.
936
Marek Polacek8d1e2972011-10-04 05:11:42 -04009372011-10-04 Marek Polacek <mpolacek@redhat.com>
938
939 * readelf.c (register_info): Assume the right size of an array.
940
Ulrich Drepper2356ba02011-10-03 07:23:07 -04009412011-10-03 Ulrich Drepper <drepper@gmail.com>
942
943 * nm.c: Recognize option --mark-special. Still recognize --mark-weak
944 but don't show it in help anymore.
945 (mark_special): Renamed from mark_weak.
946 (parse_opt): Adjust.
947 (class_type_char): Take additional parameters for ELF file and ELF
948 header. Treat TLS symbols like objects.
949 In case of D symbols, show u for unique symbols, R for symbols in
950 read-only sections, B for symbols in BSS sections.
Ulrich Drepper21b5d4c2011-10-03 16:08:33 -0400951 (show_symbols_bsd): Take additional parameters for ELF file and ELF
Ulrich Drepper2356ba02011-10-03 07:23:07 -0400952 header. Adjust for class_type_char change. Show TLS symbols with
953 @ after them in case --mark-special is selected.
954 (show_symbols_posix): Likewise.
955 (show_symbols): Adjust calls to show_symbols_bsd and
956 show_symbols_posix.
Ulrich Drepper66f4c372011-10-03 15:53:12 -0400957 (show_symbols_sysv): Avoid printing adress and size for undefined
Ulrich Drepper21b5d4c2011-10-03 16:08:33 -0400958 symbols. Don't print initial special entry and section entries.
Ulrich Drepper2356ba02011-10-03 07:23:07 -0400959
Ulrich Drepperb4a16cf2011-10-02 08:33:19 -04009602011-10-02 Ulrich Drepper <drepper@gmail.com>
961
962 * Makefile.am (demanglelib): Define.
963 (nm_LDADD): Add demanglelib.
964 * nm.c (options): Add -C option.
965 (demangle): Define as global variable.
966 (parse_opt): Recognize -C.
967 (show_symbols_sysv): Handle demangling.
968 (show_symbols_bad): Likewise.
969 (show_symbols_posix): Likewise.
970 (show_symbols): Likewise.
971
Roland McGrathb0a0e0d2011-07-09 03:20:16 -07009722011-07-09 Roland McGrath <roland@hack.frob.com>
973
Roland McGrathbd754192011-07-09 05:33:37 -0700974 * readelf.c (options, parse_opt): Grok -W/--wide and ignore it.
975
976 * ar.c (parse_opt): Grok -u.
Roland McGrathb0a0e0d2011-07-09 03:20:16 -0700977
Mark Wielaard02a958b2011-05-30 17:23:57 +02009782011-05-30 Mark Wielaard <mjw@redhat.com>
979
980 * strip.c (relocate): Make offset check overflow-proof.
981
Mark Wielaard1662bc32011-05-16 11:33:11 +02009822011-05-23 Mark Wielaard <mjw@redhat.com>
983
Mark Wielaard63868c22011-05-24 16:09:31 +0200984 * strip.c (relocate): Take new arguments is_rela to indicate
Roland McGrathb0a0e0d2011-07-09 03:20:16 -0700985 whether the relocation is from a SHT_REL or SHT_RELA section.
Mark Wielaard63868c22011-05-24 16:09:31 +0200986 Relocate against any debug section symbol, not just STT_SECTION
987 symbols. For SHT_REL relocations, fetch addend from offset and
988 add it to symbol value if not zero.
989
9902011-05-23 Mark Wielaard <mjw@redhat.com>
991
Mark Wielaard1662bc32011-05-16 11:33:11 +0200992 * strip.c (OPT_RELOC_DEBUG): New option.
993 (argp_option): Add new --reloc-debug-sections option.
994 (main): Check new option.
995 (parse_opt): Likewise.
996 (handle_elf): Remove any relocations between debug sections
997 in ET_REL for the debug file when requested.
998
Mark Wielaard7a125b92011-05-17 12:20:01 +02009992011-05-18 Mark Wielaard <mjw@redhat.com>
1000
1001 * strip.c (handle_elf): Make sure all sections of a removed group
1002 section are removed too. Don't discard SHT_GROUP sections, copy
1003 section table before it gets modified. Section group signature
1004 symbols don't have to be retained.
1005
Jakub Jelinek03124242011-05-17 17:00:14 +020010062011-05-16 Jakub Jelinek <jakub@redhat.com>
1007
1008 * readelf.c (print_ops): Handle DW_OP_GNU_const_type,
1009 DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert
1010 and DW_OP_GNU_reinterpret.
1011
Mark Wielaard69a9b112011-05-17 15:34:02 +020010122011-05-17 Mark Wielaard <mjw@redhat.com>
1013
1014 * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and
1015 DW_TAG_GNU_call_site_parameter return strings.
1016
Marek Polacekc8920de2011-05-12 12:08:21 +020010172011-05-11 Marek Polacek <mpolacek@redhat.com>
1018
1019 * nm.c (show_symbols_sysv): Remove unused if/else, remove
1020 unused `prefix' and `fname' parameters.
1021
Marek Polacek82f77d72011-05-07 19:26:20 +020010222011-05-07 Marek Polacek <mpolacek@redhat.com>
1023
1024 * unstrip.c (compare_sections_nonrel): Mark this function as static.
1025
Mark Wielaardbb9d1b42011-04-24 17:53:38 +020010262011-04-26 Mark Wielaard <mjw@redhat.com>
1027
1028 * readelf.c (handle_notes_data): Call ebl_object_note_type_name
1029 with note name.
1030
Mark Wielaard093a1d32011-04-14 23:47:26 +020010312011-04-14 Mark Wielaard <mjw@redhat.com>
1032
1033 * readelf.c (options): Add gdb_index.
1034 (section_e): Define section_gdb_index.
1035 (parse_opt): Recognize gdb_index debug-dump argument.
1036 (print_gdb_index_section): New function.
1037 (print_debug): Add gdb_index to debug_sections.
1038
Petr Machata1879e5b2011-03-25 15:17:04 +010010392011-03-24 Petr Machata <pmachata@redhat.com>
1040
1041 * readelf.c (print_debug_line_section): Emit initial space for all
1042 opcode lines. Print offset in front of each opcode.
1043
Marek Polacek44de92a2011-03-22 01:07:20 +010010442011-03-22 Marek Polacek <mpolacek@redhat.com>
1045
1046 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case.
1047
Mark Wielaarde3368c52011-03-22 23:03:31 +010010482011-03-22 Mark Wielaard <mjw@redhat.com>
1049
1050 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site
1051 and DW_TAG_GNU_call_site_parameter.
1052 (dwarf_attr_string): Support DW_AT_GNU_call_site_value,
1053 DW_AT_GNU_call_site_data_value,
1054 DW_AT_GNU_call_site_target,
1055 DW_AT_GNU_call_site_target_clobbered,
1056 DW_AT_GNU_tail_call,
1057 DW_AT_GNU_all_tail_call_sites,
1058 DW_AT_GNU_all_call_sites,
1059 and DW_AT_GNU_all_source_call_sites.
1060 (print_ops): Handle DW_OP_GNU_entry_value.
1061 (attr_callback): Handle DW_AT_GNU_call_site_value,
1062 DW_AT_GNU_call_site_data_value,
1063 DW_AT_GNU_call_site_target,
1064 and DW_AT_GNU_call_site_target_clobbered.
1065
Mark Wielaarda062b6b2011-03-10 13:02:32 +010010662011-03-10 Mark Wielaard <mjw@redhat.com>
1067
1068 * elflint.c (check_symtab): Use ebl_check_st_other_bits.
1069
Jan Kratochvilfec39992011-02-27 12:01:25 -080010702011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
1071
1072 * readelf.c (reset_listptr): Clear TABLE->TABLE.
1073
Mark Wielaardcf454ab2011-02-25 12:58:54 +010010742011-02-25 Mark Wielaard <mjw@redhat.com>
1075
1076 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
1077 (dwarf_form_string): Properly format and return unknown form.
1078
Roland McGrath47c53232011-02-23 09:23:08 -080010792011-02-23 Roland McGrath <roland@redhat.com>
1080
Roland McGrath725aad52011-02-23 19:52:46 -08001081 * readelf.c (section_name): New function.
1082 (print_debug_abbrev_section): Use it instead of constant.
1083 (print_debug_aranges_section): Likewise.
1084 (print_debug_ranges_section): Likewise.
1085 (print_debug_units): Likewise.
1086 (print_debug_line_section): Likewise.
1087 (print_debug_loc_section): Likewise.
1088 (print_debug_macinfo_section): Likewise.
1089 (print_debug_pubnames_section): Likewise.
1090 (print_debug_str_section): Likewise.
1091 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too.
1092 (print_debug_abbrev_section): Use decoded d_size, not sh_size.
1093 (print_debug_str_section): Likewise.
1094
Roland McGrath47c53232011-02-23 09:23:08 -08001095 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
1096
Roland McGrath1fb9c912011-02-11 10:32:30 -080010972011-02-11 Roland McGrath <roland@redhat.com>
1098
Roland McGrath4a14ef72011-02-11 10:42:45 -08001099 * elfcmp.c (verbose): New variable.
1100 (options, parse_opt): Grok -l/--verbose to set it.
1101 (main): Under -l, keep going after first difference.
1102
Roland McGrath1fb9c912011-02-11 10:32:30 -08001103 * elfcmp.c (ignore_build_id): New variable.
1104 (options, parse_opt): Grok --ignore-build-id to set it.
1105 (main): For SHT_NOTE sections, compare note details rather than raw
1106 bytes. Under --ignore-build-id, don't complain about differing build
1107 ID contents if lengths match.
1108
Roland McGrathfd992542011-02-08 19:45:12 -080011092011-02-08 Roland McGrath <roland@redhat.com>
1110
Roland McGrath240784b2011-02-08 19:48:42 -08001111 * ldscript.y (filename_id_star): Remove unused variable.
1112
Roland McGrath8f6c1792011-02-08 19:48:02 -08001113 * unstrip.c (copy_elided_sections): Remove unused variable.
1114
Roland McGrath4db89f02011-02-08 19:46:50 -08001115 * elflint.c (check_dynamic): Remove unused variables.
1116
Roland McGrath33231312011-02-08 19:45:26 -08001117 * elflint.c (check_symtab): Warn about missing xndx section only once.
1118
Roland McGrathfd992542011-02-08 19:45:12 -08001119 * ldgeneric.c (check_for_duplicate2): Remove unused variable.
1120
Roland McGrathf151b7d2011-01-06 12:14:43 -080011212011-01-06 Roland McGrath <roland@redhat.com>
1122
1123 * strip.c (handle_elf): Under --strip-sections, remove all
1124 non-allocated sections and never generate .gnu_debuglink.
1125
Roland McGrath0b9d1fb2011-01-04 19:29:24 -080011262011-01-04 Roland McGrath <roland@redhat.com>
1127
1128 * strip.c (remove_shdrs): New variable.
1129 (options, parse_opt): Grok --strip-sections to set it.
1130 (handle_elf): When that's set, truncate off .shstrtab and shdrs.
1131
Roland McGrath77221de2010-11-10 19:47:31 -080011322010-11-10 Roland McGrath <roland@redhat.com>
1133
1134 * findtextrel.c (process_file): Don't assume order of sections.
1135 Reported by Mike Hommey <mh@glandium.org>.
1136
Roland McGrath932585d2010-05-08 04:01:14 -070011372010-07-26 Roland McGrath <roland@redhat.com>
1138
1139 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer.
1140
Roland McGratha1599152010-08-30 04:04:37 -070011412010-08-30 Roland McGrath <roland@redhat.com>
1142
Roland McGrathfa144952010-08-30 19:22:41 -07001143 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses.
1144 * readelf.c (parse_opt): Add section_info to implicit_debug_sections
1145 for ranges, loc.
1146 (struct listptr, struct listptr_table): New types.
1147 (compare_listptr, reset_listptr, sort_listptr): New functions.
1148 (notice_listptr, skip_listptr_hole): New functions.
1149 (struct attrcb_args): Add silent member.
1150 (attr_callback): Call notice_listptr for loclistptr and rangelistptr.
1151 Suppress output if silent, but still call notice_listptr.
1152 (print_debug_units): Suppress output if section_info not requested.
1153 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole.
1154 (print_debug_ranges_section): Likewise.
1155 (print_debug): Call reset_listptr on both tables.
1156
1157 * readelf.c (print_debug_ranges_section): Print empty list.
1158 (print_debug_loc_section): Likewise.
1159
Roland McGratha1599152010-08-30 04:04:37 -07001160 * readelf.c (print_debug_loc_section): Check for bogus length
1161 before calling print_ops.
1162 (print_ops): Check harder for bogus data that would read off end.
1163
Roland McGrathf4763cf2010-08-11 13:04:12 -070011642010-08-11 Roland McGrath <roland@redhat.com>
1165
1166 * readelf.c (for_each_section_argument): Process all sections with
1167 matching name, not just the first.
1168
Roland McGrath52604ba2010-07-26 21:29:44 -070011692010-07-26 Roland McGrath <roland@redhat.com>
1170
1171 * readelf.c (print_ops): Take new argument for CU version.
1172 Fix DW_OP_call_ref decoding to depend on it.
1173 (print_debug_loc_section): Update caller.
1174 (print_cfa_program): Take new argument, pass it down.
1175 (print_debug_frame_section): Update caller.
1176 (struct attrcb_args): New member version.
1177 (print_debug_units): Initialize it.
1178
Roland McGrath2f14a312010-07-02 11:16:25 -070011792010-07-02 Roland McGrath <roland@redhat.com>
1180
1181 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for
1182 initial_location.
1183
Roland McGrathb6458032010-06-30 11:57:19 -070011842010-06-30 Roland McGrath <roland@redhat.com>
1185
1186 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO.
1187 Ignore st_size for a non-S_ISREG file descriptor.
1188 (read_block): Move assert after no-mmap bail-out.
1189 (read_block_no_mmap): Fix size calculations for moving buffer remnant.
1190
Roland McGrathfa799902010-06-22 13:05:23 -070011912010-06-22 Roland McGrath <roland@redhat.com>
1192
1193 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa.
1194
Roland McGrath0c5638c2010-06-21 23:00:35 -070011952010-06-21 Roland McGrath <roland@redhat.com>
1196
1197 * readelf.c (dwarf_tag_string): Handle new v4 tags.
Roland McGrath474cb482010-06-22 00:10:54 -07001198 (dwarf_attr_string): Add new attributes.
1199 (dwarf_tag_string): Handle DW_TAG_GNU_*.
Roland McGrath0c5638c2010-06-21 23:00:35 -07001200
1201 * readelf.c (print_ops): Use 64-bit types for LEB128 operands.
1202 (print_cfa_program): Likewise.
1203
Roland McGrathe5251a12010-06-20 16:59:39 -070012042010-06-20 Roland McGrath <roland@redhat.com>
1205
Roland McGrath2b1f0952010-06-20 17:55:50 -07001206 * readelf.c (print_debug_units): New function, broken out of ...
1207 (print_debug_info_section): ... here. Call it.
1208 (print_debug_types_section): New function.
1209 (enum section_e): Add section_types alias for section_info.
1210 (print_debug): Add types to the sections table.
1211
Roland McGrath599f7f52010-06-20 17:12:43 -07001212 * readelf.c (print_debug_frame_section): Handle version 4 format.
1213
Roland McGrathe5251a12010-06-20 16:59:39 -07001214 * readelf.c (print_debug_line_section): Handle version 4 format.
1215
Roland McGrathec86e5f2010-06-14 17:44:38 -070012162010-06-14 Roland McGrath <roland@redhat.com>
1217
1218 * unstrip.c (copy_elided_sections): Make sure all sections' data have
1219 been read in before we write anything out.
1220
Roland McGrath3b1b6512010-06-04 02:26:30 -070012212010-06-04 Roland McGrath <roland@redhat.com>
1222
Roland McGrathaa32f922010-06-04 02:29:08 -07001223 * unstrip.c (update_shdr): New function.
1224 (update_sh_size): Call it instead of gelf_update_shdr.
1225 (adjust_relocs, add_new_section_symbols): Likewise.
1226 (new_shstrtab, copy_elided_sections): Likewise.
1227
Roland McGrath3b1b6512010-06-04 02:26:30 -07001228 * unstrip.c (copy_elided_sections): Bail if stripped file has more
1229 sections than unstripped file, rather than getting confused later.
1230
Roland McGrath7a5bed82010-06-01 13:44:00 -070012312010-06-01 Roland McGrath <roland@redhat.com>
1232
Roland McGrath7fac1ce2010-06-01 15:56:58 -07001233 * readelf.c (dwarf_form_string): Handle DWARF 4 forms.
1234 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
Roland McGrathc8a06732010-06-01 19:52:39 -07001235 DW_FORM_sec_offset, DW_FORM_ref_sig8.
Roland McGrath7fac1ce2010-06-01 15:56:58 -07001236
Roland McGrath7a5bed82010-06-01 13:44:00 -07001237 * readelf.c (print_debug): Don't bail if libdw setup fails.
1238 Suppress complaint if we only want .eh_frame anyway.
1239
Ulrich Drepper173ade82010-05-28 07:39:49 -070012402010-05-28 Ulrich Drepper <drepper@redhat.com>
1241
1242 * readelf.c (attr_callback): Also print form information.
1243
Roland McGrath12e3d1f2010-05-19 18:03:31 -070012442010-05-19 Roland McGrath <roland@redhat.com>
1245
1246 * addr2line.c (find_symbol): Short-circuit on empty name.
1247 (handle_address): Handle SYMBOL with no +OFFSET.
1248
Roland McGrath688f7fc2010-05-08 03:22:59 -070012492010-05-08 Roland McGrath <roland@redhat.com>
1250
1251 * readelf.c (print_ops): Take new arg OFFSET_SIZE.
1252 Use that for DW_OP_call_ref, not ADDRSIZE.
1253 (print_cfa_program): Update caller.
1254 (struct attrcb_args): Add offset_size field.
1255 (attr_callback): Use it for print_ops call.
1256 (print_debug_info_section): Initialize it.
Roland McGrath932585d2010-05-08 04:01:14 -07001257 (print_ops): Likewise.
Roland McGrath50aa8d12010-06-01 11:22:36 -07001258
Roland McGrath62b28b62010-04-14 11:54:06 -070012592010-04-14 Roland McGrath <roland@redhat.com>
1260
1261 * readelf.c (handle_core_item): Fix bitmask printing.
1262
Roland McGrath3b495d82010-04-06 12:58:32 -070012632010-04-06 Roland McGrath <roland@redhat.com>
1264
1265 * ld.c (options): Fix some typos in messages.
1266 * elflint.c (check_scn_group, check_group): Likewise.
1267 * ldscript.y (add_id_list): Likewise.
1268 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
1269 before translated string containing a literal %.
1270
Roland McGrath890081b2010-02-26 17:57:50 -080012712010-02-26 Roland McGrath <roland@redhat.com>
1272
1273 * readelf.c (process_file): Don't leak an fd in failure case.
1274
Roland McGrathc2b26f12010-02-15 15:16:15 -080012752010-02-15 Roland McGrath <roland@redhat.com>
1276
Roland McGrath22359e22010-02-15 15:57:03 -08001277 * Makefile.am: Use config/eu.am for common stuff.
1278
Roland McGrathc2b26f12010-02-15 15:16:15 -08001279 * readelf.c (print_debug_frame_section): Add a cast to avoid sign
1280 mismatch in comparison.
1281
Roland McGrathf920fd52010-02-02 15:50:15 -080012822010-02-02 Roland McGrath <roland@redhat.com>
1283
1284 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
1285 (read_encoded): Likewise.
1286 (print_debug_frame_section): Check for bogus augmentation length.
1287 For P augmentation, use read_encoded, print the encoding description,
1288 and use hex for unsigned values.
1289
Roland McGrathb337b1f2010-01-15 01:02:27 -080012902010-01-15 Roland McGrath <roland@redhat.com>
1291
1292 * ar.c: Include <sys/stat.h>.
1293 * elflint.c: Likewise.
1294 * readelf.c: Likewise.
1295 * strip.c: Likewise.
1296 * unstrip.c: Likewise
1297
Roland McGrathbd733ca2010-01-07 20:11:42 -080012982010-01-07 Roland McGrath <roland@redhat.com>
1299
Roland McGrath8111da02010-01-07 20:31:59 -08001300 * readelf.c (print_ehdr): Handle PN_XNUM.
1301 (phnum): New static variable.
1302 (process_elf_file): Set it with elf_getphdrnum.
1303 (print_phdr): Use phnum instead of EHDR->e_phnum.
1304 (print_dynamic, handle_notes): Likewise.
1305 (handle_relocs_rel, handle_relocs_rela): Likewise.
1306
Roland McGrathbd733ca2010-01-07 20:11:42 -08001307 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
1308
1309 * elflint.c (phnum): New static variable.
1310 (check_elf_header): Set it, handling PN_XNUM.
1311 Use that in place of EHDR->e_phnum throughout.
1312 (check_symtab, check_reloc_shdr, check_dynamic): Likewise.
1313 (unknown_dependency_p, check_sections, check_program_header): Likewise.
1314
Roland McGrath019d9fb2010-01-05 13:36:07 -080013152010-01-05 Roland McGrath <roland@redhat.com>
1316
1317 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
1318 DW_AT_GNU_template_name.
1319
Roland McGrathe4061d02010-01-04 20:25:09 -080013202010-01-04 Roland McGrath <roland@redhat.com>
1321
Roland McGrath0ccbbcd2010-01-04 21:59:07 -08001322 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
1323 (handle_core_note): Pass NHDR and NAME to ebl_core_note.
1324 (handle_core_item): Handle .format of '\n' as \n-separated strings.
1325
Roland McGrath2e79deb2010-01-04 20:36:10 -08001326 * readelf.c (implicit_debug_sections): New variable.
1327 (parse_opt): Set it instead of print_debug_sections for -a.
1328 OR them together for print_debug check.
1329 (print_debug): OR them together for section check.
1330
Roland McGratha7422be2010-01-04 20:29:33 -08001331 * readelf.c (options): Repartition into set implied by -a and others.
1332 Correct -a text to match reality.
1333
Roland McGrathe4061d02010-01-04 20:25:09 -08001334 * readelf.c (struct section_argument): Add bool member 'implicit'.
1335 (parse_opt): Set it for -a cases, clear it for -x args.
1336 (for_each_section_argument): Don't complain about a missing section by
1337 name if it's implicit.
1338
Roland McGrathefa64962009-11-16 01:50:58 -080013392009-11-16 Roland McGrath <roland@redhat.com>
1340
1341 * readelf.c (print_string_section): Punt SHT_NOBITS like empty
1342 sections, just as dump_data_section already does.
1343
Mark Wielaardc49d00a2009-09-21 16:47:07 -070013442009-09-21 Ulrich Drepper <drepper@redhat.com>
1345
1346 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be
1347 set for .comment section.
1348 Patch by Mark Wielaard <mjw@redhat.com>.
1349
Roland McGrathfb33c672009-09-08 00:21:18 -070013502009-09-08 Roland McGrath <roland@redhat.com>
1351
1352 * ar.c (main): Fix typo in message format.
1353
Roland McGrath2d13ea22009-08-21 03:16:32 -070013542009-08-21 Roland McGrath <roland@redhat.com>
1355
1356 * readelf.c (attr_callback): Use print_block only when we don't use
1357 print_ops.
1358
Roland McGrath536127f2009-08-14 13:10:09 -070013592009-08-14 Roland McGrath <roland@redhat.com>
1360
1361 * ar.c (do_oper_extract): Use pathconf instead of statfs.
1362
Ulrich Drepper9ccf76a2009-08-01 10:07:24 -070013632009-08-01 Ulrich Drepper <drepper@redhat.com>
1364
1365 * debugpred.h: Add two most const.
1366
Mark Wielaardbc1b92e2009-07-26 08:33:18 -070013672009-07-26 Mark Wielaard <mjw@redhat.com>
1368
1369 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
1370
Mark Wielaard79178202009-07-25 12:44:46 -070013712009-07-25 Mark Wielaard <mjw@redhat.com>
1372
1373 * Makefile.am (addr2line_LDADD): Add $(libelf).
1374
Roland McGrathbe4589d2009-07-24 16:23:12 -070013752009-07-24 Roland McGrath <roland@redhat.com>
1376
1377 * readelf.c (print_block): New function.
1378 (print_ops): Use it.
1379 (attr_callback): Use it for DW_FORM_block* forms.
1380
Mark Wielaarddaf85b22009-07-24 15:49:51 -070013812009-07-20 Mark Wielaard <mjw@redhat.com>
1382
1383 * readelf.c (print_ops): Add handling of DW_OP_implicit_value
1384 and DW_OP_stack_value.
1385
Ulrich Drepper96d950e2009-07-14 10:42:01 -070013862009-07-14 Ulrich Drepper <drepper@redhat.com>
1387
1388 * elflint.c (check_elf_header): Allow Linux ABI.
1389 (check_symtab): Handle STB_GNU_UNIQUE.
1390
Mark Wielaardf735db12009-07-08 19:18:53 +020013912009-07-08 Mark Wielaard <mjw@redhat.com>
1392
1393 * readelf.c (attr_callback): Handle DW_Form constants for
1394 DW_AT_data_member_location.
1395
Roland McGrathdffc33d2009-07-06 16:06:41 -070013962009-07-06 Roland McGrath <roland@redhat.com>
1397
1398 * readelf.c (register_info): New function. Handle unknown register #s.
1399 (print_cfa_program): Use it.
1400 (handle_core_register, handle_core_registers): Likewise.
1401
Roland McGrath5dbccdb2009-06-28 14:48:02 -070014022009-06-28 Roland McGrath <roland@redhat.com>
1403
1404 * readelf.c (print_address_names): New static variable.
1405 (options, parse_opt): Grok -N/--numeric-addresses to clear it.
1406 (format_dwarf_addr): Don't look up name if !print_address_names.
1407
Ulrich Drepperf1894932009-06-13 15:55:42 -070014082009-06-13 Ulrich Drepper <drepper@redhat.com>
1409
1410 * ldgeneric.c: Don't use deprecated libelf functions.
1411 * nm.c: Likewise.
1412 * objdump.c: Likewise.
1413 * readelf.c: Likewise.
1414 * size.c: Likewise.
1415 * strip.c: Likewise.
1416 * unstrip.c: Likewise.
1417 * ld.h: Fix up comment.
1418
Ulrich Drepperb47d2902009-06-01 07:38:32 -070014192009-06-01 Ulrich Drepper <drepper@redhat.com>
1420
1421 * readelf.c (print_relocs): Expect ELF header argument and pass on
1422 to handle_relocs_rel* functions. Adjust caller.
1423 (handle_relocs_rel): Add ELF header argument. Add special case for
1424 the IRELATIVE relocations in statically linked executables.
1425 (handle_relocs_rela): Likewise.
1426
Roland McGrathdb19f0b2009-05-07 18:44:27 -070014272009-04-29 Ulrich Drepper <drepper@redhat.com>
1428
1429 * elflint.c (check_symtab): Add tests of st_other field.
1430
Ulrich Drepperaab90f92009-04-23 07:44:36 -070014312009-04-23 Ulrich Drepper <drepper@redhat.com>
1432
1433 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
1434
Roland McGrathd86e1832009-04-20 00:49:33 -070014352009-04-20 Roland McGrath <roland@redhat.com>
1436
Roland McGrath8a592412009-04-20 01:20:44 -07001437 * addr2line.c (print_dwarf_function): Honor -s and -A for file names
1438 of inline call sites.
1439
Roland McGrathd86e1832009-04-20 00:49:33 -07001440 * addr2line.c (just_section): New variable.
1441 (adjust_to_section): New function, broken out of ...
1442 (handle_address): ... here.
1443 (options, parse_opt): Add -j/--section=NAME to set it.
1444
Roland McGrath2fb90512009-04-15 14:47:13 -070014452009-04-15 Roland McGrath <roland@redhat.com>
1446
1447 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
1448 64-bit format header, DW_CIE_ID_32 in 32-bit format header.
1449
Roland McGrath04a14162009-04-14 01:02:17 -070014502009-04-14 Roland McGrath <roland@redhat.com>
1451
Roland McGratheb9ba472009-04-14 18:44:45 -07001452 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
1453 like SHT_GNU_ATTRIBUTES.
1454
Roland McGrath94f43832009-04-14 04:39:32 -07001455 * readelf.c (handle_core_registers): Fix error message.
1456
Roland McGrath04a14162009-04-14 01:02:17 -07001457 * strip.c (handle_elf: check_preserved): Don't note any change when
1458 .debug_data is already filled from a previous pass.
1459
Ulrich Drepper411cdb22009-02-05 22:04:26 -080014602009-02-05 Ulrich Drepper <drepper@redhat.com>
1461
Ulrich Drepper51b3f472009-02-05 22:10:39 -08001462 * objdump.c (show_relocs_x): Minor cleanups.
1463
Ulrich Drepper411cdb22009-02-05 22:04:26 -08001464 * readelf.c (print_cfa_program): Correct a few labels.
Ulrich Drepper973a9c72009-02-05 22:56:39 -08001465 Print first DW_CFA_expression and DW_CFA_val_expression parameter
1466 as register.
Ulrich Drepper411cdb22009-02-05 22:04:26 -08001467
Ulrich Drepper5ee720c2009-02-01 16:18:18 -080014682009-02-01 Ulrich Drepper <drepper@redhat.com>
1469
Ulrich Drepper95fa15e2009-02-01 19:06:10 -08001470 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
1471 into ...
1472 (show_relocs_x): ...here. New function.
Ulrich Drepperf44f0ce2009-02-01 21:31:26 -08001473 (show_relocs): Better spacing in output.
Ulrich Drepper95fa15e2009-02-01 19:06:10 -08001474
Ulrich Dreppercbb422e2009-02-01 18:18:55 -08001475 * objdump.c (show_relocs_rela): Show offsets as signed values.
1476
Ulrich Drepper5ee720c2009-02-01 16:18:18 -08001477 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
1478 Improve some error messages.
1479 Use program_invocation_short_name instead of AR macro.
1480 * Makefile.am (CFLAGS_ar): Remove.
1481 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
1482 * objdump.c (parse_opt): Likewise.
1483 * readelf.c (parse_opt): Likewise.
1484
Roland McGrath51f01282009-01-27 17:08:03 -080014852009-01-27 Roland McGrath <roland@redhat.com>
1486
1487 * readelf.c (print_ops): Notice short length, don't overrun buffer
1488 (still need to fix LEB128).
1489
1490 * readelf.c (print_ops): Fix DW_OP_call[24] decoding.
1491
1492 * readelf.c (print_ops): Print (empty)\n when LEN == 0.
1493
Ulrich Drepper62c46532009-01-24 17:01:08 -080014942009-01-24 Ulrich Drepper <drepper@redhat.com>
1495
1496 * readelf.c (print_debug_frame_section): Fix computation of vma_base
1497 for PC-relative mode.
1498
Ulrich Drepperd7285e12009-01-23 16:10:44 -080014992009-01-23 Ulrich Drepper <drepper@redhat.com>
1500
Ulrich Drepperccccab02009-01-23 16:32:21 -08001501 * size.c (process_file): When handling archive, close file descriptor
1502 here. For unknown file format also close file descriptor.
1503 (handle_ar): Don't close file descriptor here.
1504
Ulrich Drepperd7285e12009-01-23 16:10:44 -08001505 * readelf.c (parse_opt): Move code to add to dump_data_sections and
1506 string_sections list in local function add_dump_section. Adjust 'x'
1507 key handling. For 'a' key add .strtab, .dynstr, and .comment section
1508 to string_sections list.
1509
Roland McGrathe9de9b42009-01-22 13:05:40 -080015102009-01-22 Roland McGrath <roland@redhat.com>
1511
Roland McGrath9a847e12009-01-22 19:55:00 -08001512 * readelf.c (print_phdr): Don't print section mapping when no sections.
1513
Roland McGrathd759aa62009-01-22 19:17:07 -08001514 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
1515
Roland McGrathcabeeee2009-01-22 13:17:45 -08001516 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
1517 and reset it only for the 'true' cases.
1518
1519 * Makefile.am (addr2line_no_Wformat): New variable.
1520
Roland McGrathe9de9b42009-01-22 13:05:40 -08001521 * readelf.c (print_debug_frame_section): Use t instead of j formats
1522 for ptrdiff_t OFFSET.
1523
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -080015242009-01-21 Ulrich Drepper <drepper@redhat.com>
1525
1526 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
Ulrich Drepperf93ee8d2009-01-21 15:02:03 -08001527 test. Handle debuginfo files.
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -08001528 (check_exception_data): First sanity test.
1529
Ulrich Drepperfdc93e12009-01-17 11:47:10 -080015302009-01-17 Ulrich Drepper <drepper@redhat.com>
1531
Ulrich Drepper935edde2009-01-17 16:06:42 -08001532 * readelf.c (print_debug_exception_table): Show target of ar_disp
1533 field.
1534
1535 * elflint.c (check_program_header): Add most consistency checks for
1536 PT_GNU_EH_FRAME entry.
1537
Ulrich Drepperfdc93e12009-01-17 11:47:10 -08001538 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
1539 ARGP_PROGRAM_BUG_ADDRESS_DEF.
1540 * ar.c: Likewise.
1541 * elfcmp.c: Likewise.
1542 * elflint.c: Likewise.
1543 * findtextrel.c: Likewise.
1544 * ld.c: Likewise.
1545 * nm.c: Likewise.
1546 * objdump.c: Likewise.
1547 * ranlib.c: Likewise.
1548 * readelf.c: Likewise.
Ulrich Drepper935edde2009-01-17 16:06:42 -08001549
Ulrich Drepperfdc93e12009-01-17 11:47:10 -08001550 * size.c: Likewise.
1551 * strings.c: Likewise.
1552 * strip.c: Likewise.
1553 * unstrip.c: Likewise.
1554
Ulrich Drepperb006fbf2009-01-16 03:08:25 -080015552009-01-16 Ulrich Drepper <drepper@redhat.com>
1556
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -08001557 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
1558 matches .eh_frame_hdr section, if it is available. Also check that
1559 the segment is allocated, not writable, not executable.
1560
Ulrich Drepperb006fbf2009-01-16 03:08:25 -08001561 * readelf.c: Add -e option. Dump exception and unwind related
1562 sections. Add -e to -a.
Ulrich Drepper05d2b202009-01-16 17:58:54 -08001563 (print_encoding_base): Handle DW_EH_PE_omit.
Ulrich Drepperb006fbf2009-01-16 03:08:25 -08001564 (print_debug_exception_table): Beginning of support.
1565 (print_debug): Hook up print_debug_exception_table for
1566 .gcc_except_table sections.
1567
1568 * readelf.c (print_debug_frame_section): Some fixes for last change.
1569
Ulrich Drepper351bf202009-01-15 20:18:40 -080015702009-01-15 Ulrich Drepper <drepper@redhat.com>
1571
1572 * readelf.c (print_encoding): Now a toplevel function.
1573 (print_relinfo): Likewise.
1574 (print_encoding_base): Broken out of print_debug_frame_section.
1575 (print_debug_frame_section): Print different header for .eh_frame
1576 sections. Fix recognition of matching CIEs in .debug_frame sections.
1577 Print absolute offset for PC-relative FDE locations. Don't print
1578 table header for FDEs if the table is empty.
1579 (read_encoded): New function.
1580 (print_debug_frame_hdr_section): New function.
1581 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
1582 sections.
1583
1584 * readelf.c (handle_relocs_rel): Print section number.
1585 (print_debug_abbrev_section): Likewise.
1586 (print_debug_aranges_section): Likewise.
1587 (print_debug_ranges_section): Likewise.
1588 (print_debug_info_section): Likewise.
1589 (print_debug_line_section): Likewise.
1590 (print_debug_loc_section): Likewise.
1591 (print_debug_macinfo_section): Likewise.
1592 (print_debug_pubnames_section): Likewise.
1593 (print_debug_str_section): Likewise.
1594
Ulrich Drepper8b394632009-01-10 18:29:56 -080015952009-01-10 Ulrich Drepper <drepper@redhat.com>
1596
1597 * strings.c (read_block): Fix typo in error message string.
1598
Ulrich Drepper87cf5832009-01-07 20:39:21 -080015992009-01-07 Ulrich Drepper <drepper@redhat.com>
1600
1601 * ld.c (ld_new_searchdir): Fix adding to search path list.
1602
Ulrich Drepperac194d02009-01-06 00:30:01 -080016032009-01-06 Ulrich Drepper <drepper@redhat.com>
1604
1605 * readelf.c: Implement call frame debug section dumping.
Roland McGrathe9243e62009-01-21 18:54:20 -08001606
Roland McGrath3614d992009-01-05 18:05:32 -080016072009-01-05 Roland McGrath <roland@redhat.com>
1608
1609 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
1610 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
Ulrich Drepperac194d02009-01-06 00:30:01 -08001611
Ulrich Drepper44173ed2009-01-01 19:00:41 -080016122009-01-01 Ulrich Drepper <drepper@redhat.com>
1613
1614 * addr2line.c: Update copyright year.
1615 * ar.c: Likewise.
1616 * elfcmp.c: Likewise.
1617 * elflint.c: Likewise.
1618 * findtextrel.c: Likewise.
1619 * ld.c: Likewise.
1620 * nm.c: Likewise.
1621 * objdump.c: Likewise.
1622 * ranlib.c: Likewise.
1623 * readelf.c: Likewise.
1624 * size.c: Likewise.
1625 * strings.c: Likewise.
1626 * strip.c: Likewise.
1627 * unstrip.c: Likewise.
1628
Roland McGrath468fe4d2008-12-11 21:00:12 -080016292008-12-11 Roland McGrath <roland@redhat.com>
1630
1631 * nm.c (sym_name): New function.
1632 (show_symbols_sysv): Use it in place of elf_strptr.
1633 (show_symbols_bsd, show_symbols_posix): Likewise.
1634 Fixes RHBZ#476136.
1635
1636 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
1637 elf_strptr fails.
1638
Roland McGratha845f682008-12-03 03:41:58 +000016392008-12-02 Roland McGrath <roland@redhat.com>
1640
1641 * readelf.c (count_dwflmod, process_file): Don't presume encoding of
1642 nonzero OFFSET argument to dwfl_getmodules.
1643
Roland McGrath1d8bb252008-08-07 08:39:41 +000016442008-08-07 Roland McGrath <roland@redhat.com>
1645
1646 * addr2line.c (main): Pass string to handle_address.
1647 (see_one_module): New function, subroutine of handle_address.
1648 (find_symbol): Likewise.
1649 (handle_address): Take string argument rather than address.
1650 Convert plain number, or handle strings like "(section)+offset"
1651 or "symbol+offset".
1652
16532008-08-01 Roland McGrath <roland@redhat.com>
1654
1655 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
1656 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
1657
1658 * readelf.c (convert): Take new argument SIZE.
1659 (handle_core_register, handle_core_item): Update callers.
1660 (handle_core_item): Take new arg REPEATED_SIZE.
1661 (handle_core_items): Special case for a singleton item,
1662 let handle_core_item handle repeats if it wants to.
1663
1664 * readelf.c (handle_core_items): Give abridged output
1665 for identical groups repeated more than twice.
1666
16672008-07-04 Roland McGrath <roland@redhat.com>
1668
1669 * readelf.c (handle_core_items): Handle ELF_T_ADDR.
1670
Roland McGrath521c47d2008-04-11 07:01:58 +000016712008-04-10 Roland McGrath <roland@redhat.com>
1672
1673 * strip.c (handle_elf): Don't keep sections that kept symbol tables
1674 refer to. Instead, just be sure to preserve the original symbol
1675 table in the debug file so those symbols go with their sections and
1676 can be elided from the stripped version of the symbol table.
1677
1678 * strip.c (handle_elf): When a discarded section kept in the debug
1679 file refers to a nondiscard section via sh_link/sh_info, preserve
1680 that nondiscarded section unmodified in the debug file as well.
1681 Skip adjustment of discarded sections symbol table references when
1682 that symbol table is copied in this way.
1683
1684 * elflint.c (check_symtab): Don't crash from missing symbol names
1685 after diagnosing bogus strtab.
1686
1687 * strip.c (handle_elf): Cosmetic cleanup in special section contents
1688 adjustment for symtab changes.
1689
Roland McGrath13b69602008-04-01 02:30:05 +000016902008-03-31 Roland McGrath <roland@redhat.com>
1691
1692 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
1693 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook
1694 excuse a special section.
1695
16962008-03-27 Roland McGrath <roland@redhat.com>
1697
1698 * elflint.c (check_sections): Check that executability and writability
1699 of sections is reflected in segment p_flags.
1700
Roland McGrathd11f9cb2008-03-26 20:51:59 +000017012008-03-26 Roland McGrath <roland@redhat.com>
1702
1703 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
1704 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
1705 is valid in RELRO.
1706
Roland McGrath47c5c352008-02-29 10:17:16 +000017072008-02-29 Roland McGrath <roland@redhat.com>
1708
1709 * readelf.c (print_attributes): Add a cast.
1710 * elflint.c (check_attributes): Likewise.
1711
1712 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
1713 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
1714 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
1715
Ulrich Drepper834de6f2008-02-23 06:50:01 +000017162008-02-03 Ulrich Drepper <drepper@redhat.com>
1717
1718 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
1719 when linked into executable.
1720 (elf_i386_create_relocations): Likewise.
1721
Roland McGrath059c83e2008-02-21 06:19:39 +000017222008-02-20 Roland McGrath <roland@redhat.com>
1723
1724 * readelf.c (print_attributes): New function.
1725 (process_elf_file): Call it under -A.
1726
1727 * elflint.c (check_attributes): Implement it for real.
1728
17292008-02-19 Roland McGrath <roland@redhat.com>
1730
1731 * elflint.c (special_sections): Handle .gnu.attributes section.
1732 (check_sections): Likewise.
1733 (check_attributes): New function.
1734
17352008-02-10 Roland McGrath <roland@redhat.com>
1736
1737 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
1738 sections and ET_REL files.
1739
Ulrich Drepper712d78e2008-02-02 10:01:53 +000017402008-02-02 Ulrich Drepper <drepper@redhat.com>
1741
1742 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
1743 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
1744 and R_386_TLS_LE.
1745 (elf_i386_create_relocations): Likewise.
1746 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
1747 elements.
1748 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
1749 (ld_generic_create_outfile): Add PT_TLS entry to program header.
1750 Fix generation of PT_GNU_STACK entry.
1751
Ulrich Drepperc54785a2008-02-01 18:05:21 +000017522008-02-01 Ulrich Drepper <drepper@redhat.com>
1753
Ulrich Drepper7cd1bf72008-02-01 23:52:59 +00001754 * ld.c (replace_args): Prevent loop over replacements if the parameter
1755 is only two characters long.
1756
Ulrich Drepperc54785a2008-02-01 18:05:21 +00001757 * ld.c: Recognize sha1 argument for --build-id parameter.
1758 * ldgeneric.c (create_build_id_section): Handle sha1.
1759 (compute_hash_sum): New function. Broken out of compute_build_id.
1760 Take hash function and context as parameters.
1761 (compute_build_id): Use compute_hash_sum for md5 and the new sha1
1762 implementation.
1763
Ulrich Drepper89759c72008-01-31 19:44:12 +000017642008-01-31 Ulrich Drepper <drepper@redhat.com>
1765
1766 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
1767 * ld.c: Recognize --build-id command line parameter.
1768 * ld.h: Define scn_dot_note_gnu_build_id.
1769 (struct ld_state): Add build_id and buildidscnidx elements.
1770 * ldgeneric.c: Implement --build-id command line parameter.
1771 * ldlex.l (ID): Recognize - as valid character after the first one.
1772
Ulrich Drepper5530ec52008-01-29 10:42:07 +000017732008-01-29 Ulrich Drepper <drepper@redhat.com>
1774
Ulrich Drepperb61c4cc2008-01-30 07:16:28 +00001775 * ld.c (replace_args): New function.
1776 (main): Use it to rewrite old-style parameters.
1777
Ulrich Dreppered9b6cb2008-01-30 06:33:33 +00001778 * elf32-i386.script: Add .gnu.hash section.
1779 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
1780 (fillin_special_symbol): Initialize st_size.
1781 (sortfct_hashval): New function.
1782 (create_gnu_hash): New function.
1783 (create_hash): New function.
1784 (ld_generic_create_outfile): Use the new functions to create the
1785 hash tables.
1786
Ulrich Drepper5530ec52008-01-29 10:42:07 +00001787 * elflint.c (check_gnu_hash): Fix index value printed in error message.
1788
Ulrich Drepper0e864dd2008-01-25 00:18:42 +000017892008-01-24 Ulrich Drepper <drepper@redhat.com>
1790
1791 * elflint.c (check_group): Check that signature symbol for section
1792 group is not an empty string.
1793 * ldgeneric.c: Remove magic assignment of indeces in the dynsym
1794 section. Start implementation of --hash-style.
1795 * i386_ld.c: Likewise.
1796 * ld.c: Recognize --hash-style.
1797 * ld.h (struct scninfo): Add comdat_group.
1798 Add additional parameter to finalize_plt callback.
1799
Ulrich Drepper5449a6b2008-01-22 15:49:39 +000018002008-01-22 Ulrich Drepper <drepper@redhat.com>
1801
1802 * ld.h (struct callbacks): Add initialize_gotplt.
1803 (struct scnhead): Add scn_dot_gotplt.
1804 (struct ld_state): Add gotpltscnidx.
1805 * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
1806 (elf_i386_initialize_pltrel): Likewise.
1807 (elf_i386_initialize_got): There is now a separate .got.plt, so
1808 don't do the PLT-related work here. Initialize d_type.
1809 (elf_i386_initialize_gotplt): New function.
1810 (elf_i386_plt0): Use ud2a after indirect jump.
1811 (elf_i386_pic_plt0_entry): Likewise.
1812 (elf_i386_finalize_plt): Reference now .got.plt.
1813 (elf_i386_count_relocations): For GOT entries which need no relocation
1814 don't bump nrel_got.
1815 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32
1816 handling for split .got/.got.plt.
1817 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
1818 * elf32-i386.script: Sort sections for security. There are no .got
1819 input sections. Add .got.plt.
1820 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
1821 (ld_generic_create_outfile): Initialize .got.plt section.
1822 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
1823
Ulrich Drepperd9488292008-01-20 16:43:15 +000018242008-01-19 Ulrich Drepper <drepper@redhat.com>
1825
1826 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
1827 symbols are not carried over into statically linked output files.
1828 Add dummy entries for more TLS relocations.
1829
1830 * ld.c (options): Add long names for -( and -).
1831
1832 * ldgeneric.c (check_definition): For newly found definitions don't
1833 mark section as used if symbol is absolute.
1834 (extract_from_archive): Only assign archive sequence number the first
1835 time the archive is handled. Update ld_state.last_archive_used
1836 if any symbol was used. Remove nround variable.
1837 (file_process2): When using symbol from an archive, update
1838 ld_state.group_start_archive, ld_state.archives, and
1839 ld_state.tailarchives.
1840 (ld_generic_file_process): If group is not handled anymore, after
1841 freeing ELF handles for the archives, clear ld_state.archives and
1842 *nextp. Fix wrong logic in recognizing first iteration of group
1843 loop. When clearing flags, also clear ld_state.group_start_archive.
1844
Ulrich Drepper5eee1222008-01-11 10:12:18 +000018452008-01-11 Ulrich Drepper <drepper@redhat.com>
1846
1847 * objdump.c (show_disasm): Adjust disassembler format string for
1848 removal of %e.
1849
Ulrich Dreppere219f1c2008-01-09 05:49:49 +000018502008-01-04 Roland McGrath <roland@redhat.com>
1851
Roland McGrath059c83e2008-02-21 06:19:39 +00001852 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
1853 a size greater than the items cover means multiple sets of items.
1854 (handle_core_note): Update caller.
1855
18562008-01-04 Roland McGrath <roland@redhat.com>
1857
Ulrich Dreppere219f1c2008-01-09 05:49:49 +00001858 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
1859
18602008-01-03 Roland McGrath <roland@redhat.com>
1861
1862 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
1863
1864 * elflint.c (check_dynamic): Remove duplicate initializer.
1865
Ulrich Drepperad024af2008-01-02 17:42:52 +000018662008-01-02 Ulrich Drepper <drepper@redhat.com>
1867
1868 * addr2line.c: Update copyright year.
1869 * ar.c: Likewise.
1870 * elfcmp.c: Likewise.
1871 * elflint.c: Likewise.
1872 * findtextrel.c: Likewise.
1873 * ld.c: Likewise.
1874 * nm.c: Likewise.
1875 * objdump.c: Likewise.
1876 * ranlib.c: Likewise.
1877 * readelf.c: Likewise.
1878 * size.c: Likewise.
1879 * strings.c: Likewise.
1880 * strip.c: Likewise.
1881 * unstrip.c: Likewise.
1882
Ulrich Drepper3cbdd382008-01-02 17:44:39 +000018832007-12-30 Ulrich Drepper <drepper@redhat.com>
1884
1885 * objdump (show_disasm): Use %e after third parameter.
1886
18872007-12-21 Ulrich Drepper <drepper@redhat.com>
1888
1889 * strip.c: Fix wrong parenthesis in a few branch predictions.
1890 * strings.c: Likewise.
1891
18922007-12-20 Ulrich Drepper <drepper@redhat.com>
1893
1894 * Makefile.am (DEFS): Add DEBUGPRED.
1895 * addr2line.c: Include debugpred.h.
1896 * ar.c: Likewise.
1897 * elfcmp.c: Likewise.
1898 * elflint.c: Likewise.
1899 * findtextrel.c: Likewise.
1900 * nm.c: Likewise.
1901 * objdump.c: Likewise.
1902 * ranlib.c: Likewise.
1903 * readelf.c: Likewise.
1904 * size.c: Likewise.
1905 * strings.c: Likewise.
1906 * strip.c: Likewise.
1907 * unstrip.c: Likewise.
1908 * debugpred.h: New file.
1909
1910 * readelf.c (handle_relocs_rel): Use elf_scnshndx.
1911 (handle_relocs_rela): Likewise.
1912
1913 * readelf.c: Add lots of likely/unlikely.
1914
1915 * elflint.c: Minor cleanups.
1916
Roland McGrath1a2e8f42007-12-15 23:39:34 +000019172007-11-19 Roland McGrath <roland@redhat.com>
1918
1919 * readelf.c (print_ops): Handle all bad op codes gracefully.
1920 Print their numbers instead of just ???.
1921
Roland McGrath07a696e2007-11-09 22:44:26 +000019222007-11-09 Roland McGrath <roland@redhat.com>
1923
1924 * readelf.c (attr_callback): Handle DW_AT_data_location.
Roland McGrath1a2e8f42007-12-15 23:39:34 +00001925 Handle block forms to mean a DWARF expression for DW_AT_allocated,
1926 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
1927 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
1928 DW_AT_upper_bound.
Roland McGrath07a696e2007-11-09 22:44:26 +00001929
Roland McGrathe4c22ea2007-10-23 13:07:39 +000019302007-10-20 Roland McGrath <roland@redhat.com>
1931
1932 * unstrip.c (options): Update -R description.
1933 (struct symbol): Put symbol details a union with a size_t pointer
1934 `duplicate'.
1935 (compare_symbols_output): Use null ->name as marker for discard
1936 symbols, not zero *->map.
1937 (copy_elided_sections): Record forwarding pointers for discarded
1938 duplicates and fill SYMNDX_MAP elements through them.
1939
1940 * readelf.c (process_file): Set offline_next_address to 0 at start.
1941 (struct process_dwflmod_args): New type.
1942 (process_dwflmod): Take args in it, pass fd to process_elf_file.
1943 (process_file): Update caller; dup FD for passing to libdwfl.
1944 (process_elf_file): Take new arg FD. For ET_REL file when
1945 displaying data affected by libdwfl relocation, open a new Elf handle.
1946
19472007-10-17 Roland McGrath <roland@redhat.com>
1948
1949 * readelf.c (print_debug_line_section): For invalid data inside a
1950 unit with plausible length, keep printing at the next unit boundary.
1951
1952 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
1953
19542007-10-16 Roland McGrath <roland@redhat.com>
1955
1956 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
1957
Ulrich Drepperb597dfa2007-10-16 05:21:27 +000019582007-10-15 Roland McGrath <roland@redhat.com>
1959
1960 * make-debug-archive.in: New file.
1961 * Makefile.am (EXTRA_DIST): Add it.
1962 (make-debug-archive): New target.
1963 (bin_SCRIPTS, CLEANFILES): Add it.
1964
19652007-10-10 Roland McGrath <roland@redhat.com>
1966
1967 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
1968 Use it to check MERGE|STRINGS for .debug_str.
1969 (check_sections): Handle exact_or_gnuld.
1970
19712007-10-08 Roland McGrath <roland@redhat.com>
1972
1973 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
1974 64-bit struct timeval with 32-bit tv_usec.
1975
19762007-10-07 Roland McGrath <roland@redhat.com>
1977
1978 * readelf.c (check_archive_index): New function.
1979 (process_file): Call it. Change signature to take only fd and name.
1980 Use libdwfl to open the file, then iterate on its modules (multiple
1981 for an archive) to print file name and call process_elf_file.
1982 (main): Update caller. Let process_file do elf_begin.
1983 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
1984 (process_elf_file): Take only Dwfl_Module * argument.
1985 Don't print the file name here.
1986 (print_debug_*_section): Take Dwfl_Module * argument.
1987 (print_debug): Likewise. Update caller.
1988 (format_dwarf_addr): New function.
1989 (print_debug_ranges_section): Use it.
1990 (attr_callback): Likewise.
1991 (print_debug_line_section, print_debug_loc_section): Likewise.
1992
1993 * readelf.c (print_debug_ranges_section): Translate all strings.
1994 (print_debug_loc_section): Likewise.
1995
1996 * unstrip.c (copy_elided_sections): Initialize SEC.
1997
1998 * ar.c (do_oper_insert): Put trailing / on short names.
1999
2000 * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
2001
2002 * arlib2.c (arlib_add_long_name): Adjust for header size.
2003
2004 * arlib.c (arlib_finalize): Pad long name table to keep size even.
2005
2006 * ar.c (do_oper_insert): Use write_retry for padding write.
2007
2008 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
2009 Unconditionally set FOUND[CNT]->elf when setting ->mem.
2010 (remember_long_name): New function.
2011 (do_oper_insert): Call it. Correctly use length of basename,
2012 not original name. Don't store long name twice for new member.
2013
20142007-10-06 Roland McGrath <roland@redhat.com>
2015
2016 * elflint.c (check_note): Skip empty segment.
2017 (check_note_section): Skip empty section.
2018
2019 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
2020 (handle_output_dir_module, handle_implicit_modules): Pass it down.
2021 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
2022 (compare_alloc_sections): Take new arg REL, ignore address if true.
2023 (compare_sections): Likewise, pass it down.
2024 (compare_sections_rel, compare_sections_nonrel): New functions.
2025 (find_alloc_sections_prelink, copy_elided_sections): Use them
2026 instead of compare_sections.
2027 (sections_match): New function, broken out of ...
2028 (find_alloc_section): ... here.
2029 (copy_elided_sections): Reorganize section match-up logic.
2030 Use sections_match for SHF_ALLOC in ET_REL.
2031 For ET_REL, let the nonzero sh_addr from the debug file dominate.
2032
2033 * unstrip.c (add_new_section_symbols): Take new arg REL.
2034 When true, do not update section symbol values.
2035 (collect_symbols): Likewise. Update section symbols with address
2036 of chosen output section, not original section.
2037 (check_symtab_section_symbols, copy_elided_sections): Update callers.
2038
2039 * unstrip.c (compare_alloc_sections): At the same address, preserve
2040 original section order.
2041
2042 * elflint.c (special_sections): Don't require MERGE|STRINGS for
2043 .debug_str, it didn't always have them with older tools.
2044
2045 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
2046
20472007-10-05 Roland McGrath <roland@redhat.com>
2048
2049 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
2050 ET_REL file.
2051
2052 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
2053 SHN_UNDEF as "bad section". Use shndx value in messages.
2054
2055 * elflint.c (special_sections): Add ".debug_str". Decrement namelen
2056 for ".debug" so it matches as a prefix.
2057 (IS_KNOWN_SPECIAL): New macro.
2058 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS
2059 type even under -d, for a .debug* or .shstrtab section.
2060
2061 * readelf.c (print_ops): Use hex for address operand.
2062
20632007-10-04 Roland McGrath <roland@redhat.com>
2064
2065 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
2066 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for
2067 sections mapped to SHN_UNDEF.
2068
Ulrich Drepper3fc3d7b2007-10-04 18:40:28 +000020692007-10-04 Ulrich Drepper <drepper@redhat.com>
2070
2071 * readelf.c (dump_archive_index): Avoid warning about uninitialized
2072 variable with older glibc versions.
2073 Add some branch prediction.
2074
Roland McGrath59ea7f32007-10-04 08:50:09 +000020752007-10-04 Roland McGrath <roland@redhat.com>
2076
2077 * readelf.c (print_archive_index): New variable.
2078 (options, parse_opt): Accept -c/--archive-index to set it.
2079 (dump_archive_index): New function.
2080 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
2081 Call dump_archive_index on archives if set.
2082 (main): Update caller.
2083 (any_control_option): Give it file scope, moved out of ...
2084 (parse_opt): ... here.
2085
20862007-10-03 Roland McGrath <roland@redhat.com>
2087
2088 * unstrip.c (struct arg_info): Add `list' flag.
2089 (options, parse_opt): Grok -n/--list to set it.
2090 (list_module): New function.
2091 (handle_implicit_modules): Call it under -n.
2092
2093 * elflint.c (check_note_section): New function.
2094 (check_sections): Call it for SHT_NOTE.
2095
2096 * readelf.c (handle_notes): Use sections when available.
2097
2098 * elflint.c (check_note_data): New function, broken out of ...
2099 (check_note): ... here. Call it and elf_getdata_rawchunk.
2100
2101 * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
2102 Use elf_getdata_rawchunk and gelf_getauxv.
2103 (handle_notes_data): New function, broken out of ...
2104 (handle_notes): ... here. Call it and elf_getdata_rawchunk.
2105
Roland McGrath241ac022007-10-01 18:21:46 +000021062007-10-01 Roland McGrath <roland@redhat.com>
2107
Roland McGrathac0a16c2007-10-01 18:50:35 +00002108 * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
2109
Roland McGrath241ac022007-10-01 18:21:46 +00002110 * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
2111
Roland McGrathc76f0b02007-09-27 07:31:33 +000021122007-09-10 Roland McGrath <roland@redhat.com>
2113
2114 * readelf.c (options): Give -p optional argument, alias --string-dump.
2115 (string_sections, string_sections_tail): New static variables.
2116 (parse_opt): Set them when -p has an argument.
2117 (print_string_section): New function, broken out of ...
2118 (print_strings): ... here. Call it.
2119 (dump_data_section): New function, broken out of ...
2120 (dump_data): ... here. Call it.
2121 (for_each_section_argument): New function, broken out of ...
2122 (dump_data): ... here. Call it.
2123 (dump_strings): New function.
2124
21252007-08-31 Roland McGrath <roland@redhat.com>
2126
2127 * readelf.c (print_strings): Typo fix.
2128
Roland McGrathcb6d8652007-08-23 08:10:54 +000021292007-08-23 Roland McGrath <roland@redhat.com>
2130
2131 * readelf.c (printf_with_wrap): Function removed.
2132 (REGISTER_WRAP_COLUMN): New macro.
2133 (handle_core_register): Use print_core_item instead.
2134 (struct register_info): New type.
2135 (compare_registers, compare_register_sets): New functions.
2136 (register_bitpos, compare_sets_by_info): New functions.
2137 (handle_core_registers): Use those to segregate and sort registers
2138 for display.
2139
2140 * readelf.c (ITEM_WRAP_COLUMN): New macro.
2141 (print_core_item): New function.
2142 (handle_core_item): Use it instead of printf_with_wrap.
2143 (compare_core_items, compare_core_item_groups): New functions.
2144 (handle_core_items): Use them. Sort by group and force line breaks
2145 between groups.
2146
2147 * readelf.c (handle_core_registers, handle_core_items): New functions,
2148 broken out of ...
2149 (handle_core_note): ... here. Call them.
2150
21512007-08-22 Roland McGrath <roland@redhat.com>
2152
2153 * unstrip.c (new_shstrtab): New function, broken out of ...
2154 (copy_elided_sections): ... here.
2155
21562007-08-20 Roland McGrath <roland@redhat.com>
2157
2158 Avoid local function trampolines in nm binary.
2159 * nm.c (sort_by_address): Move to a static function instead of local
2160 inside show_symbols.
2161 (sort_by_name_strtab): New static variable.
2162 (sort_by_name): Use it. Move to a static function instead of local
2163 inside show_symbols.
2164 (show_symbols): Set sort_by_name_strtab.
2165
21662007-08-19 Roland McGrath <roland@redhat.com>
2167
2168 * readelf.c (handle_auxv_note): New function.
2169 (handle_notes): Call it.
2170
2171 * readelf.c (printf_with_wrap, convert): New functions.
2172 (handle_core_item, (handle_core_register): New functions.
2173 (handle_notes): Call those with details from ebl_core_note.
2174
Roland McGrath099dd522007-08-13 22:58:36 +000021752007-08-12 Roland McGrath <roland@redhat.com>
2176
2177 * elflint.c (check_note): Accept type 0 with name "Linux".
2178
2179 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
2180
2181 * elflint.c (section_flags_string): Return "none" for 0, not "".
2182
Roland McGrathd8221722007-08-11 21:18:09 +000021832007-08-11 Roland McGrath <roland@redhat.com>
2184
2185 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
2186
Ulrich Drepperc98bcc72007-08-04 17:06:14 +000021872007-08-04 Ulrich Drepper <drepper@redhat.com>
2188
2189 * readelf.c (hex_dump): Use isprint to determine whether to print
2190 character itself or full stop character.
2191 (dump_data): No need to check endp for NULL after strtol call.
2192
Roland McGrath60fc84c2007-08-03 21:59:15 +000021932007-08-03 Roland McGrath <roland@redhat.com>
2194
2195 * readelf.c (print_string_sections): New variable.
2196 (options, parse_opt): Handle --strings/-p to set it.
2197 (print_strings): New function.
2198 (process_elf_file): Call it under -p.
2199
2200 * readelf.c (options): Add hidden aliases --segments, --sections,
2201 as taken by binutils readelf.
2202
22032007-08-01 Roland McGrath <roland@redhat.com>
2204
2205 * readelf.c (dump_data_sections, dump_data_sections_tail):
2206 New variables.
2207 (options, parse_opt): Handle --hex-dump/-x, set them.
2208 (hex_dump): New function.
2209 (dump_data): New function, call it.
2210 (process_elf_file): Call it.
2211
22122007-07-25 Roland McGrath <roland@redhat.com>
2213
2214 * addr2line.c (show_symbols): New variable.
2215 (print_addrsym): New function.
2216 (handle_address): Call it.
2217 (options, parse_opt): Handle -S/--symbols.
2218
Ulrich Drepperb0243862007-06-06 00:09:36 +000022192007-06-05 Ulrich Drepper <drepper@redhat.com>
2220
2221 * addr2line.c: Update for latest autoconf header.
2222 * ar.c: Likewise.
2223 * elfcmp.c: Likewise.
2224 * elflint.c: Likewise.
2225 * findtextrel.c: Likewise.
2226 * ld.c: Likewise.
2227 * ldgeneric.c: Likewise.
2228 * nm.c: Likewise.
2229 * objdump.c: Likewise.
2230 * ranlib.c: Likewise.
2231 * readelf.c: Likewise.
2232 * size.c: Likewise.
2233 * strings.c: Likewise.
2234 * strip.c: Likewise.
2235 * unstrip.c: Likewise.
2236
Roland McGrath9aa8ef72007-05-18 08:59:43 +000022372007-05-18 Roland McGrath <roland@redhat.com>
2238
2239 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
2240 stripped file, so as not to duplicate a section copied in both.
2241
2242 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
2243
22442007-05-17 Roland McGrath <roland@redhat.com>
2245
2246 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
2247
2248 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
2249
2250 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
2251 call make_directories here.
2252 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
2253 (handle_dwfl_module): Likewise.
2254 (handle_implicit_modules): Update callers.
2255 (handle_output_dir_module): Likewise. Don't do make_directories here.
2256
2257 * unstrip.c (get_section_name): New function, broken out of ...
2258 (copy_elided_sections): here. Update callers.
2259 (find_alloc_section): Broken out of ...
2260 (copy_elided_sections): ... here. Update caller.
2261 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
2262 update STT_SECTION symbols' st_value fields as a side effect.
2263 (check_symtab_section_symbols): Update caller.
2264 (add_new_section_symbols): Set st_value in symbols added.
2265 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
2266 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
2267 from .bss to .dynbss.
2268 (find_alloc_sections_prelink): New function. Associate debug file
2269 allocated SHT_NOBITS shdrs with stripped moved by prelink via
2270 .gnu.prelink_undo information.
2271 (copy_elided_sections): Call it when we couldn't find every allocated
2272 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
2273 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
2274 (handle_file): Update callers.
2275
2276 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
2277 named ".comment".
2278
2279 * elflint.c (check_sections): Fix association of segments with
2280 sections when p_memsz > p_filesz.
2281
22822007-04-29 Roland McGrath <roland@redhat.com>
2283
2284 * addr2line.c (options, main): Tweak argp group settings to fix
2285 usage output.
2286
22872007-04-28 Roland McGrath <roland@redhat.com>
2288
2289 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
2290 sizes to match sections adjusted in the stripped file.
2291
Roland McGrath4be15242007-04-25 03:09:33 +000022922007-04-24 Roland McGrath <roland@redhat.com>
2293
2294 * elfcmp.c (OPT_HASH_INEXACT): New macro.
2295 (hash_inexact): New variable.
2296 (options, parse_opt): Add --hash-inexact option to set it.
2297 (hash_content_equivalent): New function.
2298 (main): Call it for differing SHT_HASH sections under --hash-inexact.
2299
23002007-04-23 Roland McGrath <roland@redhat.com>
2301
2302 * unstrip.c: New file.
2303 * Makefile.am (bin_PROGRAMS): Add it.
2304 (unstrip_LDADD): New variable.
2305
2306 * strip.c (options): Allow --output for -o.
2307
Ulrich Drepper8b383102007-02-16 00:31:57 +000023082007-02-15 Ulrich Drepper <drepper@redhat.com>
2309
2310 * readelf.c: Remove unused code. Add a few consts.
2311
Ulrich Drepper903c1162007-02-15 19:40:37 +000023122007-02-15 Roland McGrath <roland@redhat.com>
2313
2314 * readelf.c (print_debug): Fix brainos in SHDR test.
2315
Roland McGrathf82a1ec2007-02-06 04:47:44 +000023162007-02-05 Roland McGrath <roland@redhat.com>
2317
2318 * ar.c: Include <limits.h>, since we use LONG_MAX.
2319
Ulrich Drepper0fe63532007-02-05 21:05:51 +000023202007-02-05 Ulrich Drepper <drepper@redhat.com>
2321
Ulrich Drepper8b383102007-02-16 00:31:57 +00002322 * ar.c: Add ugly hack to work around gcc complaining that we
Ulrich Drepper93ab56f2007-02-05 22:12:41 +00002323 ignore fchown's return value.
2324 (do_oper_insert): Handle error when writing padding.
2325 * ranlib.c: Add fchown complain work around.
2326
Ulrich Drepper0fe63532007-02-05 21:05:51 +00002327 * arlib.c: Make symtab a global variable. Change all users.
2328 * arlib2.c: Likewise.
2329 * ranlib.c: Likewise.
2330 * ar.c: Likewise.
2331 * arlib.h: Declare it.
2332
Ulrich Drepperaa915fd2007-02-05 07:25:33 +000023332007-01-11 Roland McGrath <roland@redhat.com>
2334
2335 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
2336 SHF_MASKPROC bits separately from generic sh_flags validation.
2337
Ulrich Drepperce0bdb62007-02-05 07:13:52 +000023382007-02-04 Ulrich Drepper <drepper@redhat.com>
2339
2340 * ar.c: New file.
2341 * arlib.c: New file.
2342 * arlib2.c: New file.
2343 * arlib.h: New file.
2344 * Makefile (noinst_LIBRARIES): Add libar.
2345 (libar_a_SOURCES): Define.
2346 (ar_LDADD): Define.
2347 (CFLAGS_ar): Define.
2348 * ranlib.c: Change to use arlib.
2349
2350 * elflint.c (check_symtab): Work around GNU ld bug which omits
2351 sections but not symbols in those sections.
2352
Ulrich Drepperb770cf92007-01-10 21:02:34 +000023532007-01-10 Ulrich Drepper <drepper@redhat.com>
2354
2355 * addr2line.c: Update copyright year.
2356 * elfcmp.c: Likewise.
2357 * elflint.c: Likewise.
2358 * findtextrel.c: Likewise.
2359 * ld.c: Likewise.
2360 * nm.c: Likewise.
2361 * objdump.c: Likewise.
2362 * ranlib.c: Likewise.
2363 * readelf.c: Likewise.
2364 * size.c: Likewise.
2365 * strings.c: Likewise.
2366 * strip.c: Likewise.
2367
Ulrich Drepper7c0e79f2006-12-09 21:10:19 +000023682006-12-09 Ulrich Drepper <drepper@redhat.com>
2369
2370 * elflint.c (compare_hash_gnu_hash): New function. Report if the
2371 two hash tables have different content (module expected omission
2372 of undefined symbols).
2373
Roland McGrath8190db62006-12-17 23:56:51 +000023742006-10-31 Roland McGrath <roland@redhat.com>
2375
2376 * elflint.c (check_program_header): Don't complain about
Ulrich Drepper56bc0b82006-12-18 22:38:08 +00002377 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
Roland McGrath8190db62006-12-17 23:56:51 +00002378
23792006-09-19 Jakub Jelinek <jakub@redhat.com>
2380
2381 * strip.c (process_file): Disallow -f on archives.
2382
23832006-10-09 Roland McGrath <roland@redhat.com>
2384
2385 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
2386
Roland McGrathc373d852006-10-10 00:25:21 +000023872006-08-29 Roland McGrath <roland@redhat.com>
2388
2389 * Makefile.am (MAINTAINERCLEANFILES): New variable.
2390
2391 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
2392 Reported by Christian Aichinger <Greek0@gmx.net>.
2393
2394 * elflint.c (valid_e_machine): Add EM_ALPHA.
2395 Reported by Christian Aichinger <Greek0@gmx.net>.
2396
Ulrich Drepper231c5902006-08-08 22:00:11 +000023972006-08-08 Ulrich Drepper <drepper@redhat.com>
2398
2399 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
2400 Keep track of which "high DT" entries are present.
2401 Check that either old or GNU-style hash table is present.
2402 If GNU-style hash table is used a symbol table is mandatory.
2403 Check that if any prelink entry is present all of them are.
2404 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
2405 table if they don't refer to functions.
2406
Roland McGrath858b1892006-07-17 08:41:15 +000024072006-07-17 Roland McGrath <roland@redhat.com>
2408
2409 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
2410 (add_version): Likewise for argument.
2411 (check_versym): Cast constant to GElf_Versym for comparison.
2412
Roland McGrath4ec807e2006-07-13 03:59:46 +000024132006-07-12 Roland McGrath <roland@redhat.com>
2414
2415 * readelf.c (handle_gnu_hash): Add casts for machines where
2416 Elf32_Word != unsigned int.
2417
Ulrich Drepperdcf61602006-07-12 19:59:02 +000024182006-07-12 Ulrich Drepper <drepper@redhat.com>
2419
2420 * elflint.c (check_sysv_hash64): Fix printf format.
2421
Ulrich Dreppercc415622006-07-12 19:42:23 +000024222006-07-11 Roland McGrath <roland@redhat.com>
Ulrich Drepper8ae58142006-07-12 05:22:32 +00002423
Ulrich Dreppercc415622006-07-12 19:42:23 +00002424 * addr2line.c (options): English fix in -f doc string.
2425
2426 * addr2line.c (use_comp_dir): New variable.
2427 (options, parse_opt): Grok -A/--absolute to set it.
2428 (handle_address): If set, prepend dwfl_line_comp_dir results to
2429 relative file names.
Ulrich Drepper8ae58142006-07-12 05:22:32 +00002430
Ulrich Drepper28ed8952006-07-07 03:43:47 +000024312006-07-06 Ulrich Drepper <drepper@redhat.com>
2432
2433 * elflint.c: Adjust for latest new hash table format.
2434 * readelf.c: Likewise.
2435
2436 * elflint.c (check_versym): Ignore hidden bit when comparing version
2437 numbers.
2438
24392006-07-05 Ulrich Drepper <drepper@redhat.com>
2440
2441 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
2442 discarded COMDAT symbols.
2443
2444 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
2445 (elf_i386_create_relocations): Likewise.
2446 * ld.h (struct symbol): Add local and hidden bits.
2447 * ld.c (create_special_section_symbol): These synthsized symbols
2448 are local and hidden.
2449 * ldgeneric.c (file_process2): Check whether input file matches
2450 the emulation.
2451 (fillin_special_symbol): Create symbols as local and/or hidden
2452 if requested.
2453 (ld_generic_create_outfile): Make local copy of symbol.
2454 Don't hide global, defined symbols in dynamic symbol table unless
2455 requested. Synthetic symbols have no version information.
2456
2457 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
2458 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
2459
24602006-07-04 Ulrich Drepper <drepper@redhat.com>
2461
2462 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
2463 testing.
2464
24652006-07-03 Ulrich Drepper <drepper@redhat.com>
2466
2467 * elflint.c: Add testing of DT_GNU_HASH.
2468 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
2469
2470 * Makefile.am: Add hacks to create dependency files for non-generic
2471 linker.
2472
Ulrich Drepper6ca46002006-06-12 22:40:23 +000024732006-06-12 Ulrich Drepper <drepper@redhat.com>
2474
2475 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
2476 section if creating a DSO and no interpreter is given.
2477 (ld_generic_create_outfile): Don't store reference to symbols in
2478 discarded COMDAT groups. Don't create PHDR and INTERP program header
2479 for DSO if no interpreter is specified.
Ulrich Drepper595d0e72006-06-12 23:25:17 +00002480 (create_verneed_data): Pretty printing.
2481
Ulrich Drepper6ca46002006-06-12 22:40:23 +00002482 * ldscript.y (content): If a DSO is created don't set default
2483 interpreter from linker script.
2484
2485 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
2486 for symbols in discarded COMDAT groups.
2487 (elf_i386_create_relocations): Likewise.
2488 * ld.h (struct scninfo): Add unused_comdat.
2489 * ldgeneric.c (add_section): Also check group signature when
2490 matching COMDAT sections.
2491 (add_relocatable_file): Ignore symbols in COMDAT group which are
2492 discarded.
2493
2494 * elflint.c (check_one_reloc): For *_NONE relocs only check type
2495 and symbol reference.
2496
Ulrich Drepper54f33a72006-06-11 09:07:37 +000024972006-06-11 Ulrich Drepper <drepper@redhat.com>
2498
Ulrich Dreppercbb51e52006-06-11 20:25:23 +00002499 * elflint.c (check_dynamic): Fix checking value of tags which are
2500 offsets in the string section. Make sure DT_STRTAB points to the
2501 section referenced in sh_link.
2502
2503 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
2504
Ulrich Drepper54f33a72006-06-11 09:07:37 +00002505 * ld.c: Recognize --eh-frame-hdr option.
2506 * ld.h (struct ld_state): Add eh_frame_hdr field.
2507 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
2508
2509 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
2510 SH_FLAGS_COMBINE.
2511 (add_relocatable_file): Minor optimization of last change.
2512 (match_section): Don't preserve SHF_GROUP flag any longer.
2513
Ulrich Drepper2d880282006-06-11 00:20:43 +000025142006-06-10 Ulrich Drepper <drepper@redhat.com>
2515
2516 * ld.c (parse_z_option): Recognize execstack and noexecstack.
Ulrich Drepper4f0a7a82006-06-11 00:53:45 +00002517 Handle record and ignore as position dependent options.
2518 (parse_z_option_2): Handle ignore and record here.
Ulrich Drepper2d880282006-06-11 00:20:43 +00002519 * ld.h (struct ld_state): Add execstack field.
2520 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
2521 sections.
2522 (ld_generic_create_outfile): Fix program header creation in native
2523 linker. Add PT_GNU_STACK program header.
2524
Ulrich Dreppera688a732006-06-10 06:33:00 +000025252006-06-09 Ulrich Drepper <drepper@redhat.com>
2526
2527 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
2528 for PLT entries if there is no local definition.
2529
2530 * ld.c (parse_option): Handle -z ignore like --as-needed and
2531 -z record like --no-as-needed.
2532 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
2533 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
2534 looping over DSOs. When deciding about adding DT_NEEDED entries
2535 use ->as_needed instead of ignore_unused_dsos.
2536
Ulrich Drepper8c56fe32006-05-31 15:50:43 +000025372006-05-31 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper11b030e2006-05-28 20:28:19 +00002538
Ulrich Drepper8c56fe32006-05-31 15:50:43 +00002539 * ld.c: Recognize --as-needed and --no-as-needed options.
2540 * ld.h (struct usedfile): Add as_needed field.
2541 (struct ld_state): Likewise.
2542 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
2543 the list.
2544 * ldscript.y (filename_id_list): Split to correctly parse all
2545 combinations.
2546 (mark_as_needed): Fix loop.
Ulrich Drepper11b030e2006-05-28 20:28:19 +00002547
Ulrich Drepper697f4db2006-06-10 06:50:47 +000025482006-05-28 Ulrich Drepper <drepper@redhat.com>
2549
2550 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
2551 and colno.
2552
Ulrich Drepper2cb8e732006-05-27 21:57:27 +000025532006-05-27 Ulrich Drepper <drepper@redhat.com>
2554
2555 * readelf.c (handle_relocs_rela): Better notations for addon value.
Ulrich Drepper41a99082006-05-28 00:01:43 +00002556 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
Ulrich Drepper2cb8e732006-05-27 21:57:27 +00002557
Ulrich Drepper82c345d2006-04-04 22:07:54 +000025582006-04-04 Ulrich Drepper <drepper@redhat.com>
2559
2560 * addr2line.c: Update copyright year.
2561 * elfcmp.c: Likewise.
2562 * elflint.c: Likewise.
2563 * findtextrel.c: Likewise.
2564 * ld.c: Likewise.
2565 * nm.c: Likewise.
2566 * objdump.c: Likewise.
2567 * ranlib.c: Likewise.
2568 * readelf.c: Likewise.
2569 * size.c: Likewise.
2570 * strings.c: Likewise.
2571 * strip.c: Likewise.
2572
Roland McGrathdd7e22b2006-03-09 23:05:47 +000025732006-03-09 Roland McGrath <roland@redhat.com>
2574
2575 * Makefile.am (AM_LDFLAGS): New variable.
2576
Roland McGrath060fa052006-03-02 07:51:50 +000025772006-03-01 Roland McGrath <roland@redhat.com>
2578
2579 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
2580 for dwarf.h changes matching 3.0 spec.
2581 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
2582
Ulrich Drepper038129b2005-12-04 16:47:24 +000025832005-12-04 Ulrich Drepper <drepper@redhat.com>
2584
2585 * elflint.c (check_one_reloc): If relocation section is not loaded,
2586 don't check whether the relocations modify read-only sections or
2587 loaded and unloaded sections.
2588
Ulrich Drepper607e0542005-12-04 15:51:06 +000025892005-11-28 Ulrich Drepper <drepper@redhat.com>
2590
2591 * elflint.c (check_one_reloc): Take additional parameters. Use
2592 them to determine whether relocation is valid in this type of
2593 file. DSOs and executables can contain relocation sections in
2594 unloaded sections which just show the relocations the linker
2595 applied. Adjust all callers.
2596 (check_program_header): Check that PT_PHDR is loaded and that offset
2597 matches the one in the ELF header.
2598
Roland McGrath6724c902005-10-28 07:07:19 +000025992005-10-26 Roland McGrath <roland@redhat.com>
2600
2601 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
2602
Ulrich Drepperd0449522005-09-03 07:23:52 +000026032005-09-03 Ulrich Drepper <drepper@redhat.com>
2604
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00002605 * strip.c (handle_elf): Unify some error messages.
2606 * ld.c (main): Likewise.
2607 * ldgeneric.c (open_elf): Likewise.
2608 * elfcmp.c (main): Likewise.
2609 * elflint.c (check_elf_header): Likewise.
2610
2611 * size.c (process_file): Fix typo in error message.
2612
Ulrich Drepperd0449522005-09-03 07:23:52 +00002613 * readelf.c: Lots of little cleanups. Use _unlocked functions.
2614
Ulrich Dreppera60501e2005-09-02 19:50:17 +000026152005-09-02 Ulrich Drepper <drepper@redhat.com>
2616
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00002617 * strings.c (main): Reset elfmap variable after munmap call.
Ulrich Drepper618795f2005-09-02 20:01:37 +00002618 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
Ulrich Dreppera60501e2005-09-02 19:50:17 +00002619
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000026202005-08-28 Ulrich Drepper <drepper@redhat.com>
2621
2622 * ranlib.c: Don't define pread_retry and write_retry here.
2623
2624 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
2625 (CLEANFILES): Add *.gcno *.gcda *.gconv.
2626
2627 * strings.c (process_chunk): Reorder expressions in conditional
2628 (process_chunk_mb): Likewise.
2629
2630 * strings.c: New file.
2631 * Makefile.am (bin_PROGRAMS): Add strings.
2632 (strings_no_Wstring): Define.
2633 (strings_LDADD): Define.
2634
Roland McGrath71e15a02005-08-27 10:33:26 +000026352005-08-27 Roland McGrath <roland@redhat.com>
2636
2637 * addr2line.c (dwarf_diename_integrate): Function removed.
2638 (print_dwarf_function): Use plain dwarf_diename.
2639
Ulrich Drepperc5a06cd2005-08-24 19:50:14 +000026402005-08-24 Ulrich Drepper <drepper@redhat.com>
2641
2642 * elflint.c (check_versym): Versioned symbols should not have
2643 local binding.
2644
Ulrich Drepper5d832292005-08-15 21:36:27 +000026452005-08-15 Ulrich Drepper <drepper@redhat.com>
2646
Ulrich Drepper61655e02005-08-16 04:23:02 +00002647 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
2648 undefined.
2649
Ulrich Drepper5d832292005-08-15 21:36:27 +00002650 * Makefile.am: Add rules to build ranlib.
2651 * ranlib.c: New file.
2652
Roland McGrath18e13422005-08-15 08:01:25 +000026532005-08-14 Roland McGrath <roland@redhat.com>
2654
2655 * elflint.c (check_sections): Use ebl_section_type_name and allow any
2656 sh_type it recognizes.
2657
2658 * elflint.c (check_sections): Print unknown flags in hex, don't
2659 truncate high bits. Print section number and name for unknown type.
2660
Roland McGrathf6895042005-08-13 20:56:52 +000026612005-08-13 Roland McGrath <roland@redhat.com>
2662
2663 * elflint.c (check_program_header): Use ebl_segment_type_name and
2664 allow any p_type it recognizes. Include p_type value in error
2665 message for unknown type.
2666
Ulrich Drepperc5c33a62005-08-13 17:50:47 +000026672005-08-13 Ulrich Drepper <drepper@redhat.com>
2668
2669 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
2670 to ebl_check_special_symbol.
2671 (check_sections): Pass ehdr to ebl_bss_plt_p.
2672
Roland McGrath653d3762005-08-13 01:59:10 +000026732005-08-12 Roland McGrath <roland@redhat.com>
2674
2675 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
2676 refers to the right section if it's not SHN_ABS.
2677 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
2678
2679 * elflint.c (check_sections): Don't complain about a non-NOBITS
2680 section taking no segment space, if it's sh_size is 0.
2681
2682 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
2683 be PROGBITS or NOBITS.
2684
2685 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
2686 standard st_value and st_size checks.
2687
Roland McGrath1c83bf12005-08-11 07:03:55 +000026882005-07-28 Roland McGrath <roland@redhat.com>
Ulrich Drepperfaf4d192005-08-11 05:12:05 +00002689
Roland McGrath1c83bf12005-08-11 07:03:55 +00002690 * addr2line.c (options, parse_opt): Don't handle -e here.
2691 (executable): Variable removed.
2692 (argp_children): New static variable.
2693 (argp): Use it. Make const.
2694 (main): Fill in argp_children from dwfl_standard_argp ().
2695 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
2696 (print_dwarf_function): New function. Try to figure out inline chain.
2697 (elf_getname): Function removed, libdwfl does it for us.
2698 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
2699 Use dwfl_module_addrname instead of elf_getname.
2700 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
2701 * Makefile.am (INCLUDES): Add libdwfl directory to path.
2702
27032005-08-10 Ulrich Drepper <drepper@redhat.com>
2704
2705 * strip.c (parse_opt): STATE parameter is now used.
2706 Various little cleanups.
2707
2708 * readelf.c (print_debug_line_section): Correct fallout of renaming
2709 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +00002710
Roland McGrath8f31c2c2005-08-09 04:58:05 +000027112005-08-08 Roland McGrath <roland@redhat.com>
2712
2713 * strip.c (options, parse_opt): Grok -R .comment for compatibility
2714 with binutils strip. Likewise -d, -S, as aliases for -g.
2715 Likewise ignore -s/--strip-all.
2716
Roland McGrath095a01b2005-08-08 03:49:35 +000027172005-08-07 Roland McGrath <roland@redhat.com>
2718
2719 * strip.c (process_file): Open read-only when using a different output
2720 file.
2721
Ulrich Drepper47be7952005-08-07 04:41:39 +000027222005-08-06 Ulrich Drepper <drepper@redhat.com>
2723
Ulrich Drepper637963b2005-08-07 05:33:07 +00002724 * elflint.c (in_nobits_scn): New function.
2725 (check_versym): Allow references for defined symbols against versions
2726 of other DSOs also for symbols in nobits sections.
2727 Move a few variables around.
2728
Ulrich Drepper47be7952005-08-07 04:41:39 +00002729 * Makefile.am (AM_CFLAGS): Avoid duplication.
2730 Link with statis libs if BUILD_STATIC.
2731
Ulrich Drepperdbace232005-08-06 01:37:23 +000027322005-08-05 Ulrich Drepper <drepper@redhat.com>
2733
2734 * elflint.c: Many, many more tests. Mostly related to symbol
2735 versioning. Those sections should now be completely checked.
2736
2737 * readelf.c (print_dynamic): Use gelf_offscn.
2738
Ulrich Drepperacb89832005-08-04 07:01:49 +000027392005-08-04 Ulrich Drepper <drepper@redhat.com>
2740
2741 * elflint.c: Add lots more tests: more extension symbol table sanity,
2742 versioning section tests, hash table tests. General cleanup.
2743
Ulrich Drepperc911c9e2005-08-02 16:07:42 +000027442005-08-02 Ulrich Drepper <drepper@redhat.com>
2745
Ulrich Drepper8a687742005-08-03 02:24:12 +00002746 * objdump.c: New file.
2747 * Makefile.am (bin_PROGRAMS): Add objdump.
2748 (objdump_LDADD): Define.
2749
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00002750 * elflint.c (check_reloc_shdr): New function split out from check_rela
2751 and check_rel.
2752 (check_one_reloc): New function. Likewise.
2753 (check_rela): Use check_reloc_shdr and check_one_reloc.
2754 (check_rel): Likewise.
Ulrich Drepper41de4882005-08-03 00:02:56 +00002755 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
2756 section.
2757 Add checks that relocations against read-only segments are flagged,
2758 that the text relocation flag is not set unnecessarily, and that
2759 relocations in one section are either against loaded or not-loaded
2760 segments.
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00002761
Ulrich Drepper8533dcf2005-08-01 07:18:47 +000027622005-08-01 Ulrich Drepper <drepper@redhat.com>
2763
2764 * elfcmp.c (main): Ignore section count and section name string table
2765 section index.
2766
Roland McGrathf9ece8a2005-07-28 07:03:04 +000027672005-07-27 Roland McGrath <roland@redhat.com>
2768
2769 * elfcmp.c: Include <locale.h>.
2770
Ulrich Drepper7d48d6a2005-07-27 10:13:23 +000027712005-07-27 Ulrich Drepper <drepper@redhat.com>
2772
2773 * elfcmp.c: Print name and index of differing section.
2774
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000027752005-07-24 Ulrich Drepper <drepper@redhat.com>
2776
2777 * elfcmp.c: Implement comparing gaps between sections.
2778
27792005-07-23 Ulrich Drepper <drepper@redhat.com>
2780
2781 * elflint.c: Include libeblP.h instead of libebl.h.
2782 * nm.c: Likewise.
2783 * readelf.c: Likewise.
2784 * elfcmp.c: Likewise.
2785
2786 * elfcmp.c (main): Compare individual ELF header fields, excluding
2787 e_shoff instead of the whole struct at once.
2788 Use ebl_section_strip_p instead of SECTION_STRIP_P.
2789 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
2790
27912005-07-22 Ulrich Drepper <drepper@redhat.com>
2792
2793 * elfcmp.c (main): Take empty section into account when comparing
2794 section content.
2795
2796 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
2797 using it.
2798
27992005-07-21 Ulrich Drepper <drepper@redhat.com>
2800
2801 * elfcmp.c: New file.
2802 * Makefile.am (bin_PROGRAMS): Add elfcmp.
2803 (elfcmp_LDADD): Define.
2804
2805 * elflint.c (check_rela): Check that copy relocations only reference
2806 object symbols or symbols with unknown type.
2807 (check_rel): Likewise.
2808
28092005-06-08 Roland McGrath <roland@redhat.com>
2810
2811 * readelf.c (print_ops): Add consts.
2812
28132005-05-31 Roland McGrath <roland@redhat.com>
2814
2815 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
2816 abbreviations. Print a header line before each CU section.
2817
2818 * readelf.c (print_debug_loc_section): Fix indentation for larger
2819 address size.
2820
28212005-05-30 Roland McGrath <roland@redhat.com>
2822
2823 * readelf.c (print_debug_line_section): Print section offset of each
2824 CU's table, so they are easy to find from seeing the stmt_list value.
2825
2826 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
2827 (attr_callback): Grok DW_AT_ranges and print offset in hex.
2828
2829 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
2830 (print_debug_ranges_section, print_debug_loc_section): Likewise.
2831
2832 * readelf.c (print_ops): Take different args for indentation control.
2833 (attr_callback): Caller updated.
2834 Grok several more block-form attributes as being location expressions.
2835 For those same attributes with udata forms, format output differently
2836 for location list offset.
2837 (print_debug_loc_section): Implement it for real.
2838
2839 * readelf.c (options): Mention ranges for --debug-dump.
2840 (enum section_e): Add section_ranges.
2841 (parse_opt): Grok "ranges" for -w/--debug-dump.
2842 (print_debug_ranges_section): New function.
2843 (print_debug): Handle .debug_ranges section.
2844
28452005-05-30 Ulrich Drepper <drepper@redhat.com>
2846
2847 * readelf.c (handle_notes): At least x86-64 need not have the note
2848 section values aligned to 8 bytes.
2849
28502005-05-18 Ulrich Drepper <drepper@redhat.com>
2851
2852 * readelf.c (dwarf_tag_string): Add new tags.
2853
28542005-05-08 Roland McGrath <roland@redhat.com>
2855
2856 * strip.c (handle_elf): Don't translate hash and versym data formats,
2857 elf_getdata already did it for us.
2858
28592005-05-07 Ulrich Drepper <drepper@redhat.com>
2860
2861 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
2862 (addr2line_LDADD): Likewise.
2863
28642005-05-03 Roland McGrath <roland@redhat.com>
2865
2866 * strip.c (handle_elf): Apply symbol table fixups to discarded
2867 relocation sections when they are being saved in the debug file.
2868
2869 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
2870 and gelf_xlatetof, not the native byte order.
2871
2872 * strip.c (parse_opt): Give error if -f or -o is repeated.
2873 (main): Exit if argp_parse returns nonzero.
2874
2875 * strip.c (debug_fname_embed): New variable.
2876 (options, parse_opt): New option -F to set it.
2877
28782005-05-07 Ulrich Drepper <drepper@redhat.com>
2879
2880 * readelf.c (parse_opt): Make any_control_option variable
2881 local. Simplify some tests.
2882
28832005-05-03 Roland McGrath <roland@redhat.com>
2884
2885 * strip.c (crc32_file): Function removed (now in ../lib).
2886
28872005-05-03 Roland McGrath <roland@redhat.com>
2888
2889 * elflint.c (is_debuginfo): New variable.
2890 (options, parse_opt): New option --debuginfo/-d to set it.
2891 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
2892 (check_note): If is_debuginfo, don't try to get note contents.
2893
28942005-04-24 Ulrich Drepper <drepper@redhat.com>
2895
2896 * readelf.c (print_debug_abbrev_section): Don't print error when end of
2897 section reached.
2898
28992005-04-14 Ulrich Drepper <drepper@redhat.com>
2900
2901 * readelf.c (dwarf_encoding_string): New function.
2902 (dwarf_inline_string): New function.
2903 (dwarf_access_string): New function.
2904 (dwarf_visibility_string): New function.
2905 (dwarf_virtuality_string): New function.
2906 (dwarf_identifier_case_string): New function.
2907 (dwarf_calling_convention_string): New function.
2908 (dwarf_ordering_string): New function.
2909 (dwarf_discr_list_string): New function.
2910 (attr_callback): Decode man more attribute values.
2911
29122005-04-01 Ulrich Drepper <drepper@redhat.com>
2913
2914 * addr2line.c: Finish implementation of -f option.
2915
29162005-03-29 Ulrich Drepper <drepper@redhat.com>
2917
2918 * addr2line.c: New file.
2919 * Makefile.am (bin_PROGRAMS): Add addr2line.
2920 Define addr2line_LDADD.
2921
2922 * findtextrel.c: Use new dwarf_addrdie function.
2923
2924 * findtextrel.c: Fix usage message and re-add accidentally removed
2925 line.
2926
29272005-03-28 Ulrich Drepper <drepper@redhat.com>
2928
2929 * findtextrel.c: New file.
2930 * Makefile: Add rules to build findtextrel.
2931
29322005-02-15 Ulrich Drepper <drepper@redhat.com>
2933
2934 * ldlex.l: Provide ECHO definition to avoid warning.
2935
2936 * elflint.c (check_program_header): Fix typo in RELRO test.
2937
2938 * Makefile.am (AM_CFLAGS): Add more warning options.
2939 * elflint.c: Fix warnings introduced by the new warning options.
2940 * i386_ld.c: Likewise.
2941 * ld.c: Likewise.
2942 * ld.h: Likewise.
2943 * ldgeneric.c: Likewise.
2944 * nm.c: Likewise.
2945 * readelf.c: Likewise.
2946 * sectionhash.c: Likewise.
2947 * size.c: Likewise.
2948 * string.c: Likewise.
2949
29502005-02-05 Ulrich Drepper <drepper@redhat.com>
2951
2952 * Makefile.am: Check for text relocations in constructed DSOs.
2953
2954 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
2955 with -lmudflap.
2956
2957 * ldscript.y: Add as_needed handling.
2958 * ldlex.l: Recognize AS_NEEDED token.
2959 * ld.h (struct filename_list): Add as_needed flag.
2960
29612005-02-04 Ulrich Drepper <drepper@redhat.com>
2962
2963 * elflint.c (check_symtab): Correctly determine size of GOT section.
2964
29652005-01-19 Ulrich Drepper <drepper@redhat.com>
2966
2967 * ld.c: Remove unnecessary more_help function. Print bug report
2968 address using argp.
2969 * strip.c: Likewise.
2970 * size.c: Likewise.
2971 * nm.c: Likewise.
2972 * readelf.c: Likewise.
2973 * elflint.c: Likewise.
2974
2975 * elflint.c (main): Don't check for parameter problems here.
2976 (parse_opt): Do it here, where we get informed about some of them
2977 anyway.
2978
2979 * readelf.c (main): Don't check for parameter problems here.
2980 (parse_opt): Do it here, where we get informed about some of them
2981 anyway.
2982
29832005-01-11 Ulrich Drepper <drepper@redhat.com>
2984
2985 * strip.c: Update copyright year.
2986 * readelf.c: Likewise.
2987 * size.c: Likewise.
2988 * nm.c: Likewise.
2989 * ld.c: Likewise.
2990 * elflint.c: Likewise.
2991
2992 * elflint.c (check_symtab): Don't warn about wrong size for
2993 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
2994
29952004-10-05 Ulrich Drepper <drepper@redhat.com>
2996
2997 * readelf.c (print_phdr): In section mapping, also indicate
2998 sections in read-only segments.
2999
30002004-09-25 Ulrich Drepper <drepper@redhat.com>
3001
3002 * readelf.c: Make compile with gcc 4.0.
3003 * strip.c: Likewise.
3004
30052004-08-16 Ulrich Drepper <drepper@redhat.com>
3006
3007 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
3008 allocate to work around gcc 3.4 bug.
3009
30102004-01-25 Ulrich Drepper <drepper@redhat.com>
3011
3012 * ldlex.l (invalid_char): Better error message.
3013
30142004-01-23 Ulrich Drepper <drepper@redhat.com>
3015
3016 * readelf.c: Print SHT_GNU_LIBLIST sections.
3017
3018 * none_ld.c: New file.
3019
30202004-01-21 Ulrich Drepper <drepper@redhat.com>
3021
3022 * Makefile.am: Enable building of machine specific linker.
3023
30242004-01-20 Ulrich Drepper <drepper@redhat.com>
3025
3026 * Makefile.am: Support building with mudflap.
3027
3028 * i386_ld.c: Fix warnings gcc 3.4 spits out.
3029 * ldgeneric.c: Likewise.
3030 * ldscript.y: Likewise.
3031 * readelf.c: Likewise.
3032 * strip.c: Likewise.
3033
3034 * readelf.c (print_debug_line_section): Determine address size
3035 correctly.
3036
30372004-01-19 Ulrich Drepper <drepper@redhat.com>
3038
3039 * readelf.c (print_phdr): Show which sections are covered by the
3040 PT_GNU_RELRO entry.
3041
3042 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
3043
3044 * readelf.c (print_debug_macinfo_section): Implement.
3045
30462004-01-18 Ulrich Drepper <drepper@redhat.com>
3047
3048 * readelf.c (print_debug_line_section): Implement.
3049
30502004-01-17 Ulrich Drepper <drepper@redhat.com>
3051
3052 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
3053 * src/ld.c: Likewise.
3054 * src/nm.c: Likewise.
3055 * src/readelf.c: Likewise.
3056 * src/size.c: Likewise.
3057 * src/strip.c: Likewise.
3058
3059 * strip.c: Add a few more unlikely. Reduce scope of some variables.
3060
3061 * Makefile.am: Support building with mudflap.
3062
30632004-01-16 Ulrich Drepper <drepper@redhat.com>
3064
3065 * readelf.c (print_debug_info_section): Free dies memory.
3066
3067 * readelf.c: Print .debug_info section content.
3068
30692004-01-13 Ulrich Drepper <drepper@redhat.com>
3070
3071 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
3072
30732004-01-12 Ulrich Drepper <drepper@redhat.com>
3074
3075 * readelf.c (print_debug_aranges): Implement using libdw.
3076
30772004-01-11 Ulrich Drepper <drepper@redhat.com>
3078
3079 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
3080
3081 * readelf.c: Use libdw instead of libdwarf. Not all of the old
3082 behavior is available yet.
3083 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
3084
30852004-01-09 Ulrich Drepper <drepper@redhat.com>
3086
3087 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
3088
3089 * nm.c: Implement getting information about local variables.
3090
30912004-01-07 Ulrich Drepper <drepper@redhat.com>
3092
3093 * nm.c: Read also debug information for local symbols.
3094
30952004-01-05 Ulrich Drepper <drepper@redhat.com>
3096
3097 * nm.c: Shuffle dwarf handling code around so the maximum column
3098 width can be computed ahead of printing. Avoid collection symbols
3099 which are not printed anyway.
3100
3101 * nm.c: Rewrite dwarf handling to use libdw.
3102 * Makefile.am (AM_CFLAGS): Add -std parameter.
3103 (INCLUDES): Find header in libdw subdir.
3104 (nm_LDADD): Replace libdwarf with libdw.
3105
3106 * elflint.c: Update copyright year.
3107 * readelf.c: Likewise.
3108 * size.c: Likewise.
3109 * strip.c: Likewise.
3110 * nm.c: Likewise.
3111
31122003-12-31 Ulrich Drepper <drepper@redhat.com>
3113
3114 * strip.c (process_file): Close file before returning.
3115
31162003-11-19 Ulrich Drepper <drepper@redhat.com>
3117
3118 * readelf.c (handle_dynamic): Make column for tag name wider.
3119
31202003-09-29 Ulrich Drepper <drepper@redhat.com>
3121
3122 * readelf.c (handle_dynamic): Always terminate tag name with a space.
3123
31242003-09-25 Ulrich Drepper <drepper@redhat.com>
3125
3126 * strip.c (process_file): Don't mmap the input file, we modify the
3127 data structures and don't want the change end up on disk.
3128
31292003-09-23 Jakub Jelinek <jakub@redhat.com>
3130
3131 * unaligned.h (union u_2ubyte_unaligned,
3132 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
3133 packed attribute.
3134 (add_2ubyte_unaligned, add_4ubyte_unaligned,
3135 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
3136 Read/store value through _ptr->u instead of *_ptr.
3137
31382003-09-22 Ulrich Drepper <drepper@redhat.com>
3139
3140 * size.c (show_sysv): Change type of maxlen to int.
3141
3142 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
3143 buckets.
3144
3145 * i386_ld.c: Many many fixes and extensions.
3146 * ld.c: Likewise.
3147 * ldgeneric.c: Likewise.
3148
31492003-08-16 Ulrich Drepper <drepper@redhat.com>
3150
3151 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
3152 the reference is from another DSO.
3153
31542003-08-15 Ulrich Drepper <drepper@redhat.com>
3155
3156 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
3157 point is found when creating a DSO.
3158
31592003-08-14 Ulrich Drepper <drepper@redhat.com>
3160
3161 * ld.c (main): Always call FLAG_UNRESOLVED.
3162 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
3163 undefined symbols if not creating DSO or ld_state.nodefs is not set.
3164
31652003-08-13 Ulrich Drepper <drepper@redhat.com>
3166
3167 * Makefile.in: Depend on libebl.a, not libebl.so.
3168
3169 * ld.c (main): Mark stream for linker script as locked by caller.
3170 (read_version_script): Likewise.
3171 * ldlex.c: Define fread and fwrite to _unlocked variant.
3172
3173 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
3174 target_bswap_32.
3175 * unaligned.h: Define target_bswap_16, target_bswap_32, and
3176 target_bswap_64.
3177 (store_2ubyte_unaligned, store_4ubyte_unaligned,
3178 store_8ubyte_unaligned): Define using new macros.
3179
31802003-08-12 Ulrich Drepper <drepper@redhat.com>
3181
3182 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
3183 possibly unaligned memory. Support use of big endian machines.
3184
31852003-08-11 Ulrich Drepper <drepper@redhat.com>
3186
3187 * Moved to CVS archive.