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