blob: a490705fd79998ab239d3ab992c81507d3e4792d [file] [log] [blame]
Brian Silverman86497922018-02-10 19:28:39 -050012018-02-09 Joshua Watt <JPEWhacker@gmail.com>
2
3 * addr2line.c (handle_address): Use FALLTHROUGH macro instead of
4 comment.
5 * elfcompress.c (parse_opt): Likewise.
6 * elflint.c (check_dynamic): Likewise.
7 (check_sections): Likewise.
8 (check_note_data): Likewise.
9 * objdump.c (parse_opt): Likewise.
10 * readelf.c (parse_opt): Likewise.
11 (attr_callback): Likewise.
12 (handle_auxv_note): Likewise.
13 * strings.c (parse_opt): Likewise.
14 * backtrace.c (callback_verify): Likewise.
15
162018-01-25 Mark Wielaard <mark@klomp.org>
17
18 * readelf.c (print_debug_ranges_section): Initialize cu to last_cu.
19 (print_debug_loc_section): Likewise.
20
212018-01-01 Mark Wielaard <mark@klomp.org>
22
23 * readelf.c (attr_callback): Use dwarf_form_name for unknown forms.
24 (print_debug_macro_section): Print form using dwarf_form_name.
25
262017-12-28 Mark Wielaard <mark@klomp.org>
27
28 * readelf.c (print_debug_units): Print DIE offset in error message
29 as hex.
30
312017-12-18 Mark Wielaard <mark@klomp.org>
32
33 * readelf.c (handle_notes_data): Don't use EXIT_FAILURE in error.
34 Adjust error message depending on whether or not we got data.
35
362017-12-07 Mark Wielaard <mark@klomp.org>
37
38 * readelf.c (print_ops): Update data pointer and print arguments
39 to DW_OP_call2 and DW_OP_call4 as DIE offsets.
40
412017-11-29 Mark Wielaard <mark@klomp.org>
42
43 * readelf.c (argp_options): Add "section-groups", 'g'.
44
452017-11-29 Mark Wielaard <mark@klomp.org>
46
47 * readelf.c (print_debug_loc_section): Print CU base and unresolved
48 addresses. Adjust formatting.
49
502017-11-29 Mark Wielaard <mark@klomp.org>
51
52 * readelf.c (print_debug_ranges_section): Print CU base and unresolved
53 addresses. Adjust formatting.
54
552017-11-29 Mark Wielaard <mark@klomp.org>
56
57 * readelf.c (attr_callback): Set valuestr to resolved file name
58 for DW_AT_decl_file and DW_AT_call_file.
59
602017-11-29 Mark Wielaard <mark@klomp.org>
61
62 * readelf.c (print_debug_units): Print abbrev code after DIE tag.
63
642017-11-29 Mark Wielaard <mark@klomp.org>
65
66 * readelf.c (print_ops): Use only2 space for index. re-indent +5
67 for DW_OP_GNU_entry_value.
68
692017-11-21 Mark Wielaard <mark@klomp.org>
70
71 * readelf.c (attr_callback): Print attribute name and form in error
72 message. If only the value cannot be retrieved/resolved don't abort.
73
742017-10-03 Mark Wielaard <mark@klomp.org>
75
76 * readelf.c (attr_callback): Print DIE offset in error messages.
77
782017-11-03 Mark Wielaard <mark@klomp.org>
79
80 * readelf.c (print_ops): Handle DW_OP_GNU_variable_value. Print
81 referenced DIE as offset.
82
832017-09-10 Mark Wielaard <mark@klomp.org>
84
85 * ar.c (do_oper_delete): Remove DEBUG conditional check.
86 (no0print): Return bool. Check snprintf return value.
87 (do_oper_insert): Initialize elf. Remove DEBUG conditional check.
88 Check no0print calls succeed. Explicitly elf_end found elfs.
89 (do_oper_extract): Make sure we don't create an empty variable
90 length array.
91
922017-09-01 Mark Wielaard <mark@klomp.org>
93
94 * stack.c (main): Replace \v in doc string with \n\n.
95 * unstrip.c (main): Likewise.
96
972017-05-04 Ulf Hermann <ulf.hermann@qt.io>
98
99 * stack.c: Print pid_t using %lld.
100
1012017-08-18 Ulf Hermann <ulf.hermann@qt.io>
102
103 * readelf.c: Hardcode the signal numbers for non-linux systems.
104
1052017-07-26 Mark Wielaard <mark@klomp.org>
106
107 * readelf.c (print_debug_macro_section): Accept either version 4 or
108 version 5. Use DW_MACRO names instead of DW_MACRO_GNU names. Add
109 minimal support for DW_MACRO_define_sup, DW_MACRO_undef_sup,
110 DW_MACRO_import_sup, DW_MACRO_define_strx and DW_MACRO_undef_strx.
111
1122017-07-26 Mark Wielaard <mark@klomp.org>
113
114 * readelf.c (dwarf_defaulted_string): New function.
115 (dwarf_defaulted_name): Likewise.
116 (attr_callback): Use dwarf_defaulted_name to get value of
117 DW_AT_defaulted.
118
1192017-07-20 Mark Wielaard <mark@klomp.org>
120
121 * strip.c (handle_elf): Deal with data marker symbols pointing to
122 debug sections (they can be removed).
123
1242017-07-14 Mark Wielaard <mark@klomp.org>
125
126 * strip (OPT_KEEP_SECTION): New define.
127 (options): Add documentation for remove-section. Add keep-section.
128 (struct section_pattern): New data type.
129 (keep_secs, remove_secs): New globals.
130 (add_pattern, free_sec_patterns, free_patterns, section_name_matches):
131 New functions.
132 (main): Call free_patterns.
133 (parse_opt): Handle 'R' and OPT_KEEP_SECTION. Check remove_comment
134 on ARGP_KEY_SUCCESS.
135 (handle_elf): Handle and sanity check keep_secs and remove_secs.
136
1372017-06-07 Mark Wielaard <mark@klomp.org>
138
139 * strip.c (handle_elf): Introduce new handle_elf boolean. Use it to
140 determine whether to create an output and/or debug file. Remove new
141 output file on error.
142
1432017-06-06 Mark Wielaard <mark@klomp.org>
144
145 * strip.c (handle_elf): Assume e_shstrndx section can be removed.
146
1472017-04-20 Ulf Hermann <ulf.hermann@qt.io>
148
149 * readelf.c: Include strings.h.
150
1512017-04-20 Ulf Hermann <ulf.hermann@qt.io>
152
153 * unstrip.c: Check shnum for 0 before subtracting from it.
154
1552017-04-20 Ulf Hermann <ulf.hermann@qt.io>
156
157 * readelf.c: Replace YESSTR and NOSTR with gettext ("yes") and
158 gettext ("no"), respectively.
159
1602017-04-05 Mark Wielaard <mark@klomp.org>
161
162 * elflint.c (check_elf_header): Decompress all sections.
163
1642017-03-28 Mark Wielaard <mark@klomp.org>
165
166 * elflint (check_group): Don't check if there is no flag word.
167
1682017-03-27 Mark Wielaard <mark@klomp.org>
169
170 * elflint.c (check_elf_header): Sanity check phnum and shnum.
171
1722017-03-27 Mark Wielaard <mark@klomp.org>
173
174 * elflint.c (check_sysv_hash): Return early if section size is
175 too small.
176 (check_sysv_hash64): Likewise.
177 (check_hash): Calculate expect_entsize to check section size.
178
1792017-03-27 Mark Wielaard <mark@klomp.org>
180
181 * elflint.c (check_symtab_shndx): Check data->d_size.
182
1832017-03-24 Mark Wielaard <mjw@redhat.com>
184
185 * elfcmp.c (main): If n_namesz == 0 then the note name data is the
186 empty string.
187 * readelf.c (handle_notes_data): Likewise.
188
1892017-03-24 Mark Wielaard <mjw@redhat.com>
190
191 * readelf.c (handle_gnu_hash): Check inner < max_nsyms before
192 indexing into chain array.
193
1942017-02-16 Ulf Hermann <ulf.hermann@qt.io>
195
196 * addr2line.c: Include printversion.h
197 * ar.c: Likewise.
198 * elflint.c: Likewise.
199 * nm.c: Likewise.
200 * objdump.c: Likewise.
201 * ranlib.c: Likewise.
202 * readelf.c: Likewise.
203 * size.c: Likewise.
204 * stack.c: Likewise.
205 * strings.c: Likewise.
206 * strip.c: Likewise.
207 * elfcmp.c: Include printversion.h, remove system.h include.
208 * elfcompress.c: Likewise.
209 * findtextrel.c: Likewise.
210 * unstrip.c: Likewise.
211
2122017-02-14 Ulf Hermann <ulf.hermann@qt.io>
213
214 * nm.c: Include color.h.
215 * objdump.c: Likewise.
216
2172016-12-24 Mark Wielaard <mark@klomp.org>
218
219 * Makefile.am (findtextrel_LDADD): Add $(libeu).
220 (addr2line_LDADD): Likewise.
221 (elfcmp_LDADD): Likewise.
222 * addr2line.c (print_version): Removed.
223 * ar.c (print_version): Likewise.
224 * elfcmp.c (print_version): Likewise.
225 * elfcompress.c (print_version): Likewise.
226 * elflint.c (print_version): Likewise.
227 * findtextrel.c (print_version): Likewise.
228 * nm.c (print_version): Likewise.
229 * objdump.c: Likewise.
230 * ranlib.c: Likewise.
231 * readelf.c: Likewise.
232 * size.c: Likewise.
233 * stack.c: Likewise.
234 * strings.c: Likewise.
235 * strip.c: Likewise.
236 * unstrip.c: Likewise.
237
2382016-11-17 Mark Wielaard <mjw@redhat.com>
239
240 * readelf.c (options): Add optional arg SECTION for symbols.
241 (symbol_table_section): New static variable.
242 (parse_opt): Set symbol_table_section on 's'.
243 (print_symtab): Filter on symbol_table_section name is set.
244
2452016-11-10 Mark Wielaard <mjw@redhat.com>
246
247 * ar.c (write_member): Make sure tmpbuf is large enough to contain
248 a starting '/' and ending '\0' char.
249 (do_oper_insert): Likewise.
250 * arlib.c (arlib_finalize): Format tmpbuf as PRId32 decimal.
251
2522016-11-02 Mark Wielaard <mjw@redhat.com>
253
254 * addr2line.c (handle_address): Add fallthrough comment.
255 * elfcompress.c (parse_opt): Adjust fallthrough comment.
256 * elflint.c (parse_opt): Add missing break after 'd' case.
257 (check_sections): Add fallthrough comments.
258 * objdump.c (parse_opt): Add explantion for fallthrough comment.
259
2602016-10-22 Kevin Cernekee <cernekee@chromium.org>
261
262 * unstrip.c: Fix "invalid string offset" error caused by using the
263 unstripped .symtab with the stripped .strtab.
264
2652016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
266
267 * arlib.c: Remove system.h include, add libeu.h include.
268 * arlib2.c: Remove sys/param.h include.
269 * elfcompress.c: Add libeu.h include.
270 * elflint.c: Remove sys/param.h include, add libeu.h include.
271 * nm.c: Likewise.
272 * objdump.c: Likewise.
273 * ranlib.c: Likewise.
274 * readelf.c: Likewise.
275 * size.c: Remove sys/param.h include.
276 * strings.c: Likewise, add libeu.h include.
277 * strip.c: Likewise.
278 * unstrip.c: Likewise.
279
2802016-10-06 Mark Wielaard <mjw@redhat.com>
281
282 * strip.c (handle_elf): Don't remove real symbols from allocated
283 symbol tables.
284
2852016-08-25 Mark Wielaard <mjw@redhat.com>
286
287 * strip.c (handle_elf): Recompress with ELF_CHF_FORCE.
288
2892016-08-06 Mark Wielaard <mjw@redhat.com>
290
291 * strip.c (handle_elf): Uncompress and recompress relocation target
292 section if necessary.
293
2942016-07-08 Mark Wielaard <mjw@redhat.com>
295
296 * Makefile.am (strip_LDADD): Add libdw.
297 * elfcompress.c (process_file): Use dwelf_strtab functions instead of
298 ebl_strtab.
299 * strip.c (handle_elf): Likewise.
300 * unstrip.c (new_shstrtab): Likewise.
301
3022016-07-06 Mark Wielaard <mjw@redhat.com>
303
304 * elf32-i386.script, i386_ld.c, ld.c, ld.h, ldgeneric.c, ldlex.l,
305 ldscript.y, libld_elf_i386.map, none_ld.c, sectionhash.c,
306 sectionhash.h, symbolhash.c, symbolhash.h, unaligned.h,
307 versionhash.c, versionhash.h, xelf.h: Removed.
308 * Makefile.am (YACC): Removed.
309 (AM_YFLAGS): Removed.
310 (AM_LFLAGS): Removed.
311 (native_ld): Removed.
312 (base_cpu): Removed.
313 (bin_PROGRAMS): Removed ld.
314 (ld_dsos): Removed.
315 (ld_SOURCES): Removed.
316 (noinst_LIBRARIES): Only libar.a.
317 (EXTRA_DIST): Just arlib.h and debugpred.h.
318 (ld_LDADD): Removed.
319 (ld_LDFLAGS): Removed.
320 (ldlex.o): Removed.
321 (ldscript.h): Removed.
322 (libld*): Removed.
323 (CLEANFILES): Just *.gconv.
324 (MAINTAINERCLEANFILES): Removed.
325
3262016-07-06 Mark Wielaard <mjw@redhat.com>
327
328 * unstrip.c (copy_elided_sections): Use unstripped_strent[] from
329 index zero, instead of one.
330
3312016-06-28 Richard Henderson <rth@redhat.com>
332
333 * elflint.c (valid_e_machine): Add EM_BPF.
334
3352016-04-11 David Abdurachmanov <davidlt@cern.ch>
336
337 * elfcmp.c (main): Fix self-comparison error with GCC 6.
338
3392016-03-21 Mark Wielaard <mjw@redhat.com>
340
341 * nm.c (show_symbols): Check for malloc size argument overflow.
342
3432016-02-13 Mark Wielaard <mjw@redhat.com>
344
345 * readelf.c (print_scngrp): Call error when gelf_getshdr fails.
346 (print_symtab): Likewise.
347 (handle_hash): Likewise.
348 (dump_data_section): Print a warning if decompressing fails.
349 (print_string_section): Likewise.
350
3512016-02-13 Mark Wielaard <mjw@redhat.com>
352
353 * elfcompress.c (parse_opt): Don't fallthrough after processing -q.
354
3552016-02-12 Mark Wielaard <mjw@redhat.com>
356
357 * strip.c (handle_elf): Correct elf_assert shndxdata check.
358
3592016-02-09 Mark Wielaard <mjw@redhat.com>
360
361 * readelf.c (read_encoded): Move up.
362 (print_cfa_program): Add encoding argument. Use it for read_encoded
363 when reading DW_CFA_set_loc op.
364 (print_debug_frame_section): Pass fde_encoding to print_cfa_program.
365
3662016-02-09 Mark Wielaard <mjw@redhat.com>
367
368 * elflint.c (compare_hash_gnu_hash): Check hash sh_entsize against
369 sizeof (Elf64_Xword). Correct invalid sh_entsize error message
370 section idx and name.
371
3722016-01-13 Mark Wielaard <mjw@redhat.com>
373
374 * elflint.c (check_elf_header): Recognize ELFOSABI_FREEBSD.
375
3762016-01-08 Mark Wielaard <mjw@redhat.com>
377
378 * elfcompress.c (compress_section): Use %zu to print size_t.
379 * readelf.c (print_shdr): Use %zx to print size_t.
380
3812015-12-16 Mark Wielaard <mjw@redhat.com>
382
383 * elfcompress.c: New file.
384 * Makefile.am (bin_PROGRAMS): Add elfcompress.
385 (elfcompress_LDADD): New variable.
386
3872015-12-18 Mark Wielaard <mjw@redhat.com>
388
389 * elflint.c (section_flags_string): Add NEWFLAG COMPRESSED.
390 (check_sections): SHF_COMPRESSED can be on any special section.
391 SHF_COMPRESSED is a valid section flag. SHF_COMPRESSED cannot
392 be used together with SHF_ALLOC or with SHT_NOBITS. Should have
393 a valid Chdr.
394
3952015-10-20 Mark Wielaard <mjw@redhat.com>
396
397 * readelf.c (options): Expand -z help text.
398 (dump_data_section): Check whether we need and can decompress section
399 data and call elf_rawzdata if so,
400 (print_string_section): Likewise.
401 (elf_contains_chdrs): New function.
402 (process_elf_file): Rename print_unrelocated to print_unchanged,
403 use elf_contains_chdrs.
404 (print_scngrp): Check whether section is compressed before use.
405 (print_symtab): Likewise.
406 (handle_hash): Likewise.
407
4082015-10-16 Mark Wielaard <mjw@redhat.com>
409
410 * readelf.c (argp_option): Describe --decompress,-z.
411 (print_decompress): New bool.
412 (parse_opt): Handle -z.
413 (elf_ch_type_name): New function.
414 (print_shdr): Print section compress information.
415
4162015-12-31 Mark Wielaard <mjw@redhat.com>
417
418 * elflint.c (check_symtab): Add _edata and _end (plus extra underscore
419 variants) to to the list of possibly dangling symbols.
420
4212015-12-02 Mark Wielaard <mjw@redhat.com>
422
423 * nm.c (process_file): Accept fd and pass it on.
424 (handle_elf): Likewise.
425 (find_no_debuginfo): New.
426 (struct getdbg): Likewise.
427 (getdbg_dwflmod): Likewise.
428 (show_symbols): Take fd. If the file is ET_REL use libdwfl to get
429 the relocated Dwarf.
430
4312015-12-02 Mark Wielaard <mjw@redhat.com>
432
433 * nm.c (get_local_names): Check for duplicates in local_root tree.
434
4352015-12-02 Mark Wielaard <mjw@redhat.com>
436
437 * unstrip.c (struct data_list): New.
438 (new_data_list): Likewise.
439 (record_new_data): Likewise.
440 (free_new_data): Likewise.
441 (adjust_relocs): Call record_new_data.
442 (add_new_section_symbols): Likewise.
443 (copy_elided_sections): Call free_new_data.
444
4452015-12-01 Mark Wielaard <mjw@redhat.com>
446
447 * elfcmp.c (main): Close ebl1 and ebl2 backends.
448
4492015-10-16 Mark Wielaard <mjw@redhat.com>
450
451 * Makefile.am [BUILD_STATIC](libdw): Add -lz.
452 [BUILD_STATIC](libelf): Likewise.
453
4542015-10-16 Mark Wielaard <mjw@redhat.com>
455
456 * elflint.c (check_symtab): Don't check TLS symbol value against TLS
457 phdr offset in debuginfo files.
458 (check_sections): Don't try to match section offsets to phdrs offsets
459 in debuginfo files.
460
4612015-10-16 Mark Wielaard <mjw@redhat.com>
462
463 * elflint.c (check_reloc_shdr): Reject only desthdrs if they have both
464 SHF_MERGE and SHF_STRINGS set.
465
4662015-10-13 Jose E. Marchesi <jose.marchesi@oracle.com>
467
468 * elflint.c (check_sections): Do not rely on
469 ebl_check_special_section when checking debuginfo files. Also
470 check that the type of WE sections in debuginfo files is NOBITS.
471
4722015-10-13 Mark Wielaard <mjw@redhat.com>
473
474 * elflint.c (check_program_header): Check relro flags are a subset
475 of the load segment if they don't fully overlap.
476
4772015-10-07 Mark Wielaard <mjw@redhat.com>
478
479 * Makefile.am (ldlex_no_Wstack_usage): New.
480 * ldlex.l ([RWX]): Make cnt unsigned.
481
4822015-10-09 Josh Stone <jistone@redhat.com>
483
484 * elflint.c (main): Replace stat64 and fstat64 with stat and fstat.
485 * readelf.c (process_file): Likewise.
486 (process_elf_file): Replace off64_t with off_t.
487 * findtextrel.c (process_file): Replace open64 with open.
488 * ld.c (main): Replace sizeof (off64_t) with 8.
489 * strings.c: Replace off64_t with off_t throughout.
490 (main): Replace stat64 and fstat64 with stat and fstat.
491 (map_file): Replace mmap64 with mmap.
492 (read_block): Likewise, and replace lseek64 with lseek.
493 * strip.c (handle_elf): Replace ftruncate64 with ftruncate.
494 (process_file): Replace stat64 and fstat64 with stat and fstat.
495 * unstrip.c (parse_opt): Replace stat64 with stat.
496 (handle_file): Replace open64 with open.
497 (open_file): Likewise.
498
4992015-10-08 Chih-Hung Hsieh <chh@google.com>
500
501 * ld.c (determine_output_format): Move recursive nested
502 function "try" to file scope.
503
5042015-10-04 Mark Wielaard <mjw@redhat.com>
505
506 * strip.c (handle_elf): Only sanity check section symbols to not
507 kept discarded sections if we are creating a debug file.
508
5092015-10-07 Mark Wielaard <mjw@redhat.com>
510
511 * unstrip.c (MAX): Removed.
512 (find_alloc_sections_prelink): Allocate exact amount of bytes for
513 shdrs.
514
5152015-10-05 Chih-Hung Hsieh <chh@google.com>
516
517 * unstrip.c (find_alloc_sections_prelink): Do not allocate
518 on stack union types with variable length arrays; use xmalloc
519 for such dynamic sized objects.
520 * readelf.c (handle_core_item): Likewise, but use alloca
521 for small variable size data object and add assert(count < 128).
522
5232015-10-05 Josh Stone <jistone@redhat.com>
524
525 * Makefile.am (libld_elf_i386.so): Add AM_V_CCLD silencer.
526 (.deps/none_ld.Po): Always silence the dummy command.
527 (make-debug-archive): Add AM_V_GEN and AM_V_at silencers.
528
5292015-10-02 Mark Wielaard <mjw@redhat.com>
530
531 * unstrip.c (copy_elided_sections): Use SH_INFO_LINK_P, not just
532 SHF_INFO_LINK.
533
5342015-10-02 Mark Wielaard <mjw@redhat.com>
535
536 * strip.c (handle_elf): Don't move around allocated NOBITS sections.
537 Don't just mark the section header string table as unused.
538 * unstrip.c (copy_elided_sections): Add header names to strtab if
539 shstrndx equals the symtab strtabndx.
540
5412015-09-22 Mark Wielaard <mjw@redhat.com>
542
543 * strip.c (cleanup_debug): Remove old-style function definitions.
544
5452015-09-09 Chih-Hung Hsieh <chh@google.com>
546
547 * readelf.c (print_debug_exception_table): Initialize variable before
548 it is used, because compiler does not know that error never returns.
549 (dump_arhive_index): Likewise.
550
5512015-09-04 Chih-Hung Hsieh <chh@google.com>
552
553 * elflint.c (check_group): Replace %Z length modifier with %z.
554 (check_note_data): Likewise.
555 * findtextrel.c (process_file): Likewise.
556 * readelf.c (handle_dynamic): Likewise.
557 (handle_symtab): Likewise.
558 (handle_verneed): Likewise.
559 (handle_verdef): Likewise.
560 (handle_versym): Likewise.
561 (print_hash_info): Likewise.
562 (print_decoded_aranges_section): Likewise.
563 (print_debug_aranges_section): Likewise.
564 (print_debug_line_section): Likewise.
565 (hex_dump): Likewise.
566 (dump_data_section): Likewise.
567 (print_string_section): Likewise.
568 (dump_archive_index): Likewise.
569 * unstrip.c (adjust_relocs): Likewise.
570 (collect_symbols): likewise.
571 (get_section_name): Likewise.
572 (find_alloc_sections_prelink): Likewise.
573 (copy_elided_sections): Likewise.
574 * ldscript.y (add_id_list): Add missing '%s'.
575
5762015-09-03 Mark Wielaard <mjw@redhat.com>
577
578 * readelf.c (handle_core_item): Handle right shift >= 32 bits.
579
5802015-08-11 Mark Wielaard <mjw@redhat.com>
581
582 * elflint.c (check_sections): When gnuld and a NOBITS section falls
583 inside a segment make sure any ELF file contents is zero.
584
5852015-07-29 Mark Wielaard <mjw@redhat.com>
586
587 * unstrip.c (sections_flags_match): New function.
588 (sections_match): Use sections_flags_match.
589 (find_alloc_sections_prelink): Only clear matched sections if there
590 is an undo section.
591 (copy_elided_sections): Add SHF_INFO_LINK to shdr_mem.sh_flags if
592 necessary.
593
5942015-06-27 Pino Toscano <toscano.pino@tiscali.it>
595
596 * src/strings.c: Define MAP_POPULATE if not defined already.
597
5982015-06-27 Mark Wielaard <mjw@redhat.com>
599
600 * nm.c (show_symbols): First call elf_getdata, then allocate memory.
601
6022015-06-18 Mark Wielaard <mjw@redhat.com>
603
604 * findtextrel.c (process_file): Free segments after use.
605
6062015-06-18 Mark Wielaard <mjw@redhat.com>
607
608 * readelf.c (print_phdr): Make sure phdr2_mem lifetime/scope equals
609 phdr2 pointer.
610
6112015-06-18 Mark Wielaard <mjw@redhat.com>
612
613 * readelf.c (handle_gnu_hash): Free lengths on invalid_data.
614
6152015-06-18 Mark Wielaard <mjw@redhat.com>
616
617 * elflint.c (check_symtab): Only check the PT_TLS phdr if it actually
618 exists. Warn otherwise.
619
6202015-06-18 Mark Wielaard <mjw@redhat.com>
621
622 * nm.c (show_symbols): Check sizeof (sym_mem[0]), not GElf_Sym to
623 known whether or not we stack allocated memory.
624
6252015-06-18 Mark Wielaard <mjw@redhat.com>
626
627 * strings.c (readelf): Use "<unknown>" if we cannot retrieve section
628 name.
629
6302015-06-09 Mark Wielaard <mjw@redhat.com>
631
632 * addr2line.c (print_dwarf_function): Always free scopes before
633 returning.
634
6352015-06-09 Mark Wielaard <mjw@redhat.com>
636
637 * strip.c (handle_ar): Mark as unused.
638 (process_file): Produce an error when trying to handle an ar.
639
6402015-05-30 Mark Wielaard <mjw@redhat.com>
641
642 * elfcmp.c (main): Only call memcmp when d_size != 0.
643
6442015-05-23 Mark Wielaard <mjw@redhat.com>
645
646 * Makefile.am: Define ldgeneric, readelf, nm, size, strip, elflint,
647 findtextrel, elfcmp objdump, ranlib, ar and unstrip no_Wstack_usage.
648
6492015-05-21 Mark Wielaard <mjw@redhat.com>
650
651 * addr2line.c (handle_address): Set scopes to NULL after free.
652
6532015-05-20 Mark Wielaard <mjw@redhat.com>
654
655 * addr2line.c (OPT_PRETTY): New constant define.
656 (argp_option): Add "pretty-print".
657 (pretty): New static bool.
658 (parse_opt): Set pretty.
659 (print_dwarf_function): Adjust output when pretty is set.
660 (print_addrsym): Likewise.
661 (handle_address): Likewise.
662
6632015-05-20 Mark Wielaard <mjw@redhat.com>
664
665 * Makefile.am (addr2line_LDADD): Add demanglelib.
666 * addr2line.c (argp_option): Move demangle under output format.
667 (demangle): New static bool.
668 (demangle_buffer_len): New static size_t.
669 (demangle_buffer): New static char *.
670 (main): free demangle_buffer.
671 (parse_opt): Set demangle.
672 (symname): New static function.
673 (get_diename): Use symname.
674 (print_dwarf_function): Likewise.
675 (print_addrsym): Likewise.
676 (handle_address): Likewise.
677
6782015-05-20 Mark Wielaard <mjw@redhat.com>
679
680 * addr2line.c (argp_option): Add "addresses", 'a'.
681 (print_addresses): New static bool.
682 (parse_opt): Set print_addresses.
683 (get_addr_width): New static function.
684 (handle_address): Print address if print_addresses is true.
685
6862015-05-20 Mark Wielaard <mjw@redhat.com>
687
688 * addr2line.c (handle_address): Call strtoumax with base 16. Make
689 sure all input has been processed.
690
6912015-05-20 Mark Wielaard <mjw@redhat.com>
692
693 * addr2line (argp_option): Group 'section' under "Input format
694 options".
695
6962015-05-12 Mark Wielaard <mjw@redhat.com>
697
698 * strip.c (debug_fd): New static variable.
699 (tmp_debug_fname): Likewise.
700 (cleanup_debug): New function using the above to clean up temporary
701 debug file.
702 (INTERNAL_ERROR): Call cleanup_debug.
703 (handle_elf): Use debug_fd and tmp_debug_fname statics and call
704 cleanup_debug before any error. Use output_fname instead of fname in
705 error messages when it exists (-o was given). SHT_NOBITS sections
706 can also be moved freely even if SHF_ALLOC is set. Add various
707 sanity checks. Use elf_assert instead of plain assert.
708
7092015-05-08 Mark Wielaard <mjw@redhat.com>
710
711 * nm.c (show_symbols): Call gelf_fsize with EV_CURRENT.
712 * strip.c (handle_elf): Likewise.
713
7142015-05-06 Mark Wielaard <mjw@redhat.com>
715
716 * elflint.c (check_gnu_hash): Return early when 2nd hash function
717 shift too big. Check there is enough data available. Make sure
718 bitmask_words is not zero.
719 (check_verdef): Use Elf64_Word for shdr->sh_info cnt.
720 (check_verneed): Likewise.
721 (check_attributes): Break when vendor name isn't terminated.
722 Add overflow check for subsection_len.
723
7242015-05-05 Mark Wielaard <mjw@redhat.com>
725
726 * nm.c (show_symbols): Handle dwarf_linesrc returning NULL.
727
7282015-05-04 Max Filippov <jcmvbkbc@gmail.com>
729
730 * ar.c (do_oper_extract): Replace struct timeval with struct timespec
731 and futimes with futimens.
732 * strip.c (process_file): Replace struct timeval with struct timespec.
733 (handle_elf, handle_ar): Replace struct timeval with struct timespec
734 in prototype. Replace futimes with futimens.
735
7362015-05-04 Max Filippov <jcmvbkbc@gmail.com>
737
738 * addr2line.c (main): Drop mtrace() call and #include <mcheck.h>.
739 * ar.c: Likewise.
740 * ld.c: Likewise.
741 * nm.c: Likewise.
742 * objdump.c: Likewise.
743 * ranlib.c: Likewise.
744 * size.c: Likewise.
745 * strip.c: Likewise.
746 * unstrip.c: Likewise.
747
7482015-05-04 Anthony G. Basile <blueness@gentoo.org>
749
750 * Makefile.am (readelf_LDADD, nm_LDADD, size_LDADD, strip_LDADD)
751 (ld_LDADD, elflint_LDADD, findtextrel_LDADD, addr2line_LDADD)
752 (elfcmp_LDADD, objdump_LDADD, ranlib_LDADD, strings_LDADD)
753 (ar_LDADD, unstrip_LDADD, stack_LDADD): Append $(argp_LDADD).
754
7552015-03-22 Mark Wielaard <mjw@redhat.com>
756
757 * readelf.c (print_debug_frame_section): Cast start to Dwarf_Off
758 before subtracting cie_id. And cast cie_offset to Dwarf_Off before
759 comparison.
760
7612015-03-22 Mark Wielaard <mjw@redhat.com>
762
763 * readelf.c (print_gdb_index_section): Check all offsets used
764 against section d_size.
765
7662015-03-17 Mark Wielaard <mjw@redhat.com>
767
768 * readelf.c (print_debug): Don't return, but always use dummy_dbg.
769
7702015-03-17 Mark Wielaard <mjw@redhat.com>
771
772 * readelf.c (print_gdb_index_section): Add overflow checking for
773 dataend checks.
774
7752015-03-14 Mark Wielaard <mjw@redhat.com>
776
777 * nm.c (INTERNAL_ERROR): Remove __DATE__.
778 * objdump.c (INTERNAL_ERROR): Likewise.
779 * size.c (INTERNAL_ERROR): Likewise.
780 * strip.c (INTERNAL_ERROR): Likewise.
781
7822015-03-18 Petr Machata <pmachata@redhat.com>
783
784 * readelf.c (dwarf_tag_string, dwarf_attr_string)
785 (dwarf_form_string, dwarf_lang_string, dwarf_inline_string)
786 (dwarf_encoding_string, dwarf_access_string)
787 (dwarf_visibility_string, dwarf_virtuality_string)
788 (dwarf_identifier_case_string, dwarf_calling_convention_string)
789 (dwarf_ordering_string, dwarf_discr_list_string)
790 (dwarf_locexpr_opcode_string): Adjust uses of know-dwarf.h macros
791 to match the API changes.
792
7932015-03-09 Mark Wielaard <mjw@redhat.com>
794
795 * elflint.c (compare_hash_gnu_hash): Correct gnu_symbias usage.
796
7972015-01-03 Mark Wielaard <mjw@redhat.com>
798
799 * elfcmp (main): Check section name is not NULL. Check sh_entsize
800 is not zero for symbol tables. Check phdrs are not NULL.
801 (search_for_copy_reloc): Check sh_entsize is not zero.
802
8032014-12-30 Mark Wielaard <mjw@redhat.com>
804
805 * elflint.c (check_scn_group): Check d_buf and name are not NULL.
806 (is_rel_dyn): Check d is not NULL. Check shdr->sh_entsize is not
807 zero.
808 (check_dynamic): Check strshdr is not NULL. Check d_tag is positive.
809 (check_symtab_shndx): Check symshdr and data->d_buf are not NULL.
810 Check shdr and symshdr sh_entsize are not zero.
811 (check_gnu_hash): Make sure maskidx is smaller than bitmask_words.
812 Check symshdr->sh_entsize is not zero. Check data->d_buf is not
813 NULL.
814 (compare_hash_gnu_hash): Check sections d_buf are not NULL.
815 Check section data is large enough. Use gnu_symbias.
816 (check_group): Check section val is valid.
817 (has_copy_reloc): Check sh_entsize is not zero.
818 (check_versym): Likewise.
819 (unknown_dependency_p): Likewise.
820 (check_verneed): Break on invalid ref or offset. Don't assert.
821 Report error when next offset is zero, but more vers expected.
822 (check_verdef): Likewise.
823 (check_attributes): Make sure d_buf is not NULL.
824 (check_note): Likewise.
825 (check_note_section): Likewise.
826 (check_program_header): Make sure section name is not NULL.
827
8282014-12-26 Mark Wielaard <mjw@redhat.com>
829
830 * strings.c (read_elf): Produce error when section data falls outside
831 file.
832
8332014-12-26 Mark Wielaard <mjw@redhat.com>
834
835 * nm.c (show_symbols): Guard against divide by zero in error check.
836 Add section index number in error message.
837
8382014-12-26 Mark Wielaard <mjw@redhat.com>
839
840 * nm.c (handle_ar): Skip over /SYM64/ entries.
841
8422014-12-26 Mark Wielaard <mjw@redhat.com>
843
844 * nm.c (handle_ar): Break on arsym with invalid offset.
845
8462014-12-20 Mark Wielaard <mjw@redhat.com>
847
848 * readelf.c (print_debug_macinfo_section): Mark cus sentinel files
849 as -1 non-existent. Check macoff against sentinel cus.
850
8512014-12-20 Mark Wielaard <mjw@redhat.com>
852
853 * readelf.c (print_debug_exception_table): Add max_action overflow
854 check. Check action_table_end before reading slib128. Check
855 max_ar_filter underflow.
856
8572014-12-18 Ulrich Drepper <drepper@gmail.com>
858
859 * Makefile.am: Suppress output of textrel_check command.
860
8612014-12-17 Mark Wielaard <mjw@redhat.com>
862
863 * readelf.c (print_cfa_program): Add bounds check before each op that
864 takes at least one argument.
865
8662014-12-16 Mark Wielaard <mjw@redhat.com>
867
868 * readelf.c (print_decoded_line_section): Print dwarf_errmsg if
869 dwarf_onesrcline or dwarf_linesrc fails.
870
8712014-12-16 Mark Wielaard <mjw@redhat.com>
872
873 * readelf.c (print_debug_line_section): Correct overflow check for
874 unit_length.
875 (print_debug_aranges_section): Correct overflow check for length.
876
8772014-12-15 Mark Wielaard <mjw@redhat.com>
878
879 * readelf.c (notice_listptr): Return false if offset doesn't fit
880 in 61-bits.
881 (attr_callback): Warn if loclist or rangelist offset doesn't fit.
882
8832014-12-15 Mark Wielaard <mjw@redhat.com>
884
885 * readelf.c (print_ops): Don't assert when addr_size or ref_size
886 is not 4 or 8, just report invalid data.
887
8882014-12-15 Mark Wielaard <mjw@redhat.com>
889
890 * readelf.c (print_gdb_index_section): Add more bounds checks.
891
8922014-12-15 Mark Wielaard <mjw@redhat.com>
893
894 * readelf.c (print_debug_line_section): Check there is enough room
895 for DW_LNE_set_address argument. Make sure there is enough room
896 for the the initial unit_length.
897
8982014-12-14 Mark Wielaard <mjw@redhat.com>
899
900 * elflint.c (check_attributes): Call get_uleb128 with end pointer.
901 * readelf.c (print_attributes): Likewise.
902 (print_ops): Likewise and also for get_sleb128.
903 (print_cfa_program): Likewise and add more readp bounds checks.
904 (read_encoded): Likewise.
905 (print_debug_frame_section): Likewise.
906 (print_debug_line_section): Likewise.
907 (print_debug_macinfo_section): Likewise.
908 (print_debug_macro_section): Likewise.
909 (print_debug_exception_table): Likewise.
910
9112014-12-16 Mark Wielaard <mjw@redhat.com>
912
913 * elfcmp.c (compare_Elf32_Word): Make sure (unsigned) Elf32_Word
914 difference doesn't wrap around before returning as int.
915
9162014-12-11 Mark Wielaard <mjw@redhat.com>
917
918 * readelf.c (print_debug_exception_table): Check TType base offset
919 and Action table are sane.
920
9212014-12-11 Mark Wielaard <mjw@redhat.com>
922
923 * readelf.c (print_debug_frame_section): Check number of augmentation
924 chars to print.
925
9262014-12-09 Mark Wielaard <mjw@redhat.com>
927
928 * readelf.c (handle_file_note): Check count fits data section and
929 doesn't overflow fptr.
930
9312014-12-08 Mark Wielaard <mjw@redhat.com>
932
933 * readelf.c (print_debug_exception_table): Report invalid data if
934 action table doesn't immediately follow call site table.
935
9362014-12-10 Josh Stone <jistone@redhat.com>
937
938 * addr2line.c (get_diename): New, get linkage_name or name.
939 * addr2line.c (print_dwarf_function): Use get_diename.
940 * addr2line.c (handle_address): Likewise.
941 * addr2line.c (print_diesym): Removed.
942
9432014-12-10 Josh Stone <jistone@redhat.com>
944
945 * addr2line.c (handle_address): Find the proper inline parents.
946
9472014-12-07 Mark Wielaard <mjw@redhat.com>
948
949 * readelf.c (print_debug_line_section): max_ops_per_instr cannot
950 be zero.
951
9522014-12-07 Mark Wielaard <mjw@redhat.com>
953
954 * readelf.c (print_ops): Handle zero ref_size for DW_OP_call_ref
955 and DW_OP_GNU_implicit_pointer.
956
9572014-12-04 Mark Wielaard <mjw@redhat.com>
958
959 * objdump.c (show_relocs_x): Make sure destshdr exists.
960 (show_relocs_rel): Don't rely on shdr->sh_entsize, use gelf_fsize.
961 (show_relocs_rela): Likewise.
962 (show_relocs): Make sure destshdr, symshdr and symdata exists.
963
9642014-11-30 Mark Wielaard <mjw@redhat.com>
965
966 * readelf.c (handle_sysv_hash64): Fix overflow check.
967
9682014-11-28 Mark Wielaard <mjw@redhat.com>
969
970 * readelf.c (handle_relocs_rel): Don't reuse destshdr to store
971 section header of a relocation against a STT_SECTION symbol. Use
972 a new local variable secshdr.
973 (handle_relocs_rela): Likewise.
974
9752014-11-26 Mark Wielaard <mjw@redhat.com>
976
977 * readelf.c (print_debug_aranges_section): Cast Dwarf_Word length
978 to ptrdiff_t for comparison.
979
9802014-11-24 Mark Wielaard <mjw@redhat.com>
981
982 * readelf.c (print_debug_line_section): Check line_range is not zero
983 before usage.
984
9852014-11-23 Mark Wielaard <mjw@redhat.com>
986
987 * readelf.c (print_debug_aranges_section): Check length to catch
988 nexthdr overflow.
989
9902014-11-21 Mark Wielaard <mjw@redhat.com>
991
992 * readelf.c (print_attributes): Guard against empty section.
993 Document attribute format. Break when vendor name isn't terminated.
994 Add overflow check for subsection_len. Handle both gnu and non-gnu
995 attribute tags.
996
9972014-11-22 Mark Wielaard <mjw@redhat.com>
998
999 * elflint.c (check_sections): Call ebl_bss_plt_p without ehdr.
1000 * findtextrel.c (process_file): Use elf_getphdrnum.
1001 * readelf.c (process_elf_file): Remove redundant ehdr->e_phoff check.
1002 (print_phdr): Check phnum.
1003 * size.c (show_segments): Use elf_getphdrnum.
1004 * strip.c (handle_elf): Likewise.
1005 * unstrip.c (copy_elf): Likewise.
1006 (copy_elided_sections): Likewise.
1007 (handle_file): Likewise.
1008
10092014-11-18 Mark Wielaard <mjw@redhat.com>
1010
1011 * readelf.c (print_cfa_program): Fix sanity check of DW_FORM_block
1012 length.
1013
10142014-11-17 Mark Wielaard <mjw@redhat.com>
1015
1016 * readelf.c (handle_verneed): Check vna_next and vn_next exist.
1017 (handle_verdef): Check vda_next and vd_next exist.
1018 (handle_versym): Check vd_next, vna_next and vn_next exist.
1019 Check vername and filename are not NULL before use.
1020
10212014-11-17 Mark Wielaard <mjw@redhat.com>
1022
1023 * elfcmp.c (main): Check section names are NULL before use.
1024 * objdump.c (section_match): Likewise.
1025 * size.c (show_sysv): Likewise.
1026
10272014-11-17 Mark Wielaard <mjw@redhat.com>
1028
1029 * readelf.c (print_debug_frame_section): Warn if ptr_size is not 4
1030 or 8 instead of just calling print_cfa_program.
1031
10322014-11-16 Mark Wielaard <mjw@redhat.com>
1033
1034 * readelf (process_elf_file): Set phnum to zero if there aren't
1035 actually any pheaders.
1036 (print_phdr): Check there actually is a phdr.
1037
10382014-11-16 Mark Wielaard <mjw@redhat.com>
1039
1040 * readelf.c (print_cfa_program): Check block len before calling
1041 print_ops.
1042
10432014-11-14 Mark Wielaard <mjw@redhat.com>
1044
1045 * readelf.c (print_debug_frame_section): Sanity Check CIE
1046 unit_length and augmentationlen.
1047
10482014-11-14 Mark Wielaard <mjw@redhat.com>
1049
1050 * readelf.c (handle_versym): Check def == NULL before use.
1051
10522014-11-08 Mark Wielaard <mjw@redhat.com>
1053
1054 * readelf.c (handle_versym): Initialize vername and filename array
1055 elements.
1056
10572014-11-07 Mark Wielaard <mjw@redhat.com>
1058
1059 * readelf.c (handle_sysv_hash): Sanity check section contents.
1060 (handle_sysv_hash64): Likewise.
1061 (handle_gnu_hash): Likewise.
1062
10632014-09-14 Petr Machata <pmachata@redhat.com>
1064
1065 * readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly.
1066
10672014-09-12 Petr Machata <pmachata@redhat.com>
1068
1069 * readelf.c (encoded_ptr_size): In the switch statement, change
1070 magic constants 3 and 4 to DW_EH_PE_* counterparts. Still accept
1071 0. Print diagnostic for anything else.
1072
10732014-08-25 Josh Stone <jistone@redhat.com>
1074
1075 * Makefile.am: Prevent premature @AR@ replacement in a sed expression.
1076
10772014-07-04 Menanteau Guy <menantea@linux.vnet.ibm.com>
1078 Mark Wielaard <mjw@redhat.com>
1079
1080 * elflint (check_symtab): Add ".TOC." to the list of possibly
1081 dangling symbols because of sourceware PR13621.
1082
10832014-06-14 Mark Wielaard <mjw@redhat.com>
1084
1085 * elflint (check_symtab): Use ebl_func_addr_mask on st_value.
1086
10872014-05-27 Mark Wielaard <mjw@redhat.com>
1088
1089 * readelf.c (print_debug): Skip section if name is NULL.
1090
10912014-05-26 Mark Wielaard <mjw@redhat.com>
1092
1093 * readelf.c (handle_relocs_rela): Print header like handle_relocs_rel
1094 does, when sh_info == 0.
1095
10962014-05-26 Mark Wielaard <mjw@redhat.com>
1097
1098 * unstrip.c (find_alloc_sections_prelink): Allow non-split .bss
1099 section when sh_size of the original and undo .bss section are equal.
1100
11012014-05-26 Mark Wielaard <mjw@redhat.com>
1102
1103 * unstrip.c (options): Add --force, -F.
1104 (struct arg_info): Add bool force.
1105 (parse_opt): Handle 'F', set force.
1106 (handle_explicit_files): Add force argument, add warn function,
1107 separate check ehdr field checks, use warn.
1108 (handle_dwfl_module): Add force argument, pass on to
1109 handle_explicit_files.
1110 (handle_output_dir_module): Add force argument, pass on to
1111 handle_dwfl_module.
1112 (handle_implicit_modules): Pass info->force to handle_dwfl_module and
1113 handle_output_dir_module.
1114 (main): Pass info.force to handle_explicit_files.
1115
11162014-05-19 Mark Wielaard <mjw@redhat.com>
1117
1118 * elflint.c (check_reloc_shdr): Check ebl_check_reloc_target_type.
1119
11202014-05-01 Mark Wielaard <mjw@redhat.com>
1121
1122 * readelf.c (find_no_debuginfo): Call dwfl_standard_find_debuginfo
1123 if looking for alternate debug file.
1124
11252014-04-11 Mark Wielaard <mjw@redhat.com>
1126
1127 * Makefile.am (AM_CPPFLAGS): Add -I libdwelf.
1128
11292014-04-22 Mark Wielaard <mjw@redhat.com>
1130
1131 * readelf.c (handle_core_item): Make sure variable length array
1132 contains at least enough space for terminating zero char.
1133
11342014-04-22 Mark Wielaard <mjw@redhat.com>
1135
1136 * readelf.c (print_gdb_index_section): Use unsigned int for 31 bits
1137 left shift.
1138
11392014-03-13 Mark Wielaard <mjw@redhat.com>
1140
1141 * Makefile.am: Remove no_mudflap.os. Remove libmudflap from all
1142 LDADD lines.
1143 * strings.c (process_chunk): Remove _MUDFLAP condition.
1144
11452014-04-09 Mark Wielaard <mjw@redhat.com>
1146
1147 * readelf.c (print_debug_aranges_section): Don't get the raw section
1148 data, use the possibly decompressed .[z]debug sectiondata.
1149 (print_debug_ranges_section): Likewise.
1150 (print_debug_frame_section): Likewise.
1151 (print_debug_line_section): Likewise.
1152 (print_debug_loc_section): Likewise.
1153 (print_debug_macinfo_section): Likewise.
1154 (print_debug_macro_section): Likewise.
1155
11562014-04-10 Mark Wielaard <mjw@redhat.com>
1157
1158 * readelf.c (buf_read_ulong): Pass actual long size to convert.
1159
11602014-03-05 Mark Wielaard <mjw@redhat.com>
1161
1162 * readelf.c (attr_callback): Print DW_FORM_sdata values as signed
1163 numbers.
1164
11652014-02-24 Mark Wielaard <mjw@redhat.com>
1166
1167 * readelf (print_phdr): Check there is a SHT_PROGBITS section at the
1168 offset given by p_offsets for a PT_INTERP segment before trying to
1169 display the interpreter string.
1170
11712014-02-07 Mark Wielaard <mjw@redhat.com>
1172
1173 * readelf.c (print_phdr): Check phdr->p_filesz and make sure
1174 interpreter string is zero terminated before calling printf.
1175
11762014-01-22 Mark Wielaard <mjw@redhat.com>
1177
1178 * Makefile.am (nm_no_Wformat): Removed.
1179 (size_no_Wformat): Likewise.
1180 (strings_no_Wformat): Likewise.
1181 (addr2line_no_Wformat): Likewise.
1182 * size.c (show_sysv): Use fmtstr directly as literal in printf.
1183 (show_sysv_one_line): Likewise.
1184 * strings.c (locfmt): Removed.
1185 (radix): New static enum.
1186 (parse_opt): Set radix, not locfmt.
1187 (process_chunk_mb): Use fmtstr directly as literal in printf based
1188 on radix.
1189 (process_chunk): Likewise.
1190 * nm.c (show_symbols_sysv): Use fmtstr directly as literal in printf.
1191 (show_symbols_bsd): Likewise.
1192 (show_symbols_posix): Likewise.
1193
11942014-01-21 Mark Wielaard <mjw@redhat.com>
1195
1196 * stack.c (show_inlines): New static boolean.
1197 (print_frame): New function split out from...
1198 (print_frames): ..here. If show_inlines is true and we found a
1199 DIE for the frame address, call print_inline_frames otherwise
1200 call print_frame. Keep track of and track frame_nr.
1201 (print_inline_frames): New function.
1202 (parse_opt): Handle '-i'.
1203 (main): Add 'i' to options.
1204
12052014-01-27 Mark Wielaard <mjw@redhat.com>
1206
1207 * stack.c (maxframes): Initialize to 256.
1208 (main): Document new default in options. Document magic number
1209 used in frames.allocated initialization.
1210
12112014-01-20 Mark Wielaard <mjw@redhat.com>
1212
1213 * stack.c (show_debugname): New static boolean.
1214 (die_name): New function.
1215 (print_frames): If show_debugname is true set symname to the
1216 first function-like DIE with a name in scope for the address in
1217 the debuginfo.
1218 (parse_opt): Handle '-d'.
1219 (main): Add 'd' to options.
1220
12212014-01-20 Mark Wielaard <mjw@redhat.com>
1222
1223 * addr2line.c (handle_address): Initialize scopes to NULL.
1224
12252014-01-17 Roland McGrath <roland@redhat.com>
1226
1227 * strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
1228 st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data.
1229 Don't use assert on input values, instead bail with "illformed" error.
1230
12312014-01-17 Roland McGrath <roland@redhat.com>
1232
1233 * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link.
1234 (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise.
1235 (handle_scngrp): Check for bogus sh_info.
1236
12372014-01-17 Jakub Jelinek <jakub@redhat.com>
1238
1239 * elflint.c (section_name): Return "<invalid>" instead of
1240 crashing on invalid section name.
1241 (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
1242 check_symtab_shndx, check_hash, check_versym): Robustify.
1243 (check_hash): Don't check entries beyond end of section.
1244 (check_note): Don't crash if gelf_rawchunk fails.
1245
12462014-01-17 Petr Machata <pmachata@redhat.com>
1247
1248 * readelf.c (handle_dynamic, handle_relocs_rel)
1249 (handle_relocs_rela, handle_versym, print_liblist):
1250 Use gelf_fsize instead of relying on shdr->sh_entsize.
1251
12522014-01-14 Mark Wielaard <mjw@redhat.com>
1253
1254 * readelf.c (print_debug_macro_section): Clear vendor array before
1255 use.
1256
12572014-01-15 Jan Kratochvil <jan.kratochvil@redhat.com>
1258
1259 Fix corruption of non-C++ symbols by the demangler.
1260 * nm.c (show_symbols_sysv, show_symbols_bsd, show_symbols_posix)
1261 (show_symbols): Check for _Z.
1262 * stack.c (print_frames) <USE_DEMANGLE>: Check for _Z.
1263
12642014-01-02 Mark Wielaard <mjw@redhat.com>
1265
1266 * stack.c (show_raw): Declare unconditionally.
1267 (parse_opt): Handle '-r' unconditionally.
1268 (main): Show "raw" option even without USE_DEMANGLE.
1269
12702014-01-02 Mark Wielaard <mjw@redhat.com>
1271
1272 * stack.c (print_frames): Print 0x before build-id hex-offset.
1273
12742014-01-02 Mark Wielaard <mjw@redhat.com>
1275
1276 * stack.c (maxframes): Increase to 2048.
1277 (struct frames): Add allocated field.
1278 (frame_callback): If frames used is frames allocated, realloc.
1279 (print_frames): Show an error if maxframes has been reached.
1280 (parse_opt): Allow -n 0 for unlimited frames.
1281 (main): Document -n 0 and new default 2048 frames. Allocate initial
1282 number of frames with malloc.
1283
12842013-12-30 Mark Wielaard <mjw@redhat.com>
1285
1286 * stack.c (parse_opt): Explicitly call dwfl_linux_proc_attach
1287 or dwfl_core_file_attach and check for errors.
1288
12892013-12-28 Mark Wielaard <mjw@redhat.com>
1290
1291 * stack.c (print_frames): Remove address width code and use...
1292 (get_addr_width): ...this new function.
1293 (show_modules): New static boolean.
1294 (module_callback): New static function.
1295 (parse_opt): Handle '-l'.
1296 (main): Add 'l' to options. If show_modules then use dwfl_getmodules
1297 with module_callback to show all detected modules and possible
1298 build_id, elf and dwarf files.
1299
13002013-12-27 Mark Wielaard <mjw@redhat.com>
1301
1302 * stack.c (frames_shown): New static boolean.
1303 (EXIT_OK,EXIT_ERROR,EXIT_BAD,EXIT_USAGES): New defines.
1304 (frame_callback): Return -1 on error. Don't print error.
1305 (print_frames): Add arguments, tid, dwflerr and what. Print tid.
1306 If there was an error report it with address and module if possible.
1307 Record whether any frames were actually printed.
1308 (thread_callback): Collect tid and err, pass it to print_frames.
1309 (parse_opt): Use EXIT_BAD for errors. On ARGP_KEY_END print errno
1310 if dwfl_linux_proc_report returned it. Check whether we are properly
1311 attached with dwfl_pid.
1312 (main): Document exit status. Don't report DWARF_CB_ABORT from
1313 callbacks as error. Pass real errors to print_frames. Return
1314 EXIT_BAD if no frames could be shown. Return EXIT_ERROR if there
1315 were any non-fatal errors.
1316
13172013-12-23 Mark Wielaard <mjw@redhat.com>
1318
1319 * Makefile.am (stack_LDADD): Add demanglelib.
1320 * stack.c (show_quiet): New static boolean, default false.
1321 (show_raw): Likewise.
1322 (demangle_buffer_len): New static size_t.
1323 (demangle_buffer): New static char *.
1324 (print_frames): Don't resolve pc name if show_quiet. Demangle name
1325 unless show_raw.
1326 (parse_opt): Handle '-q' and '-r'.
1327 (main): Add 'q' and 'r' to options. Free demangle_buffer.
1328
13292013-12-23 Mark Wielaard <mjw@redhat.com>
1330
1331 * stack.c (OPT_DEBUGINFO): New define.
1332 (OPT_COREFILE): Likewise.
1333 (pid): New static.
1334 (core_fd): Likewise.
1335 (core): Likewise.
1336 (exec): Likewise.
1337 (debuginfo_path): Likewise.
1338 (parse_opt): Handle '-p', '--core', '-e' and '--debuginfo-path'.
1339 Do argument sanity checking. Setup Dwfl.
1340 (main): Add 'p', 'core', 'e' and 'debuginfo-path' to options.
1341 Remove argp_child children, simplify argp doc, remove custom
1342 usage message and construction of dwfl with dwfl_standard_argp.
1343 Use pid directly as tid. close core and core_fd if opened. Print
1344 pid of process or core.
1345
13462013-12-23 Mark Wielaard <mjw@redhat.com>
1347
1348 * stack.c (show_build_id): New static boolean.
1349 (print_frames): Print module build-id, load address and pc offset
1350 if show_build_id is true.
1351 (parse_opt): Handle '-b'.
1352 (main): Add -b to options.
1353
13542013-12-22 Mark Wielaard <mjw@redhat.com>
1355
1356 * stack.c (maxframes): New static unsigned. Initialize to 64.
1357 (struct frame): New struct.
1358 (struct frames): Likewise.
1359 (dwfl): New static Dwfl pointer.
1360 (frame_callback): Use arg as struct frames and fill it next frame.
1361 Return DWARF_CB_ABORT when maxframes has been reached. Move
1362 printing of frame to...
1363 (print_frames): ...here. New function.
1364 (thread_callback): Use arg as struct frames and set frames to zero.
1365 Call print_frames.
1366 (parse_opt): Handle '-n'.
1367 (main): Add -n to options. Allocate frames using maxframes. Pass
1368 frames to frame_callback and thread_callback.
1369
13702013-12-20 Mark Wielaard <mjw@redhat.com>
1371
1372 * stack.c (show_one_tid): New static boolean.
1373 (parse_opt): Handle '-1'.
1374 (main): Add -1 to options. Call dwfl_getthread_frames when
1375 show_one_tid is true.
1376
13772013-12-18 Mark Wielaard <mjw@redhat.com>
1378
1379 * addr2line.c (options): Add symbol-sections, 'x'.
1380 (show_symbol_sections): New static bool.
1381 (parse_opt): Handle 'x'.
1382 (print_addrsym): Use dwfl_module_addrinfo value.r
1383 Also show section of address with show_symbol_sections.
1384 (find_symbol): Use dwfl_module_getsym_info and set value.
1385 (handle_address): Request value and use it instead of sym.st_value.
1386 * readelf.c (format_dwarf_addr): Use dwfl_module_addrinfo to get
1387 name and offset.
1388
13892013-12-17 Masatake YAMATO <yamato@redhat.com>
1390 Mark Wielaard <mjw@redhat.com>
1391
1392 * stack.c (show_activation, show_module, show_source): New variables.
1393 (parse_opt): Set show_activation if -a option is given.
1394 Set show_module if -m option is given. Set show_source if -s option
1395 is given. Set all show booleans when -v option is given.
1396 (main): Added `-a', `-m', `-s', and `-v' to the help message.
1397 (frame_callback): Print module and source file information.
1398
13992013-11-25 Petr Machata <pmachata@redhat.com>
1400
1401 * elflint.c (valid_e_machine): Add EM_AARCH64.
1402
14032013-11-14 Petr Machata <pmachata@redhat.com>
1404
1405 * readelf.c (handle_core_item) <'h'>: New branch for handling
1406 fields that shouldn't be displayed.
1407
14082013-11-10 Mark Wielaard <mjw@redhat.com>
1409
1410 * stack.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
1411 ARGP_PROGRAM_BUG_ADDRESS_DEF.
1412 (print_version): New function.
1413
14142013-11-09 Mark Wielaard <mjw@redhat.com>
1415
1416 * arlib.c (arlib_init): Call snprintf before using the result
1417 with memcpy.
1418 (arlib_finalize): Likewise.
1419 * nm.c (show_symbols_sysv): Don't modify cnt inside assert.
1420
14212013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com>
1422
1423 * Makefile.am (bin_PROGRAMS): Add stack.
1424 (stack_LDADD): New.
1425 * stack.c: New file.
1426
14272013-11-05 Mark Wielaard <mjw@redhat.com>
1428
1429 * readelf.c (print_debug_ranges_section): Cast address to size_t
1430 before comparison.
1431 (print_debug_loc_section): Likewise.
1432
14332013-10-18 Mark Wielaard <mjw@redhat.com>
1434
1435 * ar.c (main): Correct operation check when instance_specifed is set.
1436
14372013-09-26 Petr Machata <pmachata@redhat.com>
1438
1439 * readelf.c (handle_file_note): New function.
1440 (handle_notes_data): Call it to handle NT_FILE notes.
1441
14422013-09-26 Petr Machata <pmachata@redhat.com>
1443
1444 * readelf.c (handle_siginfo_note): New function.
1445 (handle_notes_data): Call it to handle NT_SIGINFO notes.
1446 (buf_read_int, buf_read_ulong, buf_has_data): New functions.
1447
14482013-08-13 Mark Wielaard <mjw@redhat.com>
1449
1450 * addr2line.c (options): Add "inlines", 'i'.
1451 (show_inlines): New bool.
1452 (parse_opt): Handle 'i'.
1453 (print_diesym): New static function.
1454 (print_src): New function taking code from...
1455 (handle_address): here. Call print_src. Print inlines.
1456
14572013-08-12 Mark Wielaard <mjw@redhat.com>
1458
1459 * addr2line.c (main): If there is a newline char at end of buf,
1460 then remove it.
1461
14622013-07-05 Mark Wielaard <mjw@redhat.com>
1463
1464 * readelf.c (print_ops): Take CU as argument, use it to print
1465 parameter_ref DIE offset.
1466 (struct listptr): Replace base field with cu.
1467 (listptr_base): New function.
1468 (compare_listptr): Use listptr_base.
1469 (notice_listptr): Take CU as argument.
1470 (skip_listptr_hole): Likewise.
1471 (print_debug_ranges_section): Pass NULL as CU to skip_listptr_hole.
1472 (print_cfa_program): Pass NULL as CU to print_ops.
1473 (struct attrcb_args): Replace cu_base field with cu.
1474 (attr_callback): Pass cu not cu_base to notice_listptr.
1475 (print_debug_units): Don't calculate base, just set cu.
1476 (print_debug_loc_section): Pass cu to skip_listptr_hole and
1477 print_ops.
1478
14792013-05-06 Mark Wielaard <mjw@redhat.com>
1480
1481 * readelf.c (print_ops): Format first DW_OP_GNU_implicit_pointer
1482 argument as DIE offset.
1483
14842013-04-24 Mark Wielaard <mjw@redhat.com>
1485
1486 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
1487
14882013-03-25 Mark Wielaard <mjw@redhat.com>
1489
1490 * readelf.c (argp_options): Add decodedline.
1491 (decodedline): New boolean initialized to false.
1492 (parse_opt): Set decodedline when arg is decodedline.
1493 (print_decoded_line_section): New function.
1494 (print_debug_line_section): Call print_decoded_line_section when
1495 decodedline is true.
1496
14972013-03-25 Mark Wielaard <mjw@redhat.com>
1498
1499 * readelf.c (argp_option): Add decodedaranges.
1500 (decodedaranges): New boolean initialized to false.
1501 (parse_opt): Set decodedaranges when arg is decodedaranges.
1502 (print_debug_aranges_section): Reimplemented and original
1503 implementation renamed to...
1504 (print_decoded_aranges_section): this.
1505
15062013-03-25 Mark Wielaard <mjw@redhat.com>
1507
1508 * readelf.c (attrcb_args): Add Dwarf_Die.
1509 (attr_callback): When highpc is in constant form also print as
1510 address.
1511 (print_debug_units): Set args.die.
1512
15132013-03-19 Mark Wielaard <mjw@redhat.com>
1514
1515 * readelf.c (print_gdb_index_section): Free format_dwarf_addr results.
1516
15172013-03-18 Mark Wielaard <mjw@redhat.com>
1518
1519 * readelf.c (print_gdb_index_section): Accept version 8.
1520
15212013-03-01 Mark Wielaard <mjw@redhat.com>
1522
1523 * findtextrel.c (process_file): Release ELF and close file when not
1524 text relocations are found.
1525 * strip.c (handle_elf): Track memory used for .debuglink section data
1526 and free when done.
1527
15282013-02-24 Mark Wielaard <mjw@redhat.com>
1529
1530 * elflint.c (check_symtab): Add __bss_start__ to the list of symbols
1531 allowed to have out of section values because of GNU ld bugs.
1532
15332013-02-06 Mark Wielaard <mjw@redhat.com>
1534
1535 * elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the
1536 list of symbols allowed to have out of section values because of
1537 GNU ld bugs in either .symtab or .dynsym, but only when they are
1538 zero sized.
1539
15402013-01-24 Mark Wielaard <mjw@redhat.com>
1541
1542 * readelf.c (argp_option): Add unresolved-address-offsets, U.
1543 (print_unresolved_addresses): New static.
1544 (parse_opt): Handle 'U', set print_unprocessed_values.
1545 (format_dwarf_addr): Take and handle new raw argument.
1546 (print_ops): Call format_dwarf_addr with raw offset values.
1547 (print_debug_ranges_section): Likewise.
1548 (print_debug_frame_section): Likewise.
1549 (attr_callback): Likewise.
1550 (print_debug_line_section): Likewise.
1551 (print_debug_loc_section): Likewise.
1552 (print_gdb_index_section): Likewise.
1553
15542013-01-18 Mark Wielaard <mjw@redhat.com>
1555
1556 * readelf.c (struct listptr): Add base Dwarf_Addr field.
1557 (compare_listptr): Warn for same offset with different base.
1558 (notice_listptr): Take base argument and set it.
1559 (skip_listptr_hole): Likewise.
1560 (struct attrcb_args): Removed unused cu_offset field.
1561 Add cu_base Dwarf_Addr field.
1562 (attr_callback): Call notice_listptr with cbargs->cu_base.
1563 (print_debug_units): Set args.cu_base.
1564 (print_debug_ranges_section): Get base and use for format_dwarf_addr.
1565 (print_debug_loc_section): Likewise.
1566
15672013-01-29 Jan Kratochvil <jan.kratochvil@redhat.com>
1568
1569 * readelf.c (handle_core_items): Limit special repeated items handling
1570 to single-item formats '\n', 'b' and 'B', assert OFFSET 0 there.
1571
15722012-12-18 Mark Wielaard <mark@bordewijk.wildebeest.org>
1573
1574 * readelf.c (ELF_INPUT_SECTION): New argp key value.
1575 (argp_option): Add elf-section.
1576 (elf_input_section): New static.
1577 (parse_opt): Handle ELF_INPUT_SECTION and set elf_input_section.
1578 (open_input_section): New function.
1579 (process_file): Call open_input_section if elf_input_section set.
1580
15812013-01-13 David Abdurachmanov <David.Abdurachmanov@cern.ch>
1582
1583 ar.c (do_oper_delete): Fix num passed to memset.
1584
15852012-12-21 Mark Wielaard <mjw@redhat.com>
1586
1587 * readelf.c (print_debug_frame_section): Adjust FDE start address
1588 if pcrel before feeding it to format_dwarf_addr.
1589
15902012-12-21 Mark Wielaard <mjw@redhat.com>
1591
1592 * addr2line.c (main): Call dwfl_end.
1593
15942012-12-11 Roland McGrath <roland@hack.frob.com>
1595
1596 * nm.c (show_symbols_sysv): Fix size passed to snprintf for invalid
1597 sh_name case.
1598 Reported by David Abdurachmanov <David.Abdurachmanov@cern.ch>.
1599
16002012-10-16 Mark Wielaard <mjw@redhat.com>
1601
1602 * readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are
1603 calculated beginning after the operand and 2-byte constant.
1604
16052012-10-12 Jan Kratochvil <jan.kratochvil@redhat.com>
1606
1607 * readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ...
1608 (WRAP_COLUMN): ... here.
1609 (print_core_item): Remove parameter format_max. Update function
1610 comment. Replace FORMAT_MAX by the real output width.
1611 (handle_core_item): Remove the FORMAT_MAX values in TYPES, DO_TYPE,
1612 calls of print_core_item, remove variable maxfmt, change
1613 ITEM_WRAP_COLUMN to WRAP_COLUMN.
1614 (handle_core_register): Remove the FORMAT_MAX values in TYPES, BITS,
1615 calls of print_core_item, change REGISTER_WRAP_COLUMN to WRAP_COLUMN.
1616
16172012-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
1618
1619 * readelf.c (handle_core_item) <b>: Make run an outer block variable.
1620 Increase run only if LASTBIT != 0. Print last element only if RUN > 0.
1621
16222012-08-27 Mark Wielaard <mjw@redhat.com>
1623
1624 * readelf.c (print_debug_macro_section): Print offset as PRIx64.
1625
16262012-08-27 Mark Wielaard <mjw@redhat.com>
1627
1628 * readelf.c (register_info): Handle loc == NULL.
1629
16302012-08-22 Jeff Kenton <jkenton@tilera.com>
1631
1632 * elflint.c (valid_e_machine): Add EM_TILEGX and EM_TILEPRO.
1633
16342012-08-16 Mark Wielaard <mjw@redhat.com>
1635
1636 * readelf.c (dwarf_tag_name): Renamed from dwarf_tag_string.
1637 Uses new dwarf_tag_string or adds ??? or lo_user+%#x when
1638 appropriate.
1639 (dwarf_attr_name): Likewise.
1640 (dwarf_form_name): Likewise.
1641 (dwarf_lang_name): Likewise.
1642 (dwarf_inline_name): Likewise.
1643 (dwarf_encoding_name): Likewise.
1644 (dwarf_access_name): Likewise.
1645 (dwarf_visibility_name): Likewise.
1646 (dwarf_virtuality_name): Likewise.
1647 (dwarf_identifier_case_name): Likewise.
1648 (dwarf_calling_convention_name): Likewise.
1649 (dwarf_ordering_name): Likewise.
1650 (dwarf_discr_list_name): Likewise.
1651 (print_ops): Remove KNOWN. Use dwarf_locexpr_opcode_string.
1652 (attr_callback): Call new dwarf_foobar_name instead of old
1653 dwarf_foobar_string functions.
1654 (dwarf_tag_string): New function using known-dwarf.h macros.
1655 (dwarf_attr_string): Likewise.
1656 (dwarf_form_string): Likewise.
1657 (dwarf_lang_string): Likewise.
1658 (dwarf_inline_string): Likewise.
1659 (dwarf_encoding_string): Likewise.
1660 (dwarf_access_string): Likewise.
1661 (dwarf_visibility_string): Likewise.
1662 (dwarf_virtuality_string): Likewise.
1663 (dwarf_identifier_case_string): Likewise.
1664 (dwarf_calling_convention_string): Likewise.
1665 (dwarf_ordering_string): Likewise.
1666 (dwarf_discr_list_string): Likewise.
1667 (dwarf_locexpr_opcode_string): Likewise.
1668
16692012-06-27 Mark Wielaard <mjw@redhat.com>
1670
1671 * readelf.c (dwarf_form_string): Handle DW_FORM_GNU_ref_alt and
1672 DW_FORM_GNU_strp_alt.
1673 (attr_callback): Likewise.
1674
16752012-07-30 Petr Machata <pmachata@redhat.com>
1676
1677 * nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and
1678 corresponding printf) so that those that are referenced by only
1679 one of the formatting strings are at the end.
1680
16812012-07-29 Mark Wielaard <mjw@redhat.com>
1682
1683 * readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc.
1684 (print_ops): Use known[op], not op_name, for DW_OP_GNU_parameter_ref.
1685
16862012-07-19 Mark Wielaard <mjw@redhat.com>
1687
1688 * readelf.c (print_ops): Handle DW_OP_GNU_parameter_ref.
1689
16902012-07-11 Mark Wielaard <mjw@redhat.com>
1691
1692 * readelf.c (options): Add macro to help of debug-dump.
1693 (section_e): Add section_macro.
1694 (section_all): Add section_macro.
1695 (parse_opt): Handle macro.
1696 (print_debug_macro_section): New function.
1697 (print_debug): Add NEW_SECTION (macro).
1698
16992012-07-10 Mark Wielaard <mjw@redhat.com>
1700
1701 * readelf.c (print_gdb_index_section): Add version 7 support.
1702 Keep track of cu_nr. Print kind and static/global flag for each
1703 symbol. When a symbol is in the TU list add 'T'.
1704
17052012-06-26 Mark Wielaard <mjw@redhat.com>
1706
1707 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros.
1708
17092012-06-22 Mark Wielaard <mjw@redhat.com>
1710
1711 * readelf.c (print_ops): Cast printf PRIu/x64 arguments to uint64_t
1712 for gcc 4.7 -Wformat.
1713
17142012-05-09 Roland McGrath <roland@hack.frob.com>
1715
1716 * elflint (check_sections): Allow zero sized sections at (filesz) end
1717 of segment. And make check overflow-proofed.
1718
17192012-04-24 Mark Wielaard <mjw@redhat.com>
1720
1721 * readelf.c (print_ops): Add DW_OP_GNU_push_tls_address,
1722 DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr.
1723
17242012-03-28 Roland McGrath <roland@hack.frob.com>
1725
1726 * elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections.
1727
17282012-03-28 Mark Wielaard <mjw@redhat.com>
1729
1730 * readelf.c (print_debug_abbrev_section): Check there is Dwarf
1731 section data.
1732 (print_debug_str_section): Likewise.
1733
17342012-03-21 Mark Wielaard <mjw@redhat.com>
1735
1736 * readelf.c (print_gdb_index_section): Accept version 6.
1737
17382012-01-31 Mark Wielaard <mjw@redhat.com>
1739
1740 * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset.
1741
17422012-01-21 Ulrich Drepper <drepper@gmail.com>
1743
1744 * addr2line.c: Update copyright year.
1745 * ar.c: Likewise.
1746 * elfcmp.c: Likewise.
1747 * elflint.c: Likewise.
1748 * findtextrel.c: Likewise.
1749 * ld.c: Likewise.
1750 * nm.c: Likewise.
1751 * objdump.c: Likewise.
1752 * ranlib.c: Likewise.
1753 * readelf.c: Likewise.
1754 * size.c: Likewise.
1755 * strings.c: Likewise.
1756 * strip.c: Likewise.
1757 * unstrip.c: Likewise.
1758
1759 * nm.c (argp_children): Define.
1760 (argp): Hook up argp_children.
1761 (handle_ar): Optimize puts call.
1762 (show_symbols_bsd): Use positional parameters to also print color
1763 codes. Don't print STT_FILE symbols.
1764 * objdump.c (options): Improve help text.
1765 (argp_children): Define.
1766 (argp): Hook up argp_children.
1767 (disasm_info): Add elements for color codes.
1768 (disasm_output): Print color codes as well.
1769 (show_disasm): Set up disasm_info data for callback.
1770
17712012-01-20 Roland McGrath <roland@hack.frob.com>
1772
1773 * arlib-argp.c (arlib_deterministic_output): Initialize from
1774 configured value.
1775 (help_filter): New function.
1776 (argp): Use it.
1777
1778 * ar.c (main): Handle oper_none as usage error.
1779
1780 * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D.
1781
1782 * ranlib.c (argp): Use arlib_argp_children.
1783
1784 * arlib.c (arlib_init): Obey arlib_deterministic_output.
1785
1786 * arlib-argp.c: New file.
1787 * Makefile.am (libar_a_SOURCES): Add it.
1788 * arlib.h (arlib_deterministic_output, arlib_argp_children):
1789 Declare new variables.
1790 * ar.c (deterministic_output): Variable removed.
1791 (do_oper_insert): Use arlib_deterministic_output instead.
1792 (options, parse_opt): Don't handle -D here. Add group numbers.
1793 (argp): Use arlib_argp_children.
1794
17952011-12-20 Roland McGrath <roland@hack.frob.com>
1796
1797 * readelf.c (print_debug): Initialize DUMMY_DBG.elf.
1798 Reported by Karel Klic <kklic@redhat.com>.
1799
18002011-11-05 Roland McGrath <roland@hack.frob.com>
1801
1802 * ar.c (deterministic_output): New flag variable.
1803 (options, parse_opt): Grok -D to set it.
1804 (do_oper_insert): When set, use zero from mtime, uid, and gid.
1805
1806 * ar.c (do_oper_insert): Fix check on elf_rawfile return value.
1807
18082011-10-04 Marek Polacek <mpolacek@redhat.com>
1809
1810 * readelf.c (register_info): Assume the right size of an array.
1811
18122011-10-03 Ulrich Drepper <drepper@gmail.com>
1813
1814 * nm.c: Recognize option --mark-special. Still recognize --mark-weak
1815 but don't show it in help anymore.
1816 (mark_special): Renamed from mark_weak.
1817 (parse_opt): Adjust.
1818 (class_type_char): Take additional parameters for ELF file and ELF
1819 header. Treat TLS symbols like objects.
1820 In case of D symbols, show u for unique symbols, R for symbols in
1821 read-only sections, B for symbols in BSS sections.
1822 (show_symbols_bsd): Take additional parameters for ELF file and ELF
1823 header. Adjust for class_type_char change. Show TLS symbols with
1824 @ after them in case --mark-special is selected.
1825 (show_symbols_posix): Likewise.
1826 (show_symbols): Adjust calls to show_symbols_bsd and
1827 show_symbols_posix.
1828 (show_symbols_sysv): Avoid printing adress and size for undefined
1829 symbols. Don't print initial special entry and section entries.
1830
18312011-10-02 Ulrich Drepper <drepper@gmail.com>
1832
1833 * Makefile.am (demanglelib): Define.
1834 (nm_LDADD): Add demanglelib.
1835 * nm.c (options): Add -C option.
1836 (demangle): Define as global variable.
1837 (parse_opt): Recognize -C.
1838 (show_symbols_sysv): Handle demangling.
1839 (show_symbols_bad): Likewise.
1840 (show_symbols_posix): Likewise.
1841 (show_symbols): Likewise.
1842
18432011-07-09 Roland McGrath <roland@hack.frob.com>
1844
1845 * readelf.c (options, parse_opt): Grok -W/--wide and ignore it.
1846
1847 * ar.c (parse_opt): Grok -u.
1848
18492011-05-30 Mark Wielaard <mjw@redhat.com>
1850
1851 * strip.c (relocate): Make offset check overflow-proof.
1852
18532011-05-23 Mark Wielaard <mjw@redhat.com>
1854
1855 * strip.c (relocate): Take new arguments is_rela to indicate
1856 whether the relocation is from a SHT_REL or SHT_RELA section.
1857 Relocate against any debug section symbol, not just STT_SECTION
1858 symbols. For SHT_REL relocations, fetch addend from offset and
1859 add it to symbol value if not zero.
1860
18612011-05-23 Mark Wielaard <mjw@redhat.com>
1862
1863 * strip.c (OPT_RELOC_DEBUG): New option.
1864 (argp_option): Add new --reloc-debug-sections option.
1865 (main): Check new option.
1866 (parse_opt): Likewise.
1867 (handle_elf): Remove any relocations between debug sections
1868 in ET_REL for the debug file when requested.
1869
18702011-05-18 Mark Wielaard <mjw@redhat.com>
1871
1872 * strip.c (handle_elf): Make sure all sections of a removed group
1873 section are removed too. Don't discard SHT_GROUP sections, copy
1874 section table before it gets modified. Section group signature
1875 symbols don't have to be retained.
1876
18772011-05-16 Jakub Jelinek <jakub@redhat.com>
1878
1879 * readelf.c (print_ops): Handle DW_OP_GNU_const_type,
1880 DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert
1881 and DW_OP_GNU_reinterpret.
1882
18832011-05-17 Mark Wielaard <mjw@redhat.com>
1884
1885 * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and
1886 DW_TAG_GNU_call_site_parameter return strings.
1887
18882011-05-11 Marek Polacek <mpolacek@redhat.com>
1889
1890 * nm.c (show_symbols_sysv): Remove unused if/else, remove
1891 unused `prefix' and `fname' parameters.
1892
18932011-05-07 Marek Polacek <mpolacek@redhat.com>
1894
1895 * unstrip.c (compare_sections_nonrel): Mark this function as static.
1896
18972011-04-26 Mark Wielaard <mjw@redhat.com>
1898
1899 * readelf.c (handle_notes_data): Call ebl_object_note_type_name
1900 with note name.
1901
19022011-04-14 Mark Wielaard <mjw@redhat.com>
1903
1904 * readelf.c (options): Add gdb_index.
1905 (section_e): Define section_gdb_index.
1906 (parse_opt): Recognize gdb_index debug-dump argument.
1907 (print_gdb_index_section): New function.
1908 (print_debug): Add gdb_index to debug_sections.
1909
19102011-03-24 Petr Machata <pmachata@redhat.com>
1911
1912 * readelf.c (print_debug_line_section): Emit initial space for all
1913 opcode lines. Print offset in front of each opcode.
1914
19152011-03-22 Marek Polacek <mpolacek@redhat.com>
1916
1917 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case.
1918
19192011-03-22 Mark Wielaard <mjw@redhat.com>
1920
1921 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site
1922 and DW_TAG_GNU_call_site_parameter.
1923 (dwarf_attr_string): Support DW_AT_GNU_call_site_value,
1924 DW_AT_GNU_call_site_data_value,
1925 DW_AT_GNU_call_site_target,
1926 DW_AT_GNU_call_site_target_clobbered,
1927 DW_AT_GNU_tail_call,
1928 DW_AT_GNU_all_tail_call_sites,
1929 DW_AT_GNU_all_call_sites,
1930 and DW_AT_GNU_all_source_call_sites.
1931 (print_ops): Handle DW_OP_GNU_entry_value.
1932 (attr_callback): Handle DW_AT_GNU_call_site_value,
1933 DW_AT_GNU_call_site_data_value,
1934 DW_AT_GNU_call_site_target,
1935 and DW_AT_GNU_call_site_target_clobbered.
1936
19372011-03-10 Mark Wielaard <mjw@redhat.com>
1938
1939 * elflint.c (check_symtab): Use ebl_check_st_other_bits.
1940
19412011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
1942
1943 * readelf.c (reset_listptr): Clear TABLE->TABLE.
1944
19452011-02-25 Mark Wielaard <mjw@redhat.com>
1946
1947 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
1948 (dwarf_form_string): Properly format and return unknown form.
1949
19502011-02-23 Roland McGrath <roland@redhat.com>
1951
1952 * readelf.c (section_name): New function.
1953 (print_debug_abbrev_section): Use it instead of constant.
1954 (print_debug_aranges_section): Likewise.
1955 (print_debug_ranges_section): Likewise.
1956 (print_debug_units): Likewise.
1957 (print_debug_line_section): Likewise.
1958 (print_debug_loc_section): Likewise.
1959 (print_debug_macinfo_section): Likewise.
1960 (print_debug_pubnames_section): Likewise.
1961 (print_debug_str_section): Likewise.
1962 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too.
1963 (print_debug_abbrev_section): Use decoded d_size, not sh_size.
1964 (print_debug_str_section): Likewise.
1965
1966 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
1967
19682011-02-11 Roland McGrath <roland@redhat.com>
1969
1970 * elfcmp.c (verbose): New variable.
1971 (options, parse_opt): Grok -l/--verbose to set it.
1972 (main): Under -l, keep going after first difference.
1973
1974 * elfcmp.c (ignore_build_id): New variable.
1975 (options, parse_opt): Grok --ignore-build-id to set it.
1976 (main): For SHT_NOTE sections, compare note details rather than raw
1977 bytes. Under --ignore-build-id, don't complain about differing build
1978 ID contents if lengths match.
1979
19802011-02-08 Roland McGrath <roland@redhat.com>
1981
1982 * ldscript.y (filename_id_star): Remove unused variable.
1983
1984 * unstrip.c (copy_elided_sections): Remove unused variable.
1985
1986 * elflint.c (check_dynamic): Remove unused variables.
1987
1988 * elflint.c (check_symtab): Warn about missing xndx section only once.
1989
1990 * ldgeneric.c (check_for_duplicate2): Remove unused variable.
1991
19922011-01-06 Roland McGrath <roland@redhat.com>
1993
1994 * strip.c (handle_elf): Under --strip-sections, remove all
1995 non-allocated sections and never generate .gnu_debuglink.
1996
19972011-01-04 Roland McGrath <roland@redhat.com>
1998
1999 * strip.c (remove_shdrs): New variable.
2000 (options, parse_opt): Grok --strip-sections to set it.
2001 (handle_elf): When that's set, truncate off .shstrtab and shdrs.
2002
20032010-11-10 Roland McGrath <roland@redhat.com>
2004
2005 * findtextrel.c (process_file): Don't assume order of sections.
2006 Reported by Mike Hommey <mh@glandium.org>.
2007
20082010-07-26 Roland McGrath <roland@redhat.com>
2009
2010 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer.
2011
20122010-08-30 Roland McGrath <roland@redhat.com>
2013
2014 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses.
2015 * readelf.c (parse_opt): Add section_info to implicit_debug_sections
2016 for ranges, loc.
2017 (struct listptr, struct listptr_table): New types.
2018 (compare_listptr, reset_listptr, sort_listptr): New functions.
2019 (notice_listptr, skip_listptr_hole): New functions.
2020 (struct attrcb_args): Add silent member.
2021 (attr_callback): Call notice_listptr for loclistptr and rangelistptr.
2022 Suppress output if silent, but still call notice_listptr.
2023 (print_debug_units): Suppress output if section_info not requested.
2024 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole.
2025 (print_debug_ranges_section): Likewise.
2026 (print_debug): Call reset_listptr on both tables.
2027
2028 * readelf.c (print_debug_ranges_section): Print empty list.
2029 (print_debug_loc_section): Likewise.
2030
2031 * readelf.c (print_debug_loc_section): Check for bogus length
2032 before calling print_ops.
2033 (print_ops): Check harder for bogus data that would read off end.
2034
20352010-08-11 Roland McGrath <roland@redhat.com>
2036
2037 * readelf.c (for_each_section_argument): Process all sections with
2038 matching name, not just the first.
2039
20402010-07-26 Roland McGrath <roland@redhat.com>
2041
2042 * readelf.c (print_ops): Take new argument for CU version.
2043 Fix DW_OP_call_ref decoding to depend on it.
2044 (print_debug_loc_section): Update caller.
2045 (print_cfa_program): Take new argument, pass it down.
2046 (print_debug_frame_section): Update caller.
2047 (struct attrcb_args): New member version.
2048 (print_debug_units): Initialize it.
2049
20502010-07-02 Roland McGrath <roland@redhat.com>
2051
2052 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for
2053 initial_location.
2054
20552010-06-30 Roland McGrath <roland@redhat.com>
2056
2057 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO.
2058 Ignore st_size for a non-S_ISREG file descriptor.
2059 (read_block): Move assert after no-mmap bail-out.
2060 (read_block_no_mmap): Fix size calculations for moving buffer remnant.
2061
20622010-06-22 Roland McGrath <roland@redhat.com>
2063
2064 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa.
2065
20662010-06-21 Roland McGrath <roland@redhat.com>
2067
2068 * readelf.c (dwarf_tag_string): Handle new v4 tags.
2069 (dwarf_attr_string): Add new attributes.
2070 (dwarf_tag_string): Handle DW_TAG_GNU_*.
2071
2072 * readelf.c (print_ops): Use 64-bit types for LEB128 operands.
2073 (print_cfa_program): Likewise.
2074
20752010-06-20 Roland McGrath <roland@redhat.com>
2076
2077 * readelf.c (print_debug_units): New function, broken out of ...
2078 (print_debug_info_section): ... here. Call it.
2079 (print_debug_types_section): New function.
2080 (enum section_e): Add section_types alias for section_info.
2081 (print_debug): Add types to the sections table.
2082
2083 * readelf.c (print_debug_frame_section): Handle version 4 format.
2084
2085 * readelf.c (print_debug_line_section): Handle version 4 format.
2086
20872010-06-14 Roland McGrath <roland@redhat.com>
2088
2089 * unstrip.c (copy_elided_sections): Make sure all sections' data have
2090 been read in before we write anything out.
2091
20922010-06-04 Roland McGrath <roland@redhat.com>
2093
2094 * unstrip.c (update_shdr): New function.
2095 (update_sh_size): Call it instead of gelf_update_shdr.
2096 (adjust_relocs, add_new_section_symbols): Likewise.
2097 (new_shstrtab, copy_elided_sections): Likewise.
2098
2099 * unstrip.c (copy_elided_sections): Bail if stripped file has more
2100 sections than unstripped file, rather than getting confused later.
2101
21022010-06-01 Roland McGrath <roland@redhat.com>
2103
2104 * readelf.c (dwarf_form_string): Handle DWARF 4 forms.
2105 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
2106 DW_FORM_sec_offset, DW_FORM_ref_sig8.
2107
2108 * readelf.c (print_debug): Don't bail if libdw setup fails.
2109 Suppress complaint if we only want .eh_frame anyway.
2110
21112010-05-28 Ulrich Drepper <drepper@redhat.com>
2112
2113 * readelf.c (attr_callback): Also print form information.
2114
21152010-05-19 Roland McGrath <roland@redhat.com>
2116
2117 * addr2line.c (find_symbol): Short-circuit on empty name.
2118 (handle_address): Handle SYMBOL with no +OFFSET.
2119
21202010-05-08 Roland McGrath <roland@redhat.com>
2121
2122 * readelf.c (print_ops): Take new arg OFFSET_SIZE.
2123 Use that for DW_OP_call_ref, not ADDRSIZE.
2124 (print_cfa_program): Update caller.
2125 (struct attrcb_args): Add offset_size field.
2126 (attr_callback): Use it for print_ops call.
2127 (print_debug_info_section): Initialize it.
2128 (print_ops): Likewise.
2129
21302010-04-14 Roland McGrath <roland@redhat.com>
2131
2132 * readelf.c (handle_core_item): Fix bitmask printing.
2133
21342010-04-06 Roland McGrath <roland@redhat.com>
2135
2136 * ld.c (options): Fix some typos in messages.
2137 * elflint.c (check_scn_group, check_group): Likewise.
2138 * ldscript.y (add_id_list): Likewise.
2139 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
2140 before translated string containing a literal %.
2141
21422010-02-26 Roland McGrath <roland@redhat.com>
2143
2144 * readelf.c (process_file): Don't leak an fd in failure case.
2145
21462010-02-15 Roland McGrath <roland@redhat.com>
2147
2148 * Makefile.am: Use config/eu.am for common stuff.
2149
2150 * readelf.c (print_debug_frame_section): Add a cast to avoid sign
2151 mismatch in comparison.
2152
21532010-02-02 Roland McGrath <roland@redhat.com>
2154
2155 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
2156 (read_encoded): Likewise.
2157 (print_debug_frame_section): Check for bogus augmentation length.
2158 For P augmentation, use read_encoded, print the encoding description,
2159 and use hex for unsigned values.
2160
21612010-01-15 Roland McGrath <roland@redhat.com>
2162
2163 * ar.c: Include <sys/stat.h>.
2164 * elflint.c: Likewise.
2165 * readelf.c: Likewise.
2166 * strip.c: Likewise.
2167 * unstrip.c: Likewise
2168
21692010-01-07 Roland McGrath <roland@redhat.com>
2170
2171 * readelf.c (print_ehdr): Handle PN_XNUM.
2172 (phnum): New static variable.
2173 (process_elf_file): Set it with elf_getphdrnum.
2174 (print_phdr): Use phnum instead of EHDR->e_phnum.
2175 (print_dynamic, handle_notes): Likewise.
2176 (handle_relocs_rel, handle_relocs_rela): Likewise.
2177
2178 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
2179
2180 * elflint.c (phnum): New static variable.
2181 (check_elf_header): Set it, handling PN_XNUM.
2182 Use that in place of EHDR->e_phnum throughout.
2183 (check_symtab, check_reloc_shdr, check_dynamic): Likewise.
2184 (unknown_dependency_p, check_sections, check_program_header): Likewise.
2185
21862010-01-05 Roland McGrath <roland@redhat.com>
2187
2188 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
2189 DW_AT_GNU_template_name.
2190
21912010-01-04 Roland McGrath <roland@redhat.com>
2192
2193 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
2194 (handle_core_note): Pass NHDR and NAME to ebl_core_note.
2195 (handle_core_item): Handle .format of '\n' as \n-separated strings.
2196
2197 * readelf.c (implicit_debug_sections): New variable.
2198 (parse_opt): Set it instead of print_debug_sections for -a.
2199 OR them together for print_debug check.
2200 (print_debug): OR them together for section check.
2201
2202 * readelf.c (options): Repartition into set implied by -a and others.
2203 Correct -a text to match reality.
2204
2205 * readelf.c (struct section_argument): Add bool member 'implicit'.
2206 (parse_opt): Set it for -a cases, clear it for -x args.
2207 (for_each_section_argument): Don't complain about a missing section by
2208 name if it's implicit.
2209
22102009-11-16 Roland McGrath <roland@redhat.com>
2211
2212 * readelf.c (print_string_section): Punt SHT_NOBITS like empty
2213 sections, just as dump_data_section already does.
2214
22152009-09-21 Ulrich Drepper <drepper@redhat.com>
2216
2217 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be
2218 set for .comment section.
2219 Patch by Mark Wielaard <mjw@redhat.com>.
2220
22212009-09-08 Roland McGrath <roland@redhat.com>
2222
2223 * ar.c (main): Fix typo in message format.
2224
22252009-08-21 Roland McGrath <roland@redhat.com>
2226
2227 * readelf.c (attr_callback): Use print_block only when we don't use
2228 print_ops.
2229
22302009-08-14 Roland McGrath <roland@redhat.com>
2231
2232 * ar.c (do_oper_extract): Use pathconf instead of statfs.
2233
22342009-08-01 Ulrich Drepper <drepper@redhat.com>
2235
2236 * debugpred.h: Add two most const.
2237
22382009-07-26 Mark Wielaard <mjw@redhat.com>
2239
2240 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
2241
22422009-07-25 Mark Wielaard <mjw@redhat.com>
2243
2244 * Makefile.am (addr2line_LDADD): Add $(libelf).
2245
22462009-07-24 Roland McGrath <roland@redhat.com>
2247
2248 * readelf.c (print_block): New function.
2249 (print_ops): Use it.
2250 (attr_callback): Use it for DW_FORM_block* forms.
2251
22522009-07-20 Mark Wielaard <mjw@redhat.com>
2253
2254 * readelf.c (print_ops): Add handling of DW_OP_implicit_value
2255 and DW_OP_stack_value.
2256
22572009-07-14 Ulrich Drepper <drepper@redhat.com>
2258
2259 * elflint.c (check_elf_header): Allow Linux ABI.
2260 (check_symtab): Handle STB_GNU_UNIQUE.
2261
22622009-07-08 Mark Wielaard <mjw@redhat.com>
2263
2264 * readelf.c (attr_callback): Handle DW_Form constants for
2265 DW_AT_data_member_location.
2266
22672009-07-06 Roland McGrath <roland@redhat.com>
2268
2269 * readelf.c (register_info): New function. Handle unknown register #s.
2270 (print_cfa_program): Use it.
2271 (handle_core_register, handle_core_registers): Likewise.
2272
22732009-06-28 Roland McGrath <roland@redhat.com>
2274
2275 * readelf.c (print_address_names): New static variable.
2276 (options, parse_opt): Grok -N/--numeric-addresses to clear it.
2277 (format_dwarf_addr): Don't look up name if !print_address_names.
2278
22792009-06-13 Ulrich Drepper <drepper@redhat.com>
2280
2281 * ldgeneric.c: Don't use deprecated libelf functions.
2282 * nm.c: Likewise.
2283 * objdump.c: Likewise.
2284 * readelf.c: Likewise.
2285 * size.c: Likewise.
2286 * strip.c: Likewise.
2287 * unstrip.c: Likewise.
2288 * ld.h: Fix up comment.
2289
22902009-06-01 Ulrich Drepper <drepper@redhat.com>
2291
2292 * readelf.c (print_relocs): Expect ELF header argument and pass on
2293 to handle_relocs_rel* functions. Adjust caller.
2294 (handle_relocs_rel): Add ELF header argument. Add special case for
2295 the IRELATIVE relocations in statically linked executables.
2296 (handle_relocs_rela): Likewise.
2297
22982009-04-29 Ulrich Drepper <drepper@redhat.com>
2299
2300 * elflint.c (check_symtab): Add tests of st_other field.
2301
23022009-04-23 Ulrich Drepper <drepper@redhat.com>
2303
2304 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
2305
23062009-04-20 Roland McGrath <roland@redhat.com>
2307
2308 * addr2line.c (print_dwarf_function): Honor -s and -A for file names
2309 of inline call sites.
2310
2311 * addr2line.c (just_section): New variable.
2312 (adjust_to_section): New function, broken out of ...
2313 (handle_address): ... here.
2314 (options, parse_opt): Add -j/--section=NAME to set it.
2315
23162009-04-15 Roland McGrath <roland@redhat.com>
2317
2318 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
2319 64-bit format header, DW_CIE_ID_32 in 32-bit format header.
2320
23212009-04-14 Roland McGrath <roland@redhat.com>
2322
2323 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
2324 like SHT_GNU_ATTRIBUTES.
2325
2326 * readelf.c (handle_core_registers): Fix error message.
2327
2328 * strip.c (handle_elf: check_preserved): Don't note any change when
2329 .debug_data is already filled from a previous pass.
2330
23312009-02-05 Ulrich Drepper <drepper@redhat.com>
2332
2333 * objdump.c (show_relocs_x): Minor cleanups.
2334
2335 * readelf.c (print_cfa_program): Correct a few labels.
2336 Print first DW_CFA_expression and DW_CFA_val_expression parameter
2337 as register.
2338
23392009-02-01 Ulrich Drepper <drepper@redhat.com>
2340
2341 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
2342 into ...
2343 (show_relocs_x): ...here. New function.
2344 (show_relocs): Better spacing in output.
2345
2346 * objdump.c (show_relocs_rela): Show offsets as signed values.
2347
2348 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
2349 Improve some error messages.
2350 Use program_invocation_short_name instead of AR macro.
2351 * Makefile.am (CFLAGS_ar): Remove.
2352 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
2353 * objdump.c (parse_opt): Likewise.
2354 * readelf.c (parse_opt): Likewise.
2355
23562009-01-27 Roland McGrath <roland@redhat.com>
2357
2358 * readelf.c (print_ops): Notice short length, don't overrun buffer
2359 (still need to fix LEB128).
2360
2361 * readelf.c (print_ops): Fix DW_OP_call[24] decoding.
2362
2363 * readelf.c (print_ops): Print (empty)\n when LEN == 0.
2364
23652009-01-24 Ulrich Drepper <drepper@redhat.com>
2366
2367 * readelf.c (print_debug_frame_section): Fix computation of vma_base
2368 for PC-relative mode.
2369
23702009-01-23 Ulrich Drepper <drepper@redhat.com>
2371
2372 * size.c (process_file): When handling archive, close file descriptor
2373 here. For unknown file format also close file descriptor.
2374 (handle_ar): Don't close file descriptor here.
2375
2376 * readelf.c (parse_opt): Move code to add to dump_data_sections and
2377 string_sections list in local function add_dump_section. Adjust 'x'
2378 key handling. For 'a' key add .strtab, .dynstr, and .comment section
2379 to string_sections list.
2380
23812009-01-22 Roland McGrath <roland@redhat.com>
2382
2383 * readelf.c (print_phdr): Don't print section mapping when no sections.
2384
2385 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
2386
2387 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
2388 and reset it only for the 'true' cases.
2389
2390 * Makefile.am (addr2line_no_Wformat): New variable.
2391
2392 * readelf.c (print_debug_frame_section): Use t instead of j formats
2393 for ptrdiff_t OFFSET.
2394
23952009-01-21 Ulrich Drepper <drepper@redhat.com>
2396
2397 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
2398 test. Handle debuginfo files.
2399 (check_exception_data): First sanity test.
2400
24012009-01-17 Ulrich Drepper <drepper@redhat.com>
2402
2403 * readelf.c (print_debug_exception_table): Show target of ar_disp
2404 field.
2405
2406 * elflint.c (check_program_header): Add most consistency checks for
2407 PT_GNU_EH_FRAME entry.
2408
2409 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
2410 ARGP_PROGRAM_BUG_ADDRESS_DEF.
2411 * ar.c: Likewise.
2412 * elfcmp.c: Likewise.
2413 * elflint.c: Likewise.
2414 * findtextrel.c: Likewise.
2415 * ld.c: Likewise.
2416 * nm.c: Likewise.
2417 * objdump.c: Likewise.
2418 * ranlib.c: Likewise.
2419 * readelf.c: Likewise.
2420
2421 * size.c: Likewise.
2422 * strings.c: Likewise.
2423 * strip.c: Likewise.
2424 * unstrip.c: Likewise.
2425
24262009-01-16 Ulrich Drepper <drepper@redhat.com>
2427
2428 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
2429 matches .eh_frame_hdr section, if it is available. Also check that
2430 the segment is allocated, not writable, not executable.
2431
2432 * readelf.c: Add -e option. Dump exception and unwind related
2433 sections. Add -e to -a.
2434 (print_encoding_base): Handle DW_EH_PE_omit.
2435 (print_debug_exception_table): Beginning of support.
2436 (print_debug): Hook up print_debug_exception_table for
2437 .gcc_except_table sections.
2438
2439 * readelf.c (print_debug_frame_section): Some fixes for last change.
2440
24412009-01-15 Ulrich Drepper <drepper@redhat.com>
2442
2443 * readelf.c (print_encoding): Now a toplevel function.
2444 (print_relinfo): Likewise.
2445 (print_encoding_base): Broken out of print_debug_frame_section.
2446 (print_debug_frame_section): Print different header for .eh_frame
2447 sections. Fix recognition of matching CIEs in .debug_frame sections.
2448 Print absolute offset for PC-relative FDE locations. Don't print
2449 table header for FDEs if the table is empty.
2450 (read_encoded): New function.
2451 (print_debug_frame_hdr_section): New function.
2452 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
2453 sections.
2454
2455 * readelf.c (handle_relocs_rel): Print section number.
2456 (print_debug_abbrev_section): Likewise.
2457 (print_debug_aranges_section): Likewise.
2458 (print_debug_ranges_section): Likewise.
2459 (print_debug_info_section): Likewise.
2460 (print_debug_line_section): Likewise.
2461 (print_debug_loc_section): Likewise.
2462 (print_debug_macinfo_section): Likewise.
2463 (print_debug_pubnames_section): Likewise.
2464 (print_debug_str_section): Likewise.
2465
24662009-01-10 Ulrich Drepper <drepper@redhat.com>
2467
2468 * strings.c (read_block): Fix typo in error message string.
2469
24702009-01-07 Ulrich Drepper <drepper@redhat.com>
2471
2472 * ld.c (ld_new_searchdir): Fix adding to search path list.
2473
24742009-01-06 Ulrich Drepper <drepper@redhat.com>
2475
2476 * readelf.c: Implement call frame debug section dumping.
2477
24782009-01-05 Roland McGrath <roland@redhat.com>
2479
2480 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
2481 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
2482
24832009-01-01 Ulrich Drepper <drepper@redhat.com>
2484
2485 * addr2line.c: Update copyright year.
2486 * ar.c: Likewise.
2487 * elfcmp.c: Likewise.
2488 * elflint.c: Likewise.
2489 * findtextrel.c: Likewise.
2490 * ld.c: Likewise.
2491 * nm.c: Likewise.
2492 * objdump.c: Likewise.
2493 * ranlib.c: Likewise.
2494 * readelf.c: Likewise.
2495 * size.c: Likewise.
2496 * strings.c: Likewise.
2497 * strip.c: Likewise.
2498 * unstrip.c: Likewise.
2499
25002008-12-11 Roland McGrath <roland@redhat.com>
2501
2502 * nm.c (sym_name): New function.
2503 (show_symbols_sysv): Use it in place of elf_strptr.
2504 (show_symbols_bsd, show_symbols_posix): Likewise.
2505 Fixes RHBZ#476136.
2506
2507 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
2508 elf_strptr fails.
2509
25102008-12-02 Roland McGrath <roland@redhat.com>
2511
2512 * readelf.c (count_dwflmod, process_file): Don't presume encoding of
2513 nonzero OFFSET argument to dwfl_getmodules.
2514
25152008-08-07 Roland McGrath <roland@redhat.com>
2516
2517 * addr2line.c (main): Pass string to handle_address.
2518 (see_one_module): New function, subroutine of handle_address.
2519 (find_symbol): Likewise.
2520 (handle_address): Take string argument rather than address.
2521 Convert plain number, or handle strings like "(section)+offset"
2522 or "symbol+offset".
2523
25242008-08-01 Roland McGrath <roland@redhat.com>
2525
2526 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
2527 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
2528
2529 * readelf.c (convert): Take new argument SIZE.
2530 (handle_core_register, handle_core_item): Update callers.
2531 (handle_core_item): Take new arg REPEATED_SIZE.
2532 (handle_core_items): Special case for a singleton item,
2533 let handle_core_item handle repeats if it wants to.
2534
2535 * readelf.c (handle_core_items): Give abridged output
2536 for identical groups repeated more than twice.
2537
25382008-07-04 Roland McGrath <roland@redhat.com>
2539
2540 * readelf.c (handle_core_items): Handle ELF_T_ADDR.
2541
25422008-04-10 Roland McGrath <roland@redhat.com>
2543
2544 * strip.c (handle_elf): Don't keep sections that kept symbol tables
2545 refer to. Instead, just be sure to preserve the original symbol
2546 table in the debug file so those symbols go with their sections and
2547 can be elided from the stripped version of the symbol table.
2548
2549 * strip.c (handle_elf): When a discarded section kept in the debug
2550 file refers to a nondiscard section via sh_link/sh_info, preserve
2551 that nondiscarded section unmodified in the debug file as well.
2552 Skip adjustment of discarded sections symbol table references when
2553 that symbol table is copied in this way.
2554
2555 * elflint.c (check_symtab): Don't crash from missing symbol names
2556 after diagnosing bogus strtab.
2557
2558 * strip.c (handle_elf): Cosmetic cleanup in special section contents
2559 adjustment for symtab changes.
2560
25612008-03-31 Roland McGrath <roland@redhat.com>
2562
2563 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
2564 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook
2565 excuse a special section.
2566
25672008-03-27 Roland McGrath <roland@redhat.com>
2568
2569 * elflint.c (check_sections): Check that executability and writability
2570 of sections is reflected in segment p_flags.
2571
25722008-03-26 Roland McGrath <roland@redhat.com>
2573
2574 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
2575 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
2576 is valid in RELRO.
2577
25782008-02-29 Roland McGrath <roland@redhat.com>
2579
2580 * readelf.c (print_attributes): Add a cast.
2581 * elflint.c (check_attributes): Likewise.
2582
2583 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
2584 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
2585 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
2586
25872008-02-03 Ulrich Drepper <drepper@redhat.com>
2588
2589 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
2590 when linked into executable.
2591 (elf_i386_create_relocations): Likewise.
2592
25932008-02-20 Roland McGrath <roland@redhat.com>
2594
2595 * readelf.c (print_attributes): New function.
2596 (process_elf_file): Call it under -A.
2597
2598 * elflint.c (check_attributes): Implement it for real.
2599
26002008-02-19 Roland McGrath <roland@redhat.com>
2601
2602 * elflint.c (special_sections): Handle .gnu.attributes section.
2603 (check_sections): Likewise.
2604 (check_attributes): New function.
2605
26062008-02-10 Roland McGrath <roland@redhat.com>
2607
2608 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
2609 sections and ET_REL files.
2610
26112008-02-02 Ulrich Drepper <drepper@redhat.com>
2612
2613 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
2614 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
2615 and R_386_TLS_LE.
2616 (elf_i386_create_relocations): Likewise.
2617 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
2618 elements.
2619 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
2620 (ld_generic_create_outfile): Add PT_TLS entry to program header.
2621 Fix generation of PT_GNU_STACK entry.
2622
26232008-02-01 Ulrich Drepper <drepper@redhat.com>
2624
2625 * ld.c (replace_args): Prevent loop over replacements if the parameter
2626 is only two characters long.
2627
2628 * ld.c: Recognize sha1 argument for --build-id parameter.
2629 * ldgeneric.c (create_build_id_section): Handle sha1.
2630 (compute_hash_sum): New function. Broken out of compute_build_id.
2631 Take hash function and context as parameters.
2632 (compute_build_id): Use compute_hash_sum for md5 and the new sha1
2633 implementation.
2634
26352008-01-31 Ulrich Drepper <drepper@redhat.com>
2636
2637 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
2638 * ld.c: Recognize --build-id command line parameter.
2639 * ld.h: Define scn_dot_note_gnu_build_id.
2640 (struct ld_state): Add build_id and buildidscnidx elements.
2641 * ldgeneric.c: Implement --build-id command line parameter.
2642 * ldlex.l (ID): Recognize - as valid character after the first one.
2643
26442008-01-29 Ulrich Drepper <drepper@redhat.com>
2645
2646 * ld.c (replace_args): New function.
2647 (main): Use it to rewrite old-style parameters.
2648
2649 * elf32-i386.script: Add .gnu.hash section.
2650 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
2651 (fillin_special_symbol): Initialize st_size.
2652 (sortfct_hashval): New function.
2653 (create_gnu_hash): New function.
2654 (create_hash): New function.
2655 (ld_generic_create_outfile): Use the new functions to create the
2656 hash tables.
2657
2658 * elflint.c (check_gnu_hash): Fix index value printed in error message.
2659
26602008-01-24 Ulrich Drepper <drepper@redhat.com>
2661
2662 * elflint.c (check_group): Check that signature symbol for section
2663 group is not an empty string.
2664 * ldgeneric.c: Remove magic assignment of indeces in the dynsym
2665 section. Start implementation of --hash-style.
2666 * i386_ld.c: Likewise.
2667 * ld.c: Recognize --hash-style.
2668 * ld.h (struct scninfo): Add comdat_group.
2669 Add additional parameter to finalize_plt callback.
2670
26712008-01-22 Ulrich Drepper <drepper@redhat.com>
2672
2673 * ld.h (struct callbacks): Add initialize_gotplt.
2674 (struct scnhead): Add scn_dot_gotplt.
2675 (struct ld_state): Add gotpltscnidx.
2676 * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
2677 (elf_i386_initialize_pltrel): Likewise.
2678 (elf_i386_initialize_got): There is now a separate .got.plt, so
2679 don't do the PLT-related work here. Initialize d_type.
2680 (elf_i386_initialize_gotplt): New function.
2681 (elf_i386_plt0): Use ud2a after indirect jump.
2682 (elf_i386_pic_plt0_entry): Likewise.
2683 (elf_i386_finalize_plt): Reference now .got.plt.
2684 (elf_i386_count_relocations): For GOT entries which need no relocation
2685 don't bump nrel_got.
2686 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32
2687 handling for split .got/.got.plt.
2688 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
2689 * elf32-i386.script: Sort sections for security. There are no .got
2690 input sections. Add .got.plt.
2691 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
2692 (ld_generic_create_outfile): Initialize .got.plt section.
2693 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
2694
26952008-01-19 Ulrich Drepper <drepper@redhat.com>
2696
2697 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
2698 symbols are not carried over into statically linked output files.
2699 Add dummy entries for more TLS relocations.
2700
2701 * ld.c (options): Add long names for -( and -).
2702
2703 * ldgeneric.c (check_definition): For newly found definitions don't
2704 mark section as used if symbol is absolute.
2705 (extract_from_archive): Only assign archive sequence number the first
2706 time the archive is handled. Update ld_state.last_archive_used
2707 if any symbol was used. Remove nround variable.
2708 (file_process2): When using symbol from an archive, update
2709 ld_state.group_start_archive, ld_state.archives, and
2710 ld_state.tailarchives.
2711 (ld_generic_file_process): If group is not handled anymore, after
2712 freeing ELF handles for the archives, clear ld_state.archives and
2713 *nextp. Fix wrong logic in recognizing first iteration of group
2714 loop. When clearing flags, also clear ld_state.group_start_archive.
2715
27162008-01-11 Ulrich Drepper <drepper@redhat.com>
2717
2718 * objdump.c (show_disasm): Adjust disassembler format string for
2719 removal of %e.
2720
27212008-01-04 Roland McGrath <roland@redhat.com>
2722
2723 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
2724 a size greater than the items cover means multiple sets of items.
2725 (handle_core_note): Update caller.
2726
27272008-01-04 Roland McGrath <roland@redhat.com>
2728
2729 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
2730
27312008-01-03 Roland McGrath <roland@redhat.com>
2732
2733 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
2734
2735 * elflint.c (check_dynamic): Remove duplicate initializer.
2736
27372008-01-02 Ulrich Drepper <drepper@redhat.com>
2738
2739 * addr2line.c: Update copyright year.
2740 * ar.c: Likewise.
2741 * elfcmp.c: Likewise.
2742 * elflint.c: Likewise.
2743 * findtextrel.c: Likewise.
2744 * ld.c: Likewise.
2745 * nm.c: Likewise.
2746 * objdump.c: Likewise.
2747 * ranlib.c: Likewise.
2748 * readelf.c: Likewise.
2749 * size.c: Likewise.
2750 * strings.c: Likewise.
2751 * strip.c: Likewise.
2752 * unstrip.c: Likewise.
2753
27542007-12-30 Ulrich Drepper <drepper@redhat.com>
2755
2756 * objdump (show_disasm): Use %e after third parameter.
2757
27582007-12-21 Ulrich Drepper <drepper@redhat.com>
2759
2760 * strip.c: Fix wrong parenthesis in a few branch predictions.
2761 * strings.c: Likewise.
2762
27632007-12-20 Ulrich Drepper <drepper@redhat.com>
2764
2765 * Makefile.am (DEFS): Add DEBUGPRED.
2766 * addr2line.c: Include debugpred.h.
2767 * ar.c: Likewise.
2768 * elfcmp.c: Likewise.
2769 * elflint.c: Likewise.
2770 * findtextrel.c: Likewise.
2771 * nm.c: Likewise.
2772 * objdump.c: Likewise.
2773 * ranlib.c: Likewise.
2774 * readelf.c: Likewise.
2775 * size.c: Likewise.
2776 * strings.c: Likewise.
2777 * strip.c: Likewise.
2778 * unstrip.c: Likewise.
2779 * debugpred.h: New file.
2780
2781 * readelf.c (handle_relocs_rel): Use elf_scnshndx.
2782 (handle_relocs_rela): Likewise.
2783
2784 * readelf.c: Add lots of likely/unlikely.
2785
2786 * elflint.c: Minor cleanups.
2787
27882007-11-19 Roland McGrath <roland@redhat.com>
2789
2790 * readelf.c (print_ops): Handle all bad op codes gracefully.
2791 Print their numbers instead of just ???.
2792
27932007-11-09 Roland McGrath <roland@redhat.com>
2794
2795 * readelf.c (attr_callback): Handle DW_AT_data_location.
2796 Handle block forms to mean a DWARF expression for DW_AT_allocated,
2797 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
2798 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
2799 DW_AT_upper_bound.
2800
28012007-10-20 Roland McGrath <roland@redhat.com>
2802
2803 * unstrip.c (options): Update -R description.
2804 (struct symbol): Put symbol details a union with a size_t pointer
2805 `duplicate'.
2806 (compare_symbols_output): Use null ->name as marker for discard
2807 symbols, not zero *->map.
2808 (copy_elided_sections): Record forwarding pointers for discarded
2809 duplicates and fill SYMNDX_MAP elements through them.
2810
2811 * readelf.c (process_file): Set offline_next_address to 0 at start.
2812 (struct process_dwflmod_args): New type.
2813 (process_dwflmod): Take args in it, pass fd to process_elf_file.
2814 (process_file): Update caller; dup FD for passing to libdwfl.
2815 (process_elf_file): Take new arg FD. For ET_REL file when
2816 displaying data affected by libdwfl relocation, open a new Elf handle.
2817
28182007-10-17 Roland McGrath <roland@redhat.com>
2819
2820 * readelf.c (print_debug_line_section): For invalid data inside a
2821 unit with plausible length, keep printing at the next unit boundary.
2822
2823 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
2824
28252007-10-16 Roland McGrath <roland@redhat.com>
2826
2827 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
2828
28292007-10-15 Roland McGrath <roland@redhat.com>
2830
2831 * make-debug-archive.in: New file.
2832 * Makefile.am (EXTRA_DIST): Add it.
2833 (make-debug-archive): New target.
2834 (bin_SCRIPTS, CLEANFILES): Add it.
2835
28362007-10-10 Roland McGrath <roland@redhat.com>
2837
2838 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
2839 Use it to check MERGE|STRINGS for .debug_str.
2840 (check_sections): Handle exact_or_gnuld.
2841
28422007-10-08 Roland McGrath <roland@redhat.com>
2843
2844 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
2845 64-bit struct timeval with 32-bit tv_usec.
2846
28472007-10-07 Roland McGrath <roland@redhat.com>
2848
2849 * readelf.c (check_archive_index): New function.
2850 (process_file): Call it. Change signature to take only fd and name.
2851 Use libdwfl to open the file, then iterate on its modules (multiple
2852 for an archive) to print file name and call process_elf_file.
2853 (main): Update caller. Let process_file do elf_begin.
2854 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
2855 (process_elf_file): Take only Dwfl_Module * argument.
2856 Don't print the file name here.
2857 (print_debug_*_section): Take Dwfl_Module * argument.
2858 (print_debug): Likewise. Update caller.
2859 (format_dwarf_addr): New function.
2860 (print_debug_ranges_section): Use it.
2861 (attr_callback): Likewise.
2862 (print_debug_line_section, print_debug_loc_section): Likewise.
2863
2864 * readelf.c (print_debug_ranges_section): Translate all strings.
2865 (print_debug_loc_section): Likewise.
2866
2867 * unstrip.c (copy_elided_sections): Initialize SEC.
2868
2869 * ar.c (do_oper_insert): Put trailing / on short names.
2870
2871 * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
2872
2873 * arlib2.c (arlib_add_long_name): Adjust for header size.
2874
2875 * arlib.c (arlib_finalize): Pad long name table to keep size even.
2876
2877 * ar.c (do_oper_insert): Use write_retry for padding write.
2878
2879 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
2880 Unconditionally set FOUND[CNT]->elf when setting ->mem.
2881 (remember_long_name): New function.
2882 (do_oper_insert): Call it. Correctly use length of basename,
2883 not original name. Don't store long name twice for new member.
2884
28852007-10-06 Roland McGrath <roland@redhat.com>
2886
2887 * elflint.c (check_note): Skip empty segment.
2888 (check_note_section): Skip empty section.
2889
2890 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
2891 (handle_output_dir_module, handle_implicit_modules): Pass it down.
2892 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
2893 (compare_alloc_sections): Take new arg REL, ignore address if true.
2894 (compare_sections): Likewise, pass it down.
2895 (compare_sections_rel, compare_sections_nonrel): New functions.
2896 (find_alloc_sections_prelink, copy_elided_sections): Use them
2897 instead of compare_sections.
2898 (sections_match): New function, broken out of ...
2899 (find_alloc_section): ... here.
2900 (copy_elided_sections): Reorganize section match-up logic.
2901 Use sections_match for SHF_ALLOC in ET_REL.
2902 For ET_REL, let the nonzero sh_addr from the debug file dominate.
2903
2904 * unstrip.c (add_new_section_symbols): Take new arg REL.
2905 When true, do not update section symbol values.
2906 (collect_symbols): Likewise. Update section symbols with address
2907 of chosen output section, not original section.
2908 (check_symtab_section_symbols, copy_elided_sections): Update callers.
2909
2910 * unstrip.c (compare_alloc_sections): At the same address, preserve
2911 original section order.
2912
2913 * elflint.c (special_sections): Don't require MERGE|STRINGS for
2914 .debug_str, it didn't always have them with older tools.
2915
2916 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
2917
29182007-10-05 Roland McGrath <roland@redhat.com>
2919
2920 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
2921 ET_REL file.
2922
2923 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
2924 SHN_UNDEF as "bad section". Use shndx value in messages.
2925
2926 * elflint.c (special_sections): Add ".debug_str". Decrement namelen
2927 for ".debug" so it matches as a prefix.
2928 (IS_KNOWN_SPECIAL): New macro.
2929 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS
2930 type even under -d, for a .debug* or .shstrtab section.
2931
2932 * readelf.c (print_ops): Use hex for address operand.
2933
29342007-10-04 Roland McGrath <roland@redhat.com>
2935
2936 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
2937 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for
2938 sections mapped to SHN_UNDEF.
2939
29402007-10-04 Ulrich Drepper <drepper@redhat.com>
2941
2942 * readelf.c (dump_archive_index): Avoid warning about uninitialized
2943 variable with older glibc versions.
2944 Add some branch prediction.
2945
29462007-10-04 Roland McGrath <roland@redhat.com>
2947
2948 * readelf.c (print_archive_index): New variable.
2949 (options, parse_opt): Accept -c/--archive-index to set it.
2950 (dump_archive_index): New function.
2951 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
2952 Call dump_archive_index on archives if set.
2953 (main): Update caller.
2954 (any_control_option): Give it file scope, moved out of ...
2955 (parse_opt): ... here.
2956
29572007-10-03 Roland McGrath <roland@redhat.com>
2958
2959 * unstrip.c (struct arg_info): Add `list' flag.
2960 (options, parse_opt): Grok -n/--list to set it.
2961 (list_module): New function.
2962 (handle_implicit_modules): Call it under -n.
2963
2964 * elflint.c (check_note_section): New function.
2965 (check_sections): Call it for SHT_NOTE.
2966
2967 * readelf.c (handle_notes): Use sections when available.
2968
2969 * elflint.c (check_note_data): New function, broken out of ...
2970 (check_note): ... here. Call it and elf_getdata_rawchunk.
2971
2972 * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
2973 Use elf_getdata_rawchunk and gelf_getauxv.
2974 (handle_notes_data): New function, broken out of ...
2975 (handle_notes): ... here. Call it and elf_getdata_rawchunk.
2976
29772007-10-01 Roland McGrath <roland@redhat.com>
2978
2979 * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
2980
2981 * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
2982
29832007-09-10 Roland McGrath <roland@redhat.com>
2984
2985 * readelf.c (options): Give -p optional argument, alias --string-dump.
2986 (string_sections, string_sections_tail): New static variables.
2987 (parse_opt): Set them when -p has an argument.
2988 (print_string_section): New function, broken out of ...
2989 (print_strings): ... here. Call it.
2990 (dump_data_section): New function, broken out of ...
2991 (dump_data): ... here. Call it.
2992 (for_each_section_argument): New function, broken out of ...
2993 (dump_data): ... here. Call it.
2994 (dump_strings): New function.
2995
29962007-08-31 Roland McGrath <roland@redhat.com>
2997
2998 * readelf.c (print_strings): Typo fix.
2999
30002007-08-23 Roland McGrath <roland@redhat.com>
3001
3002 * readelf.c (printf_with_wrap): Function removed.
3003 (REGISTER_WRAP_COLUMN): New macro.
3004 (handle_core_register): Use print_core_item instead.
3005 (struct register_info): New type.
3006 (compare_registers, compare_register_sets): New functions.
3007 (register_bitpos, compare_sets_by_info): New functions.
3008 (handle_core_registers): Use those to segregate and sort registers
3009 for display.
3010
3011 * readelf.c (ITEM_WRAP_COLUMN): New macro.
3012 (print_core_item): New function.
3013 (handle_core_item): Use it instead of printf_with_wrap.
3014 (compare_core_items, compare_core_item_groups): New functions.
3015 (handle_core_items): Use them. Sort by group and force line breaks
3016 between groups.
3017
3018 * readelf.c (handle_core_registers, handle_core_items): New functions,
3019 broken out of ...
3020 (handle_core_note): ... here. Call them.
3021
30222007-08-22 Roland McGrath <roland@redhat.com>
3023
3024 * unstrip.c (new_shstrtab): New function, broken out of ...
3025 (copy_elided_sections): ... here.
3026
30272007-08-20 Roland McGrath <roland@redhat.com>
3028
3029 Avoid local function trampolines in nm binary.
3030 * nm.c (sort_by_address): Move to a static function instead of local
3031 inside show_symbols.
3032 (sort_by_name_strtab): New static variable.
3033 (sort_by_name): Use it. Move to a static function instead of local
3034 inside show_symbols.
3035 (show_symbols): Set sort_by_name_strtab.
3036
30372007-08-19 Roland McGrath <roland@redhat.com>
3038
3039 * readelf.c (handle_auxv_note): New function.
3040 (handle_notes): Call it.
3041
3042 * readelf.c (printf_with_wrap, convert): New functions.
3043 (handle_core_item, (handle_core_register): New functions.
3044 (handle_notes): Call those with details from ebl_core_note.
3045
30462007-08-12 Roland McGrath <roland@redhat.com>
3047
3048 * elflint.c (check_note): Accept type 0 with name "Linux".
3049
3050 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
3051
3052 * elflint.c (section_flags_string): Return "none" for 0, not "".
3053
30542007-08-11 Roland McGrath <roland@redhat.com>
3055
3056 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
3057
30582007-08-04 Ulrich Drepper <drepper@redhat.com>
3059
3060 * readelf.c (hex_dump): Use isprint to determine whether to print
3061 character itself or full stop character.
3062 (dump_data): No need to check endp for NULL after strtol call.
3063
30642007-08-03 Roland McGrath <roland@redhat.com>
3065
3066 * readelf.c (print_string_sections): New variable.
3067 (options, parse_opt): Handle --strings/-p to set it.
3068 (print_strings): New function.
3069 (process_elf_file): Call it under -p.
3070
3071 * readelf.c (options): Add hidden aliases --segments, --sections,
3072 as taken by binutils readelf.
3073
30742007-08-01 Roland McGrath <roland@redhat.com>
3075
3076 * readelf.c (dump_data_sections, dump_data_sections_tail):
3077 New variables.
3078 (options, parse_opt): Handle --hex-dump/-x, set them.
3079 (hex_dump): New function.
3080 (dump_data): New function, call it.
3081 (process_elf_file): Call it.
3082
30832007-07-25 Roland McGrath <roland@redhat.com>
3084
3085 * addr2line.c (show_symbols): New variable.
3086 (print_addrsym): New function.
3087 (handle_address): Call it.
3088 (options, parse_opt): Handle -S/--symbols.
3089
30902007-06-05 Ulrich Drepper <drepper@redhat.com>
3091
3092 * addr2line.c: Update for latest autoconf header.
3093 * ar.c: Likewise.
3094 * elfcmp.c: Likewise.
3095 * elflint.c: Likewise.
3096 * findtextrel.c: Likewise.
3097 * ld.c: Likewise.
3098 * ldgeneric.c: Likewise.
3099 * nm.c: Likewise.
3100 * objdump.c: Likewise.
3101 * ranlib.c: Likewise.
3102 * readelf.c: Likewise.
3103 * size.c: Likewise.
3104 * strings.c: Likewise.
3105 * strip.c: Likewise.
3106 * unstrip.c: Likewise.
3107
31082007-05-18 Roland McGrath <roland@redhat.com>
3109
3110 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
3111 stripped file, so as not to duplicate a section copied in both.
3112
3113 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
3114
31152007-05-17 Roland McGrath <roland@redhat.com>
3116
3117 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
3118
3119 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
3120
3121 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
3122 call make_directories here.
3123 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
3124 (handle_dwfl_module): Likewise.
3125 (handle_implicit_modules): Update callers.
3126 (handle_output_dir_module): Likewise. Don't do make_directories here.
3127
3128 * unstrip.c (get_section_name): New function, broken out of ...
3129 (copy_elided_sections): here. Update callers.
3130 (find_alloc_section): Broken out of ...
3131 (copy_elided_sections): ... here. Update caller.
3132 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
3133 update STT_SECTION symbols' st_value fields as a side effect.
3134 (check_symtab_section_symbols): Update caller.
3135 (add_new_section_symbols): Set st_value in symbols added.
3136 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
3137 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
3138 from .bss to .dynbss.
3139 (find_alloc_sections_prelink): New function. Associate debug file
3140 allocated SHT_NOBITS shdrs with stripped moved by prelink via
3141 .gnu.prelink_undo information.
3142 (copy_elided_sections): Call it when we couldn't find every allocated
3143 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
3144 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
3145 (handle_file): Update callers.
3146
3147 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
3148 named ".comment".
3149
3150 * elflint.c (check_sections): Fix association of segments with
3151 sections when p_memsz > p_filesz.
3152
31532007-04-29 Roland McGrath <roland@redhat.com>
3154
3155 * addr2line.c (options, main): Tweak argp group settings to fix
3156 usage output.
3157
31582007-04-28 Roland McGrath <roland@redhat.com>
3159
3160 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
3161 sizes to match sections adjusted in the stripped file.
3162
31632007-04-24 Roland McGrath <roland@redhat.com>
3164
3165 * elfcmp.c (OPT_HASH_INEXACT): New macro.
3166 (hash_inexact): New variable.
3167 (options, parse_opt): Add --hash-inexact option to set it.
3168 (hash_content_equivalent): New function.
3169 (main): Call it for differing SHT_HASH sections under --hash-inexact.
3170
31712007-04-23 Roland McGrath <roland@redhat.com>
3172
3173 * unstrip.c: New file.
3174 * Makefile.am (bin_PROGRAMS): Add it.
3175 (unstrip_LDADD): New variable.
3176
3177 * strip.c (options): Allow --output for -o.
3178
31792007-02-15 Ulrich Drepper <drepper@redhat.com>
3180
3181 * readelf.c: Remove unused code. Add a few consts.
3182
31832007-02-15 Roland McGrath <roland@redhat.com>
3184
3185 * readelf.c (print_debug): Fix brainos in SHDR test.
3186
31872007-02-05 Roland McGrath <roland@redhat.com>
3188
3189 * ar.c: Include <limits.h>, since we use LONG_MAX.
3190
31912007-02-05 Ulrich Drepper <drepper@redhat.com>
3192
3193 * ar.c: Add ugly hack to work around gcc complaining that we
3194 ignore fchown's return value.
3195 (do_oper_insert): Handle error when writing padding.
3196 * ranlib.c: Add fchown complain work around.
3197
3198 * arlib.c: Make symtab a global variable. Change all users.
3199 * arlib2.c: Likewise.
3200 * ranlib.c: Likewise.
3201 * ar.c: Likewise.
3202 * arlib.h: Declare it.
3203
32042007-01-11 Roland McGrath <roland@redhat.com>
3205
3206 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
3207 SHF_MASKPROC bits separately from generic sh_flags validation.
3208
32092007-02-04 Ulrich Drepper <drepper@redhat.com>
3210
3211 * ar.c: New file.
3212 * arlib.c: New file.
3213 * arlib2.c: New file.
3214 * arlib.h: New file.
3215 * Makefile (noinst_LIBRARIES): Add libar.
3216 (libar_a_SOURCES): Define.
3217 (ar_LDADD): Define.
3218 (CFLAGS_ar): Define.
3219 * ranlib.c: Change to use arlib.
3220
3221 * elflint.c (check_symtab): Work around GNU ld bug which omits
3222 sections but not symbols in those sections.
3223
32242007-01-10 Ulrich Drepper <drepper@redhat.com>
3225
3226 * addr2line.c: Update copyright year.
3227 * elfcmp.c: Likewise.
3228 * elflint.c: Likewise.
3229 * findtextrel.c: Likewise.
3230 * ld.c: Likewise.
3231 * nm.c: Likewise.
3232 * objdump.c: Likewise.
3233 * ranlib.c: Likewise.
3234 * readelf.c: Likewise.
3235 * size.c: Likewise.
3236 * strings.c: Likewise.
3237 * strip.c: Likewise.
3238
32392006-12-09 Ulrich Drepper <drepper@redhat.com>
3240
3241 * elflint.c (compare_hash_gnu_hash): New function. Report if the
3242 two hash tables have different content (module expected omission
3243 of undefined symbols).
3244
32452006-10-31 Roland McGrath <roland@redhat.com>
3246
3247 * elflint.c (check_program_header): Don't complain about
3248 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
3249
32502006-09-19 Jakub Jelinek <jakub@redhat.com>
3251
3252 * strip.c (process_file): Disallow -f on archives.
3253
32542006-10-09 Roland McGrath <roland@redhat.com>
3255
3256 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
3257
32582006-08-29 Roland McGrath <roland@redhat.com>
3259
3260 * Makefile.am (MAINTAINERCLEANFILES): New variable.
3261
3262 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
3263 Reported by Christian Aichinger <Greek0@gmx.net>.
3264
3265 * elflint.c (valid_e_machine): Add EM_ALPHA.
3266 Reported by Christian Aichinger <Greek0@gmx.net>.
3267
32682006-08-08 Ulrich Drepper <drepper@redhat.com>
3269
3270 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
3271 Keep track of which "high DT" entries are present.
3272 Check that either old or GNU-style hash table is present.
3273 If GNU-style hash table is used a symbol table is mandatory.
3274 Check that if any prelink entry is present all of them are.
3275 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
3276 table if they don't refer to functions.
3277
32782006-07-17 Roland McGrath <roland@redhat.com>
3279
3280 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
3281 (add_version): Likewise for argument.
3282 (check_versym): Cast constant to GElf_Versym for comparison.
3283
32842006-07-12 Roland McGrath <roland@redhat.com>
3285
3286 * readelf.c (handle_gnu_hash): Add casts for machines where
3287 Elf32_Word != unsigned int.
3288
32892006-07-12 Ulrich Drepper <drepper@redhat.com>
3290
3291 * elflint.c (check_sysv_hash64): Fix printf format.
3292
32932006-07-11 Roland McGrath <roland@redhat.com>
3294
3295 * addr2line.c (options): English fix in -f doc string.
3296
3297 * addr2line.c (use_comp_dir): New variable.
3298 (options, parse_opt): Grok -A/--absolute to set it.
3299 (handle_address): If set, prepend dwfl_line_comp_dir results to
3300 relative file names.
3301
33022006-07-06 Ulrich Drepper <drepper@redhat.com>
3303
3304 * elflint.c: Adjust for latest new hash table format.
3305 * readelf.c: Likewise.
3306
3307 * elflint.c (check_versym): Ignore hidden bit when comparing version
3308 numbers.
3309
33102006-07-05 Ulrich Drepper <drepper@redhat.com>
3311
3312 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
3313 discarded COMDAT symbols.
3314
3315 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
3316 (elf_i386_create_relocations): Likewise.
3317 * ld.h (struct symbol): Add local and hidden bits.
3318 * ld.c (create_special_section_symbol): These synthsized symbols
3319 are local and hidden.
3320 * ldgeneric.c (file_process2): Check whether input file matches
3321 the emulation.
3322 (fillin_special_symbol): Create symbols as local and/or hidden
3323 if requested.
3324 (ld_generic_create_outfile): Make local copy of symbol.
3325 Don't hide global, defined symbols in dynamic symbol table unless
3326 requested. Synthetic symbols have no version information.
3327
3328 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
3329 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
3330
33312006-07-04 Ulrich Drepper <drepper@redhat.com>
3332
3333 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
3334 testing.
3335
33362006-07-03 Ulrich Drepper <drepper@redhat.com>
3337
3338 * elflint.c: Add testing of DT_GNU_HASH.
3339 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
3340
3341 * Makefile.am: Add hacks to create dependency files for non-generic
3342 linker.
3343
33442006-06-12 Ulrich Drepper <drepper@redhat.com>
3345
3346 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
3347 section if creating a DSO and no interpreter is given.
3348 (ld_generic_create_outfile): Don't store reference to symbols in
3349 discarded COMDAT groups. Don't create PHDR and INTERP program header
3350 for DSO if no interpreter is specified.
3351 (create_verneed_data): Pretty printing.
3352
3353 * ldscript.y (content): If a DSO is created don't set default
3354 interpreter from linker script.
3355
3356 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
3357 for symbols in discarded COMDAT groups.
3358 (elf_i386_create_relocations): Likewise.
3359 * ld.h (struct scninfo): Add unused_comdat.
3360 * ldgeneric.c (add_section): Also check group signature when
3361 matching COMDAT sections.
3362 (add_relocatable_file): Ignore symbols in COMDAT group which are
3363 discarded.
3364
3365 * elflint.c (check_one_reloc): For *_NONE relocs only check type
3366 and symbol reference.
3367
33682006-06-11 Ulrich Drepper <drepper@redhat.com>
3369
3370 * elflint.c (check_dynamic): Fix checking value of tags which are
3371 offsets in the string section. Make sure DT_STRTAB points to the
3372 section referenced in sh_link.
3373
3374 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
3375
3376 * ld.c: Recognize --eh-frame-hdr option.
3377 * ld.h (struct ld_state): Add eh_frame_hdr field.
3378 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
3379
3380 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
3381 SH_FLAGS_COMBINE.
3382 (add_relocatable_file): Minor optimization of last change.
3383 (match_section): Don't preserve SHF_GROUP flag any longer.
3384
33852006-06-10 Ulrich Drepper <drepper@redhat.com>
3386
3387 * ld.c (parse_z_option): Recognize execstack and noexecstack.
3388 Handle record and ignore as position dependent options.
3389 (parse_z_option_2): Handle ignore and record here.
3390 * ld.h (struct ld_state): Add execstack field.
3391 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
3392 sections.
3393 (ld_generic_create_outfile): Fix program header creation in native
3394 linker. Add PT_GNU_STACK program header.
3395
33962006-06-09 Ulrich Drepper <drepper@redhat.com>
3397
3398 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
3399 for PLT entries if there is no local definition.
3400
3401 * ld.c (parse_option): Handle -z ignore like --as-needed and
3402 -z record like --no-as-needed.
3403 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
3404 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
3405 looping over DSOs. When deciding about adding DT_NEEDED entries
3406 use ->as_needed instead of ignore_unused_dsos.
3407
34082006-05-31 Ulrich Drepper <drepper@redhat.com>
3409
3410 * ld.c: Recognize --as-needed and --no-as-needed options.
3411 * ld.h (struct usedfile): Add as_needed field.
3412 (struct ld_state): Likewise.
3413 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
3414 the list.
3415 * ldscript.y (filename_id_list): Split to correctly parse all
3416 combinations.
3417 (mark_as_needed): Fix loop.
3418
34192006-05-28 Ulrich Drepper <drepper@redhat.com>
3420
3421 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
3422 and colno.
3423
34242006-05-27 Ulrich Drepper <drepper@redhat.com>
3425
3426 * readelf.c (handle_relocs_rela): Better notations for addon value.
3427 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
3428
34292006-04-04 Ulrich Drepper <drepper@redhat.com>
3430
3431 * addr2line.c: Update copyright year.
3432 * elfcmp.c: Likewise.
3433 * elflint.c: Likewise.
3434 * findtextrel.c: Likewise.
3435 * ld.c: Likewise.
3436 * nm.c: Likewise.
3437 * objdump.c: Likewise.
3438 * ranlib.c: Likewise.
3439 * readelf.c: Likewise.
3440 * size.c: Likewise.
3441 * strings.c: Likewise.
3442 * strip.c: Likewise.
3443
34442006-03-09 Roland McGrath <roland@redhat.com>
3445
3446 * Makefile.am (AM_LDFLAGS): New variable.
3447
34482006-03-01 Roland McGrath <roland@redhat.com>
3449
3450 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
3451 for dwarf.h changes matching 3.0 spec.
3452 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
3453
34542005-12-04 Ulrich Drepper <drepper@redhat.com>
3455
3456 * elflint.c (check_one_reloc): If relocation section is not loaded,
3457 don't check whether the relocations modify read-only sections or
3458 loaded and unloaded sections.
3459
34602005-11-28 Ulrich Drepper <drepper@redhat.com>
3461
3462 * elflint.c (check_one_reloc): Take additional parameters. Use
3463 them to determine whether relocation is valid in this type of
3464 file. DSOs and executables can contain relocation sections in
3465 unloaded sections which just show the relocations the linker
3466 applied. Adjust all callers.
3467 (check_program_header): Check that PT_PHDR is loaded and that offset
3468 matches the one in the ELF header.
3469
34702005-10-26 Roland McGrath <roland@redhat.com>
3471
3472 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
3473
34742005-09-03 Ulrich Drepper <drepper@redhat.com>
3475
3476 * strip.c (handle_elf): Unify some error messages.
3477 * ld.c (main): Likewise.
3478 * ldgeneric.c (open_elf): Likewise.
3479 * elfcmp.c (main): Likewise.
3480 * elflint.c (check_elf_header): Likewise.
3481
3482 * size.c (process_file): Fix typo in error message.
3483
3484 * readelf.c: Lots of little cleanups. Use _unlocked functions.
3485
34862005-09-02 Ulrich Drepper <drepper@redhat.com>
3487
3488 * strings.c (main): Reset elfmap variable after munmap call.
3489 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
3490
34912005-08-28 Ulrich Drepper <drepper@redhat.com>
3492
3493 * ranlib.c: Don't define pread_retry and write_retry here.
3494
3495 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
3496 (CLEANFILES): Add *.gcno *.gcda *.gconv.
3497
3498 * strings.c (process_chunk): Reorder expressions in conditional
3499 (process_chunk_mb): Likewise.
3500
3501 * strings.c: New file.
3502 * Makefile.am (bin_PROGRAMS): Add strings.
3503 (strings_no_Wstring): Define.
3504 (strings_LDADD): Define.
3505
35062005-08-27 Roland McGrath <roland@redhat.com>
3507
3508 * addr2line.c (dwarf_diename_integrate): Function removed.
3509 (print_dwarf_function): Use plain dwarf_diename.
3510
35112005-08-24 Ulrich Drepper <drepper@redhat.com>
3512
3513 * elflint.c (check_versym): Versioned symbols should not have
3514 local binding.
3515
35162005-08-15 Ulrich Drepper <drepper@redhat.com>
3517
3518 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
3519 undefined.
3520
3521 * Makefile.am: Add rules to build ranlib.
3522 * ranlib.c: New file.
3523
35242005-08-14 Roland McGrath <roland@redhat.com>
3525
3526 * elflint.c (check_sections): Use ebl_section_type_name and allow any
3527 sh_type it recognizes.
3528
3529 * elflint.c (check_sections): Print unknown flags in hex, don't
3530 truncate high bits. Print section number and name for unknown type.
3531
35322005-08-13 Roland McGrath <roland@redhat.com>
3533
3534 * elflint.c (check_program_header): Use ebl_segment_type_name and
3535 allow any p_type it recognizes. Include p_type value in error
3536 message for unknown type.
3537
35382005-08-13 Ulrich Drepper <drepper@redhat.com>
3539
3540 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
3541 to ebl_check_special_symbol.
3542 (check_sections): Pass ehdr to ebl_bss_plt_p.
3543
35442005-08-12 Roland McGrath <roland@redhat.com>
3545
3546 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
3547 refers to the right section if it's not SHN_ABS.
3548 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
3549
3550 * elflint.c (check_sections): Don't complain about a non-NOBITS
3551 section taking no segment space, if it's sh_size is 0.
3552
3553 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
3554 be PROGBITS or NOBITS.
3555
3556 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
3557 standard st_value and st_size checks.
3558
35592005-07-28 Roland McGrath <roland@redhat.com>
3560
3561 * addr2line.c (options, parse_opt): Don't handle -e here.
3562 (executable): Variable removed.
3563 (argp_children): New static variable.
3564 (argp): Use it. Make const.
3565 (main): Fill in argp_children from dwfl_standard_argp ().
3566 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
3567 (print_dwarf_function): New function. Try to figure out inline chain.
3568 (elf_getname): Function removed, libdwfl does it for us.
3569 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
3570 Use dwfl_module_addrname instead of elf_getname.
3571 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
3572 * Makefile.am (INCLUDES): Add libdwfl directory to path.
3573
35742005-08-10 Ulrich Drepper <drepper@redhat.com>
3575
3576 * strip.c (parse_opt): STATE parameter is now used.
3577 Various little cleanups.
3578
3579 * readelf.c (print_debug_line_section): Correct fallout of renaming
3580 of DW_LNS_set_epilog_begin.
3581
35822005-08-08 Roland McGrath <roland@redhat.com>
3583
3584 * strip.c (options, parse_opt): Grok -R .comment for compatibility
3585 with binutils strip. Likewise -d, -S, as aliases for -g.
3586 Likewise ignore -s/--strip-all.
3587
35882005-08-07 Roland McGrath <roland@redhat.com>
3589
3590 * strip.c (process_file): Open read-only when using a different output
3591 file.
3592
35932005-08-06 Ulrich Drepper <drepper@redhat.com>
3594
3595 * elflint.c (in_nobits_scn): New function.
3596 (check_versym): Allow references for defined symbols against versions
3597 of other DSOs also for symbols in nobits sections.
3598 Move a few variables around.
3599
3600 * Makefile.am (AM_CFLAGS): Avoid duplication.
3601 Link with statis libs if BUILD_STATIC.
3602
36032005-08-05 Ulrich Drepper <drepper@redhat.com>
3604
3605 * elflint.c: Many, many more tests. Mostly related to symbol
3606 versioning. Those sections should now be completely checked.
3607
3608 * readelf.c (print_dynamic): Use gelf_offscn.
3609
36102005-08-04 Ulrich Drepper <drepper@redhat.com>
3611
3612 * elflint.c: Add lots more tests: more extension symbol table sanity,
3613 versioning section tests, hash table tests. General cleanup.
3614
36152005-08-02 Ulrich Drepper <drepper@redhat.com>
3616
3617 * objdump.c: New file.
3618 * Makefile.am (bin_PROGRAMS): Add objdump.
3619 (objdump_LDADD): Define.
3620
3621 * elflint.c (check_reloc_shdr): New function split out from check_rela
3622 and check_rel.
3623 (check_one_reloc): New function. Likewise.
3624 (check_rela): Use check_reloc_shdr and check_one_reloc.
3625 (check_rel): Likewise.
3626 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
3627 section.
3628 Add checks that relocations against read-only segments are flagged,
3629 that the text relocation flag is not set unnecessarily, and that
3630 relocations in one section are either against loaded or not-loaded
3631 segments.
3632
36332005-08-01 Ulrich Drepper <drepper@redhat.com>
3634
3635 * elfcmp.c (main): Ignore section count and section name string table
3636 section index.
3637
36382005-07-27 Roland McGrath <roland@redhat.com>
3639
3640 * elfcmp.c: Include <locale.h>.
3641
36422005-07-27 Ulrich Drepper <drepper@redhat.com>
3643
3644 * elfcmp.c: Print name and index of differing section.
3645
36462005-07-24 Ulrich Drepper <drepper@redhat.com>
3647
3648 * elfcmp.c: Implement comparing gaps between sections.
3649
36502005-07-23 Ulrich Drepper <drepper@redhat.com>
3651
3652 * elflint.c: Include libeblP.h instead of libebl.h.
3653 * nm.c: Likewise.
3654 * readelf.c: Likewise.
3655 * elfcmp.c: Likewise.
3656
3657 * elfcmp.c (main): Compare individual ELF header fields, excluding
3658 e_shoff instead of the whole struct at once.
3659 Use ebl_section_strip_p instead of SECTION_STRIP_P.
3660 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
3661
36622005-07-22 Ulrich Drepper <drepper@redhat.com>
3663
3664 * elfcmp.c (main): Take empty section into account when comparing
3665 section content.
3666
3667 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
3668 using it.
3669
36702005-07-21 Ulrich Drepper <drepper@redhat.com>
3671
3672 * elfcmp.c: New file.
3673 * Makefile.am (bin_PROGRAMS): Add elfcmp.
3674 (elfcmp_LDADD): Define.
3675
3676 * elflint.c (check_rela): Check that copy relocations only reference
3677 object symbols or symbols with unknown type.
3678 (check_rel): Likewise.
3679
36802005-06-08 Roland McGrath <roland@redhat.com>
3681
3682 * readelf.c (print_ops): Add consts.
3683
36842005-05-31 Roland McGrath <roland@redhat.com>
3685
3686 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
3687 abbreviations. Print a header line before each CU section.
3688
3689 * readelf.c (print_debug_loc_section): Fix indentation for larger
3690 address size.
3691
36922005-05-30 Roland McGrath <roland@redhat.com>
3693
3694 * readelf.c (print_debug_line_section): Print section offset of each
3695 CU's table, so they are easy to find from seeing the stmt_list value.
3696
3697 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
3698 (attr_callback): Grok DW_AT_ranges and print offset in hex.
3699
3700 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
3701 (print_debug_ranges_section, print_debug_loc_section): Likewise.
3702
3703 * readelf.c (print_ops): Take different args for indentation control.
3704 (attr_callback): Caller updated.
3705 Grok several more block-form attributes as being location expressions.
3706 For those same attributes with udata forms, format output differently
3707 for location list offset.
3708 (print_debug_loc_section): Implement it for real.
3709
3710 * readelf.c (options): Mention ranges for --debug-dump.
3711 (enum section_e): Add section_ranges.
3712 (parse_opt): Grok "ranges" for -w/--debug-dump.
3713 (print_debug_ranges_section): New function.
3714 (print_debug): Handle .debug_ranges section.
3715
37162005-05-30 Ulrich Drepper <drepper@redhat.com>
3717
3718 * readelf.c (handle_notes): At least x86-64 need not have the note
3719 section values aligned to 8 bytes.
3720
37212005-05-18 Ulrich Drepper <drepper@redhat.com>
3722
3723 * readelf.c (dwarf_tag_string): Add new tags.
3724
37252005-05-08 Roland McGrath <roland@redhat.com>
3726
3727 * strip.c (handle_elf): Don't translate hash and versym data formats,
3728 elf_getdata already did it for us.
3729
37302005-05-07 Ulrich Drepper <drepper@redhat.com>
3731
3732 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
3733 (addr2line_LDADD): Likewise.
3734
37352005-05-03 Roland McGrath <roland@redhat.com>
3736
3737 * strip.c (handle_elf): Apply symbol table fixups to discarded
3738 relocation sections when they are being saved in the debug file.
3739
3740 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
3741 and gelf_xlatetof, not the native byte order.
3742
3743 * strip.c (parse_opt): Give error if -f or -o is repeated.
3744 (main): Exit if argp_parse returns nonzero.
3745
3746 * strip.c (debug_fname_embed): New variable.
3747 (options, parse_opt): New option -F to set it.
3748
37492005-05-07 Ulrich Drepper <drepper@redhat.com>
3750
3751 * readelf.c (parse_opt): Make any_control_option variable
3752 local. Simplify some tests.
3753
37542005-05-03 Roland McGrath <roland@redhat.com>
3755
3756 * strip.c (crc32_file): Function removed (now in ../lib).
3757
37582005-05-03 Roland McGrath <roland@redhat.com>
3759
3760 * elflint.c (is_debuginfo): New variable.
3761 (options, parse_opt): New option --debuginfo/-d to set it.
3762 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
3763 (check_note): If is_debuginfo, don't try to get note contents.
3764
37652005-04-24 Ulrich Drepper <drepper@redhat.com>
3766
3767 * readelf.c (print_debug_abbrev_section): Don't print error when end of
3768 section reached.
3769
37702005-04-14 Ulrich Drepper <drepper@redhat.com>
3771
3772 * readelf.c (dwarf_encoding_string): New function.
3773 (dwarf_inline_string): New function.
3774 (dwarf_access_string): New function.
3775 (dwarf_visibility_string): New function.
3776 (dwarf_virtuality_string): New function.
3777 (dwarf_identifier_case_string): New function.
3778 (dwarf_calling_convention_string): New function.
3779 (dwarf_ordering_string): New function.
3780 (dwarf_discr_list_string): New function.
3781 (attr_callback): Decode man more attribute values.
3782
37832005-04-01 Ulrich Drepper <drepper@redhat.com>
3784
3785 * addr2line.c: Finish implementation of -f option.
3786
37872005-03-29 Ulrich Drepper <drepper@redhat.com>
3788
3789 * addr2line.c: New file.
3790 * Makefile.am (bin_PROGRAMS): Add addr2line.
3791 Define addr2line_LDADD.
3792
3793 * findtextrel.c: Use new dwarf_addrdie function.
3794
3795 * findtextrel.c: Fix usage message and re-add accidentally removed
3796 line.
3797
37982005-03-28 Ulrich Drepper <drepper@redhat.com>
3799
3800 * findtextrel.c: New file.
3801 * Makefile: Add rules to build findtextrel.
3802
38032005-02-15 Ulrich Drepper <drepper@redhat.com>
3804
3805 * ldlex.l: Provide ECHO definition to avoid warning.
3806
3807 * elflint.c (check_program_header): Fix typo in RELRO test.
3808
3809 * Makefile.am (AM_CFLAGS): Add more warning options.
3810 * elflint.c: Fix warnings introduced by the new warning options.
3811 * i386_ld.c: Likewise.
3812 * ld.c: Likewise.
3813 * ld.h: Likewise.
3814 * ldgeneric.c: Likewise.
3815 * nm.c: Likewise.
3816 * readelf.c: Likewise.
3817 * sectionhash.c: Likewise.
3818 * size.c: Likewise.
3819 * string.c: Likewise.
3820
38212005-02-05 Ulrich Drepper <drepper@redhat.com>
3822
3823 * Makefile.am: Check for text relocations in constructed DSOs.
3824
3825 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
3826 with -lmudflap.
3827
3828 * ldscript.y: Add as_needed handling.
3829 * ldlex.l: Recognize AS_NEEDED token.
3830 * ld.h (struct filename_list): Add as_needed flag.
3831
38322005-02-04 Ulrich Drepper <drepper@redhat.com>
3833
3834 * elflint.c (check_symtab): Correctly determine size of GOT section.
3835
38362005-01-19 Ulrich Drepper <drepper@redhat.com>
3837
3838 * ld.c: Remove unnecessary more_help function. Print bug report
3839 address using argp.
3840 * strip.c: Likewise.
3841 * size.c: Likewise.
3842 * nm.c: Likewise.
3843 * readelf.c: Likewise.
3844 * elflint.c: Likewise.
3845
3846 * elflint.c (main): Don't check for parameter problems here.
3847 (parse_opt): Do it here, where we get informed about some of them
3848 anyway.
3849
3850 * readelf.c (main): Don't check for parameter problems here.
3851 (parse_opt): Do it here, where we get informed about some of them
3852 anyway.
3853
38542005-01-11 Ulrich Drepper <drepper@redhat.com>
3855
3856 * strip.c: Update copyright year.
3857 * readelf.c: Likewise.
3858 * size.c: Likewise.
3859 * nm.c: Likewise.
3860 * ld.c: Likewise.
3861 * elflint.c: Likewise.
3862
3863 * elflint.c (check_symtab): Don't warn about wrong size for
3864 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
3865
38662004-10-05 Ulrich Drepper <drepper@redhat.com>
3867
3868 * readelf.c (print_phdr): In section mapping, also indicate
3869 sections in read-only segments.
3870
38712004-09-25 Ulrich Drepper <drepper@redhat.com>
3872
3873 * readelf.c: Make compile with gcc 4.0.
3874 * strip.c: Likewise.
3875
38762004-08-16 Ulrich Drepper <drepper@redhat.com>
3877
3878 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
3879 allocate to work around gcc 3.4 bug.
3880
38812004-01-25 Ulrich Drepper <drepper@redhat.com>
3882
3883 * ldlex.l (invalid_char): Better error message.
3884
38852004-01-23 Ulrich Drepper <drepper@redhat.com>
3886
3887 * readelf.c: Print SHT_GNU_LIBLIST sections.
3888
3889 * none_ld.c: New file.
3890
38912004-01-21 Ulrich Drepper <drepper@redhat.com>
3892
3893 * Makefile.am: Enable building of machine specific linker.
3894
38952004-01-20 Ulrich Drepper <drepper@redhat.com>
3896
3897 * Makefile.am: Support building with mudflap.
3898
3899 * i386_ld.c: Fix warnings gcc 3.4 spits out.
3900 * ldgeneric.c: Likewise.
3901 * ldscript.y: Likewise.
3902 * readelf.c: Likewise.
3903 * strip.c: Likewise.
3904
3905 * readelf.c (print_debug_line_section): Determine address size
3906 correctly.
3907
39082004-01-19 Ulrich Drepper <drepper@redhat.com>
3909
3910 * readelf.c (print_phdr): Show which sections are covered by the
3911 PT_GNU_RELRO entry.
3912
3913 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
3914
3915 * readelf.c (print_debug_macinfo_section): Implement.
3916
39172004-01-18 Ulrich Drepper <drepper@redhat.com>
3918
3919 * readelf.c (print_debug_line_section): Implement.
3920
39212004-01-17 Ulrich Drepper <drepper@redhat.com>
3922
3923 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
3924 * src/ld.c: Likewise.
3925 * src/nm.c: Likewise.
3926 * src/readelf.c: Likewise.
3927 * src/size.c: Likewise.
3928 * src/strip.c: Likewise.
3929
3930 * strip.c: Add a few more unlikely. Reduce scope of some variables.
3931
3932 * Makefile.am: Support building with mudflap.
3933
39342004-01-16 Ulrich Drepper <drepper@redhat.com>
3935
3936 * readelf.c (print_debug_info_section): Free dies memory.
3937
3938 * readelf.c: Print .debug_info section content.
3939
39402004-01-13 Ulrich Drepper <drepper@redhat.com>
3941
3942 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
3943
39442004-01-12 Ulrich Drepper <drepper@redhat.com>
3945
3946 * readelf.c (print_debug_aranges): Implement using libdw.
3947
39482004-01-11 Ulrich Drepper <drepper@redhat.com>
3949
3950 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
3951
3952 * readelf.c: Use libdw instead of libdwarf. Not all of the old
3953 behavior is available yet.
3954 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
3955
39562004-01-09 Ulrich Drepper <drepper@redhat.com>
3957
3958 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
3959
3960 * nm.c: Implement getting information about local variables.
3961
39622004-01-07 Ulrich Drepper <drepper@redhat.com>
3963
3964 * nm.c: Read also debug information for local symbols.
3965
39662004-01-05 Ulrich Drepper <drepper@redhat.com>
3967
3968 * nm.c: Shuffle dwarf handling code around so the maximum column
3969 width can be computed ahead of printing. Avoid collection symbols
3970 which are not printed anyway.
3971
3972 * nm.c: Rewrite dwarf handling to use libdw.
3973 * Makefile.am (AM_CFLAGS): Add -std parameter.
3974 (INCLUDES): Find header in libdw subdir.
3975 (nm_LDADD): Replace libdwarf with libdw.
3976
3977 * elflint.c: Update copyright year.
3978 * readelf.c: Likewise.
3979 * size.c: Likewise.
3980 * strip.c: Likewise.
3981 * nm.c: Likewise.
3982
39832003-12-31 Ulrich Drepper <drepper@redhat.com>
3984
3985 * strip.c (process_file): Close file before returning.
3986
39872003-11-19 Ulrich Drepper <drepper@redhat.com>
3988
3989 * readelf.c (handle_dynamic): Make column for tag name wider.
3990
39912003-09-29 Ulrich Drepper <drepper@redhat.com>
3992
3993 * readelf.c (handle_dynamic): Always terminate tag name with a space.
3994
39952003-09-25 Ulrich Drepper <drepper@redhat.com>
3996
3997 * strip.c (process_file): Don't mmap the input file, we modify the
3998 data structures and don't want the change end up on disk.
3999
40002003-09-23 Jakub Jelinek <jakub@redhat.com>
4001
4002 * unaligned.h (union u_2ubyte_unaligned,
4003 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
4004 packed attribute.
4005 (add_2ubyte_unaligned, add_4ubyte_unaligned,
4006 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
4007 Read/store value through _ptr->u instead of *_ptr.
4008
40092003-09-22 Ulrich Drepper <drepper@redhat.com>
4010
4011 * size.c (show_sysv): Change type of maxlen to int.
4012
4013 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
4014 buckets.
4015
4016 * i386_ld.c: Many many fixes and extensions.
4017 * ld.c: Likewise.
4018 * ldgeneric.c: Likewise.
4019
40202003-08-16 Ulrich Drepper <drepper@redhat.com>
4021
4022 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
4023 the reference is from another DSO.
4024
40252003-08-15 Ulrich Drepper <drepper@redhat.com>
4026
4027 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
4028 point is found when creating a DSO.
4029
40302003-08-14 Ulrich Drepper <drepper@redhat.com>
4031
4032 * ld.c (main): Always call FLAG_UNRESOLVED.
4033 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
4034 undefined symbols if not creating DSO or ld_state.nodefs is not set.
4035
40362003-08-13 Ulrich Drepper <drepper@redhat.com>
4037
4038 * Makefile.in: Depend on libebl.a, not libebl.so.
4039
4040 * ld.c (main): Mark stream for linker script as locked by caller.
4041 (read_version_script): Likewise.
4042 * ldlex.c: Define fread and fwrite to _unlocked variant.
4043
4044 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
4045 target_bswap_32.
4046 * unaligned.h: Define target_bswap_16, target_bswap_32, and
4047 target_bswap_64.
4048 (store_2ubyte_unaligned, store_4ubyte_unaligned,
4049 store_8ubyte_unaligned): Define using new macros.
4050
40512003-08-12 Ulrich Drepper <drepper@redhat.com>
4052
4053 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
4054 possibly unaligned memory. Support use of big endian machines.
4055
40562003-08-11 Ulrich Drepper <drepper@redhat.com>
4057
4058 * Moved to CVS archive.