12016-01-13  Mark Wielaard  <mjw@redhat.com>
2
3	* elflint.c (check_elf_header): Recognize ELFOSABI_FREEBSD.
4
52016-01-08  Mark Wielaard  <mjw@redhat.com>
6
7	* elfcompress.c (compress_section): Use %zu to print size_t.
8	* readelf.c (print_shdr): Use %zx to print size_t.
9
102015-12-16  Mark Wielaard  <mjw@redhat.com>
11
12	* elfcompress.c: New file.
13	* Makefile.am (bin_PROGRAMS): Add elfcompress.
14	(elfcompress_LDADD): New variable.
15
162015-12-18  Mark Wielaard  <mjw@redhat.com>
17
18	* elflint.c (section_flags_string): Add NEWFLAG COMPRESSED.
19	(check_sections): SHF_COMPRESSED can be on any special section.
20	SHF_COMPRESSED is a valid section flag. SHF_COMPRESSED cannot
21	be used together with SHF_ALLOC or with SHT_NOBITS. Should have
22	a valid Chdr.
23
242015-10-20  Mark Wielaard  <mjw@redhat.com>
25
26	* readelf.c (options): Expand -z help text.
27	(dump_data_section): Check whether we need and can decompress section
28	data and call elf_rawzdata if so,
29	(print_string_section): Likewise.
30	(elf_contains_chdrs): New function.
31	(process_elf_file): Rename print_unrelocated to print_unchanged,
32	use elf_contains_chdrs.
33	(print_scngrp): Check whether section is compressed before use.
34	(print_symtab): Likewise.
35	(handle_hash): Likewise.
36
372015-10-16  Mark Wielaard  <mjw@redhat.com>
38
39	* readelf.c (argp_option): Describe --decompress,-z.
40	(print_decompress): New bool.
41	(parse_opt): Handle -z.
42	(elf_ch_type_name): New function.
43	(print_shdr): Print section compress information.
44
452015-12-31  Mark Wielaard  <mjw@redhat.com>
46
47	* elflint.c (check_symtab): Add _edata and _end (plus extra underscore
48	variants) to to the list of possibly dangling symbols.
49
502015-12-02  Mark Wielaard  <mjw@redhat.com>
51
52	* nm.c (process_file): Accept fd and pass it on.
53	(handle_elf): Likewise.
54	(find_no_debuginfo): New.
55	(struct getdbg): Likewise.
56	(getdbg_dwflmod): Likewise.
57	(show_symbols): Take fd. If the file is ET_REL use libdwfl to get
58	the relocated Dwarf.
59
602015-12-02  Mark Wielaard  <mjw@redhat.com>
61
62	* nm.c (get_local_names): Check for duplicates in local_root tree.
63
642015-12-02  Mark Wielaard  <mjw@redhat.com>
65
66	* unstrip.c (struct data_list): New.
67	(new_data_list): Likewise.
68	(record_new_data): Likewise.
69	(free_new_data): Likewise.
70	(adjust_relocs): Call record_new_data.
71	(add_new_section_symbols): Likewise.
72	(copy_elided_sections): Call free_new_data.
73
742015-12-01  Mark Wielaard  <mjw@redhat.com>
75
76	* elfcmp.c (main): Close ebl1 and ebl2 backends.
77
782015-10-16  Mark Wielaard  <mjw@redhat.com>
79
80	* Makefile.am [BUILD_STATIC](libdw): Add -lz.
81	[BUILD_STATIC](libelf): Likewise.
82
832015-10-16  Mark Wielaard  <mjw@redhat.com>
84
85	* elflint.c (check_symtab): Don't check TLS symbol value against TLS
86	phdr offset in debuginfo files.
87	(check_sections): Don't try to match section offsets to phdrs offsets
88	in debuginfo files.
89
902015-10-16  Mark Wielaard  <mjw@redhat.com>
91
92	* elflint.c (check_reloc_shdr): Reject only desthdrs if they have both
93	SHF_MERGE and SHF_STRINGS set.
94
952015-10-13  Jose E. Marchesi  <jose.marchesi@oracle.com>
96
97	* elflint.c (check_sections): Do not rely on
98	ebl_check_special_section when checking debuginfo files.  Also
99	check that the type of WE sections in debuginfo files is NOBITS.
100
1012015-10-13  Mark Wielaard  <mjw@redhat.com>
102
103	* elflint.c (check_program_header): Check relro flags are a subset
104	of the load segment if they don't fully overlap.
105
1062015-10-07  Mark Wielaard  <mjw@redhat.com>
107
108	* Makefile.am (ldlex_no_Wstack_usage): New.
109	* ldlex.l ([RWX]): Make cnt unsigned.
110
1112015-10-09  Josh Stone  <jistone@redhat.com>
112
113	* elflint.c (main): Replace stat64 and fstat64 with stat and fstat.
114	* readelf.c (process_file): Likewise.
115	(process_elf_file): Replace off64_t with off_t.
116	* findtextrel.c (process_file): Replace open64 with open.
117	* ld.c (main): Replace sizeof (off64_t) with 8.
118	* strings.c: Replace off64_t with off_t throughout.
119	(main): Replace stat64 and fstat64 with stat and fstat.
120	(map_file): Replace mmap64 with mmap.
121	(read_block): Likewise, and replace lseek64 with lseek.
122	* strip.c (handle_elf): Replace ftruncate64 with ftruncate.
123	(process_file): Replace stat64 and fstat64 with stat and fstat.
124	* unstrip.c (parse_opt): Replace stat64 with stat.
125	(handle_file): Replace open64 with open.
126	(open_file): Likewise.
127
1282015-10-08  Chih-Hung Hsieh  <chh@google.com>
129
130	* ld.c (determine_output_format): Move recursive nested
131	function "try" to file scope.
132
1332015-10-04  Mark Wielaard  <mjw@redhat.com>
134
135	* strip.c (handle_elf): Only sanity check section symbols to not
136	kept discarded sections if we are creating a debug file.
137
1382015-10-07  Mark Wielaard  <mjw@redhat.com>
139
140	* unstrip.c (MAX): Removed.
141	(find_alloc_sections_prelink): Allocate exact amount of bytes for
142	shdrs.
143
1442015-10-05  Chih-Hung Hsieh <chh@google.com>
145
146	* unstrip.c (find_alloc_sections_prelink): Do not allocate
147	on stack union types with variable length arrays; use xmalloc
148	for such dynamic sized objects.
149	* readelf.c (handle_core_item): Likewise, but use alloca
150	for small variable size data object and add assert(count < 128).
151
1522015-10-05  Josh Stone  <jistone@redhat.com>
153
154	* Makefile.am (libld_elf_i386.so): Add AM_V_CCLD silencer.
155	(.deps/none_ld.Po): Always silence the dummy command.
156	(make-debug-archive): Add AM_V_GEN and AM_V_at silencers.
157
1582015-10-02  Mark Wielaard  <mjw@redhat.com>
159
160	* unstrip.c (copy_elided_sections): Use SH_INFO_LINK_P, not just
161	SHF_INFO_LINK.
162
1632015-10-02  Mark Wielaard  <mjw@redhat.com>
164
165	* strip.c (handle_elf): Don't move around allocated NOBITS sections.
166	Don't just mark the section header string table as unused.
167	* unstrip.c (copy_elided_sections): Add header names to strtab if
168	shstrndx equals the symtab strtabndx.
169
1702015-09-22  Mark Wielaard  <mjw@redhat.com>
171
172	* strip.c (cleanup_debug): Remove old-style function definitions.
173
1742015-09-09  Chih-Hung Hsieh  <chh@google.com>
175
176	* readelf.c (print_debug_exception_table): Initialize variable before
177	it is used, because compiler does not know that error never returns.
178	(dump_arhive_index): Likewise.
179
1802015-09-04  Chih-Hung Hsieh  <chh@google.com>
181
182	* elflint.c (check_group): Replace %Z length modifier with %z.
183	(check_note_data): Likewise.
184	* findtextrel.c (process_file): Likewise.
185	* readelf.c (handle_dynamic): Likewise.
186	(handle_symtab): Likewise.
187	(handle_verneed): Likewise.
188	(handle_verdef): Likewise.
189	(handle_versym): Likewise.
190	(print_hash_info): Likewise.
191	(print_decoded_aranges_section): Likewise.
192	(print_debug_aranges_section): Likewise.
193	(print_debug_line_section): Likewise.
194	(hex_dump): Likewise.
195	(dump_data_section): Likewise.
196	(print_string_section): Likewise.
197	(dump_archive_index): Likewise.
198	* unstrip.c (adjust_relocs): Likewise.
199	(collect_symbols): likewise.
200	(get_section_name): Likewise.
201	(find_alloc_sections_prelink): Likewise.
202	(copy_elided_sections): Likewise.
203	* ldscript.y (add_id_list): Add missing '%s'.
204
2052015-09-03  Mark Wielaard  <mjw@redhat.com>
206
207	* readelf.c (handle_core_item): Handle right shift >= 32 bits.
208
2092015-08-11  Mark Wielaard  <mjw@redhat.com>
210
211	* elflint.c (check_sections): When gnuld and a NOBITS section falls
212	inside a segment make sure any ELF file contents is zero.
213
2142015-07-29  Mark Wielaard  <mjw@redhat.com>
215
216	* unstrip.c (sections_flags_match): New function.
217	(sections_match): Use sections_flags_match.
218	(find_alloc_sections_prelink): Only clear matched sections if there
219	is an undo section.
220	(copy_elided_sections): Add SHF_INFO_LINK to shdr_mem.sh_flags if
221	necessary.
222
2232015-06-27  Pino Toscano  <toscano.pino@tiscali.it>
224
225	* src/strings.c: Define MAP_POPULATE if not defined already.
226
2272015-06-27  Mark Wielaard  <mjw@redhat.com>
228
229	* nm.c (show_symbols): First call elf_getdata, then allocate memory.
230
2312015-06-18  Mark Wielaard  <mjw@redhat.com>
232
233	* findtextrel.c (process_file): Free segments after use.
234
2352015-06-18  Mark Wielaard  <mjw@redhat.com>
236
237	* readelf.c (print_phdr): Make sure phdr2_mem lifetime/scope equals
238	phdr2 pointer.
239
2402015-06-18  Mark Wielaard  <mjw@redhat.com>
241
242	* readelf.c (handle_gnu_hash): Free lengths on invalid_data.
243
2442015-06-18  Mark Wielaard  <mjw@redhat.com>
245
246	* elflint.c (check_symtab): Only check the PT_TLS phdr if it actually
247	exists. Warn otherwise.
248
2492015-06-18  Mark Wielaard  <mjw@redhat.com>
250
251	* nm.c (show_symbols): Check sizeof (sym_mem[0]), not GElf_Sym to
252	known whether or not we stack allocated memory.
253
2542015-06-18  Mark Wielaard  <mjw@redhat.com>
255
256	* strings.c (readelf): Use "<unknown>" if we cannot retrieve section
257	name.
258
2592015-06-09  Mark Wielaard  <mjw@redhat.com>
260
261	* addr2line.c (print_dwarf_function): Always free scopes before
262	returning.
263
2642015-06-09  Mark Wielaard  <mjw@redhat.com>
265
266	* strip.c (handle_ar): Mark as unused.
267	(process_file): Produce an error when trying to handle an ar.
268
2692015-05-30  Mark Wielaard  <mjw@redhat.com>
270
271	* elfcmp.c (main): Only call memcmp when d_size != 0.
272
2732015-05-23  Mark Wielaard  <mjw@redhat.com>
274
275	* Makefile.am: Define ldgeneric, readelf, nm, size, strip, elflint,
276	findtextrel, elfcmp objdump, ranlib, ar and unstrip no_Wstack_usage.
277
2782015-05-21  Mark Wielaard  <mjw@redhat.com>
279
280	* addr2line.c (handle_address): Set scopes to NULL after free.
281
2822015-05-20  Mark Wielaard  <mjw@redhat.com>
283
284	* addr2line.c (OPT_PRETTY): New constant define.
285	(argp_option): Add "pretty-print".
286	(pretty): New static bool.
287	(parse_opt): Set pretty.
288	(print_dwarf_function): Adjust output when pretty is set.
289	(print_addrsym): Likewise.
290	(handle_address): Likewise.
291
2922015-05-20  Mark Wielaard  <mjw@redhat.com>
293
294	* Makefile.am (addr2line_LDADD): Add demanglelib.
295	* addr2line.c (argp_option): Move demangle under output format.
296	(demangle): New static bool.
297	(demangle_buffer_len): New static size_t.
298	(demangle_buffer): New static char *.
299	(main): free demangle_buffer.
300	(parse_opt): Set demangle.
301	(symname): New static function.
302	(get_diename): Use symname.
303	(print_dwarf_function): Likewise.
304	(print_addrsym): Likewise.
305	(handle_address): Likewise.
306
3072015-05-20  Mark Wielaard  <mjw@redhat.com>
308
309	* addr2line.c (argp_option): Add "addresses", 'a'.
310	(print_addresses): New static bool.
311	(parse_opt): Set print_addresses.
312	(get_addr_width): New static function.
313	(handle_address): Print address if print_addresses is true.
314
3152015-05-20  Mark Wielaard  <mjw@redhat.com>
316
317	* addr2line.c (handle_address): Call strtoumax with base 16. Make
318	sure all input has been processed.
319
3202015-05-20  Mark Wielaard  <mjw@redhat.com>
321
322	* addr2line (argp_option): Group 'section' under "Input format
323	options".
324
3252015-05-12  Mark Wielaard  <mjw@redhat.com>
326
327	* strip.c (debug_fd): New static variable.
328	(tmp_debug_fname): Likewise.
329	(cleanup_debug): New function using the above to clean up temporary
330	debug file.
331	(INTERNAL_ERROR): Call cleanup_debug.
332	(handle_elf): Use debug_fd and tmp_debug_fname statics and call
333	cleanup_debug before any error. Use output_fname instead of fname in
334	error messages when it exists (-o was given). SHT_NOBITS sections
335	can also be moved freely even if SHF_ALLOC is set. Add various
336	sanity checks. Use elf_assert instead of plain assert.
337
3382015-05-08  Mark Wielaard  <mjw@redhat.com>
339
340	* nm.c (show_symbols): Call gelf_fsize with EV_CURRENT.
341	* strip.c (handle_elf): Likewise.
342
3432015-05-06  Mark Wielaard  <mjw@redhat.com>
344
345	* elflint.c (check_gnu_hash): Return early when 2nd hash function
346	shift too big. Check there is enough data available. Make sure
347	bitmask_words is not zero.
348	(check_verdef): Use Elf64_Word for shdr->sh_info cnt.
349	(check_verneed): Likewise.
350	(check_attributes): Break when vendor name isn't terminated.
351	Add overflow check for subsection_len.
352
3532015-05-05  Mark Wielaard  <mjw@redhat.com>
354
355	* nm.c (show_symbols): Handle dwarf_linesrc returning NULL.
356
3572015-05-04  Max Filippov  <jcmvbkbc@gmail.com>
358
359	* ar.c (do_oper_extract): Replace struct timeval with struct timespec
360	and futimes with futimens.
361	* strip.c (process_file): Replace struct timeval with struct timespec.
362	(handle_elf, handle_ar): Replace struct timeval with struct timespec
363	in prototype. Replace futimes with futimens.
364
3652015-05-04  Max Filippov  <jcmvbkbc@gmail.com>
366
367	* addr2line.c (main): Drop mtrace() call and #include <mcheck.h>.
368	* ar.c: Likewise.
369	* ld.c: Likewise.
370	* nm.c: Likewise.
371	* objdump.c: Likewise.
372	* ranlib.c: Likewise.
373	* size.c: Likewise.
374	* strip.c: Likewise.
375	* unstrip.c: Likewise.
376
3772015-05-04  Anthony G. Basile  <blueness@gentoo.org>
378
379	* Makefile.am (readelf_LDADD, nm_LDADD, size_LDADD, strip_LDADD)
380	(ld_LDADD, elflint_LDADD, findtextrel_LDADD, addr2line_LDADD)
381	(elfcmp_LDADD, objdump_LDADD, ranlib_LDADD, strings_LDADD)
382	(ar_LDADD, unstrip_LDADD, stack_LDADD): Append $(argp_LDADD).
383
3842015-03-22  Mark Wielaard  <mjw@redhat.com>
385
386	* readelf.c (print_debug_frame_section): Cast start to Dwarf_Off
387	before subtracting cie_id. And cast cie_offset to Dwarf_Off before
388	comparison.
389
3902015-03-22  Mark Wielaard  <mjw@redhat.com>
391
392	* readelf.c (print_gdb_index_section): Check all offsets used
393	against section d_size.
394
3952015-03-17  Mark Wielaard  <mjw@redhat.com>
396
397	* readelf.c (print_debug): Don't return, but always use dummy_dbg.
398
3992015-03-17  Mark Wielaard  <mjw@redhat.com>
400
401	* readelf.c (print_gdb_index_section): Add overflow checking for
402	dataend checks.
403
4042015-03-14  Mark Wielaard  <mjw@redhat.com>
405
406	* nm.c (INTERNAL_ERROR): Remove __DATE__.
407	* objdump.c (INTERNAL_ERROR): Likewise.
408	* size.c (INTERNAL_ERROR): Likewise.
409	* strip.c (INTERNAL_ERROR): Likewise.
410
4112015-03-18  Petr Machata  <pmachata@redhat.com>
412
413	* readelf.c (dwarf_tag_string, dwarf_attr_string)
414	(dwarf_form_string, dwarf_lang_string, dwarf_inline_string)
415	(dwarf_encoding_string, dwarf_access_string)
416	(dwarf_visibility_string, dwarf_virtuality_string)
417	(dwarf_identifier_case_string, dwarf_calling_convention_string)
418	(dwarf_ordering_string, dwarf_discr_list_string)
419	(dwarf_locexpr_opcode_string): Adjust uses of know-dwarf.h macros
420	to match the API changes.
421
4222015-03-09  Mark Wielaard  <mjw@redhat.com>
423
424	* elflint.c (compare_hash_gnu_hash): Correct gnu_symbias usage.
425
4262015-01-03  Mark Wielaard  <mjw@redhat.com>
427
428	* elfcmp (main): Check section name is not NULL. Check sh_entsize
429	is not zero for symbol tables. Check phdrs are not NULL.
430	(search_for_copy_reloc): Check sh_entsize is not zero.
431
4322014-12-30  Mark Wielaard  <mjw@redhat.com>
433
434	* elflint.c (check_scn_group): Check d_buf and name are not NULL.
435	(is_rel_dyn): Check d is not NULL. Check shdr->sh_entsize is not
436	zero.
437	(check_dynamic): Check strshdr is not NULL. Check d_tag is positive.
438	(check_symtab_shndx): Check symshdr and data->d_buf are not NULL.
439	Check shdr and symshdr sh_entsize are not zero.
440	(check_gnu_hash): Make sure maskidx is smaller than bitmask_words.
441	Check symshdr->sh_entsize is not zero. Check data->d_buf is not
442	NULL.
443	(compare_hash_gnu_hash): Check sections d_buf are not NULL.
444	Check section data is large enough. Use gnu_symbias.
445	(check_group): Check section val is valid.
446	(has_copy_reloc): Check sh_entsize is not zero.
447	(check_versym): Likewise.
448	(unknown_dependency_p): Likewise.
449	(check_verneed): Break on invalid ref or offset. Don't assert.
450	Report error when next offset is zero, but more vers expected.
451	(check_verdef): Likewise.
452	(check_attributes): Make sure d_buf is not NULL.
453	(check_note): Likewise.
454	(check_note_section): Likewise.
455	(check_program_header): Make sure section name is not NULL.
456
4572014-12-26  Mark Wielaard  <mjw@redhat.com>
458
459	* strings.c (read_elf): Produce error when section data falls outside
460	file.
461
4622014-12-26  Mark Wielaard  <mjw@redhat.com>
463
464	* nm.c (show_symbols): Guard against divide by zero in error check.
465	Add section index number in error message.
466
4672014-12-26  Mark Wielaard  <mjw@redhat.com>
468
469	* nm.c (handle_ar): Skip over /SYM64/ entries.
470
4712014-12-26  Mark Wielaard  <mjw@redhat.com>
472
473	* nm.c (handle_ar): Break on arsym with invalid offset.
474
4752014-12-20  Mark Wielaard  <mjw@redhat.com>
476
477	* readelf.c (print_debug_macinfo_section): Mark cus sentinel files
478	as -1 non-existent. Check macoff against sentinel cus.
479
4802014-12-20  Mark Wielaard  <mjw@redhat.com>
481
482	* readelf.c (print_debug_exception_table): Add max_action overflow
483	check. Check action_table_end before reading slib128. Check
484	max_ar_filter underflow.
485
4862014-12-18  Ulrich Drepper  <drepper@gmail.com>
487
488	* Makefile.am: Suppress output of textrel_check command.
489
4902014-12-17  Mark Wielaard  <mjw@redhat.com>
491
492	* readelf.c (print_cfa_program): Add bounds check before each op that
493	takes at least one argument.
494
4952014-12-16  Mark Wielaard  <mjw@redhat.com>
496
497	* readelf.c (print_decoded_line_section): Print dwarf_errmsg if
498	dwarf_onesrcline or dwarf_linesrc fails.
499
5002014-12-16  Mark Wielaard  <mjw@redhat.com>
501
502	* readelf.c (print_debug_line_section): Correct overflow check for
503	unit_length.
504	(print_debug_aranges_section): Correct overflow check for length.
505
5062014-12-15  Mark Wielaard  <mjw@redhat.com>
507
508	* readelf.c (notice_listptr): Return false if offset doesn't fit
509	in 61-bits.
510	(attr_callback): Warn if loclist or rangelist offset doesn't fit.
511
5122014-12-15  Mark Wielaard  <mjw@redhat.com>
513
514	* readelf.c (print_ops): Don't assert when addr_size or ref_size
515	is not 4 or 8, just report invalid data.
516
5172014-12-15  Mark Wielaard  <mjw@redhat.com>
518
519	* readelf.c (print_gdb_index_section): Add more bounds checks.
520
5212014-12-15  Mark Wielaard  <mjw@redhat.com>
522
523	* readelf.c (print_debug_line_section): Check there is enough room
524	for DW_LNE_set_address argument. Make sure there is enough room
525	for the the initial unit_length.
526
5272014-12-14  Mark Wielaard  <mjw@redhat.com>
528
529	* elflint.c (check_attributes): Call get_uleb128 with end pointer.
530	* readelf.c (print_attributes): Likewise.
531	(print_ops): Likewise and also for get_sleb128.
532	(print_cfa_program): Likewise and add more readp bounds checks.
533	(read_encoded): Likewise.
534	(print_debug_frame_section): Likewise.
535	(print_debug_line_section): Likewise.
536	(print_debug_macinfo_section): Likewise.
537	(print_debug_macro_section): Likewise.
538	(print_debug_exception_table): Likewise.
539
5402014-12-16  Mark Wielaard  <mjw@redhat.com>
541
542	* elfcmp.c (compare_Elf32_Word): Make sure (unsigned) Elf32_Word
543	difference doesn't wrap around before returning as int.
544
5452014-12-11  Mark Wielaard  <mjw@redhat.com>
546
547	* readelf.c (print_debug_exception_table): Check TType base offset
548	and Action table are sane.
549
5502014-12-11  Mark Wielaard  <mjw@redhat.com>
551
552	* readelf.c (print_debug_frame_section): Check number of augmentation
553	chars to print.
554
5552014-12-09  Mark Wielaard  <mjw@redhat.com>
556
557	* readelf.c (handle_file_note): Check count fits data section and
558	doesn't overflow fptr.
559
5602014-12-08  Mark Wielaard  <mjw@redhat.com>
561
562	* readelf.c (print_debug_exception_table): Report invalid data if
563	action table doesn't immediately follow call site table.
564
5652014-12-10  Josh Stone  <jistone@redhat.com>
566
567	* addr2line.c (get_diename): New, get linkage_name or name.
568	* addr2line.c (print_dwarf_function): Use get_diename.
569	* addr2line.c (handle_address): Likewise.
570	* addr2line.c (print_diesym): Removed.
571
5722014-12-10  Josh Stone  <jistone@redhat.com>
573
574	* addr2line.c (handle_address): Find the proper inline parents.
575
5762014-12-07  Mark Wielaard  <mjw@redhat.com>
577
578	* readelf.c (print_debug_line_section): max_ops_per_instr cannot
579	be zero.
580
5812014-12-07  Mark Wielaard  <mjw@redhat.com>
582
583	* readelf.c (print_ops): Handle zero ref_size for DW_OP_call_ref
584	and DW_OP_GNU_implicit_pointer.
585
5862014-12-04  Mark Wielaard  <mjw@redhat.com>
587
588	* objdump.c (show_relocs_x): Make sure destshdr exists.
589	(show_relocs_rel): Don't rely on shdr->sh_entsize, use gelf_fsize.
590	(show_relocs_rela): Likewise.
591	(show_relocs): Make sure destshdr, symshdr and symdata exists.
592
5932014-11-30  Mark Wielaard  <mjw@redhat.com>
594
595	* readelf.c (handle_sysv_hash64): Fix overflow check.
596
5972014-11-28  Mark Wielaard  <mjw@redhat.com>
598
599	* readelf.c (handle_relocs_rel): Don't reuse destshdr to store
600	section header of a relocation against a STT_SECTION symbol. Use
601	a new local variable secshdr.
602	(handle_relocs_rela): Likewise.
603
6042014-11-26  Mark Wielaard  <mjw@redhat.com>
605
606	* readelf.c (print_debug_aranges_section): Cast Dwarf_Word length
607	to ptrdiff_t for comparison.
608
6092014-11-24  Mark Wielaard  <mjw@redhat.com>
610
611	* readelf.c (print_debug_line_section): Check line_range is not zero
612	before usage.
613
6142014-11-23  Mark Wielaard  <mjw@redhat.com>
615
616	* readelf.c (print_debug_aranges_section): Check length to catch
617	nexthdr overflow.
618
6192014-11-21  Mark Wielaard  <mjw@redhat.com>
620
621	* readelf.c (print_attributes): Guard against empty section.
622	Document attribute format. Break when vendor name isn't terminated.
623	Add overflow check for subsection_len. Handle both gnu and non-gnu
624	attribute tags.
625
6262014-11-22  Mark Wielaard  <mjw@redhat.com>
627
628	* elflint.c (check_sections): Call ebl_bss_plt_p without ehdr.
629	* findtextrel.c (process_file): Use elf_getphdrnum.
630	* readelf.c (process_elf_file): Remove redundant ehdr->e_phoff check.
631	(print_phdr): Check phnum.
632	* size.c (show_segments): Use elf_getphdrnum.
633	* strip.c (handle_elf): Likewise.
634	* unstrip.c (copy_elf): Likewise.
635	(copy_elided_sections): Likewise.
636	(handle_file): Likewise.
637
6382014-11-18  Mark Wielaard  <mjw@redhat.com>
639
640	* readelf.c (print_cfa_program): Fix sanity check of DW_FORM_block
641	length.
642
6432014-11-17  Mark Wielaard  <mjw@redhat.com>
644
645	* readelf.c (handle_verneed): Check vna_next and vn_next exist.
646	(handle_verdef): Check vda_next and vd_next exist.
647	(handle_versym): Check vd_next, vna_next and vn_next exist.
648	Check vername and filename are not NULL before use.
649
6502014-11-17  Mark Wielaard  <mjw@redhat.com>
651
652	* elfcmp.c (main): Check section names are NULL before use.
653	* objdump.c (section_match): Likewise.
654	* size.c (show_sysv): Likewise.
655
6562014-11-17  Mark Wielaard  <mjw@redhat.com>
657
658	* readelf.c (print_debug_frame_section): Warn if ptr_size is not 4
659	or 8 instead of just calling print_cfa_program.
660
6612014-11-16  Mark Wielaard  <mjw@redhat.com>
662
663	* readelf (process_elf_file): Set phnum to zero if there aren't
664	actually any pheaders.
665	(print_phdr): Check there actually is a phdr.
666
6672014-11-16  Mark Wielaard  <mjw@redhat.com>
668
669	* readelf.c (print_cfa_program): Check block len before calling
670	print_ops.
671
6722014-11-14  Mark Wielaard  <mjw@redhat.com>
673
674	* readelf.c (print_debug_frame_section): Sanity Check CIE
675	unit_length and augmentationlen.
676
6772014-11-14  Mark Wielaard  <mjw@redhat.com>
678
679	* readelf.c (handle_versym): Check def == NULL before use.
680
6812014-11-08  Mark Wielaard  <mjw@redhat.com>
682
683	* readelf.c (handle_versym): Initialize vername and filename array
684	elements.
685
6862014-11-07  Mark Wielaard  <mjw@redhat.com>
687
688	* readelf.c (handle_sysv_hash): Sanity check section contents.
689	(handle_sysv_hash64): Likewise.
690	(handle_gnu_hash): Likewise.
691
6922014-09-14  Petr Machata  <pmachata@redhat.com>
693
694	* readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly.
695
6962014-09-12  Petr Machata  <pmachata@redhat.com>
697
698	* readelf.c (encoded_ptr_size): In the switch statement, change
699	magic constants 3 and 4 to DW_EH_PE_* counterparts.  Still accept
700	0.  Print diagnostic for anything else.
701
7022014-08-25  Josh Stone  <jistone@redhat.com>
703
704	* Makefile.am: Prevent premature @AR@ replacement in a sed expression.
705
7062014-07-04  Menanteau Guy  <menantea@linux.vnet.ibm.com>
707	    Mark Wielaard  <mjw@redhat.com>
708
709	* elflint (check_symtab): Add ".TOC." to the list of possibly
710	dangling symbols because of sourceware PR13621.
711
7122014-06-14  Mark Wielaard  <mjw@redhat.com>
713
714	* elflint (check_symtab): Use ebl_func_addr_mask on st_value.
715
7162014-05-27  Mark Wielaard  <mjw@redhat.com>
717
718	* readelf.c (print_debug): Skip section if name is NULL.
719
7202014-05-26  Mark Wielaard  <mjw@redhat.com>
721
722	* readelf.c (handle_relocs_rela): Print header like handle_relocs_rel
723	does, when sh_info == 0.
724
7252014-05-26  Mark Wielaard  <mjw@redhat.com>
726
727	* unstrip.c (find_alloc_sections_prelink): Allow non-split .bss
728	section when sh_size of the original and undo .bss section are equal.
729
7302014-05-26  Mark Wielaard  <mjw@redhat.com>
731
732	* unstrip.c (options): Add --force, -F.
733	(struct arg_info): Add bool force.
734	(parse_opt): Handle 'F', set force.
735	(handle_explicit_files): Add force argument, add warn function,
736	separate check ehdr field checks, use warn.
737	(handle_dwfl_module): Add force argument, pass on to
738	handle_explicit_files.
739	(handle_output_dir_module): Add force argument, pass on to
740	handle_dwfl_module.
741	(handle_implicit_modules): Pass info->force to handle_dwfl_module and
742	handle_output_dir_module.
743	(main): Pass info.force to handle_explicit_files.
744
7452014-05-19  Mark Wielaard  <mjw@redhat.com>
746
747	* elflint.c (check_reloc_shdr): Check ebl_check_reloc_target_type.
748
7492014-05-01  Mark Wielaard  <mjw@redhat.com>
750
751	* readelf.c (find_no_debuginfo): Call dwfl_standard_find_debuginfo
752	if looking for alternate debug file.
753
7542014-04-11  Mark Wielaard  <mjw@redhat.com>
755
756	* Makefile.am (AM_CPPFLAGS): Add -I libdwelf.
757
7582014-04-22  Mark Wielaard  <mjw@redhat.com>
759
760	* readelf.c (handle_core_item): Make sure variable length array
761	contains at least enough space for terminating zero char.
762
7632014-04-22  Mark Wielaard  <mjw@redhat.com>
764
765	* readelf.c (print_gdb_index_section): Use unsigned int for 31 bits
766	left shift.
767
7682014-03-13  Mark Wielaard  <mjw@redhat.com>
769
770	* Makefile.am: Remove no_mudflap.os. Remove libmudflap from all
771	LDADD lines.
772	* strings.c (process_chunk): Remove _MUDFLAP condition.
773
7742014-04-09  Mark Wielaard  <mjw@redhat.com>
775
776	* readelf.c (print_debug_aranges_section): Don't get the raw section
777	data, use the possibly decompressed .[z]debug sectiondata.
778	(print_debug_ranges_section): Likewise.
779	(print_debug_frame_section): Likewise.
780	(print_debug_line_section): Likewise.
781	(print_debug_loc_section): Likewise.
782	(print_debug_macinfo_section): Likewise.
783	(print_debug_macro_section): Likewise.
784
7852014-04-10  Mark Wielaard  <mjw@redhat.com>
786
787	* readelf.c (buf_read_ulong): Pass actual long size to convert.
788
7892014-03-05  Mark Wielaard  <mjw@redhat.com>
790
791	* readelf.c (attr_callback): Print DW_FORM_sdata values as signed
792	numbers.
793
7942014-02-24  Mark Wielaard  <mjw@redhat.com>
795
796	* readelf (print_phdr): Check there is a SHT_PROGBITS section at the
797	offset given by p_offsets for a PT_INTERP segment before trying to
798	display the interpreter string.
799
8002014-02-07  Mark Wielaard  <mjw@redhat.com>
801
802	* readelf.c (print_phdr): Check phdr->p_filesz and make sure
803	interpreter string is zero terminated before calling printf.
804
8052014-01-22  Mark Wielaard  <mjw@redhat.com>
806
807	* Makefile.am (nm_no_Wformat): Removed.
808	(size_no_Wformat): Likewise.
809	(strings_no_Wformat): Likewise.
810	(addr2line_no_Wformat): Likewise.
811	* size.c (show_sysv): Use fmtstr directly as literal in printf.
812	(show_sysv_one_line): Likewise.
813	* strings.c (locfmt): Removed.
814	(radix): New static enum.
815	(parse_opt): Set radix, not locfmt.
816	(process_chunk_mb): Use fmtstr directly as literal in printf based
817	on radix.
818	(process_chunk): Likewise.
819	* nm.c (show_symbols_sysv): Use fmtstr directly as literal in printf.
820	(show_symbols_bsd): Likewise.
821	(show_symbols_posix): Likewise.
822
8232014-01-21  Mark Wielaard  <mjw@redhat.com>
824
825	* stack.c (show_inlines): New static boolean.
826	(print_frame): New function split out from...
827	(print_frames): ..here. If show_inlines is true and we found a
828	DIE for the frame address, call print_inline_frames otherwise
829	call print_frame. Keep track of and track frame_nr.
830	(print_inline_frames): New function.
831	(parse_opt): Handle '-i'.
832	(main): Add 'i' to options.
833
8342014-01-27  Mark Wielaard  <mjw@redhat.com>
835
836	* stack.c (maxframes): Initialize to 256.
837	(main): Document new default in options. Document magic number
838	used in frames.allocated initialization.
839
8402014-01-20  Mark Wielaard  <mjw@redhat.com>
841
842	* stack.c (show_debugname): New static boolean.
843	(die_name): New function.
844	(print_frames): If show_debugname is true set symname to the
845	first function-like DIE with a name in scope for the address in
846	the debuginfo.
847	(parse_opt): Handle '-d'.
848	(main): Add 'd' to options.
849
8502014-01-20  Mark Wielaard  <mjw@redhat.com>
851
852	* addr2line.c (handle_address): Initialize scopes to NULL.
853
8542014-01-17  Roland McGrath  <roland@redhat.com>
855
856	* strip.c (handle_elf): Check for bogus values in sh_link, sh_info,
857	st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data.
858	Don't use assert on input values, instead bail with "illformed" error.
859
8602014-01-17  Roland McGrath  <roland@redhat.com>
861
862	* readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link.
863	(handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise.
864	(handle_scngrp): Check for bogus sh_info.
865
8662014-01-17  Jakub Jelinek  <jakub@redhat.com>
867
868	* elflint.c (section_name): Return "<invalid>" instead of
869	crashing on invalid section name.
870	(check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic,
871	check_symtab_shndx, check_hash, check_versym): Robustify.
872	(check_hash): Don't check entries beyond end of section.
873	(check_note): Don't crash if gelf_rawchunk fails.
874
8752014-01-17  Petr Machata  <pmachata@redhat.com>
876
877	* readelf.c (handle_dynamic, handle_relocs_rel)
878	(handle_relocs_rela, handle_versym, print_liblist):
879	Use gelf_fsize instead of relying on shdr->sh_entsize.
880
8812014-01-14  Mark Wielaard  <mjw@redhat.com>
882
883	* readelf.c (print_debug_macro_section): Clear vendor array before
884	use.
885
8862014-01-15  Jan Kratochvil  <jan.kratochvil@redhat.com>
887
888	Fix corruption of non-C++ symbols by the demangler.
889	* nm.c (show_symbols_sysv, show_symbols_bsd, show_symbols_posix)
890	(show_symbols): Check for _Z.
891	* stack.c (print_frames) <USE_DEMANGLE>: Check for _Z.
892
8932014-01-02  Mark Wielaard  <mjw@redhat.com>
894
895	* stack.c (show_raw): Declare unconditionally.
896	(parse_opt): Handle '-r' unconditionally.
897	(main): Show "raw" option even without USE_DEMANGLE.
898
8992014-01-02  Mark Wielaard  <mjw@redhat.com>
900
901	* stack.c (print_frames): Print 0x before build-id hex-offset.
902
9032014-01-02  Mark Wielaard  <mjw@redhat.com>
904
905	* stack.c (maxframes): Increase to 2048.
906	(struct frames): Add allocated field.
907	(frame_callback): If frames used is frames allocated, realloc.
908	(print_frames): Show an error if maxframes has been reached.
909	(parse_opt): Allow -n 0 for unlimited frames.
910	(main): Document -n 0 and new default 2048 frames. Allocate initial
911	number of frames with malloc.
912
9132013-12-30  Mark Wielaard  <mjw@redhat.com>
914
915	* stack.c (parse_opt): Explicitly call dwfl_linux_proc_attach
916	or dwfl_core_file_attach and check for errors.
917
9182013-12-28  Mark Wielaard  <mjw@redhat.com>
919
920	* stack.c (print_frames): Remove address width code and use...
921	(get_addr_width): ...this new function.
922	(show_modules): New static boolean.
923	(module_callback): New static function.
924	(parse_opt): Handle '-l'.
925	(main): Add 'l' to options. If show_modules then use dwfl_getmodules
926	with module_callback to show all detected modules and possible
927	build_id, elf and dwarf files.
928
9292013-12-27  Mark Wielaard  <mjw@redhat.com>
930
931	* stack.c (frames_shown): New static boolean.
932	(EXIT_OK,EXIT_ERROR,EXIT_BAD,EXIT_USAGES): New defines.
933	(frame_callback): Return -1 on error. Don't print error.
934	(print_frames): Add arguments, tid, dwflerr and what. Print tid.
935	If there was an error report it with address and module if possible.
936	Record whether any frames were actually printed.
937	(thread_callback): Collect tid and err, pass it to print_frames.
938	(parse_opt): Use EXIT_BAD for errors. On ARGP_KEY_END print errno
939	if dwfl_linux_proc_report returned it. Check whether we are properly
940	attached with dwfl_pid.
941	(main): Document exit status. Don't report DWARF_CB_ABORT from
942	callbacks as error. Pass real errors to print_frames. Return
943	EXIT_BAD if no frames could be shown. Return EXIT_ERROR if there
944	were any non-fatal errors.
945
9462013-12-23  Mark Wielaard  <mjw@redhat.com>
947
948	* Makefile.am (stack_LDADD): Add demanglelib.
949	* stack.c (show_quiet): New static boolean, default false.
950	(show_raw): Likewise.
951	(demangle_buffer_len): New static size_t.
952	(demangle_buffer): New static char *.
953	(print_frames): Don't resolve pc name if show_quiet. Demangle name
954	unless show_raw.
955	(parse_opt): Handle '-q' and '-r'.
956	(main): Add 'q' and 'r' to options. Free demangle_buffer.
957
9582013-12-23  Mark Wielaard  <mjw@redhat.com>
959
960	* stack.c (OPT_DEBUGINFO): New define.
961	(OPT_COREFILE): Likewise.
962	(pid): New static.
963	(core_fd): Likewise.
964	(core): Likewise.
965	(exec): Likewise.
966	(debuginfo_path): Likewise.
967	(parse_opt): Handle '-p', '--core', '-e' and '--debuginfo-path'.
968	Do argument sanity checking. Setup Dwfl.
969	(main): Add 'p', 'core', 'e' and 'debuginfo-path' to options.
970	Remove argp_child children, simplify argp doc, remove custom
971	usage message and construction of dwfl with dwfl_standard_argp.
972	Use pid directly as tid. close core and core_fd if opened. Print
973	pid of process or core.
974
9752013-12-23  Mark Wielaard  <mjw@redhat.com>
976
977	* stack.c (show_build_id): New static boolean.
978	(print_frames): Print module build-id, load address and pc offset
979	if show_build_id is true.
980	(parse_opt): Handle '-b'.
981	(main): Add -b to options.
982
9832013-12-22  Mark Wielaard  <mjw@redhat.com>
984
985	* stack.c (maxframes): New static unsigned. Initialize to 64.
986	(struct frame): New struct.
987	(struct frames): Likewise.
988	(dwfl): New static Dwfl pointer.
989	(frame_callback): Use arg as struct frames and fill it next frame.
990	Return DWARF_CB_ABORT when maxframes has been reached. Move
991	printing of frame to...
992	(print_frames): ...here. New function.
993	(thread_callback): Use arg as struct frames and set frames to zero.
994	Call print_frames.
995	(parse_opt): Handle '-n'.
996	(main): Add -n to options. Allocate frames using maxframes. Pass
997	frames to frame_callback and thread_callback.
998
9992013-12-20  Mark Wielaard  <mjw@redhat.com>
1000
1001	* stack.c (show_one_tid): New static boolean.
1002	(parse_opt): Handle '-1'.
1003	(main): Add -1 to options. Call dwfl_getthread_frames when
1004	show_one_tid is true.
1005
10062013-12-18  Mark Wielaard  <mjw@redhat.com>
1007
1008	* addr2line.c (options): Add symbol-sections, 'x'.
1009	(show_symbol_sections): New static bool.
1010	(parse_opt): Handle 'x'.
1011	(print_addrsym): Use dwfl_module_addrinfo value.r
1012	Also show section of address with show_symbol_sections.
1013	(find_symbol): Use dwfl_module_getsym_info and set value.
1014	(handle_address): Request value and use it instead of sym.st_value.
1015	* readelf.c (format_dwarf_addr): Use dwfl_module_addrinfo to get
1016	name and offset.
1017
10182013-12-17  Masatake YAMATO  <yamato@redhat.com>
1019	    Mark Wielaard  <mjw@redhat.com>
1020
1021	* stack.c (show_activation, show_module, show_source): New variables.
1022	(parse_opt): Set show_activation if -a option is given.
1023	Set show_module if -m option is given. Set show_source if -s option
1024	is given. Set all show booleans when -v option is given.
1025	(main): Added `-a', `-m', `-s', and `-v' to the help message.
1026	(frame_callback): Print module and source file information.
1027
10282013-11-25  Petr Machata  <pmachata@redhat.com>
1029
1030	* elflint.c (valid_e_machine): Add EM_AARCH64.
1031
10322013-11-14  Petr Machata  <pmachata@redhat.com>
1033
1034	* readelf.c (handle_core_item) <'h'>: New branch for handling
1035	fields that shouldn't be displayed.
1036
10372013-11-10  Mark Wielaard  <mjw@redhat.com>
1038
1039	* stack.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
1040	ARGP_PROGRAM_BUG_ADDRESS_DEF.
1041	(print_version): New function.
1042
10432013-11-09  Mark Wielaard  <mjw@redhat.com>
1044
1045	* arlib.c (arlib_init): Call snprintf before using the result
1046	with memcpy.
1047	(arlib_finalize): Likewise.
1048	* nm.c (show_symbols_sysv): Don't modify cnt inside assert.
1049
10502013-11-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
1051
1052	* Makefile.am (bin_PROGRAMS): Add stack.
1053	(stack_LDADD): New.
1054	* stack.c: New file.
1055
10562013-11-05  Mark Wielaard  <mjw@redhat.com>
1057
1058	* readelf.c (print_debug_ranges_section): Cast address to size_t
1059	before comparison.
1060	(print_debug_loc_section): Likewise.
1061
10622013-10-18  Mark Wielaard  <mjw@redhat.com>
1063
1064	* ar.c (main): Correct operation check when instance_specifed is set.
1065
10662013-09-26  Petr Machata  <pmachata@redhat.com>
1067
1068	* readelf.c (handle_file_note): New function.
1069	(handle_notes_data): Call it to handle NT_FILE notes.
1070
10712013-09-26  Petr Machata  <pmachata@redhat.com>
1072
1073	* readelf.c (handle_siginfo_note): New function.
1074	(handle_notes_data): Call it to handle NT_SIGINFO notes.
1075	(buf_read_int, buf_read_ulong, buf_has_data): New functions.
1076
10772013-08-13  Mark Wielaard  <mjw@redhat.com>
1078
1079	* addr2line.c (options): Add "inlines", 'i'.
1080	(show_inlines): New bool.
1081	(parse_opt): Handle 'i'.
1082	(print_diesym): New static function.
1083	(print_src): New function taking code from...
1084	(handle_address): here. Call print_src. Print inlines.
1085
10862013-08-12  Mark Wielaard  <mjw@redhat.com>
1087
1088	* addr2line.c (main): If there is a newline char at end of buf,
1089	then remove it.
1090
10912013-07-05  Mark Wielaard  <mjw@redhat.com>
1092
1093	* readelf.c (print_ops): Take CU as argument, use it to print
1094	parameter_ref DIE offset.
1095	(struct listptr): Replace base field with cu.
1096	(listptr_base): New function.
1097	(compare_listptr): Use listptr_base.
1098	(notice_listptr): Take CU as argument.
1099	(skip_listptr_hole): Likewise.
1100	(print_debug_ranges_section): Pass NULL as CU to skip_listptr_hole.
1101	(print_cfa_program): Pass NULL as CU to print_ops.
1102	(struct attrcb_args): Replace cu_base field with cu.
1103	(attr_callback): Pass cu not cu_base to notice_listptr.
1104	(print_debug_units): Don't calculate base, just set cu.
1105	(print_debug_loc_section): Pass cu to skip_listptr_hole and
1106	print_ops.
1107
11082013-05-06  Mark Wielaard  <mjw@redhat.com>
1109
1110	* readelf.c (print_ops): Format first DW_OP_GNU_implicit_pointer
1111	argument as DIE offset.
1112
11132013-04-24  Mark Wielaard  <mjw@redhat.com>
1114
1115	* Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
1116
11172013-03-25  Mark Wielaard  <mjw@redhat.com>
1118
1119	* readelf.c (argp_options): Add decodedline.
1120	(decodedline): New boolean initialized to false.
1121	(parse_opt): Set decodedline when arg is decodedline.
1122	(print_decoded_line_section): New function.
1123	(print_debug_line_section): Call print_decoded_line_section when
1124	decodedline is true.
1125
11262013-03-25  Mark Wielaard  <mjw@redhat.com>
1127
1128	* readelf.c (argp_option): Add decodedaranges.
1129	(decodedaranges): New boolean initialized to false.
1130	(parse_opt): Set decodedaranges when arg is decodedaranges.
1131	(print_debug_aranges_section): Reimplemented and original
1132	implementation renamed to...
1133	(print_decoded_aranges_section): this.
1134
11352013-03-25  Mark Wielaard  <mjw@redhat.com>
1136
1137	* readelf.c (attrcb_args): Add Dwarf_Die.
1138	(attr_callback): When highpc is in constant form also print as
1139	address.
1140	(print_debug_units): Set args.die.
1141
11422013-03-19  Mark Wielaard  <mjw@redhat.com>
1143
1144	* readelf.c (print_gdb_index_section): Free format_dwarf_addr results.
1145
11462013-03-18  Mark Wielaard  <mjw@redhat.com>
1147
1148	* readelf.c (print_gdb_index_section): Accept version 8.
1149
11502013-03-01  Mark Wielaard  <mjw@redhat.com>
1151
1152	* findtextrel.c (process_file): Release ELF and close file when not
1153	text relocations are found.
1154	* strip.c (handle_elf): Track memory used for .debuglink section data
1155	and free when done.
1156
11572013-02-24  Mark Wielaard  <mjw@redhat.com>
1158
1159	* elflint.c (check_symtab): Add __bss_start__ to the list of symbols
1160	allowed to have out of section values because of GNU ld bugs.
1161
11622013-02-06  Mark Wielaard  <mjw@redhat.com>
1163
1164	* elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the
1165	list of symbols allowed to have out of section values because of
1166	GNU ld bugs in either .symtab or .dynsym, but only when they are
1167	zero sized.
1168
11692013-01-24  Mark Wielaard  <mjw@redhat.com>
1170
1171	* readelf.c (argp_option): Add unresolved-address-offsets, U.
1172	(print_unresolved_addresses): New static.
1173	(parse_opt): Handle 'U', set print_unprocessed_values.
1174	(format_dwarf_addr): Take and handle new raw argument.
1175	(print_ops): Call format_dwarf_addr with raw offset values.
1176	(print_debug_ranges_section): Likewise.
1177	(print_debug_frame_section): Likewise.
1178	(attr_callback): Likewise.
1179	(print_debug_line_section): Likewise.
1180	(print_debug_loc_section): Likewise.
1181	(print_gdb_index_section): Likewise.
1182
11832013-01-18  Mark Wielaard  <mjw@redhat.com>
1184
1185	* readelf.c (struct listptr): Add base Dwarf_Addr field.
1186	(compare_listptr): Warn for same offset with different base.
1187	(notice_listptr): Take base argument and set it.
1188	(skip_listptr_hole): Likewise.
1189	(struct attrcb_args): Removed unused cu_offset field.
1190	Add cu_base Dwarf_Addr field.
1191	(attr_callback): Call notice_listptr with cbargs->cu_base.
1192	(print_debug_units): Set args.cu_base.
1193	(print_debug_ranges_section): Get base and use for format_dwarf_addr.
1194	(print_debug_loc_section): Likewise.
1195
11962013-01-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
1197
1198	* readelf.c (handle_core_items): Limit special repeated items handling
1199	to single-item formats '\n', 'b' and 'B', assert OFFSET 0 there.
1200
12012012-12-18  Mark Wielaard  <mark@bordewijk.wildebeest.org>
1202
1203	* readelf.c (ELF_INPUT_SECTION): New argp key value.
1204	(argp_option): Add elf-section.
1205	(elf_input_section): New static.
1206	(parse_opt): Handle ELF_INPUT_SECTION and set elf_input_section.
1207	(open_input_section): New function.
1208	(process_file): Call open_input_section if elf_input_section set.
1209
12102013-01-13  David Abdurachmanov  <David.Abdurachmanov@cern.ch>
1211
1212	ar.c (do_oper_delete): Fix num passed to memset.
1213
12142012-12-21  Mark Wielaard  <mjw@redhat.com>
1215
1216	* readelf.c (print_debug_frame_section): Adjust FDE start address
1217	if pcrel before feeding it to format_dwarf_addr.
1218
12192012-12-21  Mark Wielaard  <mjw@redhat.com>
1220
1221	* addr2line.c (main): Call dwfl_end.
1222
12232012-12-11  Roland McGrath  <roland@hack.frob.com>
1224
1225	* nm.c (show_symbols_sysv): Fix size passed to snprintf for invalid
1226	sh_name case.
1227	Reported by David Abdurachmanov <David.Abdurachmanov@cern.ch>.
1228
12292012-10-16  Mark Wielaard  <mjw@redhat.com>
1230
1231	* readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are
1232	calculated beginning after the operand and 2-byte constant.
1233
12342012-10-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
1235
1236	* readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ...
1237	(WRAP_COLUMN): ... here.
1238	(print_core_item): Remove parameter format_max.  Update function
1239	comment.  Replace FORMAT_MAX by the real output width.
1240	(handle_core_item): Remove the FORMAT_MAX values in TYPES, DO_TYPE,
1241	calls of print_core_item, remove variable maxfmt, change
1242	ITEM_WRAP_COLUMN to WRAP_COLUMN.
1243	(handle_core_register): Remove the FORMAT_MAX values in TYPES, BITS,
1244	calls of print_core_item, change REGISTER_WRAP_COLUMN to WRAP_COLUMN.
1245
12462012-10-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
1247
1248	* readelf.c (handle_core_item) <b>: Make run an outer block variable.
1249	Increase run only if LASTBIT != 0.  Print last element only if RUN > 0.
1250
12512012-08-27  Mark Wielaard  <mjw@redhat.com>
1252
1253	* readelf.c (print_debug_macro_section): Print offset as PRIx64.
1254
12552012-08-27  Mark Wielaard  <mjw@redhat.com>
1256
1257	* readelf.c (register_info): Handle loc == NULL.
1258
12592012-08-22  Jeff Kenton  <jkenton@tilera.com>
1260
1261	* elflint.c (valid_e_machine): Add EM_TILEGX and EM_TILEPRO.
1262
12632012-08-16  Mark Wielaard  <mjw@redhat.com>
1264
1265	* readelf.c (dwarf_tag_name): Renamed from dwarf_tag_string.
1266	Uses new dwarf_tag_string or adds ??? or lo_user+%#x when
1267	appropriate.
1268	(dwarf_attr_name): Likewise.
1269	(dwarf_form_name): Likewise.
1270	(dwarf_lang_name): Likewise.
1271	(dwarf_inline_name): Likewise.
1272	(dwarf_encoding_name): Likewise.
1273	(dwarf_access_name): Likewise.
1274	(dwarf_visibility_name): Likewise.
1275	(dwarf_virtuality_name): Likewise.
1276	(dwarf_identifier_case_name): Likewise.
1277	(dwarf_calling_convention_name): Likewise.
1278	(dwarf_ordering_name): Likewise.
1279	(dwarf_discr_list_name): Likewise.
1280	(print_ops): Remove KNOWN.  Use dwarf_locexpr_opcode_string.
1281	(attr_callback): Call new dwarf_foobar_name instead of old
1282	dwarf_foobar_string functions.
1283	(dwarf_tag_string): New function using known-dwarf.h macros.
1284	(dwarf_attr_string): Likewise.
1285	(dwarf_form_string): Likewise.
1286	(dwarf_lang_string): Likewise.
1287	(dwarf_inline_string): Likewise.
1288	(dwarf_encoding_string): Likewise.
1289	(dwarf_access_string): Likewise.
1290	(dwarf_visibility_string): Likewise.
1291	(dwarf_virtuality_string): Likewise.
1292	(dwarf_identifier_case_string): Likewise.
1293	(dwarf_calling_convention_string): Likewise.
1294	(dwarf_ordering_string): Likewise.
1295	(dwarf_discr_list_string): Likewise.
1296	(dwarf_locexpr_opcode_string): Likewise.
1297
12982012-06-27  Mark Wielaard  <mjw@redhat.com>
1299
1300	* readelf.c (dwarf_form_string): Handle DW_FORM_GNU_ref_alt and
1301	DW_FORM_GNU_strp_alt.
1302	(attr_callback): Likewise.
1303
13042012-07-30  Petr Machata  <pmachata@redhat.com>
1305
1306	* nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and
1307	corresponding printf) so that those that are referenced by only
1308	one of the formatting strings are at the end.
1309
13102012-07-29  Mark Wielaard  <mjw@redhat.com>
1311
1312	* readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc.
1313	(print_ops): Use known[op], not op_name, for DW_OP_GNU_parameter_ref.
1314
13152012-07-19  Mark Wielaard  <mjw@redhat.com>
1316
1317	* readelf.c (print_ops): Handle DW_OP_GNU_parameter_ref.
1318
13192012-07-11  Mark Wielaard  <mjw@redhat.com>
1320
1321	* readelf.c (options): Add macro to help of debug-dump.
1322	(section_e): Add section_macro.
1323	(section_all): Add section_macro.
1324	(parse_opt): Handle macro.
1325	(print_debug_macro_section): New function.
1326	(print_debug): Add NEW_SECTION (macro).
1327
13282012-07-10  Mark Wielaard  <mjw@redhat.com>
1329
1330	* readelf.c (print_gdb_index_section): Add version 7 support.
1331	Keep track of cu_nr. Print kind and static/global flag for each
1332	symbol. When a symbol is in the TU list add 'T'.
1333
13342012-06-26  Mark Wielaard  <mjw@redhat.com>
1335
1336	* readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros.
1337
13382012-06-22  Mark Wielaard  <mjw@redhat.com>
1339
1340	* readelf.c (print_ops): Cast printf PRIu/x64 arguments to uint64_t
1341	for gcc 4.7 -Wformat.
1342
13432012-05-09  Roland McGrath  <roland@hack.frob.com>
1344
1345	* elflint (check_sections): Allow zero sized sections at (filesz) end
1346	of segment. And make check overflow-proofed.
1347
13482012-04-24  Mark Wielaard  <mjw@redhat.com>
1349
1350	* readelf.c (print_ops): Add DW_OP_GNU_push_tls_address,
1351	DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr.
1352
13532012-03-28  Roland McGrath  <roland@hack.frob.com>
1354
1355	* elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections.
1356
13572012-03-28  Mark Wielaard  <mjw@redhat.com>
1358
1359	* readelf.c (print_debug_abbrev_section): Check there is Dwarf
1360	section data.
1361	(print_debug_str_section): Likewise.
1362
13632012-03-21  Mark Wielaard  <mjw@redhat.com>
1364
1365	* readelf.c (print_gdb_index_section): Accept version 6.
1366
13672012-01-31  Mark Wielaard  <mjw@redhat.com>
1368
1369	* readelf.c (attr_callback): Don't special case DW_FORM_sec_offset.
1370
13712012-01-21  Ulrich Drepper  <drepper@gmail.com>
1372
1373	* addr2line.c: Update copyright year.
1374	* ar.c: Likewise.
1375	* elfcmp.c: Likewise.
1376	* elflint.c: Likewise.
1377	* findtextrel.c: Likewise.
1378	* ld.c: Likewise.
1379	* nm.c: Likewise.
1380	* objdump.c: Likewise.
1381	* ranlib.c: Likewise.
1382	* readelf.c: Likewise.
1383	* size.c: Likewise.
1384	* strings.c: Likewise.
1385	* strip.c: Likewise.
1386	* unstrip.c: Likewise.
1387
1388	* nm.c (argp_children): Define.
1389	(argp): Hook up argp_children.
1390	(handle_ar): Optimize puts call.
1391	(show_symbols_bsd): Use positional parameters to also print color
1392	codes.  Don't print STT_FILE symbols.
1393	* objdump.c (options): Improve help text.
1394	(argp_children): Define.
1395	(argp): Hook up argp_children.
1396	(disasm_info): Add elements for color codes.
1397	(disasm_output): Print color codes as well.
1398	(show_disasm): Set up disasm_info data for callback.
1399
14002012-01-20  Roland McGrath  <roland@hack.frob.com>
1401
1402	* arlib-argp.c (arlib_deterministic_output): Initialize from
1403	configured value.
1404	(help_filter): New function.
1405	(argp): Use it.
1406
1407	* ar.c (main): Handle oper_none as usage error.
1408
1409	* arlib-argp.c (options, parse_opt): Grok -U as inverse of -D.
1410
1411	* ranlib.c (argp): Use arlib_argp_children.
1412
1413	* arlib.c (arlib_init): Obey arlib_deterministic_output.
1414
1415	* arlib-argp.c: New file.
1416	* Makefile.am (libar_a_SOURCES): Add it.
1417	* arlib.h (arlib_deterministic_output, arlib_argp_children):
1418	Declare new variables.
1419	* ar.c (deterministic_output): Variable removed.
1420	(do_oper_insert): Use arlib_deterministic_output instead.
1421	(options, parse_opt): Don't handle -D here.  Add group numbers.
1422	(argp): Use arlib_argp_children.
1423
14242011-12-20  Roland McGrath  <roland@hack.frob.com>
1425
1426	* readelf.c (print_debug): Initialize DUMMY_DBG.elf.
1427	Reported by Karel Klic <kklic@redhat.com>.
1428
14292011-11-05  Roland McGrath  <roland@hack.frob.com>
1430
1431	* ar.c (deterministic_output): New flag variable.
1432	(options, parse_opt): Grok -D to set it.
1433	(do_oper_insert): When set, use zero from mtime, uid, and gid.
1434
1435	* ar.c (do_oper_insert): Fix check on elf_rawfile return value.
1436
14372011-10-04  Marek Polacek  <mpolacek@redhat.com>
1438
1439	* readelf.c (register_info): Assume the right size of an array.
1440
14412011-10-03  Ulrich Drepper  <drepper@gmail.com>
1442
1443	* nm.c: Recognize option --mark-special.  Still recognize --mark-weak
1444	but don't show it in help anymore.
1445	(mark_special): Renamed from mark_weak.
1446	(parse_opt): Adjust.
1447	(class_type_char): Take additional parameters for ELF file and ELF
1448	header.  Treat TLS symbols like objects.
1449	In case of D symbols, show u for unique symbols, R for symbols in
1450	read-only sections, B for symbols in BSS sections.
1451	(show_symbols_bsd): Take additional parameters for ELF file and ELF
1452	header.  Adjust for class_type_char change.  Show TLS symbols with
1453	@ after them in case --mark-special is selected.
1454	(show_symbols_posix): Likewise.
1455	(show_symbols): Adjust calls to show_symbols_bsd and
1456	show_symbols_posix.
1457	(show_symbols_sysv): Avoid printing adress and size for undefined
1458	symbols.  Don't print initial special entry and section entries.
1459
14602011-10-02  Ulrich Drepper  <drepper@gmail.com>
1461
1462	* Makefile.am (demanglelib): Define.
1463	(nm_LDADD): Add demanglelib.
1464	* nm.c (options): Add -C option.
1465	(demangle): Define as global variable.
1466	(parse_opt): Recognize -C.
1467	(show_symbols_sysv): Handle demangling.
1468	(show_symbols_bad): Likewise.
1469	(show_symbols_posix): Likewise.
1470	(show_symbols): Likewise.
1471
14722011-07-09  Roland McGrath  <roland@hack.frob.com>
1473
1474	* readelf.c (options, parse_opt): Grok -W/--wide and ignore it.
1475
1476	* ar.c (parse_opt): Grok -u.
1477
14782011-05-30  Mark Wielaard  <mjw@redhat.com>
1479
1480	* strip.c (relocate): Make offset check overflow-proof.
1481
14822011-05-23  Mark Wielaard  <mjw@redhat.com>
1483
1484	* strip.c (relocate): Take new arguments is_rela to indicate
1485	whether the relocation is from a SHT_REL or SHT_RELA section.
1486	Relocate against any debug section symbol, not just STT_SECTION
1487	symbols. For SHT_REL relocations, fetch addend from offset and
1488	add it to symbol value if not zero.
1489
14902011-05-23  Mark Wielaard  <mjw@redhat.com>
1491
1492	* strip.c (OPT_RELOC_DEBUG): New option.
1493	(argp_option): Add new --reloc-debug-sections option.
1494	(main): Check new option.
1495	(parse_opt): Likewise.
1496	(handle_elf): Remove any relocations between debug sections
1497	in ET_REL for the debug file when requested.
1498
14992011-05-18  Mark Wielaard  <mjw@redhat.com>
1500
1501	* strip.c (handle_elf): Make sure all sections of a removed group
1502	section are removed too. Don't discard SHT_GROUP sections, copy
1503	section table before it gets modified. Section group signature
1504	symbols don't have to be retained.
1505
15062011-05-16  Jakub Jelinek  <jakub@redhat.com>
1507
1508	* readelf.c (print_ops): Handle DW_OP_GNU_const_type,
1509	DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert
1510	and DW_OP_GNU_reinterpret.
1511
15122011-05-17  Mark Wielaard  <mjw@redhat.com>
1513
1514	* readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and
1515	DW_TAG_GNU_call_site_parameter return strings.
1516
15172011-05-11  Marek Polacek  <mpolacek@redhat.com>
1518
1519	* nm.c (show_symbols_sysv): Remove unused if/else, remove
1520	unused `prefix' and `fname' parameters.
1521
15222011-05-07  Marek Polacek  <mpolacek@redhat.com>
1523
1524	* unstrip.c (compare_sections_nonrel): Mark this function as static.
1525
15262011-04-26  Mark Wielaard  <mjw@redhat.com>
1527
1528	* readelf.c (handle_notes_data): Call ebl_object_note_type_name
1529	with note name.
1530
15312011-04-14  Mark Wielaard  <mjw@redhat.com>
1532
1533	* readelf.c (options): Add gdb_index.
1534	(section_e): Define section_gdb_index.
1535	(parse_opt): Recognize gdb_index debug-dump argument.
1536	(print_gdb_index_section): New function.
1537	(print_debug): Add gdb_index to debug_sections.
1538
15392011-03-24  Petr Machata  <pmachata@redhat.com>
1540
1541	* readelf.c (print_debug_line_section): Emit initial space for all
1542	opcode lines.  Print offset in front of each opcode.
1543
15442011-03-22  Marek Polacek  <mpolacek@redhat.com>
1545
1546	* readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case.
1547
15482011-03-22  Mark Wielaard  <mjw@redhat.com>
1549
1550	* readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site
1551	and DW_TAG_GNU_call_site_parameter.
1552	(dwarf_attr_string): Support DW_AT_GNU_call_site_value,
1553	DW_AT_GNU_call_site_data_value,
1554	DW_AT_GNU_call_site_target,
1555	DW_AT_GNU_call_site_target_clobbered,
1556	DW_AT_GNU_tail_call,
1557	DW_AT_GNU_all_tail_call_sites,
1558	DW_AT_GNU_all_call_sites,
1559	and DW_AT_GNU_all_source_call_sites.
1560	(print_ops): Handle DW_OP_GNU_entry_value.
1561	(attr_callback): Handle DW_AT_GNU_call_site_value,
1562	DW_AT_GNU_call_site_data_value,
1563	DW_AT_GNU_call_site_target,
1564	and DW_AT_GNU_call_site_target_clobbered.
1565
15662011-03-10  Mark Wielaard  <mjw@redhat.com>
1567
1568	* elflint.c (check_symtab): Use ebl_check_st_other_bits.
1569
15702011-02-27  Jan Kratochvil  <jan.kratochvil@redhat.com>
1571
1572	* readelf.c (reset_listptr): Clear TABLE->TABLE.
1573
15742011-02-25  Mark Wielaard  <mjw@redhat.com>
1575
1576	* readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
1577	(dwarf_form_string): Properly format and return unknown form.
1578
15792011-02-23  Roland McGrath  <roland@redhat.com>
1580
1581	* readelf.c (section_name): New function.
1582	(print_debug_abbrev_section): Use it instead of constant.
1583	(print_debug_aranges_section): Likewise.
1584	(print_debug_ranges_section): Likewise.
1585	(print_debug_units): Likewise.
1586	(print_debug_line_section): Likewise.
1587	(print_debug_loc_section): Likewise.
1588	(print_debug_macinfo_section): Likewise.
1589	(print_debug_pubnames_section): Likewise.
1590	(print_debug_str_section): Likewise.
1591	(print_debug) [USE_ZLIB]: Match .zdebug_* sections too.
1592	(print_debug_abbrev_section): Use decoded d_size, not sh_size.
1593	(print_debug_str_section): Likewise.
1594
1595	* readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
1596
15972011-02-11  Roland McGrath  <roland@redhat.com>
1598
1599	* elfcmp.c (verbose): New variable.
1600	(options, parse_opt): Grok -l/--verbose to set it.
1601	(main): Under -l, keep going after first difference.
1602
1603	* elfcmp.c (ignore_build_id): New variable.
1604	(options, parse_opt): Grok --ignore-build-id to set it.
1605	(main): For SHT_NOTE sections, compare note details rather than raw
1606	bytes.  Under --ignore-build-id, don't complain about differing build
1607	ID contents if lengths match.
1608
16092011-02-08  Roland McGrath  <roland@redhat.com>
1610
1611	* ldscript.y (filename_id_star): Remove unused variable.
1612
1613	* unstrip.c (copy_elided_sections): Remove unused variable.
1614
1615	* elflint.c (check_dynamic): Remove unused variables.
1616
1617	* elflint.c (check_symtab): Warn about missing xndx section only once.
1618
1619	* ldgeneric.c (check_for_duplicate2): Remove unused variable.
1620
16212011-01-06  Roland McGrath  <roland@redhat.com>
1622
1623	* strip.c (handle_elf): Under --strip-sections, remove all
1624	non-allocated sections and never generate .gnu_debuglink.
1625
16262011-01-04  Roland McGrath  <roland@redhat.com>
1627
1628	* strip.c (remove_shdrs): New variable.
1629	(options, parse_opt): Grok --strip-sections to set it.
1630	(handle_elf): When that's set, truncate off .shstrtab and shdrs.
1631
16322010-11-10  Roland McGrath  <roland@redhat.com>
1633
1634	* findtextrel.c (process_file): Don't assume order of sections.
1635	Reported by Mike Hommey <mh@glandium.org>.
1636
16372010-07-26  Roland McGrath  <roland@redhat.com>
1638
1639	* readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer.
1640
16412010-08-30  Roland McGrath  <roland@redhat.com>
1642
1643	Print .debug_loc/.debug_ranges with cognizance of actual DIE uses.
1644	* readelf.c (parse_opt): Add section_info to implicit_debug_sections
1645	for ranges, loc.
1646	(struct listptr, struct listptr_table): New types.
1647	(compare_listptr, reset_listptr, sort_listptr): New functions.
1648	(notice_listptr, skip_listptr_hole): New functions.
1649	(struct attrcb_args): Add silent member.
1650	(attr_callback): Call notice_listptr for loclistptr and rangelistptr.
1651	Suppress output if silent, but still call notice_listptr.
1652	(print_debug_units): Suppress output if section_info not requested.
1653	(print_debug_loc_section): Call sort_listptr, skip_listptr_hole.
1654	(print_debug_ranges_section): Likewise.
1655	(print_debug): Call reset_listptr on both tables.
1656
1657	* readelf.c (print_debug_ranges_section): Print empty list.
1658	(print_debug_loc_section): Likewise.
1659
1660	* readelf.c (print_debug_loc_section): Check for bogus length
1661	before calling print_ops.
1662	(print_ops): Check harder for bogus data that would read off end.
1663
16642010-08-11  Roland McGrath  <roland@redhat.com>
1665
1666	* readelf.c (for_each_section_argument): Process all sections with
1667	matching name, not just the first.
1668
16692010-07-26  Roland McGrath  <roland@redhat.com>
1670
1671	* readelf.c (print_ops): Take new argument for CU version.
1672	Fix DW_OP_call_ref decoding to depend on it.
1673	(print_debug_loc_section): Update caller.
1674	(print_cfa_program): Take new argument, pass it down.
1675	(print_debug_frame_section): Update caller.
1676	(struct attrcb_args): New member version.
1677	(print_debug_units): Initialize it.
1678
16792010-07-02  Roland McGrath  <roland@redhat.com>
1680
1681	* readelf.c (print_debug_frame_section): Use format_dwarf_addr for
1682	initial_location.
1683
16842010-06-30  Roland McGrath  <roland@redhat.com>
1685
1686	* strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO.
1687	Ignore st_size for a non-S_ISREG file descriptor.
1688	(read_block): Move assert after no-mmap bail-out.
1689	(read_block_no_mmap): Fix size calculations for moving buffer remnant.
1690
16912010-06-22  Roland McGrath  <roland@redhat.com>
1692
1693	* readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa.
1694
16952010-06-21  Roland McGrath  <roland@redhat.com>
1696
1697	* readelf.c (dwarf_tag_string): Handle new v4 tags.
1698	(dwarf_attr_string): Add new attributes.
1699	(dwarf_tag_string): Handle DW_TAG_GNU_*.
1700
1701	* readelf.c (print_ops): Use 64-bit types for LEB128 operands.
1702	(print_cfa_program): Likewise.
1703
17042010-06-20  Roland McGrath  <roland@redhat.com>
1705
1706	* readelf.c (print_debug_units): New function, broken out of ...
1707	(print_debug_info_section): ... here.  Call it.
1708	(print_debug_types_section): New function.
1709	(enum section_e): Add section_types alias for section_info.
1710	(print_debug): Add types to the sections table.
1711
1712	* readelf.c (print_debug_frame_section): Handle version 4 format.
1713
1714	* readelf.c (print_debug_line_section): Handle version 4 format.
1715
17162010-06-14  Roland McGrath  <roland@redhat.com>
1717
1718	* unstrip.c (copy_elided_sections): Make sure all sections' data have
1719	been read in before we write anything out.
1720
17212010-06-04  Roland McGrath  <roland@redhat.com>
1722
1723	* unstrip.c (update_shdr): New function.
1724	(update_sh_size): Call it instead of gelf_update_shdr.
1725	(adjust_relocs, add_new_section_symbols): Likewise.
1726	(new_shstrtab, copy_elided_sections): Likewise.
1727
1728	* unstrip.c (copy_elided_sections): Bail if stripped file has more
1729	sections than unstripped file, rather than getting confused later.
1730
17312010-06-01  Roland McGrath  <roland@redhat.com>
1732
1733	* readelf.c (dwarf_form_string): Handle DWARF 4 forms.
1734	(attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
1735	DW_FORM_sec_offset, DW_FORM_ref_sig8.
1736
1737	* readelf.c (print_debug): Don't bail if libdw setup fails.
1738	Suppress complaint if we only want .eh_frame anyway.
1739
17402010-05-28  Ulrich Drepper  <drepper@redhat.com>
1741
1742	* readelf.c (attr_callback): Also print form information.
1743
17442010-05-19  Roland McGrath  <roland@redhat.com>
1745
1746	* addr2line.c (find_symbol): Short-circuit on empty name.
1747	(handle_address): Handle SYMBOL with no +OFFSET.
1748
17492010-05-08  Roland McGrath  <roland@redhat.com>
1750
1751	* readelf.c (print_ops): Take new arg OFFSET_SIZE.
1752	Use that for DW_OP_call_ref, not ADDRSIZE.
1753	(print_cfa_program): Update caller.
1754	(struct attrcb_args): Add offset_size field.
1755	(attr_callback): Use it for print_ops call.
1756	(print_debug_info_section): Initialize it.
1757	(print_ops): Likewise.
1758
17592010-04-14  Roland McGrath  <roland@redhat.com>
1760
1761	* readelf.c (handle_core_item): Fix bitmask printing.
1762
17632010-04-06  Roland McGrath  <roland@redhat.com>
1764
1765	* ld.c (options): Fix some typos in messages.
1766	* elflint.c (check_scn_group, check_group): Likewise.
1767	* ldscript.y (add_id_list): Likewise.
1768	* readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
1769	before translated string containing a literal %.
1770
17712010-02-26  Roland McGrath  <roland@redhat.com>
1772
1773	* readelf.c (process_file): Don't leak an fd in failure case.
1774
17752010-02-15  Roland McGrath  <roland@redhat.com>
1776
1777	* Makefile.am: Use config/eu.am for common stuff.
1778
1779	* readelf.c (print_debug_frame_section): Add a cast to avoid sign
1780	mismatch in comparison.
1781
17822010-02-02  Roland McGrath  <roland@redhat.com>
1783
1784	* readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
1785	(read_encoded): Likewise.
1786	(print_debug_frame_section): Check for bogus augmentation length.
1787	For P augmentation, use read_encoded, print the encoding description,
1788	and use hex for unsigned values.
1789
17902010-01-15  Roland McGrath  <roland@redhat.com>
1791
1792	* ar.c: Include <sys/stat.h>.
1793	* elflint.c: Likewise.
1794	* readelf.c: Likewise.
1795	* strip.c: Likewise.
1796	* unstrip.c: Likewise
1797
17982010-01-07  Roland McGrath  <roland@redhat.com>
1799
1800	* readelf.c (print_ehdr): Handle PN_XNUM.
1801	(phnum): New static variable.
1802	(process_elf_file): Set it with elf_getphdrnum.
1803	(print_phdr): Use phnum instead of EHDR->e_phnum.
1804	(print_dynamic, handle_notes): Likewise.
1805	(handle_relocs_rel, handle_relocs_rela): Likewise.
1806
1807	* elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
1808
1809	* elflint.c (phnum): New static variable.
1810	(check_elf_header): Set it, handling PN_XNUM.
1811	Use that in place of EHDR->e_phnum throughout.
1812	(check_symtab, check_reloc_shdr, check_dynamic): Likewise.
1813	(unknown_dependency_p, check_sections, check_program_header): Likewise.
1814
18152010-01-05  Roland McGrath  <roland@redhat.com>
1816
1817	* readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
1818	DW_AT_GNU_template_name.
1819
18202010-01-04  Roland McGrath  <roland@redhat.com>
1821
1822	* readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
1823	(handle_core_note): Pass NHDR and NAME to ebl_core_note.
1824	(handle_core_item): Handle .format of '\n' as \n-separated strings.
1825
1826	* readelf.c (implicit_debug_sections): New variable.
1827	(parse_opt): Set it instead of print_debug_sections for -a.
1828	OR them together for print_debug check.
1829	(print_debug): OR them together for section check.
1830
1831	* readelf.c (options): Repartition into set implied by -a and others.
1832	Correct -a text to match reality.
1833
1834	* readelf.c (struct section_argument): Add bool member 'implicit'.
1835	(parse_opt): Set it for -a cases, clear it for -x args.
1836	(for_each_section_argument): Don't complain about a missing section by
1837	name if it's implicit.
1838
18392009-11-16  Roland McGrath  <roland@redhat.com>
1840
1841	* readelf.c (print_string_section): Punt SHT_NOBITS like empty
1842	sections, just as dump_data_section already does.
1843
18442009-09-21  Ulrich Drepper  <drepper@redhat.com>
1845
1846	* elflint.c (special_sections): Allow MERGE and STRINGS flags to be
1847	set for .comment section.
1848	Patch by Mark Wielaard <mjw@redhat.com>.
1849
18502009-09-08  Roland McGrath  <roland@redhat.com>
1851
1852	* ar.c (main): Fix typo in message format.
1853
18542009-08-21  Roland McGrath  <roland@redhat.com>
1855
1856	* readelf.c (attr_callback): Use print_block only when we don't use
1857	print_ops.
1858
18592009-08-14  Roland McGrath  <roland@redhat.com>
1860
1861	* ar.c (do_oper_extract): Use pathconf instead of statfs.
1862
18632009-08-01  Ulrich Drepper  <drepper@redhat.com>
1864
1865	* debugpred.h: Add two most const.
1866
18672009-07-26  Mark Wielaard  <mjw@redhat.com>
1868
1869	* elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
1870
18712009-07-25  Mark Wielaard  <mjw@redhat.com>
1872
1873	* Makefile.am (addr2line_LDADD): Add $(libelf).
1874
18752009-07-24  Roland McGrath  <roland@redhat.com>
1876
1877	* readelf.c (print_block): New function.
1878	(print_ops): Use it.
1879	(attr_callback): Use it for DW_FORM_block* forms.
1880
18812009-07-20  Mark Wielaard  <mjw@redhat.com>
1882
1883	* readelf.c (print_ops): Add handling of DW_OP_implicit_value
1884	and DW_OP_stack_value.
1885
18862009-07-14  Ulrich Drepper  <drepper@redhat.com>
1887
1888	* elflint.c (check_elf_header): Allow Linux ABI.
1889	(check_symtab): Handle STB_GNU_UNIQUE.
1890
18912009-07-08  Mark Wielaard  <mjw@redhat.com>
1892
1893	* readelf.c (attr_callback): Handle DW_Form constants for
1894	DW_AT_data_member_location.
1895
18962009-07-06  Roland McGrath  <roland@redhat.com>
1897
1898	* readelf.c (register_info): New function.  Handle unknown register #s.
1899	(print_cfa_program): Use it.
1900	(handle_core_register, handle_core_registers): Likewise.
1901
19022009-06-28  Roland McGrath  <roland@redhat.com>
1903
1904	* readelf.c (print_address_names): New static variable.
1905	(options, parse_opt): Grok -N/--numeric-addresses to clear it.
1906	(format_dwarf_addr): Don't look up name if !print_address_names.
1907
19082009-06-13  Ulrich Drepper  <drepper@redhat.com>
1909
1910	* ldgeneric.c: Don't use deprecated libelf functions.
1911	* nm.c: Likewise.
1912	* objdump.c: Likewise.
1913	* readelf.c: Likewise.
1914	* size.c: Likewise.
1915	* strip.c: Likewise.
1916	* unstrip.c: Likewise.
1917	* ld.h: Fix up comment.
1918
19192009-06-01  Ulrich Drepper  <drepper@redhat.com>
1920
1921	* readelf.c (print_relocs): Expect ELF header argument and pass on
1922	to handle_relocs_rel* functions. Adjust caller.
1923	(handle_relocs_rel): Add ELF header argument.  Add special case for
1924	the IRELATIVE relocations in statically linked executables.
1925	(handle_relocs_rela): Likewise.
1926
19272009-04-29  Ulrich Drepper  <drepper@redhat.com>
1928
1929	* elflint.c (check_symtab): Add tests of st_other field.
1930
19312009-04-23  Ulrich Drepper  <drepper@redhat.com>
1932
1933	* Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
1934
19352009-04-20  Roland McGrath  <roland@redhat.com>
1936
1937	* addr2line.c (print_dwarf_function): Honor -s and -A for file names
1938	of inline call sites.
1939
1940	* addr2line.c (just_section): New variable.
1941	(adjust_to_section): New function, broken out of ...
1942	(handle_address): ... here.
1943	(options, parse_opt): Add -j/--section=NAME to set it.
1944
19452009-04-15  Roland McGrath  <roland@redhat.com>
1946
1947	* readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
1948	64-bit format header, DW_CIE_ID_32 in 32-bit format header.
1949
19502009-04-14  Roland McGrath  <roland@redhat.com>
1951
1952	* readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
1953	like SHT_GNU_ATTRIBUTES.
1954
1955	* readelf.c (handle_core_registers): Fix error message.
1956
1957	* strip.c (handle_elf: check_preserved): Don't note any change when
1958	.debug_data is already filled from a previous pass.
1959
19602009-02-05  Ulrich Drepper  <drepper@redhat.com>
1961
1962	* objdump.c (show_relocs_x): Minor cleanups.
1963
1964	* readelf.c (print_cfa_program): Correct a few labels.
1965	Print first DW_CFA_expression and DW_CFA_val_expression parameter
1966	as register.
1967
19682009-02-01  Ulrich Drepper  <drepper@redhat.com>
1969
1970	* objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
1971	into ...
1972	(show_relocs_x): ...here.  New function.
1973	(show_relocs): Better spacing in output.
1974
1975	* objdump.c (show_relocs_rela): Show offsets as signed values.
1976
1977	* ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
1978	Improve some error messages.
1979	Use program_invocation_short_name instead of AR macro.
1980	* Makefile.am (CFLAGS_ar): Remove.
1981	* elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
1982	* objdump.c (parse_opt): Likewise.
1983	* readelf.c (parse_opt): Likewise.
1984
19852009-01-27  Roland McGrath  <roland@redhat.com>
1986
1987	* readelf.c (print_ops): Notice short length, don't overrun buffer
1988	(still need to fix LEB128).
1989
1990	* readelf.c (print_ops): Fix DW_OP_call[24] decoding.
1991
1992	* readelf.c (print_ops): Print (empty)\n when LEN == 0.
1993
19942009-01-24  Ulrich Drepper  <drepper@redhat.com>
1995
1996	* readelf.c (print_debug_frame_section): Fix computation of vma_base
1997	for PC-relative mode.
1998
19992009-01-23  Ulrich Drepper  <drepper@redhat.com>
2000
2001	* size.c (process_file): When handling archive, close file descriptor
2002	here.  For unknown file format also close file descriptor.
2003	(handle_ar): Don't close file descriptor here.
2004
2005	* readelf.c (parse_opt): Move code to add to dump_data_sections and
2006	string_sections list in local function add_dump_section.  Adjust 'x'
2007	key handling.  For 'a' key add .strtab, .dynstr, and .comment section
2008	to string_sections list.
2009
20102009-01-22  Roland McGrath  <roland@redhat.com>
2011
2012	* readelf.c (print_phdr): Don't print section mapping when no sections.
2013
2014	* Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
2015
2016	* readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
2017	and reset it only for the 'true' cases.
2018
2019	* Makefile.am (addr2line_no_Wformat): New variable.
2020
2021	* readelf.c (print_debug_frame_section): Use t instead of j formats
2022	for ptrdiff_t OFFSET.
2023
20242009-01-21  Ulrich Drepper  <drepper@redhat.com>
2025
2026	* elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
2027	test.  Handle debuginfo files.
2028	(check_exception_data): First sanity test.
2029
20302009-01-17  Ulrich Drepper  <drepper@redhat.com>
2031
2032	* readelf.c (print_debug_exception_table): Show target of ar_disp
2033	field.
2034
2035	* elflint.c (check_program_header): Add most consistency checks for
2036	PT_GNU_EH_FRAME entry.
2037
2038	* addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
2039	ARGP_PROGRAM_BUG_ADDRESS_DEF.
2040	* ar.c: Likewise.
2041	* elfcmp.c: Likewise.
2042	* elflint.c: Likewise.
2043	* findtextrel.c: Likewise.
2044	* ld.c: Likewise.
2045	* nm.c: Likewise.
2046	* objdump.c: Likewise.
2047	* ranlib.c: Likewise.
2048	* readelf.c: Likewise.
2049
2050	* size.c: Likewise.
2051	* strings.c: Likewise.
2052	* strip.c: Likewise.
2053	* unstrip.c: Likewise.
2054
20552009-01-16  Ulrich Drepper  <drepper@redhat.com>
2056
2057	* elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
2058	matches .eh_frame_hdr section, if it is available.  Also check that
2059	the segment is allocated, not writable, not executable.
2060
2061	* readelf.c: Add -e option.  Dump exception and unwind related
2062	sections.  Add -e to -a.
2063	(print_encoding_base): Handle DW_EH_PE_omit.
2064	(print_debug_exception_table): Beginning of support.
2065	(print_debug): Hook up print_debug_exception_table for
2066	.gcc_except_table sections.
2067
2068	* readelf.c (print_debug_frame_section): Some fixes for last change.
2069
20702009-01-15  Ulrich Drepper  <drepper@redhat.com>
2071
2072	* readelf.c (print_encoding): Now a toplevel function.
2073	(print_relinfo): Likewise.
2074	(print_encoding_base): Broken out of print_debug_frame_section.
2075	(print_debug_frame_section): Print different header for .eh_frame
2076	sections.  Fix recognition of matching CIEs in .debug_frame sections.
2077	Print absolute offset for PC-relative FDE locations.  Don't print
2078	table header for FDEs if the table is empty.
2079	(read_encoded): New function.
2080	(print_debug_frame_hdr_section): New function.
2081	(print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
2082	sections.
2083
2084	* readelf.c (handle_relocs_rel): Print section number.
2085	(print_debug_abbrev_section): Likewise.
2086	(print_debug_aranges_section): Likewise.
2087	(print_debug_ranges_section): Likewise.
2088	(print_debug_info_section): Likewise.
2089	(print_debug_line_section): Likewise.
2090	(print_debug_loc_section): Likewise.
2091	(print_debug_macinfo_section): Likewise.
2092	(print_debug_pubnames_section): Likewise.
2093	(print_debug_str_section): Likewise.
2094
20952009-01-10  Ulrich Drepper  <drepper@redhat.com>
2096
2097	* strings.c (read_block): Fix typo in error message string.
2098
20992009-01-07  Ulrich Drepper  <drepper@redhat.com>
2100
2101	* ld.c (ld_new_searchdir): Fix adding to search path list.
2102
21032009-01-06  Ulrich Drepper  <drepper@redhat.com>
2104
2105	* readelf.c: Implement call frame debug section dumping.
2106
21072009-01-05  Roland McGrath  <roland@redhat.com>
2108
2109	* elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
2110	Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
2111
21122009-01-01  Ulrich Drepper  <drepper@redhat.com>
2113
2114	* addr2line.c: Update copyright year.
2115	* ar.c: Likewise.
2116	* elfcmp.c: Likewise.
2117	* elflint.c: Likewise.
2118	* findtextrel.c: Likewise.
2119	* ld.c: Likewise.
2120	* nm.c: Likewise.
2121	* objdump.c: Likewise.
2122	* ranlib.c: Likewise.
2123	* readelf.c: Likewise.
2124	* size.c: Likewise.
2125	* strings.c: Likewise.
2126	* strip.c: Likewise.
2127	* unstrip.c: Likewise.
2128
21292008-12-11  Roland McGrath  <roland@redhat.com>
2130
2131	* nm.c (sym_name): New function.
2132	(show_symbols_sysv): Use it in place of elf_strptr.
2133	(show_symbols_bsd, show_symbols_posix): Likewise.
2134	Fixes RHBZ#476136.
2135
2136	* nm.c (show_symbols_sysv): Use an alloca'd backup section name when
2137	elf_strptr fails.
2138
21392008-12-02  Roland McGrath  <roland@redhat.com>
2140
2141	* readelf.c (count_dwflmod, process_file): Don't presume encoding of
2142	nonzero OFFSET argument to dwfl_getmodules.
2143
21442008-08-07  Roland McGrath  <roland@redhat.com>
2145
2146	* addr2line.c (main): Pass string to handle_address.
2147	(see_one_module): New function, subroutine of handle_address.
2148	(find_symbol): Likewise.
2149	(handle_address): Take string argument rather than address.
2150	Convert plain number, or handle strings like "(section)+offset"
2151	or "symbol+offset".
2152
21532008-08-01  Roland McGrath  <roland@redhat.com>
2154
2155	* readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
2156	For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
2157
2158	* readelf.c (convert): Take new argument SIZE.
2159	(handle_core_register, handle_core_item): Update callers.
2160	(handle_core_item): Take new arg REPEATED_SIZE.
2161	(handle_core_items): Special case for a singleton item,
2162	let handle_core_item handle repeats if it wants to.
2163
2164	* readelf.c (handle_core_items): Give abridged output
2165	for identical groups repeated more than twice.
2166
21672008-07-04  Roland McGrath  <roland@redhat.com>
2168
2169	* readelf.c (handle_core_items): Handle ELF_T_ADDR.
2170
21712008-04-10  Roland McGrath  <roland@redhat.com>
2172
2173	* strip.c (handle_elf): Don't keep sections that kept symbol tables
2174	refer to.  Instead, just be sure to preserve the original symbol
2175	table in the debug file so those symbols go with their sections and
2176	can be elided from the stripped version of the symbol table.
2177
2178	* strip.c (handle_elf): When a discarded section kept in the debug
2179	file refers to a nondiscard section via sh_link/sh_info, preserve
2180	that nondiscarded section unmodified in the debug file as well.
2181	Skip adjustment of discarded sections symbol table references when
2182	that symbol table is copied in this way.
2183
2184	* elflint.c (check_symtab): Don't crash from missing symbol names
2185	after diagnosing bogus strtab.
2186
2187	* strip.c (handle_elf): Cosmetic cleanup in special section contents
2188	adjustment for symtab changes.
2189
21902008-03-31  Roland McGrath  <roland@redhat.com>
2191
2192	* elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
2193	must be SHT_PROGBITS, must not be SHF_WRITE.  Let backend hook
2194	excuse a special section.
2195
21962008-03-27  Roland McGrath  <roland@redhat.com>
2197
2198	* elflint.c (check_sections): Check that executability and writability
2199	of sections is reflected in segment p_flags.
2200
22012008-03-26  Roland McGrath  <roland@redhat.com>
2202
2203	* elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
2204	that matches its PT_LOAD's p_flags &~ PF_W.  On sparc, PF_X really
2205	is valid in RELRO.
2206
22072008-02-29  Roland McGrath  <roland@redhat.com>
2208
2209	* readelf.c (print_attributes): Add a cast.
2210	* elflint.c (check_attributes): Likewise.
2211
2212	* unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
2213	with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
2214	(add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
2215
22162008-02-03  Ulrich Drepper  <drepper@redhat.com>
2217
2218	* i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
2219	when linked into executable.
2220	(elf_i386_create_relocations): Likewise.
2221
22222008-02-20  Roland McGrath  <roland@redhat.com>
2223
2224	* readelf.c (print_attributes): New function.
2225	(process_elf_file): Call it under -A.
2226
2227	* elflint.c (check_attributes): Implement it for real.
2228
22292008-02-19  Roland McGrath  <roland@redhat.com>
2230
2231	* elflint.c (special_sections): Handle .gnu.attributes section.
2232	(check_sections): Likewise.
2233	(check_attributes): New function.
2234
22352008-02-10  Roland McGrath  <roland@redhat.com>
2236
2237	* elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
2238	sections and ET_REL files.
2239
22402008-02-02  Ulrich Drepper  <drepper@redhat.com>
2241
2242	* elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
2243	* i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
2244	and R_386_TLS_LE.
2245	(elf_i386_create_relocations): Likewise.
2246	* ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
2247	elements.
2248	* ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
2249	(ld_generic_create_outfile): Add PT_TLS entry to program  header.
2250	Fix generation of PT_GNU_STACK entry.
2251
22522008-02-01  Ulrich Drepper  <drepper@redhat.com>
2253
2254	* ld.c (replace_args): Prevent loop over replacements if the parameter
2255	is only two characters long.
2256
2257	* ld.c: Recognize sha1 argument for --build-id parameter.
2258	* ldgeneric.c (create_build_id_section): Handle sha1.
2259	(compute_hash_sum): New function.  Broken out of compute_build_id.
2260	Take hash function and context as parameters.
2261	(compute_build_id): Use compute_hash_sum for md5 and the new sha1
2262	implementation.
2263
22642008-01-31  Ulrich Drepper  <drepper@redhat.com>
2265
2266	* elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
2267	* ld.c: Recognize --build-id command line parameter.
2268	* ld.h: Define scn_dot_note_gnu_build_id.
2269	(struct ld_state): Add build_id and buildidscnidx elements.
2270	* ldgeneric.c: Implement --build-id command line parameter.
2271	* ldlex.l (ID): Recognize - as valid character after the first one.
2272
22732008-01-29  Ulrich Drepper  <drepper@redhat.com>
2274
2275	* ld.c (replace_args): New function.
2276	(main): Use it to rewrite old-style parameters.
2277
2278	* elf32-i386.script: Add .gnu.hash section.
2279	* ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
2280	(fillin_special_symbol): Initialize st_size.
2281	(sortfct_hashval): New function.
2282	(create_gnu_hash): New function.
2283	(create_hash): New function.
2284	(ld_generic_create_outfile): Use the new functions to create the
2285	hash tables.
2286
2287	* elflint.c (check_gnu_hash): Fix index value printed in error message.
2288
22892008-01-24  Ulrich Drepper  <drepper@redhat.com>
2290
2291	* elflint.c (check_group): Check that signature symbol for section
2292	group is not an empty string.
2293	* ldgeneric.c: Remove magic assignment of indeces in the dynsym
2294	section.  Start implementation of --hash-style.
2295	* i386_ld.c: Likewise.
2296	* ld.c: Recognize --hash-style.
2297	* ld.h (struct scninfo): Add comdat_group.
2298	Add additional parameter to finalize_plt callback.
2299
23002008-01-22  Ulrich Drepper  <drepper@redhat.com>
2301
2302	* ld.h (struct callbacks): Add initialize_gotplt.
2303	(struct scnhead): Add scn_dot_gotplt.
2304	(struct ld_state): Add gotpltscnidx.
2305	* i386_ld.c (elf_i386_initialize_plt): Minor optimization.
2306	(elf_i386_initialize_pltrel): Likewise.
2307	(elf_i386_initialize_got): There is now a separate .got.plt, so
2308	don't do the PLT-related work here.  Initialize d_type.
2309	(elf_i386_initialize_gotplt): New function.
2310	(elf_i386_plt0): Use ud2a after indirect jump.
2311	(elf_i386_pic_plt0_entry): Likewise.
2312	(elf_i386_finalize_plt): Reference now .got.plt.
2313	(elf_i386_count_relocations): For GOT entries which need no relocation
2314	don't bump nrel_got.
2315	(elf_i386_create_relocations): Also get .got.plt.  Rewrite R-386_GOT32
2316	handling for split .got/.got.plt.
2317	(elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
2318	* elf32-i386.script: Sort sections for security.  There are no .got
2319	input sections.  Add .got.plt.
2320	* ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
2321	(ld_generic_create_outfile): Initialize .got.plt section.
2322	Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
2323
23242008-01-19  Ulrich Drepper  <drepper@redhat.com>
2325
2326	* i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
2327	symbols are not carried over into statically linked output files.
2328	Add dummy entries for more TLS relocations.
2329
2330	* ld.c (options): Add long names for -( and -).
2331
2332	* ldgeneric.c (check_definition): For newly found definitions don't
2333	mark section as used if symbol is absolute.
2334	(extract_from_archive): Only assign archive sequence number the first
2335	time the archive is handled.  Update ld_state.last_archive_used
2336	if any symbol was used.  Remove nround variable.
2337	(file_process2): When using symbol from an archive, update
2338	ld_state.group_start_archive, ld_state.archives, and
2339	ld_state.tailarchives.
2340	(ld_generic_file_process): If group is not handled anymore, after
2341	freeing ELF handles for the archives, clear ld_state.archives and
2342	*nextp.  Fix wrong logic in recognizing first iteration of group
2343	loop.  When clearing flags, also clear ld_state.group_start_archive.
2344
23452008-01-11  Ulrich Drepper  <drepper@redhat.com>
2346
2347	* objdump.c (show_disasm): Adjust disassembler format string for
2348	removal of %e.
2349
23502008-01-04  Roland McGrath  <roland@redhat.com>
2351
2352	* readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
2353	a size greater than the items cover means multiple sets of items.
2354	(handle_core_note): Update caller.
2355
23562008-01-04  Roland McGrath  <roland@redhat.com>
2357
2358	* strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
2359
23602008-01-03  Roland McGrath  <roland@redhat.com>
2361
2362	* ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
2363
2364	* elflint.c (check_dynamic): Remove duplicate initializer.
2365
23662008-01-02  Ulrich Drepper  <drepper@redhat.com>
2367
2368	* addr2line.c: Update copyright year.
2369	* ar.c: Likewise.
2370	* elfcmp.c: Likewise.
2371	* elflint.c: Likewise.
2372	* findtextrel.c: Likewise.
2373	* ld.c: Likewise.
2374	* nm.c: Likewise.
2375	* objdump.c: Likewise.
2376	* ranlib.c: Likewise.
2377	* readelf.c: Likewise.
2378	* size.c: Likewise.
2379	* strings.c: Likewise.
2380	* strip.c: Likewise.
2381	* unstrip.c: Likewise.
2382
23832007-12-30  Ulrich Drepper  <drepper@redhat.com>
2384
2385	* objdump (show_disasm): Use %e after third parameter.
2386
23872007-12-21  Ulrich Drepper  <drepper@redhat.com>
2388
2389	* strip.c: Fix wrong parenthesis in a few branch predictions.
2390	* strings.c: Likewise.
2391
23922007-12-20  Ulrich Drepper  <drepper@redhat.com>
2393
2394	* Makefile.am (DEFS): Add DEBUGPRED.
2395	* addr2line.c: Include debugpred.h.
2396	* ar.c: Likewise.
2397	* elfcmp.c: Likewise.
2398	* elflint.c: Likewise.
2399	* findtextrel.c: Likewise.
2400	* nm.c: Likewise.
2401	* objdump.c: Likewise.
2402	* ranlib.c: Likewise.
2403	* readelf.c: Likewise.
2404	* size.c: Likewise.
2405	* strings.c: Likewise.
2406	* strip.c: Likewise.
2407	* unstrip.c: Likewise.
2408	* debugpred.h: New file.
2409
2410	* readelf.c (handle_relocs_rel): Use elf_scnshndx.
2411	(handle_relocs_rela): Likewise.
2412
2413	* readelf.c: Add lots of likely/unlikely.
2414
2415	* elflint.c: Minor cleanups.
2416
24172007-11-19  Roland McGrath  <roland@redhat.com>
2418
2419	* readelf.c (print_ops): Handle all bad op codes gracefully.
2420	Print their numbers instead of just ???.
2421
24222007-11-09  Roland McGrath  <roland@redhat.com>
2423
2424	* readelf.c (attr_callback): Handle DW_AT_data_location.
2425	Handle block forms to mean a DWARF expression for DW_AT_allocated,
2426	DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
2427	DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
2428	DW_AT_upper_bound.
2429
24302007-10-20  Roland McGrath  <roland@redhat.com>
2431
2432	* unstrip.c (options): Update -R description.
2433	(struct symbol): Put symbol details a union with a size_t pointer
2434	`duplicate'.
2435	(compare_symbols_output): Use null ->name as marker for discard
2436	symbols, not zero *->map.
2437	(copy_elided_sections): Record forwarding pointers for discarded
2438	duplicates and fill SYMNDX_MAP elements through them.
2439
2440	* readelf.c (process_file): Set offline_next_address to 0 at start.
2441	(struct process_dwflmod_args): New type.
2442	(process_dwflmod): Take args in it, pass fd to process_elf_file.
2443	(process_file): Update caller; dup FD for passing to libdwfl.
2444	(process_elf_file): Take new arg FD.  For ET_REL file when
2445	displaying data affected by libdwfl relocation, open a new Elf handle.
2446
24472007-10-17  Roland McGrath  <roland@redhat.com>
2448
2449	* readelf.c (print_debug_line_section): For invalid data inside a
2450	unit with plausible length, keep printing at the next unit boundary.
2451
2452	* readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
2453
24542007-10-16  Roland McGrath  <roland@redhat.com>
2455
2456	* readelf.c (hex_dump): Fix rounding error in whitespace calculation.
2457
24582007-10-15  Roland McGrath  <roland@redhat.com>
2459
2460	* make-debug-archive.in: New file.
2461	* Makefile.am (EXTRA_DIST): Add it.
2462	(make-debug-archive): New target.
2463	(bin_SCRIPTS, CLEANFILES): Add it.
2464
24652007-10-10  Roland McGrath  <roland@redhat.com>
2466
2467	* elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
2468	Use it to check MERGE|STRINGS for .debug_str.
2469	(check_sections): Handle exact_or_gnuld.
2470
24712007-10-08  Roland McGrath  <roland@redhat.com>
2472
2473	* readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
2474	64-bit struct timeval with 32-bit tv_usec.
2475
24762007-10-07  Roland McGrath  <roland@redhat.com>
2477
2478	* readelf.c (check_archive_index): New function.
2479	(process_file): Call it.  Change signature to take only fd and name.
2480	Use libdwfl to open the file, then iterate on its modules (multiple
2481	for an archive) to print file name and call process_elf_file.
2482	(main): Update caller.  Let process_file do elf_begin.
2483	(count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
2484	(process_elf_file): Take only Dwfl_Module * argument.
2485	Don't print the file name here.
2486	(print_debug_*_section): Take Dwfl_Module * argument.
2487	(print_debug): Likewise.  Update caller.
2488	(format_dwarf_addr): New function.
2489	(print_debug_ranges_section): Use it.
2490	(attr_callback): Likewise.
2491	(print_debug_line_section, print_debug_loc_section): Likewise.
2492
2493	* readelf.c (print_debug_ranges_section): Translate all strings.
2494	(print_debug_loc_section): Likewise.
2495
2496	* unstrip.c (copy_elided_sections): Initialize SEC.
2497
2498	* ar.c (do_oper_insert): Put trailing / on short names.
2499
2500	* arlib.h (MAX_AR_NAME_LEN): Decrease by one.
2501
2502	* arlib2.c (arlib_add_long_name): Adjust for header size.
2503
2504	* arlib.c (arlib_finalize): Pad long name table to keep size even.
2505
2506	* ar.c (do_oper_insert): Use write_retry for padding write.
2507
2508	* ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
2509	Unconditionally set FOUND[CNT]->elf when setting ->mem.
2510	(remember_long_name): New function.
2511	(do_oper_insert): Call it.  Correctly use length of basename,
2512	not original name.  Don't store long name twice for new member.
2513
25142007-10-06  Roland McGrath  <roland@redhat.com>
2515
2516	* elflint.c (check_note): Skip empty segment.
2517	(check_note_section): Skip empty section.
2518
2519	* unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
2520	(handle_output_dir_module, handle_implicit_modules): Pass it down.
2521	(handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
2522	(compare_alloc_sections): Take new arg REL, ignore address if true.
2523	(compare_sections): Likewise, pass it down.
2524	(compare_sections_rel, compare_sections_nonrel): New functions.
2525	(find_alloc_sections_prelink, copy_elided_sections): Use them
2526	instead of compare_sections.
2527	(sections_match): New function, broken out of ...
2528	(find_alloc_section): ... here.
2529	(copy_elided_sections): Reorganize section match-up logic.
2530	Use sections_match for SHF_ALLOC in ET_REL.
2531	For ET_REL, let the nonzero sh_addr from the debug file dominate.
2532
2533	* unstrip.c (add_new_section_symbols): Take new arg REL.
2534	When true, do not update section symbol values.
2535	(collect_symbols): Likewise.  Update section symbols with address
2536	of chosen output section, not original section.
2537	(check_symtab_section_symbols, copy_elided_sections): Update callers.
2538
2539	* unstrip.c (compare_alloc_sections): At the same address, preserve
2540	original section order.
2541
2542	* elflint.c (special_sections): Don't require MERGE|STRINGS for
2543	.debug_str, it didn't always have them with older tools.
2544
2545	* elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
2546
25472007-10-05  Roland McGrath  <roland@redhat.com>
2548
2549	* elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
2550	ET_REL file.
2551
2552	* elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
2553	SHN_UNDEF as "bad section".  Use shndx value in messages.
2554
2555	* elflint.c (special_sections): Add ".debug_str".  Decrement namelen
2556	for ".debug" so it matches as a prefix.
2557	(IS_KNOWN_SPECIAL): New macro.
2558	(check_sections): Use it for ".plt" match.  Cite wrong SHT_NOBITS
2559	type even under -d, for a .debug* or .shstrtab section.
2560
2561	* readelf.c (print_ops): Use hex for address operand.
2562
25632007-10-04  Roland McGrath  <roland@redhat.com>
2564
2565	* unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
2566	.gnu_debuglink section to SHN_UNDEF.  Drop STT_SECTION symbols for
2567	sections mapped to SHN_UNDEF.
2568
25692007-10-04  Ulrich Drepper  <drepper@redhat.com>
2570
2571	* readelf.c (dump_archive_index): Avoid warning about uninitialized
2572	variable with older glibc versions.
2573	Add some branch prediction.
2574
25752007-10-04  Roland McGrath  <roland@redhat.com>
2576
2577	* readelf.c (print_archive_index): New variable.
2578	(options, parse_opt): Accept -c/--archive-index to set it.
2579	(dump_archive_index): New function.
2580	(process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
2581	Call dump_archive_index on archives if set.
2582	(main): Update caller.
2583	(any_control_option): Give it file scope, moved out of ...
2584	(parse_opt): ... here.
2585
25862007-10-03  Roland McGrath  <roland@redhat.com>
2587
2588	* unstrip.c (struct arg_info): Add `list' flag.
2589	(options, parse_opt): Grok -n/--list to set it.
2590	(list_module): New function.
2591	(handle_implicit_modules): Call it under -n.
2592
2593	* elflint.c (check_note_section): New function.
2594	(check_sections): Call it for SHT_NOTE.
2595
2596	* readelf.c (handle_notes): Use sections when available.
2597
2598	* elflint.c (check_note_data): New function, broken out of ...
2599	(check_note): ... here.  Call it and elf_getdata_rawchunk.
2600
2601	* readelf.c (handle_auxv_note): Take offset as argument, not buffer.
2602	Use elf_getdata_rawchunk and gelf_getauxv.
2603	(handle_notes_data): New function, broken out of ...
2604	(handle_notes): ... here.  Call it and elf_getdata_rawchunk.
2605
26062007-10-01  Roland McGrath  <roland@redhat.com>
2607
2608	* readelf.c (hex_dump): Fix transposed subtraction generating spaces.
2609
2610	* readelf.c (hex_dump): Fix line header to be hex instead of decimal.
2611
26122007-09-10  Roland McGrath  <roland@redhat.com>
2613
2614	* readelf.c (options): Give -p optional argument, alias --string-dump.
2615	(string_sections, string_sections_tail): New static variables.
2616	(parse_opt): Set them when -p has an argument.
2617	(print_string_section): New function, broken out of ...
2618	(print_strings): ... here.  Call it.
2619	(dump_data_section): New function, broken out of ...
2620	(dump_data): ... here.  Call it.
2621	(for_each_section_argument): New function, broken out of ...
2622	(dump_data): ... here.  Call it.
2623	(dump_strings): New function.
2624
26252007-08-31  Roland McGrath  <roland@redhat.com>
2626
2627	* readelf.c (print_strings): Typo fix.
2628
26292007-08-23  Roland McGrath  <roland@redhat.com>
2630
2631	* readelf.c (printf_with_wrap): Function removed.
2632	(REGISTER_WRAP_COLUMN): New macro.
2633	(handle_core_register): Use print_core_item instead.
2634	(struct register_info): New type.
2635	(compare_registers, compare_register_sets): New functions.
2636	(register_bitpos, compare_sets_by_info): New functions.
2637	(handle_core_registers): Use those to segregate and sort registers
2638	for display.
2639
2640	* readelf.c (ITEM_WRAP_COLUMN): New macro.
2641	(print_core_item): New function.
2642	(handle_core_item): Use it instead of printf_with_wrap.
2643	(compare_core_items, compare_core_item_groups): New functions.
2644	(handle_core_items): Use them.  Sort by group and force line breaks
2645	between groups.
2646
2647	* readelf.c (handle_core_registers, handle_core_items): New functions,
2648	broken out of ...
2649	(handle_core_note): ... here.   Call them.
2650
26512007-08-22  Roland McGrath  <roland@redhat.com>
2652
2653	* unstrip.c (new_shstrtab): New function, broken out of ...
2654	(copy_elided_sections): ... here.
2655
26562007-08-20  Roland McGrath  <roland@redhat.com>
2657
2658	Avoid local function trampolines in nm binary.
2659	* nm.c (sort_by_address): Move to a static function instead of local
2660	inside show_symbols.
2661	(sort_by_name_strtab): New static variable.
2662	(sort_by_name): Use it.  Move to a static function instead of local
2663	inside show_symbols.
2664	(show_symbols): Set sort_by_name_strtab.
2665
26662007-08-19  Roland McGrath  <roland@redhat.com>
2667
2668	* readelf.c (handle_auxv_note): New function.
2669	(handle_notes): Call it.
2670
2671	* readelf.c (printf_with_wrap, convert): New functions.
2672	(handle_core_item, (handle_core_register): New functions.
2673	(handle_notes): Call those with details from ebl_core_note.
2674
26752007-08-12  Roland McGrath  <roland@redhat.com>
2676
2677	* elflint.c (check_note): Accept type 0 with name "Linux".
2678
2679	* elflint.c (special_sections): Accept SHF_ALLOC for ".note".
2680
2681	* elflint.c (section_flags_string): Return "none" for 0, not "".
2682
26832007-08-11  Roland McGrath  <roland@redhat.com>
2684
2685	* elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
2686
26872007-08-04  Ulrich Drepper  <drepper@redhat.com>
2688
2689	* readelf.c (hex_dump): Use isprint to determine whether to print
2690	character itself or full stop character.
2691	(dump_data): No need to check endp for NULL after strtol call.
2692
26932007-08-03  Roland McGrath  <roland@redhat.com>
2694
2695	* readelf.c (print_string_sections): New variable.
2696	(options, parse_opt): Handle --strings/-p to set it.
2697	(print_strings): New function.
2698	(process_elf_file): Call it under -p.
2699
2700	* readelf.c (options): Add hidden aliases --segments, --sections,
2701	as taken by binutils readelf.
2702
27032007-08-01  Roland McGrath  <roland@redhat.com>
2704
2705	* readelf.c (dump_data_sections, dump_data_sections_tail):
2706	New variables.
2707	(options, parse_opt): Handle --hex-dump/-x, set them.
2708	(hex_dump): New function.
2709	(dump_data): New function, call it.
2710	(process_elf_file): Call it.
2711
27122007-07-25  Roland McGrath  <roland@redhat.com>
2713
2714	* addr2line.c (show_symbols): New variable.
2715	(print_addrsym): New function.
2716	(handle_address): Call it.
2717	(options, parse_opt): Handle -S/--symbols.
2718
27192007-06-05  Ulrich Drepper  <drepper@redhat.com>
2720
2721	* addr2line.c: Update for latest autoconf header.
2722	* ar.c: Likewise.
2723	* elfcmp.c: Likewise.
2724	* elflint.c: Likewise.
2725	* findtextrel.c: Likewise.
2726	* ld.c: Likewise.
2727	* ldgeneric.c: Likewise.
2728	* nm.c: Likewise.
2729	* objdump.c: Likewise.
2730	* ranlib.c: Likewise.
2731	* readelf.c: Likewise.
2732	* size.c: Likewise.
2733	* strings.c: Likewise.
2734	* strip.c: Likewise.
2735	* unstrip.c: Likewise.
2736
27372007-05-18  Roland McGrath  <roland@redhat.com>
2738
2739	* unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
2740	stripped file, so as not to duplicate a section copied in both.
2741
2742	* strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
2743
27442007-05-17  Roland McGrath  <roland@redhat.com>
2745
2746	* unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
2747
2748	* unstrip.c (handle_file): Tweak BIAS != 0 warning.
2749
2750	* unstrip.c (handle_file): Take new arg CREATE_DIRS.  If set,
2751	call make_directories here.
2752	(handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
2753	(handle_dwfl_module): Likewise.
2754	(handle_implicit_modules): Update callers.
2755	(handle_output_dir_module): Likewise.  Don't do make_directories here.
2756
2757	* unstrip.c (get_section_name): New function, broken out of ...
2758	(copy_elided_sections): here.  Update callers.
2759	(find_alloc_section): Broken out of ...
2760	(copy_elided_sections): ... here.  Update caller.
2761	(symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
2762	update STT_SECTION symbols' st_value fields as a side effect.
2763	(check_symtab_section_symbols): Update caller.
2764	(add_new_section_symbols): Set st_value in symbols added.
2765	(collect_symbols): Reset S->value for STT_SECTION symbols recorded.
2766	Take new arg SPLIT_BSS.  Adjust S->shndx recorded for symbols moved
2767	from .bss to .dynbss.
2768	(find_alloc_sections_prelink): New function.  Associate debug file
2769	allocated SHT_NOBITS shdrs with stripped moved by prelink via
2770	.gnu.prelink_undo information.
2771	(copy_elided_sections): Call it when we couldn't find every allocated
2772	section.  Don't use a debug file non-NOBITS section if SHF_ALLOC.
2773	Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
2774	(handle_file): Update callers.
2775
2776	* unstrip.c (copy_elided_sections): Ignore unfound unallocated section
2777	named ".comment".
2778
2779	* elflint.c (check_sections): Fix association of segments with
2780	sections when p_memsz > p_filesz.
2781
27822007-04-29  Roland McGrath  <roland@redhat.com>
2783
2784	* addr2line.c (options, main): Tweak argp group settings to fix
2785	usage output.
2786
27872007-04-28  Roland McGrath  <roland@redhat.com>
2788
2789	* strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
2790	sizes to match sections adjusted in the stripped file.
2791
27922007-04-24  Roland McGrath  <roland@redhat.com>
2793
2794	* elfcmp.c (OPT_HASH_INEXACT): New macro.
2795	(hash_inexact): New variable.
2796	(options, parse_opt): Add --hash-inexact option to set it.
2797	(hash_content_equivalent): New function.
2798	(main): Call it for differing SHT_HASH sections under --hash-inexact.
2799
28002007-04-23  Roland McGrath  <roland@redhat.com>
2801
2802	* unstrip.c: New file.
2803	* Makefile.am (bin_PROGRAMS): Add it.
2804	(unstrip_LDADD): New variable.
2805
2806	* strip.c (options): Allow --output for -o.
2807
28082007-02-15  Ulrich Drepper  <drepper@redhat.com>
2809
2810	* readelf.c: Remove unused code.  Add a few consts.
2811
28122007-02-15  Roland McGrath  <roland@redhat.com>
2813
2814	* readelf.c (print_debug): Fix brainos in SHDR test.
2815
28162007-02-05  Roland McGrath  <roland@redhat.com>
2817
2818	* ar.c: Include <limits.h>, since we use LONG_MAX.
2819
28202007-02-05  Ulrich Drepper  <drepper@redhat.com>
2821
2822	* ar.c: Add ugly hack to work around gcc complaining that we
2823	ignore fchown's return value.
2824	(do_oper_insert): Handle error when writing padding.
2825	* ranlib.c: Add fchown complain work around.
2826
2827	* arlib.c: Make symtab a global variable.  Change all users.
2828	* arlib2.c: Likewise.
2829	* ranlib.c: Likewise.
2830	* ar.c: Likewise.
2831	* arlib.h: Declare it.
2832
28332007-01-11  Roland McGrath  <roland@redhat.com>
2834
2835	* elflint.c (check_sections): Use ebl_machine_section_flag_check on
2836	SHF_MASKPROC bits separately from generic sh_flags validation.
2837
28382007-02-04  Ulrich Drepper  <drepper@redhat.com>
2839
2840	* ar.c: New file.
2841	* arlib.c: New file.
2842	* arlib2.c: New file.
2843	* arlib.h: New file.
2844	* Makefile (noinst_LIBRARIES): Add libar.
2845	(libar_a_SOURCES): Define.
2846	(ar_LDADD): Define.
2847	(CFLAGS_ar): Define.
2848	* ranlib.c: Change to use arlib.
2849
2850	* elflint.c (check_symtab): Work around GNU ld bug which omits
2851	sections but not symbols in those sections.
2852
28532007-01-10  Ulrich Drepper  <drepper@redhat.com>
2854
2855	* addr2line.c: Update copyright year.
2856	* elfcmp.c: Likewise.
2857	* elflint.c: Likewise.
2858	* findtextrel.c: Likewise.
2859	* ld.c: Likewise.
2860	* nm.c: Likewise.
2861	* objdump.c: Likewise.
2862	* ranlib.c:  Likewise.
2863	* readelf.c: Likewise.
2864	* size.c: Likewise.
2865	* strings.c: Likewise.
2866	* strip.c: Likewise.
2867
28682006-12-09  Ulrich Drepper  <drepper@redhat.com>
2869
2870	* elflint.c (compare_hash_gnu_hash): New function.  Report if the
2871	two hash tables have different content (module expected omission
2872	of undefined symbols).
2873
28742006-10-31  Roland McGrath  <roland@redhat.com>
2875
2876	* elflint.c (check_program_header): Don't complain about
2877	p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
2878
28792006-09-19  Jakub Jelinek  <jakub@redhat.com>
2880
2881	* strip.c (process_file): Disallow -f on archives.
2882
28832006-10-09  Roland McGrath  <roland@redhat.com>
2884
2885	* Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
2886
28872006-08-29  Roland McGrath  <roland@redhat.com>
2888
2889	* Makefile.am (MAINTAINERCLEANFILES): New variable.
2890
2891	* readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
2892	Reported by Christian Aichinger <Greek0@gmx.net>.
2893
2894	* elflint.c (valid_e_machine): Add EM_ALPHA.
2895	Reported by Christian Aichinger <Greek0@gmx.net>.
2896
28972006-08-08  Ulrich Drepper  <drepper@redhat.com>
2898
2899	* elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
2900	Keep track of which "high DT" entries are present.
2901	Check that either old or GNU-style hash table is present.
2902	If GNU-style hash table is used a symbol table is mandatory.
2903	Check that if any prelink entry is present all of them are.
2904	(check_gnu_hash): Only fail for undefined symbols in GNU-style hash
2905	table if they don't refer to functions.
2906
29072006-07-17  Roland McGrath  <roland@redhat.com>
2908
2909	* elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
2910	(add_version): Likewise for argument.
2911	(check_versym): Cast constant to GElf_Versym for comparison.
2912
29132006-07-12  Roland McGrath  <roland@redhat.com>
2914
2915	* readelf.c (handle_gnu_hash): Add casts for machines where
2916	Elf32_Word != unsigned int.
2917
29182006-07-12  Ulrich Drepper  <drepper@redhat.com>
2919
2920	* elflint.c (check_sysv_hash64): Fix printf format.
2921
29222006-07-11  Roland McGrath  <roland@redhat.com>
2923
2924	* addr2line.c (options): English fix in -f doc string.
2925
2926	* addr2line.c (use_comp_dir): New variable.
2927	(options, parse_opt): Grok -A/--absolute to set it.
2928	(handle_address): If set, prepend dwfl_line_comp_dir results to
2929	relative file names.
2930
29312006-07-06  Ulrich Drepper  <drepper@redhat.com>
2932
2933	* elflint.c: Adjust for latest new hash table format.
2934	* readelf.c: Likewise.
2935
2936	* elflint.c (check_versym): Ignore hidden bit when comparing version
2937	numbers.
2938
29392006-07-05  Ulrich Drepper  <drepper@redhat.com>
2940
2941	* ldgeneric.c (ld_generic_create_outfile): Correctly recognize
2942	discarded COMDAT symbols.
2943
2944	* i386_ld.c (elf_i386_count_relocations): Lot of corrections.
2945	(elf_i386_create_relocations): Likewise.
2946	* ld.h (struct symbol): Add local and hidden bits.
2947	* ld.c (create_special_section_symbol): These synthsized symbols
2948	are local and hidden.
2949	* ldgeneric.c (file_process2): Check whether input file matches
2950	the emulation.
2951	(fillin_special_symbol): Create symbols as local and/or hidden
2952	if requested.
2953	(ld_generic_create_outfile): Make local copy of symbol.
2954	Don't hide global, defined symbols in dynamic symbol table unless
2955	requested.  Synthetic symbols have no version information.
2956
2957	* elflint.c: Add support for checking 64-bit SysV-style hash tables.
2958	* readelf.c: Add support for printing 64-bit SysV-style hash tables.
2959
29602006-07-04  Ulrich Drepper  <drepper@redhat.com>
2961
2962	* elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
2963	testing.
2964
29652006-07-03  Ulrich Drepper  <drepper@redhat.com>
2966
2967	* elflint.c: Add testing of DT_GNU_HASH.
2968	* readelf.c: Implement showing histogram for DT_GNU_HASH section.
2969
2970	* Makefile.am: Add hacks to create dependency files for non-generic
2971	linker.
2972
29732006-06-12  Ulrich Drepper  <drepper@redhat.com>
2974
2975	* ldgeneric.c (ld_generic_generate_sections): Don't create .interp
2976	section if creating a DSO and no interpreter is given.
2977	(ld_generic_create_outfile): Don't store reference to symbols in
2978	discarded COMDAT groups.  Don't create PHDR and INTERP program header
2979	for DSO if no interpreter is specified.
2980	(create_verneed_data): Pretty printing.
2981
2982	* ldscript.y (content): If a DSO is created don't set default
2983	interpreter from linker script.
2984
2985	* i386_ld.c (elf_i386_count_relocations): Do not add relocations
2986	for symbols in discarded COMDAT groups.
2987	(elf_i386_create_relocations): Likewise.
2988	* ld.h (struct scninfo): Add unused_comdat.
2989	* ldgeneric.c (add_section): Also check group signature when
2990	matching COMDAT sections.
2991	(add_relocatable_file): Ignore symbols in COMDAT group which are
2992	discarded.
2993
2994	* elflint.c (check_one_reloc): For *_NONE relocs only check type
2995	and symbol reference.
2996
29972006-06-11  Ulrich Drepper  <drepper@redhat.com>
2998
2999	* elflint.c (check_dynamic): Fix checking value of tags which are
3000	offsets in the string section.  Make sure DT_STRTAB points to the
3001	section referenced in sh_link.
3002
3003	* ld.c (options): Add headers.  Add short option 'R' for '--rpath'.
3004
3005	* ld.c: Recognize --eh-frame-hdr option.
3006	* ld.h (struct ld_state): Add eh_frame_hdr field.
3007	* ldgeneric.c (struct unw_eh_frame_hdr): Define.
3008
3009	* ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
3010	SH_FLAGS_COMBINE.
3011	(add_relocatable_file): Minor optimization of last change.
3012	(match_section): Don't preserve SHF_GROUP flag any longer.
3013
30142006-06-10  Ulrich Drepper  <drepper@redhat.com>
3015
3016	* ld.c (parse_z_option): Recognize execstack and noexecstack.
3017	Handle record and ignore as position dependent options.
3018	(parse_z_option_2): Handle ignore and record here.
3019	* ld.h (struct ld_state): Add execstack field.
3020	* ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
3021	sections.
3022	(ld_generic_create_outfile): Fix program header creation in native
3023	linker.  Add PT_GNU_STACK program header.
3024
30252006-06-09  Ulrich Drepper  <drepper@redhat.com>
3026
3027	* i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
3028	for PLT entries if there is no local definition.
3029
3030	* ld.c (parse_option): Handle -z ignore like --as-needed and
3031	-z record like --no-as-needed.
3032	* ld.h (struct ld_state): Remove ignore_unused_dsos field.
3033	* ldgeneric.c (new_generated_scn): Always compute ndt_needed by
3034	looping over DSOs.  When deciding about adding DT_NEEDED entries
3035	use ->as_needed instead of ignore_unused_dsos.
3036
30372006-05-31  Ulrich Drepper  <drepper@redhat.com>
3038
3039	* ld.c: Recognize --as-needed and --no-as-needed options.
3040	* ld.h (struct usedfile): Add as_needed field.
3041	(struct ld_state): Likewise.
3042	* ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
3043	the list.
3044	* ldscript.y (filename_id_list): Split to correctly parse all
3045	combinations.
3046	(mark_as_needed): Fix loop.
3047
30482006-05-28  Ulrich Drepper  <drepper@redhat.com>
3049
3050	* addr2line.c (print_dwarf_function): Use unsigned type for lineno
3051	and colno.
3052
30532006-05-27  Ulrich Drepper  <drepper@redhat.com>
3054
3055	* readelf.c (handle_relocs_rela): Better notations for addon value.
3056	(print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
3057
30582006-04-04  Ulrich Drepper  <drepper@redhat.com>
3059
3060	* addr2line.c: Update copyright year.
3061	* elfcmp.c: Likewise.
3062	* elflint.c: Likewise.
3063	* findtextrel.c: Likewise.
3064	* ld.c: Likewise.
3065	* nm.c: Likewise.
3066	* objdump.c: Likewise.
3067	* ranlib.c: Likewise.
3068	* readelf.c: Likewise.
3069	* size.c: Likewise.
3070	* strings.c: Likewise.
3071	* strip.c: Likewise.
3072
30732006-03-09  Roland McGrath  <roland@redhat.com>
3074
3075	* Makefile.am (AM_LDFLAGS): New variable.
3076
30772006-03-01  Roland McGrath  <roland@redhat.com>
3078
3079	* readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
3080	for dwarf.h changes matching 3.0 spec.
3081	(dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
3082
30832005-12-04  Ulrich Drepper  <drepper@redhat.com>
3084
3085	* elflint.c (check_one_reloc): If relocation section is not loaded,
3086	don't check whether the relocations modify read-only sections or
3087	loaded and unloaded sections.
3088
30892005-11-28  Ulrich Drepper  <drepper@redhat.com>
3090
3091	* elflint.c (check_one_reloc): Take additional parameters.  Use
3092	them to determine whether relocation is valid in this type of
3093	file.  DSOs and executables can contain relocation sections in
3094	unloaded sections which just show the relocations the linker
3095	applied.  Adjust all callers.
3096	(check_program_header): Check that PT_PHDR is loaded and that offset
3097	matches the one in the ELF header.
3098
30992005-10-26  Roland McGrath  <roland@redhat.com>
3100
3101	* nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
3102
31032005-09-03  Ulrich Drepper  <drepper@redhat.com>
3104
3105	* strip.c (handle_elf): Unify some error messages.
3106	* ld.c (main): Likewise.
3107	* ldgeneric.c (open_elf): Likewise.
3108	* elfcmp.c (main): Likewise.
3109	* elflint.c (check_elf_header): Likewise.
3110
3111	* size.c (process_file): Fix typo in error message.
3112
3113	* readelf.c: Lots of little cleanups.  Use _unlocked functions.
3114
31152005-09-02  Ulrich Drepper  <drepper@redhat.com>
3116
3117	* strings.c (main): Reset elfmap variable after munmap call.
3118	[_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
3119
31202005-08-28  Ulrich Drepper  <drepper@redhat.com>
3121
3122	* ranlib.c: Don't define pread_retry and write_retry here.
3123
3124	* Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
3125	(CLEANFILES): Add *.gcno *.gcda *.gconv.
3126
3127	* strings.c (process_chunk): Reorder expressions in conditional
3128	(process_chunk_mb): Likewise.
3129
3130	* strings.c: New file.
3131	* Makefile.am (bin_PROGRAMS): Add strings.
3132	(strings_no_Wstring): Define.
3133	(strings_LDADD): Define.
3134
31352005-08-27  Roland McGrath  <roland@redhat.com>
3136
3137	* addr2line.c (dwarf_diename_integrate): Function removed.
3138	(print_dwarf_function): Use plain dwarf_diename.
3139
31402005-08-24  Ulrich Drepper  <drepper@redhat.com>
3141
3142	* elflint.c (check_versym): Versioned symbols should not have
3143	local binding.
3144
31452005-08-15  Ulrich Drepper  <drepper@redhat.com>
3146
3147	* elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
3148	undefined.
3149
3150	* Makefile.am: Add rules to build ranlib.
3151	* ranlib.c: New file.
3152
31532005-08-14  Roland McGrath  <roland@redhat.com>
3154
3155	* elflint.c (check_sections): Use ebl_section_type_name and allow any
3156	sh_type it recognizes.
3157
3158	* elflint.c (check_sections): Print unknown flags in hex, don't
3159	truncate high bits.  Print section number and name for unknown type.
3160
31612005-08-13  Roland McGrath  <roland@redhat.com>
3162
3163	* elflint.c (check_program_header): Use ebl_segment_type_name and
3164	allow any p_type it recognizes.  Include p_type value in error
3165	message for unknown type.
3166
31672005-08-13  Ulrich Drepper  <drepper@redhat.com>
3168
3169	* elflint.c (check_symtab): Simplify last change a bit.  Pass ehdr
3170	to ebl_check_special_symbol.
3171	(check_sections): Pass ehdr to ebl_bss_plt_p.
3172
31732005-08-12  Roland McGrath  <roland@redhat.com>
3174
3175	* elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
3176	refers to the right section if it's not SHN_ABS.
3177	Let ebl_check_special_symbol override _G_O_T_ value and size checks.
3178
3179	* elflint.c (check_sections): Don't complain about a non-NOBITS
3180	section taking no segment space, if it's sh_size is 0.
3181
3182	* elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
3183	be PROGBITS or NOBITS.
3184
3185	* elflint.c (check_symtab): Use ebl_check_special_symbol to override
3186	standard st_value and st_size checks.
3187
31882005-07-28  Roland McGrath  <roland@redhat.com>
3189
3190	* addr2line.c (options, parse_opt): Don't handle -e here.
3191	(executable): Variable removed.
3192	(argp_children): New static variable.
3193	(argp): Use it.  Make const.
3194	(main): Fill in argp_children from dwfl_standard_argp ().
3195	Let libdwfl handle file selection, pass Dwfl handle to handle_address.
3196	(print_dwarf_function): New function.  Try to figure out inline chain.
3197	(elf_getname): Function removed, libdwfl does it for us.
3198	(handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
3199	Use dwfl_module_addrname instead of elf_getname.
3200	Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
3201	* Makefile.am (INCLUDES): Add libdwfl directory to path.
3202
32032005-08-10  Ulrich Drepper  <drepper@redhat.com>
3204
3205	* strip.c (parse_opt): STATE parameter is now used.
3206	Various little cleanups.
3207
3208	* readelf.c (print_debug_line_section): Correct fallout of renaming
3209	of DW_LNS_set_epilog_begin.
3210
32112005-08-08  Roland McGrath  <roland@redhat.com>
3212
3213	* strip.c (options, parse_opt): Grok -R .comment for compatibility
3214	with binutils strip.  Likewise -d, -S, as aliases for -g.
3215	Likewise ignore -s/--strip-all.
3216
32172005-08-07  Roland McGrath  <roland@redhat.com>
3218
3219	* strip.c (process_file): Open read-only when using a different output
3220	file.
3221
32222005-08-06  Ulrich Drepper  <drepper@redhat.com>
3223
3224	* elflint.c (in_nobits_scn): New function.
3225	(check_versym): Allow references for defined symbols against versions
3226	of other DSOs also for symbols in nobits sections.
3227	Move a few variables around.
3228
3229	* Makefile.am (AM_CFLAGS): Avoid duplication.
3230	Link with statis libs if BUILD_STATIC.
3231
32322005-08-05  Ulrich Drepper  <drepper@redhat.com>
3233
3234	* elflint.c: Many, many more tests.  Mostly related to symbol
3235	versioning.  Those sections should now be completely checked.
3236
3237	* readelf.c (print_dynamic): Use gelf_offscn.
3238
32392005-08-04  Ulrich Drepper  <drepper@redhat.com>
3240
3241	* elflint.c: Add lots more tests: more extension symbol table sanity,
3242	versioning section tests, hash table tests.  General cleanup.
3243
32442005-08-02  Ulrich Drepper  <drepper@redhat.com>
3245
3246	* objdump.c: New file.
3247	* Makefile.am (bin_PROGRAMS): Add objdump.
3248	(objdump_LDADD): Define.
3249
3250	* elflint.c (check_reloc_shdr): New function split out from check_rela
3251	and check_rel.
3252	(check_one_reloc): New function.  Likewise.
3253	(check_rela): Use check_reloc_shdr and check_one_reloc.
3254	(check_rel): Likewise.
3255	(check_program_header): Check that PT_DYNAMIC entry matches .dynamic
3256	section.
3257	Add checks that relocations against read-only segments are flagged,
3258	that the text relocation flag is not set unnecessarily, and that
3259	relocations in one section are either against loaded or not-loaded
3260	segments.
3261
32622005-08-01  Ulrich Drepper  <drepper@redhat.com>
3263
3264	* elfcmp.c (main): Ignore section count and section name string table
3265	section index.
3266
32672005-07-27  Roland McGrath  <roland@redhat.com>
3268
3269	* elfcmp.c: Include <locale.h>.
3270
32712005-07-27  Ulrich Drepper  <drepper@redhat.com>
3272
3273	* elfcmp.c: Print name and index of differing section.
3274
32752005-07-24  Ulrich Drepper  <drepper@redhat.com>
3276
3277	* elfcmp.c: Implement comparing gaps between sections.
3278
32792005-07-23  Ulrich Drepper  <drepper@redhat.com>
3280
3281	* elflint.c: Include libeblP.h instead of libebl.h.
3282	* nm.c: Likewise.
3283	* readelf.c: Likewise.
3284	* elfcmp.c: Likewise.
3285
3286	* elfcmp.c (main): Compare individual ELF header fields, excluding
3287	e_shoff instead of the whole struct at once.
3288	Use ebl_section_strip_p instead of SECTION_STRIP_P.
3289	* strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
3290
32912005-07-22  Ulrich Drepper  <drepper@redhat.com>
3292
3293	* elfcmp.c (main): Take empty section into account when comparing
3294	section content.
3295
3296	* elflint.c (check_dynamic): Check that d_tag value is >= 0 before
3297	using it.
3298
32992005-07-21  Ulrich Drepper  <drepper@redhat.com>
3300
3301	* elfcmp.c: New file.
3302	* Makefile.am (bin_PROGRAMS): Add elfcmp.
3303	(elfcmp_LDADD): Define.
3304
3305	* elflint.c (check_rela): Check that copy relocations only reference
3306	object symbols or symbols with unknown type.
3307	(check_rel): Likewise.
3308
33092005-06-08  Roland McGrath  <roland@redhat.com>
3310
3311	* readelf.c (print_ops): Add consts.
3312
33132005-05-31  Roland McGrath  <roland@redhat.com>
3314
3315	* readelf.c (print_debug_abbrev_section): Don't bail after first CU's
3316	abbreviations.  Print a header line before each CU section.
3317
3318	* readelf.c (print_debug_loc_section): Fix indentation for larger
3319	address size.
3320
33212005-05-30  Roland McGrath  <roland@redhat.com>
3322
3323	* readelf.c (print_debug_line_section): Print section offset of each
3324	CU's table, so they are easy to find from seeing the stmt_list value.
3325
3326	* readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
3327	(attr_callback): Grok DW_AT_ranges and print offset in hex.
3328
3329	* readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
3330	(print_debug_ranges_section, print_debug_loc_section): Likewise.
3331
3332	* readelf.c (print_ops): Take different args for indentation control.
3333	(attr_callback): Caller updated.
3334	Grok several more block-form attributes as being location expressions.
3335	For those same attributes with udata forms, format output differently
3336	for location list offset.
3337	(print_debug_loc_section): Implement it for real.
3338
3339	* readelf.c (options): Mention ranges for --debug-dump.
3340	(enum section_e): Add section_ranges.
3341	(parse_opt): Grok "ranges" for -w/--debug-dump.
3342	(print_debug_ranges_section): New function.
3343	(print_debug): Handle .debug_ranges section.
3344
33452005-05-30  Ulrich Drepper  <drepper@redhat.com>
3346
3347	* readelf.c (handle_notes): At least x86-64 need not have the note
3348	section values aligned to 8 bytes.
3349
33502005-05-18  Ulrich Drepper  <drepper@redhat.com>
3351
3352	* readelf.c (dwarf_tag_string): Add new tags.
3353
33542005-05-08  Roland McGrath  <roland@redhat.com>
3355
3356	* strip.c (handle_elf): Don't translate hash and versym data formats,
3357	elf_getdata already did it for us.
3358
33592005-05-07  Ulrich Drepper  <drepper@redhat.com>
3360
3361	* Makefile.am (findtextrel_LDADD): Add $(libmudflap).
3362	(addr2line_LDADD): Likewise.
3363
33642005-05-03  Roland McGrath  <roland@redhat.com>
3365
3366	* strip.c (handle_elf): Apply symbol table fixups to discarded
3367	relocation sections when they are being saved in the debug file.
3368
3369	* strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
3370	and gelf_xlatetof, not the native byte order.
3371
3372	* strip.c (parse_opt): Give error if -f or -o is repeated.
3373	(main): Exit if argp_parse returns nonzero.
3374
3375	* strip.c (debug_fname_embed): New variable.
3376	(options, parse_opt): New option -F to set it.
3377
33782005-05-07  Ulrich Drepper  <drepper@redhat.com>
3379
3380	* readelf.c (parse_opt): Make any_control_option variable
3381	local.  Simplify some tests.
3382
33832005-05-03  Roland McGrath  <roland@redhat.com>
3384
3385	* strip.c (crc32_file): Function removed (now in ../lib).
3386
33872005-05-03  Roland McGrath  <roland@redhat.com>
3388
3389	* elflint.c (is_debuginfo): New variable.
3390	(options, parse_opt): New option --debuginfo/-d to set it.
3391	(check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
3392	(check_note): If is_debuginfo, don't try to get note contents.
3393
33942005-04-24  Ulrich Drepper  <drepper@redhat.com>
3395
3396	* readelf.c (print_debug_abbrev_section): Don't print error when end of
3397	section reached.
3398
33992005-04-14  Ulrich Drepper  <drepper@redhat.com>
3400
3401	* readelf.c (dwarf_encoding_string): New function.
3402	(dwarf_inline_string): New function.
3403	(dwarf_access_string): New function.
3404	(dwarf_visibility_string): New function.
3405	(dwarf_virtuality_string): New function.
3406	(dwarf_identifier_case_string): New function.
3407	(dwarf_calling_convention_string): New function.
3408	(dwarf_ordering_string): New function.
3409	(dwarf_discr_list_string): New function.
3410	(attr_callback): Decode man more attribute values.
3411
34122005-04-01  Ulrich Drepper  <drepper@redhat.com>
3413
3414	* addr2line.c: Finish implementation of -f option.
3415
34162005-03-29  Ulrich Drepper  <drepper@redhat.com>
3417
3418	* addr2line.c: New file.
3419	* Makefile.am (bin_PROGRAMS): Add addr2line.
3420	Define addr2line_LDADD.
3421
3422	* findtextrel.c: Use new dwarf_addrdie function.
3423
3424	* findtextrel.c: Fix usage message and re-add accidentally removed
3425	line.
3426
34272005-03-28  Ulrich Drepper  <drepper@redhat.com>
3428
3429	* findtextrel.c: New file.
3430	* Makefile: Add rules to build findtextrel.
3431
34322005-02-15  Ulrich Drepper  <drepper@redhat.com>
3433
3434	* ldlex.l: Provide ECHO definition to avoid warning.
3435
3436	* elflint.c (check_program_header): Fix typo in RELRO test.
3437
3438	* Makefile.am (AM_CFLAGS): Add more warning options.
3439	* elflint.c: Fix warnings introduced by the new warning options.
3440	* i386_ld.c: Likewise.
3441	* ld.c: Likewise.
3442	* ld.h: Likewise.
3443	* ldgeneric.c: Likewise.
3444	* nm.c: Likewise.
3445	* readelf.c: Likewise.
3446	* sectionhash.c: Likewise.
3447	* size.c: Likewise.
3448	* string.c: Likewise.
3449
34502005-02-05  Ulrich Drepper  <drepper@redhat.com>
3451
3452	* Makefile.am: Check for text relocations in constructed DSOs.
3453
3454	* Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.  Link all apps
3455	with -lmudflap.
3456
3457	* ldscript.y: Add as_needed handling.
3458	* ldlex.l: Recognize AS_NEEDED token.
3459	* ld.h (struct filename_list): Add as_needed flag.
3460
34612005-02-04  Ulrich Drepper  <drepper@redhat.com>
3462
3463	* elflint.c (check_symtab): Correctly determine size of GOT section.
3464
34652005-01-19  Ulrich Drepper  <drepper@redhat.com>
3466
3467	* ld.c: Remove unnecessary more_help function.  Print bug report
3468	address using argp.
3469	* strip.c: Likewise.
3470	* size.c: Likewise.
3471	* nm.c: Likewise.
3472	* readelf.c: Likewise.
3473	* elflint.c: Likewise.
3474
3475	* elflint.c (main): Don't check for parameter problems here.
3476	(parse_opt): Do it here, where we get informed about some of them
3477	anyway.
3478
3479	* readelf.c (main): Don't check for parameter problems here.
3480	(parse_opt): Do it here, where we get informed about some of them
3481	anyway.
3482
34832005-01-11  Ulrich Drepper  <drepper@redhat.com>
3484
3485	* strip.c: Update copyright year.
3486	* readelf.c: Likewise.
3487	* size.c: Likewise.
3488	* nm.c: Likewise.
3489	* ld.c: Likewise.
3490	* elflint.c: Likewise.
3491
3492	* elflint.c (check_symtab): Don't warn about wrong size for
3493	_DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
3494
34952004-10-05  Ulrich Drepper  <drepper@redhat.com>
3496
3497	* readelf.c (print_phdr): In section mapping, also indicate
3498	sections in read-only segments.
3499
35002004-09-25  Ulrich Drepper  <drepper@redhat.com>
3501
3502	* readelf.c: Make compile with gcc 4.0.
3503	* strip.c: Likewise.
3504
35052004-08-16  Ulrich Drepper  <drepper@redhat.com>
3506
3507	* strip.c (handle_elf): Rewrite dynamic memory handling to use of
3508	allocate to work around gcc 3.4 bug.
3509
35102004-01-25  Ulrich Drepper  <drepper@redhat.com>
3511
3512	* ldlex.l (invalid_char): Better error message.
3513
35142004-01-23  Ulrich Drepper  <drepper@redhat.com>
3515
3516	* readelf.c: Print SHT_GNU_LIBLIST sections.
3517
3518	* none_ld.c: New file.
3519
35202004-01-21  Ulrich Drepper  <drepper@redhat.com>
3521
3522	* Makefile.am: Enable building of machine specific linker.
3523
35242004-01-20  Ulrich Drepper  <drepper@redhat.com>
3525
3526	* Makefile.am: Support building with mudflap.
3527
3528	* i386_ld.c: Fix warnings gcc 3.4 spits out.
3529	* ldgeneric.c: Likewise.
3530	* ldscript.y: Likewise.
3531	* readelf.c: Likewise.
3532	* strip.c: Likewise.
3533
3534	* readelf.c (print_debug_line_section): Determine address size
3535	correctly.
3536
35372004-01-19  Ulrich Drepper  <drepper@redhat.com>
3538
3539	* readelf.c (print_phdr): Show which sections are covered by the
3540	PT_GNU_RELRO entry.
3541
3542	* elflint.c (check_program_header): Check PT_GNU_RELRO entry.
3543
3544	* readelf.c (print_debug_macinfo_section): Implement.
3545
35462004-01-18  Ulrich Drepper  <drepper@redhat.com>
3547
3548	* readelf.c (print_debug_line_section): Implement.
3549
35502004-01-17  Ulrich Drepper  <drepper@redhat.com>
3551
3552	* src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
3553	* src/ld.c: Likewise.
3554	* src/nm.c: Likewise.
3555	* src/readelf.c: Likewise.
3556	* src/size.c: Likewise.
3557	* src/strip.c: Likewise.
3558
3559	* strip.c: Add a few more unlikely.  Reduce scope of some variables.
3560
3561	* Makefile.am: Support building with mudflap.
3562
35632004-01-16  Ulrich Drepper  <drepper@redhat.com>
3564
3565	* readelf.c (print_debug_info_section): Free dies memory.
3566
3567	* readelf.c: Print .debug_info section content.
3568
35692004-01-13  Ulrich Drepper  <drepper@redhat.com>
3570
3571	* readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
3572
35732004-01-12  Ulrich Drepper  <drepper@redhat.com>
3574
3575	* readelf.c (print_debug_aranges): Implement using libdw.
3576
35772004-01-11  Ulrich Drepper  <drepper@redhat.com>
3578
3579	* nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
3580
3581	* readelf.c: Use libdw instead of libdwarf.  Not all of the old
3582	behavior is available yet.
3583	* Makefile.am: Link readelf with libdw.  Remove libdwarf include path.
3584
35852004-01-09  Ulrich Drepper  <drepper@redhat.com>
3586
3587	* nm.c (get_local_names): Adjust call to dwarf_nextcu.
3588
3589	* nm.c: Implement getting information about local variables.
3590
35912004-01-07  Ulrich Drepper  <drepper@redhat.com>
3592
3593	* nm.c: Read also debug information for local symbols.
3594
35952004-01-05  Ulrich Drepper  <drepper@redhat.com>
3596
3597	* nm.c: Shuffle dwarf handling code around so the maximum column
3598	width can be computed ahead of printing.  Avoid collection symbols
3599	which are not printed anyway.
3600
3601	* nm.c: Rewrite dwarf handling to use libdw.
3602	* Makefile.am (AM_CFLAGS): Add -std parameter.
3603	(INCLUDES): Find header in libdw subdir.
3604	(nm_LDADD): Replace libdwarf with libdw.
3605
3606	* elflint.c: Update copyright year.
3607	* readelf.c: Likewise.
3608	* size.c: Likewise.
3609	* strip.c: Likewise.
3610	* nm.c: Likewise.
3611
36122003-12-31  Ulrich Drepper  <drepper@redhat.com>
3613
3614	* strip.c (process_file): Close file before returning.
3615
36162003-11-19  Ulrich Drepper  <drepper@redhat.com>
3617
3618	* readelf.c (handle_dynamic): Make column for tag name wider.
3619
36202003-09-29  Ulrich Drepper  <drepper@redhat.com>
3621
3622	* readelf.c (handle_dynamic): Always terminate tag name with a space.
3623
36242003-09-25  Ulrich Drepper  <drepper@redhat.com>
3625
3626	* strip.c (process_file): Don't mmap the input file, we modify the
3627	data structures and don't want the change end up on disk.
3628
36292003-09-23  Jakub Jelinek  <jakub@redhat.com>
3630
3631	* unaligned.h (union u_2ubyte_unaligned,
3632	union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
3633	packed attribute.
3634	(add_2ubyte_unaligned, add_4ubyte_unaligned,
3635	add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
3636	Read/store value through _ptr->u instead of *_ptr.
3637
36382003-09-22  Ulrich Drepper  <drepper@redhat.com>
3639
3640	* size.c (show_sysv): Change type of maxlen to int.
3641
3642	* strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
3643	buckets.
3644
3645	* i386_ld.c: Many many fixes and extensions.
3646	* ld.c: Likewise.
3647	* ldgeneric.c: Likewise.
3648
36492003-08-16  Ulrich Drepper  <drepper@redhat.com>
3650
3651	* ldgeneric.c (check_definition): Don't add symbol on dso_list if
3652	the reference is from another DSO.
3653
36542003-08-15  Ulrich Drepper  <drepper@redhat.com>
3655
3656	* ldgeneric.c (find_entry_point): It is no fatal error if no entry
3657	point is found when creating a DSO.
3658
36592003-08-14  Ulrich Drepper  <drepper@redhat.com>
3660
3661	* ld.c (main): Always call FLAG_UNRESOLVED.
3662	* ldgeneric.c (ld_generic_flag_unresolved): Only complain about
3663	undefined symbols if not creating DSO or ld_state.nodefs is not set.
3664
36652003-08-13  Ulrich Drepper  <drepper@redhat.com>
3666
3667	* Makefile.in: Depend on libebl.a, not libebl.so.
3668
3669	* ld.c (main): Mark stream for linker script as locked by caller.
3670	(read_version_script): Likewise.
3671	* ldlex.c: Define fread and fwrite to _unlocked variant.
3672
3673	* i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
3674	target_bswap_32.
3675	* unaligned.h: Define target_bswap_16, target_bswap_32, and
3676	target_bswap_64.
3677	(store_2ubyte_unaligned, store_4ubyte_unaligned,
3678	store_8ubyte_unaligned): Define using new macros.
3679
36802003-08-12  Ulrich Drepper  <drepper@redhat.com>
3681
3682	* i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
3683	possibly unaligned memory.  Support use of big endian machines.
3684
36852003-08-11  Ulrich Drepper  <drepper@redhat.com>
3686
3687	* Moved to CVS archive.
3688