blob: 0ae863edac29afc4cb20cbcef285262f79814320 [file] [log] [blame]
Elliott Hughes03333822015-02-18 22:19:45 -080012014-12-18 Ulrich Drepper <drepper@gmail.com>
2
3 * Makefile.am: Suppress output of textrel_check command.
4
52014-12-17 Mark Wielaard <mjw@redhat.com>
6
7 * readelf.c (print_cfa_program): Add bounds check before each op that
8 takes at least one argument.
9
102014-12-16 Mark Wielaard <mjw@redhat.com>
11
12 * readelf.c (print_decoded_line_section): Print dwarf_errmsg if
13 dwarf_onesrcline or dwarf_linesrc fails.
14
152014-12-16 Mark Wielaard <mjw@redhat.com>
16
17 * readelf.c (print_debug_line_section): Correct overflow check for
18 unit_length.
19 (print_debug_aranges_section): Correct overflow check for length.
20
212014-12-15 Mark Wielaard <mjw@redhat.com>
22
23 * readelf.c (notice_listptr): Return false if offset doesn't fit
24 in 61-bits.
25 (attr_callback): Warn if loclist or rangelist offset doesn't fit.
26
272014-12-15 Mark Wielaard <mjw@redhat.com>
28
29 * readelf.c (print_ops): Don't assert when addr_size or ref_size
30 is not 4 or 8, just report invalid data.
31
322014-12-15 Mark Wielaard <mjw@redhat.com>
33
34 * readelf.c (print_gdb_index_section): Add more bounds checks.
35
362014-12-15 Mark Wielaard <mjw@redhat.com>
37
38 * readelf.c (print_debug_line_section): Check there is enough room
39 for DW_LNE_set_address argument. Make sure there is enough room
40 for the the initial unit_length.
41
422014-12-14 Mark Wielaard <mjw@redhat.com>
43
44 * elflint.c (check_attributes): Call get_uleb128 with end pointer.
45 * readelf.c (print_attributes): Likewise.
46 (print_ops): Likewise and also for get_sleb128.
47 (print_cfa_program): Likewise and add more readp bounds checks.
48 (read_encoded): Likewise.
49 (print_debug_frame_section): Likewise.
50 (print_debug_line_section): Likewise.
51 (print_debug_macinfo_section): Likewise.
52 (print_debug_macro_section): Likewise.
53 (print_debug_exception_table): Likewise.
54
552014-12-16 Mark Wielaard <mjw@redhat.com>
56
57 * elfcmp.c (compare_Elf32_Word): Make sure (unsigned) Elf32_Word
58 difference doesn't wrap around before returning as int.
59
602014-12-11 Mark Wielaard <mjw@redhat.com>
61
62 * readelf.c (print_debug_exception_table): Check TType base offset
63 and Action table are sane.
64
652014-12-11 Mark Wielaard <mjw@redhat.com>
66
67 * readelf.c (print_debug_frame_section): Check number of augmentation
68 chars to print.
69
702014-12-09 Mark Wielaard <mjw@redhat.com>
71
72 * readelf.c (handle_file_note): Check count fits data section and
73 doesn't overflow fptr.
74
752014-12-08 Mark Wielaard <mjw@redhat.com>
76
77 * readelf.c (print_debug_exception_table): Report invalid data if
78 action table doesn't immediately follow call site table.
79
802014-12-10 Josh Stone <jistone@redhat.com>
81
82 * addr2line.c (get_diename): New, get linkage_name or name.
83 * addr2line.c (print_dwarf_function): Use get_diename.
84 * addr2line.c (handle_address): Likewise.
85 * addr2line.c (print_diesym): Removed.
86
872014-12-10 Josh Stone <jistone@redhat.com>
88
89 * addr2line.c (handle_address): Find the proper inline parents.
90
912014-12-07 Mark Wielaard <mjw@redhat.com>
92
93 * readelf.c (print_debug_line_section): max_ops_per_instr cannot
94 be zero.
95
962014-12-07 Mark Wielaard <mjw@redhat.com>
97
98 * readelf.c (print_ops): Handle zero ref_size for DW_OP_call_ref
99 and DW_OP_GNU_implicit_pointer.
100
1012014-12-04 Mark Wielaard <mjw@redhat.com>
102
103 * objdump.c (show_relocs_x): Make sure destshdr exists.
104 (show_relocs_rel): Don't rely on shdr->sh_entsize, use gelf_fsize.
105 (show_relocs_rela): Likewise.
106 (show_relocs): Make sure destshdr, symshdr and symdata exists.
107
1082014-11-30 Mark Wielaard <mjw@redhat.com>
109
110 * readelf.c (handle_sysv_hash64): Fix overflow check.
111
1122014-11-28 Mark Wielaard <mjw@redhat.com>
113
114 * readelf.c (handle_relocs_rel): Don't reuse destshdr to store
115 section header of a relocation against a STT_SECTION symbol. Use
116 a new local variable secshdr.
117 (handle_relocs_rela): Likewise.
118
1192014-11-26 Mark Wielaard <mjw@redhat.com>
120
121 * readelf.c (print_debug_aranges_section): Cast Dwarf_Word length
122 to ptrdiff_t for comparison.
123
1242014-11-24 Mark Wielaard <mjw@redhat.com>
125
126 * readelf.c (print_debug_line_section): Check line_range is not zero
127 before usage.
128
1292014-11-23 Mark Wielaard <mjw@redhat.com>
130
131 * readelf.c (print_debug_aranges_section): Check length to catch
132 nexthdr overflow.
133
1342014-11-21 Mark Wielaard <mjw@redhat.com>
135
136 * readelf.c (print_attributes): Guard against empty section.
137 Document attribute format. Break when vendor name isn't terminated.
138 Add overflow check for subsection_len. Handle both gnu and non-gnu
139 attribute tags.
140
1412014-11-22 Mark Wielaard <mjw@redhat.com>
142
143 * elflint.c (check_sections): Call ebl_bss_plt_p without ehdr.
144 * findtextrel.c (process_file): Use elf_getphdrnum.
145 * readelf.c (process_elf_file): Remove redundant ehdr->e_phoff check.
146 (print_phdr): Check phnum.
147 * size.c (show_segments): Use elf_getphdrnum.
148 * strip.c (handle_elf): Likewise.
149 * unstrip.c (copy_elf): Likewise.
150 (copy_elided_sections): Likewise.
151 (handle_file): Likewise.
152
1532014-11-18 Mark Wielaard <mjw@redhat.com>
154
155 * readelf.c (print_cfa_program): Fix sanity check of DW_FORM_block
156 length.
157
1582014-11-17 Mark Wielaard <mjw@redhat.com>
159
160 * readelf.c (handle_verneed): Check vna_next and vn_next exist.
161 (handle_verdef): Check vda_next and vd_next exist.
162 (handle_versym): Check vd_next, vna_next and vn_next exist.
163 Check vername and filename are not NULL before use.
164
1652014-11-17 Mark Wielaard <mjw@redhat.com>
166
167 * elfcmp.c (main): Check section names are NULL before use.
168 * objdump.c (section_match): Likewise.
169 * size.c (show_sysv): Likewise.
170
1712014-11-17 Mark Wielaard <mjw@redhat.com>
172
173 * readelf.c (print_debug_frame_section): Warn if ptr_size is not 4
174 or 8 instead of just calling print_cfa_program.
175
1762014-11-16 Mark Wielaard <mjw@redhat.com>
177
178 * readelf (process_elf_file): Set phnum to zero if there aren't
179 actually any pheaders.
180 (print_phdr): Check there actually is a phdr.
181
1822014-11-16 Mark Wielaard <mjw@redhat.com>
183
184 * readelf.c (print_cfa_program): Check block len before calling
185 print_ops.
186
1872014-11-14 Mark Wielaard <mjw@redhat.com>
188
189 * readelf.c (print_debug_frame_section): Sanity Check CIE
190 unit_length and augmentationlen.
191
1922014-11-14 Mark Wielaard <mjw@redhat.com>
193
194 * readelf.c (handle_versym): Check def == NULL before use.
195
1962014-11-08 Mark Wielaard <mjw@redhat.com>
197
198 * readelf.c (handle_versym): Initialize vername and filename array
199 elements.
200
2012014-11-07 Mark Wielaard <mjw@redhat.com>
202
203 * readelf.c (handle_sysv_hash): Sanity check section contents.
204 (handle_sysv_hash64): Likewise.
205 (handle_gnu_hash): Likewise.
206
2072014-09-14 Petr Machata <pmachata@redhat.com>
208
209 * readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly.
210
2112014-09-12 Petr Machata <pmachata@redhat.com>
212
213 * readelf.c (encoded_ptr_size): In the switch statement, change
214 magic constants 3 and 4 to DW_EH_PE_* counterparts. Still accept
215 0. Print diagnostic for anything else.
216
2172014-08-25 Josh Stone <jistone@redhat.com>
218
219 * Makefile.am: Prevent premature @AR@ replacement in a sed expression.
220
2212014-07-04 Menanteau Guy <menantea@linux.vnet.ibm.com>
222 Mark Wielaard <mjw@redhat.com>
223
224 * elflint (check_symtab): Add ".TOC." to the list of possibly
225 dangling symbols because of sourceware PR13621.
226
2272014-06-14 Mark Wielaard <mjw@redhat.com>
228
229 * elflint (check_symtab): Use ebl_func_addr_mask on st_value.
230
2312014-05-27 Mark Wielaard <mjw@redhat.com>
232
233 * readelf.c (print_debug): Skip section if name is NULL.
234
2352014-05-26 Mark Wielaard <mjw@redhat.com>
236
237 * readelf.c (handle_relocs_rela): Print header like handle_relocs_rel
238 does, when sh_info == 0.
239
2402014-05-26 Mark Wielaard <mjw@redhat.com>
241
242 * unstrip.c (find_alloc_sections_prelink): Allow non-split .bss
243 section when sh_size of the original and undo .bss section are equal.
244
2452014-05-26 Mark Wielaard <mjw@redhat.com>
246
247 * unstrip.c (options): Add --force, -F.
248 (struct arg_info): Add bool force.
249 (parse_opt): Handle 'F', set force.
250 (handle_explicit_files): Add force argument, add warn function,
251 separate check ehdr field checks, use warn.
252 (handle_dwfl_module): Add force argument, pass on to
253 handle_explicit_files.
254 (handle_output_dir_module): Add force argument, pass on to
255 handle_dwfl_module.
256 (handle_implicit_modules): Pass info->force to handle_dwfl_module and
257 handle_output_dir_module.
258 (main): Pass info.force to handle_explicit_files.
259
2602014-05-19 Mark Wielaard <mjw@redhat.com>
261
262 * elflint.c (check_reloc_shdr): Check ebl_check_reloc_target_type.
263
2642014-05-01 Mark Wielaard <mjw@redhat.com>
265
266 * readelf.c (find_no_debuginfo): Call dwfl_standard_find_debuginfo
267 if looking for alternate debug file.
268
2692014-04-11 Mark Wielaard <mjw@redhat.com>
270
271 * Makefile.am (AM_CPPFLAGS): Add -I libdwelf.
272
2732014-04-22 Mark Wielaard <mjw@redhat.com>
274
275 * readelf.c (handle_core_item): Make sure variable length array
276 contains at least enough space for terminating zero char.
277
2782014-04-22 Mark Wielaard <mjw@redhat.com>
279
280 * readelf.c (print_gdb_index_section): Use unsigned int for 31 bits
281 left shift.
282
2832014-03-13 Mark Wielaard <mjw@redhat.com>
284
285 * Makefile.am: Remove no_mudflap.os. Remove libmudflap from all
286 LDADD lines.
287 * strings.c (process_chunk): Remove _MUDFLAP condition.
288
2892014-04-09 Mark Wielaard <mjw@redhat.com>
290
291 * readelf.c (print_debug_aranges_section): Don't get the raw section
292 data, use the possibly decompressed .[z]debug sectiondata.
293 (print_debug_ranges_section): Likewise.
294 (print_debug_frame_section): Likewise.
295 (print_debug_line_section): Likewise.
296 (print_debug_loc_section): Likewise.
297 (print_debug_macinfo_section): Likewise.
298 (print_debug_macro_section): Likewise.
299
3002014-04-10 Mark Wielaard <mjw@redhat.com>
301
302 * readelf.c (buf_read_ulong): Pass actual long size to convert.
303
3042014-03-05 Mark Wielaard <mjw@redhat.com>
305
306 * readelf.c (attr_callback): Print DW_FORM_sdata values as signed
307 numbers.
308
3092014-02-24 Mark Wielaard <mjw@redhat.com>
310
311 * readelf (print_phdr): Check there is a SHT_PROGBITS section at the
312 offset given by p_offsets for a PT_INTERP segment before trying to
313 display the interpreter string.
314
3152014-02-07 Mark Wielaard <mjw@redhat.com>
316
317 * readelf.c (print_phdr): Check phdr->p_filesz and make sure
318 interpreter string is zero terminated before calling printf.
319
3202014-01-22 Mark Wielaard <mjw@redhat.com>
321
322 * Makefile.am (nm_no_Wformat): Removed.
323 (size_no_Wformat): Likewise.
324 (strings_no_Wformat): Likewise.
325 (addr2line_no_Wformat): Likewise.
326 * size.c (show_sysv): Use fmtstr directly as literal in printf.
327 (show_sysv_one_line): Likewise.
328 * strings.c (locfmt): Removed.
329 (radix): New static enum.
330 (parse_opt): Set radix, not locfmt.
331 (process_chunk_mb): Use fmtstr directly as literal in printf based
332 on radix.
333 (process_chunk): Likewise.
334 * nm.c (show_symbols_sysv): Use fmtstr directly as literal in printf.
335 (show_symbols_bsd): Likewise.
336 (show_symbols_posix): Likewise.
337
3382014-01-21 Mark Wielaard <mjw@redhat.com>
339
340 * stack.c (show_inlines): New static boolean.
341 (print_frame): New function split out from...
342 (print_frames): ..here. If show_inlines is true and we found a
343 DIE for the frame address, call print_inline_frames otherwise
344 call print_frame. Keep track of and track frame_nr.
345 (print_inline_frames): New function.
346 (parse_opt): Handle '-i'.
347 (main): Add 'i' to options.
348
3492014-01-27 Mark Wielaard <mjw@redhat.com>
350
351 * stack.c (maxframes): Initialize to 256.
352 (main): Document new default in options. Document magic number
353 used in frames.allocated initialization.
354
3552014-01-20 Mark Wielaard <mjw@redhat.com>
356
357 * stack.c (show_debugname): New static boolean.
358 (die_name): New function.
359 (print_frames): If show_debugname is true set symname to the
360 first function-like DIE with a name in scope for the address in
361 the debuginfo.
362 (parse_opt): Handle '-d'.
363 (main): Add 'd' to options.
364
3652014-01-20 Mark Wielaard <mjw@redhat.com>
366
367 * addr2line.c (handle_address): Initialize scopes to NULL.
368
3692014-01-17 Roland McGrath <roland@redhat.com>
370
371 * strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
372 st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data.
373 Don't use assert on input values, instead bail with "illformed" error.
374
3752014-01-17 Roland McGrath <roland@redhat.com>
376
377 * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link.
378 (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise.
379 (handle_scngrp): Check for bogus sh_info.
380
3812014-01-17 Jakub Jelinek <jakub@redhat.com>
382
383 * elflint.c (section_name): Return "<invalid>" instead of
384 crashing on invalid section name.
385 (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
386 check_symtab_shndx, check_hash, check_versym): Robustify.
387 (check_hash): Don't check entries beyond end of section.
388 (check_note): Don't crash if gelf_rawchunk fails.
389
3902014-01-17 Petr Machata <pmachata@redhat.com>
391
392 * readelf.c (handle_dynamic, handle_relocs_rel)
393 (handle_relocs_rela, handle_versym, print_liblist):
394 Use gelf_fsize instead of relying on shdr->sh_entsize.
395
3962014-01-14 Mark Wielaard <mjw@redhat.com>
397
398 * readelf.c (print_debug_macro_section): Clear vendor array before
399 use.
400
4012014-01-15 Jan Kratochvil <jan.kratochvil@redhat.com>
402
403 Fix corruption of non-C++ symbols by the demangler.
404 * nm.c (show_symbols_sysv, show_symbols_bsd, show_symbols_posix)
405 (show_symbols): Check for _Z.
406 * stack.c (print_frames) <USE_DEMANGLE>: Check for _Z.
407
4082014-01-02 Mark Wielaard <mjw@redhat.com>
409
410 * stack.c (show_raw): Declare unconditionally.
411 (parse_opt): Handle '-r' unconditionally.
412 (main): Show "raw" option even without USE_DEMANGLE.
413
4142014-01-02 Mark Wielaard <mjw@redhat.com>
415
416 * stack.c (print_frames): Print 0x before build-id hex-offset.
417
4182014-01-02 Mark Wielaard <mjw@redhat.com>
419
420 * stack.c (maxframes): Increase to 2048.
421 (struct frames): Add allocated field.
422 (frame_callback): If frames used is frames allocated, realloc.
423 (print_frames): Show an error if maxframes has been reached.
424 (parse_opt): Allow -n 0 for unlimited frames.
425 (main): Document -n 0 and new default 2048 frames. Allocate initial
426 number of frames with malloc.
427
4282013-12-30 Mark Wielaard <mjw@redhat.com>
429
430 * stack.c (parse_opt): Explicitly call dwfl_linux_proc_attach
431 or dwfl_core_file_attach and check for errors.
432
4332013-12-28 Mark Wielaard <mjw@redhat.com>
434
435 * stack.c (print_frames): Remove address width code and use...
436 (get_addr_width): ...this new function.
437 (show_modules): New static boolean.
438 (module_callback): New static function.
439 (parse_opt): Handle '-l'.
440 (main): Add 'l' to options. If show_modules then use dwfl_getmodules
441 with module_callback to show all detected modules and possible
442 build_id, elf and dwarf files.
443
4442013-12-27 Mark Wielaard <mjw@redhat.com>
445
446 * stack.c (frames_shown): New static boolean.
447 (EXIT_OK,EXIT_ERROR,EXIT_BAD,EXIT_USAGES): New defines.
448 (frame_callback): Return -1 on error. Don't print error.
449 (print_frames): Add arguments, tid, dwflerr and what. Print tid.
450 If there was an error report it with address and module if possible.
451 Record whether any frames were actually printed.
452 (thread_callback): Collect tid and err, pass it to print_frames.
453 (parse_opt): Use EXIT_BAD for errors. On ARGP_KEY_END print errno
454 if dwfl_linux_proc_report returned it. Check whether we are properly
455 attached with dwfl_pid.
456 (main): Document exit status. Don't report DWARF_CB_ABORT from
457 callbacks as error. Pass real errors to print_frames. Return
458 EXIT_BAD if no frames could be shown. Return EXIT_ERROR if there
459 were any non-fatal errors.
460
4612013-12-23 Mark Wielaard <mjw@redhat.com>
462
463 * Makefile.am (stack_LDADD): Add demanglelib.
464 * stack.c (show_quiet): New static boolean, default false.
465 (show_raw): Likewise.
466 (demangle_buffer_len): New static size_t.
467 (demangle_buffer): New static char *.
468 (print_frames): Don't resolve pc name if show_quiet. Demangle name
469 unless show_raw.
470 (parse_opt): Handle '-q' and '-r'.
471 (main): Add 'q' and 'r' to options. Free demangle_buffer.
472
4732013-12-23 Mark Wielaard <mjw@redhat.com>
474
475 * stack.c (OPT_DEBUGINFO): New define.
476 (OPT_COREFILE): Likewise.
477 (pid): New static.
478 (core_fd): Likewise.
479 (core): Likewise.
480 (exec): Likewise.
481 (debuginfo_path): Likewise.
482 (parse_opt): Handle '-p', '--core', '-e' and '--debuginfo-path'.
483 Do argument sanity checking. Setup Dwfl.
484 (main): Add 'p', 'core', 'e' and 'debuginfo-path' to options.
485 Remove argp_child children, simplify argp doc, remove custom
486 usage message and construction of dwfl with dwfl_standard_argp.
487 Use pid directly as tid. close core and core_fd if opened. Print
488 pid of process or core.
489
4902013-12-23 Mark Wielaard <mjw@redhat.com>
491
492 * stack.c (show_build_id): New static boolean.
493 (print_frames): Print module build-id, load address and pc offset
494 if show_build_id is true.
495 (parse_opt): Handle '-b'.
496 (main): Add -b to options.
497
4982013-12-22 Mark Wielaard <mjw@redhat.com>
499
500 * stack.c (maxframes): New static unsigned. Initialize to 64.
501 (struct frame): New struct.
502 (struct frames): Likewise.
503 (dwfl): New static Dwfl pointer.
504 (frame_callback): Use arg as struct frames and fill it next frame.
505 Return DWARF_CB_ABORT when maxframes has been reached. Move
506 printing of frame to...
507 (print_frames): ...here. New function.
508 (thread_callback): Use arg as struct frames and set frames to zero.
509 Call print_frames.
510 (parse_opt): Handle '-n'.
511 (main): Add -n to options. Allocate frames using maxframes. Pass
512 frames to frame_callback and thread_callback.
513
5142013-12-20 Mark Wielaard <mjw@redhat.com>
515
516 * stack.c (show_one_tid): New static boolean.
517 (parse_opt): Handle '-1'.
518 (main): Add -1 to options. Call dwfl_getthread_frames when
519 show_one_tid is true.
520
5212013-12-18 Mark Wielaard <mjw@redhat.com>
522
523 * addr2line.c (options): Add symbol-sections, 'x'.
524 (show_symbol_sections): New static bool.
525 (parse_opt): Handle 'x'.
526 (print_addrsym): Use dwfl_module_addrinfo value.r
527 Also show section of address with show_symbol_sections.
528 (find_symbol): Use dwfl_module_getsym_info and set value.
529 (handle_address): Request value and use it instead of sym.st_value.
530 * readelf.c (format_dwarf_addr): Use dwfl_module_addrinfo to get
531 name and offset.
532
5332013-12-17 Masatake YAMATO <yamato@redhat.com>
534 Mark Wielaard <mjw@redhat.com>
535
536 * stack.c (show_activation, show_module, show_source): New variables.
537 (parse_opt): Set show_activation if -a option is given.
538 Set show_module if -m option is given. Set show_source if -s option
539 is given. Set all show booleans when -v option is given.
540 (main): Added `-a', `-m', `-s', and `-v' to the help message.
541 (frame_callback): Print module and source file information.
542
5432013-11-25 Petr Machata <pmachata@redhat.com>
544
545 * elflint.c (valid_e_machine): Add EM_AARCH64.
546
5472013-11-14 Petr Machata <pmachata@redhat.com>
548
549 * readelf.c (handle_core_item) <'h'>: New branch for handling
550 fields that shouldn't be displayed.
551
5522013-11-10 Mark Wielaard <mjw@redhat.com>
553
554 * stack.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
555 ARGP_PROGRAM_BUG_ADDRESS_DEF.
556 (print_version): New function.
557
5582013-11-09 Mark Wielaard <mjw@redhat.com>
559
560 * arlib.c (arlib_init): Call snprintf before using the result
561 with memcpy.
562 (arlib_finalize): Likewise.
563 * nm.c (show_symbols_sysv): Don't modify cnt inside assert.
564
5652013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com>
566
567 * Makefile.am (bin_PROGRAMS): Add stack.
568 (stack_LDADD): New.
569 * stack.c: New file.
570
5712013-11-05 Mark Wielaard <mjw@redhat.com>
572
573 * readelf.c (print_debug_ranges_section): Cast address to size_t
574 before comparison.
575 (print_debug_loc_section): Likewise.
576
5772013-10-18 Mark Wielaard <mjw@redhat.com>
578
579 * ar.c (main): Correct operation check when instance_specifed is set.
580
5812013-09-26 Petr Machata <pmachata@redhat.com>
582
583 * readelf.c (handle_file_note): New function.
584 (handle_notes_data): Call it to handle NT_FILE notes.
585
5862013-09-26 Petr Machata <pmachata@redhat.com>
587
588 * readelf.c (handle_siginfo_note): New function.
589 (handle_notes_data): Call it to handle NT_SIGINFO notes.
590 (buf_read_int, buf_read_ulong, buf_has_data): New functions.
591
5922013-08-13 Mark Wielaard <mjw@redhat.com>
593
594 * addr2line.c (options): Add "inlines", 'i'.
595 (show_inlines): New bool.
596 (parse_opt): Handle 'i'.
597 (print_diesym): New static function.
598 (print_src): New function taking code from...
599 (handle_address): here. Call print_src. Print inlines.
600
6012013-08-12 Mark Wielaard <mjw@redhat.com>
602
603 * addr2line.c (main): If there is a newline char at end of buf,
604 then remove it.
605
6062013-07-05 Mark Wielaard <mjw@redhat.com>
607
608 * readelf.c (print_ops): Take CU as argument, use it to print
609 parameter_ref DIE offset.
610 (struct listptr): Replace base field with cu.
611 (listptr_base): New function.
612 (compare_listptr): Use listptr_base.
613 (notice_listptr): Take CU as argument.
614 (skip_listptr_hole): Likewise.
615 (print_debug_ranges_section): Pass NULL as CU to skip_listptr_hole.
616 (print_cfa_program): Pass NULL as CU to print_ops.
617 (struct attrcb_args): Replace cu_base field with cu.
618 (attr_callback): Pass cu not cu_base to notice_listptr.
619 (print_debug_units): Don't calculate base, just set cu.
620 (print_debug_loc_section): Pass cu to skip_listptr_hole and
621 print_ops.
622
6232013-05-06 Mark Wielaard <mjw@redhat.com>
624
625 * readelf.c (print_ops): Format first DW_OP_GNU_implicit_pointer
626 argument as DIE offset.
627
6282013-04-24 Mark Wielaard <mjw@redhat.com>
629
630 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
631
6322013-03-25 Mark Wielaard <mjw@redhat.com>
633
634 * readelf.c (argp_options): Add decodedline.
635 (decodedline): New boolean initialized to false.
636 (parse_opt): Set decodedline when arg is decodedline.
637 (print_decoded_line_section): New function.
638 (print_debug_line_section): Call print_decoded_line_section when
639 decodedline is true.
640
6412013-03-25 Mark Wielaard <mjw@redhat.com>
642
643 * readelf.c (argp_option): Add decodedaranges.
644 (decodedaranges): New boolean initialized to false.
645 (parse_opt): Set decodedaranges when arg is decodedaranges.
646 (print_debug_aranges_section): Reimplemented and original
647 implementation renamed to...
648 (print_decoded_aranges_section): this.
649
6502013-03-25 Mark Wielaard <mjw@redhat.com>
651
652 * readelf.c (attrcb_args): Add Dwarf_Die.
653 (attr_callback): When highpc is in constant form also print as
654 address.
655 (print_debug_units): Set args.die.
656
6572013-03-19 Mark Wielaard <mjw@redhat.com>
658
659 * readelf.c (print_gdb_index_section): Free format_dwarf_addr results.
660
6612013-03-18 Mark Wielaard <mjw@redhat.com>
662
663 * readelf.c (print_gdb_index_section): Accept version 8.
664
6652013-03-01 Mark Wielaard <mjw@redhat.com>
666
667 * findtextrel.c (process_file): Release ELF and close file when not
668 text relocations are found.
669 * strip.c (handle_elf): Track memory used for .debuglink section data
670 and free when done.
671
6722013-02-24 Mark Wielaard <mjw@redhat.com>
673
674 * elflint.c (check_symtab): Add __bss_start__ to the list of symbols
675 allowed to have out of section values because of GNU ld bugs.
676
6772013-02-06 Mark Wielaard <mjw@redhat.com>
678
679 * elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the
680 list of symbols allowed to have out of section values because of
681 GNU ld bugs in either .symtab or .dynsym, but only when they are
682 zero sized.
683
6842013-01-24 Mark Wielaard <mjw@redhat.com>
685
686 * readelf.c (argp_option): Add unresolved-address-offsets, U.
687 (print_unresolved_addresses): New static.
688 (parse_opt): Handle 'U', set print_unprocessed_values.
689 (format_dwarf_addr): Take and handle new raw argument.
690 (print_ops): Call format_dwarf_addr with raw offset values.
691 (print_debug_ranges_section): Likewise.
692 (print_debug_frame_section): Likewise.
693 (attr_callback): Likewise.
694 (print_debug_line_section): Likewise.
695 (print_debug_loc_section): Likewise.
696 (print_gdb_index_section): Likewise.
697
6982013-01-18 Mark Wielaard <mjw@redhat.com>
699
700 * readelf.c (struct listptr): Add base Dwarf_Addr field.
701 (compare_listptr): Warn for same offset with different base.
702 (notice_listptr): Take base argument and set it.
703 (skip_listptr_hole): Likewise.
704 (struct attrcb_args): Removed unused cu_offset field.
705 Add cu_base Dwarf_Addr field.
706 (attr_callback): Call notice_listptr with cbargs->cu_base.
707 (print_debug_units): Set args.cu_base.
708 (print_debug_ranges_section): Get base and use for format_dwarf_addr.
709 (print_debug_loc_section): Likewise.
710
7112013-01-29 Jan Kratochvil <jan.kratochvil@redhat.com>
712
713 * readelf.c (handle_core_items): Limit special repeated items handling
714 to single-item formats '\n', 'b' and 'B', assert OFFSET 0 there.
715
7162012-12-18 Mark Wielaard <mark@bordewijk.wildebeest.org>
717
718 * readelf.c (ELF_INPUT_SECTION): New argp key value.
719 (argp_option): Add elf-section.
720 (elf_input_section): New static.
721 (parse_opt): Handle ELF_INPUT_SECTION and set elf_input_section.
722 (open_input_section): New function.
723 (process_file): Call open_input_section if elf_input_section set.
724
7252013-01-13 David Abdurachmanov <David.Abdurachmanov@cern.ch>
726
727 ar.c (do_oper_delete): Fix num passed to memset.
728
7292012-12-21 Mark Wielaard <mjw@redhat.com>
730
731 * readelf.c (print_debug_frame_section): Adjust FDE start address
732 if pcrel before feeding it to format_dwarf_addr.
733
7342012-12-21 Mark Wielaard <mjw@redhat.com>
735
736 * addr2line.c (main): Call dwfl_end.
737
7382012-12-11 Roland McGrath <roland@hack.frob.com>
739
740 * nm.c (show_symbols_sysv): Fix size passed to snprintf for invalid
741 sh_name case.
742 Reported by David Abdurachmanov <David.Abdurachmanov@cern.ch>.
743
7442012-10-16 Mark Wielaard <mjw@redhat.com>
745
746 * readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are
747 calculated beginning after the operand and 2-byte constant.
748
7492012-10-12 Jan Kratochvil <jan.kratochvil@redhat.com>
750
751 * readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ...
752 (WRAP_COLUMN): ... here.
753 (print_core_item): Remove parameter format_max. Update function
754 comment. Replace FORMAT_MAX by the real output width.
755 (handle_core_item): Remove the FORMAT_MAX values in TYPES, DO_TYPE,
756 calls of print_core_item, remove variable maxfmt, change
757 ITEM_WRAP_COLUMN to WRAP_COLUMN.
758 (handle_core_register): Remove the FORMAT_MAX values in TYPES, BITS,
759 calls of print_core_item, change REGISTER_WRAP_COLUMN to WRAP_COLUMN.
760
7612012-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
762
763 * readelf.c (handle_core_item) <b>: Make run an outer block variable.
764 Increase run only if LASTBIT != 0. Print last element only if RUN > 0.
765
7662012-08-27 Mark Wielaard <mjw@redhat.com>
767
768 * readelf.c (print_debug_macro_section): Print offset as PRIx64.
769
7702012-08-27 Mark Wielaard <mjw@redhat.com>
771
772 * readelf.c (register_info): Handle loc == NULL.
773
7742012-08-22 Jeff Kenton <jkenton@tilera.com>
775
776 * elflint.c (valid_e_machine): Add EM_TILEGX and EM_TILEPRO.
777
7782012-08-16 Mark Wielaard <mjw@redhat.com>
779
780 * readelf.c (dwarf_tag_name): Renamed from dwarf_tag_string.
781 Uses new dwarf_tag_string or adds ??? or lo_user+%#x when
782 appropriate.
783 (dwarf_attr_name): Likewise.
784 (dwarf_form_name): Likewise.
785 (dwarf_lang_name): Likewise.
786 (dwarf_inline_name): Likewise.
787 (dwarf_encoding_name): Likewise.
788 (dwarf_access_name): Likewise.
789 (dwarf_visibility_name): Likewise.
790 (dwarf_virtuality_name): Likewise.
791 (dwarf_identifier_case_name): Likewise.
792 (dwarf_calling_convention_name): Likewise.
793 (dwarf_ordering_name): Likewise.
794 (dwarf_discr_list_name): Likewise.
795 (print_ops): Remove KNOWN. Use dwarf_locexpr_opcode_string.
796 (attr_callback): Call new dwarf_foobar_name instead of old
797 dwarf_foobar_string functions.
798 (dwarf_tag_string): New function using known-dwarf.h macros.
799 (dwarf_attr_string): Likewise.
800 (dwarf_form_string): Likewise.
801 (dwarf_lang_string): Likewise.
802 (dwarf_inline_string): Likewise.
803 (dwarf_encoding_string): Likewise.
804 (dwarf_access_string): Likewise.
805 (dwarf_visibility_string): Likewise.
806 (dwarf_virtuality_string): Likewise.
807 (dwarf_identifier_case_string): Likewise.
808 (dwarf_calling_convention_string): Likewise.
809 (dwarf_ordering_string): Likewise.
810 (dwarf_discr_list_string): Likewise.
811 (dwarf_locexpr_opcode_string): Likewise.
812
8132012-06-27 Mark Wielaard <mjw@redhat.com>
814
815 * readelf.c (dwarf_form_string): Handle DW_FORM_GNU_ref_alt and
816 DW_FORM_GNU_strp_alt.
817 (attr_callback): Likewise.
818
8192012-07-30 Petr Machata <pmachata@redhat.com>
820
821 * nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and
822 corresponding printf) so that those that are referenced by only
823 one of the formatting strings are at the end.
824
8252012-07-29 Mark Wielaard <mjw@redhat.com>
826
827 * readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc.
828 (print_ops): Use known[op], not op_name, for DW_OP_GNU_parameter_ref.
829
8302012-07-19 Mark Wielaard <mjw@redhat.com>
831
832 * readelf.c (print_ops): Handle DW_OP_GNU_parameter_ref.
833
8342012-07-11 Mark Wielaard <mjw@redhat.com>
835
836 * readelf.c (options): Add macro to help of debug-dump.
837 (section_e): Add section_macro.
838 (section_all): Add section_macro.
839 (parse_opt): Handle macro.
840 (print_debug_macro_section): New function.
841 (print_debug): Add NEW_SECTION (macro).
842
8432012-07-10 Mark Wielaard <mjw@redhat.com>
844
845 * readelf.c (print_gdb_index_section): Add version 7 support.
846 Keep track of cu_nr. Print kind and static/global flag for each
847 symbol. When a symbol is in the TU list add 'T'.
848
8492012-06-26 Mark Wielaard <mjw@redhat.com>
850
851 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros.
852
8532012-06-22 Mark Wielaard <mjw@redhat.com>
854
855 * readelf.c (print_ops): Cast printf PRIu/x64 arguments to uint64_t
856 for gcc 4.7 -Wformat.
857
8582012-05-09 Roland McGrath <roland@hack.frob.com>
859
860 * elflint (check_sections): Allow zero sized sections at (filesz) end
861 of segment. And make check overflow-proofed.
862
8632012-04-24 Mark Wielaard <mjw@redhat.com>
864
865 * readelf.c (print_ops): Add DW_OP_GNU_push_tls_address,
866 DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr.
867
8682012-03-28 Roland McGrath <roland@hack.frob.com>
869
870 * elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections.
871
8722012-03-28 Mark Wielaard <mjw@redhat.com>
873
874 * readelf.c (print_debug_abbrev_section): Check there is Dwarf
875 section data.
876 (print_debug_str_section): Likewise.
877
8782012-03-21 Mark Wielaard <mjw@redhat.com>
879
880 * readelf.c (print_gdb_index_section): Accept version 6.
881
Ben Cheng25b3c042013-11-20 14:45:36 -08008822012-01-31 Mark Wielaard <mjw@redhat.com>
883
884 * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset.
885
8862012-01-21 Ulrich Drepper <drepper@gmail.com>
887
888 * addr2line.c: Update copyright year.
889 * ar.c: Likewise.
890 * elfcmp.c: Likewise.
891 * elflint.c: Likewise.
892 * findtextrel.c: Likewise.
893 * ld.c: Likewise.
894 * nm.c: Likewise.
895 * objdump.c: Likewise.
896 * ranlib.c: Likewise.
897 * readelf.c: Likewise.
898 * size.c: Likewise.
899 * strings.c: Likewise.
900 * strip.c: Likewise.
901 * unstrip.c: Likewise.
902
903 * nm.c (argp_children): Define.
904 (argp): Hook up argp_children.
905 (handle_ar): Optimize puts call.
906 (show_symbols_bsd): Use positional parameters to also print color
907 codes. Don't print STT_FILE symbols.
908 * objdump.c (options): Improve help text.
909 (argp_children): Define.
910 (argp): Hook up argp_children.
911 (disasm_info): Add elements for color codes.
912 (disasm_output): Print color codes as well.
913 (show_disasm): Set up disasm_info data for callback.
914
9152012-01-20 Roland McGrath <roland@hack.frob.com>
916
917 * arlib-argp.c (arlib_deterministic_output): Initialize from
918 configured value.
919 (help_filter): New function.
920 (argp): Use it.
921
922 * ar.c (main): Handle oper_none as usage error.
923
924 * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D.
925
926 * ranlib.c (argp): Use arlib_argp_children.
927
928 * arlib.c (arlib_init): Obey arlib_deterministic_output.
929
930 * arlib-argp.c: New file.
931 * Makefile.am (libar_a_SOURCES): Add it.
932 * arlib.h (arlib_deterministic_output, arlib_argp_children):
933 Declare new variables.
934 * ar.c (deterministic_output): Variable removed.
935 (do_oper_insert): Use arlib_deterministic_output instead.
936 (options, parse_opt): Don't handle -D here. Add group numbers.
937 (argp): Use arlib_argp_children.
938
9392011-12-20 Roland McGrath <roland@hack.frob.com>
940
941 * readelf.c (print_debug): Initialize DUMMY_DBG.elf.
942 Reported by Karel Klic <kklic@redhat.com>.
943
9442011-11-05 Roland McGrath <roland@hack.frob.com>
945
946 * ar.c (deterministic_output): New flag variable.
947 (options, parse_opt): Grok -D to set it.
948 (do_oper_insert): When set, use zero from mtime, uid, and gid.
949
950 * ar.c (do_oper_insert): Fix check on elf_rawfile return value.
951
9522011-10-04 Marek Polacek <mpolacek@redhat.com>
953
954 * readelf.c (register_info): Assume the right size of an array.
955
9562011-10-03 Ulrich Drepper <drepper@gmail.com>
957
958 * nm.c: Recognize option --mark-special. Still recognize --mark-weak
959 but don't show it in help anymore.
960 (mark_special): Renamed from mark_weak.
961 (parse_opt): Adjust.
962 (class_type_char): Take additional parameters for ELF file and ELF
963 header. Treat TLS symbols like objects.
964 In case of D symbols, show u for unique symbols, R for symbols in
965 read-only sections, B for symbols in BSS sections.
966 (show_symbols_bsd): Take additional parameters for ELF file and ELF
967 header. Adjust for class_type_char change. Show TLS symbols with
968 @ after them in case --mark-special is selected.
969 (show_symbols_posix): Likewise.
970 (show_symbols): Adjust calls to show_symbols_bsd and
971 show_symbols_posix.
972 (show_symbols_sysv): Avoid printing adress and size for undefined
973 symbols. Don't print initial special entry and section entries.
974
9752011-10-02 Ulrich Drepper <drepper@gmail.com>
976
977 * Makefile.am (demanglelib): Define.
978 (nm_LDADD): Add demanglelib.
979 * nm.c (options): Add -C option.
980 (demangle): Define as global variable.
981 (parse_opt): Recognize -C.
982 (show_symbols_sysv): Handle demangling.
983 (show_symbols_bad): Likewise.
984 (show_symbols_posix): Likewise.
985 (show_symbols): Likewise.
986
9872011-07-09 Roland McGrath <roland@hack.frob.com>
988
989 * readelf.c (options, parse_opt): Grok -W/--wide and ignore it.
990
991 * ar.c (parse_opt): Grok -u.
992
9932011-05-30 Mark Wielaard <mjw@redhat.com>
994
995 * strip.c (relocate): Make offset check overflow-proof.
996
9972011-05-23 Mark Wielaard <mjw@redhat.com>
998
999 * strip.c (relocate): Take new arguments is_rela to indicate
1000 whether the relocation is from a SHT_REL or SHT_RELA section.
1001 Relocate against any debug section symbol, not just STT_SECTION
1002 symbols. For SHT_REL relocations, fetch addend from offset and
1003 add it to symbol value if not zero.
1004
10052011-05-23 Mark Wielaard <mjw@redhat.com>
1006
1007 * strip.c (OPT_RELOC_DEBUG): New option.
1008 (argp_option): Add new --reloc-debug-sections option.
1009 (main): Check new option.
1010 (parse_opt): Likewise.
1011 (handle_elf): Remove any relocations between debug sections
1012 in ET_REL for the debug file when requested.
1013
10142011-05-18 Mark Wielaard <mjw@redhat.com>
1015
1016 * strip.c (handle_elf): Make sure all sections of a removed group
1017 section are removed too. Don't discard SHT_GROUP sections, copy
1018 section table before it gets modified. Section group signature
1019 symbols don't have to be retained.
1020
10212011-05-16 Jakub Jelinek <jakub@redhat.com>
1022
1023 * readelf.c (print_ops): Handle DW_OP_GNU_const_type,
1024 DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert
1025 and DW_OP_GNU_reinterpret.
1026
10272011-05-17 Mark Wielaard <mjw@redhat.com>
1028
1029 * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and
1030 DW_TAG_GNU_call_site_parameter return strings.
1031
10322011-05-11 Marek Polacek <mpolacek@redhat.com>
1033
1034 * nm.c (show_symbols_sysv): Remove unused if/else, remove
1035 unused `prefix' and `fname' parameters.
1036
10372011-05-07 Marek Polacek <mpolacek@redhat.com>
1038
1039 * unstrip.c (compare_sections_nonrel): Mark this function as static.
1040
10412011-04-26 Mark Wielaard <mjw@redhat.com>
1042
1043 * readelf.c (handle_notes_data): Call ebl_object_note_type_name
1044 with note name.
1045
10462011-04-14 Mark Wielaard <mjw@redhat.com>
1047
1048 * readelf.c (options): Add gdb_index.
1049 (section_e): Define section_gdb_index.
1050 (parse_opt): Recognize gdb_index debug-dump argument.
1051 (print_gdb_index_section): New function.
1052 (print_debug): Add gdb_index to debug_sections.
1053
10542011-03-24 Petr Machata <pmachata@redhat.com>
1055
1056 * readelf.c (print_debug_line_section): Emit initial space for all
1057 opcode lines. Print offset in front of each opcode.
1058
10592011-03-22 Marek Polacek <mpolacek@redhat.com>
1060
1061 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case.
1062
10632011-03-22 Mark Wielaard <mjw@redhat.com>
1064
1065 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site
1066 and DW_TAG_GNU_call_site_parameter.
1067 (dwarf_attr_string): Support DW_AT_GNU_call_site_value,
1068 DW_AT_GNU_call_site_data_value,
1069 DW_AT_GNU_call_site_target,
1070 DW_AT_GNU_call_site_target_clobbered,
1071 DW_AT_GNU_tail_call,
1072 DW_AT_GNU_all_tail_call_sites,
1073 DW_AT_GNU_all_call_sites,
1074 and DW_AT_GNU_all_source_call_sites.
1075 (print_ops): Handle DW_OP_GNU_entry_value.
1076 (attr_callback): Handle DW_AT_GNU_call_site_value,
1077 DW_AT_GNU_call_site_data_value,
1078 DW_AT_GNU_call_site_target,
1079 and DW_AT_GNU_call_site_target_clobbered.
1080
10812011-03-10 Mark Wielaard <mjw@redhat.com>
1082
1083 * elflint.c (check_symtab): Use ebl_check_st_other_bits.
1084
10852011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
1086
1087 * readelf.c (reset_listptr): Clear TABLE->TABLE.
1088
10892011-02-25 Mark Wielaard <mjw@redhat.com>
1090
1091 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
1092 (dwarf_form_string): Properly format and return unknown form.
1093
10942011-02-23 Roland McGrath <roland@redhat.com>
1095
1096 * readelf.c (section_name): New function.
1097 (print_debug_abbrev_section): Use it instead of constant.
1098 (print_debug_aranges_section): Likewise.
1099 (print_debug_ranges_section): Likewise.
1100 (print_debug_units): Likewise.
1101 (print_debug_line_section): Likewise.
1102 (print_debug_loc_section): Likewise.
1103 (print_debug_macinfo_section): Likewise.
1104 (print_debug_pubnames_section): Likewise.
1105 (print_debug_str_section): Likewise.
1106 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too.
1107 (print_debug_abbrev_section): Use decoded d_size, not sh_size.
1108 (print_debug_str_section): Likewise.
1109
1110 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
1111
11122011-02-11 Roland McGrath <roland@redhat.com>
1113
1114 * elfcmp.c (verbose): New variable.
1115 (options, parse_opt): Grok -l/--verbose to set it.
1116 (main): Under -l, keep going after first difference.
1117
1118 * elfcmp.c (ignore_build_id): New variable.
1119 (options, parse_opt): Grok --ignore-build-id to set it.
1120 (main): For SHT_NOTE sections, compare note details rather than raw
1121 bytes. Under --ignore-build-id, don't complain about differing build
1122 ID contents if lengths match.
1123
11242011-02-08 Roland McGrath <roland@redhat.com>
1125
1126 * ldscript.y (filename_id_star): Remove unused variable.
1127
1128 * unstrip.c (copy_elided_sections): Remove unused variable.
1129
1130 * elflint.c (check_dynamic): Remove unused variables.
1131
1132 * elflint.c (check_symtab): Warn about missing xndx section only once.
1133
1134 * ldgeneric.c (check_for_duplicate2): Remove unused variable.
1135
11362011-01-06 Roland McGrath <roland@redhat.com>
1137
1138 * strip.c (handle_elf): Under --strip-sections, remove all
1139 non-allocated sections and never generate .gnu_debuglink.
1140
11412011-01-04 Roland McGrath <roland@redhat.com>
1142
1143 * strip.c (remove_shdrs): New variable.
1144 (options, parse_opt): Grok --strip-sections to set it.
1145 (handle_elf): When that's set, truncate off .shstrtab and shdrs.
1146
11472010-11-10 Roland McGrath <roland@redhat.com>
1148
1149 * findtextrel.c (process_file): Don't assume order of sections.
1150 Reported by Mike Hommey <mh@glandium.org>.
1151
11522010-07-26 Roland McGrath <roland@redhat.com>
1153
1154 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer.
1155
11562010-08-30 Roland McGrath <roland@redhat.com>
1157
1158 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses.
1159 * readelf.c (parse_opt): Add section_info to implicit_debug_sections
1160 for ranges, loc.
1161 (struct listptr, struct listptr_table): New types.
1162 (compare_listptr, reset_listptr, sort_listptr): New functions.
1163 (notice_listptr, skip_listptr_hole): New functions.
1164 (struct attrcb_args): Add silent member.
1165 (attr_callback): Call notice_listptr for loclistptr and rangelistptr.
1166 Suppress output if silent, but still call notice_listptr.
1167 (print_debug_units): Suppress output if section_info not requested.
1168 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole.
1169 (print_debug_ranges_section): Likewise.
1170 (print_debug): Call reset_listptr on both tables.
1171
1172 * readelf.c (print_debug_ranges_section): Print empty list.
1173 (print_debug_loc_section): Likewise.
1174
1175 * readelf.c (print_debug_loc_section): Check for bogus length
1176 before calling print_ops.
1177 (print_ops): Check harder for bogus data that would read off end.
1178
11792010-08-11 Roland McGrath <roland@redhat.com>
1180
1181 * readelf.c (for_each_section_argument): Process all sections with
1182 matching name, not just the first.
1183
11842010-07-26 Roland McGrath <roland@redhat.com>
1185
1186 * readelf.c (print_ops): Take new argument for CU version.
1187 Fix DW_OP_call_ref decoding to depend on it.
1188 (print_debug_loc_section): Update caller.
1189 (print_cfa_program): Take new argument, pass it down.
1190 (print_debug_frame_section): Update caller.
1191 (struct attrcb_args): New member version.
1192 (print_debug_units): Initialize it.
1193
11942010-07-02 Roland McGrath <roland@redhat.com>
1195
1196 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for
1197 initial_location.
1198
11992010-06-30 Roland McGrath <roland@redhat.com>
1200
1201 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO.
1202 Ignore st_size for a non-S_ISREG file descriptor.
1203 (read_block): Move assert after no-mmap bail-out.
1204 (read_block_no_mmap): Fix size calculations for moving buffer remnant.
1205
12062010-06-22 Roland McGrath <roland@redhat.com>
1207
1208 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa.
1209
12102010-06-21 Roland McGrath <roland@redhat.com>
1211
1212 * readelf.c (dwarf_tag_string): Handle new v4 tags.
1213 (dwarf_attr_string): Add new attributes.
1214 (dwarf_tag_string): Handle DW_TAG_GNU_*.
1215
1216 * readelf.c (print_ops): Use 64-bit types for LEB128 operands.
1217 (print_cfa_program): Likewise.
1218
12192010-06-20 Roland McGrath <roland@redhat.com>
1220
1221 * readelf.c (print_debug_units): New function, broken out of ...
1222 (print_debug_info_section): ... here. Call it.
1223 (print_debug_types_section): New function.
1224 (enum section_e): Add section_types alias for section_info.
1225 (print_debug): Add types to the sections table.
1226
1227 * readelf.c (print_debug_frame_section): Handle version 4 format.
1228
1229 * readelf.c (print_debug_line_section): Handle version 4 format.
1230
12312010-06-14 Roland McGrath <roland@redhat.com>
1232
1233 * unstrip.c (copy_elided_sections): Make sure all sections' data have
1234 been read in before we write anything out.
1235
12362010-06-04 Roland McGrath <roland@redhat.com>
1237
1238 * unstrip.c (update_shdr): New function.
1239 (update_sh_size): Call it instead of gelf_update_shdr.
1240 (adjust_relocs, add_new_section_symbols): Likewise.
1241 (new_shstrtab, copy_elided_sections): Likewise.
1242
1243 * unstrip.c (copy_elided_sections): Bail if stripped file has more
1244 sections than unstripped file, rather than getting confused later.
1245
12462010-06-01 Roland McGrath <roland@redhat.com>
1247
1248 * readelf.c (dwarf_form_string): Handle DWARF 4 forms.
1249 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
1250 DW_FORM_sec_offset, DW_FORM_ref_sig8.
1251
1252 * readelf.c (print_debug): Don't bail if libdw setup fails.
1253 Suppress complaint if we only want .eh_frame anyway.
1254
12552010-05-28 Ulrich Drepper <drepper@redhat.com>
1256
1257 * readelf.c (attr_callback): Also print form information.
1258
12592010-05-19 Roland McGrath <roland@redhat.com>
1260
1261 * addr2line.c (find_symbol): Short-circuit on empty name.
1262 (handle_address): Handle SYMBOL with no +OFFSET.
1263
12642010-05-08 Roland McGrath <roland@redhat.com>
1265
1266 * readelf.c (print_ops): Take new arg OFFSET_SIZE.
1267 Use that for DW_OP_call_ref, not ADDRSIZE.
1268 (print_cfa_program): Update caller.
1269 (struct attrcb_args): Add offset_size field.
1270 (attr_callback): Use it for print_ops call.
1271 (print_debug_info_section): Initialize it.
1272 (print_ops): Likewise.
1273
12742010-04-14 Roland McGrath <roland@redhat.com>
1275
1276 * readelf.c (handle_core_item): Fix bitmask printing.
1277
12782010-04-06 Roland McGrath <roland@redhat.com>
1279
1280 * ld.c (options): Fix some typos in messages.
1281 * elflint.c (check_scn_group, check_group): Likewise.
1282 * ldscript.y (add_id_list): Likewise.
1283 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
1284 before translated string containing a literal %.
1285
12862010-02-26 Roland McGrath <roland@redhat.com>
1287
1288 * readelf.c (process_file): Don't leak an fd in failure case.
1289
12902010-02-15 Roland McGrath <roland@redhat.com>
1291
1292 * Makefile.am: Use config/eu.am for common stuff.
1293
1294 * readelf.c (print_debug_frame_section): Add a cast to avoid sign
1295 mismatch in comparison.
1296
12972010-02-02 Roland McGrath <roland@redhat.com>
1298
1299 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
1300 (read_encoded): Likewise.
1301 (print_debug_frame_section): Check for bogus augmentation length.
1302 For P augmentation, use read_encoded, print the encoding description,
1303 and use hex for unsigned values.
1304
13052010-01-15 Roland McGrath <roland@redhat.com>
1306
1307 * ar.c: Include <sys/stat.h>.
1308 * elflint.c: Likewise.
1309 * readelf.c: Likewise.
1310 * strip.c: Likewise.
1311 * unstrip.c: Likewise
1312
13132010-01-07 Roland McGrath <roland@redhat.com>
1314
1315 * readelf.c (print_ehdr): Handle PN_XNUM.
1316 (phnum): New static variable.
1317 (process_elf_file): Set it with elf_getphdrnum.
1318 (print_phdr): Use phnum instead of EHDR->e_phnum.
1319 (print_dynamic, handle_notes): Likewise.
1320 (handle_relocs_rel, handle_relocs_rela): Likewise.
1321
1322 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
1323
1324 * elflint.c (phnum): New static variable.
1325 (check_elf_header): Set it, handling PN_XNUM.
1326 Use that in place of EHDR->e_phnum throughout.
1327 (check_symtab, check_reloc_shdr, check_dynamic): Likewise.
1328 (unknown_dependency_p, check_sections, check_program_header): Likewise.
1329
13302010-01-05 Roland McGrath <roland@redhat.com>
1331
1332 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
1333 DW_AT_GNU_template_name.
1334
13352010-01-04 Roland McGrath <roland@redhat.com>
1336
1337 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
1338 (handle_core_note): Pass NHDR and NAME to ebl_core_note.
1339 (handle_core_item): Handle .format of '\n' as \n-separated strings.
1340
1341 * readelf.c (implicit_debug_sections): New variable.
1342 (parse_opt): Set it instead of print_debug_sections for -a.
1343 OR them together for print_debug check.
1344 (print_debug): OR them together for section check.
1345
1346 * readelf.c (options): Repartition into set implied by -a and others.
1347 Correct -a text to match reality.
1348
1349 * readelf.c (struct section_argument): Add bool member 'implicit'.
1350 (parse_opt): Set it for -a cases, clear it for -x args.
1351 (for_each_section_argument): Don't complain about a missing section by
1352 name if it's implicit.
1353
13542009-11-16 Roland McGrath <roland@redhat.com>
1355
1356 * readelf.c (print_string_section): Punt SHT_NOBITS like empty
1357 sections, just as dump_data_section already does.
1358
13592009-09-21 Ulrich Drepper <drepper@redhat.com>
1360
1361 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be
1362 set for .comment section.
1363 Patch by Mark Wielaard <mjw@redhat.com>.
1364
13652009-09-08 Roland McGrath <roland@redhat.com>
1366
1367 * ar.c (main): Fix typo in message format.
1368
13692009-08-21 Roland McGrath <roland@redhat.com>
1370
1371 * readelf.c (attr_callback): Use print_block only when we don't use
1372 print_ops.
1373
13742009-08-14 Roland McGrath <roland@redhat.com>
1375
1376 * ar.c (do_oper_extract): Use pathconf instead of statfs.
1377
13782009-08-01 Ulrich Drepper <drepper@redhat.com>
1379
1380 * debugpred.h: Add two most const.
1381
13822009-07-26 Mark Wielaard <mjw@redhat.com>
1383
1384 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
1385
13862009-07-25 Mark Wielaard <mjw@redhat.com>
1387
1388 * Makefile.am (addr2line_LDADD): Add $(libelf).
1389
13902009-07-24 Roland McGrath <roland@redhat.com>
1391
1392 * readelf.c (print_block): New function.
1393 (print_ops): Use it.
1394 (attr_callback): Use it for DW_FORM_block* forms.
1395
13962009-07-20 Mark Wielaard <mjw@redhat.com>
1397
1398 * readelf.c (print_ops): Add handling of DW_OP_implicit_value
1399 and DW_OP_stack_value.
1400
14012009-07-14 Ulrich Drepper <drepper@redhat.com>
1402
1403 * elflint.c (check_elf_header): Allow Linux ABI.
1404 (check_symtab): Handle STB_GNU_UNIQUE.
1405
14062009-07-08 Mark Wielaard <mjw@redhat.com>
1407
1408 * readelf.c (attr_callback): Handle DW_Form constants for
1409 DW_AT_data_member_location.
1410
14112009-07-06 Roland McGrath <roland@redhat.com>
1412
1413 * readelf.c (register_info): New function. Handle unknown register #s.
1414 (print_cfa_program): Use it.
1415 (handle_core_register, handle_core_registers): Likewise.
1416
14172009-06-28 Roland McGrath <roland@redhat.com>
1418
1419 * readelf.c (print_address_names): New static variable.
1420 (options, parse_opt): Grok -N/--numeric-addresses to clear it.
1421 (format_dwarf_addr): Don't look up name if !print_address_names.
1422
14232009-06-13 Ulrich Drepper <drepper@redhat.com>
1424
1425 * ldgeneric.c: Don't use deprecated libelf functions.
1426 * nm.c: Likewise.
1427 * objdump.c: Likewise.
1428 * readelf.c: Likewise.
1429 * size.c: Likewise.
1430 * strip.c: Likewise.
1431 * unstrip.c: Likewise.
1432 * ld.h: Fix up comment.
1433
14342009-06-01 Ulrich Drepper <drepper@redhat.com>
1435
1436 * readelf.c (print_relocs): Expect ELF header argument and pass on
1437 to handle_relocs_rel* functions. Adjust caller.
1438 (handle_relocs_rel): Add ELF header argument. Add special case for
1439 the IRELATIVE relocations in statically linked executables.
1440 (handle_relocs_rela): Likewise.
1441
14422009-04-29 Ulrich Drepper <drepper@redhat.com>
1443
1444 * elflint.c (check_symtab): Add tests of st_other field.
1445
14462009-04-23 Ulrich Drepper <drepper@redhat.com>
1447
1448 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
1449
14502009-04-20 Roland McGrath <roland@redhat.com>
1451
1452 * addr2line.c (print_dwarf_function): Honor -s and -A for file names
1453 of inline call sites.
1454
1455 * addr2line.c (just_section): New variable.
1456 (adjust_to_section): New function, broken out of ...
1457 (handle_address): ... here.
1458 (options, parse_opt): Add -j/--section=NAME to set it.
1459
14602009-04-15 Roland McGrath <roland@redhat.com>
1461
1462 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
1463 64-bit format header, DW_CIE_ID_32 in 32-bit format header.
1464
14652009-04-14 Roland McGrath <roland@redhat.com>
1466
1467 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
1468 like SHT_GNU_ATTRIBUTES.
1469
1470 * readelf.c (handle_core_registers): Fix error message.
1471
1472 * strip.c (handle_elf: check_preserved): Don't note any change when
1473 .debug_data is already filled from a previous pass.
1474
14752009-02-05 Ulrich Drepper <drepper@redhat.com>
1476
1477 * objdump.c (show_relocs_x): Minor cleanups.
1478
1479 * readelf.c (print_cfa_program): Correct a few labels.
1480 Print first DW_CFA_expression and DW_CFA_val_expression parameter
1481 as register.
1482
14832009-02-01 Ulrich Drepper <drepper@redhat.com>
1484
1485 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
1486 into ...
1487 (show_relocs_x): ...here. New function.
1488 (show_relocs): Better spacing in output.
1489
1490 * objdump.c (show_relocs_rela): Show offsets as signed values.
1491
1492 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
1493 Improve some error messages.
1494 Use program_invocation_short_name instead of AR macro.
1495 * Makefile.am (CFLAGS_ar): Remove.
1496 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
1497 * objdump.c (parse_opt): Likewise.
1498 * readelf.c (parse_opt): Likewise.
1499
15002009-01-27 Roland McGrath <roland@redhat.com>
1501
1502 * readelf.c (print_ops): Notice short length, don't overrun buffer
1503 (still need to fix LEB128).
1504
1505 * readelf.c (print_ops): Fix DW_OP_call[24] decoding.
1506
1507 * readelf.c (print_ops): Print (empty)\n when LEN == 0.
1508
15092009-01-24 Ulrich Drepper <drepper@redhat.com>
1510
1511 * readelf.c (print_debug_frame_section): Fix computation of vma_base
1512 for PC-relative mode.
1513
15142009-01-23 Ulrich Drepper <drepper@redhat.com>
1515
1516 * size.c (process_file): When handling archive, close file descriptor
1517 here. For unknown file format also close file descriptor.
1518 (handle_ar): Don't close file descriptor here.
1519
1520 * readelf.c (parse_opt): Move code to add to dump_data_sections and
1521 string_sections list in local function add_dump_section. Adjust 'x'
1522 key handling. For 'a' key add .strtab, .dynstr, and .comment section
1523 to string_sections list.
1524
15252009-01-22 Roland McGrath <roland@redhat.com>
1526
1527 * readelf.c (print_phdr): Don't print section mapping when no sections.
1528
1529 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
1530
1531 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
1532 and reset it only for the 'true' cases.
1533
1534 * Makefile.am (addr2line_no_Wformat): New variable.
1535
1536 * readelf.c (print_debug_frame_section): Use t instead of j formats
1537 for ptrdiff_t OFFSET.
1538
15392009-01-21 Ulrich Drepper <drepper@redhat.com>
1540
1541 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
1542 test. Handle debuginfo files.
1543 (check_exception_data): First sanity test.
1544
15452009-01-17 Ulrich Drepper <drepper@redhat.com>
1546
1547 * readelf.c (print_debug_exception_table): Show target of ar_disp
1548 field.
1549
1550 * elflint.c (check_program_header): Add most consistency checks for
1551 PT_GNU_EH_FRAME entry.
1552
1553 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
1554 ARGP_PROGRAM_BUG_ADDRESS_DEF.
1555 * ar.c: Likewise.
1556 * elfcmp.c: Likewise.
1557 * elflint.c: Likewise.
1558 * findtextrel.c: Likewise.
1559 * ld.c: Likewise.
1560 * nm.c: Likewise.
1561 * objdump.c: Likewise.
1562 * ranlib.c: Likewise.
1563 * readelf.c: Likewise.
1564
1565 * size.c: Likewise.
1566 * strings.c: Likewise.
1567 * strip.c: Likewise.
1568 * unstrip.c: Likewise.
1569
15702009-01-16 Ulrich Drepper <drepper@redhat.com>
1571
1572 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
1573 matches .eh_frame_hdr section, if it is available. Also check that
1574 the segment is allocated, not writable, not executable.
1575
1576 * readelf.c: Add -e option. Dump exception and unwind related
1577 sections. Add -e to -a.
1578 (print_encoding_base): Handle DW_EH_PE_omit.
1579 (print_debug_exception_table): Beginning of support.
1580 (print_debug): Hook up print_debug_exception_table for
1581 .gcc_except_table sections.
1582
1583 * readelf.c (print_debug_frame_section): Some fixes for last change.
1584
15852009-01-15 Ulrich Drepper <drepper@redhat.com>
1586
1587 * readelf.c (print_encoding): Now a toplevel function.
1588 (print_relinfo): Likewise.
1589 (print_encoding_base): Broken out of print_debug_frame_section.
1590 (print_debug_frame_section): Print different header for .eh_frame
1591 sections. Fix recognition of matching CIEs in .debug_frame sections.
1592 Print absolute offset for PC-relative FDE locations. Don't print
1593 table header for FDEs if the table is empty.
1594 (read_encoded): New function.
1595 (print_debug_frame_hdr_section): New function.
1596 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
1597 sections.
1598
1599 * readelf.c (handle_relocs_rel): Print section number.
1600 (print_debug_abbrev_section): Likewise.
1601 (print_debug_aranges_section): Likewise.
1602 (print_debug_ranges_section): Likewise.
1603 (print_debug_info_section): Likewise.
1604 (print_debug_line_section): Likewise.
1605 (print_debug_loc_section): Likewise.
1606 (print_debug_macinfo_section): Likewise.
1607 (print_debug_pubnames_section): Likewise.
1608 (print_debug_str_section): Likewise.
1609
16102009-01-10 Ulrich Drepper <drepper@redhat.com>
1611
1612 * strings.c (read_block): Fix typo in error message string.
1613
16142009-01-07 Ulrich Drepper <drepper@redhat.com>
1615
1616 * ld.c (ld_new_searchdir): Fix adding to search path list.
1617
16182009-01-06 Ulrich Drepper <drepper@redhat.com>
1619
1620 * readelf.c: Implement call frame debug section dumping.
1621
16222009-01-05 Roland McGrath <roland@redhat.com>
1623
1624 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
1625 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
1626
16272009-01-01 Ulrich Drepper <drepper@redhat.com>
1628
1629 * addr2line.c: Update copyright year.
1630 * ar.c: Likewise.
1631 * elfcmp.c: Likewise.
1632 * elflint.c: Likewise.
1633 * findtextrel.c: Likewise.
1634 * ld.c: Likewise.
1635 * nm.c: Likewise.
1636 * objdump.c: Likewise.
1637 * ranlib.c: Likewise.
1638 * readelf.c: Likewise.
1639 * size.c: Likewise.
1640 * strings.c: Likewise.
1641 * strip.c: Likewise.
1642 * unstrip.c: Likewise.
1643
16442008-12-11 Roland McGrath <roland@redhat.com>
1645
1646 * nm.c (sym_name): New function.
1647 (show_symbols_sysv): Use it in place of elf_strptr.
1648 (show_symbols_bsd, show_symbols_posix): Likewise.
1649 Fixes RHBZ#476136.
1650
1651 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
1652 elf_strptr fails.
1653
16542008-12-02 Roland McGrath <roland@redhat.com>
1655
1656 * readelf.c (count_dwflmod, process_file): Don't presume encoding of
1657 nonzero OFFSET argument to dwfl_getmodules.
1658
16592008-08-07 Roland McGrath <roland@redhat.com>
1660
1661 * addr2line.c (main): Pass string to handle_address.
1662 (see_one_module): New function, subroutine of handle_address.
1663 (find_symbol): Likewise.
1664 (handle_address): Take string argument rather than address.
1665 Convert plain number, or handle strings like "(section)+offset"
1666 or "symbol+offset".
1667
16682008-08-01 Roland McGrath <roland@redhat.com>
1669
1670 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
1671 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
1672
1673 * readelf.c (convert): Take new argument SIZE.
1674 (handle_core_register, handle_core_item): Update callers.
1675 (handle_core_item): Take new arg REPEATED_SIZE.
1676 (handle_core_items): Special case for a singleton item,
1677 let handle_core_item handle repeats if it wants to.
1678
1679 * readelf.c (handle_core_items): Give abridged output
1680 for identical groups repeated more than twice.
1681
16822008-07-04 Roland McGrath <roland@redhat.com>
1683
1684 * readelf.c (handle_core_items): Handle ELF_T_ADDR.
1685
16862008-04-10 Roland McGrath <roland@redhat.com>
1687
1688 * strip.c (handle_elf): Don't keep sections that kept symbol tables
1689 refer to. Instead, just be sure to preserve the original symbol
1690 table in the debug file so those symbols go with their sections and
1691 can be elided from the stripped version of the symbol table.
1692
1693 * strip.c (handle_elf): When a discarded section kept in the debug
1694 file refers to a nondiscard section via sh_link/sh_info, preserve
1695 that nondiscarded section unmodified in the debug file as well.
1696 Skip adjustment of discarded sections symbol table references when
1697 that symbol table is copied in this way.
1698
1699 * elflint.c (check_symtab): Don't crash from missing symbol names
1700 after diagnosing bogus strtab.
1701
1702 * strip.c (handle_elf): Cosmetic cleanup in special section contents
1703 adjustment for symtab changes.
1704
17052008-03-31 Roland McGrath <roland@redhat.com>
1706
1707 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
1708 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook
1709 excuse a special section.
1710
17112008-03-27 Roland McGrath <roland@redhat.com>
1712
1713 * elflint.c (check_sections): Check that executability and writability
1714 of sections is reflected in segment p_flags.
1715
17162008-03-26 Roland McGrath <roland@redhat.com>
1717
1718 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
1719 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
1720 is valid in RELRO.
1721
17222008-02-29 Roland McGrath <roland@redhat.com>
1723
1724 * readelf.c (print_attributes): Add a cast.
1725 * elflint.c (check_attributes): Likewise.
1726
1727 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
1728 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
1729 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
1730
17312008-02-03 Ulrich Drepper <drepper@redhat.com>
1732
1733 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
1734 when linked into executable.
1735 (elf_i386_create_relocations): Likewise.
1736
17372008-02-20 Roland McGrath <roland@redhat.com>
1738
1739 * readelf.c (print_attributes): New function.
1740 (process_elf_file): Call it under -A.
1741
1742 * elflint.c (check_attributes): Implement it for real.
1743
17442008-02-19 Roland McGrath <roland@redhat.com>
1745
1746 * elflint.c (special_sections): Handle .gnu.attributes section.
1747 (check_sections): Likewise.
1748 (check_attributes): New function.
1749
17502008-02-10 Roland McGrath <roland@redhat.com>
1751
1752 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
1753 sections and ET_REL files.
1754
17552008-02-02 Ulrich Drepper <drepper@redhat.com>
1756
1757 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
1758 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
1759 and R_386_TLS_LE.
1760 (elf_i386_create_relocations): Likewise.
1761 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
1762 elements.
1763 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
1764 (ld_generic_create_outfile): Add PT_TLS entry to program header.
1765 Fix generation of PT_GNU_STACK entry.
1766
17672008-02-01 Ulrich Drepper <drepper@redhat.com>
1768
1769 * ld.c (replace_args): Prevent loop over replacements if the parameter
1770 is only two characters long.
1771
1772 * ld.c: Recognize sha1 argument for --build-id parameter.
1773 * ldgeneric.c (create_build_id_section): Handle sha1.
1774 (compute_hash_sum): New function. Broken out of compute_build_id.
1775 Take hash function and context as parameters.
1776 (compute_build_id): Use compute_hash_sum for md5 and the new sha1
1777 implementation.
1778
17792008-01-31 Ulrich Drepper <drepper@redhat.com>
1780
1781 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
1782 * ld.c: Recognize --build-id command line parameter.
1783 * ld.h: Define scn_dot_note_gnu_build_id.
1784 (struct ld_state): Add build_id and buildidscnidx elements.
1785 * ldgeneric.c: Implement --build-id command line parameter.
1786 * ldlex.l (ID): Recognize - as valid character after the first one.
1787
17882008-01-29 Ulrich Drepper <drepper@redhat.com>
1789
1790 * ld.c (replace_args): New function.
1791 (main): Use it to rewrite old-style parameters.
1792
1793 * elf32-i386.script: Add .gnu.hash section.
1794 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
1795 (fillin_special_symbol): Initialize st_size.
1796 (sortfct_hashval): New function.
1797 (create_gnu_hash): New function.
1798 (create_hash): New function.
1799 (ld_generic_create_outfile): Use the new functions to create the
1800 hash tables.
1801
1802 * elflint.c (check_gnu_hash): Fix index value printed in error message.
1803
18042008-01-24 Ulrich Drepper <drepper@redhat.com>
1805
1806 * elflint.c (check_group): Check that signature symbol for section
1807 group is not an empty string.
1808 * ldgeneric.c: Remove magic assignment of indeces in the dynsym
1809 section. Start implementation of --hash-style.
1810 * i386_ld.c: Likewise.
1811 * ld.c: Recognize --hash-style.
1812 * ld.h (struct scninfo): Add comdat_group.
1813 Add additional parameter to finalize_plt callback.
1814
18152008-01-22 Ulrich Drepper <drepper@redhat.com>
1816
1817 * ld.h (struct callbacks): Add initialize_gotplt.
1818 (struct scnhead): Add scn_dot_gotplt.
1819 (struct ld_state): Add gotpltscnidx.
1820 * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
1821 (elf_i386_initialize_pltrel): Likewise.
1822 (elf_i386_initialize_got): There is now a separate .got.plt, so
1823 don't do the PLT-related work here. Initialize d_type.
1824 (elf_i386_initialize_gotplt): New function.
1825 (elf_i386_plt0): Use ud2a after indirect jump.
1826 (elf_i386_pic_plt0_entry): Likewise.
1827 (elf_i386_finalize_plt): Reference now .got.plt.
1828 (elf_i386_count_relocations): For GOT entries which need no relocation
1829 don't bump nrel_got.
1830 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32
1831 handling for split .got/.got.plt.
1832 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
1833 * elf32-i386.script: Sort sections for security. There are no .got
1834 input sections. Add .got.plt.
1835 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
1836 (ld_generic_create_outfile): Initialize .got.plt section.
1837 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
1838
18392008-01-19 Ulrich Drepper <drepper@redhat.com>
1840
1841 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
1842 symbols are not carried over into statically linked output files.
1843 Add dummy entries for more TLS relocations.
1844
1845 * ld.c (options): Add long names for -( and -).
1846
1847 * ldgeneric.c (check_definition): For newly found definitions don't
1848 mark section as used if symbol is absolute.
1849 (extract_from_archive): Only assign archive sequence number the first
1850 time the archive is handled. Update ld_state.last_archive_used
1851 if any symbol was used. Remove nround variable.
1852 (file_process2): When using symbol from an archive, update
1853 ld_state.group_start_archive, ld_state.archives, and
1854 ld_state.tailarchives.
1855 (ld_generic_file_process): If group is not handled anymore, after
1856 freeing ELF handles for the archives, clear ld_state.archives and
1857 *nextp. Fix wrong logic in recognizing first iteration of group
1858 loop. When clearing flags, also clear ld_state.group_start_archive.
1859
18602008-01-11 Ulrich Drepper <drepper@redhat.com>
1861
1862 * objdump.c (show_disasm): Adjust disassembler format string for
1863 removal of %e.
1864
18652008-01-04 Roland McGrath <roland@redhat.com>
1866
1867 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
1868 a size greater than the items cover means multiple sets of items.
1869 (handle_core_note): Update caller.
1870
18712008-01-04 Roland McGrath <roland@redhat.com>
1872
1873 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
1874
18752008-01-03 Roland McGrath <roland@redhat.com>
1876
1877 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
1878
1879 * elflint.c (check_dynamic): Remove duplicate initializer.
1880
18812008-01-02 Ulrich Drepper <drepper@redhat.com>
1882
1883 * addr2line.c: Update copyright year.
1884 * ar.c: Likewise.
1885 * elfcmp.c: Likewise.
1886 * elflint.c: Likewise.
1887 * findtextrel.c: Likewise.
1888 * ld.c: Likewise.
1889 * nm.c: Likewise.
1890 * objdump.c: Likewise.
1891 * ranlib.c: Likewise.
1892 * readelf.c: Likewise.
1893 * size.c: Likewise.
1894 * strings.c: Likewise.
1895 * strip.c: Likewise.
1896 * unstrip.c: Likewise.
1897
18982007-12-30 Ulrich Drepper <drepper@redhat.com>
1899
1900 * objdump (show_disasm): Use %e after third parameter.
1901
19022007-12-21 Ulrich Drepper <drepper@redhat.com>
1903
1904 * strip.c: Fix wrong parenthesis in a few branch predictions.
1905 * strings.c: Likewise.
1906
19072007-12-20 Ulrich Drepper <drepper@redhat.com>
1908
1909 * Makefile.am (DEFS): Add DEBUGPRED.
1910 * addr2line.c: Include debugpred.h.
1911 * ar.c: Likewise.
1912 * elfcmp.c: Likewise.
1913 * elflint.c: Likewise.
1914 * findtextrel.c: Likewise.
1915 * nm.c: Likewise.
1916 * objdump.c: Likewise.
1917 * ranlib.c: Likewise.
1918 * readelf.c: Likewise.
1919 * size.c: Likewise.
1920 * strings.c: Likewise.
1921 * strip.c: Likewise.
1922 * unstrip.c: Likewise.
1923 * debugpred.h: New file.
1924
1925 * readelf.c (handle_relocs_rel): Use elf_scnshndx.
1926 (handle_relocs_rela): Likewise.
1927
1928 * readelf.c: Add lots of likely/unlikely.
1929
1930 * elflint.c: Minor cleanups.
1931
19322007-11-19 Roland McGrath <roland@redhat.com>
1933
1934 * readelf.c (print_ops): Handle all bad op codes gracefully.
1935 Print their numbers instead of just ???.
1936
19372007-11-09 Roland McGrath <roland@redhat.com>
1938
1939 * readelf.c (attr_callback): Handle DW_AT_data_location.
1940 Handle block forms to mean a DWARF expression for DW_AT_allocated,
1941 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
1942 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
1943 DW_AT_upper_bound.
1944
19452007-10-20 Roland McGrath <roland@redhat.com>
1946
1947 * unstrip.c (options): Update -R description.
1948 (struct symbol): Put symbol details a union with a size_t pointer
1949 `duplicate'.
1950 (compare_symbols_output): Use null ->name as marker for discard
1951 symbols, not zero *->map.
1952 (copy_elided_sections): Record forwarding pointers for discarded
1953 duplicates and fill SYMNDX_MAP elements through them.
1954
1955 * readelf.c (process_file): Set offline_next_address to 0 at start.
1956 (struct process_dwflmod_args): New type.
1957 (process_dwflmod): Take args in it, pass fd to process_elf_file.
1958 (process_file): Update caller; dup FD for passing to libdwfl.
1959 (process_elf_file): Take new arg FD. For ET_REL file when
1960 displaying data affected by libdwfl relocation, open a new Elf handle.
1961
19622007-10-17 Roland McGrath <roland@redhat.com>
1963
1964 * readelf.c (print_debug_line_section): For invalid data inside a
1965 unit with plausible length, keep printing at the next unit boundary.
1966
1967 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
1968
19692007-10-16 Roland McGrath <roland@redhat.com>
1970
1971 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
1972
19732007-10-15 Roland McGrath <roland@redhat.com>
1974
1975 * make-debug-archive.in: New file.
1976 * Makefile.am (EXTRA_DIST): Add it.
1977 (make-debug-archive): New target.
1978 (bin_SCRIPTS, CLEANFILES): Add it.
1979
19802007-10-10 Roland McGrath <roland@redhat.com>
1981
1982 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
1983 Use it to check MERGE|STRINGS for .debug_str.
1984 (check_sections): Handle exact_or_gnuld.
1985
19862007-10-08 Roland McGrath <roland@redhat.com>
1987
1988 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
1989 64-bit struct timeval with 32-bit tv_usec.
1990
19912007-10-07 Roland McGrath <roland@redhat.com>
1992
1993 * readelf.c (check_archive_index): New function.
1994 (process_file): Call it. Change signature to take only fd and name.
1995 Use libdwfl to open the file, then iterate on its modules (multiple
1996 for an archive) to print file name and call process_elf_file.
1997 (main): Update caller. Let process_file do elf_begin.
1998 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
1999 (process_elf_file): Take only Dwfl_Module * argument.
2000 Don't print the file name here.
2001 (print_debug_*_section): Take Dwfl_Module * argument.
2002 (print_debug): Likewise. Update caller.
2003 (format_dwarf_addr): New function.
2004 (print_debug_ranges_section): Use it.
2005 (attr_callback): Likewise.
2006 (print_debug_line_section, print_debug_loc_section): Likewise.
2007
2008 * readelf.c (print_debug_ranges_section): Translate all strings.
2009 (print_debug_loc_section): Likewise.
2010
2011 * unstrip.c (copy_elided_sections): Initialize SEC.
2012
2013 * ar.c (do_oper_insert): Put trailing / on short names.
2014
2015 * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
2016
2017 * arlib2.c (arlib_add_long_name): Adjust for header size.
2018
2019 * arlib.c (arlib_finalize): Pad long name table to keep size even.
2020
2021 * ar.c (do_oper_insert): Use write_retry for padding write.
2022
2023 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
2024 Unconditionally set FOUND[CNT]->elf when setting ->mem.
2025 (remember_long_name): New function.
2026 (do_oper_insert): Call it. Correctly use length of basename,
2027 not original name. Don't store long name twice for new member.
2028
20292007-10-06 Roland McGrath <roland@redhat.com>
2030
2031 * elflint.c (check_note): Skip empty segment.
2032 (check_note_section): Skip empty section.
2033
2034 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
2035 (handle_output_dir_module, handle_implicit_modules): Pass it down.
2036 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
2037 (compare_alloc_sections): Take new arg REL, ignore address if true.
2038 (compare_sections): Likewise, pass it down.
2039 (compare_sections_rel, compare_sections_nonrel): New functions.
2040 (find_alloc_sections_prelink, copy_elided_sections): Use them
2041 instead of compare_sections.
2042 (sections_match): New function, broken out of ...
2043 (find_alloc_section): ... here.
2044 (copy_elided_sections): Reorganize section match-up logic.
2045 Use sections_match for SHF_ALLOC in ET_REL.
2046 For ET_REL, let the nonzero sh_addr from the debug file dominate.
2047
2048 * unstrip.c (add_new_section_symbols): Take new arg REL.
2049 When true, do not update section symbol values.
2050 (collect_symbols): Likewise. Update section symbols with address
2051 of chosen output section, not original section.
2052 (check_symtab_section_symbols, copy_elided_sections): Update callers.
2053
2054 * unstrip.c (compare_alloc_sections): At the same address, preserve
2055 original section order.
2056
2057 * elflint.c (special_sections): Don't require MERGE|STRINGS for
2058 .debug_str, it didn't always have them with older tools.
2059
2060 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
2061
20622007-10-05 Roland McGrath <roland@redhat.com>
2063
2064 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
2065 ET_REL file.
2066
2067 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
2068 SHN_UNDEF as "bad section". Use shndx value in messages.
2069
2070 * elflint.c (special_sections): Add ".debug_str". Decrement namelen
2071 for ".debug" so it matches as a prefix.
2072 (IS_KNOWN_SPECIAL): New macro.
2073 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS
2074 type even under -d, for a .debug* or .shstrtab section.
2075
2076 * readelf.c (print_ops): Use hex for address operand.
2077
20782007-10-04 Roland McGrath <roland@redhat.com>
2079
2080 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
2081 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for
2082 sections mapped to SHN_UNDEF.
2083
20842007-10-04 Ulrich Drepper <drepper@redhat.com>
2085
2086 * readelf.c (dump_archive_index): Avoid warning about uninitialized
2087 variable with older glibc versions.
2088 Add some branch prediction.
2089
20902007-10-04 Roland McGrath <roland@redhat.com>
2091
2092 * readelf.c (print_archive_index): New variable.
2093 (options, parse_opt): Accept -c/--archive-index to set it.
2094 (dump_archive_index): New function.
2095 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
2096 Call dump_archive_index on archives if set.
2097 (main): Update caller.
2098 (any_control_option): Give it file scope, moved out of ...
2099 (parse_opt): ... here.
2100
21012007-10-03 Roland McGrath <roland@redhat.com>
2102
2103 * unstrip.c (struct arg_info): Add `list' flag.
2104 (options, parse_opt): Grok -n/--list to set it.
2105 (list_module): New function.
2106 (handle_implicit_modules): Call it under -n.
2107
2108 * elflint.c (check_note_section): New function.
2109 (check_sections): Call it for SHT_NOTE.
2110
2111 * readelf.c (handle_notes): Use sections when available.
2112
2113 * elflint.c (check_note_data): New function, broken out of ...
2114 (check_note): ... here. Call it and elf_getdata_rawchunk.
2115
2116 * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
2117 Use elf_getdata_rawchunk and gelf_getauxv.
2118 (handle_notes_data): New function, broken out of ...
2119 (handle_notes): ... here. Call it and elf_getdata_rawchunk.
2120
21212007-10-01 Roland McGrath <roland@redhat.com>
2122
2123 * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
2124
2125 * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
2126
21272007-09-10 Roland McGrath <roland@redhat.com>
2128
2129 * readelf.c (options): Give -p optional argument, alias --string-dump.
2130 (string_sections, string_sections_tail): New static variables.
2131 (parse_opt): Set them when -p has an argument.
2132 (print_string_section): New function, broken out of ...
2133 (print_strings): ... here. Call it.
2134 (dump_data_section): New function, broken out of ...
2135 (dump_data): ... here. Call it.
2136 (for_each_section_argument): New function, broken out of ...
2137 (dump_data): ... here. Call it.
2138 (dump_strings): New function.
2139
21402007-08-31 Roland McGrath <roland@redhat.com>
2141
2142 * readelf.c (print_strings): Typo fix.
2143
21442007-08-23 Roland McGrath <roland@redhat.com>
2145
2146 * readelf.c (printf_with_wrap): Function removed.
2147 (REGISTER_WRAP_COLUMN): New macro.
2148 (handle_core_register): Use print_core_item instead.
2149 (struct register_info): New type.
2150 (compare_registers, compare_register_sets): New functions.
2151 (register_bitpos, compare_sets_by_info): New functions.
2152 (handle_core_registers): Use those to segregate and sort registers
2153 for display.
2154
2155 * readelf.c (ITEM_WRAP_COLUMN): New macro.
2156 (print_core_item): New function.
2157 (handle_core_item): Use it instead of printf_with_wrap.
2158 (compare_core_items, compare_core_item_groups): New functions.
2159 (handle_core_items): Use them. Sort by group and force line breaks
2160 between groups.
2161
2162 * readelf.c (handle_core_registers, handle_core_items): New functions,
2163 broken out of ...
2164 (handle_core_note): ... here. Call them.
2165
21662007-08-22 Roland McGrath <roland@redhat.com>
2167
2168 * unstrip.c (new_shstrtab): New function, broken out of ...
2169 (copy_elided_sections): ... here.
2170
21712007-08-20 Roland McGrath <roland@redhat.com>
2172
2173 Avoid local function trampolines in nm binary.
2174 * nm.c (sort_by_address): Move to a static function instead of local
2175 inside show_symbols.
2176 (sort_by_name_strtab): New static variable.
2177 (sort_by_name): Use it. Move to a static function instead of local
2178 inside show_symbols.
2179 (show_symbols): Set sort_by_name_strtab.
2180
21812007-08-19 Roland McGrath <roland@redhat.com>
2182
2183 * readelf.c (handle_auxv_note): New function.
2184 (handle_notes): Call it.
2185
2186 * readelf.c (printf_with_wrap, convert): New functions.
2187 (handle_core_item, (handle_core_register): New functions.
2188 (handle_notes): Call those with details from ebl_core_note.
2189
21902007-08-12 Roland McGrath <roland@redhat.com>
2191
2192 * elflint.c (check_note): Accept type 0 with name "Linux".
2193
2194 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
2195
2196 * elflint.c (section_flags_string): Return "none" for 0, not "".
2197
21982007-08-11 Roland McGrath <roland@redhat.com>
2199
2200 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
2201
22022007-08-04 Ulrich Drepper <drepper@redhat.com>
2203
2204 * readelf.c (hex_dump): Use isprint to determine whether to print
2205 character itself or full stop character.
2206 (dump_data): No need to check endp for NULL after strtol call.
2207
22082007-08-03 Roland McGrath <roland@redhat.com>
2209
2210 * readelf.c (print_string_sections): New variable.
2211 (options, parse_opt): Handle --strings/-p to set it.
2212 (print_strings): New function.
2213 (process_elf_file): Call it under -p.
2214
2215 * readelf.c (options): Add hidden aliases --segments, --sections,
2216 as taken by binutils readelf.
2217
22182007-08-01 Roland McGrath <roland@redhat.com>
2219
2220 * readelf.c (dump_data_sections, dump_data_sections_tail):
2221 New variables.
2222 (options, parse_opt): Handle --hex-dump/-x, set them.
2223 (hex_dump): New function.
2224 (dump_data): New function, call it.
2225 (process_elf_file): Call it.
2226
22272007-07-25 Roland McGrath <roland@redhat.com>
2228
2229 * addr2line.c (show_symbols): New variable.
2230 (print_addrsym): New function.
2231 (handle_address): Call it.
2232 (options, parse_opt): Handle -S/--symbols.
2233
22342007-06-05 Ulrich Drepper <drepper@redhat.com>
2235
2236 * addr2line.c: Update for latest autoconf header.
2237 * ar.c: Likewise.
2238 * elfcmp.c: Likewise.
2239 * elflint.c: Likewise.
2240 * findtextrel.c: Likewise.
2241 * ld.c: Likewise.
2242 * ldgeneric.c: Likewise.
2243 * nm.c: Likewise.
2244 * objdump.c: Likewise.
2245 * ranlib.c: Likewise.
2246 * readelf.c: Likewise.
2247 * size.c: Likewise.
2248 * strings.c: Likewise.
2249 * strip.c: Likewise.
2250 * unstrip.c: Likewise.
2251
22522007-05-18 Roland McGrath <roland@redhat.com>
2253
2254 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
2255 stripped file, so as not to duplicate a section copied in both.
2256
2257 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
2258
22592007-05-17 Roland McGrath <roland@redhat.com>
2260
2261 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
2262
2263 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
2264
2265 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
2266 call make_directories here.
2267 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
2268 (handle_dwfl_module): Likewise.
2269 (handle_implicit_modules): Update callers.
2270 (handle_output_dir_module): Likewise. Don't do make_directories here.
2271
2272 * unstrip.c (get_section_name): New function, broken out of ...
2273 (copy_elided_sections): here. Update callers.
2274 (find_alloc_section): Broken out of ...
2275 (copy_elided_sections): ... here. Update caller.
2276 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
2277 update STT_SECTION symbols' st_value fields as a side effect.
2278 (check_symtab_section_symbols): Update caller.
2279 (add_new_section_symbols): Set st_value in symbols added.
2280 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
2281 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
2282 from .bss to .dynbss.
2283 (find_alloc_sections_prelink): New function. Associate debug file
2284 allocated SHT_NOBITS shdrs with stripped moved by prelink via
2285 .gnu.prelink_undo information.
2286 (copy_elided_sections): Call it when we couldn't find every allocated
2287 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
2288 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
2289 (handle_file): Update callers.
2290
2291 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
2292 named ".comment".
2293
2294 * elflint.c (check_sections): Fix association of segments with
2295 sections when p_memsz > p_filesz.
2296
22972007-04-29 Roland McGrath <roland@redhat.com>
2298
2299 * addr2line.c (options, main): Tweak argp group settings to fix
2300 usage output.
2301
23022007-04-28 Roland McGrath <roland@redhat.com>
2303
2304 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
2305 sizes to match sections adjusted in the stripped file.
2306
23072007-04-24 Roland McGrath <roland@redhat.com>
2308
2309 * elfcmp.c (OPT_HASH_INEXACT): New macro.
2310 (hash_inexact): New variable.
2311 (options, parse_opt): Add --hash-inexact option to set it.
2312 (hash_content_equivalent): New function.
2313 (main): Call it for differing SHT_HASH sections under --hash-inexact.
2314
23152007-04-23 Roland McGrath <roland@redhat.com>
2316
2317 * unstrip.c: New file.
2318 * Makefile.am (bin_PROGRAMS): Add it.
2319 (unstrip_LDADD): New variable.
2320
2321 * strip.c (options): Allow --output for -o.
2322
23232007-02-15 Ulrich Drepper <drepper@redhat.com>
2324
2325 * readelf.c: Remove unused code. Add a few consts.
2326
23272007-02-15 Roland McGrath <roland@redhat.com>
2328
2329 * readelf.c (print_debug): Fix brainos in SHDR test.
2330
23312007-02-05 Roland McGrath <roland@redhat.com>
2332
2333 * ar.c: Include <limits.h>, since we use LONG_MAX.
2334
23352007-02-05 Ulrich Drepper <drepper@redhat.com>
2336
2337 * ar.c: Add ugly hack to work around gcc complaining that we
2338 ignore fchown's return value.
2339 (do_oper_insert): Handle error when writing padding.
2340 * ranlib.c: Add fchown complain work around.
2341
2342 * arlib.c: Make symtab a global variable. Change all users.
2343 * arlib2.c: Likewise.
2344 * ranlib.c: Likewise.
2345 * ar.c: Likewise.
2346 * arlib.h: Declare it.
2347
23482007-01-11 Roland McGrath <roland@redhat.com>
2349
2350 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
2351 SHF_MASKPROC bits separately from generic sh_flags validation.
2352
23532007-02-04 Ulrich Drepper <drepper@redhat.com>
2354
2355 * ar.c: New file.
2356 * arlib.c: New file.
2357 * arlib2.c: New file.
2358 * arlib.h: New file.
2359 * Makefile (noinst_LIBRARIES): Add libar.
2360 (libar_a_SOURCES): Define.
2361 (ar_LDADD): Define.
2362 (CFLAGS_ar): Define.
2363 * ranlib.c: Change to use arlib.
2364
2365 * elflint.c (check_symtab): Work around GNU ld bug which omits
2366 sections but not symbols in those sections.
2367
23682007-01-10 Ulrich Drepper <drepper@redhat.com>
2369
2370 * addr2line.c: Update copyright year.
2371 * elfcmp.c: Likewise.
2372 * elflint.c: Likewise.
2373 * findtextrel.c: Likewise.
2374 * ld.c: Likewise.
2375 * nm.c: Likewise.
2376 * objdump.c: Likewise.
2377 * ranlib.c: Likewise.
2378 * readelf.c: Likewise.
2379 * size.c: Likewise.
2380 * strings.c: Likewise.
2381 * strip.c: Likewise.
2382
23832006-12-09 Ulrich Drepper <drepper@redhat.com>
2384
2385 * elflint.c (compare_hash_gnu_hash): New function. Report if the
2386 two hash tables have different content (module expected omission
2387 of undefined symbols).
2388
23892006-10-31 Roland McGrath <roland@redhat.com>
2390
2391 * elflint.c (check_program_header): Don't complain about
2392 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
2393
23942006-09-19 Jakub Jelinek <jakub@redhat.com>
2395
2396 * strip.c (process_file): Disallow -f on archives.
2397
23982006-10-09 Roland McGrath <roland@redhat.com>
2399
2400 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
2401
24022006-08-29 Roland McGrath <roland@redhat.com>
2403
2404 * Makefile.am (MAINTAINERCLEANFILES): New variable.
2405
2406 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
2407 Reported by Christian Aichinger <Greek0@gmx.net>.
2408
2409 * elflint.c (valid_e_machine): Add EM_ALPHA.
2410 Reported by Christian Aichinger <Greek0@gmx.net>.
2411
24122006-08-08 Ulrich Drepper <drepper@redhat.com>
2413
2414 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
2415 Keep track of which "high DT" entries are present.
2416 Check that either old or GNU-style hash table is present.
2417 If GNU-style hash table is used a symbol table is mandatory.
2418 Check that if any prelink entry is present all of them are.
2419 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
2420 table if they don't refer to functions.
2421
24222006-07-17 Roland McGrath <roland@redhat.com>
2423
2424 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
2425 (add_version): Likewise for argument.
2426 (check_versym): Cast constant to GElf_Versym for comparison.
2427
24282006-07-12 Roland McGrath <roland@redhat.com>
2429
2430 * readelf.c (handle_gnu_hash): Add casts for machines where
2431 Elf32_Word != unsigned int.
2432
24332006-07-12 Ulrich Drepper <drepper@redhat.com>
2434
2435 * elflint.c (check_sysv_hash64): Fix printf format.
2436
24372006-07-11 Roland McGrath <roland@redhat.com>
2438
2439 * addr2line.c (options): English fix in -f doc string.
2440
2441 * addr2line.c (use_comp_dir): New variable.
2442 (options, parse_opt): Grok -A/--absolute to set it.
2443 (handle_address): If set, prepend dwfl_line_comp_dir results to
2444 relative file names.
2445
24462006-07-06 Ulrich Drepper <drepper@redhat.com>
2447
2448 * elflint.c: Adjust for latest new hash table format.
2449 * readelf.c: Likewise.
2450
2451 * elflint.c (check_versym): Ignore hidden bit when comparing version
2452 numbers.
2453
24542006-07-05 Ulrich Drepper <drepper@redhat.com>
2455
2456 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
2457 discarded COMDAT symbols.
2458
2459 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
2460 (elf_i386_create_relocations): Likewise.
2461 * ld.h (struct symbol): Add local and hidden bits.
2462 * ld.c (create_special_section_symbol): These synthsized symbols
2463 are local and hidden.
2464 * ldgeneric.c (file_process2): Check whether input file matches
2465 the emulation.
2466 (fillin_special_symbol): Create symbols as local and/or hidden
2467 if requested.
2468 (ld_generic_create_outfile): Make local copy of symbol.
2469 Don't hide global, defined symbols in dynamic symbol table unless
2470 requested. Synthetic symbols have no version information.
2471
2472 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
2473 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
2474
24752006-07-04 Ulrich Drepper <drepper@redhat.com>
2476
2477 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
2478 testing.
2479
24802006-07-03 Ulrich Drepper <drepper@redhat.com>
2481
2482 * elflint.c: Add testing of DT_GNU_HASH.
2483 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
2484
2485 * Makefile.am: Add hacks to create dependency files for non-generic
2486 linker.
2487
24882006-06-12 Ulrich Drepper <drepper@redhat.com>
2489
2490 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
2491 section if creating a DSO and no interpreter is given.
2492 (ld_generic_create_outfile): Don't store reference to symbols in
2493 discarded COMDAT groups. Don't create PHDR and INTERP program header
2494 for DSO if no interpreter is specified.
2495 (create_verneed_data): Pretty printing.
2496
2497 * ldscript.y (content): If a DSO is created don't set default
2498 interpreter from linker script.
2499
2500 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
2501 for symbols in discarded COMDAT groups.
2502 (elf_i386_create_relocations): Likewise.
2503 * ld.h (struct scninfo): Add unused_comdat.
2504 * ldgeneric.c (add_section): Also check group signature when
2505 matching COMDAT sections.
2506 (add_relocatable_file): Ignore symbols in COMDAT group which are
2507 discarded.
2508
2509 * elflint.c (check_one_reloc): For *_NONE relocs only check type
2510 and symbol reference.
2511
25122006-06-11 Ulrich Drepper <drepper@redhat.com>
2513
2514 * elflint.c (check_dynamic): Fix checking value of tags which are
2515 offsets in the string section. Make sure DT_STRTAB points to the
2516 section referenced in sh_link.
2517
2518 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
2519
2520 * ld.c: Recognize --eh-frame-hdr option.
2521 * ld.h (struct ld_state): Add eh_frame_hdr field.
2522 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
2523
2524 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
2525 SH_FLAGS_COMBINE.
2526 (add_relocatable_file): Minor optimization of last change.
2527 (match_section): Don't preserve SHF_GROUP flag any longer.
2528
25292006-06-10 Ulrich Drepper <drepper@redhat.com>
2530
2531 * ld.c (parse_z_option): Recognize execstack and noexecstack.
2532 Handle record and ignore as position dependent options.
2533 (parse_z_option_2): Handle ignore and record here.
2534 * ld.h (struct ld_state): Add execstack field.
2535 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
2536 sections.
2537 (ld_generic_create_outfile): Fix program header creation in native
2538 linker. Add PT_GNU_STACK program header.
2539
25402006-06-09 Ulrich Drepper <drepper@redhat.com>
2541
2542 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
2543 for PLT entries if there is no local definition.
2544
2545 * ld.c (parse_option): Handle -z ignore like --as-needed and
2546 -z record like --no-as-needed.
2547 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
2548 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
2549 looping over DSOs. When deciding about adding DT_NEEDED entries
2550 use ->as_needed instead of ignore_unused_dsos.
2551
25522006-05-31 Ulrich Drepper <drepper@redhat.com>
2553
2554 * ld.c: Recognize --as-needed and --no-as-needed options.
2555 * ld.h (struct usedfile): Add as_needed field.
2556 (struct ld_state): Likewise.
2557 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
2558 the list.
2559 * ldscript.y (filename_id_list): Split to correctly parse all
2560 combinations.
2561 (mark_as_needed): Fix loop.
2562
25632006-05-28 Ulrich Drepper <drepper@redhat.com>
2564
2565 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
2566 and colno.
2567
25682006-05-27 Ulrich Drepper <drepper@redhat.com>
2569
2570 * readelf.c (handle_relocs_rela): Better notations for addon value.
2571 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
2572
25732006-04-04 Ulrich Drepper <drepper@redhat.com>
2574
2575 * addr2line.c: Update copyright year.
2576 * elfcmp.c: Likewise.
2577 * elflint.c: Likewise.
2578 * findtextrel.c: Likewise.
2579 * ld.c: Likewise.
2580 * nm.c: Likewise.
2581 * objdump.c: Likewise.
2582 * ranlib.c: Likewise.
2583 * readelf.c: Likewise.
2584 * size.c: Likewise.
2585 * strings.c: Likewise.
2586 * strip.c: Likewise.
2587
25882006-03-09 Roland McGrath <roland@redhat.com>
2589
2590 * Makefile.am (AM_LDFLAGS): New variable.
2591
25922006-03-01 Roland McGrath <roland@redhat.com>
2593
2594 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
2595 for dwarf.h changes matching 3.0 spec.
2596 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
2597
25982005-12-04 Ulrich Drepper <drepper@redhat.com>
2599
2600 * elflint.c (check_one_reloc): If relocation section is not loaded,
2601 don't check whether the relocations modify read-only sections or
2602 loaded and unloaded sections.
2603
26042005-11-28 Ulrich Drepper <drepper@redhat.com>
2605
2606 * elflint.c (check_one_reloc): Take additional parameters. Use
2607 them to determine whether relocation is valid in this type of
2608 file. DSOs and executables can contain relocation sections in
2609 unloaded sections which just show the relocations the linker
2610 applied. Adjust all callers.
2611 (check_program_header): Check that PT_PHDR is loaded and that offset
2612 matches the one in the ELF header.
2613
26142005-10-26 Roland McGrath <roland@redhat.com>
2615
2616 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
2617
26182005-09-03 Ulrich Drepper <drepper@redhat.com>
2619
2620 * strip.c (handle_elf): Unify some error messages.
2621 * ld.c (main): Likewise.
2622 * ldgeneric.c (open_elf): Likewise.
2623 * elfcmp.c (main): Likewise.
2624 * elflint.c (check_elf_header): Likewise.
2625
2626 * size.c (process_file): Fix typo in error message.
2627
2628 * readelf.c: Lots of little cleanups. Use _unlocked functions.
2629
26302005-09-02 Ulrich Drepper <drepper@redhat.com>
2631
2632 * strings.c (main): Reset elfmap variable after munmap call.
2633 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
2634
26352005-08-28 Ulrich Drepper <drepper@redhat.com>
2636
2637 * ranlib.c: Don't define pread_retry and write_retry here.
2638
2639 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
2640 (CLEANFILES): Add *.gcno *.gcda *.gconv.
2641
2642 * strings.c (process_chunk): Reorder expressions in conditional
2643 (process_chunk_mb): Likewise.
2644
2645 * strings.c: New file.
2646 * Makefile.am (bin_PROGRAMS): Add strings.
2647 (strings_no_Wstring): Define.
2648 (strings_LDADD): Define.
2649
26502005-08-27 Roland McGrath <roland@redhat.com>
2651
2652 * addr2line.c (dwarf_diename_integrate): Function removed.
2653 (print_dwarf_function): Use plain dwarf_diename.
2654
26552005-08-24 Ulrich Drepper <drepper@redhat.com>
2656
2657 * elflint.c (check_versym): Versioned symbols should not have
2658 local binding.
2659
26602005-08-15 Ulrich Drepper <drepper@redhat.com>
2661
2662 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
2663 undefined.
2664
2665 * Makefile.am: Add rules to build ranlib.
2666 * ranlib.c: New file.
2667
26682005-08-14 Roland McGrath <roland@redhat.com>
2669
2670 * elflint.c (check_sections): Use ebl_section_type_name and allow any
2671 sh_type it recognizes.
2672
2673 * elflint.c (check_sections): Print unknown flags in hex, don't
2674 truncate high bits. Print section number and name for unknown type.
2675
26762005-08-13 Roland McGrath <roland@redhat.com>
2677
2678 * elflint.c (check_program_header): Use ebl_segment_type_name and
2679 allow any p_type it recognizes. Include p_type value in error
2680 message for unknown type.
2681
26822005-08-13 Ulrich Drepper <drepper@redhat.com>
2683
2684 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
2685 to ebl_check_special_symbol.
2686 (check_sections): Pass ehdr to ebl_bss_plt_p.
2687
26882005-08-12 Roland McGrath <roland@redhat.com>
2689
2690 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
2691 refers to the right section if it's not SHN_ABS.
2692 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
2693
2694 * elflint.c (check_sections): Don't complain about a non-NOBITS
2695 section taking no segment space, if it's sh_size is 0.
2696
2697 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
2698 be PROGBITS or NOBITS.
2699
2700 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
2701 standard st_value and st_size checks.
2702
27032005-07-28 Roland McGrath <roland@redhat.com>
2704
2705 * addr2line.c (options, parse_opt): Don't handle -e here.
2706 (executable): Variable removed.
2707 (argp_children): New static variable.
2708 (argp): Use it. Make const.
2709 (main): Fill in argp_children from dwfl_standard_argp ().
2710 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
2711 (print_dwarf_function): New function. Try to figure out inline chain.
2712 (elf_getname): Function removed, libdwfl does it for us.
2713 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
2714 Use dwfl_module_addrname instead of elf_getname.
2715 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
2716 * Makefile.am (INCLUDES): Add libdwfl directory to path.
2717
27182005-08-10 Ulrich Drepper <drepper@redhat.com>
2719
2720 * strip.c (parse_opt): STATE parameter is now used.
2721 Various little cleanups.
2722
2723 * readelf.c (print_debug_line_section): Correct fallout of renaming
2724 of DW_LNS_set_epilog_begin.
2725
27262005-08-08 Roland McGrath <roland@redhat.com>
2727
2728 * strip.c (options, parse_opt): Grok -R .comment for compatibility
2729 with binutils strip. Likewise -d, -S, as aliases for -g.
2730 Likewise ignore -s/--strip-all.
2731
27322005-08-07 Roland McGrath <roland@redhat.com>
2733
2734 * strip.c (process_file): Open read-only when using a different output
2735 file.
2736
27372005-08-06 Ulrich Drepper <drepper@redhat.com>
2738
2739 * elflint.c (in_nobits_scn): New function.
2740 (check_versym): Allow references for defined symbols against versions
2741 of other DSOs also for symbols in nobits sections.
2742 Move a few variables around.
2743
2744 * Makefile.am (AM_CFLAGS): Avoid duplication.
2745 Link with statis libs if BUILD_STATIC.
2746
27472005-08-05 Ulrich Drepper <drepper@redhat.com>
2748
2749 * elflint.c: Many, many more tests. Mostly related to symbol
2750 versioning. Those sections should now be completely checked.
2751
2752 * readelf.c (print_dynamic): Use gelf_offscn.
2753
27542005-08-04 Ulrich Drepper <drepper@redhat.com>
2755
2756 * elflint.c: Add lots more tests: more extension symbol table sanity,
2757 versioning section tests, hash table tests. General cleanup.
2758
27592005-08-02 Ulrich Drepper <drepper@redhat.com>
2760
2761 * objdump.c: New file.
2762 * Makefile.am (bin_PROGRAMS): Add objdump.
2763 (objdump_LDADD): Define.
2764
2765 * elflint.c (check_reloc_shdr): New function split out from check_rela
2766 and check_rel.
2767 (check_one_reloc): New function. Likewise.
2768 (check_rela): Use check_reloc_shdr and check_one_reloc.
2769 (check_rel): Likewise.
2770 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
2771 section.
2772 Add checks that relocations against read-only segments are flagged,
2773 that the text relocation flag is not set unnecessarily, and that
2774 relocations in one section are either against loaded or not-loaded
2775 segments.
2776
27772005-08-01 Ulrich Drepper <drepper@redhat.com>
2778
2779 * elfcmp.c (main): Ignore section count and section name string table
2780 section index.
2781
27822005-07-27 Roland McGrath <roland@redhat.com>
2783
2784 * elfcmp.c: Include <locale.h>.
2785
27862005-07-27 Ulrich Drepper <drepper@redhat.com>
2787
2788 * elfcmp.c: Print name and index of differing section.
2789
27902005-07-24 Ulrich Drepper <drepper@redhat.com>
2791
2792 * elfcmp.c: Implement comparing gaps between sections.
2793
27942005-07-23 Ulrich Drepper <drepper@redhat.com>
2795
2796 * elflint.c: Include libeblP.h instead of libebl.h.
2797 * nm.c: Likewise.
2798 * readelf.c: Likewise.
2799 * elfcmp.c: Likewise.
2800
2801 * elfcmp.c (main): Compare individual ELF header fields, excluding
2802 e_shoff instead of the whole struct at once.
2803 Use ebl_section_strip_p instead of SECTION_STRIP_P.
2804 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
2805
28062005-07-22 Ulrich Drepper <drepper@redhat.com>
2807
2808 * elfcmp.c (main): Take empty section into account when comparing
2809 section content.
2810
2811 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
2812 using it.
2813
28142005-07-21 Ulrich Drepper <drepper@redhat.com>
2815
2816 * elfcmp.c: New file.
2817 * Makefile.am (bin_PROGRAMS): Add elfcmp.
2818 (elfcmp_LDADD): Define.
2819
2820 * elflint.c (check_rela): Check that copy relocations only reference
2821 object symbols or symbols with unknown type.
2822 (check_rel): Likewise.
2823
28242005-06-08 Roland McGrath <roland@redhat.com>
2825
2826 * readelf.c (print_ops): Add consts.
2827
28282005-05-31 Roland McGrath <roland@redhat.com>
2829
2830 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
2831 abbreviations. Print a header line before each CU section.
2832
2833 * readelf.c (print_debug_loc_section): Fix indentation for larger
2834 address size.
2835
28362005-05-30 Roland McGrath <roland@redhat.com>
2837
2838 * readelf.c (print_debug_line_section): Print section offset of each
2839 CU's table, so they are easy to find from seeing the stmt_list value.
2840
2841 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
2842 (attr_callback): Grok DW_AT_ranges and print offset in hex.
2843
2844 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
2845 (print_debug_ranges_section, print_debug_loc_section): Likewise.
2846
2847 * readelf.c (print_ops): Take different args for indentation control.
2848 (attr_callback): Caller updated.
2849 Grok several more block-form attributes as being location expressions.
2850 For those same attributes with udata forms, format output differently
2851 for location list offset.
2852 (print_debug_loc_section): Implement it for real.
2853
2854 * readelf.c (options): Mention ranges for --debug-dump.
2855 (enum section_e): Add section_ranges.
2856 (parse_opt): Grok "ranges" for -w/--debug-dump.
2857 (print_debug_ranges_section): New function.
2858 (print_debug): Handle .debug_ranges section.
2859
28602005-05-30 Ulrich Drepper <drepper@redhat.com>
2861
2862 * readelf.c (handle_notes): At least x86-64 need not have the note
2863 section values aligned to 8 bytes.
2864
28652005-05-18 Ulrich Drepper <drepper@redhat.com>
2866
2867 * readelf.c (dwarf_tag_string): Add new tags.
2868
28692005-05-08 Roland McGrath <roland@redhat.com>
2870
2871 * strip.c (handle_elf): Don't translate hash and versym data formats,
2872 elf_getdata already did it for us.
2873
28742005-05-07 Ulrich Drepper <drepper@redhat.com>
2875
2876 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
2877 (addr2line_LDADD): Likewise.
2878
28792005-05-03 Roland McGrath <roland@redhat.com>
2880
2881 * strip.c (handle_elf): Apply symbol table fixups to discarded
2882 relocation sections when they are being saved in the debug file.
2883
2884 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
2885 and gelf_xlatetof, not the native byte order.
2886
2887 * strip.c (parse_opt): Give error if -f or -o is repeated.
2888 (main): Exit if argp_parse returns nonzero.
2889
2890 * strip.c (debug_fname_embed): New variable.
2891 (options, parse_opt): New option -F to set it.
2892
28932005-05-07 Ulrich Drepper <drepper@redhat.com>
2894
2895 * readelf.c (parse_opt): Make any_control_option variable
2896 local. Simplify some tests.
2897
28982005-05-03 Roland McGrath <roland@redhat.com>
2899
2900 * strip.c (crc32_file): Function removed (now in ../lib).
2901
29022005-05-03 Roland McGrath <roland@redhat.com>
2903
2904 * elflint.c (is_debuginfo): New variable.
2905 (options, parse_opt): New option --debuginfo/-d to set it.
2906 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
2907 (check_note): If is_debuginfo, don't try to get note contents.
2908
29092005-04-24 Ulrich Drepper <drepper@redhat.com>
2910
2911 * readelf.c (print_debug_abbrev_section): Don't print error when end of
2912 section reached.
2913
29142005-04-14 Ulrich Drepper <drepper@redhat.com>
2915
2916 * readelf.c (dwarf_encoding_string): New function.
2917 (dwarf_inline_string): New function.
2918 (dwarf_access_string): New function.
2919 (dwarf_visibility_string): New function.
2920 (dwarf_virtuality_string): New function.
2921 (dwarf_identifier_case_string): New function.
2922 (dwarf_calling_convention_string): New function.
2923 (dwarf_ordering_string): New function.
2924 (dwarf_discr_list_string): New function.
2925 (attr_callback): Decode man more attribute values.
2926
29272005-04-01 Ulrich Drepper <drepper@redhat.com>
2928
2929 * addr2line.c: Finish implementation of -f option.
2930
29312005-03-29 Ulrich Drepper <drepper@redhat.com>
2932
2933 * addr2line.c: New file.
2934 * Makefile.am (bin_PROGRAMS): Add addr2line.
2935 Define addr2line_LDADD.
2936
2937 * findtextrel.c: Use new dwarf_addrdie function.
2938
2939 * findtextrel.c: Fix usage message and re-add accidentally removed
2940 line.
2941
29422005-03-28 Ulrich Drepper <drepper@redhat.com>
2943
2944 * findtextrel.c: New file.
2945 * Makefile: Add rules to build findtextrel.
2946
29472005-02-15 Ulrich Drepper <drepper@redhat.com>
2948
2949 * ldlex.l: Provide ECHO definition to avoid warning.
2950
2951 * elflint.c (check_program_header): Fix typo in RELRO test.
2952
2953 * Makefile.am (AM_CFLAGS): Add more warning options.
2954 * elflint.c: Fix warnings introduced by the new warning options.
2955 * i386_ld.c: Likewise.
2956 * ld.c: Likewise.
2957 * ld.h: Likewise.
2958 * ldgeneric.c: Likewise.
2959 * nm.c: Likewise.
2960 * readelf.c: Likewise.
2961 * sectionhash.c: Likewise.
2962 * size.c: Likewise.
2963 * string.c: Likewise.
2964
29652005-02-05 Ulrich Drepper <drepper@redhat.com>
2966
2967 * Makefile.am: Check for text relocations in constructed DSOs.
2968
2969 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
2970 with -lmudflap.
2971
2972 * ldscript.y: Add as_needed handling.
2973 * ldlex.l: Recognize AS_NEEDED token.
2974 * ld.h (struct filename_list): Add as_needed flag.
2975
29762005-02-04 Ulrich Drepper <drepper@redhat.com>
2977
2978 * elflint.c (check_symtab): Correctly determine size of GOT section.
2979
29802005-01-19 Ulrich Drepper <drepper@redhat.com>
2981
2982 * ld.c: Remove unnecessary more_help function. Print bug report
2983 address using argp.
2984 * strip.c: Likewise.
2985 * size.c: Likewise.
2986 * nm.c: Likewise.
2987 * readelf.c: Likewise.
2988 * elflint.c: Likewise.
2989
2990 * elflint.c (main): Don't check for parameter problems here.
2991 (parse_opt): Do it here, where we get informed about some of them
2992 anyway.
2993
2994 * readelf.c (main): Don't check for parameter problems here.
2995 (parse_opt): Do it here, where we get informed about some of them
2996 anyway.
2997
29982005-01-11 Ulrich Drepper <drepper@redhat.com>
2999
3000 * strip.c: Update copyright year.
3001 * readelf.c: Likewise.
3002 * size.c: Likewise.
3003 * nm.c: Likewise.
3004 * ld.c: Likewise.
3005 * elflint.c: Likewise.
3006
3007 * elflint.c (check_symtab): Don't warn about wrong size for
3008 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
3009
30102004-10-05 Ulrich Drepper <drepper@redhat.com>
3011
3012 * readelf.c (print_phdr): In section mapping, also indicate
3013 sections in read-only segments.
3014
30152004-09-25 Ulrich Drepper <drepper@redhat.com>
3016
3017 * readelf.c: Make compile with gcc 4.0.
3018 * strip.c: Likewise.
3019
30202004-08-16 Ulrich Drepper <drepper@redhat.com>
3021
3022 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
3023 allocate to work around gcc 3.4 bug.
3024
30252004-01-25 Ulrich Drepper <drepper@redhat.com>
3026
3027 * ldlex.l (invalid_char): Better error message.
3028
30292004-01-23 Ulrich Drepper <drepper@redhat.com>
3030
3031 * readelf.c: Print SHT_GNU_LIBLIST sections.
3032
3033 * none_ld.c: New file.
3034
30352004-01-21 Ulrich Drepper <drepper@redhat.com>
3036
3037 * Makefile.am: Enable building of machine specific linker.
3038
30392004-01-20 Ulrich Drepper <drepper@redhat.com>
3040
3041 * Makefile.am: Support building with mudflap.
3042
3043 * i386_ld.c: Fix warnings gcc 3.4 spits out.
3044 * ldgeneric.c: Likewise.
3045 * ldscript.y: Likewise.
3046 * readelf.c: Likewise.
3047 * strip.c: Likewise.
3048
3049 * readelf.c (print_debug_line_section): Determine address size
3050 correctly.
3051
30522004-01-19 Ulrich Drepper <drepper@redhat.com>
3053
3054 * readelf.c (print_phdr): Show which sections are covered by the
3055 PT_GNU_RELRO entry.
3056
3057 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
3058
3059 * readelf.c (print_debug_macinfo_section): Implement.
3060
30612004-01-18 Ulrich Drepper <drepper@redhat.com>
3062
3063 * readelf.c (print_debug_line_section): Implement.
3064
30652004-01-17 Ulrich Drepper <drepper@redhat.com>
3066
3067 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
3068 * src/ld.c: Likewise.
3069 * src/nm.c: Likewise.
3070 * src/readelf.c: Likewise.
3071 * src/size.c: Likewise.
3072 * src/strip.c: Likewise.
3073
3074 * strip.c: Add a few more unlikely. Reduce scope of some variables.
3075
3076 * Makefile.am: Support building with mudflap.
3077
30782004-01-16 Ulrich Drepper <drepper@redhat.com>
3079
3080 * readelf.c (print_debug_info_section): Free dies memory.
3081
3082 * readelf.c: Print .debug_info section content.
3083
30842004-01-13 Ulrich Drepper <drepper@redhat.com>
3085
3086 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
3087
30882004-01-12 Ulrich Drepper <drepper@redhat.com>
3089
3090 * readelf.c (print_debug_aranges): Implement using libdw.
3091
30922004-01-11 Ulrich Drepper <drepper@redhat.com>
3093
3094 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
3095
3096 * readelf.c: Use libdw instead of libdwarf. Not all of the old
3097 behavior is available yet.
3098 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
3099
31002004-01-09 Ulrich Drepper <drepper@redhat.com>
3101
3102 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
3103
3104 * nm.c: Implement getting information about local variables.
3105
31062004-01-07 Ulrich Drepper <drepper@redhat.com>
3107
3108 * nm.c: Read also debug information for local symbols.
3109
31102004-01-05 Ulrich Drepper <drepper@redhat.com>
3111
3112 * nm.c: Shuffle dwarf handling code around so the maximum column
3113 width can be computed ahead of printing. Avoid collection symbols
3114 which are not printed anyway.
3115
3116 * nm.c: Rewrite dwarf handling to use libdw.
3117 * Makefile.am (AM_CFLAGS): Add -std parameter.
3118 (INCLUDES): Find header in libdw subdir.
3119 (nm_LDADD): Replace libdwarf with libdw.
3120
3121 * elflint.c: Update copyright year.
3122 * readelf.c: Likewise.
3123 * size.c: Likewise.
3124 * strip.c: Likewise.
3125 * nm.c: Likewise.
3126
31272003-12-31 Ulrich Drepper <drepper@redhat.com>
3128
3129 * strip.c (process_file): Close file before returning.
3130
31312003-11-19 Ulrich Drepper <drepper@redhat.com>
3132
3133 * readelf.c (handle_dynamic): Make column for tag name wider.
3134
31352003-09-29 Ulrich Drepper <drepper@redhat.com>
3136
3137 * readelf.c (handle_dynamic): Always terminate tag name with a space.
3138
31392003-09-25 Ulrich Drepper <drepper@redhat.com>
3140
3141 * strip.c (process_file): Don't mmap the input file, we modify the
3142 data structures and don't want the change end up on disk.
3143
31442003-09-23 Jakub Jelinek <jakub@redhat.com>
3145
3146 * unaligned.h (union u_2ubyte_unaligned,
3147 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
3148 packed attribute.
3149 (add_2ubyte_unaligned, add_4ubyte_unaligned,
3150 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
3151 Read/store value through _ptr->u instead of *_ptr.
3152
31532003-09-22 Ulrich Drepper <drepper@redhat.com>
3154
3155 * size.c (show_sysv): Change type of maxlen to int.
3156
3157 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
3158 buckets.
3159
3160 * i386_ld.c: Many many fixes and extensions.
3161 * ld.c: Likewise.
3162 * ldgeneric.c: Likewise.
3163
31642003-08-16 Ulrich Drepper <drepper@redhat.com>
3165
3166 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
3167 the reference is from another DSO.
3168
31692003-08-15 Ulrich Drepper <drepper@redhat.com>
3170
3171 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
3172 point is found when creating a DSO.
3173
31742003-08-14 Ulrich Drepper <drepper@redhat.com>
3175
3176 * ld.c (main): Always call FLAG_UNRESOLVED.
3177 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
3178 undefined symbols if not creating DSO or ld_state.nodefs is not set.
3179
31802003-08-13 Ulrich Drepper <drepper@redhat.com>
3181
3182 * Makefile.in: Depend on libebl.a, not libebl.so.
3183
3184 * ld.c (main): Mark stream for linker script as locked by caller.
3185 (read_version_script): Likewise.
3186 * ldlex.c: Define fread and fwrite to _unlocked variant.
3187
3188 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
3189 target_bswap_32.
3190 * unaligned.h: Define target_bswap_16, target_bswap_32, and
3191 target_bswap_64.
3192 (store_2ubyte_unaligned, store_4ubyte_unaligned,
3193 store_8ubyte_unaligned): Define using new macros.
3194
31952003-08-12 Ulrich Drepper <drepper@redhat.com>
3196
3197 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
3198 possibly unaligned memory. Support use of big endian machines.
3199
32002003-08-11 Ulrich Drepper <drepper@redhat.com>
3201
3202 * Moved to CVS archive.