blob: c7c83396a51ec01aa433dca9599da3ebd80a894f [file] [log] [blame]
Marek Polacek44de92a2011-03-22 01:07:20 +010012011-03-22 Marek Polacek <mpolacek@redhat.com>
2
3 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case.
4
Mark Wielaarde3368c52011-03-22 23:03:31 +010052011-03-22 Mark Wielaard <mjw@redhat.com>
6
7 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site
8 and DW_TAG_GNU_call_site_parameter.
9 (dwarf_attr_string): Support DW_AT_GNU_call_site_value,
10 DW_AT_GNU_call_site_data_value,
11 DW_AT_GNU_call_site_target,
12 DW_AT_GNU_call_site_target_clobbered,
13 DW_AT_GNU_tail_call,
14 DW_AT_GNU_all_tail_call_sites,
15 DW_AT_GNU_all_call_sites,
16 and DW_AT_GNU_all_source_call_sites.
17 (print_ops): Handle DW_OP_GNU_entry_value.
18 (attr_callback): Handle DW_AT_GNU_call_site_value,
19 DW_AT_GNU_call_site_data_value,
20 DW_AT_GNU_call_site_target,
21 and DW_AT_GNU_call_site_target_clobbered.
22
Mark Wielaarda062b6b2011-03-10 13:02:32 +0100232011-03-10 Mark Wielaard <mjw@redhat.com>
24
25 * elflint.c (check_symtab): Use ebl_check_st_other_bits.
26
Jan Kratochvilfec39992011-02-27 12:01:25 -0800272011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
28
29 * readelf.c (reset_listptr): Clear TABLE->TABLE.
30
Mark Wielaardcf454ab2011-02-25 12:58:54 +0100312011-02-25 Mark Wielaard <mjw@redhat.com>
32
33 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
34 (dwarf_form_string): Properly format and return unknown form.
35
Roland McGrath47c53232011-02-23 09:23:08 -0800362011-02-23 Roland McGrath <roland@redhat.com>
37
Roland McGrath725aad52011-02-23 19:52:46 -080038 * readelf.c (section_name): New function.
39 (print_debug_abbrev_section): Use it instead of constant.
40 (print_debug_aranges_section): Likewise.
41 (print_debug_ranges_section): Likewise.
42 (print_debug_units): Likewise.
43 (print_debug_line_section): Likewise.
44 (print_debug_loc_section): Likewise.
45 (print_debug_macinfo_section): Likewise.
46 (print_debug_pubnames_section): Likewise.
47 (print_debug_str_section): Likewise.
48 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too.
49 (print_debug_abbrev_section): Use decoded d_size, not sh_size.
50 (print_debug_str_section): Likewise.
51
Roland McGrath47c53232011-02-23 09:23:08 -080052 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
53
Roland McGrath1fb9c912011-02-11 10:32:30 -0800542011-02-11 Roland McGrath <roland@redhat.com>
55
Roland McGrath4a14ef72011-02-11 10:42:45 -080056 * elfcmp.c (verbose): New variable.
57 (options, parse_opt): Grok -l/--verbose to set it.
58 (main): Under -l, keep going after first difference.
59
Roland McGrath1fb9c912011-02-11 10:32:30 -080060 * elfcmp.c (ignore_build_id): New variable.
61 (options, parse_opt): Grok --ignore-build-id to set it.
62 (main): For SHT_NOTE sections, compare note details rather than raw
63 bytes. Under --ignore-build-id, don't complain about differing build
64 ID contents if lengths match.
65
Roland McGrathfd992542011-02-08 19:45:12 -0800662011-02-08 Roland McGrath <roland@redhat.com>
67
Roland McGrath240784b2011-02-08 19:48:42 -080068 * ldscript.y (filename_id_star): Remove unused variable.
69
Roland McGrath8f6c1792011-02-08 19:48:02 -080070 * unstrip.c (copy_elided_sections): Remove unused variable.
71
Roland McGrath4db89f02011-02-08 19:46:50 -080072 * elflint.c (check_dynamic): Remove unused variables.
73
Roland McGrath33231312011-02-08 19:45:26 -080074 * elflint.c (check_symtab): Warn about missing xndx section only once.
75
Roland McGrathfd992542011-02-08 19:45:12 -080076 * ldgeneric.c (check_for_duplicate2): Remove unused variable.
77
Roland McGrathf151b7d2011-01-06 12:14:43 -0800782011-01-06 Roland McGrath <roland@redhat.com>
79
80 * strip.c (handle_elf): Under --strip-sections, remove all
81 non-allocated sections and never generate .gnu_debuglink.
82
Roland McGrath0b9d1fb2011-01-04 19:29:24 -0800832011-01-04 Roland McGrath <roland@redhat.com>
84
85 * strip.c (remove_shdrs): New variable.
86 (options, parse_opt): Grok --strip-sections to set it.
87 (handle_elf): When that's set, truncate off .shstrtab and shdrs.
88
Roland McGrath77221de2010-11-10 19:47:31 -0800892010-11-10 Roland McGrath <roland@redhat.com>
90
91 * findtextrel.c (process_file): Don't assume order of sections.
92 Reported by Mike Hommey <mh@glandium.org>.
93
Roland McGrath932585d2010-05-08 04:01:14 -0700942010-07-26 Roland McGrath <roland@redhat.com>
95
96 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer.
97
Roland McGratha1599152010-08-30 04:04:37 -0700982010-08-30 Roland McGrath <roland@redhat.com>
99
Roland McGrathfa144952010-08-30 19:22:41 -0700100 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses.
101 * readelf.c (parse_opt): Add section_info to implicit_debug_sections
102 for ranges, loc.
103 (struct listptr, struct listptr_table): New types.
104 (compare_listptr, reset_listptr, sort_listptr): New functions.
105 (notice_listptr, skip_listptr_hole): New functions.
106 (struct attrcb_args): Add silent member.
107 (attr_callback): Call notice_listptr for loclistptr and rangelistptr.
108 Suppress output if silent, but still call notice_listptr.
109 (print_debug_units): Suppress output if section_info not requested.
110 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole.
111 (print_debug_ranges_section): Likewise.
112 (print_debug): Call reset_listptr on both tables.
113
114 * readelf.c (print_debug_ranges_section): Print empty list.
115 (print_debug_loc_section): Likewise.
116
Roland McGratha1599152010-08-30 04:04:37 -0700117 * readelf.c (print_debug_loc_section): Check for bogus length
118 before calling print_ops.
119 (print_ops): Check harder for bogus data that would read off end.
120
Roland McGrathf4763cf2010-08-11 13:04:12 -07001212010-08-11 Roland McGrath <roland@redhat.com>
122
123 * readelf.c (for_each_section_argument): Process all sections with
124 matching name, not just the first.
125
Roland McGrath52604ba2010-07-26 21:29:44 -07001262010-07-26 Roland McGrath <roland@redhat.com>
127
128 * readelf.c (print_ops): Take new argument for CU version.
129 Fix DW_OP_call_ref decoding to depend on it.
130 (print_debug_loc_section): Update caller.
131 (print_cfa_program): Take new argument, pass it down.
132 (print_debug_frame_section): Update caller.
133 (struct attrcb_args): New member version.
134 (print_debug_units): Initialize it.
135
Roland McGrath2f14a312010-07-02 11:16:25 -07001362010-07-02 Roland McGrath <roland@redhat.com>
137
138 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for
139 initial_location.
140
Roland McGrathb6458032010-06-30 11:57:19 -07001412010-06-30 Roland McGrath <roland@redhat.com>
142
143 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO.
144 Ignore st_size for a non-S_ISREG file descriptor.
145 (read_block): Move assert after no-mmap bail-out.
146 (read_block_no_mmap): Fix size calculations for moving buffer remnant.
147
Roland McGrathfa799902010-06-22 13:05:23 -07001482010-06-22 Roland McGrath <roland@redhat.com>
149
150 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa.
151
Roland McGrath0c5638c2010-06-21 23:00:35 -07001522010-06-21 Roland McGrath <roland@redhat.com>
153
154 * readelf.c (dwarf_tag_string): Handle new v4 tags.
Roland McGrath474cb482010-06-22 00:10:54 -0700155 (dwarf_attr_string): Add new attributes.
156 (dwarf_tag_string): Handle DW_TAG_GNU_*.
Roland McGrath0c5638c2010-06-21 23:00:35 -0700157
158 * readelf.c (print_ops): Use 64-bit types for LEB128 operands.
159 (print_cfa_program): Likewise.
160
Roland McGrathe5251a12010-06-20 16:59:39 -07001612010-06-20 Roland McGrath <roland@redhat.com>
162
Roland McGrath2b1f0952010-06-20 17:55:50 -0700163 * readelf.c (print_debug_units): New function, broken out of ...
164 (print_debug_info_section): ... here. Call it.
165 (print_debug_types_section): New function.
166 (enum section_e): Add section_types alias for section_info.
167 (print_debug): Add types to the sections table.
168
Roland McGrath599f7f52010-06-20 17:12:43 -0700169 * readelf.c (print_debug_frame_section): Handle version 4 format.
170
Roland McGrathe5251a12010-06-20 16:59:39 -0700171 * readelf.c (print_debug_line_section): Handle version 4 format.
172
Roland McGrathec86e5f2010-06-14 17:44:38 -07001732010-06-14 Roland McGrath <roland@redhat.com>
174
175 * unstrip.c (copy_elided_sections): Make sure all sections' data have
176 been read in before we write anything out.
177
Roland McGrath3b1b6512010-06-04 02:26:30 -07001782010-06-04 Roland McGrath <roland@redhat.com>
179
Roland McGrathaa32f922010-06-04 02:29:08 -0700180 * unstrip.c (update_shdr): New function.
181 (update_sh_size): Call it instead of gelf_update_shdr.
182 (adjust_relocs, add_new_section_symbols): Likewise.
183 (new_shstrtab, copy_elided_sections): Likewise.
184
Roland McGrath3b1b6512010-06-04 02:26:30 -0700185 * unstrip.c (copy_elided_sections): Bail if stripped file has more
186 sections than unstripped file, rather than getting confused later.
187
Roland McGrath7a5bed82010-06-01 13:44:00 -07001882010-06-01 Roland McGrath <roland@redhat.com>
189
Roland McGrath7fac1ce2010-06-01 15:56:58 -0700190 * readelf.c (dwarf_form_string): Handle DWARF 4 forms.
191 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
Roland McGrathc8a06732010-06-01 19:52:39 -0700192 DW_FORM_sec_offset, DW_FORM_ref_sig8.
Roland McGrath7fac1ce2010-06-01 15:56:58 -0700193
Roland McGrath7a5bed82010-06-01 13:44:00 -0700194 * readelf.c (print_debug): Don't bail if libdw setup fails.
195 Suppress complaint if we only want .eh_frame anyway.
196
Ulrich Drepper173ade82010-05-28 07:39:49 -07001972010-05-28 Ulrich Drepper <drepper@redhat.com>
198
199 * readelf.c (attr_callback): Also print form information.
200
Roland McGrath12e3d1f2010-05-19 18:03:31 -07002012010-05-19 Roland McGrath <roland@redhat.com>
202
203 * addr2line.c (find_symbol): Short-circuit on empty name.
204 (handle_address): Handle SYMBOL with no +OFFSET.
205
Roland McGrath688f7fc2010-05-08 03:22:59 -07002062010-05-08 Roland McGrath <roland@redhat.com>
207
208 * readelf.c (print_ops): Take new arg OFFSET_SIZE.
209 Use that for DW_OP_call_ref, not ADDRSIZE.
210 (print_cfa_program): Update caller.
211 (struct attrcb_args): Add offset_size field.
212 (attr_callback): Use it for print_ops call.
213 (print_debug_info_section): Initialize it.
Roland McGrath932585d2010-05-08 04:01:14 -0700214 (print_ops): Likewise.
Roland McGrath50aa8d12010-06-01 11:22:36 -0700215
Roland McGrath62b28b62010-04-14 11:54:06 -07002162010-04-14 Roland McGrath <roland@redhat.com>
217
218 * readelf.c (handle_core_item): Fix bitmask printing.
219
Roland McGrath3b495d82010-04-06 12:58:32 -07002202010-04-06 Roland McGrath <roland@redhat.com>
221
222 * ld.c (options): Fix some typos in messages.
223 * elflint.c (check_scn_group, check_group): Likewise.
224 * ldscript.y (add_id_list): Likewise.
225 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
226 before translated string containing a literal %.
227
Roland McGrath890081b2010-02-26 17:57:50 -08002282010-02-26 Roland McGrath <roland@redhat.com>
229
230 * readelf.c (process_file): Don't leak an fd in failure case.
231
Roland McGrathc2b26f12010-02-15 15:16:15 -08002322010-02-15 Roland McGrath <roland@redhat.com>
233
Roland McGrath22359e22010-02-15 15:57:03 -0800234 * Makefile.am: Use config/eu.am for common stuff.
235
Roland McGrathc2b26f12010-02-15 15:16:15 -0800236 * readelf.c (print_debug_frame_section): Add a cast to avoid sign
237 mismatch in comparison.
238
Roland McGrathf920fd52010-02-02 15:50:15 -08002392010-02-02 Roland McGrath <roland@redhat.com>
240
241 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
242 (read_encoded): Likewise.
243 (print_debug_frame_section): Check for bogus augmentation length.
244 For P augmentation, use read_encoded, print the encoding description,
245 and use hex for unsigned values.
246
Roland McGrathb337b1f2010-01-15 01:02:27 -08002472010-01-15 Roland McGrath <roland@redhat.com>
248
249 * ar.c: Include <sys/stat.h>.
250 * elflint.c: Likewise.
251 * readelf.c: Likewise.
252 * strip.c: Likewise.
253 * unstrip.c: Likewise
254
Roland McGrathbd733ca2010-01-07 20:11:42 -08002552010-01-07 Roland McGrath <roland@redhat.com>
256
Roland McGrath8111da02010-01-07 20:31:59 -0800257 * readelf.c (print_ehdr): Handle PN_XNUM.
258 (phnum): New static variable.
259 (process_elf_file): Set it with elf_getphdrnum.
260 (print_phdr): Use phnum instead of EHDR->e_phnum.
261 (print_dynamic, handle_notes): Likewise.
262 (handle_relocs_rel, handle_relocs_rela): Likewise.
263
Roland McGrathbd733ca2010-01-07 20:11:42 -0800264 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
265
266 * elflint.c (phnum): New static variable.
267 (check_elf_header): Set it, handling PN_XNUM.
268 Use that in place of EHDR->e_phnum throughout.
269 (check_symtab, check_reloc_shdr, check_dynamic): Likewise.
270 (unknown_dependency_p, check_sections, check_program_header): Likewise.
271
Roland McGrath019d9fb2010-01-05 13:36:07 -08002722010-01-05 Roland McGrath <roland@redhat.com>
273
274 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
275 DW_AT_GNU_template_name.
276
Roland McGrathe4061d02010-01-04 20:25:09 -08002772010-01-04 Roland McGrath <roland@redhat.com>
278
Roland McGrath0ccbbcd2010-01-04 21:59:07 -0800279 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
280 (handle_core_note): Pass NHDR and NAME to ebl_core_note.
281 (handle_core_item): Handle .format of '\n' as \n-separated strings.
282
Roland McGrath2e79deb2010-01-04 20:36:10 -0800283 * readelf.c (implicit_debug_sections): New variable.
284 (parse_opt): Set it instead of print_debug_sections for -a.
285 OR them together for print_debug check.
286 (print_debug): OR them together for section check.
287
Roland McGratha7422be2010-01-04 20:29:33 -0800288 * readelf.c (options): Repartition into set implied by -a and others.
289 Correct -a text to match reality.
290
Roland McGrathe4061d02010-01-04 20:25:09 -0800291 * readelf.c (struct section_argument): Add bool member 'implicit'.
292 (parse_opt): Set it for -a cases, clear it for -x args.
293 (for_each_section_argument): Don't complain about a missing section by
294 name if it's implicit.
295
Roland McGrathefa64962009-11-16 01:50:58 -08002962009-11-16 Roland McGrath <roland@redhat.com>
297
298 * readelf.c (print_string_section): Punt SHT_NOBITS like empty
299 sections, just as dump_data_section already does.
300
Mark Wielaardc49d00a2009-09-21 16:47:07 -07003012009-09-21 Ulrich Drepper <drepper@redhat.com>
302
303 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be
304 set for .comment section.
305 Patch by Mark Wielaard <mjw@redhat.com>.
306
Roland McGrathfb33c672009-09-08 00:21:18 -07003072009-09-08 Roland McGrath <roland@redhat.com>
308
309 * ar.c (main): Fix typo in message format.
310
Roland McGrath2d13ea22009-08-21 03:16:32 -07003112009-08-21 Roland McGrath <roland@redhat.com>
312
313 * readelf.c (attr_callback): Use print_block only when we don't use
314 print_ops.
315
Roland McGrath536127f2009-08-14 13:10:09 -07003162009-08-14 Roland McGrath <roland@redhat.com>
317
318 * ar.c (do_oper_extract): Use pathconf instead of statfs.
319
Ulrich Drepper9ccf76a2009-08-01 10:07:24 -07003202009-08-01 Ulrich Drepper <drepper@redhat.com>
321
322 * debugpred.h: Add two most const.
323
Mark Wielaardbc1b92e2009-07-26 08:33:18 -07003242009-07-26 Mark Wielaard <mjw@redhat.com>
325
326 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
327
Mark Wielaard79178202009-07-25 12:44:46 -07003282009-07-25 Mark Wielaard <mjw@redhat.com>
329
330 * Makefile.am (addr2line_LDADD): Add $(libelf).
331
Roland McGrathbe4589d2009-07-24 16:23:12 -07003322009-07-24 Roland McGrath <roland@redhat.com>
333
334 * readelf.c (print_block): New function.
335 (print_ops): Use it.
336 (attr_callback): Use it for DW_FORM_block* forms.
337
Mark Wielaarddaf85b22009-07-24 15:49:51 -07003382009-07-20 Mark Wielaard <mjw@redhat.com>
339
340 * readelf.c (print_ops): Add handling of DW_OP_implicit_value
341 and DW_OP_stack_value.
342
Ulrich Drepper96d950e2009-07-14 10:42:01 -07003432009-07-14 Ulrich Drepper <drepper@redhat.com>
344
345 * elflint.c (check_elf_header): Allow Linux ABI.
346 (check_symtab): Handle STB_GNU_UNIQUE.
347
Mark Wielaardf735db12009-07-08 19:18:53 +02003482009-07-08 Mark Wielaard <mjw@redhat.com>
349
350 * readelf.c (attr_callback): Handle DW_Form constants for
351 DW_AT_data_member_location.
352
Roland McGrathdffc33d2009-07-06 16:06:41 -07003532009-07-06 Roland McGrath <roland@redhat.com>
354
355 * readelf.c (register_info): New function. Handle unknown register #s.
356 (print_cfa_program): Use it.
357 (handle_core_register, handle_core_registers): Likewise.
358
Roland McGrath5dbccdb2009-06-28 14:48:02 -07003592009-06-28 Roland McGrath <roland@redhat.com>
360
361 * readelf.c (print_address_names): New static variable.
362 (options, parse_opt): Grok -N/--numeric-addresses to clear it.
363 (format_dwarf_addr): Don't look up name if !print_address_names.
364
Ulrich Drepperf1894932009-06-13 15:55:42 -07003652009-06-13 Ulrich Drepper <drepper@redhat.com>
366
367 * ldgeneric.c: Don't use deprecated libelf functions.
368 * nm.c: Likewise.
369 * objdump.c: Likewise.
370 * readelf.c: Likewise.
371 * size.c: Likewise.
372 * strip.c: Likewise.
373 * unstrip.c: Likewise.
374 * ld.h: Fix up comment.
375
Ulrich Drepperb47d2902009-06-01 07:38:32 -07003762009-06-01 Ulrich Drepper <drepper@redhat.com>
377
378 * readelf.c (print_relocs): Expect ELF header argument and pass on
379 to handle_relocs_rel* functions. Adjust caller.
380 (handle_relocs_rel): Add ELF header argument. Add special case for
381 the IRELATIVE relocations in statically linked executables.
382 (handle_relocs_rela): Likewise.
383
Roland McGrathdb19f0b2009-05-07 18:44:27 -07003842009-04-29 Ulrich Drepper <drepper@redhat.com>
385
386 * elflint.c (check_symtab): Add tests of st_other field.
387
Ulrich Drepperaab90f92009-04-23 07:44:36 -07003882009-04-23 Ulrich Drepper <drepper@redhat.com>
389
390 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
391
Roland McGrathd86e1832009-04-20 00:49:33 -07003922009-04-20 Roland McGrath <roland@redhat.com>
393
Roland McGrath8a592412009-04-20 01:20:44 -0700394 * addr2line.c (print_dwarf_function): Honor -s and -A for file names
395 of inline call sites.
396
Roland McGrathd86e1832009-04-20 00:49:33 -0700397 * addr2line.c (just_section): New variable.
398 (adjust_to_section): New function, broken out of ...
399 (handle_address): ... here.
400 (options, parse_opt): Add -j/--section=NAME to set it.
401
Roland McGrath2fb90512009-04-15 14:47:13 -07004022009-04-15 Roland McGrath <roland@redhat.com>
403
404 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
405 64-bit format header, DW_CIE_ID_32 in 32-bit format header.
406
Roland McGrath04a14162009-04-14 01:02:17 -07004072009-04-14 Roland McGrath <roland@redhat.com>
408
Roland McGratheb9ba472009-04-14 18:44:45 -0700409 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
410 like SHT_GNU_ATTRIBUTES.
411
Roland McGrath94f43832009-04-14 04:39:32 -0700412 * readelf.c (handle_core_registers): Fix error message.
413
Roland McGrath04a14162009-04-14 01:02:17 -0700414 * strip.c (handle_elf: check_preserved): Don't note any change when
415 .debug_data is already filled from a previous pass.
416
Ulrich Drepper411cdb22009-02-05 22:04:26 -08004172009-02-05 Ulrich Drepper <drepper@redhat.com>
418
Ulrich Drepper51b3f472009-02-05 22:10:39 -0800419 * objdump.c (show_relocs_x): Minor cleanups.
420
Ulrich Drepper411cdb22009-02-05 22:04:26 -0800421 * readelf.c (print_cfa_program): Correct a few labels.
Ulrich Drepper973a9c72009-02-05 22:56:39 -0800422 Print first DW_CFA_expression and DW_CFA_val_expression parameter
423 as register.
Ulrich Drepper411cdb22009-02-05 22:04:26 -0800424
Ulrich Drepper5ee720c2009-02-01 16:18:18 -08004252009-02-01 Ulrich Drepper <drepper@redhat.com>
426
Ulrich Drepper95fa15e2009-02-01 19:06:10 -0800427 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
428 into ...
429 (show_relocs_x): ...here. New function.
Ulrich Drepperf44f0ce2009-02-01 21:31:26 -0800430 (show_relocs): Better spacing in output.
Ulrich Drepper95fa15e2009-02-01 19:06:10 -0800431
Ulrich Dreppercbb422e2009-02-01 18:18:55 -0800432 * objdump.c (show_relocs_rela): Show offsets as signed values.
433
Ulrich Drepper5ee720c2009-02-01 16:18:18 -0800434 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
435 Improve some error messages.
436 Use program_invocation_short_name instead of AR macro.
437 * Makefile.am (CFLAGS_ar): Remove.
438 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
439 * objdump.c (parse_opt): Likewise.
440 * readelf.c (parse_opt): Likewise.
441
Roland McGrath51f01282009-01-27 17:08:03 -08004422009-01-27 Roland McGrath <roland@redhat.com>
443
444 * readelf.c (print_ops): Notice short length, don't overrun buffer
445 (still need to fix LEB128).
446
447 * readelf.c (print_ops): Fix DW_OP_call[24] decoding.
448
449 * readelf.c (print_ops): Print (empty)\n when LEN == 0.
450
Ulrich Drepper62c46532009-01-24 17:01:08 -08004512009-01-24 Ulrich Drepper <drepper@redhat.com>
452
453 * readelf.c (print_debug_frame_section): Fix computation of vma_base
454 for PC-relative mode.
455
Ulrich Drepperd7285e12009-01-23 16:10:44 -08004562009-01-23 Ulrich Drepper <drepper@redhat.com>
457
Ulrich Drepperccccab02009-01-23 16:32:21 -0800458 * size.c (process_file): When handling archive, close file descriptor
459 here. For unknown file format also close file descriptor.
460 (handle_ar): Don't close file descriptor here.
461
Ulrich Drepperd7285e12009-01-23 16:10:44 -0800462 * readelf.c (parse_opt): Move code to add to dump_data_sections and
463 string_sections list in local function add_dump_section. Adjust 'x'
464 key handling. For 'a' key add .strtab, .dynstr, and .comment section
465 to string_sections list.
466
Roland McGrathe9de9b42009-01-22 13:05:40 -08004672009-01-22 Roland McGrath <roland@redhat.com>
468
Roland McGrath9a847e12009-01-22 19:55:00 -0800469 * readelf.c (print_phdr): Don't print section mapping when no sections.
470
Roland McGrathd759aa62009-01-22 19:17:07 -0800471 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
472
Roland McGrathcabeeee2009-01-22 13:17:45 -0800473 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
474 and reset it only for the 'true' cases.
475
476 * Makefile.am (addr2line_no_Wformat): New variable.
477
Roland McGrathe9de9b42009-01-22 13:05:40 -0800478 * readelf.c (print_debug_frame_section): Use t instead of j formats
479 for ptrdiff_t OFFSET.
480
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -08004812009-01-21 Ulrich Drepper <drepper@redhat.com>
482
483 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
Ulrich Drepperf93ee8d2009-01-21 15:02:03 -0800484 test. Handle debuginfo files.
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -0800485 (check_exception_data): First sanity test.
486
Ulrich Drepperfdc93e12009-01-17 11:47:10 -08004872009-01-17 Ulrich Drepper <drepper@redhat.com>
488
Ulrich Drepper935edde2009-01-17 16:06:42 -0800489 * readelf.c (print_debug_exception_table): Show target of ar_disp
490 field.
491
492 * elflint.c (check_program_header): Add most consistency checks for
493 PT_GNU_EH_FRAME entry.
494
Ulrich Drepperfdc93e12009-01-17 11:47:10 -0800495 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
496 ARGP_PROGRAM_BUG_ADDRESS_DEF.
497 * ar.c: Likewise.
498 * elfcmp.c: Likewise.
499 * elflint.c: Likewise.
500 * findtextrel.c: Likewise.
501 * ld.c: Likewise.
502 * nm.c: Likewise.
503 * objdump.c: Likewise.
504 * ranlib.c: Likewise.
505 * readelf.c: Likewise.
Ulrich Drepper935edde2009-01-17 16:06:42 -0800506
Ulrich Drepperfdc93e12009-01-17 11:47:10 -0800507 * size.c: Likewise.
508 * strings.c: Likewise.
509 * strip.c: Likewise.
510 * unstrip.c: Likewise.
511
Ulrich Drepperb006fbf2009-01-16 03:08:25 -08005122009-01-16 Ulrich Drepper <drepper@redhat.com>
513
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -0800514 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
515 matches .eh_frame_hdr section, if it is available. Also check that
516 the segment is allocated, not writable, not executable.
517
Ulrich Drepperb006fbf2009-01-16 03:08:25 -0800518 * readelf.c: Add -e option. Dump exception and unwind related
519 sections. Add -e to -a.
Ulrich Drepper05d2b202009-01-16 17:58:54 -0800520 (print_encoding_base): Handle DW_EH_PE_omit.
Ulrich Drepperb006fbf2009-01-16 03:08:25 -0800521 (print_debug_exception_table): Beginning of support.
522 (print_debug): Hook up print_debug_exception_table for
523 .gcc_except_table sections.
524
525 * readelf.c (print_debug_frame_section): Some fixes for last change.
526
Ulrich Drepper351bf202009-01-15 20:18:40 -08005272009-01-15 Ulrich Drepper <drepper@redhat.com>
528
529 * readelf.c (print_encoding): Now a toplevel function.
530 (print_relinfo): Likewise.
531 (print_encoding_base): Broken out of print_debug_frame_section.
532 (print_debug_frame_section): Print different header for .eh_frame
533 sections. Fix recognition of matching CIEs in .debug_frame sections.
534 Print absolute offset for PC-relative FDE locations. Don't print
535 table header for FDEs if the table is empty.
536 (read_encoded): New function.
537 (print_debug_frame_hdr_section): New function.
538 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
539 sections.
540
541 * readelf.c (handle_relocs_rel): Print section number.
542 (print_debug_abbrev_section): Likewise.
543 (print_debug_aranges_section): Likewise.
544 (print_debug_ranges_section): Likewise.
545 (print_debug_info_section): Likewise.
546 (print_debug_line_section): Likewise.
547 (print_debug_loc_section): Likewise.
548 (print_debug_macinfo_section): Likewise.
549 (print_debug_pubnames_section): Likewise.
550 (print_debug_str_section): Likewise.
551
Ulrich Drepper8b394632009-01-10 18:29:56 -08005522009-01-10 Ulrich Drepper <drepper@redhat.com>
553
554 * strings.c (read_block): Fix typo in error message string.
555
Ulrich Drepper87cf5832009-01-07 20:39:21 -08005562009-01-07 Ulrich Drepper <drepper@redhat.com>
557
558 * ld.c (ld_new_searchdir): Fix adding to search path list.
559
Ulrich Drepperac194d02009-01-06 00:30:01 -08005602009-01-06 Ulrich Drepper <drepper@redhat.com>
561
562 * readelf.c: Implement call frame debug section dumping.
Roland McGrathe9243e62009-01-21 18:54:20 -0800563
Roland McGrath3614d992009-01-05 18:05:32 -08005642009-01-05 Roland McGrath <roland@redhat.com>
565
566 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
567 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800568
Ulrich Drepper44173ed2009-01-01 19:00:41 -08005692009-01-01 Ulrich Drepper <drepper@redhat.com>
570
571 * addr2line.c: Update copyright year.
572 * ar.c: Likewise.
573 * elfcmp.c: Likewise.
574 * elflint.c: Likewise.
575 * findtextrel.c: Likewise.
576 * ld.c: Likewise.
577 * nm.c: Likewise.
578 * objdump.c: Likewise.
579 * ranlib.c: Likewise.
580 * readelf.c: Likewise.
581 * size.c: Likewise.
582 * strings.c: Likewise.
583 * strip.c: Likewise.
584 * unstrip.c: Likewise.
585
Roland McGrath468fe4d2008-12-11 21:00:12 -08005862008-12-11 Roland McGrath <roland@redhat.com>
587
588 * nm.c (sym_name): New function.
589 (show_symbols_sysv): Use it in place of elf_strptr.
590 (show_symbols_bsd, show_symbols_posix): Likewise.
591 Fixes RHBZ#476136.
592
593 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
594 elf_strptr fails.
595
Roland McGratha845f682008-12-03 03:41:58 +00005962008-12-02 Roland McGrath <roland@redhat.com>
597
598 * readelf.c (count_dwflmod, process_file): Don't presume encoding of
599 nonzero OFFSET argument to dwfl_getmodules.
600
Roland McGrath1d8bb252008-08-07 08:39:41 +00006012008-08-07 Roland McGrath <roland@redhat.com>
602
603 * addr2line.c (main): Pass string to handle_address.
604 (see_one_module): New function, subroutine of handle_address.
605 (find_symbol): Likewise.
606 (handle_address): Take string argument rather than address.
607 Convert plain number, or handle strings like "(section)+offset"
608 or "symbol+offset".
609
6102008-08-01 Roland McGrath <roland@redhat.com>
611
612 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
613 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
614
615 * readelf.c (convert): Take new argument SIZE.
616 (handle_core_register, handle_core_item): Update callers.
617 (handle_core_item): Take new arg REPEATED_SIZE.
618 (handle_core_items): Special case for a singleton item,
619 let handle_core_item handle repeats if it wants to.
620
621 * readelf.c (handle_core_items): Give abridged output
622 for identical groups repeated more than twice.
623
6242008-07-04 Roland McGrath <roland@redhat.com>
625
626 * readelf.c (handle_core_items): Handle ELF_T_ADDR.
627
Roland McGrath521c47d2008-04-11 07:01:58 +00006282008-04-10 Roland McGrath <roland@redhat.com>
629
630 * strip.c (handle_elf): Don't keep sections that kept symbol tables
631 refer to. Instead, just be sure to preserve the original symbol
632 table in the debug file so those symbols go with their sections and
633 can be elided from the stripped version of the symbol table.
634
635 * strip.c (handle_elf): When a discarded section kept in the debug
636 file refers to a nondiscard section via sh_link/sh_info, preserve
637 that nondiscarded section unmodified in the debug file as well.
638 Skip adjustment of discarded sections symbol table references when
639 that symbol table is copied in this way.
640
641 * elflint.c (check_symtab): Don't crash from missing symbol names
642 after diagnosing bogus strtab.
643
644 * strip.c (handle_elf): Cosmetic cleanup in special section contents
645 adjustment for symtab changes.
646
Roland McGrath13b69602008-04-01 02:30:05 +00006472008-03-31 Roland McGrath <roland@redhat.com>
648
649 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
650 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook
651 excuse a special section.
652
6532008-03-27 Roland McGrath <roland@redhat.com>
654
655 * elflint.c (check_sections): Check that executability and writability
656 of sections is reflected in segment p_flags.
657
Roland McGrathd11f9cb2008-03-26 20:51:59 +00006582008-03-26 Roland McGrath <roland@redhat.com>
659
660 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
661 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
662 is valid in RELRO.
663
Roland McGrath47c5c352008-02-29 10:17:16 +00006642008-02-29 Roland McGrath <roland@redhat.com>
665
666 * readelf.c (print_attributes): Add a cast.
667 * elflint.c (check_attributes): Likewise.
668
669 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
670 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
671 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
672
Ulrich Drepper834de6f2008-02-23 06:50:01 +00006732008-02-03 Ulrich Drepper <drepper@redhat.com>
674
675 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
676 when linked into executable.
677 (elf_i386_create_relocations): Likewise.
678
Roland McGrath059c83e2008-02-21 06:19:39 +00006792008-02-20 Roland McGrath <roland@redhat.com>
680
681 * readelf.c (print_attributes): New function.
682 (process_elf_file): Call it under -A.
683
684 * elflint.c (check_attributes): Implement it for real.
685
6862008-02-19 Roland McGrath <roland@redhat.com>
687
688 * elflint.c (special_sections): Handle .gnu.attributes section.
689 (check_sections): Likewise.
690 (check_attributes): New function.
691
6922008-02-10 Roland McGrath <roland@redhat.com>
693
694 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
695 sections and ET_REL files.
696
Ulrich Drepper712d78e2008-02-02 10:01:53 +00006972008-02-02 Ulrich Drepper <drepper@redhat.com>
698
699 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
700 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
701 and R_386_TLS_LE.
702 (elf_i386_create_relocations): Likewise.
703 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
704 elements.
705 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
706 (ld_generic_create_outfile): Add PT_TLS entry to program header.
707 Fix generation of PT_GNU_STACK entry.
708
Ulrich Drepperc54785a2008-02-01 18:05:21 +00007092008-02-01 Ulrich Drepper <drepper@redhat.com>
710
Ulrich Drepper7cd1bf72008-02-01 23:52:59 +0000711 * ld.c (replace_args): Prevent loop over replacements if the parameter
712 is only two characters long.
713
Ulrich Drepperc54785a2008-02-01 18:05:21 +0000714 * ld.c: Recognize sha1 argument for --build-id parameter.
715 * ldgeneric.c (create_build_id_section): Handle sha1.
716 (compute_hash_sum): New function. Broken out of compute_build_id.
717 Take hash function and context as parameters.
718 (compute_build_id): Use compute_hash_sum for md5 and the new sha1
719 implementation.
720
Ulrich Drepper89759c72008-01-31 19:44:12 +00007212008-01-31 Ulrich Drepper <drepper@redhat.com>
722
723 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
724 * ld.c: Recognize --build-id command line parameter.
725 * ld.h: Define scn_dot_note_gnu_build_id.
726 (struct ld_state): Add build_id and buildidscnidx elements.
727 * ldgeneric.c: Implement --build-id command line parameter.
728 * ldlex.l (ID): Recognize - as valid character after the first one.
729
Ulrich Drepper5530ec52008-01-29 10:42:07 +00007302008-01-29 Ulrich Drepper <drepper@redhat.com>
731
Ulrich Drepperb61c4cc2008-01-30 07:16:28 +0000732 * ld.c (replace_args): New function.
733 (main): Use it to rewrite old-style parameters.
734
Ulrich Dreppered9b6cb2008-01-30 06:33:33 +0000735 * elf32-i386.script: Add .gnu.hash section.
736 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
737 (fillin_special_symbol): Initialize st_size.
738 (sortfct_hashval): New function.
739 (create_gnu_hash): New function.
740 (create_hash): New function.
741 (ld_generic_create_outfile): Use the new functions to create the
742 hash tables.
743
Ulrich Drepper5530ec52008-01-29 10:42:07 +0000744 * elflint.c (check_gnu_hash): Fix index value printed in error message.
745
Ulrich Drepper0e864dd2008-01-25 00:18:42 +00007462008-01-24 Ulrich Drepper <drepper@redhat.com>
747
748 * elflint.c (check_group): Check that signature symbol for section
749 group is not an empty string.
750 * ldgeneric.c: Remove magic assignment of indeces in the dynsym
751 section. Start implementation of --hash-style.
752 * i386_ld.c: Likewise.
753 * ld.c: Recognize --hash-style.
754 * ld.h (struct scninfo): Add comdat_group.
755 Add additional parameter to finalize_plt callback.
756
Ulrich Drepper5449a6b2008-01-22 15:49:39 +00007572008-01-22 Ulrich Drepper <drepper@redhat.com>
758
759 * ld.h (struct callbacks): Add initialize_gotplt.
760 (struct scnhead): Add scn_dot_gotplt.
761 (struct ld_state): Add gotpltscnidx.
762 * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
763 (elf_i386_initialize_pltrel): Likewise.
764 (elf_i386_initialize_got): There is now a separate .got.plt, so
765 don't do the PLT-related work here. Initialize d_type.
766 (elf_i386_initialize_gotplt): New function.
767 (elf_i386_plt0): Use ud2a after indirect jump.
768 (elf_i386_pic_plt0_entry): Likewise.
769 (elf_i386_finalize_plt): Reference now .got.plt.
770 (elf_i386_count_relocations): For GOT entries which need no relocation
771 don't bump nrel_got.
772 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32
773 handling for split .got/.got.plt.
774 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
775 * elf32-i386.script: Sort sections for security. There are no .got
776 input sections. Add .got.plt.
777 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
778 (ld_generic_create_outfile): Initialize .got.plt section.
779 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
780
Ulrich Drepperd9488292008-01-20 16:43:15 +00007812008-01-19 Ulrich Drepper <drepper@redhat.com>
782
783 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
784 symbols are not carried over into statically linked output files.
785 Add dummy entries for more TLS relocations.
786
787 * ld.c (options): Add long names for -( and -).
788
789 * ldgeneric.c (check_definition): For newly found definitions don't
790 mark section as used if symbol is absolute.
791 (extract_from_archive): Only assign archive sequence number the first
792 time the archive is handled. Update ld_state.last_archive_used
793 if any symbol was used. Remove nround variable.
794 (file_process2): When using symbol from an archive, update
795 ld_state.group_start_archive, ld_state.archives, and
796 ld_state.tailarchives.
797 (ld_generic_file_process): If group is not handled anymore, after
798 freeing ELF handles for the archives, clear ld_state.archives and
799 *nextp. Fix wrong logic in recognizing first iteration of group
800 loop. When clearing flags, also clear ld_state.group_start_archive.
801
Ulrich Drepper5eee1222008-01-11 10:12:18 +00008022008-01-11 Ulrich Drepper <drepper@redhat.com>
803
804 * objdump.c (show_disasm): Adjust disassembler format string for
805 removal of %e.
806
Ulrich Dreppere219f1c2008-01-09 05:49:49 +00008072008-01-04 Roland McGrath <roland@redhat.com>
808
Roland McGrath059c83e2008-02-21 06:19:39 +0000809 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
810 a size greater than the items cover means multiple sets of items.
811 (handle_core_note): Update caller.
812
8132008-01-04 Roland McGrath <roland@redhat.com>
814
Ulrich Dreppere219f1c2008-01-09 05:49:49 +0000815 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
816
8172008-01-03 Roland McGrath <roland@redhat.com>
818
819 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
820
821 * elflint.c (check_dynamic): Remove duplicate initializer.
822
Ulrich Drepperad024af2008-01-02 17:42:52 +00008232008-01-02 Ulrich Drepper <drepper@redhat.com>
824
825 * addr2line.c: Update copyright year.
826 * ar.c: Likewise.
827 * elfcmp.c: Likewise.
828 * elflint.c: Likewise.
829 * findtextrel.c: Likewise.
830 * ld.c: Likewise.
831 * nm.c: Likewise.
832 * objdump.c: Likewise.
833 * ranlib.c: Likewise.
834 * readelf.c: Likewise.
835 * size.c: Likewise.
836 * strings.c: Likewise.
837 * strip.c: Likewise.
838 * unstrip.c: Likewise.
839
Ulrich Drepper3cbdd382008-01-02 17:44:39 +00008402007-12-30 Ulrich Drepper <drepper@redhat.com>
841
842 * objdump (show_disasm): Use %e after third parameter.
843
8442007-12-21 Ulrich Drepper <drepper@redhat.com>
845
846 * strip.c: Fix wrong parenthesis in a few branch predictions.
847 * strings.c: Likewise.
848
8492007-12-20 Ulrich Drepper <drepper@redhat.com>
850
851 * Makefile.am (DEFS): Add DEBUGPRED.
852 * addr2line.c: Include debugpred.h.
853 * ar.c: Likewise.
854 * elfcmp.c: Likewise.
855 * elflint.c: Likewise.
856 * findtextrel.c: Likewise.
857 * nm.c: Likewise.
858 * objdump.c: Likewise.
859 * ranlib.c: Likewise.
860 * readelf.c: Likewise.
861 * size.c: Likewise.
862 * strings.c: Likewise.
863 * strip.c: Likewise.
864 * unstrip.c: Likewise.
865 * debugpred.h: New file.
866
867 * readelf.c (handle_relocs_rel): Use elf_scnshndx.
868 (handle_relocs_rela): Likewise.
869
870 * readelf.c: Add lots of likely/unlikely.
871
872 * elflint.c: Minor cleanups.
873
Roland McGrath1a2e8f42007-12-15 23:39:34 +00008742007-11-19 Roland McGrath <roland@redhat.com>
875
876 * readelf.c (print_ops): Handle all bad op codes gracefully.
877 Print their numbers instead of just ???.
878
Roland McGrath07a696e2007-11-09 22:44:26 +00008792007-11-09 Roland McGrath <roland@redhat.com>
880
881 * readelf.c (attr_callback): Handle DW_AT_data_location.
Roland McGrath1a2e8f42007-12-15 23:39:34 +0000882 Handle block forms to mean a DWARF expression for DW_AT_allocated,
883 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
884 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
885 DW_AT_upper_bound.
Roland McGrath07a696e2007-11-09 22:44:26 +0000886
Roland McGrathe4c22ea2007-10-23 13:07:39 +00008872007-10-20 Roland McGrath <roland@redhat.com>
888
889 * unstrip.c (options): Update -R description.
890 (struct symbol): Put symbol details a union with a size_t pointer
891 `duplicate'.
892 (compare_symbols_output): Use null ->name as marker for discard
893 symbols, not zero *->map.
894 (copy_elided_sections): Record forwarding pointers for discarded
895 duplicates and fill SYMNDX_MAP elements through them.
896
897 * readelf.c (process_file): Set offline_next_address to 0 at start.
898 (struct process_dwflmod_args): New type.
899 (process_dwflmod): Take args in it, pass fd to process_elf_file.
900 (process_file): Update caller; dup FD for passing to libdwfl.
901 (process_elf_file): Take new arg FD. For ET_REL file when
902 displaying data affected by libdwfl relocation, open a new Elf handle.
903
9042007-10-17 Roland McGrath <roland@redhat.com>
905
906 * readelf.c (print_debug_line_section): For invalid data inside a
907 unit with plausible length, keep printing at the next unit boundary.
908
909 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
910
9112007-10-16 Roland McGrath <roland@redhat.com>
912
913 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
914
Ulrich Drepperb597dfa2007-10-16 05:21:27 +00009152007-10-15 Roland McGrath <roland@redhat.com>
916
917 * make-debug-archive.in: New file.
918 * Makefile.am (EXTRA_DIST): Add it.
919 (make-debug-archive): New target.
920 (bin_SCRIPTS, CLEANFILES): Add it.
921
9222007-10-10 Roland McGrath <roland@redhat.com>
923
924 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
925 Use it to check MERGE|STRINGS for .debug_str.
926 (check_sections): Handle exact_or_gnuld.
927
9282007-10-08 Roland McGrath <roland@redhat.com>
929
930 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
931 64-bit struct timeval with 32-bit tv_usec.
932
9332007-10-07 Roland McGrath <roland@redhat.com>
934
935 * readelf.c (check_archive_index): New function.
936 (process_file): Call it. Change signature to take only fd and name.
937 Use libdwfl to open the file, then iterate on its modules (multiple
938 for an archive) to print file name and call process_elf_file.
939 (main): Update caller. Let process_file do elf_begin.
940 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
941 (process_elf_file): Take only Dwfl_Module * argument.
942 Don't print the file name here.
943 (print_debug_*_section): Take Dwfl_Module * argument.
944 (print_debug): Likewise. Update caller.
945 (format_dwarf_addr): New function.
946 (print_debug_ranges_section): Use it.
947 (attr_callback): Likewise.
948 (print_debug_line_section, print_debug_loc_section): Likewise.
949
950 * readelf.c (print_debug_ranges_section): Translate all strings.
951 (print_debug_loc_section): Likewise.
952
953 * unstrip.c (copy_elided_sections): Initialize SEC.
954
955 * ar.c (do_oper_insert): Put trailing / on short names.
956
957 * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
958
959 * arlib2.c (arlib_add_long_name): Adjust for header size.
960
961 * arlib.c (arlib_finalize): Pad long name table to keep size even.
962
963 * ar.c (do_oper_insert): Use write_retry for padding write.
964
965 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
966 Unconditionally set FOUND[CNT]->elf when setting ->mem.
967 (remember_long_name): New function.
968 (do_oper_insert): Call it. Correctly use length of basename,
969 not original name. Don't store long name twice for new member.
970
9712007-10-06 Roland McGrath <roland@redhat.com>
972
973 * elflint.c (check_note): Skip empty segment.
974 (check_note_section): Skip empty section.
975
976 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
977 (handle_output_dir_module, handle_implicit_modules): Pass it down.
978 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
979 (compare_alloc_sections): Take new arg REL, ignore address if true.
980 (compare_sections): Likewise, pass it down.
981 (compare_sections_rel, compare_sections_nonrel): New functions.
982 (find_alloc_sections_prelink, copy_elided_sections): Use them
983 instead of compare_sections.
984 (sections_match): New function, broken out of ...
985 (find_alloc_section): ... here.
986 (copy_elided_sections): Reorganize section match-up logic.
987 Use sections_match for SHF_ALLOC in ET_REL.
988 For ET_REL, let the nonzero sh_addr from the debug file dominate.
989
990 * unstrip.c (add_new_section_symbols): Take new arg REL.
991 When true, do not update section symbol values.
992 (collect_symbols): Likewise. Update section symbols with address
993 of chosen output section, not original section.
994 (check_symtab_section_symbols, copy_elided_sections): Update callers.
995
996 * unstrip.c (compare_alloc_sections): At the same address, preserve
997 original section order.
998
999 * elflint.c (special_sections): Don't require MERGE|STRINGS for
1000 .debug_str, it didn't always have them with older tools.
1001
1002 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
1003
10042007-10-05 Roland McGrath <roland@redhat.com>
1005
1006 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
1007 ET_REL file.
1008
1009 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
1010 SHN_UNDEF as "bad section". Use shndx value in messages.
1011
1012 * elflint.c (special_sections): Add ".debug_str". Decrement namelen
1013 for ".debug" so it matches as a prefix.
1014 (IS_KNOWN_SPECIAL): New macro.
1015 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS
1016 type even under -d, for a .debug* or .shstrtab section.
1017
1018 * readelf.c (print_ops): Use hex for address operand.
1019
10202007-10-04 Roland McGrath <roland@redhat.com>
1021
1022 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
1023 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for
1024 sections mapped to SHN_UNDEF.
1025
Ulrich Drepper3fc3d7b2007-10-04 18:40:28 +000010262007-10-04 Ulrich Drepper <drepper@redhat.com>
1027
1028 * readelf.c (dump_archive_index): Avoid warning about uninitialized
1029 variable with older glibc versions.
1030 Add some branch prediction.
1031
Roland McGrath59ea7f32007-10-04 08:50:09 +000010322007-10-04 Roland McGrath <roland@redhat.com>
1033
1034 * readelf.c (print_archive_index): New variable.
1035 (options, parse_opt): Accept -c/--archive-index to set it.
1036 (dump_archive_index): New function.
1037 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
1038 Call dump_archive_index on archives if set.
1039 (main): Update caller.
1040 (any_control_option): Give it file scope, moved out of ...
1041 (parse_opt): ... here.
1042
10432007-10-03 Roland McGrath <roland@redhat.com>
1044
1045 * unstrip.c (struct arg_info): Add `list' flag.
1046 (options, parse_opt): Grok -n/--list to set it.
1047 (list_module): New function.
1048 (handle_implicit_modules): Call it under -n.
1049
1050 * elflint.c (check_note_section): New function.
1051 (check_sections): Call it for SHT_NOTE.
1052
1053 * readelf.c (handle_notes): Use sections when available.
1054
1055 * elflint.c (check_note_data): New function, broken out of ...
1056 (check_note): ... here. Call it and elf_getdata_rawchunk.
1057
1058 * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
1059 Use elf_getdata_rawchunk and gelf_getauxv.
1060 (handle_notes_data): New function, broken out of ...
1061 (handle_notes): ... here. Call it and elf_getdata_rawchunk.
1062
Roland McGrath241ac022007-10-01 18:21:46 +000010632007-10-01 Roland McGrath <roland@redhat.com>
1064
Roland McGrathac0a16c2007-10-01 18:50:35 +00001065 * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
1066
Roland McGrath241ac022007-10-01 18:21:46 +00001067 * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
1068
Roland McGrathc76f0b02007-09-27 07:31:33 +000010692007-09-10 Roland McGrath <roland@redhat.com>
1070
1071 * readelf.c (options): Give -p optional argument, alias --string-dump.
1072 (string_sections, string_sections_tail): New static variables.
1073 (parse_opt): Set them when -p has an argument.
1074 (print_string_section): New function, broken out of ...
1075 (print_strings): ... here. Call it.
1076 (dump_data_section): New function, broken out of ...
1077 (dump_data): ... here. Call it.
1078 (for_each_section_argument): New function, broken out of ...
1079 (dump_data): ... here. Call it.
1080 (dump_strings): New function.
1081
10822007-08-31 Roland McGrath <roland@redhat.com>
1083
1084 * readelf.c (print_strings): Typo fix.
1085
Roland McGrathcb6d8652007-08-23 08:10:54 +000010862007-08-23 Roland McGrath <roland@redhat.com>
1087
1088 * readelf.c (printf_with_wrap): Function removed.
1089 (REGISTER_WRAP_COLUMN): New macro.
1090 (handle_core_register): Use print_core_item instead.
1091 (struct register_info): New type.
1092 (compare_registers, compare_register_sets): New functions.
1093 (register_bitpos, compare_sets_by_info): New functions.
1094 (handle_core_registers): Use those to segregate and sort registers
1095 for display.
1096
1097 * readelf.c (ITEM_WRAP_COLUMN): New macro.
1098 (print_core_item): New function.
1099 (handle_core_item): Use it instead of printf_with_wrap.
1100 (compare_core_items, compare_core_item_groups): New functions.
1101 (handle_core_items): Use them. Sort by group and force line breaks
1102 between groups.
1103
1104 * readelf.c (handle_core_registers, handle_core_items): New functions,
1105 broken out of ...
1106 (handle_core_note): ... here. Call them.
1107
11082007-08-22 Roland McGrath <roland@redhat.com>
1109
1110 * unstrip.c (new_shstrtab): New function, broken out of ...
1111 (copy_elided_sections): ... here.
1112
11132007-08-20 Roland McGrath <roland@redhat.com>
1114
1115 Avoid local function trampolines in nm binary.
1116 * nm.c (sort_by_address): Move to a static function instead of local
1117 inside show_symbols.
1118 (sort_by_name_strtab): New static variable.
1119 (sort_by_name): Use it. Move to a static function instead of local
1120 inside show_symbols.
1121 (show_symbols): Set sort_by_name_strtab.
1122
11232007-08-19 Roland McGrath <roland@redhat.com>
1124
1125 * readelf.c (handle_auxv_note): New function.
1126 (handle_notes): Call it.
1127
1128 * readelf.c (printf_with_wrap, convert): New functions.
1129 (handle_core_item, (handle_core_register): New functions.
1130 (handle_notes): Call those with details from ebl_core_note.
1131
Roland McGrath099dd522007-08-13 22:58:36 +000011322007-08-12 Roland McGrath <roland@redhat.com>
1133
1134 * elflint.c (check_note): Accept type 0 with name "Linux".
1135
1136 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
1137
1138 * elflint.c (section_flags_string): Return "none" for 0, not "".
1139
Roland McGrathd8221722007-08-11 21:18:09 +000011402007-08-11 Roland McGrath <roland@redhat.com>
1141
1142 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
1143
Ulrich Drepperc98bcc72007-08-04 17:06:14 +000011442007-08-04 Ulrich Drepper <drepper@redhat.com>
1145
1146 * readelf.c (hex_dump): Use isprint to determine whether to print
1147 character itself or full stop character.
1148 (dump_data): No need to check endp for NULL after strtol call.
1149
Roland McGrath60fc84c2007-08-03 21:59:15 +000011502007-08-03 Roland McGrath <roland@redhat.com>
1151
1152 * readelf.c (print_string_sections): New variable.
1153 (options, parse_opt): Handle --strings/-p to set it.
1154 (print_strings): New function.
1155 (process_elf_file): Call it under -p.
1156
1157 * readelf.c (options): Add hidden aliases --segments, --sections,
1158 as taken by binutils readelf.
1159
11602007-08-01 Roland McGrath <roland@redhat.com>
1161
1162 * readelf.c (dump_data_sections, dump_data_sections_tail):
1163 New variables.
1164 (options, parse_opt): Handle --hex-dump/-x, set them.
1165 (hex_dump): New function.
1166 (dump_data): New function, call it.
1167 (process_elf_file): Call it.
1168
11692007-07-25 Roland McGrath <roland@redhat.com>
1170
1171 * addr2line.c (show_symbols): New variable.
1172 (print_addrsym): New function.
1173 (handle_address): Call it.
1174 (options, parse_opt): Handle -S/--symbols.
1175
Ulrich Drepperb0243862007-06-06 00:09:36 +000011762007-06-05 Ulrich Drepper <drepper@redhat.com>
1177
1178 * addr2line.c: Update for latest autoconf header.
1179 * ar.c: Likewise.
1180 * elfcmp.c: Likewise.
1181 * elflint.c: Likewise.
1182 * findtextrel.c: Likewise.
1183 * ld.c: Likewise.
1184 * ldgeneric.c: Likewise.
1185 * nm.c: Likewise.
1186 * objdump.c: Likewise.
1187 * ranlib.c: Likewise.
1188 * readelf.c: Likewise.
1189 * size.c: Likewise.
1190 * strings.c: Likewise.
1191 * strip.c: Likewise.
1192 * unstrip.c: Likewise.
1193
Roland McGrath9aa8ef72007-05-18 08:59:43 +000011942007-05-18 Roland McGrath <roland@redhat.com>
1195
1196 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
1197 stripped file, so as not to duplicate a section copied in both.
1198
1199 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
1200
12012007-05-17 Roland McGrath <roland@redhat.com>
1202
1203 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
1204
1205 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
1206
1207 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
1208 call make_directories here.
1209 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
1210 (handle_dwfl_module): Likewise.
1211 (handle_implicit_modules): Update callers.
1212 (handle_output_dir_module): Likewise. Don't do make_directories here.
1213
1214 * unstrip.c (get_section_name): New function, broken out of ...
1215 (copy_elided_sections): here. Update callers.
1216 (find_alloc_section): Broken out of ...
1217 (copy_elided_sections): ... here. Update caller.
1218 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
1219 update STT_SECTION symbols' st_value fields as a side effect.
1220 (check_symtab_section_symbols): Update caller.
1221 (add_new_section_symbols): Set st_value in symbols added.
1222 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
1223 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
1224 from .bss to .dynbss.
1225 (find_alloc_sections_prelink): New function. Associate debug file
1226 allocated SHT_NOBITS shdrs with stripped moved by prelink via
1227 .gnu.prelink_undo information.
1228 (copy_elided_sections): Call it when we couldn't find every allocated
1229 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
1230 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
1231 (handle_file): Update callers.
1232
1233 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
1234 named ".comment".
1235
1236 * elflint.c (check_sections): Fix association of segments with
1237 sections when p_memsz > p_filesz.
1238
12392007-04-29 Roland McGrath <roland@redhat.com>
1240
1241 * addr2line.c (options, main): Tweak argp group settings to fix
1242 usage output.
1243
12442007-04-28 Roland McGrath <roland@redhat.com>
1245
1246 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
1247 sizes to match sections adjusted in the stripped file.
1248
Roland McGrath4be15242007-04-25 03:09:33 +000012492007-04-24 Roland McGrath <roland@redhat.com>
1250
1251 * elfcmp.c (OPT_HASH_INEXACT): New macro.
1252 (hash_inexact): New variable.
1253 (options, parse_opt): Add --hash-inexact option to set it.
1254 (hash_content_equivalent): New function.
1255 (main): Call it for differing SHT_HASH sections under --hash-inexact.
1256
12572007-04-23 Roland McGrath <roland@redhat.com>
1258
1259 * unstrip.c: New file.
1260 * Makefile.am (bin_PROGRAMS): Add it.
1261 (unstrip_LDADD): New variable.
1262
1263 * strip.c (options): Allow --output for -o.
1264
Ulrich Drepper8b383102007-02-16 00:31:57 +000012652007-02-15 Ulrich Drepper <drepper@redhat.com>
1266
1267 * readelf.c: Remove unused code. Add a few consts.
1268
Ulrich Drepper903c1162007-02-15 19:40:37 +000012692007-02-15 Roland McGrath <roland@redhat.com>
1270
1271 * readelf.c (print_debug): Fix brainos in SHDR test.
1272
Roland McGrathf82a1ec2007-02-06 04:47:44 +000012732007-02-05 Roland McGrath <roland@redhat.com>
1274
1275 * ar.c: Include <limits.h>, since we use LONG_MAX.
1276
Ulrich Drepper0fe63532007-02-05 21:05:51 +000012772007-02-05 Ulrich Drepper <drepper@redhat.com>
1278
Ulrich Drepper8b383102007-02-16 00:31:57 +00001279 * ar.c: Add ugly hack to work around gcc complaining that we
Ulrich Drepper93ab56f2007-02-05 22:12:41 +00001280 ignore fchown's return value.
1281 (do_oper_insert): Handle error when writing padding.
1282 * ranlib.c: Add fchown complain work around.
1283
Ulrich Drepper0fe63532007-02-05 21:05:51 +00001284 * arlib.c: Make symtab a global variable. Change all users.
1285 * arlib2.c: Likewise.
1286 * ranlib.c: Likewise.
1287 * ar.c: Likewise.
1288 * arlib.h: Declare it.
1289
Ulrich Drepperaa915fd2007-02-05 07:25:33 +000012902007-01-11 Roland McGrath <roland@redhat.com>
1291
1292 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
1293 SHF_MASKPROC bits separately from generic sh_flags validation.
1294
Ulrich Drepperce0bdb62007-02-05 07:13:52 +000012952007-02-04 Ulrich Drepper <drepper@redhat.com>
1296
1297 * ar.c: New file.
1298 * arlib.c: New file.
1299 * arlib2.c: New file.
1300 * arlib.h: New file.
1301 * Makefile (noinst_LIBRARIES): Add libar.
1302 (libar_a_SOURCES): Define.
1303 (ar_LDADD): Define.
1304 (CFLAGS_ar): Define.
1305 * ranlib.c: Change to use arlib.
1306
1307 * elflint.c (check_symtab): Work around GNU ld bug which omits
1308 sections but not symbols in those sections.
1309
Ulrich Drepperb770cf92007-01-10 21:02:34 +000013102007-01-10 Ulrich Drepper <drepper@redhat.com>
1311
1312 * addr2line.c: Update copyright year.
1313 * elfcmp.c: Likewise.
1314 * elflint.c: Likewise.
1315 * findtextrel.c: Likewise.
1316 * ld.c: Likewise.
1317 * nm.c: Likewise.
1318 * objdump.c: Likewise.
1319 * ranlib.c: Likewise.
1320 * readelf.c: Likewise.
1321 * size.c: Likewise.
1322 * strings.c: Likewise.
1323 * strip.c: Likewise.
1324
Ulrich Drepper7c0e79f2006-12-09 21:10:19 +000013252006-12-09 Ulrich Drepper <drepper@redhat.com>
1326
1327 * elflint.c (compare_hash_gnu_hash): New function. Report if the
1328 two hash tables have different content (module expected omission
1329 of undefined symbols).
1330
Roland McGrath8190db62006-12-17 23:56:51 +000013312006-10-31 Roland McGrath <roland@redhat.com>
1332
1333 * elflint.c (check_program_header): Don't complain about
Ulrich Drepper56bc0b82006-12-18 22:38:08 +00001334 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
Roland McGrath8190db62006-12-17 23:56:51 +00001335
13362006-09-19 Jakub Jelinek <jakub@redhat.com>
1337
1338 * strip.c (process_file): Disallow -f on archives.
1339
13402006-10-09 Roland McGrath <roland@redhat.com>
1341
1342 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
1343
Roland McGrathc373d852006-10-10 00:25:21 +000013442006-08-29 Roland McGrath <roland@redhat.com>
1345
1346 * Makefile.am (MAINTAINERCLEANFILES): New variable.
1347
1348 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
1349 Reported by Christian Aichinger <Greek0@gmx.net>.
1350
1351 * elflint.c (valid_e_machine): Add EM_ALPHA.
1352 Reported by Christian Aichinger <Greek0@gmx.net>.
1353
Ulrich Drepper231c5902006-08-08 22:00:11 +000013542006-08-08 Ulrich Drepper <drepper@redhat.com>
1355
1356 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
1357 Keep track of which "high DT" entries are present.
1358 Check that either old or GNU-style hash table is present.
1359 If GNU-style hash table is used a symbol table is mandatory.
1360 Check that if any prelink entry is present all of them are.
1361 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
1362 table if they don't refer to functions.
1363
Roland McGrath858b1892006-07-17 08:41:15 +000013642006-07-17 Roland McGrath <roland@redhat.com>
1365
1366 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
1367 (add_version): Likewise for argument.
1368 (check_versym): Cast constant to GElf_Versym for comparison.
1369
Roland McGrath4ec807e2006-07-13 03:59:46 +000013702006-07-12 Roland McGrath <roland@redhat.com>
1371
1372 * readelf.c (handle_gnu_hash): Add casts for machines where
1373 Elf32_Word != unsigned int.
1374
Ulrich Drepperdcf61602006-07-12 19:59:02 +000013752006-07-12 Ulrich Drepper <drepper@redhat.com>
1376
1377 * elflint.c (check_sysv_hash64): Fix printf format.
1378
Ulrich Dreppercc415622006-07-12 19:42:23 +000013792006-07-11 Roland McGrath <roland@redhat.com>
Ulrich Drepper8ae58142006-07-12 05:22:32 +00001380
Ulrich Dreppercc415622006-07-12 19:42:23 +00001381 * addr2line.c (options): English fix in -f doc string.
1382
1383 * addr2line.c (use_comp_dir): New variable.
1384 (options, parse_opt): Grok -A/--absolute to set it.
1385 (handle_address): If set, prepend dwfl_line_comp_dir results to
1386 relative file names.
Ulrich Drepper8ae58142006-07-12 05:22:32 +00001387
Ulrich Drepper28ed8952006-07-07 03:43:47 +000013882006-07-06 Ulrich Drepper <drepper@redhat.com>
1389
1390 * elflint.c: Adjust for latest new hash table format.
1391 * readelf.c: Likewise.
1392
1393 * elflint.c (check_versym): Ignore hidden bit when comparing version
1394 numbers.
1395
13962006-07-05 Ulrich Drepper <drepper@redhat.com>
1397
1398 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
1399 discarded COMDAT symbols.
1400
1401 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
1402 (elf_i386_create_relocations): Likewise.
1403 * ld.h (struct symbol): Add local and hidden bits.
1404 * ld.c (create_special_section_symbol): These synthsized symbols
1405 are local and hidden.
1406 * ldgeneric.c (file_process2): Check whether input file matches
1407 the emulation.
1408 (fillin_special_symbol): Create symbols as local and/or hidden
1409 if requested.
1410 (ld_generic_create_outfile): Make local copy of symbol.
1411 Don't hide global, defined symbols in dynamic symbol table unless
1412 requested. Synthetic symbols have no version information.
1413
1414 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
1415 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
1416
14172006-07-04 Ulrich Drepper <drepper@redhat.com>
1418
1419 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
1420 testing.
1421
14222006-07-03 Ulrich Drepper <drepper@redhat.com>
1423
1424 * elflint.c: Add testing of DT_GNU_HASH.
1425 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
1426
1427 * Makefile.am: Add hacks to create dependency files for non-generic
1428 linker.
1429
Ulrich Drepper6ca46002006-06-12 22:40:23 +000014302006-06-12 Ulrich Drepper <drepper@redhat.com>
1431
1432 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
1433 section if creating a DSO and no interpreter is given.
1434 (ld_generic_create_outfile): Don't store reference to symbols in
1435 discarded COMDAT groups. Don't create PHDR and INTERP program header
1436 for DSO if no interpreter is specified.
Ulrich Drepper595d0e72006-06-12 23:25:17 +00001437 (create_verneed_data): Pretty printing.
1438
Ulrich Drepper6ca46002006-06-12 22:40:23 +00001439 * ldscript.y (content): If a DSO is created don't set default
1440 interpreter from linker script.
1441
1442 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
1443 for symbols in discarded COMDAT groups.
1444 (elf_i386_create_relocations): Likewise.
1445 * ld.h (struct scninfo): Add unused_comdat.
1446 * ldgeneric.c (add_section): Also check group signature when
1447 matching COMDAT sections.
1448 (add_relocatable_file): Ignore symbols in COMDAT group which are
1449 discarded.
1450
1451 * elflint.c (check_one_reloc): For *_NONE relocs only check type
1452 and symbol reference.
1453
Ulrich Drepper54f33a72006-06-11 09:07:37 +000014542006-06-11 Ulrich Drepper <drepper@redhat.com>
1455
Ulrich Dreppercbb51e52006-06-11 20:25:23 +00001456 * elflint.c (check_dynamic): Fix checking value of tags which are
1457 offsets in the string section. Make sure DT_STRTAB points to the
1458 section referenced in sh_link.
1459
1460 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
1461
Ulrich Drepper54f33a72006-06-11 09:07:37 +00001462 * ld.c: Recognize --eh-frame-hdr option.
1463 * ld.h (struct ld_state): Add eh_frame_hdr field.
1464 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
1465
1466 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
1467 SH_FLAGS_COMBINE.
1468 (add_relocatable_file): Minor optimization of last change.
1469 (match_section): Don't preserve SHF_GROUP flag any longer.
1470
Ulrich Drepper2d880282006-06-11 00:20:43 +000014712006-06-10 Ulrich Drepper <drepper@redhat.com>
1472
1473 * ld.c (parse_z_option): Recognize execstack and noexecstack.
Ulrich Drepper4f0a7a82006-06-11 00:53:45 +00001474 Handle record and ignore as position dependent options.
1475 (parse_z_option_2): Handle ignore and record here.
Ulrich Drepper2d880282006-06-11 00:20:43 +00001476 * ld.h (struct ld_state): Add execstack field.
1477 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
1478 sections.
1479 (ld_generic_create_outfile): Fix program header creation in native
1480 linker. Add PT_GNU_STACK program header.
1481
Ulrich Dreppera688a732006-06-10 06:33:00 +000014822006-06-09 Ulrich Drepper <drepper@redhat.com>
1483
1484 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
1485 for PLT entries if there is no local definition.
1486
1487 * ld.c (parse_option): Handle -z ignore like --as-needed and
1488 -z record like --no-as-needed.
1489 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
1490 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
1491 looping over DSOs. When deciding about adding DT_NEEDED entries
1492 use ->as_needed instead of ignore_unused_dsos.
1493
Ulrich Drepper8c56fe32006-05-31 15:50:43 +000014942006-05-31 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001495
Ulrich Drepper8c56fe32006-05-31 15:50:43 +00001496 * ld.c: Recognize --as-needed and --no-as-needed options.
1497 * ld.h (struct usedfile): Add as_needed field.
1498 (struct ld_state): Likewise.
1499 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
1500 the list.
1501 * ldscript.y (filename_id_list): Split to correctly parse all
1502 combinations.
1503 (mark_as_needed): Fix loop.
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001504
Ulrich Drepper697f4db2006-06-10 06:50:47 +000015052006-05-28 Ulrich Drepper <drepper@redhat.com>
1506
1507 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
1508 and colno.
1509
Ulrich Drepper2cb8e732006-05-27 21:57:27 +000015102006-05-27 Ulrich Drepper <drepper@redhat.com>
1511
1512 * readelf.c (handle_relocs_rela): Better notations for addon value.
Ulrich Drepper41a99082006-05-28 00:01:43 +00001513 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
Ulrich Drepper2cb8e732006-05-27 21:57:27 +00001514
Ulrich Drepper82c345d2006-04-04 22:07:54 +000015152006-04-04 Ulrich Drepper <drepper@redhat.com>
1516
1517 * addr2line.c: Update copyright year.
1518 * elfcmp.c: Likewise.
1519 * elflint.c: Likewise.
1520 * findtextrel.c: Likewise.
1521 * ld.c: Likewise.
1522 * nm.c: Likewise.
1523 * objdump.c: Likewise.
1524 * ranlib.c: Likewise.
1525 * readelf.c: Likewise.
1526 * size.c: Likewise.
1527 * strings.c: Likewise.
1528 * strip.c: Likewise.
1529
Roland McGrathdd7e22b2006-03-09 23:05:47 +000015302006-03-09 Roland McGrath <roland@redhat.com>
1531
1532 * Makefile.am (AM_LDFLAGS): New variable.
1533
Roland McGrath060fa052006-03-02 07:51:50 +000015342006-03-01 Roland McGrath <roland@redhat.com>
1535
1536 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
1537 for dwarf.h changes matching 3.0 spec.
1538 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
1539
Ulrich Drepper038129b2005-12-04 16:47:24 +000015402005-12-04 Ulrich Drepper <drepper@redhat.com>
1541
1542 * elflint.c (check_one_reloc): If relocation section is not loaded,
1543 don't check whether the relocations modify read-only sections or
1544 loaded and unloaded sections.
1545
Ulrich Drepper607e0542005-12-04 15:51:06 +000015462005-11-28 Ulrich Drepper <drepper@redhat.com>
1547
1548 * elflint.c (check_one_reloc): Take additional parameters. Use
1549 them to determine whether relocation is valid in this type of
1550 file. DSOs and executables can contain relocation sections in
1551 unloaded sections which just show the relocations the linker
1552 applied. Adjust all callers.
1553 (check_program_header): Check that PT_PHDR is loaded and that offset
1554 matches the one in the ELF header.
1555
Roland McGrath6724c902005-10-28 07:07:19 +000015562005-10-26 Roland McGrath <roland@redhat.com>
1557
1558 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
1559
Ulrich Drepperd0449522005-09-03 07:23:52 +000015602005-09-03 Ulrich Drepper <drepper@redhat.com>
1561
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001562 * strip.c (handle_elf): Unify some error messages.
1563 * ld.c (main): Likewise.
1564 * ldgeneric.c (open_elf): Likewise.
1565 * elfcmp.c (main): Likewise.
1566 * elflint.c (check_elf_header): Likewise.
1567
1568 * size.c (process_file): Fix typo in error message.
1569
Ulrich Drepperd0449522005-09-03 07:23:52 +00001570 * readelf.c: Lots of little cleanups. Use _unlocked functions.
1571
Ulrich Dreppera60501e2005-09-02 19:50:17 +000015722005-09-02 Ulrich Drepper <drepper@redhat.com>
1573
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001574 * strings.c (main): Reset elfmap variable after munmap call.
Ulrich Drepper618795f2005-09-02 20:01:37 +00001575 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
Ulrich Dreppera60501e2005-09-02 19:50:17 +00001576
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000015772005-08-28 Ulrich Drepper <drepper@redhat.com>
1578
1579 * ranlib.c: Don't define pread_retry and write_retry here.
1580
1581 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
1582 (CLEANFILES): Add *.gcno *.gcda *.gconv.
1583
1584 * strings.c (process_chunk): Reorder expressions in conditional
1585 (process_chunk_mb): Likewise.
1586
1587 * strings.c: New file.
1588 * Makefile.am (bin_PROGRAMS): Add strings.
1589 (strings_no_Wstring): Define.
1590 (strings_LDADD): Define.
1591
Roland McGrath71e15a02005-08-27 10:33:26 +000015922005-08-27 Roland McGrath <roland@redhat.com>
1593
1594 * addr2line.c (dwarf_diename_integrate): Function removed.
1595 (print_dwarf_function): Use plain dwarf_diename.
1596
Ulrich Drepperc5a06cd2005-08-24 19:50:14 +000015972005-08-24 Ulrich Drepper <drepper@redhat.com>
1598
1599 * elflint.c (check_versym): Versioned symbols should not have
1600 local binding.
1601
Ulrich Drepper5d832292005-08-15 21:36:27 +000016022005-08-15 Ulrich Drepper <drepper@redhat.com>
1603
Ulrich Drepper61655e02005-08-16 04:23:02 +00001604 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
1605 undefined.
1606
Ulrich Drepper5d832292005-08-15 21:36:27 +00001607 * Makefile.am: Add rules to build ranlib.
1608 * ranlib.c: New file.
1609
Roland McGrath18e13422005-08-15 08:01:25 +000016102005-08-14 Roland McGrath <roland@redhat.com>
1611
1612 * elflint.c (check_sections): Use ebl_section_type_name and allow any
1613 sh_type it recognizes.
1614
1615 * elflint.c (check_sections): Print unknown flags in hex, don't
1616 truncate high bits. Print section number and name for unknown type.
1617
Roland McGrathf6895042005-08-13 20:56:52 +000016182005-08-13 Roland McGrath <roland@redhat.com>
1619
1620 * elflint.c (check_program_header): Use ebl_segment_type_name and
1621 allow any p_type it recognizes. Include p_type value in error
1622 message for unknown type.
1623
Ulrich Drepperc5c33a62005-08-13 17:50:47 +000016242005-08-13 Ulrich Drepper <drepper@redhat.com>
1625
1626 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
1627 to ebl_check_special_symbol.
1628 (check_sections): Pass ehdr to ebl_bss_plt_p.
1629
Roland McGrath653d3762005-08-13 01:59:10 +000016302005-08-12 Roland McGrath <roland@redhat.com>
1631
1632 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
1633 refers to the right section if it's not SHN_ABS.
1634 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
1635
1636 * elflint.c (check_sections): Don't complain about a non-NOBITS
1637 section taking no segment space, if it's sh_size is 0.
1638
1639 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
1640 be PROGBITS or NOBITS.
1641
1642 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
1643 standard st_value and st_size checks.
1644
Roland McGrath1c83bf12005-08-11 07:03:55 +000016452005-07-28 Roland McGrath <roland@redhat.com>
Ulrich Drepperfaf4d192005-08-11 05:12:05 +00001646
Roland McGrath1c83bf12005-08-11 07:03:55 +00001647 * addr2line.c (options, parse_opt): Don't handle -e here.
1648 (executable): Variable removed.
1649 (argp_children): New static variable.
1650 (argp): Use it. Make const.
1651 (main): Fill in argp_children from dwfl_standard_argp ().
1652 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
1653 (print_dwarf_function): New function. Try to figure out inline chain.
1654 (elf_getname): Function removed, libdwfl does it for us.
1655 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
1656 Use dwfl_module_addrname instead of elf_getname.
1657 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
1658 * Makefile.am (INCLUDES): Add libdwfl directory to path.
1659
16602005-08-10 Ulrich Drepper <drepper@redhat.com>
1661
1662 * strip.c (parse_opt): STATE parameter is now used.
1663 Various little cleanups.
1664
1665 * readelf.c (print_debug_line_section): Correct fallout of renaming
1666 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +00001667
Roland McGrath8f31c2c2005-08-09 04:58:05 +000016682005-08-08 Roland McGrath <roland@redhat.com>
1669
1670 * strip.c (options, parse_opt): Grok -R .comment for compatibility
1671 with binutils strip. Likewise -d, -S, as aliases for -g.
1672 Likewise ignore -s/--strip-all.
1673
Roland McGrath095a01b2005-08-08 03:49:35 +000016742005-08-07 Roland McGrath <roland@redhat.com>
1675
1676 * strip.c (process_file): Open read-only when using a different output
1677 file.
1678
Ulrich Drepper47be7952005-08-07 04:41:39 +000016792005-08-06 Ulrich Drepper <drepper@redhat.com>
1680
Ulrich Drepper637963b2005-08-07 05:33:07 +00001681 * elflint.c (in_nobits_scn): New function.
1682 (check_versym): Allow references for defined symbols against versions
1683 of other DSOs also for symbols in nobits sections.
1684 Move a few variables around.
1685
Ulrich Drepper47be7952005-08-07 04:41:39 +00001686 * Makefile.am (AM_CFLAGS): Avoid duplication.
1687 Link with statis libs if BUILD_STATIC.
1688
Ulrich Drepperdbace232005-08-06 01:37:23 +000016892005-08-05 Ulrich Drepper <drepper@redhat.com>
1690
1691 * elflint.c: Many, many more tests. Mostly related to symbol
1692 versioning. Those sections should now be completely checked.
1693
1694 * readelf.c (print_dynamic): Use gelf_offscn.
1695
Ulrich Drepperacb89832005-08-04 07:01:49 +000016962005-08-04 Ulrich Drepper <drepper@redhat.com>
1697
1698 * elflint.c: Add lots more tests: more extension symbol table sanity,
1699 versioning section tests, hash table tests. General cleanup.
1700
Ulrich Drepperc911c9e2005-08-02 16:07:42 +000017012005-08-02 Ulrich Drepper <drepper@redhat.com>
1702
Ulrich Drepper8a687742005-08-03 02:24:12 +00001703 * objdump.c: New file.
1704 * Makefile.am (bin_PROGRAMS): Add objdump.
1705 (objdump_LDADD): Define.
1706
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001707 * elflint.c (check_reloc_shdr): New function split out from check_rela
1708 and check_rel.
1709 (check_one_reloc): New function. Likewise.
1710 (check_rela): Use check_reloc_shdr and check_one_reloc.
1711 (check_rel): Likewise.
Ulrich Drepper41de4882005-08-03 00:02:56 +00001712 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
1713 section.
1714 Add checks that relocations against read-only segments are flagged,
1715 that the text relocation flag is not set unnecessarily, and that
1716 relocations in one section are either against loaded or not-loaded
1717 segments.
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001718
Ulrich Drepper8533dcf2005-08-01 07:18:47 +000017192005-08-01 Ulrich Drepper <drepper@redhat.com>
1720
1721 * elfcmp.c (main): Ignore section count and section name string table
1722 section index.
1723
Roland McGrathf9ece8a2005-07-28 07:03:04 +000017242005-07-27 Roland McGrath <roland@redhat.com>
1725
1726 * elfcmp.c: Include <locale.h>.
1727
Ulrich Drepper7d48d6a2005-07-27 10:13:23 +000017282005-07-27 Ulrich Drepper <drepper@redhat.com>
1729
1730 * elfcmp.c: Print name and index of differing section.
1731
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000017322005-07-24 Ulrich Drepper <drepper@redhat.com>
1733
1734 * elfcmp.c: Implement comparing gaps between sections.
1735
17362005-07-23 Ulrich Drepper <drepper@redhat.com>
1737
1738 * elflint.c: Include libeblP.h instead of libebl.h.
1739 * nm.c: Likewise.
1740 * readelf.c: Likewise.
1741 * elfcmp.c: Likewise.
1742
1743 * elfcmp.c (main): Compare individual ELF header fields, excluding
1744 e_shoff instead of the whole struct at once.
1745 Use ebl_section_strip_p instead of SECTION_STRIP_P.
1746 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
1747
17482005-07-22 Ulrich Drepper <drepper@redhat.com>
1749
1750 * elfcmp.c (main): Take empty section into account when comparing
1751 section content.
1752
1753 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
1754 using it.
1755
17562005-07-21 Ulrich Drepper <drepper@redhat.com>
1757
1758 * elfcmp.c: New file.
1759 * Makefile.am (bin_PROGRAMS): Add elfcmp.
1760 (elfcmp_LDADD): Define.
1761
1762 * elflint.c (check_rela): Check that copy relocations only reference
1763 object symbols or symbols with unknown type.
1764 (check_rel): Likewise.
1765
17662005-06-08 Roland McGrath <roland@redhat.com>
1767
1768 * readelf.c (print_ops): Add consts.
1769
17702005-05-31 Roland McGrath <roland@redhat.com>
1771
1772 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
1773 abbreviations. Print a header line before each CU section.
1774
1775 * readelf.c (print_debug_loc_section): Fix indentation for larger
1776 address size.
1777
17782005-05-30 Roland McGrath <roland@redhat.com>
1779
1780 * readelf.c (print_debug_line_section): Print section offset of each
1781 CU's table, so they are easy to find from seeing the stmt_list value.
1782
1783 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
1784 (attr_callback): Grok DW_AT_ranges and print offset in hex.
1785
1786 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
1787 (print_debug_ranges_section, print_debug_loc_section): Likewise.
1788
1789 * readelf.c (print_ops): Take different args for indentation control.
1790 (attr_callback): Caller updated.
1791 Grok several more block-form attributes as being location expressions.
1792 For those same attributes with udata forms, format output differently
1793 for location list offset.
1794 (print_debug_loc_section): Implement it for real.
1795
1796 * readelf.c (options): Mention ranges for --debug-dump.
1797 (enum section_e): Add section_ranges.
1798 (parse_opt): Grok "ranges" for -w/--debug-dump.
1799 (print_debug_ranges_section): New function.
1800 (print_debug): Handle .debug_ranges section.
1801
18022005-05-30 Ulrich Drepper <drepper@redhat.com>
1803
1804 * readelf.c (handle_notes): At least x86-64 need not have the note
1805 section values aligned to 8 bytes.
1806
18072005-05-18 Ulrich Drepper <drepper@redhat.com>
1808
1809 * readelf.c (dwarf_tag_string): Add new tags.
1810
18112005-05-08 Roland McGrath <roland@redhat.com>
1812
1813 * strip.c (handle_elf): Don't translate hash and versym data formats,
1814 elf_getdata already did it for us.
1815
18162005-05-07 Ulrich Drepper <drepper@redhat.com>
1817
1818 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
1819 (addr2line_LDADD): Likewise.
1820
18212005-05-03 Roland McGrath <roland@redhat.com>
1822
1823 * strip.c (handle_elf): Apply symbol table fixups to discarded
1824 relocation sections when they are being saved in the debug file.
1825
1826 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
1827 and gelf_xlatetof, not the native byte order.
1828
1829 * strip.c (parse_opt): Give error if -f or -o is repeated.
1830 (main): Exit if argp_parse returns nonzero.
1831
1832 * strip.c (debug_fname_embed): New variable.
1833 (options, parse_opt): New option -F to set it.
1834
18352005-05-07 Ulrich Drepper <drepper@redhat.com>
1836
1837 * readelf.c (parse_opt): Make any_control_option variable
1838 local. Simplify some tests.
1839
18402005-05-03 Roland McGrath <roland@redhat.com>
1841
1842 * strip.c (crc32_file): Function removed (now in ../lib).
1843
18442005-05-03 Roland McGrath <roland@redhat.com>
1845
1846 * elflint.c (is_debuginfo): New variable.
1847 (options, parse_opt): New option --debuginfo/-d to set it.
1848 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
1849 (check_note): If is_debuginfo, don't try to get note contents.
1850
18512005-04-24 Ulrich Drepper <drepper@redhat.com>
1852
1853 * readelf.c (print_debug_abbrev_section): Don't print error when end of
1854 section reached.
1855
18562005-04-14 Ulrich Drepper <drepper@redhat.com>
1857
1858 * readelf.c (dwarf_encoding_string): New function.
1859 (dwarf_inline_string): New function.
1860 (dwarf_access_string): New function.
1861 (dwarf_visibility_string): New function.
1862 (dwarf_virtuality_string): New function.
1863 (dwarf_identifier_case_string): New function.
1864 (dwarf_calling_convention_string): New function.
1865 (dwarf_ordering_string): New function.
1866 (dwarf_discr_list_string): New function.
1867 (attr_callback): Decode man more attribute values.
1868
18692005-04-01 Ulrich Drepper <drepper@redhat.com>
1870
1871 * addr2line.c: Finish implementation of -f option.
1872
18732005-03-29 Ulrich Drepper <drepper@redhat.com>
1874
1875 * addr2line.c: New file.
1876 * Makefile.am (bin_PROGRAMS): Add addr2line.
1877 Define addr2line_LDADD.
1878
1879 * findtextrel.c: Use new dwarf_addrdie function.
1880
1881 * findtextrel.c: Fix usage message and re-add accidentally removed
1882 line.
1883
18842005-03-28 Ulrich Drepper <drepper@redhat.com>
1885
1886 * findtextrel.c: New file.
1887 * Makefile: Add rules to build findtextrel.
1888
18892005-02-15 Ulrich Drepper <drepper@redhat.com>
1890
1891 * ldlex.l: Provide ECHO definition to avoid warning.
1892
1893 * elflint.c (check_program_header): Fix typo in RELRO test.
1894
1895 * Makefile.am (AM_CFLAGS): Add more warning options.
1896 * elflint.c: Fix warnings introduced by the new warning options.
1897 * i386_ld.c: Likewise.
1898 * ld.c: Likewise.
1899 * ld.h: Likewise.
1900 * ldgeneric.c: Likewise.
1901 * nm.c: Likewise.
1902 * readelf.c: Likewise.
1903 * sectionhash.c: Likewise.
1904 * size.c: Likewise.
1905 * string.c: Likewise.
1906
19072005-02-05 Ulrich Drepper <drepper@redhat.com>
1908
1909 * Makefile.am: Check for text relocations in constructed DSOs.
1910
1911 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
1912 with -lmudflap.
1913
1914 * ldscript.y: Add as_needed handling.
1915 * ldlex.l: Recognize AS_NEEDED token.
1916 * ld.h (struct filename_list): Add as_needed flag.
1917
19182005-02-04 Ulrich Drepper <drepper@redhat.com>
1919
1920 * elflint.c (check_symtab): Correctly determine size of GOT section.
1921
19222005-01-19 Ulrich Drepper <drepper@redhat.com>
1923
1924 * ld.c: Remove unnecessary more_help function. Print bug report
1925 address using argp.
1926 * strip.c: Likewise.
1927 * size.c: Likewise.
1928 * nm.c: Likewise.
1929 * readelf.c: Likewise.
1930 * elflint.c: Likewise.
1931
1932 * elflint.c (main): Don't check for parameter problems here.
1933 (parse_opt): Do it here, where we get informed about some of them
1934 anyway.
1935
1936 * readelf.c (main): Don't check for parameter problems here.
1937 (parse_opt): Do it here, where we get informed about some of them
1938 anyway.
1939
19402005-01-11 Ulrich Drepper <drepper@redhat.com>
1941
1942 * strip.c: Update copyright year.
1943 * readelf.c: Likewise.
1944 * size.c: Likewise.
1945 * nm.c: Likewise.
1946 * ld.c: Likewise.
1947 * elflint.c: Likewise.
1948
1949 * elflint.c (check_symtab): Don't warn about wrong size for
1950 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
1951
19522004-10-05 Ulrich Drepper <drepper@redhat.com>
1953
1954 * readelf.c (print_phdr): In section mapping, also indicate
1955 sections in read-only segments.
1956
19572004-09-25 Ulrich Drepper <drepper@redhat.com>
1958
1959 * readelf.c: Make compile with gcc 4.0.
1960 * strip.c: Likewise.
1961
19622004-08-16 Ulrich Drepper <drepper@redhat.com>
1963
1964 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
1965 allocate to work around gcc 3.4 bug.
1966
19672004-01-25 Ulrich Drepper <drepper@redhat.com>
1968
1969 * ldlex.l (invalid_char): Better error message.
1970
19712004-01-23 Ulrich Drepper <drepper@redhat.com>
1972
1973 * readelf.c: Print SHT_GNU_LIBLIST sections.
1974
1975 * none_ld.c: New file.
1976
19772004-01-21 Ulrich Drepper <drepper@redhat.com>
1978
1979 * Makefile.am: Enable building of machine specific linker.
1980
19812004-01-20 Ulrich Drepper <drepper@redhat.com>
1982
1983 * Makefile.am: Support building with mudflap.
1984
1985 * i386_ld.c: Fix warnings gcc 3.4 spits out.
1986 * ldgeneric.c: Likewise.
1987 * ldscript.y: Likewise.
1988 * readelf.c: Likewise.
1989 * strip.c: Likewise.
1990
1991 * readelf.c (print_debug_line_section): Determine address size
1992 correctly.
1993
19942004-01-19 Ulrich Drepper <drepper@redhat.com>
1995
1996 * readelf.c (print_phdr): Show which sections are covered by the
1997 PT_GNU_RELRO entry.
1998
1999 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
2000
2001 * readelf.c (print_debug_macinfo_section): Implement.
2002
20032004-01-18 Ulrich Drepper <drepper@redhat.com>
2004
2005 * readelf.c (print_debug_line_section): Implement.
2006
20072004-01-17 Ulrich Drepper <drepper@redhat.com>
2008
2009 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
2010 * src/ld.c: Likewise.
2011 * src/nm.c: Likewise.
2012 * src/readelf.c: Likewise.
2013 * src/size.c: Likewise.
2014 * src/strip.c: Likewise.
2015
2016 * strip.c: Add a few more unlikely. Reduce scope of some variables.
2017
2018 * Makefile.am: Support building with mudflap.
2019
20202004-01-16 Ulrich Drepper <drepper@redhat.com>
2021
2022 * readelf.c (print_debug_info_section): Free dies memory.
2023
2024 * readelf.c: Print .debug_info section content.
2025
20262004-01-13 Ulrich Drepper <drepper@redhat.com>
2027
2028 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
2029
20302004-01-12 Ulrich Drepper <drepper@redhat.com>
2031
2032 * readelf.c (print_debug_aranges): Implement using libdw.
2033
20342004-01-11 Ulrich Drepper <drepper@redhat.com>
2035
2036 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
2037
2038 * readelf.c: Use libdw instead of libdwarf. Not all of the old
2039 behavior is available yet.
2040 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
2041
20422004-01-09 Ulrich Drepper <drepper@redhat.com>
2043
2044 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
2045
2046 * nm.c: Implement getting information about local variables.
2047
20482004-01-07 Ulrich Drepper <drepper@redhat.com>
2049
2050 * nm.c: Read also debug information for local symbols.
2051
20522004-01-05 Ulrich Drepper <drepper@redhat.com>
2053
2054 * nm.c: Shuffle dwarf handling code around so the maximum column
2055 width can be computed ahead of printing. Avoid collection symbols
2056 which are not printed anyway.
2057
2058 * nm.c: Rewrite dwarf handling to use libdw.
2059 * Makefile.am (AM_CFLAGS): Add -std parameter.
2060 (INCLUDES): Find header in libdw subdir.
2061 (nm_LDADD): Replace libdwarf with libdw.
2062
2063 * elflint.c: Update copyright year.
2064 * readelf.c: Likewise.
2065 * size.c: Likewise.
2066 * strip.c: Likewise.
2067 * nm.c: Likewise.
2068
20692003-12-31 Ulrich Drepper <drepper@redhat.com>
2070
2071 * strip.c (process_file): Close file before returning.
2072
20732003-11-19 Ulrich Drepper <drepper@redhat.com>
2074
2075 * readelf.c (handle_dynamic): Make column for tag name wider.
2076
20772003-09-29 Ulrich Drepper <drepper@redhat.com>
2078
2079 * readelf.c (handle_dynamic): Always terminate tag name with a space.
2080
20812003-09-25 Ulrich Drepper <drepper@redhat.com>
2082
2083 * strip.c (process_file): Don't mmap the input file, we modify the
2084 data structures and don't want the change end up on disk.
2085
20862003-09-23 Jakub Jelinek <jakub@redhat.com>
2087
2088 * unaligned.h (union u_2ubyte_unaligned,
2089 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
2090 packed attribute.
2091 (add_2ubyte_unaligned, add_4ubyte_unaligned,
2092 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
2093 Read/store value through _ptr->u instead of *_ptr.
2094
20952003-09-22 Ulrich Drepper <drepper@redhat.com>
2096
2097 * size.c (show_sysv): Change type of maxlen to int.
2098
2099 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
2100 buckets.
2101
2102 * i386_ld.c: Many many fixes and extensions.
2103 * ld.c: Likewise.
2104 * ldgeneric.c: Likewise.
2105
21062003-08-16 Ulrich Drepper <drepper@redhat.com>
2107
2108 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
2109 the reference is from another DSO.
2110
21112003-08-15 Ulrich Drepper <drepper@redhat.com>
2112
2113 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
2114 point is found when creating a DSO.
2115
21162003-08-14 Ulrich Drepper <drepper@redhat.com>
2117
2118 * ld.c (main): Always call FLAG_UNRESOLVED.
2119 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
2120 undefined symbols if not creating DSO or ld_state.nodefs is not set.
2121
21222003-08-13 Ulrich Drepper <drepper@redhat.com>
2123
2124 * Makefile.in: Depend on libebl.a, not libebl.so.
2125
2126 * ld.c (main): Mark stream for linker script as locked by caller.
2127 (read_version_script): Likewise.
2128 * ldlex.c: Define fread and fwrite to _unlocked variant.
2129
2130 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
2131 target_bswap_32.
2132 * unaligned.h: Define target_bswap_16, target_bswap_32, and
2133 target_bswap_64.
2134 (store_2ubyte_unaligned, store_4ubyte_unaligned,
2135 store_8ubyte_unaligned): Define using new macros.
2136
21372003-08-12 Ulrich Drepper <drepper@redhat.com>
2138
2139 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
2140 possibly unaligned memory. Support use of big endian machines.
2141
21422003-08-11 Ulrich Drepper <drepper@redhat.com>
2143
2144 * Moved to CVS archive.