2275c5c2feaf62fe20a842082c6e1fee10eef5ad
[platform/upstream/elfutils.git] / src / ChangeLog
1 2013-03-01  Mark Wielaard  <mjw@redhat.com>
2
3         * findtextrel.c (process_file): Release ELF and close file when not
4         text relocations are found.
5         * strip.c (handle_elf): Track memory used for .debuglink section data
6         and free when done.
7
8 2013-02-24  Mark Wielaard  <mjw@redhat.com>
9
10         * elflint.c (check_symtab): Add __bss_start__ to the list of symbols
11         allowed to have out of section values because of GNU ld bugs.
12
13 2013-02-06  Mark Wielaard  <mjw@redhat.com>
14
15         * elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the
16         list of symbols allowed to have out of section values because of
17         GNU ld bugs in either .symtab or .dynsym, but only when they are
18         zero sized.
19
20 2013-01-24  Mark Wielaard  <mjw@redhat.com>
21
22         * readelf.c (argp_option): Add unresolved-address-offsets, U.
23         (print_unresolved_addresses): New static.
24         (parse_opt): Handle 'U', set print_unprocessed_values.
25         (format_dwarf_addr): Take and handle new raw argument.
26         (print_ops): Call format_dwarf_addr with raw offset values.
27         (print_debug_ranges_section): Likewise.
28         (print_debug_frame_section): Likewise.
29         (attr_callback): Likewise.
30         (print_debug_line_section): Likewise.
31         (print_debug_loc_section): Likewise.
32         (print_gdb_index_section): Likewise.
33
34 2013-01-18  Mark Wielaard  <mjw@redhat.com>
35
36         * readelf.c (struct listptr): Add base Dwarf_Addr field.
37         (compare_listptr): Warn for same offset with different base.
38         (notice_listptr): Take base argument and set it.
39         (skip_listptr_hole): Likewise.
40         (struct attrcb_args): Removed unused cu_offset field.
41         Add cu_base Dwarf_Addr field.
42         (attr_callback): Call notice_listptr with cbargs->cu_base.
43         (print_debug_units): Set args.cu_base.
44         (print_debug_ranges_section): Get base and use for format_dwarf_addr.
45         (print_debug_loc_section): Likewise.
46
47 2013-01-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
48
49         * readelf.c (handle_core_items): Limit special repeated items handling
50         to single-item formats '\n', 'b' and 'B', assert OFFSET 0 there.
51
52 2012-12-18  Mark Wielaard  <mark@bordewijk.wildebeest.org>
53
54         * readelf.c (ELF_INPUT_SECTION): New argp key value.
55         (argp_option): Add elf-section.
56         (elf_input_section): New static.
57         (parse_opt): Handle ELF_INPUT_SECTION and set elf_input_section.
58         (open_input_section): New function.
59         (process_file): Call open_input_section if elf_input_section set.
60
61 2013-01-13  David Abdurachmanov  <David.Abdurachmanov@cern.ch>
62
63         ar.c (do_oper_delete): Fix num passed to memset.
64
65 2012-12-21  Mark Wielaard  <mjw@redhat.com>
66
67         * readelf.c (print_debug_frame_section): Adjust FDE start address
68         if pcrel before feeding it to format_dwarf_addr.
69
70 2012-12-21  Mark Wielaard  <mjw@redhat.com>
71
72         * addr2line.c (main): Call dwfl_end.
73
74 2012-12-11  Roland McGrath  <roland@hack.frob.com>
75
76         * nm.c (show_symbols_sysv): Fix size passed to snprintf for invalid
77         sh_name case.
78         Reported by David Abdurachmanov <David.Abdurachmanov@cern.ch>.
79
80 2012-10-16  Mark Wielaard  <mjw@redhat.com>
81
82         * readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are
83         calculated beginning after the operand and 2-byte constant.
84
85 2012-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
86
87         * readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ...
88         (WRAP_COLUMN): ... here.
89         (print_core_item): Remove parameter format_max.  Update function
90         comment.  Replace FORMAT_MAX by the real output width.
91         (handle_core_item): Remove the FORMAT_MAX values in TYPES, DO_TYPE,
92         calls of print_core_item, remove variable maxfmt, change
93         ITEM_WRAP_COLUMN to WRAP_COLUMN.
94         (handle_core_register): Remove the FORMAT_MAX values in TYPES, BITS,
95         calls of print_core_item, change REGISTER_WRAP_COLUMN to WRAP_COLUMN.
96
97 2012-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
98
99         * readelf.c (handle_core_item) <b>: Make run an outer block variable.
100         Increase run only if LASTBIT != 0.  Print last element only if RUN > 0.
101
102 2012-08-27  Mark Wielaard  <mjw@redhat.com>
103
104         * readelf.c (print_debug_macro_section): Print offset as PRIx64.
105
106 2012-08-27  Mark Wielaard  <mjw@redhat.com>
107
108         * readelf.c (register_info): Handle loc == NULL.
109
110 2012-08-22  Jeff Kenton  <jkenton@tilera.com>
111
112         * elflint.c (valid_e_machine): Add EM_TILEGX and EM_TILEPRO.
113
114 2012-08-16  Mark Wielaard  <mjw@redhat.com>
115
116         * readelf.c (dwarf_tag_name): Renamed from dwarf_tag_string.
117         Uses new dwarf_tag_string or adds ??? or lo_user+%#x when
118         appropriate.
119         (dwarf_attr_name): Likewise.
120         (dwarf_form_name): Likewise.
121         (dwarf_lang_name): Likewise.
122         (dwarf_inline_name): Likewise.
123         (dwarf_encoding_name): Likewise.
124         (dwarf_access_name): Likewise.
125         (dwarf_visibility_name): Likewise.
126         (dwarf_virtuality_name): Likewise.
127         (dwarf_identifier_case_name): Likewise.
128         (dwarf_calling_convention_name): Likewise.
129         (dwarf_ordering_name): Likewise.
130         (dwarf_discr_list_name): Likewise.
131         (print_ops): Remove KNOWN.  Use dwarf_locexpr_opcode_string.
132         (attr_callback): Call new dwarf_foobar_name instead of old
133         dwarf_foobar_string functions.
134         (dwarf_tag_string): New function using known-dwarf.h macros.
135         (dwarf_attr_string): Likewise.
136         (dwarf_form_string): Likewise.
137         (dwarf_lang_string): Likewise.
138         (dwarf_inline_string): Likewise.
139         (dwarf_encoding_string): Likewise.
140         (dwarf_access_string): Likewise.
141         (dwarf_visibility_string): Likewise.
142         (dwarf_virtuality_string): Likewise.
143         (dwarf_identifier_case_string): Likewise.
144         (dwarf_calling_convention_string): Likewise.
145         (dwarf_ordering_string): Likewise.
146         (dwarf_discr_list_string): Likewise.
147         (dwarf_locexpr_opcode_string): Likewise.
148
149 2012-06-27  Mark Wielaard  <mjw@redhat.com>
150
151         * readelf.c (dwarf_form_string): Handle DW_FORM_GNU_ref_alt and
152         DW_FORM_GNU_strp_alt.
153         (attr_callback): Likewise.
154
155 2012-07-30  Petr Machata  <pmachata@redhat.com>
156
157         * nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and
158         corresponding printf) so that those that are referenced by only
159         one of the formatting strings are at the end.
160
161 2012-07-29  Mark Wielaard  <mjw@redhat.com>
162
163         * readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc.
164         (print_ops): Use known[op], not op_name, for DW_OP_GNU_parameter_ref.
165
166 2012-07-19  Mark Wielaard  <mjw@redhat.com>
167
168         * readelf.c (print_ops): Handle DW_OP_GNU_parameter_ref.
169
170 2012-07-11  Mark Wielaard  <mjw@redhat.com>
171
172         * readelf.c (options): Add macro to help of debug-dump.
173         (section_e): Add section_macro.
174         (section_all): Add section_macro.
175         (parse_opt): Handle macro.
176         (print_debug_macro_section): New function.
177         (print_debug): Add NEW_SECTION (macro).
178
179 2012-07-10  Mark Wielaard  <mjw@redhat.com>
180
181         * readelf.c (print_gdb_index_section): Add version 7 support.
182         Keep track of cu_nr. Print kind and static/global flag for each
183         symbol. When a symbol is in the TU list add 'T'.
184
185 2012-06-26  Mark Wielaard  <mjw@redhat.com>
186
187         * readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros.
188
189 2012-06-22  Mark Wielaard  <mjw@redhat.com>
190
191         * readelf.c (print_ops): Cast printf PRIu/x64 arguments to uint64_t
192         for gcc 4.7 -Wformat.
193
194 2012-05-09  Roland McGrath  <roland@hack.frob.com>
195
196         * elflint (check_sections): Allow zero sized sections at (filesz) end
197         of segment. And make check overflow-proofed.
198
199 2012-04-24  Mark Wielaard  <mjw@redhat.com>
200
201         * readelf.c (print_ops): Add DW_OP_GNU_push_tls_address,
202         DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr.
203
204 2012-03-28  Roland McGrath  <roland@hack.frob.com>
205
206         * elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections.
207
208 2012-03-28  Mark Wielaard  <mjw@redhat.com>
209
210         * readelf.c (print_debug_abbrev_section): Check there is Dwarf
211         section data.
212         (print_debug_str_section): Likewise.
213
214 2012-03-21  Mark Wielaard  <mjw@redhat.com>
215
216         * readelf.c (print_gdb_index_section): Accept version 6.
217
218 2012-01-31  Mark Wielaard  <mjw@redhat.com>
219
220         * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset.
221
222 2012-01-21  Ulrich Drepper  <drepper@gmail.com>
223
224         * addr2line.c: Update copyright year.
225         * ar.c: Likewise.
226         * elfcmp.c: Likewise.
227         * elflint.c: Likewise.
228         * findtextrel.c: Likewise.
229         * ld.c: Likewise.
230         * nm.c: Likewise.
231         * objdump.c: Likewise.
232         * ranlib.c: Likewise.
233         * readelf.c: Likewise.
234         * size.c: Likewise.
235         * strings.c: Likewise.
236         * strip.c: Likewise.
237         * unstrip.c: Likewise.
238
239         * nm.c (argp_children): Define.
240         (argp): Hook up argp_children.
241         (handle_ar): Optimize puts call.
242         (show_symbols_bsd): Use positional parameters to also print color
243         codes.  Don't print STT_FILE symbols.
244         * objdump.c (options): Improve help text.
245         (argp_children): Define.
246         (argp): Hook up argp_children.
247         (disasm_info): Add elements for color codes.
248         (disasm_output): Print color codes as well.
249         (show_disasm): Set up disasm_info data for callback.
250
251 2012-01-20  Roland McGrath  <roland@hack.frob.com>
252
253         * arlib-argp.c (arlib_deterministic_output): Initialize from
254         configured value.
255         (help_filter): New function.
256         (argp): Use it.
257
258         * ar.c (main): Handle oper_none as usage error.
259
260         * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D.
261
262         * ranlib.c (argp): Use arlib_argp_children.
263
264         * arlib.c (arlib_init): Obey arlib_deterministic_output.
265
266         * arlib-argp.c: New file.
267         * Makefile.am (libar_a_SOURCES): Add it.
268         * arlib.h (arlib_deterministic_output, arlib_argp_children):
269         Declare new variables.
270         * ar.c (deterministic_output): Variable removed.
271         (do_oper_insert): Use arlib_deterministic_output instead.
272         (options, parse_opt): Don't handle -D here.  Add group numbers.
273         (argp): Use arlib_argp_children.
274
275 2011-12-20  Roland McGrath  <roland@hack.frob.com>
276
277         * readelf.c (print_debug): Initialize DUMMY_DBG.elf.
278         Reported by Karel Klic <kklic@redhat.com>.
279
280 2011-11-05  Roland McGrath  <roland@hack.frob.com>
281
282         * ar.c (deterministic_output): New flag variable.
283         (options, parse_opt): Grok -D to set it.
284         (do_oper_insert): When set, use zero from mtime, uid, and gid.
285
286         * ar.c (do_oper_insert): Fix check on elf_rawfile return value.
287
288 2011-10-04  Marek Polacek  <mpolacek@redhat.com>
289
290         * readelf.c (register_info): Assume the right size of an array.
291
292 2011-10-03  Ulrich Drepper  <drepper@gmail.com>
293
294         * nm.c: Recognize option --mark-special.  Still recognize --mark-weak
295         but don't show it in help anymore.
296         (mark_special): Renamed from mark_weak.
297         (parse_opt): Adjust.
298         (class_type_char): Take additional parameters for ELF file and ELF
299         header.  Treat TLS symbols like objects.
300         In case of D symbols, show u for unique symbols, R for symbols in
301         read-only sections, B for symbols in BSS sections.
302         (show_symbols_bsd): Take additional parameters for ELF file and ELF
303         header.  Adjust for class_type_char change.  Show TLS symbols with
304         @ after them in case --mark-special is selected.
305         (show_symbols_posix): Likewise.
306         (show_symbols): Adjust calls to show_symbols_bsd and
307         show_symbols_posix.
308         (show_symbols_sysv): Avoid printing adress and size for undefined
309         symbols.  Don't print initial special entry and section entries.
310
311 2011-10-02  Ulrich Drepper  <drepper@gmail.com>
312
313         * Makefile.am (demanglelib): Define.
314         (nm_LDADD): Add demanglelib.
315         * nm.c (options): Add -C option.
316         (demangle): Define as global variable.
317         (parse_opt): Recognize -C.
318         (show_symbols_sysv): Handle demangling.
319         (show_symbols_bad): Likewise.
320         (show_symbols_posix): Likewise.
321         (show_symbols): Likewise.
322
323 2011-07-09  Roland McGrath  <roland@hack.frob.com>
324
325         * readelf.c (options, parse_opt): Grok -W/--wide and ignore it.
326
327         * ar.c (parse_opt): Grok -u.
328
329 2011-05-30  Mark Wielaard  <mjw@redhat.com>
330
331         * strip.c (relocate): Make offset check overflow-proof.
332
333 2011-05-23  Mark Wielaard  <mjw@redhat.com>
334
335         * strip.c (relocate): Take new arguments is_rela to indicate
336         whether the relocation is from a SHT_REL or SHT_RELA section.
337         Relocate against any debug section symbol, not just STT_SECTION
338         symbols. For SHT_REL relocations, fetch addend from offset and
339         add it to symbol value if not zero.
340
341 2011-05-23  Mark Wielaard  <mjw@redhat.com>
342
343         * strip.c (OPT_RELOC_DEBUG): New option.
344         (argp_option): Add new --reloc-debug-sections option.
345         (main): Check new option.
346         (parse_opt): Likewise.
347         (handle_elf): Remove any relocations between debug sections
348         in ET_REL for the debug file when requested.
349
350 2011-05-18  Mark Wielaard  <mjw@redhat.com>
351
352         * strip.c (handle_elf): Make sure all sections of a removed group
353         section are removed too. Don't discard SHT_GROUP sections, copy
354         section table before it gets modified. Section group signature
355         symbols don't have to be retained.
356
357 2011-05-16  Jakub Jelinek  <jakub@redhat.com>
358
359         * readelf.c (print_ops): Handle DW_OP_GNU_const_type,
360         DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert
361         and DW_OP_GNU_reinterpret.
362
363 2011-05-17  Mark Wielaard  <mjw@redhat.com>
364
365         * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and
366         DW_TAG_GNU_call_site_parameter return strings.
367
368 2011-05-11  Marek Polacek  <mpolacek@redhat.com>
369
370         * nm.c (show_symbols_sysv): Remove unused if/else, remove
371         unused `prefix' and `fname' parameters.
372
373 2011-05-07  Marek Polacek  <mpolacek@redhat.com>
374
375         * unstrip.c (compare_sections_nonrel): Mark this function as static.
376
377 2011-04-26  Mark Wielaard  <mjw@redhat.com>
378
379         * readelf.c (handle_notes_data): Call ebl_object_note_type_name
380         with note name.
381
382 2011-04-14  Mark Wielaard  <mjw@redhat.com>
383
384         * readelf.c (options): Add gdb_index.
385         (section_e): Define section_gdb_index.
386         (parse_opt): Recognize gdb_index debug-dump argument.
387         (print_gdb_index_section): New function.
388         (print_debug): Add gdb_index to debug_sections.
389
390 2011-03-24  Petr Machata  <pmachata@redhat.com>
391
392         * readelf.c (print_debug_line_section): Emit initial space for all
393         opcode lines.  Print offset in front of each opcode.
394
395 2011-03-22  Marek Polacek  <mpolacek@redhat.com>
396
397         * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case.
398
399 2011-03-22  Mark Wielaard  <mjw@redhat.com>
400
401         * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site
402         and DW_TAG_GNU_call_site_parameter.
403         (dwarf_attr_string): Support DW_AT_GNU_call_site_value,
404         DW_AT_GNU_call_site_data_value,
405         DW_AT_GNU_call_site_target,
406         DW_AT_GNU_call_site_target_clobbered,
407         DW_AT_GNU_tail_call,
408         DW_AT_GNU_all_tail_call_sites,
409         DW_AT_GNU_all_call_sites,
410         and DW_AT_GNU_all_source_call_sites.
411         (print_ops): Handle DW_OP_GNU_entry_value.
412         (attr_callback): Handle DW_AT_GNU_call_site_value,
413         DW_AT_GNU_call_site_data_value,
414         DW_AT_GNU_call_site_target,
415         and DW_AT_GNU_call_site_target_clobbered.
416
417 2011-03-10  Mark Wielaard  <mjw@redhat.com>
418
419         * elflint.c (check_symtab): Use ebl_check_st_other_bits.
420
421 2011-02-27  Jan Kratochvil  <jan.kratochvil@redhat.com>
422
423         * readelf.c (reset_listptr): Clear TABLE->TABLE.
424
425 2011-02-25  Mark Wielaard  <mjw@redhat.com>
426
427         * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
428         (dwarf_form_string): Properly format and return unknown form.
429
430 2011-02-23  Roland McGrath  <roland@redhat.com>
431
432         * readelf.c (section_name): New function.
433         (print_debug_abbrev_section): Use it instead of constant.
434         (print_debug_aranges_section): Likewise.
435         (print_debug_ranges_section): Likewise.
436         (print_debug_units): Likewise.
437         (print_debug_line_section): Likewise.
438         (print_debug_loc_section): Likewise.
439         (print_debug_macinfo_section): Likewise.
440         (print_debug_pubnames_section): Likewise.
441         (print_debug_str_section): Likewise.
442         (print_debug) [USE_ZLIB]: Match .zdebug_* sections too.
443         (print_debug_abbrev_section): Use decoded d_size, not sh_size.
444         (print_debug_str_section): Likewise.
445
446         * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
447
448 2011-02-11  Roland McGrath  <roland@redhat.com>
449
450         * elfcmp.c (verbose): New variable.
451         (options, parse_opt): Grok -l/--verbose to set it.
452         (main): Under -l, keep going after first difference.
453
454         * elfcmp.c (ignore_build_id): New variable.
455         (options, parse_opt): Grok --ignore-build-id to set it.
456         (main): For SHT_NOTE sections, compare note details rather than raw
457         bytes.  Under --ignore-build-id, don't complain about differing build
458         ID contents if lengths match.
459
460 2011-02-08  Roland McGrath  <roland@redhat.com>
461
462         * ldscript.y (filename_id_star): Remove unused variable.
463
464         * unstrip.c (copy_elided_sections): Remove unused variable.
465
466         * elflint.c (check_dynamic): Remove unused variables.
467
468         * elflint.c (check_symtab): Warn about missing xndx section only once.
469
470         * ldgeneric.c (check_for_duplicate2): Remove unused variable.
471
472 2011-01-06  Roland McGrath  <roland@redhat.com>
473
474         * strip.c (handle_elf): Under --strip-sections, remove all
475         non-allocated sections and never generate .gnu_debuglink.
476
477 2011-01-04  Roland McGrath  <roland@redhat.com>
478
479         * strip.c (remove_shdrs): New variable.
480         (options, parse_opt): Grok --strip-sections to set it.
481         (handle_elf): When that's set, truncate off .shstrtab and shdrs.
482
483 2010-11-10  Roland McGrath  <roland@redhat.com>
484
485         * findtextrel.c (process_file): Don't assume order of sections.
486         Reported by Mike Hommey <mh@glandium.org>.
487
488 2010-07-26  Roland McGrath  <roland@redhat.com>
489
490         * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer.
491
492 2010-08-30  Roland McGrath  <roland@redhat.com>
493
494         Print .debug_loc/.debug_ranges with cognizance of actual DIE uses.
495         * readelf.c (parse_opt): Add section_info to implicit_debug_sections
496         for ranges, loc.
497         (struct listptr, struct listptr_table): New types.
498         (compare_listptr, reset_listptr, sort_listptr): New functions.
499         (notice_listptr, skip_listptr_hole): New functions.
500         (struct attrcb_args): Add silent member.
501         (attr_callback): Call notice_listptr for loclistptr and rangelistptr.
502         Suppress output if silent, but still call notice_listptr.
503         (print_debug_units): Suppress output if section_info not requested.
504         (print_debug_loc_section): Call sort_listptr, skip_listptr_hole.
505         (print_debug_ranges_section): Likewise.
506         (print_debug): Call reset_listptr on both tables.
507
508         * readelf.c (print_debug_ranges_section): Print empty list.
509         (print_debug_loc_section): Likewise.
510
511         * readelf.c (print_debug_loc_section): Check for bogus length
512         before calling print_ops.
513         (print_ops): Check harder for bogus data that would read off end.
514
515 2010-08-11  Roland McGrath  <roland@redhat.com>
516
517         * readelf.c (for_each_section_argument): Process all sections with
518         matching name, not just the first.
519
520 2010-07-26  Roland McGrath  <roland@redhat.com>
521
522         * readelf.c (print_ops): Take new argument for CU version.
523         Fix DW_OP_call_ref decoding to depend on it.
524         (print_debug_loc_section): Update caller.
525         (print_cfa_program): Take new argument, pass it down.
526         (print_debug_frame_section): Update caller.
527         (struct attrcb_args): New member version.
528         (print_debug_units): Initialize it.
529
530 2010-07-02  Roland McGrath  <roland@redhat.com>
531
532         * readelf.c (print_debug_frame_section): Use format_dwarf_addr for
533         initial_location.
534
535 2010-06-30  Roland McGrath  <roland@redhat.com>
536
537         * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO.
538         Ignore st_size for a non-S_ISREG file descriptor.
539         (read_block): Move assert after no-mmap bail-out.
540         (read_block_no_mmap): Fix size calculations for moving buffer remnant.
541
542 2010-06-22  Roland McGrath  <roland@redhat.com>
543
544         * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa.
545
546 2010-06-21  Roland McGrath  <roland@redhat.com>
547
548         * readelf.c (dwarf_tag_string): Handle new v4 tags.
549         (dwarf_attr_string): Add new attributes.
550         (dwarf_tag_string): Handle DW_TAG_GNU_*.
551
552         * readelf.c (print_ops): Use 64-bit types for LEB128 operands.
553         (print_cfa_program): Likewise.
554
555 2010-06-20  Roland McGrath  <roland@redhat.com>
556
557         * readelf.c (print_debug_units): New function, broken out of ...
558         (print_debug_info_section): ... here.  Call it.
559         (print_debug_types_section): New function.
560         (enum section_e): Add section_types alias for section_info.
561         (print_debug): Add types to the sections table.
562
563         * readelf.c (print_debug_frame_section): Handle version 4 format.
564
565         * readelf.c (print_debug_line_section): Handle version 4 format.
566
567 2010-06-14  Roland McGrath  <roland@redhat.com>
568
569         * unstrip.c (copy_elided_sections): Make sure all sections' data have
570         been read in before we write anything out.
571
572 2010-06-04  Roland McGrath  <roland@redhat.com>
573
574         * unstrip.c (update_shdr): New function.
575         (update_sh_size): Call it instead of gelf_update_shdr.
576         (adjust_relocs, add_new_section_symbols): Likewise.
577         (new_shstrtab, copy_elided_sections): Likewise.
578
579         * unstrip.c (copy_elided_sections): Bail if stripped file has more
580         sections than unstripped file, rather than getting confused later.
581
582 2010-06-01  Roland McGrath  <roland@redhat.com>
583
584         * readelf.c (dwarf_form_string): Handle DWARF 4 forms.
585         (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
586         DW_FORM_sec_offset, DW_FORM_ref_sig8.
587
588         * readelf.c (print_debug): Don't bail if libdw setup fails.
589         Suppress complaint if we only want .eh_frame anyway.
590
591 2010-05-28  Ulrich Drepper  <drepper@redhat.com>
592
593         * readelf.c (attr_callback): Also print form information.
594
595 2010-05-19  Roland McGrath  <roland@redhat.com>
596
597         * addr2line.c (find_symbol): Short-circuit on empty name.
598         (handle_address): Handle SYMBOL with no +OFFSET.
599
600 2010-05-08  Roland McGrath  <roland@redhat.com>
601
602         * readelf.c (print_ops): Take new arg OFFSET_SIZE.
603         Use that for DW_OP_call_ref, not ADDRSIZE.
604         (print_cfa_program): Update caller.
605         (struct attrcb_args): Add offset_size field.
606         (attr_callback): Use it for print_ops call.
607         (print_debug_info_section): Initialize it.
608         (print_ops): Likewise.
609
610 2010-04-14  Roland McGrath  <roland@redhat.com>
611
612         * readelf.c (handle_core_item): Fix bitmask printing.
613
614 2010-04-06  Roland McGrath  <roland@redhat.com>
615
616         * ld.c (options): Fix some typos in messages.
617         * elflint.c (check_scn_group, check_group): Likewise.
618         * ldscript.y (add_id_list): Likewise.
619         * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
620         before translated string containing a literal %.
621
622 2010-02-26  Roland McGrath  <roland@redhat.com>
623
624         * readelf.c (process_file): Don't leak an fd in failure case.
625
626 2010-02-15  Roland McGrath  <roland@redhat.com>
627
628         * Makefile.am: Use config/eu.am for common stuff.
629
630         * readelf.c (print_debug_frame_section): Add a cast to avoid sign
631         mismatch in comparison.
632
633 2010-02-02  Roland McGrath  <roland@redhat.com>
634
635         * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
636         (read_encoded): Likewise.
637         (print_debug_frame_section): Check for bogus augmentation length.
638         For P augmentation, use read_encoded, print the encoding description,
639         and use hex for unsigned values.
640
641 2010-01-15  Roland McGrath  <roland@redhat.com>
642
643         * ar.c: Include <sys/stat.h>.
644         * elflint.c: Likewise.
645         * readelf.c: Likewise.
646         * strip.c: Likewise.
647         * unstrip.c: Likewise
648
649 2010-01-07  Roland McGrath  <roland@redhat.com>
650
651         * readelf.c (print_ehdr): Handle PN_XNUM.
652         (phnum): New static variable.
653         (process_elf_file): Set it with elf_getphdrnum.
654         (print_phdr): Use phnum instead of EHDR->e_phnum.
655         (print_dynamic, handle_notes): Likewise.
656         (handle_relocs_rel, handle_relocs_rela): Likewise.
657
658         * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
659
660         * elflint.c (phnum): New static variable.
661         (check_elf_header): Set it, handling PN_XNUM.
662         Use that in place of EHDR->e_phnum throughout.
663         (check_symtab, check_reloc_shdr, check_dynamic): Likewise.
664         (unknown_dependency_p, check_sections, check_program_header): Likewise.
665
666 2010-01-05  Roland McGrath  <roland@redhat.com>
667
668         * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
669         DW_AT_GNU_template_name.
670
671 2010-01-04  Roland McGrath  <roland@redhat.com>
672
673         * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
674         (handle_core_note): Pass NHDR and NAME to ebl_core_note.
675         (handle_core_item): Handle .format of '\n' as \n-separated strings.
676
677         * readelf.c (implicit_debug_sections): New variable.
678         (parse_opt): Set it instead of print_debug_sections for -a.
679         OR them together for print_debug check.
680         (print_debug): OR them together for section check.
681
682         * readelf.c (options): Repartition into set implied by -a and others.
683         Correct -a text to match reality.
684
685         * readelf.c (struct section_argument): Add bool member 'implicit'.
686         (parse_opt): Set it for -a cases, clear it for -x args.
687         (for_each_section_argument): Don't complain about a missing section by
688         name if it's implicit.
689
690 2009-11-16  Roland McGrath  <roland@redhat.com>
691
692         * readelf.c (print_string_section): Punt SHT_NOBITS like empty
693         sections, just as dump_data_section already does.
694
695 2009-09-21  Ulrich Drepper  <drepper@redhat.com>
696
697         * elflint.c (special_sections): Allow MERGE and STRINGS flags to be
698         set for .comment section.
699         Patch by Mark Wielaard <mjw@redhat.com>.
700
701 2009-09-08  Roland McGrath  <roland@redhat.com>
702
703         * ar.c (main): Fix typo in message format.
704
705 2009-08-21  Roland McGrath  <roland@redhat.com>
706
707         * readelf.c (attr_callback): Use print_block only when we don't use
708         print_ops.
709
710 2009-08-14  Roland McGrath  <roland@redhat.com>
711
712         * ar.c (do_oper_extract): Use pathconf instead of statfs.
713
714 2009-08-01  Ulrich Drepper  <drepper@redhat.com>
715
716         * debugpred.h: Add two most const.
717
718 2009-07-26  Mark Wielaard  <mjw@redhat.com>
719
720         * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
721
722 2009-07-25  Mark Wielaard  <mjw@redhat.com>
723
724         * Makefile.am (addr2line_LDADD): Add $(libelf).
725
726 2009-07-24  Roland McGrath  <roland@redhat.com>
727
728         * readelf.c (print_block): New function.
729         (print_ops): Use it.
730         (attr_callback): Use it for DW_FORM_block* forms.
731
732 2009-07-20  Mark Wielaard  <mjw@redhat.com>
733
734         * readelf.c (print_ops): Add handling of DW_OP_implicit_value
735         and DW_OP_stack_value.
736
737 2009-07-14  Ulrich Drepper  <drepper@redhat.com>
738
739         * elflint.c (check_elf_header): Allow Linux ABI.
740         (check_symtab): Handle STB_GNU_UNIQUE.
741
742 2009-07-08  Mark Wielaard  <mjw@redhat.com>
743
744         * readelf.c (attr_callback): Handle DW_Form constants for
745         DW_AT_data_member_location.
746
747 2009-07-06  Roland McGrath  <roland@redhat.com>
748
749         * readelf.c (register_info): New function.  Handle unknown register #s.
750         (print_cfa_program): Use it.
751         (handle_core_register, handle_core_registers): Likewise.
752
753 2009-06-28  Roland McGrath  <roland@redhat.com>
754
755         * readelf.c (print_address_names): New static variable.
756         (options, parse_opt): Grok -N/--numeric-addresses to clear it.
757         (format_dwarf_addr): Don't look up name if !print_address_names.
758
759 2009-06-13  Ulrich Drepper  <drepper@redhat.com>
760
761         * ldgeneric.c: Don't use deprecated libelf functions.
762         * nm.c: Likewise.
763         * objdump.c: Likewise.
764         * readelf.c: Likewise.
765         * size.c: Likewise.
766         * strip.c: Likewise.
767         * unstrip.c: Likewise.
768         * ld.h: Fix up comment.
769
770 2009-06-01  Ulrich Drepper  <drepper@redhat.com>
771
772         * readelf.c (print_relocs): Expect ELF header argument and pass on
773         to handle_relocs_rel* functions. Adjust caller.
774         (handle_relocs_rel): Add ELF header argument.  Add special case for
775         the IRELATIVE relocations in statically linked executables.
776         (handle_relocs_rela): Likewise.
777
778 2009-04-29  Ulrich Drepper  <drepper@redhat.com>
779
780         * elflint.c (check_symtab): Add tests of st_other field.
781
782 2009-04-23  Ulrich Drepper  <drepper@redhat.com>
783
784         * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
785
786 2009-04-20  Roland McGrath  <roland@redhat.com>
787
788         * addr2line.c (print_dwarf_function): Honor -s and -A for file names
789         of inline call sites.
790
791         * addr2line.c (just_section): New variable.
792         (adjust_to_section): New function, broken out of ...
793         (handle_address): ... here.
794         (options, parse_opt): Add -j/--section=NAME to set it.
795
796 2009-04-15  Roland McGrath  <roland@redhat.com>
797
798         * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
799         64-bit format header, DW_CIE_ID_32 in 32-bit format header.
800
801 2009-04-14  Roland McGrath  <roland@redhat.com>
802
803         * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
804         like SHT_GNU_ATTRIBUTES.
805
806         * readelf.c (handle_core_registers): Fix error message.
807
808         * strip.c (handle_elf: check_preserved): Don't note any change when
809         .debug_data is already filled from a previous pass.
810
811 2009-02-05  Ulrich Drepper  <drepper@redhat.com>
812
813         * objdump.c (show_relocs_x): Minor cleanups.
814
815         * readelf.c (print_cfa_program): Correct a few labels.
816         Print first DW_CFA_expression and DW_CFA_val_expression parameter
817         as register.
818
819 2009-02-01  Ulrich Drepper  <drepper@redhat.com>
820
821         * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
822         into ...
823         (show_relocs_x): ...here.  New function.
824         (show_relocs): Better spacing in output.
825
826         * objdump.c (show_relocs_rela): Show offsets as signed values.
827
828         * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
829         Improve some error messages.
830         Use program_invocation_short_name instead of AR macro.
831         * Makefile.am (CFLAGS_ar): Remove.
832         * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
833         * objdump.c (parse_opt): Likewise.
834         * readelf.c (parse_opt): Likewise.
835
836 2009-01-27  Roland McGrath  <roland@redhat.com>
837
838         * readelf.c (print_ops): Notice short length, don't overrun buffer
839         (still need to fix LEB128).
840
841         * readelf.c (print_ops): Fix DW_OP_call[24] decoding.
842
843         * readelf.c (print_ops): Print (empty)\n when LEN == 0.
844
845 2009-01-24  Ulrich Drepper  <drepper@redhat.com>
846
847         * readelf.c (print_debug_frame_section): Fix computation of vma_base
848         for PC-relative mode.
849
850 2009-01-23  Ulrich Drepper  <drepper@redhat.com>
851
852         * size.c (process_file): When handling archive, close file descriptor
853         here.  For unknown file format also close file descriptor.
854         (handle_ar): Don't close file descriptor here.
855
856         * readelf.c (parse_opt): Move code to add to dump_data_sections and
857         string_sections list in local function add_dump_section.  Adjust 'x'
858         key handling.  For 'a' key add .strtab, .dynstr, and .comment section
859         to string_sections list.
860
861 2009-01-22  Roland McGrath  <roland@redhat.com>
862
863         * readelf.c (print_phdr): Don't print section mapping when no sections.
864
865         * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
866
867         * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
868         and reset it only for the 'true' cases.
869
870         * Makefile.am (addr2line_no_Wformat): New variable.
871
872         * readelf.c (print_debug_frame_section): Use t instead of j formats
873         for ptrdiff_t OFFSET.
874
875 2009-01-21  Ulrich Drepper  <drepper@redhat.com>
876
877         * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
878         test.  Handle debuginfo files.
879         (check_exception_data): First sanity test.
880
881 2009-01-17  Ulrich Drepper  <drepper@redhat.com>
882
883         * readelf.c (print_debug_exception_table): Show target of ar_disp
884         field.
885
886         * elflint.c (check_program_header): Add most consistency checks for
887         PT_GNU_EH_FRAME entry.
888
889         * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
890         ARGP_PROGRAM_BUG_ADDRESS_DEF.
891         * ar.c: Likewise.
892         * elfcmp.c: Likewise.
893         * elflint.c: Likewise.
894         * findtextrel.c: Likewise.
895         * ld.c: Likewise.
896         * nm.c: Likewise.
897         * objdump.c: Likewise.
898         * ranlib.c: Likewise.
899         * readelf.c: Likewise.
900
901         * size.c: Likewise.
902         * strings.c: Likewise.
903         * strip.c: Likewise.
904         * unstrip.c: Likewise.
905
906 2009-01-16  Ulrich Drepper  <drepper@redhat.com>
907
908         * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
909         matches .eh_frame_hdr section, if it is available.  Also check that
910         the segment is allocated, not writable, not executable.
911
912         * readelf.c: Add -e option.  Dump exception and unwind related
913         sections.  Add -e to -a.
914         (print_encoding_base): Handle DW_EH_PE_omit.
915         (print_debug_exception_table): Beginning of support.
916         (print_debug): Hook up print_debug_exception_table for
917         .gcc_except_table sections.
918
919         * readelf.c (print_debug_frame_section): Some fixes for last change.
920
921 2009-01-15  Ulrich Drepper  <drepper@redhat.com>
922
923         * readelf.c (print_encoding): Now a toplevel function.
924         (print_relinfo): Likewise.
925         (print_encoding_base): Broken out of print_debug_frame_section.
926         (print_debug_frame_section): Print different header for .eh_frame
927         sections.  Fix recognition of matching CIEs in .debug_frame sections.
928         Print absolute offset for PC-relative FDE locations.  Don't print
929         table header for FDEs if the table is empty.
930         (read_encoded): New function.
931         (print_debug_frame_hdr_section): New function.
932         (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
933         sections.
934
935         * readelf.c (handle_relocs_rel): Print section number.
936         (print_debug_abbrev_section): Likewise.
937         (print_debug_aranges_section): Likewise.
938         (print_debug_ranges_section): Likewise.
939         (print_debug_info_section): Likewise.
940         (print_debug_line_section): Likewise.
941         (print_debug_loc_section): Likewise.
942         (print_debug_macinfo_section): Likewise.
943         (print_debug_pubnames_section): Likewise.
944         (print_debug_str_section): Likewise.
945
946 2009-01-10  Ulrich Drepper  <drepper@redhat.com>
947
948         * strings.c (read_block): Fix typo in error message string.
949
950 2009-01-07  Ulrich Drepper  <drepper@redhat.com>
951
952         * ld.c (ld_new_searchdir): Fix adding to search path list.
953
954 2009-01-06  Ulrich Drepper  <drepper@redhat.com>
955
956         * readelf.c: Implement call frame debug section dumping.
957
958 2009-01-05  Roland McGrath  <roland@redhat.com>
959
960         * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
961         Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
962
963 2009-01-01  Ulrich Drepper  <drepper@redhat.com>
964
965         * addr2line.c: Update copyright year.
966         * ar.c: Likewise.
967         * elfcmp.c: Likewise.
968         * elflint.c: Likewise.
969         * findtextrel.c: Likewise.
970         * ld.c: Likewise.
971         * nm.c: Likewise.
972         * objdump.c: Likewise.
973         * ranlib.c: Likewise.
974         * readelf.c: Likewise.
975         * size.c: Likewise.
976         * strings.c: Likewise.
977         * strip.c: Likewise.
978         * unstrip.c: Likewise.
979
980 2008-12-11  Roland McGrath  <roland@redhat.com>
981
982         * nm.c (sym_name): New function.
983         (show_symbols_sysv): Use it in place of elf_strptr.
984         (show_symbols_bsd, show_symbols_posix): Likewise.
985         Fixes RHBZ#476136.
986
987         * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
988         elf_strptr fails.
989
990 2008-12-02  Roland McGrath  <roland@redhat.com>
991
992         * readelf.c (count_dwflmod, process_file): Don't presume encoding of
993         nonzero OFFSET argument to dwfl_getmodules.
994
995 2008-08-07  Roland McGrath  <roland@redhat.com>
996
997         * addr2line.c (main): Pass string to handle_address.
998         (see_one_module): New function, subroutine of handle_address.
999         (find_symbol): Likewise.
1000         (handle_address): Take string argument rather than address.
1001         Convert plain number, or handle strings like "(section)+offset"
1002         or "symbol+offset".
1003
1004 2008-08-01  Roland McGrath  <roland@redhat.com>
1005
1006         * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
1007         For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
1008
1009         * readelf.c (convert): Take new argument SIZE.
1010         (handle_core_register, handle_core_item): Update callers.
1011         (handle_core_item): Take new arg REPEATED_SIZE.
1012         (handle_core_items): Special case for a singleton item,
1013         let handle_core_item handle repeats if it wants to.
1014
1015         * readelf.c (handle_core_items): Give abridged output
1016         for identical groups repeated more than twice.
1017
1018 2008-07-04  Roland McGrath  <roland@redhat.com>
1019
1020         * readelf.c (handle_core_items): Handle ELF_T_ADDR.
1021
1022 2008-04-10  Roland McGrath  <roland@redhat.com>
1023
1024         * strip.c (handle_elf): Don't keep sections that kept symbol tables
1025         refer to.  Instead, just be sure to preserve the original symbol
1026         table in the debug file so those symbols go with their sections and
1027         can be elided from the stripped version of the symbol table.
1028
1029         * strip.c (handle_elf): When a discarded section kept in the debug
1030         file refers to a nondiscard section via sh_link/sh_info, preserve
1031         that nondiscarded section unmodified in the debug file as well.
1032         Skip adjustment of discarded sections symbol table references when
1033         that symbol table is copied in this way.
1034
1035         * elflint.c (check_symtab): Don't crash from missing symbol names
1036         after diagnosing bogus strtab.
1037
1038         * strip.c (handle_elf): Cosmetic cleanup in special section contents
1039         adjustment for symtab changes.
1040
1041 2008-03-31  Roland McGrath  <roland@redhat.com>
1042
1043         * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
1044         must be SHT_PROGBITS, must not be SHF_WRITE.  Let backend hook
1045         excuse a special section.
1046
1047 2008-03-27  Roland McGrath  <roland@redhat.com>
1048
1049         * elflint.c (check_sections): Check that executability and writability
1050         of sections is reflected in segment p_flags.
1051
1052 2008-03-26  Roland McGrath  <roland@redhat.com>
1053
1054         * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
1055         that matches its PT_LOAD's p_flags &~ PF_W.  On sparc, PF_X really
1056         is valid in RELRO.
1057
1058 2008-02-29  Roland McGrath  <roland@redhat.com>
1059
1060         * readelf.c (print_attributes): Add a cast.
1061         * elflint.c (check_attributes): Likewise.
1062
1063         * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
1064         with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
1065         (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
1066
1067 2008-02-03  Ulrich Drepper  <drepper@redhat.com>
1068
1069         * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
1070         when linked into executable.
1071         (elf_i386_create_relocations): Likewise.
1072
1073 2008-02-20  Roland McGrath  <roland@redhat.com>
1074
1075         * readelf.c (print_attributes): New function.
1076         (process_elf_file): Call it under -A.
1077
1078         * elflint.c (check_attributes): Implement it for real.
1079
1080 2008-02-19  Roland McGrath  <roland@redhat.com>
1081
1082         * elflint.c (special_sections): Handle .gnu.attributes section.
1083         (check_sections): Likewise.
1084         (check_attributes): New function.
1085
1086 2008-02-10  Roland McGrath  <roland@redhat.com>
1087
1088         * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
1089         sections and ET_REL files.
1090
1091 2008-02-02  Ulrich Drepper  <drepper@redhat.com>
1092
1093         * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
1094         * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
1095         and R_386_TLS_LE.
1096         (elf_i386_create_relocations): Likewise.
1097         * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
1098         elements.
1099         * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
1100         (ld_generic_create_outfile): Add PT_TLS entry to program  header.
1101         Fix generation of PT_GNU_STACK entry.
1102
1103 2008-02-01  Ulrich Drepper  <drepper@redhat.com>
1104
1105         * ld.c (replace_args): Prevent loop over replacements if the parameter
1106         is only two characters long.
1107
1108         * ld.c: Recognize sha1 argument for --build-id parameter.
1109         * ldgeneric.c (create_build_id_section): Handle sha1.
1110         (compute_hash_sum): New function.  Broken out of compute_build_id.
1111         Take hash function and context as parameters.
1112         (compute_build_id): Use compute_hash_sum for md5 and the new sha1
1113         implementation.
1114
1115 2008-01-31  Ulrich Drepper  <drepper@redhat.com>
1116
1117         * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
1118         * ld.c: Recognize --build-id command line parameter.
1119         * ld.h: Define scn_dot_note_gnu_build_id.
1120         (struct ld_state): Add build_id and buildidscnidx elements.
1121         * ldgeneric.c: Implement --build-id command line parameter.
1122         * ldlex.l (ID): Recognize - as valid character after the first one.
1123
1124 2008-01-29  Ulrich Drepper  <drepper@redhat.com>
1125
1126         * ld.c (replace_args): New function.
1127         (main): Use it to rewrite old-style parameters.
1128
1129         * elf32-i386.script: Add .gnu.hash section.
1130         * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
1131         (fillin_special_symbol): Initialize st_size.
1132         (sortfct_hashval): New function.
1133         (create_gnu_hash): New function.
1134         (create_hash): New function.
1135         (ld_generic_create_outfile): Use the new functions to create the
1136         hash tables.
1137
1138         * elflint.c (check_gnu_hash): Fix index value printed in error message.
1139
1140 2008-01-24  Ulrich Drepper  <drepper@redhat.com>
1141
1142         * elflint.c (check_group): Check that signature symbol for section
1143         group is not an empty string.
1144         * ldgeneric.c: Remove magic assignment of indeces in the dynsym
1145         section.  Start implementation of --hash-style.
1146         * i386_ld.c: Likewise.
1147         * ld.c: Recognize --hash-style.
1148         * ld.h (struct scninfo): Add comdat_group.
1149         Add additional parameter to finalize_plt callback.
1150
1151 2008-01-22  Ulrich Drepper  <drepper@redhat.com>
1152
1153         * ld.h (struct callbacks): Add initialize_gotplt.
1154         (struct scnhead): Add scn_dot_gotplt.
1155         (struct ld_state): Add gotpltscnidx.
1156         * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
1157         (elf_i386_initialize_pltrel): Likewise.
1158         (elf_i386_initialize_got): There is now a separate .got.plt, so
1159         don't do the PLT-related work here.  Initialize d_type.
1160         (elf_i386_initialize_gotplt): New function.
1161         (elf_i386_plt0): Use ud2a after indirect jump.
1162         (elf_i386_pic_plt0_entry): Likewise.
1163         (elf_i386_finalize_plt): Reference now .got.plt.
1164         (elf_i386_count_relocations): For GOT entries which need no relocation
1165         don't bump nrel_got.
1166         (elf_i386_create_relocations): Also get .got.plt.  Rewrite R-386_GOT32
1167         handling for split .got/.got.plt.
1168         (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
1169         * elf32-i386.script: Sort sections for security.  There are no .got
1170         input sections.  Add .got.plt.
1171         * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
1172         (ld_generic_create_outfile): Initialize .got.plt section.
1173         Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
1174
1175 2008-01-19  Ulrich Drepper  <drepper@redhat.com>
1176
1177         * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
1178         symbols are not carried over into statically linked output files.
1179         Add dummy entries for more TLS relocations.
1180
1181         * ld.c (options): Add long names for -( and -).
1182
1183         * ldgeneric.c (check_definition): For newly found definitions don't
1184         mark section as used if symbol is absolute.
1185         (extract_from_archive): Only assign archive sequence number the first
1186         time the archive is handled.  Update ld_state.last_archive_used
1187         if any symbol was used.  Remove nround variable.
1188         (file_process2): When using symbol from an archive, update
1189         ld_state.group_start_archive, ld_state.archives, and
1190         ld_state.tailarchives.
1191         (ld_generic_file_process): If group is not handled anymore, after
1192         freeing ELF handles for the archives, clear ld_state.archives and
1193         *nextp.  Fix wrong logic in recognizing first iteration of group
1194         loop.  When clearing flags, also clear ld_state.group_start_archive.
1195
1196 2008-01-11  Ulrich Drepper  <drepper@redhat.com>
1197
1198         * objdump.c (show_disasm): Adjust disassembler format string for
1199         removal of %e.
1200
1201 2008-01-04  Roland McGrath  <roland@redhat.com>
1202
1203         * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
1204         a size greater than the items cover means multiple sets of items.
1205         (handle_core_note): Update caller.
1206
1207 2008-01-04  Roland McGrath  <roland@redhat.com>
1208
1209         * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
1210
1211 2008-01-03  Roland McGrath  <roland@redhat.com>
1212
1213         * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
1214
1215         * elflint.c (check_dynamic): Remove duplicate initializer.
1216
1217 2008-01-02  Ulrich Drepper  <drepper@redhat.com>
1218
1219         * addr2line.c: Update copyright year.
1220         * ar.c: Likewise.
1221         * elfcmp.c: Likewise.
1222         * elflint.c: Likewise.
1223         * findtextrel.c: Likewise.
1224         * ld.c: Likewise.
1225         * nm.c: Likewise.
1226         * objdump.c: Likewise.
1227         * ranlib.c: Likewise.
1228         * readelf.c: Likewise.
1229         * size.c: Likewise.
1230         * strings.c: Likewise.
1231         * strip.c: Likewise.
1232         * unstrip.c: Likewise.
1233
1234 2007-12-30  Ulrich Drepper  <drepper@redhat.com>
1235
1236         * objdump (show_disasm): Use %e after third parameter.
1237
1238 2007-12-21  Ulrich Drepper  <drepper@redhat.com>
1239
1240         * strip.c: Fix wrong parenthesis in a few branch predictions.
1241         * strings.c: Likewise.
1242
1243 2007-12-20  Ulrich Drepper  <drepper@redhat.com>
1244
1245         * Makefile.am (DEFS): Add DEBUGPRED.
1246         * addr2line.c: Include debugpred.h.
1247         * ar.c: Likewise.
1248         * elfcmp.c: Likewise.
1249         * elflint.c: Likewise.
1250         * findtextrel.c: Likewise.
1251         * nm.c: Likewise.
1252         * objdump.c: Likewise.
1253         * ranlib.c: Likewise.
1254         * readelf.c: Likewise.
1255         * size.c: Likewise.
1256         * strings.c: Likewise.
1257         * strip.c: Likewise.
1258         * unstrip.c: Likewise.
1259         * debugpred.h: New file.
1260
1261         * readelf.c (handle_relocs_rel): Use elf_scnshndx.
1262         (handle_relocs_rela): Likewise.
1263
1264         * readelf.c: Add lots of likely/unlikely.
1265
1266         * elflint.c: Minor cleanups.
1267
1268 2007-11-19  Roland McGrath  <roland@redhat.com>
1269
1270         * readelf.c (print_ops): Handle all bad op codes gracefully.
1271         Print their numbers instead of just ???.
1272
1273 2007-11-09  Roland McGrath  <roland@redhat.com>
1274
1275         * readelf.c (attr_callback): Handle DW_AT_data_location.
1276         Handle block forms to mean a DWARF expression for DW_AT_allocated,
1277         DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
1278         DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
1279         DW_AT_upper_bound.
1280
1281 2007-10-20  Roland McGrath  <roland@redhat.com>
1282
1283         * unstrip.c (options): Update -R description.
1284         (struct symbol): Put symbol details a union with a size_t pointer
1285         `duplicate'.
1286         (compare_symbols_output): Use null ->name as marker for discard
1287         symbols, not zero *->map.
1288         (copy_elided_sections): Record forwarding pointers for discarded
1289         duplicates and fill SYMNDX_MAP elements through them.
1290
1291         * readelf.c (process_file): Set offline_next_address to 0 at start.
1292         (struct process_dwflmod_args): New type.
1293         (process_dwflmod): Take args in it, pass fd to process_elf_file.
1294         (process_file): Update caller; dup FD for passing to libdwfl.
1295         (process_elf_file): Take new arg FD.  For ET_REL file when
1296         displaying data affected by libdwfl relocation, open a new Elf handle.
1297
1298 2007-10-17  Roland McGrath  <roland@redhat.com>
1299
1300         * readelf.c (print_debug_line_section): For invalid data inside a
1301         unit with plausible length, keep printing at the next unit boundary.
1302
1303         * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
1304
1305 2007-10-16  Roland McGrath  <roland@redhat.com>
1306
1307         * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
1308
1309 2007-10-15  Roland McGrath  <roland@redhat.com>
1310
1311         * make-debug-archive.in: New file.
1312         * Makefile.am (EXTRA_DIST): Add it.
1313         (make-debug-archive): New target.
1314         (bin_SCRIPTS, CLEANFILES): Add it.
1315
1316 2007-10-10  Roland McGrath  <roland@redhat.com>
1317
1318         * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
1319         Use it to check MERGE|STRINGS for .debug_str.
1320         (check_sections): Handle exact_or_gnuld.
1321
1322 2007-10-08  Roland McGrath  <roland@redhat.com>
1323
1324         * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
1325         64-bit struct timeval with 32-bit tv_usec.
1326
1327 2007-10-07  Roland McGrath  <roland@redhat.com>
1328
1329         * readelf.c (check_archive_index): New function.
1330         (process_file): Call it.  Change signature to take only fd and name.
1331         Use libdwfl to open the file, then iterate on its modules (multiple
1332         for an archive) to print file name and call process_elf_file.
1333         (main): Update caller.  Let process_file do elf_begin.
1334         (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
1335         (process_elf_file): Take only Dwfl_Module * argument.
1336         Don't print the file name here.
1337         (print_debug_*_section): Take Dwfl_Module * argument.
1338         (print_debug): Likewise.  Update caller.
1339         (format_dwarf_addr): New function.
1340         (print_debug_ranges_section): Use it.
1341         (attr_callback): Likewise.
1342         (print_debug_line_section, print_debug_loc_section): Likewise.
1343
1344         * readelf.c (print_debug_ranges_section): Translate all strings.
1345         (print_debug_loc_section): Likewise.
1346
1347         * unstrip.c (copy_elided_sections): Initialize SEC.
1348
1349         * ar.c (do_oper_insert): Put trailing / on short names.
1350
1351         * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
1352
1353         * arlib2.c (arlib_add_long_name): Adjust for header size.
1354
1355         * arlib.c (arlib_finalize): Pad long name table to keep size even.
1356
1357         * ar.c (do_oper_insert): Use write_retry for padding write.
1358
1359         * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
1360         Unconditionally set FOUND[CNT]->elf when setting ->mem.
1361         (remember_long_name): New function.
1362         (do_oper_insert): Call it.  Correctly use length of basename,
1363         not original name.  Don't store long name twice for new member.
1364
1365 2007-10-06  Roland McGrath  <roland@redhat.com>
1366
1367         * elflint.c (check_note): Skip empty segment.
1368         (check_note_section): Skip empty section.
1369
1370         * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
1371         (handle_output_dir_module, handle_implicit_modules): Pass it down.
1372         (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
1373         (compare_alloc_sections): Take new arg REL, ignore address if true.
1374         (compare_sections): Likewise, pass it down.
1375         (compare_sections_rel, compare_sections_nonrel): New functions.
1376         (find_alloc_sections_prelink, copy_elided_sections): Use them
1377         instead of compare_sections.
1378         (sections_match): New function, broken out of ...
1379         (find_alloc_section): ... here.
1380         (copy_elided_sections): Reorganize section match-up logic.
1381         Use sections_match for SHF_ALLOC in ET_REL.
1382         For ET_REL, let the nonzero sh_addr from the debug file dominate.
1383
1384         * unstrip.c (add_new_section_symbols): Take new arg REL.
1385         When true, do not update section symbol values.
1386         (collect_symbols): Likewise.  Update section symbols with address
1387         of chosen output section, not original section.
1388         (check_symtab_section_symbols, copy_elided_sections): Update callers.
1389
1390         * unstrip.c (compare_alloc_sections): At the same address, preserve
1391         original section order.
1392
1393         * elflint.c (special_sections): Don't require MERGE|STRINGS for
1394         .debug_str, it didn't always have them with older tools.
1395
1396         * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
1397
1398 2007-10-05  Roland McGrath  <roland@redhat.com>
1399
1400         * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
1401         ET_REL file.
1402
1403         * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
1404         SHN_UNDEF as "bad section".  Use shndx value in messages.
1405
1406         * elflint.c (special_sections): Add ".debug_str".  Decrement namelen
1407         for ".debug" so it matches as a prefix.
1408         (IS_KNOWN_SPECIAL): New macro.
1409         (check_sections): Use it for ".plt" match.  Cite wrong SHT_NOBITS
1410         type even under -d, for a .debug* or .shstrtab section.
1411
1412         * readelf.c (print_ops): Use hex for address operand.
1413
1414 2007-10-04  Roland McGrath  <roland@redhat.com>
1415
1416         * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
1417         .gnu_debuglink section to SHN_UNDEF.  Drop STT_SECTION symbols for
1418         sections mapped to SHN_UNDEF.
1419
1420 2007-10-04  Ulrich Drepper  <drepper@redhat.com>
1421
1422         * readelf.c (dump_archive_index): Avoid warning about uninitialized
1423         variable with older glibc versions.
1424         Add some branch prediction.
1425
1426 2007-10-04  Roland McGrath  <roland@redhat.com>
1427
1428         * readelf.c (print_archive_index): New variable.
1429         (options, parse_opt): Accept -c/--archive-index to set it.
1430         (dump_archive_index): New function.
1431         (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
1432         Call dump_archive_index on archives if set.
1433         (main): Update caller.
1434         (any_control_option): Give it file scope, moved out of ...
1435         (parse_opt): ... here.
1436
1437 2007-10-03  Roland McGrath  <roland@redhat.com>
1438
1439         * unstrip.c (struct arg_info): Add `list' flag.
1440         (options, parse_opt): Grok -n/--list to set it.
1441         (list_module): New function.
1442         (handle_implicit_modules): Call it under -n.
1443
1444         * elflint.c (check_note_section): New function.
1445         (check_sections): Call it for SHT_NOTE.
1446
1447         * readelf.c (handle_notes): Use sections when available.
1448
1449         * elflint.c (check_note_data): New function, broken out of ...
1450         (check_note): ... here.  Call it and elf_getdata_rawchunk.
1451
1452         * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
1453         Use elf_getdata_rawchunk and gelf_getauxv.
1454         (handle_notes_data): New function, broken out of ...
1455         (handle_notes): ... here.  Call it and elf_getdata_rawchunk.
1456
1457 2007-10-01  Roland McGrath  <roland@redhat.com>
1458
1459         * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
1460
1461         * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
1462
1463 2007-09-10  Roland McGrath  <roland@redhat.com>
1464
1465         * readelf.c (options): Give -p optional argument, alias --string-dump.
1466         (string_sections, string_sections_tail): New static variables.
1467         (parse_opt): Set them when -p has an argument.
1468         (print_string_section): New function, broken out of ...
1469         (print_strings): ... here.  Call it.
1470         (dump_data_section): New function, broken out of ...
1471         (dump_data): ... here.  Call it.
1472         (for_each_section_argument): New function, broken out of ...
1473         (dump_data): ... here.  Call it.
1474         (dump_strings): New function.
1475
1476 2007-08-31  Roland McGrath  <roland@redhat.com>
1477
1478         * readelf.c (print_strings): Typo fix.
1479
1480 2007-08-23  Roland McGrath  <roland@redhat.com>
1481
1482         * readelf.c (printf_with_wrap): Function removed.
1483         (REGISTER_WRAP_COLUMN): New macro.
1484         (handle_core_register): Use print_core_item instead.
1485         (struct register_info): New type.
1486         (compare_registers, compare_register_sets): New functions.
1487         (register_bitpos, compare_sets_by_info): New functions.
1488         (handle_core_registers): Use those to segregate and sort registers
1489         for display.
1490
1491         * readelf.c (ITEM_WRAP_COLUMN): New macro.
1492         (print_core_item): New function.
1493         (handle_core_item): Use it instead of printf_with_wrap.
1494         (compare_core_items, compare_core_item_groups): New functions.
1495         (handle_core_items): Use them.  Sort by group and force line breaks
1496         between groups.
1497
1498         * readelf.c (handle_core_registers, handle_core_items): New functions,
1499         broken out of ...
1500         (handle_core_note): ... here.   Call them.
1501
1502 2007-08-22  Roland McGrath  <roland@redhat.com>
1503
1504         * unstrip.c (new_shstrtab): New function, broken out of ...
1505         (copy_elided_sections): ... here.
1506
1507 2007-08-20  Roland McGrath  <roland@redhat.com>
1508
1509         Avoid local function trampolines in nm binary.
1510         * nm.c (sort_by_address): Move to a static function instead of local
1511         inside show_symbols.
1512         (sort_by_name_strtab): New static variable.
1513         (sort_by_name): Use it.  Move to a static function instead of local
1514         inside show_symbols.
1515         (show_symbols): Set sort_by_name_strtab.
1516
1517 2007-08-19  Roland McGrath  <roland@redhat.com>
1518
1519         * readelf.c (handle_auxv_note): New function.
1520         (handle_notes): Call it.
1521
1522         * readelf.c (printf_with_wrap, convert): New functions.
1523         (handle_core_item, (handle_core_register): New functions.
1524         (handle_notes): Call those with details from ebl_core_note.
1525
1526 2007-08-12  Roland McGrath  <roland@redhat.com>
1527
1528         * elflint.c (check_note): Accept type 0 with name "Linux".
1529
1530         * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
1531
1532         * elflint.c (section_flags_string): Return "none" for 0, not "".
1533
1534 2007-08-11  Roland McGrath  <roland@redhat.com>
1535
1536         * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
1537
1538 2007-08-04  Ulrich Drepper  <drepper@redhat.com>
1539
1540         * readelf.c (hex_dump): Use isprint to determine whether to print
1541         character itself or full stop character.
1542         (dump_data): No need to check endp for NULL after strtol call.
1543
1544 2007-08-03  Roland McGrath  <roland@redhat.com>
1545
1546         * readelf.c (print_string_sections): New variable.
1547         (options, parse_opt): Handle --strings/-p to set it.
1548         (print_strings): New function.
1549         (process_elf_file): Call it under -p.
1550
1551         * readelf.c (options): Add hidden aliases --segments, --sections,
1552         as taken by binutils readelf.
1553
1554 2007-08-01  Roland McGrath  <roland@redhat.com>
1555
1556         * readelf.c (dump_data_sections, dump_data_sections_tail):
1557         New variables.
1558         (options, parse_opt): Handle --hex-dump/-x, set them.
1559         (hex_dump): New function.
1560         (dump_data): New function, call it.
1561         (process_elf_file): Call it.
1562
1563 2007-07-25  Roland McGrath  <roland@redhat.com>
1564
1565         * addr2line.c (show_symbols): New variable.
1566         (print_addrsym): New function.
1567         (handle_address): Call it.
1568         (options, parse_opt): Handle -S/--symbols.
1569
1570 2007-06-05  Ulrich Drepper  <drepper@redhat.com>
1571
1572         * addr2line.c: Update for latest autoconf header.
1573         * ar.c: Likewise.
1574         * elfcmp.c: Likewise.
1575         * elflint.c: Likewise.
1576         * findtextrel.c: Likewise.
1577         * ld.c: Likewise.
1578         * ldgeneric.c: Likewise.
1579         * nm.c: Likewise.
1580         * objdump.c: Likewise.
1581         * ranlib.c: Likewise.
1582         * readelf.c: Likewise.
1583         * size.c: Likewise.
1584         * strings.c: Likewise.
1585         * strip.c: Likewise.
1586         * unstrip.c: Likewise.
1587
1588 2007-05-18  Roland McGrath  <roland@redhat.com>
1589
1590         * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
1591         stripped file, so as not to duplicate a section copied in both.
1592
1593         * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
1594
1595 2007-05-17  Roland McGrath  <roland@redhat.com>
1596
1597         * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
1598
1599         * unstrip.c (handle_file): Tweak BIAS != 0 warning.
1600
1601         * unstrip.c (handle_file): Take new arg CREATE_DIRS.  If set,
1602         call make_directories here.
1603         (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
1604         (handle_dwfl_module): Likewise.
1605         (handle_implicit_modules): Update callers.
1606         (handle_output_dir_module): Likewise.  Don't do make_directories here.
1607
1608         * unstrip.c (get_section_name): New function, broken out of ...
1609         (copy_elided_sections): here.  Update callers.
1610         (find_alloc_section): Broken out of ...
1611         (copy_elided_sections): ... here.  Update caller.
1612         (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
1613         update STT_SECTION symbols' st_value fields as a side effect.
1614         (check_symtab_section_symbols): Update caller.
1615         (add_new_section_symbols): Set st_value in symbols added.
1616         (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
1617         Take new arg SPLIT_BSS.  Adjust S->shndx recorded for symbols moved
1618         from .bss to .dynbss.
1619         (find_alloc_sections_prelink): New function.  Associate debug file
1620         allocated SHT_NOBITS shdrs with stripped moved by prelink via
1621         .gnu.prelink_undo information.
1622         (copy_elided_sections): Call it when we couldn't find every allocated
1623         section.  Don't use a debug file non-NOBITS section if SHF_ALLOC.
1624         Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
1625         (handle_file): Update callers.
1626
1627         * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
1628         named ".comment".
1629
1630         * elflint.c (check_sections): Fix association of segments with
1631         sections when p_memsz > p_filesz.
1632
1633 2007-04-29  Roland McGrath  <roland@redhat.com>
1634
1635         * addr2line.c (options, main): Tweak argp group settings to fix
1636         usage output.
1637
1638 2007-04-28  Roland McGrath  <roland@redhat.com>
1639
1640         * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
1641         sizes to match sections adjusted in the stripped file.
1642
1643 2007-04-24  Roland McGrath  <roland@redhat.com>
1644
1645         * elfcmp.c (OPT_HASH_INEXACT): New macro.
1646         (hash_inexact): New variable.
1647         (options, parse_opt): Add --hash-inexact option to set it.
1648         (hash_content_equivalent): New function.
1649         (main): Call it for differing SHT_HASH sections under --hash-inexact.
1650
1651 2007-04-23  Roland McGrath  <roland@redhat.com>
1652
1653         * unstrip.c: New file.
1654         * Makefile.am (bin_PROGRAMS): Add it.
1655         (unstrip_LDADD): New variable.
1656
1657         * strip.c (options): Allow --output for -o.
1658
1659 2007-02-15  Ulrich Drepper  <drepper@redhat.com>
1660
1661         * readelf.c: Remove unused code.  Add a few consts.
1662
1663 2007-02-15  Roland McGrath  <roland@redhat.com>
1664
1665         * readelf.c (print_debug): Fix brainos in SHDR test.
1666
1667 2007-02-05  Roland McGrath  <roland@redhat.com>
1668
1669         * ar.c: Include <limits.h>, since we use LONG_MAX.
1670
1671 2007-02-05  Ulrich Drepper  <drepper@redhat.com>
1672
1673         * ar.c: Add ugly hack to work around gcc complaining that we
1674         ignore fchown's return value.
1675         (do_oper_insert): Handle error when writing padding.
1676         * ranlib.c: Add fchown complain work around.
1677
1678         * arlib.c: Make symtab a global variable.  Change all users.
1679         * arlib2.c: Likewise.
1680         * ranlib.c: Likewise.
1681         * ar.c: Likewise.
1682         * arlib.h: Declare it.
1683
1684 2007-01-11  Roland McGrath  <roland@redhat.com>
1685
1686         * elflint.c (check_sections): Use ebl_machine_section_flag_check on
1687         SHF_MASKPROC bits separately from generic sh_flags validation.
1688
1689 2007-02-04  Ulrich Drepper  <drepper@redhat.com>
1690
1691         * ar.c: New file.
1692         * arlib.c: New file.
1693         * arlib2.c: New file.
1694         * arlib.h: New file.
1695         * Makefile (noinst_LIBRARIES): Add libar.
1696         (libar_a_SOURCES): Define.
1697         (ar_LDADD): Define.
1698         (CFLAGS_ar): Define.
1699         * ranlib.c: Change to use arlib.
1700
1701         * elflint.c (check_symtab): Work around GNU ld bug which omits
1702         sections but not symbols in those sections.
1703
1704 2007-01-10  Ulrich Drepper  <drepper@redhat.com>
1705
1706         * addr2line.c: Update copyright year.
1707         * elfcmp.c: Likewise.
1708         * elflint.c: Likewise.
1709         * findtextrel.c: Likewise.
1710         * ld.c: Likewise.
1711         * nm.c: Likewise.
1712         * objdump.c: Likewise.
1713         * ranlib.c:  Likewise.
1714         * readelf.c: Likewise.
1715         * size.c: Likewise.
1716         * strings.c: Likewise.
1717         * strip.c: Likewise.
1718
1719 2006-12-09  Ulrich Drepper  <drepper@redhat.com>
1720
1721         * elflint.c (compare_hash_gnu_hash): New function.  Report if the
1722         two hash tables have different content (module expected omission
1723         of undefined symbols).
1724
1725 2006-10-31  Roland McGrath  <roland@redhat.com>
1726
1727         * elflint.c (check_program_header): Don't complain about
1728         p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
1729
1730 2006-09-19  Jakub Jelinek  <jakub@redhat.com>
1731
1732         * strip.c (process_file): Disallow -f on archives.
1733
1734 2006-10-09  Roland McGrath  <roland@redhat.com>
1735
1736         * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
1737
1738 2006-08-29  Roland McGrath  <roland@redhat.com>
1739
1740         * Makefile.am (MAINTAINERCLEANFILES): New variable.
1741
1742         * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
1743         Reported by Christian Aichinger <Greek0@gmx.net>.
1744
1745         * elflint.c (valid_e_machine): Add EM_ALPHA.
1746         Reported by Christian Aichinger <Greek0@gmx.net>.
1747
1748 2006-08-08  Ulrich Drepper  <drepper@redhat.com>
1749
1750         * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
1751         Keep track of which "high DT" entries are present.
1752         Check that either old or GNU-style hash table is present.
1753         If GNU-style hash table is used a symbol table is mandatory.
1754         Check that if any prelink entry is present all of them are.
1755         (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
1756         table if they don't refer to functions.
1757
1758 2006-07-17  Roland McGrath  <roland@redhat.com>
1759
1760         * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
1761         (add_version): Likewise for argument.
1762         (check_versym): Cast constant to GElf_Versym for comparison.
1763
1764 2006-07-12  Roland McGrath  <roland@redhat.com>
1765
1766         * readelf.c (handle_gnu_hash): Add casts for machines where
1767         Elf32_Word != unsigned int.
1768
1769 2006-07-12  Ulrich Drepper  <drepper@redhat.com>
1770
1771         * elflint.c (check_sysv_hash64): Fix printf format.
1772
1773 2006-07-11  Roland McGrath  <roland@redhat.com>
1774
1775         * addr2line.c (options): English fix in -f doc string.
1776
1777         * addr2line.c (use_comp_dir): New variable.
1778         (options, parse_opt): Grok -A/--absolute to set it.
1779         (handle_address): If set, prepend dwfl_line_comp_dir results to
1780         relative file names.
1781
1782 2006-07-06  Ulrich Drepper  <drepper@redhat.com>
1783
1784         * elflint.c: Adjust for latest new hash table format.
1785         * readelf.c: Likewise.
1786
1787         * elflint.c (check_versym): Ignore hidden bit when comparing version
1788         numbers.
1789
1790 2006-07-05  Ulrich Drepper  <drepper@redhat.com>
1791
1792         * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
1793         discarded COMDAT symbols.
1794
1795         * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
1796         (elf_i386_create_relocations): Likewise.
1797         * ld.h (struct symbol): Add local and hidden bits.
1798         * ld.c (create_special_section_symbol): These synthsized symbols
1799         are local and hidden.
1800         * ldgeneric.c (file_process2): Check whether input file matches
1801         the emulation.
1802         (fillin_special_symbol): Create symbols as local and/or hidden
1803         if requested.
1804         (ld_generic_create_outfile): Make local copy of symbol.
1805         Don't hide global, defined symbols in dynamic symbol table unless
1806         requested.  Synthetic symbols have no version information.
1807
1808         * elflint.c: Add support for checking 64-bit SysV-style hash tables.
1809         * readelf.c: Add support for printing 64-bit SysV-style hash tables.
1810
1811 2006-07-04  Ulrich Drepper  <drepper@redhat.com>
1812
1813         * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
1814         testing.
1815
1816 2006-07-03  Ulrich Drepper  <drepper@redhat.com>
1817
1818         * elflint.c: Add testing of DT_GNU_HASH.
1819         * readelf.c: Implement showing histogram for DT_GNU_HASH section.
1820
1821         * Makefile.am: Add hacks to create dependency files for non-generic
1822         linker.
1823
1824 2006-06-12  Ulrich Drepper  <drepper@redhat.com>
1825
1826         * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
1827         section if creating a DSO and no interpreter is given.
1828         (ld_generic_create_outfile): Don't store reference to symbols in
1829         discarded COMDAT groups.  Don't create PHDR and INTERP program header
1830         for DSO if no interpreter is specified.
1831         (create_verneed_data): Pretty printing.
1832
1833         * ldscript.y (content): If a DSO is created don't set default
1834         interpreter from linker script.
1835
1836         * i386_ld.c (elf_i386_count_relocations): Do not add relocations
1837         for symbols in discarded COMDAT groups.
1838         (elf_i386_create_relocations): Likewise.
1839         * ld.h (struct scninfo): Add unused_comdat.
1840         * ldgeneric.c (add_section): Also check group signature when
1841         matching COMDAT sections.
1842         (add_relocatable_file): Ignore symbols in COMDAT group which are
1843         discarded.
1844
1845         * elflint.c (check_one_reloc): For *_NONE relocs only check type
1846         and symbol reference.
1847
1848 2006-06-11  Ulrich Drepper  <drepper@redhat.com>
1849
1850         * elflint.c (check_dynamic): Fix checking value of tags which are
1851         offsets in the string section.  Make sure DT_STRTAB points to the
1852         section referenced in sh_link.
1853
1854         * ld.c (options): Add headers.  Add short option 'R' for '--rpath'.
1855
1856         * ld.c: Recognize --eh-frame-hdr option.
1857         * ld.h (struct ld_state): Add eh_frame_hdr field.
1858         * ldgeneric.c (struct unw_eh_frame_hdr): Define.
1859
1860         * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
1861         SH_FLAGS_COMBINE.
1862         (add_relocatable_file): Minor optimization of last change.
1863         (match_section): Don't preserve SHF_GROUP flag any longer.
1864
1865 2006-06-10  Ulrich Drepper  <drepper@redhat.com>
1866
1867         * ld.c (parse_z_option): Recognize execstack and noexecstack.
1868         Handle record and ignore as position dependent options.
1869         (parse_z_option_2): Handle ignore and record here.
1870         * ld.h (struct ld_state): Add execstack field.
1871         * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
1872         sections.
1873         (ld_generic_create_outfile): Fix program header creation in native
1874         linker.  Add PT_GNU_STACK program header.
1875
1876 2006-06-09  Ulrich Drepper  <drepper@redhat.com>
1877
1878         * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
1879         for PLT entries if there is no local definition.
1880
1881         * ld.c (parse_option): Handle -z ignore like --as-needed and
1882         -z record like --no-as-needed.
1883         * ld.h (struct ld_state): Remove ignore_unused_dsos field.
1884         * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
1885         looping over DSOs.  When deciding about adding DT_NEEDED entries
1886         use ->as_needed instead of ignore_unused_dsos.
1887
1888 2006-05-31  Ulrich Drepper  <drepper@redhat.com>
1889
1890         * ld.c: Recognize --as-needed and --no-as-needed options.
1891         * ld.h (struct usedfile): Add as_needed field.
1892         (struct ld_state): Likewise.
1893         * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
1894         the list.
1895         * ldscript.y (filename_id_list): Split to correctly parse all
1896         combinations.
1897         (mark_as_needed): Fix loop.
1898
1899 2006-05-28  Ulrich Drepper  <drepper@redhat.com>
1900
1901         * addr2line.c (print_dwarf_function): Use unsigned type for lineno
1902         and colno.
1903
1904 2006-05-27  Ulrich Drepper  <drepper@redhat.com>
1905
1906         * readelf.c (handle_relocs_rela): Better notations for addon value.
1907         (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
1908
1909 2006-04-04  Ulrich Drepper  <drepper@redhat.com>
1910
1911         * addr2line.c: Update copyright year.
1912         * elfcmp.c: Likewise.
1913         * elflint.c: Likewise.
1914         * findtextrel.c: Likewise.
1915         * ld.c: Likewise.
1916         * nm.c: Likewise.
1917         * objdump.c: Likewise.
1918         * ranlib.c: Likewise.
1919         * readelf.c: Likewise.
1920         * size.c: Likewise.
1921         * strings.c: Likewise.
1922         * strip.c: Likewise.
1923
1924 2006-03-09  Roland McGrath  <roland@redhat.com>
1925
1926         * Makefile.am (AM_LDFLAGS): New variable.
1927
1928 2006-03-01  Roland McGrath  <roland@redhat.com>
1929
1930         * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
1931         for dwarf.h changes matching 3.0 spec.
1932         (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
1933
1934 2005-12-04  Ulrich Drepper  <drepper@redhat.com>
1935
1936         * elflint.c (check_one_reloc): If relocation section is not loaded,
1937         don't check whether the relocations modify read-only sections or
1938         loaded and unloaded sections.
1939
1940 2005-11-28  Ulrich Drepper  <drepper@redhat.com>
1941
1942         * elflint.c (check_one_reloc): Take additional parameters.  Use
1943         them to determine whether relocation is valid in this type of
1944         file.  DSOs and executables can contain relocation sections in
1945         unloaded sections which just show the relocations the linker
1946         applied.  Adjust all callers.
1947         (check_program_header): Check that PT_PHDR is loaded and that offset
1948         matches the one in the ELF header.
1949
1950 2005-10-26  Roland McGrath  <roland@redhat.com>
1951
1952         * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
1953
1954 2005-09-03  Ulrich Drepper  <drepper@redhat.com>
1955
1956         * strip.c (handle_elf): Unify some error messages.
1957         * ld.c (main): Likewise.
1958         * ldgeneric.c (open_elf): Likewise.
1959         * elfcmp.c (main): Likewise.
1960         * elflint.c (check_elf_header): Likewise.
1961
1962         * size.c (process_file): Fix typo in error message.
1963
1964         * readelf.c: Lots of little cleanups.  Use _unlocked functions.
1965
1966 2005-09-02  Ulrich Drepper  <drepper@redhat.com>
1967
1968         * strings.c (main): Reset elfmap variable after munmap call.
1969         [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
1970
1971 2005-08-28  Ulrich Drepper  <drepper@redhat.com>
1972
1973         * ranlib.c: Don't define pread_retry and write_retry here.
1974
1975         * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
1976         (CLEANFILES): Add *.gcno *.gcda *.gconv.
1977
1978         * strings.c (process_chunk): Reorder expressions in conditional
1979         (process_chunk_mb): Likewise.
1980
1981         * strings.c: New file.
1982         * Makefile.am (bin_PROGRAMS): Add strings.
1983         (strings_no_Wstring): Define.
1984         (strings_LDADD): Define.
1985
1986 2005-08-27  Roland McGrath  <roland@redhat.com>
1987
1988         * addr2line.c (dwarf_diename_integrate): Function removed.
1989         (print_dwarf_function): Use plain dwarf_diename.
1990
1991 2005-08-24  Ulrich Drepper  <drepper@redhat.com>
1992
1993         * elflint.c (check_versym): Versioned symbols should not have
1994         local binding.
1995
1996 2005-08-15  Ulrich Drepper  <drepper@redhat.com>
1997
1998         * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
1999         undefined.
2000
2001         * Makefile.am: Add rules to build ranlib.
2002         * ranlib.c: New file.
2003
2004 2005-08-14  Roland McGrath  <roland@redhat.com>
2005
2006         * elflint.c (check_sections): Use ebl_section_type_name and allow any
2007         sh_type it recognizes.
2008
2009         * elflint.c (check_sections): Print unknown flags in hex, don't
2010         truncate high bits.  Print section number and name for unknown type.
2011
2012 2005-08-13  Roland McGrath  <roland@redhat.com>
2013
2014         * elflint.c (check_program_header): Use ebl_segment_type_name and
2015         allow any p_type it recognizes.  Include p_type value in error
2016         message for unknown type.
2017
2018 2005-08-13  Ulrich Drepper  <drepper@redhat.com>
2019
2020         * elflint.c (check_symtab): Simplify last change a bit.  Pass ehdr
2021         to ebl_check_special_symbol.
2022         (check_sections): Pass ehdr to ebl_bss_plt_p.
2023
2024 2005-08-12  Roland McGrath  <roland@redhat.com>
2025
2026         * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
2027         refers to the right section if it's not SHN_ABS.
2028         Let ebl_check_special_symbol override _G_O_T_ value and size checks.
2029
2030         * elflint.c (check_sections): Don't complain about a non-NOBITS
2031         section taking no segment space, if it's sh_size is 0.
2032
2033         * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
2034         be PROGBITS or NOBITS.
2035
2036         * elflint.c (check_symtab): Use ebl_check_special_symbol to override
2037         standard st_value and st_size checks.
2038
2039 2005-07-28  Roland McGrath  <roland@redhat.com>
2040
2041         * addr2line.c (options, parse_opt): Don't handle -e here.
2042         (executable): Variable removed.
2043         (argp_children): New static variable.
2044         (argp): Use it.  Make const.
2045         (main): Fill in argp_children from dwfl_standard_argp ().
2046         Let libdwfl handle file selection, pass Dwfl handle to handle_address.
2047         (print_dwarf_function): New function.  Try to figure out inline chain.
2048         (elf_getname): Function removed, libdwfl does it for us.
2049         (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
2050         Use dwfl_module_addrname instead of elf_getname.
2051         Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
2052         * Makefile.am (INCLUDES): Add libdwfl directory to path.
2053
2054 2005-08-10  Ulrich Drepper  <drepper@redhat.com>
2055
2056         * strip.c (parse_opt): STATE parameter is now used.
2057         Various little cleanups.
2058
2059         * readelf.c (print_debug_line_section): Correct fallout of renaming
2060         of DW_LNS_set_epilog_begin.
2061
2062 2005-08-08  Roland McGrath  <roland@redhat.com>
2063
2064         * strip.c (options, parse_opt): Grok -R .comment for compatibility
2065         with binutils strip.  Likewise -d, -S, as aliases for -g.
2066         Likewise ignore -s/--strip-all.
2067
2068 2005-08-07  Roland McGrath  <roland@redhat.com>
2069
2070         * strip.c (process_file): Open read-only when using a different output
2071         file.
2072
2073 2005-08-06  Ulrich Drepper  <drepper@redhat.com>
2074
2075         * elflint.c (in_nobits_scn): New function.
2076         (check_versym): Allow references for defined symbols against versions
2077         of other DSOs also for symbols in nobits sections.
2078         Move a few variables around.
2079
2080         * Makefile.am (AM_CFLAGS): Avoid duplication.
2081         Link with statis libs if BUILD_STATIC.
2082
2083 2005-08-05  Ulrich Drepper  <drepper@redhat.com>
2084
2085         * elflint.c: Many, many more tests.  Mostly related to symbol
2086         versioning.  Those sections should now be completely checked.
2087
2088         * readelf.c (print_dynamic): Use gelf_offscn.
2089
2090 2005-08-04  Ulrich Drepper  <drepper@redhat.com>
2091
2092         * elflint.c: Add lots more tests: more extension symbol table sanity,
2093         versioning section tests, hash table tests.  General cleanup.
2094
2095 2005-08-02  Ulrich Drepper  <drepper@redhat.com>
2096
2097         * objdump.c: New file.
2098         * Makefile.am (bin_PROGRAMS): Add objdump.
2099         (objdump_LDADD): Define.
2100
2101         * elflint.c (check_reloc_shdr): New function split out from check_rela
2102         and check_rel.
2103         (check_one_reloc): New function.  Likewise.
2104         (check_rela): Use check_reloc_shdr and check_one_reloc.
2105         (check_rel): Likewise.
2106         (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
2107         section.
2108         Add checks that relocations against read-only segments are flagged,
2109         that the text relocation flag is not set unnecessarily, and that
2110         relocations in one section are either against loaded or not-loaded
2111         segments.
2112
2113 2005-08-01  Ulrich Drepper  <drepper@redhat.com>
2114
2115         * elfcmp.c (main): Ignore section count and section name string table
2116         section index.
2117
2118 2005-07-27  Roland McGrath  <roland@redhat.com>
2119
2120         * elfcmp.c: Include <locale.h>.
2121
2122 2005-07-27  Ulrich Drepper  <drepper@redhat.com>
2123
2124         * elfcmp.c: Print name and index of differing section.
2125
2126 2005-07-24  Ulrich Drepper  <drepper@redhat.com>
2127
2128         * elfcmp.c: Implement comparing gaps between sections.
2129
2130 2005-07-23  Ulrich Drepper  <drepper@redhat.com>
2131
2132         * elflint.c: Include libeblP.h instead of libebl.h.
2133         * nm.c: Likewise.
2134         * readelf.c: Likewise.
2135         * elfcmp.c: Likewise.
2136
2137         * elfcmp.c (main): Compare individual ELF header fields, excluding
2138         e_shoff instead of the whole struct at once.
2139         Use ebl_section_strip_p instead of SECTION_STRIP_P.
2140         * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
2141
2142 2005-07-22  Ulrich Drepper  <drepper@redhat.com>
2143
2144         * elfcmp.c (main): Take empty section into account when comparing
2145         section content.
2146
2147         * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
2148         using it.
2149
2150 2005-07-21  Ulrich Drepper  <drepper@redhat.com>
2151
2152         * elfcmp.c: New file.
2153         * Makefile.am (bin_PROGRAMS): Add elfcmp.
2154         (elfcmp_LDADD): Define.
2155
2156         * elflint.c (check_rela): Check that copy relocations only reference
2157         object symbols or symbols with unknown type.
2158         (check_rel): Likewise.
2159
2160 2005-06-08  Roland McGrath  <roland@redhat.com>
2161
2162         * readelf.c (print_ops): Add consts.
2163
2164 2005-05-31  Roland McGrath  <roland@redhat.com>
2165
2166         * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
2167         abbreviations.  Print a header line before each CU section.
2168
2169         * readelf.c (print_debug_loc_section): Fix indentation for larger
2170         address size.
2171
2172 2005-05-30  Roland McGrath  <roland@redhat.com>
2173
2174         * readelf.c (print_debug_line_section): Print section offset of each
2175         CU's table, so they are easy to find from seeing the stmt_list value.
2176
2177         * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
2178         (attr_callback): Grok DW_AT_ranges and print offset in hex.
2179
2180         * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
2181         (print_debug_ranges_section, print_debug_loc_section): Likewise.
2182
2183         * readelf.c (print_ops): Take different args for indentation control.
2184         (attr_callback): Caller updated.
2185         Grok several more block-form attributes as being location expressions.
2186         For those same attributes with udata forms, format output differently
2187         for location list offset.
2188         (print_debug_loc_section): Implement it for real.
2189
2190         * readelf.c (options): Mention ranges for --debug-dump.
2191         (enum section_e): Add section_ranges.
2192         (parse_opt): Grok "ranges" for -w/--debug-dump.
2193         (print_debug_ranges_section): New function.
2194         (print_debug): Handle .debug_ranges section.
2195
2196 2005-05-30  Ulrich Drepper  <drepper@redhat.com>
2197
2198         * readelf.c (handle_notes): At least x86-64 need not have the note
2199         section values aligned to 8 bytes.
2200
2201 2005-05-18  Ulrich Drepper  <drepper@redhat.com>
2202
2203         * readelf.c (dwarf_tag_string): Add new tags.
2204
2205 2005-05-08  Roland McGrath  <roland@redhat.com>
2206
2207         * strip.c (handle_elf): Don't translate hash and versym data formats,
2208         elf_getdata already did it for us.
2209
2210 2005-05-07  Ulrich Drepper  <drepper@redhat.com>
2211
2212         * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
2213         (addr2line_LDADD): Likewise.
2214
2215 2005-05-03  Roland McGrath  <roland@redhat.com>
2216
2217         * strip.c (handle_elf): Apply symbol table fixups to discarded
2218         relocation sections when they are being saved in the debug file.
2219
2220         * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
2221         and gelf_xlatetof, not the native byte order.
2222
2223         * strip.c (parse_opt): Give error if -f or -o is repeated.
2224         (main): Exit if argp_parse returns nonzero.
2225
2226         * strip.c (debug_fname_embed): New variable.
2227         (options, parse_opt): New option -F to set it.
2228
2229 2005-05-07  Ulrich Drepper  <drepper@redhat.com>
2230
2231         * readelf.c (parse_opt): Make any_control_option variable
2232         local.  Simplify some tests.
2233
2234 2005-05-03  Roland McGrath  <roland@redhat.com>
2235
2236         * strip.c (crc32_file): Function removed (now in ../lib).
2237
2238 2005-05-03  Roland McGrath  <roland@redhat.com>
2239
2240         * elflint.c (is_debuginfo): New variable.
2241         (options, parse_opt): New option --debuginfo/-d to set it.
2242         (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
2243         (check_note): If is_debuginfo, don't try to get note contents.
2244
2245 2005-04-24  Ulrich Drepper  <drepper@redhat.com>
2246
2247         * readelf.c (print_debug_abbrev_section): Don't print error when end of
2248         section reached.
2249
2250 2005-04-14  Ulrich Drepper  <drepper@redhat.com>
2251
2252         * readelf.c (dwarf_encoding_string): New function.
2253         (dwarf_inline_string): New function.
2254         (dwarf_access_string): New function.
2255         (dwarf_visibility_string): New function.
2256         (dwarf_virtuality_string): New function.
2257         (dwarf_identifier_case_string): New function.
2258         (dwarf_calling_convention_string): New function.
2259         (dwarf_ordering_string): New function.
2260         (dwarf_discr_list_string): New function.
2261         (attr_callback): Decode man more attribute values.
2262
2263 2005-04-01  Ulrich Drepper  <drepper@redhat.com>
2264
2265         * addr2line.c: Finish implementation of -f option.
2266
2267 2005-03-29  Ulrich Drepper  <drepper@redhat.com>
2268
2269         * addr2line.c: New file.
2270         * Makefile.am (bin_PROGRAMS): Add addr2line.
2271         Define addr2line_LDADD.
2272
2273         * findtextrel.c: Use new dwarf_addrdie function.
2274
2275         * findtextrel.c: Fix usage message and re-add accidentally removed
2276         line.
2277
2278 2005-03-28  Ulrich Drepper  <drepper@redhat.com>
2279
2280         * findtextrel.c: New file.
2281         * Makefile: Add rules to build findtextrel.
2282
2283 2005-02-15  Ulrich Drepper  <drepper@redhat.com>
2284
2285         * ldlex.l: Provide ECHO definition to avoid warning.
2286
2287         * elflint.c (check_program_header): Fix typo in RELRO test.
2288
2289         * Makefile.am (AM_CFLAGS): Add more warning options.
2290         * elflint.c: Fix warnings introduced by the new warning options.
2291         * i386_ld.c: Likewise.
2292         * ld.c: Likewise.
2293         * ld.h: Likewise.
2294         * ldgeneric.c: Likewise.
2295         * nm.c: Likewise.
2296         * readelf.c: Likewise.
2297         * sectionhash.c: Likewise.
2298         * size.c: Likewise.
2299         * string.c: Likewise.
2300
2301 2005-02-05  Ulrich Drepper  <drepper@redhat.com>
2302
2303         * Makefile.am: Check for text relocations in constructed DSOs.
2304
2305         * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.  Link all apps
2306         with -lmudflap.
2307
2308         * ldscript.y: Add as_needed handling.
2309         * ldlex.l: Recognize AS_NEEDED token.
2310         * ld.h (struct filename_list): Add as_needed flag.
2311
2312 2005-02-04  Ulrich Drepper  <drepper@redhat.com>
2313
2314         * elflint.c (check_symtab): Correctly determine size of GOT section.
2315
2316 2005-01-19  Ulrich Drepper  <drepper@redhat.com>
2317
2318         * ld.c: Remove unnecessary more_help function.  Print bug report
2319         address using argp.
2320         * strip.c: Likewise.
2321         * size.c: Likewise.
2322         * nm.c: Likewise.
2323         * readelf.c: Likewise.
2324         * elflint.c: Likewise.
2325
2326         * elflint.c (main): Don't check for parameter problems here.
2327         (parse_opt): Do it here, where we get informed about some of them
2328         anyway.
2329
2330         * readelf.c (main): Don't check for parameter problems here.
2331         (parse_opt): Do it here, where we get informed about some of them
2332         anyway.
2333
2334 2005-01-11  Ulrich Drepper  <drepper@redhat.com>
2335
2336         * strip.c: Update copyright year.
2337         * readelf.c: Likewise.
2338         * size.c: Likewise.
2339         * nm.c: Likewise.
2340         * ld.c: Likewise.
2341         * elflint.c: Likewise.
2342
2343         * elflint.c (check_symtab): Don't warn about wrong size for
2344         _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
2345
2346 2004-10-05  Ulrich Drepper  <drepper@redhat.com>
2347
2348         * readelf.c (print_phdr): In section mapping, also indicate
2349         sections in read-only segments.
2350
2351 2004-09-25  Ulrich Drepper  <drepper@redhat.com>
2352
2353         * readelf.c: Make compile with gcc 4.0.
2354         * strip.c: Likewise.
2355
2356 2004-08-16  Ulrich Drepper  <drepper@redhat.com>
2357
2358         * strip.c (handle_elf): Rewrite dynamic memory handling to use of
2359         allocate to work around gcc 3.4 bug.
2360
2361 2004-01-25  Ulrich Drepper  <drepper@redhat.com>
2362
2363         * ldlex.l (invalid_char): Better error message.
2364
2365 2004-01-23  Ulrich Drepper  <drepper@redhat.com>
2366
2367         * readelf.c: Print SHT_GNU_LIBLIST sections.
2368
2369         * none_ld.c: New file.
2370
2371 2004-01-21  Ulrich Drepper  <drepper@redhat.com>
2372
2373         * Makefile.am: Enable building of machine specific linker.
2374
2375 2004-01-20  Ulrich Drepper  <drepper@redhat.com>
2376
2377         * Makefile.am: Support building with mudflap.
2378
2379         * i386_ld.c: Fix warnings gcc 3.4 spits out.
2380         * ldgeneric.c: Likewise.
2381         * ldscript.y: Likewise.
2382         * readelf.c: Likewise.
2383         * strip.c: Likewise.
2384
2385         * readelf.c (print_debug_line_section): Determine address size
2386         correctly.
2387
2388 2004-01-19  Ulrich Drepper  <drepper@redhat.com>
2389
2390         * readelf.c (print_phdr): Show which sections are covered by the
2391         PT_GNU_RELRO entry.
2392
2393         * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
2394
2395         * readelf.c (print_debug_macinfo_section): Implement.
2396
2397 2004-01-18  Ulrich Drepper  <drepper@redhat.com>
2398
2399         * readelf.c (print_debug_line_section): Implement.
2400
2401 2004-01-17  Ulrich Drepper  <drepper@redhat.com>
2402
2403         * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
2404         * src/ld.c: Likewise.
2405         * src/nm.c: Likewise.
2406         * src/readelf.c: Likewise.
2407         * src/size.c: Likewise.
2408         * src/strip.c: Likewise.
2409
2410         * strip.c: Add a few more unlikely.  Reduce scope of some variables.
2411
2412         * Makefile.am: Support building with mudflap.
2413
2414 2004-01-16  Ulrich Drepper  <drepper@redhat.com>
2415
2416         * readelf.c (print_debug_info_section): Free dies memory.
2417
2418         * readelf.c: Print .debug_info section content.
2419
2420 2004-01-13  Ulrich Drepper  <drepper@redhat.com>
2421
2422         * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
2423
2424 2004-01-12  Ulrich Drepper  <drepper@redhat.com>
2425
2426         * readelf.c (print_debug_aranges): Implement using libdw.
2427
2428 2004-01-11  Ulrich Drepper  <drepper@redhat.com>
2429
2430         * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
2431
2432         * readelf.c: Use libdw instead of libdwarf.  Not all of the old
2433         behavior is available yet.
2434         * Makefile.am: Link readelf with libdw.  Remove libdwarf include path.
2435
2436 2004-01-09  Ulrich Drepper  <drepper@redhat.com>
2437
2438         * nm.c (get_local_names): Adjust call to dwarf_nextcu.
2439
2440         * nm.c: Implement getting information about local variables.
2441
2442 2004-01-07  Ulrich Drepper  <drepper@redhat.com>
2443
2444         * nm.c: Read also debug information for local symbols.
2445
2446 2004-01-05  Ulrich Drepper  <drepper@redhat.com>
2447
2448         * nm.c: Shuffle dwarf handling code around so the maximum column
2449         width can be computed ahead of printing.  Avoid collection symbols
2450         which are not printed anyway.
2451
2452         * nm.c: Rewrite dwarf handling to use libdw.
2453         * Makefile.am (AM_CFLAGS): Add -std parameter.
2454         (INCLUDES): Find header in libdw subdir.
2455         (nm_LDADD): Replace libdwarf with libdw.
2456
2457         * elflint.c: Update copyright year.
2458         * readelf.c: Likewise.
2459         * size.c: Likewise.
2460         * strip.c: Likewise.
2461         * nm.c: Likewise.
2462
2463 2003-12-31  Ulrich Drepper  <drepper@redhat.com>
2464
2465         * strip.c (process_file): Close file before returning.
2466
2467 2003-11-19  Ulrich Drepper  <drepper@redhat.com>
2468
2469         * readelf.c (handle_dynamic): Make column for tag name wider.
2470
2471 2003-09-29  Ulrich Drepper  <drepper@redhat.com>
2472
2473         * readelf.c (handle_dynamic): Always terminate tag name with a space.
2474
2475 2003-09-25  Ulrich Drepper  <drepper@redhat.com>
2476
2477         * strip.c (process_file): Don't mmap the input file, we modify the
2478         data structures and don't want the change end up on disk.
2479
2480 2003-09-23  Jakub Jelinek  <jakub@redhat.com>
2481
2482         * unaligned.h (union u_2ubyte_unaligned,
2483         union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
2484         packed attribute.
2485         (add_2ubyte_unaligned, add_4ubyte_unaligned,
2486         add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
2487         Read/store value through _ptr->u instead of *_ptr.
2488
2489 2003-09-22  Ulrich Drepper  <drepper@redhat.com>
2490
2491         * size.c (show_sysv): Change type of maxlen to int.
2492
2493         * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
2494         buckets.
2495
2496         * i386_ld.c: Many many fixes and extensions.
2497         * ld.c: Likewise.
2498         * ldgeneric.c: Likewise.
2499
2500 2003-08-16  Ulrich Drepper  <drepper@redhat.com>
2501
2502         * ldgeneric.c (check_definition): Don't add symbol on dso_list if
2503         the reference is from another DSO.
2504
2505 2003-08-15  Ulrich Drepper  <drepper@redhat.com>
2506
2507         * ldgeneric.c (find_entry_point): It is no fatal error if no entry
2508         point is found when creating a DSO.
2509
2510 2003-08-14  Ulrich Drepper  <drepper@redhat.com>
2511
2512         * ld.c (main): Always call FLAG_UNRESOLVED.
2513         * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
2514         undefined symbols if not creating DSO or ld_state.nodefs is not set.
2515
2516 2003-08-13  Ulrich Drepper  <drepper@redhat.com>
2517
2518         * Makefile.in: Depend on libebl.a, not libebl.so.
2519
2520         * ld.c (main): Mark stream for linker script as locked by caller.
2521         (read_version_script): Likewise.
2522         * ldlex.c: Define fread and fwrite to _unlocked variant.
2523
2524         * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
2525         target_bswap_32.
2526         * unaligned.h: Define target_bswap_16, target_bswap_32, and
2527         target_bswap_64.
2528         (store_2ubyte_unaligned, store_4ubyte_unaligned,
2529         store_8ubyte_unaligned): Define using new macros.
2530
2531 2003-08-12  Ulrich Drepper  <drepper@redhat.com>
2532
2533         * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
2534         possibly unaligned memory.  Support use of big endian machines.
2535
2536 2003-08-11  Ulrich Drepper  <drepper@redhat.com>
2537
2538         * Moved to CVS archive.