blob: af1d92bd767cb404d09724e8ab830a456d58c3af [file] [log] [blame]
Mark Wielaard36aa5982012-05-09 11:27:44 +020012012-05-09 Roland McGrath <roland@hack.frob.com>
2
3 * elflint (check_sections): Allow zero sized sections at (filesz) end
4 of segment. And make check overflow-proofed.
5
Mark Wielaard716486d2012-04-24 11:56:42 +020062012-04-24 Mark Wielaard <mjw@redhat.com>
7
8 * readelf.c (print_ops): Add DW_OP_GNU_push_tls_address,
9 DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr.
10
Roland McGrath738c1832012-03-28 15:01:49 -0700112012-03-28 Roland McGrath <roland@hack.frob.com>
12
13 * elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections.
14
Mark Wielaard61651c12012-03-28 11:20:36 +0200152012-03-28 Mark Wielaard <mjw@redhat.com>
16
17 * readelf.c (print_debug_abbrev_section): Check there is Dwarf
18 section data.
19 (print_debug_str_section): Likewise.
20
Mark Wielaard30bb7142012-03-21 16:05:31 +0100212012-03-21 Mark Wielaard <mjw@redhat.com>
22
23 * readelf.c (print_gdb_index_section): Accept version 6.
24
Mark Wielaardcb643d62012-01-31 19:22:03 +0100252012-01-31 Mark Wielaard <mjw@redhat.com>
26
27 * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset.
28
Ulrich Drepperc6b3d0c2012-01-21 18:14:39 -0500292012-01-21 Ulrich Drepper <drepper@gmail.com>
30
Ulrich Drepper3a64a302012-01-21 18:19:24 -050031 * addr2line.c: Update copyright year.
32 * ar.c: Likewise.
33 * elfcmp.c: Likewise.
34 * elflint.c: Likewise.
35 * findtextrel.c: Likewise.
36 * ld.c: Likewise.
37 * nm.c: Likewise.
38 * objdump.c: Likewise.
39 * ranlib.c: Likewise.
40 * readelf.c: Likewise.
41 * size.c: Likewise.
42 * strings.c: Likewise.
43 * strip.c: Likewise.
44 * unstrip.c: Likewise.
45
Ulrich Drepperc6b3d0c2012-01-21 18:14:39 -050046 * nm.c (argp_children): Define.
47 (argp): Hook up argp_children.
48 (handle_ar): Optimize puts call.
49 (show_symbols_bsd): Use positional parameters to also print color
50 codes. Don't print STT_FILE symbols.
51 * objdump.c (options): Improve help text.
52 (argp_children): Define.
53 (argp): Hook up argp_children.
54 (disasm_info): Add elements for color codes.
55 (disasm_output): Print color codes as well.
56 (show_disasm): Set up disasm_info data for callback.
57
Roland McGrath85924782012-01-20 11:40:59 -0800582012-01-20 Roland McGrath <roland@hack.frob.com>
59
Roland McGrath3284b792012-01-20 12:51:46 -080060 * arlib-argp.c (arlib_deterministic_output): Initialize from
61 configured value.
62 (help_filter): New function.
63 (argp): Use it.
64
Roland McGrath9bffd362012-01-20 12:04:19 -080065 * ar.c (main): Handle oper_none as usage error.
66
Roland McGrath6e063d92012-01-20 11:43:36 -080067 * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D.
68
Roland McGrath85924782012-01-20 11:40:59 -080069 * ranlib.c (argp): Use arlib_argp_children.
70
71 * arlib.c (arlib_init): Obey arlib_deterministic_output.
72
73 * arlib-argp.c: New file.
74 * Makefile.am (libar_a_SOURCES): Add it.
75 * arlib.h (arlib_deterministic_output, arlib_argp_children):
76 Declare new variables.
77 * ar.c (deterministic_output): Variable removed.
78 (do_oper_insert): Use arlib_deterministic_output instead.
79 (options, parse_opt): Don't handle -D here. Add group numbers.
80 (argp): Use arlib_argp_children.
81
Roland McGratha065c4b2011-12-20 10:55:01 -0800822011-12-20 Roland McGrath <roland@hack.frob.com>
83
84 * readelf.c (print_debug): Initialize DUMMY_DBG.elf.
85 Reported by Karel Klic <kklic@redhat.com>.
86
Roland McGrath4fa988e2011-11-05 20:58:14 -0700872011-11-05 Roland McGrath <roland@hack.frob.com>
88
Roland McGrathe5ba2a12011-11-05 21:08:07 -070089 * ar.c (deterministic_output): New flag variable.
90 (options, parse_opt): Grok -D to set it.
91 (do_oper_insert): When set, use zero from mtime, uid, and gid.
92
Roland McGrath4fa988e2011-11-05 20:58:14 -070093 * ar.c (do_oper_insert): Fix check on elf_rawfile return value.
94
Marek Polacek8d1e2972011-10-04 05:11:42 -0400952011-10-04 Marek Polacek <mpolacek@redhat.com>
96
97 * readelf.c (register_info): Assume the right size of an array.
98
Ulrich Drepper2356ba02011-10-03 07:23:07 -0400992011-10-03 Ulrich Drepper <drepper@gmail.com>
100
101 * nm.c: Recognize option --mark-special. Still recognize --mark-weak
102 but don't show it in help anymore.
103 (mark_special): Renamed from mark_weak.
104 (parse_opt): Adjust.
105 (class_type_char): Take additional parameters for ELF file and ELF
106 header. Treat TLS symbols like objects.
107 In case of D symbols, show u for unique symbols, R for symbols in
108 read-only sections, B for symbols in BSS sections.
Ulrich Drepper21b5d4c2011-10-03 16:08:33 -0400109 (show_symbols_bsd): Take additional parameters for ELF file and ELF
Ulrich Drepper2356ba02011-10-03 07:23:07 -0400110 header. Adjust for class_type_char change. Show TLS symbols with
111 @ after them in case --mark-special is selected.
112 (show_symbols_posix): Likewise.
113 (show_symbols): Adjust calls to show_symbols_bsd and
114 show_symbols_posix.
Ulrich Drepper66f4c372011-10-03 15:53:12 -0400115 (show_symbols_sysv): Avoid printing adress and size for undefined
Ulrich Drepper21b5d4c2011-10-03 16:08:33 -0400116 symbols. Don't print initial special entry and section entries.
Ulrich Drepper2356ba02011-10-03 07:23:07 -0400117
Ulrich Drepperb4a16cf2011-10-02 08:33:19 -04001182011-10-02 Ulrich Drepper <drepper@gmail.com>
119
120 * Makefile.am (demanglelib): Define.
121 (nm_LDADD): Add demanglelib.
122 * nm.c (options): Add -C option.
123 (demangle): Define as global variable.
124 (parse_opt): Recognize -C.
125 (show_symbols_sysv): Handle demangling.
126 (show_symbols_bad): Likewise.
127 (show_symbols_posix): Likewise.
128 (show_symbols): Likewise.
129
Roland McGrathb0a0e0d2011-07-09 03:20:16 -07001302011-07-09 Roland McGrath <roland@hack.frob.com>
131
Roland McGrathbd754192011-07-09 05:33:37 -0700132 * readelf.c (options, parse_opt): Grok -W/--wide and ignore it.
133
134 * ar.c (parse_opt): Grok -u.
Roland McGrathb0a0e0d2011-07-09 03:20:16 -0700135
Mark Wielaard02a958b2011-05-30 17:23:57 +02001362011-05-30 Mark Wielaard <mjw@redhat.com>
137
138 * strip.c (relocate): Make offset check overflow-proof.
139
Mark Wielaard1662bc32011-05-16 11:33:11 +02001402011-05-23 Mark Wielaard <mjw@redhat.com>
141
Mark Wielaard63868c22011-05-24 16:09:31 +0200142 * strip.c (relocate): Take new arguments is_rela to indicate
Roland McGrathb0a0e0d2011-07-09 03:20:16 -0700143 whether the relocation is from a SHT_REL or SHT_RELA section.
Mark Wielaard63868c22011-05-24 16:09:31 +0200144 Relocate against any debug section symbol, not just STT_SECTION
145 symbols. For SHT_REL relocations, fetch addend from offset and
146 add it to symbol value if not zero.
147
1482011-05-23 Mark Wielaard <mjw@redhat.com>
149
Mark Wielaard1662bc32011-05-16 11:33:11 +0200150 * strip.c (OPT_RELOC_DEBUG): New option.
151 (argp_option): Add new --reloc-debug-sections option.
152 (main): Check new option.
153 (parse_opt): Likewise.
154 (handle_elf): Remove any relocations between debug sections
155 in ET_REL for the debug file when requested.
156
Mark Wielaard7a125b92011-05-17 12:20:01 +02001572011-05-18 Mark Wielaard <mjw@redhat.com>
158
159 * strip.c (handle_elf): Make sure all sections of a removed group
160 section are removed too. Don't discard SHT_GROUP sections, copy
161 section table before it gets modified. Section group signature
162 symbols don't have to be retained.
163
Jakub Jelinek03124242011-05-17 17:00:14 +02001642011-05-16 Jakub Jelinek <jakub@redhat.com>
165
166 * readelf.c (print_ops): Handle DW_OP_GNU_const_type,
167 DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert
168 and DW_OP_GNU_reinterpret.
169
Mark Wielaard69a9b112011-05-17 15:34:02 +02001702011-05-17 Mark Wielaard <mjw@redhat.com>
171
172 * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and
173 DW_TAG_GNU_call_site_parameter return strings.
174
Marek Polacekc8920de2011-05-12 12:08:21 +02001752011-05-11 Marek Polacek <mpolacek@redhat.com>
176
177 * nm.c (show_symbols_sysv): Remove unused if/else, remove
178 unused `prefix' and `fname' parameters.
179
Marek Polacek82f77d72011-05-07 19:26:20 +02001802011-05-07 Marek Polacek <mpolacek@redhat.com>
181
182 * unstrip.c (compare_sections_nonrel): Mark this function as static.
183
Mark Wielaardbb9d1b42011-04-24 17:53:38 +02001842011-04-26 Mark Wielaard <mjw@redhat.com>
185
186 * readelf.c (handle_notes_data): Call ebl_object_note_type_name
187 with note name.
188
Mark Wielaard093a1d32011-04-14 23:47:26 +02001892011-04-14 Mark Wielaard <mjw@redhat.com>
190
191 * readelf.c (options): Add gdb_index.
192 (section_e): Define section_gdb_index.
193 (parse_opt): Recognize gdb_index debug-dump argument.
194 (print_gdb_index_section): New function.
195 (print_debug): Add gdb_index to debug_sections.
196
Petr Machata1879e5b2011-03-25 15:17:04 +01001972011-03-24 Petr Machata <pmachata@redhat.com>
198
199 * readelf.c (print_debug_line_section): Emit initial space for all
200 opcode lines. Print offset in front of each opcode.
201
Marek Polacek44de92a2011-03-22 01:07:20 +01002022011-03-22 Marek Polacek <mpolacek@redhat.com>
203
204 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case.
205
Mark Wielaarde3368c52011-03-22 23:03:31 +01002062011-03-22 Mark Wielaard <mjw@redhat.com>
207
208 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site
209 and DW_TAG_GNU_call_site_parameter.
210 (dwarf_attr_string): Support DW_AT_GNU_call_site_value,
211 DW_AT_GNU_call_site_data_value,
212 DW_AT_GNU_call_site_target,
213 DW_AT_GNU_call_site_target_clobbered,
214 DW_AT_GNU_tail_call,
215 DW_AT_GNU_all_tail_call_sites,
216 DW_AT_GNU_all_call_sites,
217 and DW_AT_GNU_all_source_call_sites.
218 (print_ops): Handle DW_OP_GNU_entry_value.
219 (attr_callback): Handle DW_AT_GNU_call_site_value,
220 DW_AT_GNU_call_site_data_value,
221 DW_AT_GNU_call_site_target,
222 and DW_AT_GNU_call_site_target_clobbered.
223
Mark Wielaarda062b6b2011-03-10 13:02:32 +01002242011-03-10 Mark Wielaard <mjw@redhat.com>
225
226 * elflint.c (check_symtab): Use ebl_check_st_other_bits.
227
Jan Kratochvilfec39992011-02-27 12:01:25 -08002282011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
229
230 * readelf.c (reset_listptr): Clear TABLE->TABLE.
231
Mark Wielaardcf454ab2011-02-25 12:58:54 +01002322011-02-25 Mark Wielaard <mjw@redhat.com>
233
234 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
235 (dwarf_form_string): Properly format and return unknown form.
236
Roland McGrath47c53232011-02-23 09:23:08 -08002372011-02-23 Roland McGrath <roland@redhat.com>
238
Roland McGrath725aad52011-02-23 19:52:46 -0800239 * readelf.c (section_name): New function.
240 (print_debug_abbrev_section): Use it instead of constant.
241 (print_debug_aranges_section): Likewise.
242 (print_debug_ranges_section): Likewise.
243 (print_debug_units): Likewise.
244 (print_debug_line_section): Likewise.
245 (print_debug_loc_section): Likewise.
246 (print_debug_macinfo_section): Likewise.
247 (print_debug_pubnames_section): Likewise.
248 (print_debug_str_section): Likewise.
249 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too.
250 (print_debug_abbrev_section): Use decoded d_size, not sh_size.
251 (print_debug_str_section): Likewise.
252
Roland McGrath47c53232011-02-23 09:23:08 -0800253 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature.
254
Roland McGrath1fb9c912011-02-11 10:32:30 -08002552011-02-11 Roland McGrath <roland@redhat.com>
256
Roland McGrath4a14ef72011-02-11 10:42:45 -0800257 * elfcmp.c (verbose): New variable.
258 (options, parse_opt): Grok -l/--verbose to set it.
259 (main): Under -l, keep going after first difference.
260
Roland McGrath1fb9c912011-02-11 10:32:30 -0800261 * elfcmp.c (ignore_build_id): New variable.
262 (options, parse_opt): Grok --ignore-build-id to set it.
263 (main): For SHT_NOTE sections, compare note details rather than raw
264 bytes. Under --ignore-build-id, don't complain about differing build
265 ID contents if lengths match.
266
Roland McGrathfd992542011-02-08 19:45:12 -08002672011-02-08 Roland McGrath <roland@redhat.com>
268
Roland McGrath240784b2011-02-08 19:48:42 -0800269 * ldscript.y (filename_id_star): Remove unused variable.
270
Roland McGrath8f6c1792011-02-08 19:48:02 -0800271 * unstrip.c (copy_elided_sections): Remove unused variable.
272
Roland McGrath4db89f02011-02-08 19:46:50 -0800273 * elflint.c (check_dynamic): Remove unused variables.
274
Roland McGrath33231312011-02-08 19:45:26 -0800275 * elflint.c (check_symtab): Warn about missing xndx section only once.
276
Roland McGrathfd992542011-02-08 19:45:12 -0800277 * ldgeneric.c (check_for_duplicate2): Remove unused variable.
278
Roland McGrathf151b7d2011-01-06 12:14:43 -08002792011-01-06 Roland McGrath <roland@redhat.com>
280
281 * strip.c (handle_elf): Under --strip-sections, remove all
282 non-allocated sections and never generate .gnu_debuglink.
283
Roland McGrath0b9d1fb2011-01-04 19:29:24 -08002842011-01-04 Roland McGrath <roland@redhat.com>
285
286 * strip.c (remove_shdrs): New variable.
287 (options, parse_opt): Grok --strip-sections to set it.
288 (handle_elf): When that's set, truncate off .shstrtab and shdrs.
289
Roland McGrath77221de2010-11-10 19:47:31 -08002902010-11-10 Roland McGrath <roland@redhat.com>
291
292 * findtextrel.c (process_file): Don't assume order of sections.
293 Reported by Mike Hommey <mh@glandium.org>.
294
Roland McGrath932585d2010-05-08 04:01:14 -07002952010-07-26 Roland McGrath <roland@redhat.com>
296
297 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer.
298
Roland McGratha1599152010-08-30 04:04:37 -07002992010-08-30 Roland McGrath <roland@redhat.com>
300
Roland McGrathfa144952010-08-30 19:22:41 -0700301 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses.
302 * readelf.c (parse_opt): Add section_info to implicit_debug_sections
303 for ranges, loc.
304 (struct listptr, struct listptr_table): New types.
305 (compare_listptr, reset_listptr, sort_listptr): New functions.
306 (notice_listptr, skip_listptr_hole): New functions.
307 (struct attrcb_args): Add silent member.
308 (attr_callback): Call notice_listptr for loclistptr and rangelistptr.
309 Suppress output if silent, but still call notice_listptr.
310 (print_debug_units): Suppress output if section_info not requested.
311 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole.
312 (print_debug_ranges_section): Likewise.
313 (print_debug): Call reset_listptr on both tables.
314
315 * readelf.c (print_debug_ranges_section): Print empty list.
316 (print_debug_loc_section): Likewise.
317
Roland McGratha1599152010-08-30 04:04:37 -0700318 * readelf.c (print_debug_loc_section): Check for bogus length
319 before calling print_ops.
320 (print_ops): Check harder for bogus data that would read off end.
321
Roland McGrathf4763cf2010-08-11 13:04:12 -07003222010-08-11 Roland McGrath <roland@redhat.com>
323
324 * readelf.c (for_each_section_argument): Process all sections with
325 matching name, not just the first.
326
Roland McGrath52604ba2010-07-26 21:29:44 -07003272010-07-26 Roland McGrath <roland@redhat.com>
328
329 * readelf.c (print_ops): Take new argument for CU version.
330 Fix DW_OP_call_ref decoding to depend on it.
331 (print_debug_loc_section): Update caller.
332 (print_cfa_program): Take new argument, pass it down.
333 (print_debug_frame_section): Update caller.
334 (struct attrcb_args): New member version.
335 (print_debug_units): Initialize it.
336
Roland McGrath2f14a312010-07-02 11:16:25 -07003372010-07-02 Roland McGrath <roland@redhat.com>
338
339 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for
340 initial_location.
341
Roland McGrathb6458032010-06-30 11:57:19 -07003422010-06-30 Roland McGrath <roland@redhat.com>
343
344 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO.
345 Ignore st_size for a non-S_ISREG file descriptor.
346 (read_block): Move assert after no-mmap bail-out.
347 (read_block_no_mmap): Fix size calculations for moving buffer remnant.
348
Roland McGrathfa799902010-06-22 13:05:23 -07003492010-06-22 Roland McGrath <roland@redhat.com>
350
351 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa.
352
Roland McGrath0c5638c2010-06-21 23:00:35 -07003532010-06-21 Roland McGrath <roland@redhat.com>
354
355 * readelf.c (dwarf_tag_string): Handle new v4 tags.
Roland McGrath474cb482010-06-22 00:10:54 -0700356 (dwarf_attr_string): Add new attributes.
357 (dwarf_tag_string): Handle DW_TAG_GNU_*.
Roland McGrath0c5638c2010-06-21 23:00:35 -0700358
359 * readelf.c (print_ops): Use 64-bit types for LEB128 operands.
360 (print_cfa_program): Likewise.
361
Roland McGrathe5251a12010-06-20 16:59:39 -07003622010-06-20 Roland McGrath <roland@redhat.com>
363
Roland McGrath2b1f0952010-06-20 17:55:50 -0700364 * readelf.c (print_debug_units): New function, broken out of ...
365 (print_debug_info_section): ... here. Call it.
366 (print_debug_types_section): New function.
367 (enum section_e): Add section_types alias for section_info.
368 (print_debug): Add types to the sections table.
369
Roland McGrath599f7f52010-06-20 17:12:43 -0700370 * readelf.c (print_debug_frame_section): Handle version 4 format.
371
Roland McGrathe5251a12010-06-20 16:59:39 -0700372 * readelf.c (print_debug_line_section): Handle version 4 format.
373
Roland McGrathec86e5f2010-06-14 17:44:38 -07003742010-06-14 Roland McGrath <roland@redhat.com>
375
376 * unstrip.c (copy_elided_sections): Make sure all sections' data have
377 been read in before we write anything out.
378
Roland McGrath3b1b6512010-06-04 02:26:30 -07003792010-06-04 Roland McGrath <roland@redhat.com>
380
Roland McGrathaa32f922010-06-04 02:29:08 -0700381 * unstrip.c (update_shdr): New function.
382 (update_sh_size): Call it instead of gelf_update_shdr.
383 (adjust_relocs, add_new_section_symbols): Likewise.
384 (new_shstrtab, copy_elided_sections): Likewise.
385
Roland McGrath3b1b6512010-06-04 02:26:30 -0700386 * unstrip.c (copy_elided_sections): Bail if stripped file has more
387 sections than unstripped file, rather than getting confused later.
388
Roland McGrath7a5bed82010-06-01 13:44:00 -07003892010-06-01 Roland McGrath <roland@redhat.com>
390
Roland McGrath7fac1ce2010-06-01 15:56:58 -0700391 * readelf.c (dwarf_form_string): Handle DWARF 4 forms.
392 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
Roland McGrathc8a06732010-06-01 19:52:39 -0700393 DW_FORM_sec_offset, DW_FORM_ref_sig8.
Roland McGrath7fac1ce2010-06-01 15:56:58 -0700394
Roland McGrath7a5bed82010-06-01 13:44:00 -0700395 * readelf.c (print_debug): Don't bail if libdw setup fails.
396 Suppress complaint if we only want .eh_frame anyway.
397
Ulrich Drepper173ade82010-05-28 07:39:49 -07003982010-05-28 Ulrich Drepper <drepper@redhat.com>
399
400 * readelf.c (attr_callback): Also print form information.
401
Roland McGrath12e3d1f2010-05-19 18:03:31 -07004022010-05-19 Roland McGrath <roland@redhat.com>
403
404 * addr2line.c (find_symbol): Short-circuit on empty name.
405 (handle_address): Handle SYMBOL with no +OFFSET.
406
Roland McGrath688f7fc2010-05-08 03:22:59 -07004072010-05-08 Roland McGrath <roland@redhat.com>
408
409 * readelf.c (print_ops): Take new arg OFFSET_SIZE.
410 Use that for DW_OP_call_ref, not ADDRSIZE.
411 (print_cfa_program): Update caller.
412 (struct attrcb_args): Add offset_size field.
413 (attr_callback): Use it for print_ops call.
414 (print_debug_info_section): Initialize it.
Roland McGrath932585d2010-05-08 04:01:14 -0700415 (print_ops): Likewise.
Roland McGrath50aa8d12010-06-01 11:22:36 -0700416
Roland McGrath62b28b62010-04-14 11:54:06 -07004172010-04-14 Roland McGrath <roland@redhat.com>
418
419 * readelf.c (handle_core_item): Fix bitmask printing.
420
Roland McGrath3b495d82010-04-06 12:58:32 -07004212010-04-06 Roland McGrath <roland@redhat.com>
422
423 * ld.c (options): Fix some typos in messages.
424 * elflint.c (check_scn_group, check_group): Likewise.
425 * ldscript.y (add_id_list): Likewise.
426 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
427 before translated string containing a literal %.
428
Roland McGrath890081b2010-02-26 17:57:50 -08004292010-02-26 Roland McGrath <roland@redhat.com>
430
431 * readelf.c (process_file): Don't leak an fd in failure case.
432
Roland McGrathc2b26f12010-02-15 15:16:15 -08004332010-02-15 Roland McGrath <roland@redhat.com>
434
Roland McGrath22359e22010-02-15 15:57:03 -0800435 * Makefile.am: Use config/eu.am for common stuff.
436
Roland McGrathc2b26f12010-02-15 15:16:15 -0800437 * readelf.c (print_debug_frame_section): Add a cast to avoid sign
438 mismatch in comparison.
439
Roland McGrathf920fd52010-02-02 15:50:15 -08004402010-02-02 Roland McGrath <roland@redhat.com>
441
442 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
443 (read_encoded): Likewise.
444 (print_debug_frame_section): Check for bogus augmentation length.
445 For P augmentation, use read_encoded, print the encoding description,
446 and use hex for unsigned values.
447
Roland McGrathb337b1f2010-01-15 01:02:27 -08004482010-01-15 Roland McGrath <roland@redhat.com>
449
450 * ar.c: Include <sys/stat.h>.
451 * elflint.c: Likewise.
452 * readelf.c: Likewise.
453 * strip.c: Likewise.
454 * unstrip.c: Likewise
455
Roland McGrathbd733ca2010-01-07 20:11:42 -08004562010-01-07 Roland McGrath <roland@redhat.com>
457
Roland McGrath8111da02010-01-07 20:31:59 -0800458 * readelf.c (print_ehdr): Handle PN_XNUM.
459 (phnum): New static variable.
460 (process_elf_file): Set it with elf_getphdrnum.
461 (print_phdr): Use phnum instead of EHDR->e_phnum.
462 (print_dynamic, handle_notes): Likewise.
463 (handle_relocs_rel, handle_relocs_rela): Likewise.
464
Roland McGrathbd733ca2010-01-07 20:11:42 -0800465 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
466
467 * elflint.c (phnum): New static variable.
468 (check_elf_header): Set it, handling PN_XNUM.
469 Use that in place of EHDR->e_phnum throughout.
470 (check_symtab, check_reloc_shdr, check_dynamic): Likewise.
471 (unknown_dependency_p, check_sections, check_program_header): Likewise.
472
Roland McGrath019d9fb2010-01-05 13:36:07 -08004732010-01-05 Roland McGrath <roland@redhat.com>
474
475 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
476 DW_AT_GNU_template_name.
477
Roland McGrathe4061d02010-01-04 20:25:09 -08004782010-01-04 Roland McGrath <roland@redhat.com>
479
Roland McGrath0ccbbcd2010-01-04 21:59:07 -0800480 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
481 (handle_core_note): Pass NHDR and NAME to ebl_core_note.
482 (handle_core_item): Handle .format of '\n' as \n-separated strings.
483
Roland McGrath2e79deb2010-01-04 20:36:10 -0800484 * readelf.c (implicit_debug_sections): New variable.
485 (parse_opt): Set it instead of print_debug_sections for -a.
486 OR them together for print_debug check.
487 (print_debug): OR them together for section check.
488
Roland McGratha7422be2010-01-04 20:29:33 -0800489 * readelf.c (options): Repartition into set implied by -a and others.
490 Correct -a text to match reality.
491
Roland McGrathe4061d02010-01-04 20:25:09 -0800492 * readelf.c (struct section_argument): Add bool member 'implicit'.
493 (parse_opt): Set it for -a cases, clear it for -x args.
494 (for_each_section_argument): Don't complain about a missing section by
495 name if it's implicit.
496
Roland McGrathefa64962009-11-16 01:50:58 -08004972009-11-16 Roland McGrath <roland@redhat.com>
498
499 * readelf.c (print_string_section): Punt SHT_NOBITS like empty
500 sections, just as dump_data_section already does.
501
Mark Wielaardc49d00a2009-09-21 16:47:07 -07005022009-09-21 Ulrich Drepper <drepper@redhat.com>
503
504 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be
505 set for .comment section.
506 Patch by Mark Wielaard <mjw@redhat.com>.
507
Roland McGrathfb33c672009-09-08 00:21:18 -07005082009-09-08 Roland McGrath <roland@redhat.com>
509
510 * ar.c (main): Fix typo in message format.
511
Roland McGrath2d13ea22009-08-21 03:16:32 -07005122009-08-21 Roland McGrath <roland@redhat.com>
513
514 * readelf.c (attr_callback): Use print_block only when we don't use
515 print_ops.
516
Roland McGrath536127f2009-08-14 13:10:09 -07005172009-08-14 Roland McGrath <roland@redhat.com>
518
519 * ar.c (do_oper_extract): Use pathconf instead of statfs.
520
Ulrich Drepper9ccf76a2009-08-01 10:07:24 -07005212009-08-01 Ulrich Drepper <drepper@redhat.com>
522
523 * debugpred.h: Add two most const.
524
Mark Wielaardbc1b92e2009-07-26 08:33:18 -07005252009-07-26 Mark Wielaard <mjw@redhat.com>
526
527 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
528
Mark Wielaard79178202009-07-25 12:44:46 -07005292009-07-25 Mark Wielaard <mjw@redhat.com>
530
531 * Makefile.am (addr2line_LDADD): Add $(libelf).
532
Roland McGrathbe4589d2009-07-24 16:23:12 -07005332009-07-24 Roland McGrath <roland@redhat.com>
534
535 * readelf.c (print_block): New function.
536 (print_ops): Use it.
537 (attr_callback): Use it for DW_FORM_block* forms.
538
Mark Wielaarddaf85b22009-07-24 15:49:51 -07005392009-07-20 Mark Wielaard <mjw@redhat.com>
540
541 * readelf.c (print_ops): Add handling of DW_OP_implicit_value
542 and DW_OP_stack_value.
543
Ulrich Drepper96d950e2009-07-14 10:42:01 -07005442009-07-14 Ulrich Drepper <drepper@redhat.com>
545
546 * elflint.c (check_elf_header): Allow Linux ABI.
547 (check_symtab): Handle STB_GNU_UNIQUE.
548
Mark Wielaardf735db12009-07-08 19:18:53 +02005492009-07-08 Mark Wielaard <mjw@redhat.com>
550
551 * readelf.c (attr_callback): Handle DW_Form constants for
552 DW_AT_data_member_location.
553
Roland McGrathdffc33d2009-07-06 16:06:41 -07005542009-07-06 Roland McGrath <roland@redhat.com>
555
556 * readelf.c (register_info): New function. Handle unknown register #s.
557 (print_cfa_program): Use it.
558 (handle_core_register, handle_core_registers): Likewise.
559
Roland McGrath5dbccdb2009-06-28 14:48:02 -07005602009-06-28 Roland McGrath <roland@redhat.com>
561
562 * readelf.c (print_address_names): New static variable.
563 (options, parse_opt): Grok -N/--numeric-addresses to clear it.
564 (format_dwarf_addr): Don't look up name if !print_address_names.
565
Ulrich Drepperf1894932009-06-13 15:55:42 -07005662009-06-13 Ulrich Drepper <drepper@redhat.com>
567
568 * ldgeneric.c: Don't use deprecated libelf functions.
569 * nm.c: Likewise.
570 * objdump.c: Likewise.
571 * readelf.c: Likewise.
572 * size.c: Likewise.
573 * strip.c: Likewise.
574 * unstrip.c: Likewise.
575 * ld.h: Fix up comment.
576
Ulrich Drepperb47d2902009-06-01 07:38:32 -07005772009-06-01 Ulrich Drepper <drepper@redhat.com>
578
579 * readelf.c (print_relocs): Expect ELF header argument and pass on
580 to handle_relocs_rel* functions. Adjust caller.
581 (handle_relocs_rel): Add ELF header argument. Add special case for
582 the IRELATIVE relocations in statically linked executables.
583 (handle_relocs_rela): Likewise.
584
Roland McGrathdb19f0b2009-05-07 18:44:27 -07005852009-04-29 Ulrich Drepper <drepper@redhat.com>
586
587 * elflint.c (check_symtab): Add tests of st_other field.
588
Ulrich Drepperaab90f92009-04-23 07:44:36 -07005892009-04-23 Ulrich Drepper <drepper@redhat.com>
590
591 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
592
Roland McGrathd86e1832009-04-20 00:49:33 -07005932009-04-20 Roland McGrath <roland@redhat.com>
594
Roland McGrath8a592412009-04-20 01:20:44 -0700595 * addr2line.c (print_dwarf_function): Honor -s and -A for file names
596 of inline call sites.
597
Roland McGrathd86e1832009-04-20 00:49:33 -0700598 * addr2line.c (just_section): New variable.
599 (adjust_to_section): New function, broken out of ...
600 (handle_address): ... here.
601 (options, parse_opt): Add -j/--section=NAME to set it.
602
Roland McGrath2fb90512009-04-15 14:47:13 -07006032009-04-15 Roland McGrath <roland@redhat.com>
604
605 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
606 64-bit format header, DW_CIE_ID_32 in 32-bit format header.
607
Roland McGrath04a14162009-04-14 01:02:17 -07006082009-04-14 Roland McGrath <roland@redhat.com>
609
Roland McGratheb9ba472009-04-14 18:44:45 -0700610 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
611 like SHT_GNU_ATTRIBUTES.
612
Roland McGrath94f43832009-04-14 04:39:32 -0700613 * readelf.c (handle_core_registers): Fix error message.
614
Roland McGrath04a14162009-04-14 01:02:17 -0700615 * strip.c (handle_elf: check_preserved): Don't note any change when
616 .debug_data is already filled from a previous pass.
617
Ulrich Drepper411cdb22009-02-05 22:04:26 -08006182009-02-05 Ulrich Drepper <drepper@redhat.com>
619
Ulrich Drepper51b3f472009-02-05 22:10:39 -0800620 * objdump.c (show_relocs_x): Minor cleanups.
621
Ulrich Drepper411cdb22009-02-05 22:04:26 -0800622 * readelf.c (print_cfa_program): Correct a few labels.
Ulrich Drepper973a9c72009-02-05 22:56:39 -0800623 Print first DW_CFA_expression and DW_CFA_val_expression parameter
624 as register.
Ulrich Drepper411cdb22009-02-05 22:04:26 -0800625
Ulrich Drepper5ee720c2009-02-01 16:18:18 -08006262009-02-01 Ulrich Drepper <drepper@redhat.com>
627
Ulrich Drepper95fa15e2009-02-01 19:06:10 -0800628 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
629 into ...
630 (show_relocs_x): ...here. New function.
Ulrich Drepperf44f0ce2009-02-01 21:31:26 -0800631 (show_relocs): Better spacing in output.
Ulrich Drepper95fa15e2009-02-01 19:06:10 -0800632
Ulrich Dreppercbb422e2009-02-01 18:18:55 -0800633 * objdump.c (show_relocs_rela): Show offsets as signed values.
634
Ulrich Drepper5ee720c2009-02-01 16:18:18 -0800635 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
636 Improve some error messages.
637 Use program_invocation_short_name instead of AR macro.
638 * Makefile.am (CFLAGS_ar): Remove.
639 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
640 * objdump.c (parse_opt): Likewise.
641 * readelf.c (parse_opt): Likewise.
642
Roland McGrath51f01282009-01-27 17:08:03 -08006432009-01-27 Roland McGrath <roland@redhat.com>
644
645 * readelf.c (print_ops): Notice short length, don't overrun buffer
646 (still need to fix LEB128).
647
648 * readelf.c (print_ops): Fix DW_OP_call[24] decoding.
649
650 * readelf.c (print_ops): Print (empty)\n when LEN == 0.
651
Ulrich Drepper62c46532009-01-24 17:01:08 -08006522009-01-24 Ulrich Drepper <drepper@redhat.com>
653
654 * readelf.c (print_debug_frame_section): Fix computation of vma_base
655 for PC-relative mode.
656
Ulrich Drepperd7285e12009-01-23 16:10:44 -08006572009-01-23 Ulrich Drepper <drepper@redhat.com>
658
Ulrich Drepperccccab02009-01-23 16:32:21 -0800659 * size.c (process_file): When handling archive, close file descriptor
660 here. For unknown file format also close file descriptor.
661 (handle_ar): Don't close file descriptor here.
662
Ulrich Drepperd7285e12009-01-23 16:10:44 -0800663 * readelf.c (parse_opt): Move code to add to dump_data_sections and
664 string_sections list in local function add_dump_section. Adjust 'x'
665 key handling. For 'a' key add .strtab, .dynstr, and .comment section
666 to string_sections list.
667
Roland McGrathe9de9b42009-01-22 13:05:40 -08006682009-01-22 Roland McGrath <roland@redhat.com>
669
Roland McGrath9a847e12009-01-22 19:55:00 -0800670 * readelf.c (print_phdr): Don't print section mapping when no sections.
671
Roland McGrathd759aa62009-01-22 19:17:07 -0800672 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
673
Roland McGrathcabeeee2009-01-22 13:17:45 -0800674 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
675 and reset it only for the 'true' cases.
676
677 * Makefile.am (addr2line_no_Wformat): New variable.
678
Roland McGrathe9de9b42009-01-22 13:05:40 -0800679 * readelf.c (print_debug_frame_section): Use t instead of j formats
680 for ptrdiff_t OFFSET.
681
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -08006822009-01-21 Ulrich Drepper <drepper@redhat.com>
683
684 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
Ulrich Drepperf93ee8d2009-01-21 15:02:03 -0800685 test. Handle debuginfo files.
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -0800686 (check_exception_data): First sanity test.
687
Ulrich Drepperfdc93e12009-01-17 11:47:10 -08006882009-01-17 Ulrich Drepper <drepper@redhat.com>
689
Ulrich Drepper935edde2009-01-17 16:06:42 -0800690 * readelf.c (print_debug_exception_table): Show target of ar_disp
691 field.
692
693 * elflint.c (check_program_header): Add most consistency checks for
694 PT_GNU_EH_FRAME entry.
695
Ulrich Drepperfdc93e12009-01-17 11:47:10 -0800696 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
697 ARGP_PROGRAM_BUG_ADDRESS_DEF.
698 * ar.c: Likewise.
699 * elfcmp.c: Likewise.
700 * elflint.c: Likewise.
701 * findtextrel.c: Likewise.
702 * ld.c: Likewise.
703 * nm.c: Likewise.
704 * objdump.c: Likewise.
705 * ranlib.c: Likewise.
706 * readelf.c: Likewise.
Ulrich Drepper935edde2009-01-17 16:06:42 -0800707
Ulrich Drepperfdc93e12009-01-17 11:47:10 -0800708 * size.c: Likewise.
709 * strings.c: Likewise.
710 * strip.c: Likewise.
711 * unstrip.c: Likewise.
712
Ulrich Drepperb006fbf2009-01-16 03:08:25 -08007132009-01-16 Ulrich Drepper <drepper@redhat.com>
714
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -0800715 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
716 matches .eh_frame_hdr section, if it is available. Also check that
717 the segment is allocated, not writable, not executable.
718
Ulrich Drepperb006fbf2009-01-16 03:08:25 -0800719 * readelf.c: Add -e option. Dump exception and unwind related
720 sections. Add -e to -a.
Ulrich Drepper05d2b202009-01-16 17:58:54 -0800721 (print_encoding_base): Handle DW_EH_PE_omit.
Ulrich Drepperb006fbf2009-01-16 03:08:25 -0800722 (print_debug_exception_table): Beginning of support.
723 (print_debug): Hook up print_debug_exception_table for
724 .gcc_except_table sections.
725
726 * readelf.c (print_debug_frame_section): Some fixes for last change.
727
Ulrich Drepper351bf202009-01-15 20:18:40 -08007282009-01-15 Ulrich Drepper <drepper@redhat.com>
729
730 * readelf.c (print_encoding): Now a toplevel function.
731 (print_relinfo): Likewise.
732 (print_encoding_base): Broken out of print_debug_frame_section.
733 (print_debug_frame_section): Print different header for .eh_frame
734 sections. Fix recognition of matching CIEs in .debug_frame sections.
735 Print absolute offset for PC-relative FDE locations. Don't print
736 table header for FDEs if the table is empty.
737 (read_encoded): New function.
738 (print_debug_frame_hdr_section): New function.
739 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
740 sections.
741
742 * readelf.c (handle_relocs_rel): Print section number.
743 (print_debug_abbrev_section): Likewise.
744 (print_debug_aranges_section): Likewise.
745 (print_debug_ranges_section): Likewise.
746 (print_debug_info_section): Likewise.
747 (print_debug_line_section): Likewise.
748 (print_debug_loc_section): Likewise.
749 (print_debug_macinfo_section): Likewise.
750 (print_debug_pubnames_section): Likewise.
751 (print_debug_str_section): Likewise.
752
Ulrich Drepper8b394632009-01-10 18:29:56 -08007532009-01-10 Ulrich Drepper <drepper@redhat.com>
754
755 * strings.c (read_block): Fix typo in error message string.
756
Ulrich Drepper87cf5832009-01-07 20:39:21 -08007572009-01-07 Ulrich Drepper <drepper@redhat.com>
758
759 * ld.c (ld_new_searchdir): Fix adding to search path list.
760
Ulrich Drepperac194d02009-01-06 00:30:01 -08007612009-01-06 Ulrich Drepper <drepper@redhat.com>
762
763 * readelf.c: Implement call frame debug section dumping.
Roland McGrathe9243e62009-01-21 18:54:20 -0800764
Roland McGrath3614d992009-01-05 18:05:32 -08007652009-01-05 Roland McGrath <roland@redhat.com>
766
767 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
768 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800769
Ulrich Drepper44173ed2009-01-01 19:00:41 -08007702009-01-01 Ulrich Drepper <drepper@redhat.com>
771
772 * addr2line.c: Update copyright year.
773 * ar.c: Likewise.
774 * elfcmp.c: Likewise.
775 * elflint.c: Likewise.
776 * findtextrel.c: Likewise.
777 * ld.c: Likewise.
778 * nm.c: Likewise.
779 * objdump.c: Likewise.
780 * ranlib.c: Likewise.
781 * readelf.c: Likewise.
782 * size.c: Likewise.
783 * strings.c: Likewise.
784 * strip.c: Likewise.
785 * unstrip.c: Likewise.
786
Roland McGrath468fe4d2008-12-11 21:00:12 -08007872008-12-11 Roland McGrath <roland@redhat.com>
788
789 * nm.c (sym_name): New function.
790 (show_symbols_sysv): Use it in place of elf_strptr.
791 (show_symbols_bsd, show_symbols_posix): Likewise.
792 Fixes RHBZ#476136.
793
794 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
795 elf_strptr fails.
796
Roland McGratha845f682008-12-03 03:41:58 +00007972008-12-02 Roland McGrath <roland@redhat.com>
798
799 * readelf.c (count_dwflmod, process_file): Don't presume encoding of
800 nonzero OFFSET argument to dwfl_getmodules.
801
Roland McGrath1d8bb252008-08-07 08:39:41 +00008022008-08-07 Roland McGrath <roland@redhat.com>
803
804 * addr2line.c (main): Pass string to handle_address.
805 (see_one_module): New function, subroutine of handle_address.
806 (find_symbol): Likewise.
807 (handle_address): Take string argument rather than address.
808 Convert plain number, or handle strings like "(section)+offset"
809 or "symbol+offset".
810
8112008-08-01 Roland McGrath <roland@redhat.com>
812
813 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
814 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
815
816 * readelf.c (convert): Take new argument SIZE.
817 (handle_core_register, handle_core_item): Update callers.
818 (handle_core_item): Take new arg REPEATED_SIZE.
819 (handle_core_items): Special case for a singleton item,
820 let handle_core_item handle repeats if it wants to.
821
822 * readelf.c (handle_core_items): Give abridged output
823 for identical groups repeated more than twice.
824
8252008-07-04 Roland McGrath <roland@redhat.com>
826
827 * readelf.c (handle_core_items): Handle ELF_T_ADDR.
828
Roland McGrath521c47d2008-04-11 07:01:58 +00008292008-04-10 Roland McGrath <roland@redhat.com>
830
831 * strip.c (handle_elf): Don't keep sections that kept symbol tables
832 refer to. Instead, just be sure to preserve the original symbol
833 table in the debug file so those symbols go with their sections and
834 can be elided from the stripped version of the symbol table.
835
836 * strip.c (handle_elf): When a discarded section kept in the debug
837 file refers to a nondiscard section via sh_link/sh_info, preserve
838 that nondiscarded section unmodified in the debug file as well.
839 Skip adjustment of discarded sections symbol table references when
840 that symbol table is copied in this way.
841
842 * elflint.c (check_symtab): Don't crash from missing symbol names
843 after diagnosing bogus strtab.
844
845 * strip.c (handle_elf): Cosmetic cleanup in special section contents
846 adjustment for symtab changes.
847
Roland McGrath13b69602008-04-01 02:30:05 +00008482008-03-31 Roland McGrath <roland@redhat.com>
849
850 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
851 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook
852 excuse a special section.
853
8542008-03-27 Roland McGrath <roland@redhat.com>
855
856 * elflint.c (check_sections): Check that executability and writability
857 of sections is reflected in segment p_flags.
858
Roland McGrathd11f9cb2008-03-26 20:51:59 +00008592008-03-26 Roland McGrath <roland@redhat.com>
860
861 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
862 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
863 is valid in RELRO.
864
Roland McGrath47c5c352008-02-29 10:17:16 +00008652008-02-29 Roland McGrath <roland@redhat.com>
866
867 * readelf.c (print_attributes): Add a cast.
868 * elflint.c (check_attributes): Likewise.
869
870 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
871 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
872 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
873
Ulrich Drepper834de6f2008-02-23 06:50:01 +00008742008-02-03 Ulrich Drepper <drepper@redhat.com>
875
876 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
877 when linked into executable.
878 (elf_i386_create_relocations): Likewise.
879
Roland McGrath059c83e2008-02-21 06:19:39 +00008802008-02-20 Roland McGrath <roland@redhat.com>
881
882 * readelf.c (print_attributes): New function.
883 (process_elf_file): Call it under -A.
884
885 * elflint.c (check_attributes): Implement it for real.
886
8872008-02-19 Roland McGrath <roland@redhat.com>
888
889 * elflint.c (special_sections): Handle .gnu.attributes section.
890 (check_sections): Likewise.
891 (check_attributes): New function.
892
8932008-02-10 Roland McGrath <roland@redhat.com>
894
895 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
896 sections and ET_REL files.
897
Ulrich Drepper712d78e2008-02-02 10:01:53 +00008982008-02-02 Ulrich Drepper <drepper@redhat.com>
899
900 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
901 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
902 and R_386_TLS_LE.
903 (elf_i386_create_relocations): Likewise.
904 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
905 elements.
906 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
907 (ld_generic_create_outfile): Add PT_TLS entry to program header.
908 Fix generation of PT_GNU_STACK entry.
909
Ulrich Drepperc54785a2008-02-01 18:05:21 +00009102008-02-01 Ulrich Drepper <drepper@redhat.com>
911
Ulrich Drepper7cd1bf72008-02-01 23:52:59 +0000912 * ld.c (replace_args): Prevent loop over replacements if the parameter
913 is only two characters long.
914
Ulrich Drepperc54785a2008-02-01 18:05:21 +0000915 * ld.c: Recognize sha1 argument for --build-id parameter.
916 * ldgeneric.c (create_build_id_section): Handle sha1.
917 (compute_hash_sum): New function. Broken out of compute_build_id.
918 Take hash function and context as parameters.
919 (compute_build_id): Use compute_hash_sum for md5 and the new sha1
920 implementation.
921
Ulrich Drepper89759c72008-01-31 19:44:12 +00009222008-01-31 Ulrich Drepper <drepper@redhat.com>
923
924 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
925 * ld.c: Recognize --build-id command line parameter.
926 * ld.h: Define scn_dot_note_gnu_build_id.
927 (struct ld_state): Add build_id and buildidscnidx elements.
928 * ldgeneric.c: Implement --build-id command line parameter.
929 * ldlex.l (ID): Recognize - as valid character after the first one.
930
Ulrich Drepper5530ec52008-01-29 10:42:07 +00009312008-01-29 Ulrich Drepper <drepper@redhat.com>
932
Ulrich Drepperb61c4cc2008-01-30 07:16:28 +0000933 * ld.c (replace_args): New function.
934 (main): Use it to rewrite old-style parameters.
935
Ulrich Dreppered9b6cb2008-01-30 06:33:33 +0000936 * elf32-i386.script: Add .gnu.hash section.
937 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
938 (fillin_special_symbol): Initialize st_size.
939 (sortfct_hashval): New function.
940 (create_gnu_hash): New function.
941 (create_hash): New function.
942 (ld_generic_create_outfile): Use the new functions to create the
943 hash tables.
944
Ulrich Drepper5530ec52008-01-29 10:42:07 +0000945 * elflint.c (check_gnu_hash): Fix index value printed in error message.
946
Ulrich Drepper0e864dd2008-01-25 00:18:42 +00009472008-01-24 Ulrich Drepper <drepper@redhat.com>
948
949 * elflint.c (check_group): Check that signature symbol for section
950 group is not an empty string.
951 * ldgeneric.c: Remove magic assignment of indeces in the dynsym
952 section. Start implementation of --hash-style.
953 * i386_ld.c: Likewise.
954 * ld.c: Recognize --hash-style.
955 * ld.h (struct scninfo): Add comdat_group.
956 Add additional parameter to finalize_plt callback.
957
Ulrich Drepper5449a6b2008-01-22 15:49:39 +00009582008-01-22 Ulrich Drepper <drepper@redhat.com>
959
960 * ld.h (struct callbacks): Add initialize_gotplt.
961 (struct scnhead): Add scn_dot_gotplt.
962 (struct ld_state): Add gotpltscnidx.
963 * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
964 (elf_i386_initialize_pltrel): Likewise.
965 (elf_i386_initialize_got): There is now a separate .got.plt, so
966 don't do the PLT-related work here. Initialize d_type.
967 (elf_i386_initialize_gotplt): New function.
968 (elf_i386_plt0): Use ud2a after indirect jump.
969 (elf_i386_pic_plt0_entry): Likewise.
970 (elf_i386_finalize_plt): Reference now .got.plt.
971 (elf_i386_count_relocations): For GOT entries which need no relocation
972 don't bump nrel_got.
973 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32
974 handling for split .got/.got.plt.
975 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
976 * elf32-i386.script: Sort sections for security. There are no .got
977 input sections. Add .got.plt.
978 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
979 (ld_generic_create_outfile): Initialize .got.plt section.
980 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
981
Ulrich Drepperd9488292008-01-20 16:43:15 +00009822008-01-19 Ulrich Drepper <drepper@redhat.com>
983
984 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
985 symbols are not carried over into statically linked output files.
986 Add dummy entries for more TLS relocations.
987
988 * ld.c (options): Add long names for -( and -).
989
990 * ldgeneric.c (check_definition): For newly found definitions don't
991 mark section as used if symbol is absolute.
992 (extract_from_archive): Only assign archive sequence number the first
993 time the archive is handled. Update ld_state.last_archive_used
994 if any symbol was used. Remove nround variable.
995 (file_process2): When using symbol from an archive, update
996 ld_state.group_start_archive, ld_state.archives, and
997 ld_state.tailarchives.
998 (ld_generic_file_process): If group is not handled anymore, after
999 freeing ELF handles for the archives, clear ld_state.archives and
1000 *nextp. Fix wrong logic in recognizing first iteration of group
1001 loop. When clearing flags, also clear ld_state.group_start_archive.
1002
Ulrich Drepper5eee1222008-01-11 10:12:18 +000010032008-01-11 Ulrich Drepper <drepper@redhat.com>
1004
1005 * objdump.c (show_disasm): Adjust disassembler format string for
1006 removal of %e.
1007
Ulrich Dreppere219f1c2008-01-09 05:49:49 +000010082008-01-04 Roland McGrath <roland@redhat.com>
1009
Roland McGrath059c83e2008-02-21 06:19:39 +00001010 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
1011 a size greater than the items cover means multiple sets of items.
1012 (handle_core_note): Update caller.
1013
10142008-01-04 Roland McGrath <roland@redhat.com>
1015
Ulrich Dreppere219f1c2008-01-09 05:49:49 +00001016 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
1017
10182008-01-03 Roland McGrath <roland@redhat.com>
1019
1020 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
1021
1022 * elflint.c (check_dynamic): Remove duplicate initializer.
1023
Ulrich Drepperad024af2008-01-02 17:42:52 +000010242008-01-02 Ulrich Drepper <drepper@redhat.com>
1025
1026 * addr2line.c: Update copyright year.
1027 * ar.c: Likewise.
1028 * elfcmp.c: Likewise.
1029 * elflint.c: Likewise.
1030 * findtextrel.c: Likewise.
1031 * ld.c: Likewise.
1032 * nm.c: Likewise.
1033 * objdump.c: Likewise.
1034 * ranlib.c: Likewise.
1035 * readelf.c: Likewise.
1036 * size.c: Likewise.
1037 * strings.c: Likewise.
1038 * strip.c: Likewise.
1039 * unstrip.c: Likewise.
1040
Ulrich Drepper3cbdd382008-01-02 17:44:39 +000010412007-12-30 Ulrich Drepper <drepper@redhat.com>
1042
1043 * objdump (show_disasm): Use %e after third parameter.
1044
10452007-12-21 Ulrich Drepper <drepper@redhat.com>
1046
1047 * strip.c: Fix wrong parenthesis in a few branch predictions.
1048 * strings.c: Likewise.
1049
10502007-12-20 Ulrich Drepper <drepper@redhat.com>
1051
1052 * Makefile.am (DEFS): Add DEBUGPRED.
1053 * addr2line.c: Include debugpred.h.
1054 * ar.c: Likewise.
1055 * elfcmp.c: Likewise.
1056 * elflint.c: Likewise.
1057 * findtextrel.c: Likewise.
1058 * nm.c: Likewise.
1059 * objdump.c: Likewise.
1060 * ranlib.c: Likewise.
1061 * readelf.c: Likewise.
1062 * size.c: Likewise.
1063 * strings.c: Likewise.
1064 * strip.c: Likewise.
1065 * unstrip.c: Likewise.
1066 * debugpred.h: New file.
1067
1068 * readelf.c (handle_relocs_rel): Use elf_scnshndx.
1069 (handle_relocs_rela): Likewise.
1070
1071 * readelf.c: Add lots of likely/unlikely.
1072
1073 * elflint.c: Minor cleanups.
1074
Roland McGrath1a2e8f42007-12-15 23:39:34 +000010752007-11-19 Roland McGrath <roland@redhat.com>
1076
1077 * readelf.c (print_ops): Handle all bad op codes gracefully.
1078 Print their numbers instead of just ???.
1079
Roland McGrath07a696e2007-11-09 22:44:26 +000010802007-11-09 Roland McGrath <roland@redhat.com>
1081
1082 * readelf.c (attr_callback): Handle DW_AT_data_location.
Roland McGrath1a2e8f42007-12-15 23:39:34 +00001083 Handle block forms to mean a DWARF expression for DW_AT_allocated,
1084 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
1085 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
1086 DW_AT_upper_bound.
Roland McGrath07a696e2007-11-09 22:44:26 +00001087
Roland McGrathe4c22ea2007-10-23 13:07:39 +000010882007-10-20 Roland McGrath <roland@redhat.com>
1089
1090 * unstrip.c (options): Update -R description.
1091 (struct symbol): Put symbol details a union with a size_t pointer
1092 `duplicate'.
1093 (compare_symbols_output): Use null ->name as marker for discard
1094 symbols, not zero *->map.
1095 (copy_elided_sections): Record forwarding pointers for discarded
1096 duplicates and fill SYMNDX_MAP elements through them.
1097
1098 * readelf.c (process_file): Set offline_next_address to 0 at start.
1099 (struct process_dwflmod_args): New type.
1100 (process_dwflmod): Take args in it, pass fd to process_elf_file.
1101 (process_file): Update caller; dup FD for passing to libdwfl.
1102 (process_elf_file): Take new arg FD. For ET_REL file when
1103 displaying data affected by libdwfl relocation, open a new Elf handle.
1104
11052007-10-17 Roland McGrath <roland@redhat.com>
1106
1107 * readelf.c (print_debug_line_section): For invalid data inside a
1108 unit with plausible length, keep printing at the next unit boundary.
1109
1110 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
1111
11122007-10-16 Roland McGrath <roland@redhat.com>
1113
1114 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
1115
Ulrich Drepperb597dfa2007-10-16 05:21:27 +000011162007-10-15 Roland McGrath <roland@redhat.com>
1117
1118 * make-debug-archive.in: New file.
1119 * Makefile.am (EXTRA_DIST): Add it.
1120 (make-debug-archive): New target.
1121 (bin_SCRIPTS, CLEANFILES): Add it.
1122
11232007-10-10 Roland McGrath <roland@redhat.com>
1124
1125 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
1126 Use it to check MERGE|STRINGS for .debug_str.
1127 (check_sections): Handle exact_or_gnuld.
1128
11292007-10-08 Roland McGrath <roland@redhat.com>
1130
1131 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
1132 64-bit struct timeval with 32-bit tv_usec.
1133
11342007-10-07 Roland McGrath <roland@redhat.com>
1135
1136 * readelf.c (check_archive_index): New function.
1137 (process_file): Call it. Change signature to take only fd and name.
1138 Use libdwfl to open the file, then iterate on its modules (multiple
1139 for an archive) to print file name and call process_elf_file.
1140 (main): Update caller. Let process_file do elf_begin.
1141 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
1142 (process_elf_file): Take only Dwfl_Module * argument.
1143 Don't print the file name here.
1144 (print_debug_*_section): Take Dwfl_Module * argument.
1145 (print_debug): Likewise. Update caller.
1146 (format_dwarf_addr): New function.
1147 (print_debug_ranges_section): Use it.
1148 (attr_callback): Likewise.
1149 (print_debug_line_section, print_debug_loc_section): Likewise.
1150
1151 * readelf.c (print_debug_ranges_section): Translate all strings.
1152 (print_debug_loc_section): Likewise.
1153
1154 * unstrip.c (copy_elided_sections): Initialize SEC.
1155
1156 * ar.c (do_oper_insert): Put trailing / on short names.
1157
1158 * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
1159
1160 * arlib2.c (arlib_add_long_name): Adjust for header size.
1161
1162 * arlib.c (arlib_finalize): Pad long name table to keep size even.
1163
1164 * ar.c (do_oper_insert): Use write_retry for padding write.
1165
1166 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
1167 Unconditionally set FOUND[CNT]->elf when setting ->mem.
1168 (remember_long_name): New function.
1169 (do_oper_insert): Call it. Correctly use length of basename,
1170 not original name. Don't store long name twice for new member.
1171
11722007-10-06 Roland McGrath <roland@redhat.com>
1173
1174 * elflint.c (check_note): Skip empty segment.
1175 (check_note_section): Skip empty section.
1176
1177 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
1178 (handle_output_dir_module, handle_implicit_modules): Pass it down.
1179 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
1180 (compare_alloc_sections): Take new arg REL, ignore address if true.
1181 (compare_sections): Likewise, pass it down.
1182 (compare_sections_rel, compare_sections_nonrel): New functions.
1183 (find_alloc_sections_prelink, copy_elided_sections): Use them
1184 instead of compare_sections.
1185 (sections_match): New function, broken out of ...
1186 (find_alloc_section): ... here.
1187 (copy_elided_sections): Reorganize section match-up logic.
1188 Use sections_match for SHF_ALLOC in ET_REL.
1189 For ET_REL, let the nonzero sh_addr from the debug file dominate.
1190
1191 * unstrip.c (add_new_section_symbols): Take new arg REL.
1192 When true, do not update section symbol values.
1193 (collect_symbols): Likewise. Update section symbols with address
1194 of chosen output section, not original section.
1195 (check_symtab_section_symbols, copy_elided_sections): Update callers.
1196
1197 * unstrip.c (compare_alloc_sections): At the same address, preserve
1198 original section order.
1199
1200 * elflint.c (special_sections): Don't require MERGE|STRINGS for
1201 .debug_str, it didn't always have them with older tools.
1202
1203 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
1204
12052007-10-05 Roland McGrath <roland@redhat.com>
1206
1207 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
1208 ET_REL file.
1209
1210 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
1211 SHN_UNDEF as "bad section". Use shndx value in messages.
1212
1213 * elflint.c (special_sections): Add ".debug_str". Decrement namelen
1214 for ".debug" so it matches as a prefix.
1215 (IS_KNOWN_SPECIAL): New macro.
1216 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS
1217 type even under -d, for a .debug* or .shstrtab section.
1218
1219 * readelf.c (print_ops): Use hex for address operand.
1220
12212007-10-04 Roland McGrath <roland@redhat.com>
1222
1223 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
1224 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for
1225 sections mapped to SHN_UNDEF.
1226
Ulrich Drepper3fc3d7b2007-10-04 18:40:28 +000012272007-10-04 Ulrich Drepper <drepper@redhat.com>
1228
1229 * readelf.c (dump_archive_index): Avoid warning about uninitialized
1230 variable with older glibc versions.
1231 Add some branch prediction.
1232
Roland McGrath59ea7f32007-10-04 08:50:09 +000012332007-10-04 Roland McGrath <roland@redhat.com>
1234
1235 * readelf.c (print_archive_index): New variable.
1236 (options, parse_opt): Accept -c/--archive-index to set it.
1237 (dump_archive_index): New function.
1238 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
1239 Call dump_archive_index on archives if set.
1240 (main): Update caller.
1241 (any_control_option): Give it file scope, moved out of ...
1242 (parse_opt): ... here.
1243
12442007-10-03 Roland McGrath <roland@redhat.com>
1245
1246 * unstrip.c (struct arg_info): Add `list' flag.
1247 (options, parse_opt): Grok -n/--list to set it.
1248 (list_module): New function.
1249 (handle_implicit_modules): Call it under -n.
1250
1251 * elflint.c (check_note_section): New function.
1252 (check_sections): Call it for SHT_NOTE.
1253
1254 * readelf.c (handle_notes): Use sections when available.
1255
1256 * elflint.c (check_note_data): New function, broken out of ...
1257 (check_note): ... here. Call it and elf_getdata_rawchunk.
1258
1259 * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
1260 Use elf_getdata_rawchunk and gelf_getauxv.
1261 (handle_notes_data): New function, broken out of ...
1262 (handle_notes): ... here. Call it and elf_getdata_rawchunk.
1263
Roland McGrath241ac022007-10-01 18:21:46 +000012642007-10-01 Roland McGrath <roland@redhat.com>
1265
Roland McGrathac0a16c2007-10-01 18:50:35 +00001266 * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
1267
Roland McGrath241ac022007-10-01 18:21:46 +00001268 * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
1269
Roland McGrathc76f0b02007-09-27 07:31:33 +000012702007-09-10 Roland McGrath <roland@redhat.com>
1271
1272 * readelf.c (options): Give -p optional argument, alias --string-dump.
1273 (string_sections, string_sections_tail): New static variables.
1274 (parse_opt): Set them when -p has an argument.
1275 (print_string_section): New function, broken out of ...
1276 (print_strings): ... here. Call it.
1277 (dump_data_section): New function, broken out of ...
1278 (dump_data): ... here. Call it.
1279 (for_each_section_argument): New function, broken out of ...
1280 (dump_data): ... here. Call it.
1281 (dump_strings): New function.
1282
12832007-08-31 Roland McGrath <roland@redhat.com>
1284
1285 * readelf.c (print_strings): Typo fix.
1286
Roland McGrathcb6d8652007-08-23 08:10:54 +000012872007-08-23 Roland McGrath <roland@redhat.com>
1288
1289 * readelf.c (printf_with_wrap): Function removed.
1290 (REGISTER_WRAP_COLUMN): New macro.
1291 (handle_core_register): Use print_core_item instead.
1292 (struct register_info): New type.
1293 (compare_registers, compare_register_sets): New functions.
1294 (register_bitpos, compare_sets_by_info): New functions.
1295 (handle_core_registers): Use those to segregate and sort registers
1296 for display.
1297
1298 * readelf.c (ITEM_WRAP_COLUMN): New macro.
1299 (print_core_item): New function.
1300 (handle_core_item): Use it instead of printf_with_wrap.
1301 (compare_core_items, compare_core_item_groups): New functions.
1302 (handle_core_items): Use them. Sort by group and force line breaks
1303 between groups.
1304
1305 * readelf.c (handle_core_registers, handle_core_items): New functions,
1306 broken out of ...
1307 (handle_core_note): ... here. Call them.
1308
13092007-08-22 Roland McGrath <roland@redhat.com>
1310
1311 * unstrip.c (new_shstrtab): New function, broken out of ...
1312 (copy_elided_sections): ... here.
1313
13142007-08-20 Roland McGrath <roland@redhat.com>
1315
1316 Avoid local function trampolines in nm binary.
1317 * nm.c (sort_by_address): Move to a static function instead of local
1318 inside show_symbols.
1319 (sort_by_name_strtab): New static variable.
1320 (sort_by_name): Use it. Move to a static function instead of local
1321 inside show_symbols.
1322 (show_symbols): Set sort_by_name_strtab.
1323
13242007-08-19 Roland McGrath <roland@redhat.com>
1325
1326 * readelf.c (handle_auxv_note): New function.
1327 (handle_notes): Call it.
1328
1329 * readelf.c (printf_with_wrap, convert): New functions.
1330 (handle_core_item, (handle_core_register): New functions.
1331 (handle_notes): Call those with details from ebl_core_note.
1332
Roland McGrath099dd522007-08-13 22:58:36 +000013332007-08-12 Roland McGrath <roland@redhat.com>
1334
1335 * elflint.c (check_note): Accept type 0 with name "Linux".
1336
1337 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
1338
1339 * elflint.c (section_flags_string): Return "none" for 0, not "".
1340
Roland McGrathd8221722007-08-11 21:18:09 +000013412007-08-11 Roland McGrath <roland@redhat.com>
1342
1343 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
1344
Ulrich Drepperc98bcc72007-08-04 17:06:14 +000013452007-08-04 Ulrich Drepper <drepper@redhat.com>
1346
1347 * readelf.c (hex_dump): Use isprint to determine whether to print
1348 character itself or full stop character.
1349 (dump_data): No need to check endp for NULL after strtol call.
1350
Roland McGrath60fc84c2007-08-03 21:59:15 +000013512007-08-03 Roland McGrath <roland@redhat.com>
1352
1353 * readelf.c (print_string_sections): New variable.
1354 (options, parse_opt): Handle --strings/-p to set it.
1355 (print_strings): New function.
1356 (process_elf_file): Call it under -p.
1357
1358 * readelf.c (options): Add hidden aliases --segments, --sections,
1359 as taken by binutils readelf.
1360
13612007-08-01 Roland McGrath <roland@redhat.com>
1362
1363 * readelf.c (dump_data_sections, dump_data_sections_tail):
1364 New variables.
1365 (options, parse_opt): Handle --hex-dump/-x, set them.
1366 (hex_dump): New function.
1367 (dump_data): New function, call it.
1368 (process_elf_file): Call it.
1369
13702007-07-25 Roland McGrath <roland@redhat.com>
1371
1372 * addr2line.c (show_symbols): New variable.
1373 (print_addrsym): New function.
1374 (handle_address): Call it.
1375 (options, parse_opt): Handle -S/--symbols.
1376
Ulrich Drepperb0243862007-06-06 00:09:36 +000013772007-06-05 Ulrich Drepper <drepper@redhat.com>
1378
1379 * addr2line.c: Update for latest autoconf header.
1380 * ar.c: Likewise.
1381 * elfcmp.c: Likewise.
1382 * elflint.c: Likewise.
1383 * findtextrel.c: Likewise.
1384 * ld.c: Likewise.
1385 * ldgeneric.c: Likewise.
1386 * nm.c: Likewise.
1387 * objdump.c: Likewise.
1388 * ranlib.c: Likewise.
1389 * readelf.c: Likewise.
1390 * size.c: Likewise.
1391 * strings.c: Likewise.
1392 * strip.c: Likewise.
1393 * unstrip.c: Likewise.
1394
Roland McGrath9aa8ef72007-05-18 08:59:43 +000013952007-05-18 Roland McGrath <roland@redhat.com>
1396
1397 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
1398 stripped file, so as not to duplicate a section copied in both.
1399
1400 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
1401
14022007-05-17 Roland McGrath <roland@redhat.com>
1403
1404 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
1405
1406 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
1407
1408 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
1409 call make_directories here.
1410 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
1411 (handle_dwfl_module): Likewise.
1412 (handle_implicit_modules): Update callers.
1413 (handle_output_dir_module): Likewise. Don't do make_directories here.
1414
1415 * unstrip.c (get_section_name): New function, broken out of ...
1416 (copy_elided_sections): here. Update callers.
1417 (find_alloc_section): Broken out of ...
1418 (copy_elided_sections): ... here. Update caller.
1419 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
1420 update STT_SECTION symbols' st_value fields as a side effect.
1421 (check_symtab_section_symbols): Update caller.
1422 (add_new_section_symbols): Set st_value in symbols added.
1423 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
1424 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
1425 from .bss to .dynbss.
1426 (find_alloc_sections_prelink): New function. Associate debug file
1427 allocated SHT_NOBITS shdrs with stripped moved by prelink via
1428 .gnu.prelink_undo information.
1429 (copy_elided_sections): Call it when we couldn't find every allocated
1430 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
1431 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
1432 (handle_file): Update callers.
1433
1434 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
1435 named ".comment".
1436
1437 * elflint.c (check_sections): Fix association of segments with
1438 sections when p_memsz > p_filesz.
1439
14402007-04-29 Roland McGrath <roland@redhat.com>
1441
1442 * addr2line.c (options, main): Tweak argp group settings to fix
1443 usage output.
1444
14452007-04-28 Roland McGrath <roland@redhat.com>
1446
1447 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
1448 sizes to match sections adjusted in the stripped file.
1449
Roland McGrath4be15242007-04-25 03:09:33 +000014502007-04-24 Roland McGrath <roland@redhat.com>
1451
1452 * elfcmp.c (OPT_HASH_INEXACT): New macro.
1453 (hash_inexact): New variable.
1454 (options, parse_opt): Add --hash-inexact option to set it.
1455 (hash_content_equivalent): New function.
1456 (main): Call it for differing SHT_HASH sections under --hash-inexact.
1457
14582007-04-23 Roland McGrath <roland@redhat.com>
1459
1460 * unstrip.c: New file.
1461 * Makefile.am (bin_PROGRAMS): Add it.
1462 (unstrip_LDADD): New variable.
1463
1464 * strip.c (options): Allow --output for -o.
1465
Ulrich Drepper8b383102007-02-16 00:31:57 +000014662007-02-15 Ulrich Drepper <drepper@redhat.com>
1467
1468 * readelf.c: Remove unused code. Add a few consts.
1469
Ulrich Drepper903c1162007-02-15 19:40:37 +000014702007-02-15 Roland McGrath <roland@redhat.com>
1471
1472 * readelf.c (print_debug): Fix brainos in SHDR test.
1473
Roland McGrathf82a1ec2007-02-06 04:47:44 +000014742007-02-05 Roland McGrath <roland@redhat.com>
1475
1476 * ar.c: Include <limits.h>, since we use LONG_MAX.
1477
Ulrich Drepper0fe63532007-02-05 21:05:51 +000014782007-02-05 Ulrich Drepper <drepper@redhat.com>
1479
Ulrich Drepper8b383102007-02-16 00:31:57 +00001480 * ar.c: Add ugly hack to work around gcc complaining that we
Ulrich Drepper93ab56f2007-02-05 22:12:41 +00001481 ignore fchown's return value.
1482 (do_oper_insert): Handle error when writing padding.
1483 * ranlib.c: Add fchown complain work around.
1484
Ulrich Drepper0fe63532007-02-05 21:05:51 +00001485 * arlib.c: Make symtab a global variable. Change all users.
1486 * arlib2.c: Likewise.
1487 * ranlib.c: Likewise.
1488 * ar.c: Likewise.
1489 * arlib.h: Declare it.
1490
Ulrich Drepperaa915fd2007-02-05 07:25:33 +000014912007-01-11 Roland McGrath <roland@redhat.com>
1492
1493 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
1494 SHF_MASKPROC bits separately from generic sh_flags validation.
1495
Ulrich Drepperce0bdb62007-02-05 07:13:52 +000014962007-02-04 Ulrich Drepper <drepper@redhat.com>
1497
1498 * ar.c: New file.
1499 * arlib.c: New file.
1500 * arlib2.c: New file.
1501 * arlib.h: New file.
1502 * Makefile (noinst_LIBRARIES): Add libar.
1503 (libar_a_SOURCES): Define.
1504 (ar_LDADD): Define.
1505 (CFLAGS_ar): Define.
1506 * ranlib.c: Change to use arlib.
1507
1508 * elflint.c (check_symtab): Work around GNU ld bug which omits
1509 sections but not symbols in those sections.
1510
Ulrich Drepperb770cf92007-01-10 21:02:34 +000015112007-01-10 Ulrich Drepper <drepper@redhat.com>
1512
1513 * addr2line.c: Update copyright year.
1514 * elfcmp.c: Likewise.
1515 * elflint.c: Likewise.
1516 * findtextrel.c: Likewise.
1517 * ld.c: Likewise.
1518 * nm.c: Likewise.
1519 * objdump.c: Likewise.
1520 * ranlib.c: Likewise.
1521 * readelf.c: Likewise.
1522 * size.c: Likewise.
1523 * strings.c: Likewise.
1524 * strip.c: Likewise.
1525
Ulrich Drepper7c0e79f2006-12-09 21:10:19 +000015262006-12-09 Ulrich Drepper <drepper@redhat.com>
1527
1528 * elflint.c (compare_hash_gnu_hash): New function. Report if the
1529 two hash tables have different content (module expected omission
1530 of undefined symbols).
1531
Roland McGrath8190db62006-12-17 23:56:51 +000015322006-10-31 Roland McGrath <roland@redhat.com>
1533
1534 * elflint.c (check_program_header): Don't complain about
Ulrich Drepper56bc0b82006-12-18 22:38:08 +00001535 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
Roland McGrath8190db62006-12-17 23:56:51 +00001536
15372006-09-19 Jakub Jelinek <jakub@redhat.com>
1538
1539 * strip.c (process_file): Disallow -f on archives.
1540
15412006-10-09 Roland McGrath <roland@redhat.com>
1542
1543 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
1544
Roland McGrathc373d852006-10-10 00:25:21 +000015452006-08-29 Roland McGrath <roland@redhat.com>
1546
1547 * Makefile.am (MAINTAINERCLEANFILES): New variable.
1548
1549 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
1550 Reported by Christian Aichinger <Greek0@gmx.net>.
1551
1552 * elflint.c (valid_e_machine): Add EM_ALPHA.
1553 Reported by Christian Aichinger <Greek0@gmx.net>.
1554
Ulrich Drepper231c5902006-08-08 22:00:11 +000015552006-08-08 Ulrich Drepper <drepper@redhat.com>
1556
1557 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
1558 Keep track of which "high DT" entries are present.
1559 Check that either old or GNU-style hash table is present.
1560 If GNU-style hash table is used a symbol table is mandatory.
1561 Check that if any prelink entry is present all of them are.
1562 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
1563 table if they don't refer to functions.
1564
Roland McGrath858b1892006-07-17 08:41:15 +000015652006-07-17 Roland McGrath <roland@redhat.com>
1566
1567 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
1568 (add_version): Likewise for argument.
1569 (check_versym): Cast constant to GElf_Versym for comparison.
1570
Roland McGrath4ec807e2006-07-13 03:59:46 +000015712006-07-12 Roland McGrath <roland@redhat.com>
1572
1573 * readelf.c (handle_gnu_hash): Add casts for machines where
1574 Elf32_Word != unsigned int.
1575
Ulrich Drepperdcf61602006-07-12 19:59:02 +000015762006-07-12 Ulrich Drepper <drepper@redhat.com>
1577
1578 * elflint.c (check_sysv_hash64): Fix printf format.
1579
Ulrich Dreppercc415622006-07-12 19:42:23 +000015802006-07-11 Roland McGrath <roland@redhat.com>
Ulrich Drepper8ae58142006-07-12 05:22:32 +00001581
Ulrich Dreppercc415622006-07-12 19:42:23 +00001582 * addr2line.c (options): English fix in -f doc string.
1583
1584 * addr2line.c (use_comp_dir): New variable.
1585 (options, parse_opt): Grok -A/--absolute to set it.
1586 (handle_address): If set, prepend dwfl_line_comp_dir results to
1587 relative file names.
Ulrich Drepper8ae58142006-07-12 05:22:32 +00001588
Ulrich Drepper28ed8952006-07-07 03:43:47 +000015892006-07-06 Ulrich Drepper <drepper@redhat.com>
1590
1591 * elflint.c: Adjust for latest new hash table format.
1592 * readelf.c: Likewise.
1593
1594 * elflint.c (check_versym): Ignore hidden bit when comparing version
1595 numbers.
1596
15972006-07-05 Ulrich Drepper <drepper@redhat.com>
1598
1599 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
1600 discarded COMDAT symbols.
1601
1602 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
1603 (elf_i386_create_relocations): Likewise.
1604 * ld.h (struct symbol): Add local and hidden bits.
1605 * ld.c (create_special_section_symbol): These synthsized symbols
1606 are local and hidden.
1607 * ldgeneric.c (file_process2): Check whether input file matches
1608 the emulation.
1609 (fillin_special_symbol): Create symbols as local and/or hidden
1610 if requested.
1611 (ld_generic_create_outfile): Make local copy of symbol.
1612 Don't hide global, defined symbols in dynamic symbol table unless
1613 requested. Synthetic symbols have no version information.
1614
1615 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
1616 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
1617
16182006-07-04 Ulrich Drepper <drepper@redhat.com>
1619
1620 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
1621 testing.
1622
16232006-07-03 Ulrich Drepper <drepper@redhat.com>
1624
1625 * elflint.c: Add testing of DT_GNU_HASH.
1626 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
1627
1628 * Makefile.am: Add hacks to create dependency files for non-generic
1629 linker.
1630
Ulrich Drepper6ca46002006-06-12 22:40:23 +000016312006-06-12 Ulrich Drepper <drepper@redhat.com>
1632
1633 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
1634 section if creating a DSO and no interpreter is given.
1635 (ld_generic_create_outfile): Don't store reference to symbols in
1636 discarded COMDAT groups. Don't create PHDR and INTERP program header
1637 for DSO if no interpreter is specified.
Ulrich Drepper595d0e72006-06-12 23:25:17 +00001638 (create_verneed_data): Pretty printing.
1639
Ulrich Drepper6ca46002006-06-12 22:40:23 +00001640 * ldscript.y (content): If a DSO is created don't set default
1641 interpreter from linker script.
1642
1643 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
1644 for symbols in discarded COMDAT groups.
1645 (elf_i386_create_relocations): Likewise.
1646 * ld.h (struct scninfo): Add unused_comdat.
1647 * ldgeneric.c (add_section): Also check group signature when
1648 matching COMDAT sections.
1649 (add_relocatable_file): Ignore symbols in COMDAT group which are
1650 discarded.
1651
1652 * elflint.c (check_one_reloc): For *_NONE relocs only check type
1653 and symbol reference.
1654
Ulrich Drepper54f33a72006-06-11 09:07:37 +000016552006-06-11 Ulrich Drepper <drepper@redhat.com>
1656
Ulrich Dreppercbb51e52006-06-11 20:25:23 +00001657 * elflint.c (check_dynamic): Fix checking value of tags which are
1658 offsets in the string section. Make sure DT_STRTAB points to the
1659 section referenced in sh_link.
1660
1661 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
1662
Ulrich Drepper54f33a72006-06-11 09:07:37 +00001663 * ld.c: Recognize --eh-frame-hdr option.
1664 * ld.h (struct ld_state): Add eh_frame_hdr field.
1665 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
1666
1667 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
1668 SH_FLAGS_COMBINE.
1669 (add_relocatable_file): Minor optimization of last change.
1670 (match_section): Don't preserve SHF_GROUP flag any longer.
1671
Ulrich Drepper2d880282006-06-11 00:20:43 +000016722006-06-10 Ulrich Drepper <drepper@redhat.com>
1673
1674 * ld.c (parse_z_option): Recognize execstack and noexecstack.
Ulrich Drepper4f0a7a82006-06-11 00:53:45 +00001675 Handle record and ignore as position dependent options.
1676 (parse_z_option_2): Handle ignore and record here.
Ulrich Drepper2d880282006-06-11 00:20:43 +00001677 * ld.h (struct ld_state): Add execstack field.
1678 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
1679 sections.
1680 (ld_generic_create_outfile): Fix program header creation in native
1681 linker. Add PT_GNU_STACK program header.
1682
Ulrich Dreppera688a732006-06-10 06:33:00 +000016832006-06-09 Ulrich Drepper <drepper@redhat.com>
1684
1685 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
1686 for PLT entries if there is no local definition.
1687
1688 * ld.c (parse_option): Handle -z ignore like --as-needed and
1689 -z record like --no-as-needed.
1690 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
1691 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
1692 looping over DSOs. When deciding about adding DT_NEEDED entries
1693 use ->as_needed instead of ignore_unused_dsos.
1694
Ulrich Drepper8c56fe32006-05-31 15:50:43 +000016952006-05-31 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001696
Ulrich Drepper8c56fe32006-05-31 15:50:43 +00001697 * ld.c: Recognize --as-needed and --no-as-needed options.
1698 * ld.h (struct usedfile): Add as_needed field.
1699 (struct ld_state): Likewise.
1700 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
1701 the list.
1702 * ldscript.y (filename_id_list): Split to correctly parse all
1703 combinations.
1704 (mark_as_needed): Fix loop.
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001705
Ulrich Drepper697f4db2006-06-10 06:50:47 +000017062006-05-28 Ulrich Drepper <drepper@redhat.com>
1707
1708 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
1709 and colno.
1710
Ulrich Drepper2cb8e732006-05-27 21:57:27 +000017112006-05-27 Ulrich Drepper <drepper@redhat.com>
1712
1713 * readelf.c (handle_relocs_rela): Better notations for addon value.
Ulrich Drepper41a99082006-05-28 00:01:43 +00001714 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
Ulrich Drepper2cb8e732006-05-27 21:57:27 +00001715
Ulrich Drepper82c345d2006-04-04 22:07:54 +000017162006-04-04 Ulrich Drepper <drepper@redhat.com>
1717
1718 * addr2line.c: Update copyright year.
1719 * elfcmp.c: Likewise.
1720 * elflint.c: Likewise.
1721 * findtextrel.c: Likewise.
1722 * ld.c: Likewise.
1723 * nm.c: Likewise.
1724 * objdump.c: Likewise.
1725 * ranlib.c: Likewise.
1726 * readelf.c: Likewise.
1727 * size.c: Likewise.
1728 * strings.c: Likewise.
1729 * strip.c: Likewise.
1730
Roland McGrathdd7e22b2006-03-09 23:05:47 +000017312006-03-09 Roland McGrath <roland@redhat.com>
1732
1733 * Makefile.am (AM_LDFLAGS): New variable.
1734
Roland McGrath060fa052006-03-02 07:51:50 +000017352006-03-01 Roland McGrath <roland@redhat.com>
1736
1737 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
1738 for dwarf.h changes matching 3.0 spec.
1739 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
1740
Ulrich Drepper038129b2005-12-04 16:47:24 +000017412005-12-04 Ulrich Drepper <drepper@redhat.com>
1742
1743 * elflint.c (check_one_reloc): If relocation section is not loaded,
1744 don't check whether the relocations modify read-only sections or
1745 loaded and unloaded sections.
1746
Ulrich Drepper607e0542005-12-04 15:51:06 +000017472005-11-28 Ulrich Drepper <drepper@redhat.com>
1748
1749 * elflint.c (check_one_reloc): Take additional parameters. Use
1750 them to determine whether relocation is valid in this type of
1751 file. DSOs and executables can contain relocation sections in
1752 unloaded sections which just show the relocations the linker
1753 applied. Adjust all callers.
1754 (check_program_header): Check that PT_PHDR is loaded and that offset
1755 matches the one in the ELF header.
1756
Roland McGrath6724c902005-10-28 07:07:19 +000017572005-10-26 Roland McGrath <roland@redhat.com>
1758
1759 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
1760
Ulrich Drepperd0449522005-09-03 07:23:52 +000017612005-09-03 Ulrich Drepper <drepper@redhat.com>
1762
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001763 * strip.c (handle_elf): Unify some error messages.
1764 * ld.c (main): Likewise.
1765 * ldgeneric.c (open_elf): Likewise.
1766 * elfcmp.c (main): Likewise.
1767 * elflint.c (check_elf_header): Likewise.
1768
1769 * size.c (process_file): Fix typo in error message.
1770
Ulrich Drepperd0449522005-09-03 07:23:52 +00001771 * readelf.c: Lots of little cleanups. Use _unlocked functions.
1772
Ulrich Dreppera60501e2005-09-02 19:50:17 +000017732005-09-02 Ulrich Drepper <drepper@redhat.com>
1774
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001775 * strings.c (main): Reset elfmap variable after munmap call.
Ulrich Drepper618795f2005-09-02 20:01:37 +00001776 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
Ulrich Dreppera60501e2005-09-02 19:50:17 +00001777
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000017782005-08-28 Ulrich Drepper <drepper@redhat.com>
1779
1780 * ranlib.c: Don't define pread_retry and write_retry here.
1781
1782 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
1783 (CLEANFILES): Add *.gcno *.gcda *.gconv.
1784
1785 * strings.c (process_chunk): Reorder expressions in conditional
1786 (process_chunk_mb): Likewise.
1787
1788 * strings.c: New file.
1789 * Makefile.am (bin_PROGRAMS): Add strings.
1790 (strings_no_Wstring): Define.
1791 (strings_LDADD): Define.
1792
Roland McGrath71e15a02005-08-27 10:33:26 +000017932005-08-27 Roland McGrath <roland@redhat.com>
1794
1795 * addr2line.c (dwarf_diename_integrate): Function removed.
1796 (print_dwarf_function): Use plain dwarf_diename.
1797
Ulrich Drepperc5a06cd2005-08-24 19:50:14 +000017982005-08-24 Ulrich Drepper <drepper@redhat.com>
1799
1800 * elflint.c (check_versym): Versioned symbols should not have
1801 local binding.
1802
Ulrich Drepper5d832292005-08-15 21:36:27 +000018032005-08-15 Ulrich Drepper <drepper@redhat.com>
1804
Ulrich Drepper61655e02005-08-16 04:23:02 +00001805 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
1806 undefined.
1807
Ulrich Drepper5d832292005-08-15 21:36:27 +00001808 * Makefile.am: Add rules to build ranlib.
1809 * ranlib.c: New file.
1810
Roland McGrath18e13422005-08-15 08:01:25 +000018112005-08-14 Roland McGrath <roland@redhat.com>
1812
1813 * elflint.c (check_sections): Use ebl_section_type_name and allow any
1814 sh_type it recognizes.
1815
1816 * elflint.c (check_sections): Print unknown flags in hex, don't
1817 truncate high bits. Print section number and name for unknown type.
1818
Roland McGrathf6895042005-08-13 20:56:52 +000018192005-08-13 Roland McGrath <roland@redhat.com>
1820
1821 * elflint.c (check_program_header): Use ebl_segment_type_name and
1822 allow any p_type it recognizes. Include p_type value in error
1823 message for unknown type.
1824
Ulrich Drepperc5c33a62005-08-13 17:50:47 +000018252005-08-13 Ulrich Drepper <drepper@redhat.com>
1826
1827 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
1828 to ebl_check_special_symbol.
1829 (check_sections): Pass ehdr to ebl_bss_plt_p.
1830
Roland McGrath653d3762005-08-13 01:59:10 +000018312005-08-12 Roland McGrath <roland@redhat.com>
1832
1833 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
1834 refers to the right section if it's not SHN_ABS.
1835 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
1836
1837 * elflint.c (check_sections): Don't complain about a non-NOBITS
1838 section taking no segment space, if it's sh_size is 0.
1839
1840 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
1841 be PROGBITS or NOBITS.
1842
1843 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
1844 standard st_value and st_size checks.
1845
Roland McGrath1c83bf12005-08-11 07:03:55 +000018462005-07-28 Roland McGrath <roland@redhat.com>
Ulrich Drepperfaf4d192005-08-11 05:12:05 +00001847
Roland McGrath1c83bf12005-08-11 07:03:55 +00001848 * addr2line.c (options, parse_opt): Don't handle -e here.
1849 (executable): Variable removed.
1850 (argp_children): New static variable.
1851 (argp): Use it. Make const.
1852 (main): Fill in argp_children from dwfl_standard_argp ().
1853 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
1854 (print_dwarf_function): New function. Try to figure out inline chain.
1855 (elf_getname): Function removed, libdwfl does it for us.
1856 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
1857 Use dwfl_module_addrname instead of elf_getname.
1858 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
1859 * Makefile.am (INCLUDES): Add libdwfl directory to path.
1860
18612005-08-10 Ulrich Drepper <drepper@redhat.com>
1862
1863 * strip.c (parse_opt): STATE parameter is now used.
1864 Various little cleanups.
1865
1866 * readelf.c (print_debug_line_section): Correct fallout of renaming
1867 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +00001868
Roland McGrath8f31c2c2005-08-09 04:58:05 +000018692005-08-08 Roland McGrath <roland@redhat.com>
1870
1871 * strip.c (options, parse_opt): Grok -R .comment for compatibility
1872 with binutils strip. Likewise -d, -S, as aliases for -g.
1873 Likewise ignore -s/--strip-all.
1874
Roland McGrath095a01b2005-08-08 03:49:35 +000018752005-08-07 Roland McGrath <roland@redhat.com>
1876
1877 * strip.c (process_file): Open read-only when using a different output
1878 file.
1879
Ulrich Drepper47be7952005-08-07 04:41:39 +000018802005-08-06 Ulrich Drepper <drepper@redhat.com>
1881
Ulrich Drepper637963b2005-08-07 05:33:07 +00001882 * elflint.c (in_nobits_scn): New function.
1883 (check_versym): Allow references for defined symbols against versions
1884 of other DSOs also for symbols in nobits sections.
1885 Move a few variables around.
1886
Ulrich Drepper47be7952005-08-07 04:41:39 +00001887 * Makefile.am (AM_CFLAGS): Avoid duplication.
1888 Link with statis libs if BUILD_STATIC.
1889
Ulrich Drepperdbace232005-08-06 01:37:23 +000018902005-08-05 Ulrich Drepper <drepper@redhat.com>
1891
1892 * elflint.c: Many, many more tests. Mostly related to symbol
1893 versioning. Those sections should now be completely checked.
1894
1895 * readelf.c (print_dynamic): Use gelf_offscn.
1896
Ulrich Drepperacb89832005-08-04 07:01:49 +000018972005-08-04 Ulrich Drepper <drepper@redhat.com>
1898
1899 * elflint.c: Add lots more tests: more extension symbol table sanity,
1900 versioning section tests, hash table tests. General cleanup.
1901
Ulrich Drepperc911c9e2005-08-02 16:07:42 +000019022005-08-02 Ulrich Drepper <drepper@redhat.com>
1903
Ulrich Drepper8a687742005-08-03 02:24:12 +00001904 * objdump.c: New file.
1905 * Makefile.am (bin_PROGRAMS): Add objdump.
1906 (objdump_LDADD): Define.
1907
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001908 * elflint.c (check_reloc_shdr): New function split out from check_rela
1909 and check_rel.
1910 (check_one_reloc): New function. Likewise.
1911 (check_rela): Use check_reloc_shdr and check_one_reloc.
1912 (check_rel): Likewise.
Ulrich Drepper41de4882005-08-03 00:02:56 +00001913 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
1914 section.
1915 Add checks that relocations against read-only segments are flagged,
1916 that the text relocation flag is not set unnecessarily, and that
1917 relocations in one section are either against loaded or not-loaded
1918 segments.
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001919
Ulrich Drepper8533dcf2005-08-01 07:18:47 +000019202005-08-01 Ulrich Drepper <drepper@redhat.com>
1921
1922 * elfcmp.c (main): Ignore section count and section name string table
1923 section index.
1924
Roland McGrathf9ece8a2005-07-28 07:03:04 +000019252005-07-27 Roland McGrath <roland@redhat.com>
1926
1927 * elfcmp.c: Include <locale.h>.
1928
Ulrich Drepper7d48d6a2005-07-27 10:13:23 +000019292005-07-27 Ulrich Drepper <drepper@redhat.com>
1930
1931 * elfcmp.c: Print name and index of differing section.
1932
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000019332005-07-24 Ulrich Drepper <drepper@redhat.com>
1934
1935 * elfcmp.c: Implement comparing gaps between sections.
1936
19372005-07-23 Ulrich Drepper <drepper@redhat.com>
1938
1939 * elflint.c: Include libeblP.h instead of libebl.h.
1940 * nm.c: Likewise.
1941 * readelf.c: Likewise.
1942 * elfcmp.c: Likewise.
1943
1944 * elfcmp.c (main): Compare individual ELF header fields, excluding
1945 e_shoff instead of the whole struct at once.
1946 Use ebl_section_strip_p instead of SECTION_STRIP_P.
1947 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
1948
19492005-07-22 Ulrich Drepper <drepper@redhat.com>
1950
1951 * elfcmp.c (main): Take empty section into account when comparing
1952 section content.
1953
1954 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
1955 using it.
1956
19572005-07-21 Ulrich Drepper <drepper@redhat.com>
1958
1959 * elfcmp.c: New file.
1960 * Makefile.am (bin_PROGRAMS): Add elfcmp.
1961 (elfcmp_LDADD): Define.
1962
1963 * elflint.c (check_rela): Check that copy relocations only reference
1964 object symbols or symbols with unknown type.
1965 (check_rel): Likewise.
1966
19672005-06-08 Roland McGrath <roland@redhat.com>
1968
1969 * readelf.c (print_ops): Add consts.
1970
19712005-05-31 Roland McGrath <roland@redhat.com>
1972
1973 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
1974 abbreviations. Print a header line before each CU section.
1975
1976 * readelf.c (print_debug_loc_section): Fix indentation for larger
1977 address size.
1978
19792005-05-30 Roland McGrath <roland@redhat.com>
1980
1981 * readelf.c (print_debug_line_section): Print section offset of each
1982 CU's table, so they are easy to find from seeing the stmt_list value.
1983
1984 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
1985 (attr_callback): Grok DW_AT_ranges and print offset in hex.
1986
1987 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
1988 (print_debug_ranges_section, print_debug_loc_section): Likewise.
1989
1990 * readelf.c (print_ops): Take different args for indentation control.
1991 (attr_callback): Caller updated.
1992 Grok several more block-form attributes as being location expressions.
1993 For those same attributes with udata forms, format output differently
1994 for location list offset.
1995 (print_debug_loc_section): Implement it for real.
1996
1997 * readelf.c (options): Mention ranges for --debug-dump.
1998 (enum section_e): Add section_ranges.
1999 (parse_opt): Grok "ranges" for -w/--debug-dump.
2000 (print_debug_ranges_section): New function.
2001 (print_debug): Handle .debug_ranges section.
2002
20032005-05-30 Ulrich Drepper <drepper@redhat.com>
2004
2005 * readelf.c (handle_notes): At least x86-64 need not have the note
2006 section values aligned to 8 bytes.
2007
20082005-05-18 Ulrich Drepper <drepper@redhat.com>
2009
2010 * readelf.c (dwarf_tag_string): Add new tags.
2011
20122005-05-08 Roland McGrath <roland@redhat.com>
2013
2014 * strip.c (handle_elf): Don't translate hash and versym data formats,
2015 elf_getdata already did it for us.
2016
20172005-05-07 Ulrich Drepper <drepper@redhat.com>
2018
2019 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
2020 (addr2line_LDADD): Likewise.
2021
20222005-05-03 Roland McGrath <roland@redhat.com>
2023
2024 * strip.c (handle_elf): Apply symbol table fixups to discarded
2025 relocation sections when they are being saved in the debug file.
2026
2027 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
2028 and gelf_xlatetof, not the native byte order.
2029
2030 * strip.c (parse_opt): Give error if -f or -o is repeated.
2031 (main): Exit if argp_parse returns nonzero.
2032
2033 * strip.c (debug_fname_embed): New variable.
2034 (options, parse_opt): New option -F to set it.
2035
20362005-05-07 Ulrich Drepper <drepper@redhat.com>
2037
2038 * readelf.c (parse_opt): Make any_control_option variable
2039 local. Simplify some tests.
2040
20412005-05-03 Roland McGrath <roland@redhat.com>
2042
2043 * strip.c (crc32_file): Function removed (now in ../lib).
2044
20452005-05-03 Roland McGrath <roland@redhat.com>
2046
2047 * elflint.c (is_debuginfo): New variable.
2048 (options, parse_opt): New option --debuginfo/-d to set it.
2049 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
2050 (check_note): If is_debuginfo, don't try to get note contents.
2051
20522005-04-24 Ulrich Drepper <drepper@redhat.com>
2053
2054 * readelf.c (print_debug_abbrev_section): Don't print error when end of
2055 section reached.
2056
20572005-04-14 Ulrich Drepper <drepper@redhat.com>
2058
2059 * readelf.c (dwarf_encoding_string): New function.
2060 (dwarf_inline_string): New function.
2061 (dwarf_access_string): New function.
2062 (dwarf_visibility_string): New function.
2063 (dwarf_virtuality_string): New function.
2064 (dwarf_identifier_case_string): New function.
2065 (dwarf_calling_convention_string): New function.
2066 (dwarf_ordering_string): New function.
2067 (dwarf_discr_list_string): New function.
2068 (attr_callback): Decode man more attribute values.
2069
20702005-04-01 Ulrich Drepper <drepper@redhat.com>
2071
2072 * addr2line.c: Finish implementation of -f option.
2073
20742005-03-29 Ulrich Drepper <drepper@redhat.com>
2075
2076 * addr2line.c: New file.
2077 * Makefile.am (bin_PROGRAMS): Add addr2line.
2078 Define addr2line_LDADD.
2079
2080 * findtextrel.c: Use new dwarf_addrdie function.
2081
2082 * findtextrel.c: Fix usage message and re-add accidentally removed
2083 line.
2084
20852005-03-28 Ulrich Drepper <drepper@redhat.com>
2086
2087 * findtextrel.c: New file.
2088 * Makefile: Add rules to build findtextrel.
2089
20902005-02-15 Ulrich Drepper <drepper@redhat.com>
2091
2092 * ldlex.l: Provide ECHO definition to avoid warning.
2093
2094 * elflint.c (check_program_header): Fix typo in RELRO test.
2095
2096 * Makefile.am (AM_CFLAGS): Add more warning options.
2097 * elflint.c: Fix warnings introduced by the new warning options.
2098 * i386_ld.c: Likewise.
2099 * ld.c: Likewise.
2100 * ld.h: Likewise.
2101 * ldgeneric.c: Likewise.
2102 * nm.c: Likewise.
2103 * readelf.c: Likewise.
2104 * sectionhash.c: Likewise.
2105 * size.c: Likewise.
2106 * string.c: Likewise.
2107
21082005-02-05 Ulrich Drepper <drepper@redhat.com>
2109
2110 * Makefile.am: Check for text relocations in constructed DSOs.
2111
2112 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
2113 with -lmudflap.
2114
2115 * ldscript.y: Add as_needed handling.
2116 * ldlex.l: Recognize AS_NEEDED token.
2117 * ld.h (struct filename_list): Add as_needed flag.
2118
21192005-02-04 Ulrich Drepper <drepper@redhat.com>
2120
2121 * elflint.c (check_symtab): Correctly determine size of GOT section.
2122
21232005-01-19 Ulrich Drepper <drepper@redhat.com>
2124
2125 * ld.c: Remove unnecessary more_help function. Print bug report
2126 address using argp.
2127 * strip.c: Likewise.
2128 * size.c: Likewise.
2129 * nm.c: Likewise.
2130 * readelf.c: Likewise.
2131 * elflint.c: Likewise.
2132
2133 * elflint.c (main): Don't check for parameter problems here.
2134 (parse_opt): Do it here, where we get informed about some of them
2135 anyway.
2136
2137 * readelf.c (main): Don't check for parameter problems here.
2138 (parse_opt): Do it here, where we get informed about some of them
2139 anyway.
2140
21412005-01-11 Ulrich Drepper <drepper@redhat.com>
2142
2143 * strip.c: Update copyright year.
2144 * readelf.c: Likewise.
2145 * size.c: Likewise.
2146 * nm.c: Likewise.
2147 * ld.c: Likewise.
2148 * elflint.c: Likewise.
2149
2150 * elflint.c (check_symtab): Don't warn about wrong size for
2151 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
2152
21532004-10-05 Ulrich Drepper <drepper@redhat.com>
2154
2155 * readelf.c (print_phdr): In section mapping, also indicate
2156 sections in read-only segments.
2157
21582004-09-25 Ulrich Drepper <drepper@redhat.com>
2159
2160 * readelf.c: Make compile with gcc 4.0.
2161 * strip.c: Likewise.
2162
21632004-08-16 Ulrich Drepper <drepper@redhat.com>
2164
2165 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
2166 allocate to work around gcc 3.4 bug.
2167
21682004-01-25 Ulrich Drepper <drepper@redhat.com>
2169
2170 * ldlex.l (invalid_char): Better error message.
2171
21722004-01-23 Ulrich Drepper <drepper@redhat.com>
2173
2174 * readelf.c: Print SHT_GNU_LIBLIST sections.
2175
2176 * none_ld.c: New file.
2177
21782004-01-21 Ulrich Drepper <drepper@redhat.com>
2179
2180 * Makefile.am: Enable building of machine specific linker.
2181
21822004-01-20 Ulrich Drepper <drepper@redhat.com>
2183
2184 * Makefile.am: Support building with mudflap.
2185
2186 * i386_ld.c: Fix warnings gcc 3.4 spits out.
2187 * ldgeneric.c: Likewise.
2188 * ldscript.y: Likewise.
2189 * readelf.c: Likewise.
2190 * strip.c: Likewise.
2191
2192 * readelf.c (print_debug_line_section): Determine address size
2193 correctly.
2194
21952004-01-19 Ulrich Drepper <drepper@redhat.com>
2196
2197 * readelf.c (print_phdr): Show which sections are covered by the
2198 PT_GNU_RELRO entry.
2199
2200 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
2201
2202 * readelf.c (print_debug_macinfo_section): Implement.
2203
22042004-01-18 Ulrich Drepper <drepper@redhat.com>
2205
2206 * readelf.c (print_debug_line_section): Implement.
2207
22082004-01-17 Ulrich Drepper <drepper@redhat.com>
2209
2210 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
2211 * src/ld.c: Likewise.
2212 * src/nm.c: Likewise.
2213 * src/readelf.c: Likewise.
2214 * src/size.c: Likewise.
2215 * src/strip.c: Likewise.
2216
2217 * strip.c: Add a few more unlikely. Reduce scope of some variables.
2218
2219 * Makefile.am: Support building with mudflap.
2220
22212004-01-16 Ulrich Drepper <drepper@redhat.com>
2222
2223 * readelf.c (print_debug_info_section): Free dies memory.
2224
2225 * readelf.c: Print .debug_info section content.
2226
22272004-01-13 Ulrich Drepper <drepper@redhat.com>
2228
2229 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
2230
22312004-01-12 Ulrich Drepper <drepper@redhat.com>
2232
2233 * readelf.c (print_debug_aranges): Implement using libdw.
2234
22352004-01-11 Ulrich Drepper <drepper@redhat.com>
2236
2237 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
2238
2239 * readelf.c: Use libdw instead of libdwarf. Not all of the old
2240 behavior is available yet.
2241 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
2242
22432004-01-09 Ulrich Drepper <drepper@redhat.com>
2244
2245 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
2246
2247 * nm.c: Implement getting information about local variables.
2248
22492004-01-07 Ulrich Drepper <drepper@redhat.com>
2250
2251 * nm.c: Read also debug information for local symbols.
2252
22532004-01-05 Ulrich Drepper <drepper@redhat.com>
2254
2255 * nm.c: Shuffle dwarf handling code around so the maximum column
2256 width can be computed ahead of printing. Avoid collection symbols
2257 which are not printed anyway.
2258
2259 * nm.c: Rewrite dwarf handling to use libdw.
2260 * Makefile.am (AM_CFLAGS): Add -std parameter.
2261 (INCLUDES): Find header in libdw subdir.
2262 (nm_LDADD): Replace libdwarf with libdw.
2263
2264 * elflint.c: Update copyright year.
2265 * readelf.c: Likewise.
2266 * size.c: Likewise.
2267 * strip.c: Likewise.
2268 * nm.c: Likewise.
2269
22702003-12-31 Ulrich Drepper <drepper@redhat.com>
2271
2272 * strip.c (process_file): Close file before returning.
2273
22742003-11-19 Ulrich Drepper <drepper@redhat.com>
2275
2276 * readelf.c (handle_dynamic): Make column for tag name wider.
2277
22782003-09-29 Ulrich Drepper <drepper@redhat.com>
2279
2280 * readelf.c (handle_dynamic): Always terminate tag name with a space.
2281
22822003-09-25 Ulrich Drepper <drepper@redhat.com>
2283
2284 * strip.c (process_file): Don't mmap the input file, we modify the
2285 data structures and don't want the change end up on disk.
2286
22872003-09-23 Jakub Jelinek <jakub@redhat.com>
2288
2289 * unaligned.h (union u_2ubyte_unaligned,
2290 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
2291 packed attribute.
2292 (add_2ubyte_unaligned, add_4ubyte_unaligned,
2293 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
2294 Read/store value through _ptr->u instead of *_ptr.
2295
22962003-09-22 Ulrich Drepper <drepper@redhat.com>
2297
2298 * size.c (show_sysv): Change type of maxlen to int.
2299
2300 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
2301 buckets.
2302
2303 * i386_ld.c: Many many fixes and extensions.
2304 * ld.c: Likewise.
2305 * ldgeneric.c: Likewise.
2306
23072003-08-16 Ulrich Drepper <drepper@redhat.com>
2308
2309 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
2310 the reference is from another DSO.
2311
23122003-08-15 Ulrich Drepper <drepper@redhat.com>
2313
2314 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
2315 point is found when creating a DSO.
2316
23172003-08-14 Ulrich Drepper <drepper@redhat.com>
2318
2319 * ld.c (main): Always call FLAG_UNRESOLVED.
2320 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
2321 undefined symbols if not creating DSO or ld_state.nodefs is not set.
2322
23232003-08-13 Ulrich Drepper <drepper@redhat.com>
2324
2325 * Makefile.in: Depend on libebl.a, not libebl.so.
2326
2327 * ld.c (main): Mark stream for linker script as locked by caller.
2328 (read_version_script): Likewise.
2329 * ldlex.c: Define fread and fwrite to _unlocked variant.
2330
2331 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
2332 target_bswap_32.
2333 * unaligned.h: Define target_bswap_16, target_bswap_32, and
2334 target_bswap_64.
2335 (store_2ubyte_unaligned, store_4ubyte_unaligned,
2336 store_8ubyte_unaligned): Define using new macros.
2337
23382003-08-12 Ulrich Drepper <drepper@redhat.com>
2339
2340 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
2341 possibly unaligned memory. Support use of big endian machines.
2342
23432003-08-11 Ulrich Drepper <drepper@redhat.com>
2344
2345 * Moved to CVS archive.