blob: 90c78cb5d49168686d0debd720f850d5956c93c7 [file] [log] [blame]
Roland McGrath3b1b6512010-06-04 02:26:30 -070012010-06-04 Roland McGrath <roland@redhat.com>
2
3 * unstrip.c (copy_elided_sections): Bail if stripped file has more
4 sections than unstripped file, rather than getting confused later.
5
Roland McGrath7a5bed82010-06-01 13:44:00 -070062010-06-01 Roland McGrath <roland@redhat.com>
7
Roland McGrath7fac1ce2010-06-01 15:56:58 -07008 * readelf.c (dwarf_form_string): Handle DWARF 4 forms.
9 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc,
Roland McGrathc8a06732010-06-01 19:52:39 -070010 DW_FORM_sec_offset, DW_FORM_ref_sig8.
Roland McGrath7fac1ce2010-06-01 15:56:58 -070011
Roland McGrath7a5bed82010-06-01 13:44:00 -070012 * readelf.c (print_debug): Don't bail if libdw setup fails.
13 Suppress complaint if we only want .eh_frame anyway.
14
Ulrich Drepper173ade82010-05-28 07:39:49 -0700152010-05-28 Ulrich Drepper <drepper@redhat.com>
16
17 * readelf.c (attr_callback): Also print form information.
18
Roland McGrath12e3d1f2010-05-19 18:03:31 -0700192010-05-19 Roland McGrath <roland@redhat.com>
20
21 * addr2line.c (find_symbol): Short-circuit on empty name.
22 (handle_address): Handle SYMBOL with no +OFFSET.
23
Roland McGrath688f7fc2010-05-08 03:22:59 -0700242010-05-08 Roland McGrath <roland@redhat.com>
25
26 * readelf.c (print_ops): Take new arg OFFSET_SIZE.
27 Use that for DW_OP_call_ref, not ADDRSIZE.
28 (print_cfa_program): Update caller.
29 (struct attrcb_args): Add offset_size field.
30 (attr_callback): Use it for print_ops call.
31 (print_debug_info_section): Initialize it.
Roland McGrath50aa8d12010-06-01 11:22:36 -070032
Roland McGrath62b28b62010-04-14 11:54:06 -0700332010-04-14 Roland McGrath <roland@redhat.com>
34
35 * readelf.c (handle_core_item): Fix bitmask printing.
36
Roland McGrath3b495d82010-04-06 12:58:32 -0700372010-04-06 Roland McGrath <roland@redhat.com>
38
39 * ld.c (options): Fix some typos in messages.
40 * elflint.c (check_scn_group, check_group): Likewise.
41 * ldscript.y (add_id_list): Likewise.
42 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
43 before translated string containing a literal %.
44
Roland McGrath890081b2010-02-26 17:57:50 -0800452010-02-26 Roland McGrath <roland@redhat.com>
46
47 * readelf.c (process_file): Don't leak an fd in failure case.
48
Roland McGrathc2b26f12010-02-15 15:16:15 -0800492010-02-15 Roland McGrath <roland@redhat.com>
50
Roland McGrath22359e22010-02-15 15:57:03 -080051 * Makefile.am: Use config/eu.am for common stuff.
52
Roland McGrathc2b26f12010-02-15 15:16:15 -080053 * readelf.c (print_debug_frame_section): Add a cast to avoid sign
54 mismatch in comparison.
55
Roland McGrathf920fd52010-02-02 15:50:15 -0800562010-02-02 Roland McGrath <roland@redhat.com>
57
58 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
59 (read_encoded): Likewise.
60 (print_debug_frame_section): Check for bogus augmentation length.
61 For P augmentation, use read_encoded, print the encoding description,
62 and use hex for unsigned values.
63
Roland McGrathb337b1f2010-01-15 01:02:27 -0800642010-01-15 Roland McGrath <roland@redhat.com>
65
66 * ar.c: Include <sys/stat.h>.
67 * elflint.c: Likewise.
68 * readelf.c: Likewise.
69 * strip.c: Likewise.
70 * unstrip.c: Likewise
71
Roland McGrathbd733ca2010-01-07 20:11:42 -0800722010-01-07 Roland McGrath <roland@redhat.com>
73
Roland McGrath8111da02010-01-07 20:31:59 -080074 * readelf.c (print_ehdr): Handle PN_XNUM.
75 (phnum): New static variable.
76 (process_elf_file): Set it with elf_getphdrnum.
77 (print_phdr): Use phnum instead of EHDR->e_phnum.
78 (print_dynamic, handle_notes): Likewise.
79 (handle_relocs_rel, handle_relocs_rela): Likewise.
80
Roland McGrathbd733ca2010-01-07 20:11:42 -080081 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
82
83 * elflint.c (phnum): New static variable.
84 (check_elf_header): Set it, handling PN_XNUM.
85 Use that in place of EHDR->e_phnum throughout.
86 (check_symtab, check_reloc_shdr, check_dynamic): Likewise.
87 (unknown_dependency_p, check_sections, check_program_header): Likewise.
88
Roland McGrath019d9fb2010-01-05 13:36:07 -0800892010-01-05 Roland McGrath <roland@redhat.com>
90
91 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
92 DW_AT_GNU_template_name.
93
Roland McGrathe4061d02010-01-04 20:25:09 -0800942010-01-04 Roland McGrath <roland@redhat.com>
95
Roland McGrath0ccbbcd2010-01-04 21:59:07 -080096 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
97 (handle_core_note): Pass NHDR and NAME to ebl_core_note.
98 (handle_core_item): Handle .format of '\n' as \n-separated strings.
99
Roland McGrath2e79deb2010-01-04 20:36:10 -0800100 * readelf.c (implicit_debug_sections): New variable.
101 (parse_opt): Set it instead of print_debug_sections for -a.
102 OR them together for print_debug check.
103 (print_debug): OR them together for section check.
104
Roland McGratha7422be2010-01-04 20:29:33 -0800105 * readelf.c (options): Repartition into set implied by -a and others.
106 Correct -a text to match reality.
107
Roland McGrathe4061d02010-01-04 20:25:09 -0800108 * readelf.c (struct section_argument): Add bool member 'implicit'.
109 (parse_opt): Set it for -a cases, clear it for -x args.
110 (for_each_section_argument): Don't complain about a missing section by
111 name if it's implicit.
112
Roland McGrathefa64962009-11-16 01:50:58 -08001132009-11-16 Roland McGrath <roland@redhat.com>
114
115 * readelf.c (print_string_section): Punt SHT_NOBITS like empty
116 sections, just as dump_data_section already does.
117
Mark Wielaardc49d00a2009-09-21 16:47:07 -07001182009-09-21 Ulrich Drepper <drepper@redhat.com>
119
120 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be
121 set for .comment section.
122 Patch by Mark Wielaard <mjw@redhat.com>.
123
Roland McGrathfb33c672009-09-08 00:21:18 -07001242009-09-08 Roland McGrath <roland@redhat.com>
125
126 * ar.c (main): Fix typo in message format.
127
Roland McGrath2d13ea22009-08-21 03:16:32 -07001282009-08-21 Roland McGrath <roland@redhat.com>
129
130 * readelf.c (attr_callback): Use print_block only when we don't use
131 print_ops.
132
Roland McGrath536127f2009-08-14 13:10:09 -07001332009-08-14 Roland McGrath <roland@redhat.com>
134
135 * ar.c (do_oper_extract): Use pathconf instead of statfs.
136
Ulrich Drepper9ccf76a2009-08-01 10:07:24 -07001372009-08-01 Ulrich Drepper <drepper@redhat.com>
138
139 * debugpred.h: Add two most const.
140
Mark Wielaardbc1b92e2009-07-26 08:33:18 -07001412009-07-26 Mark Wielaard <mjw@redhat.com>
142
143 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
144
Mark Wielaard79178202009-07-25 12:44:46 -07001452009-07-25 Mark Wielaard <mjw@redhat.com>
146
147 * Makefile.am (addr2line_LDADD): Add $(libelf).
148
Roland McGrathbe4589d2009-07-24 16:23:12 -07001492009-07-24 Roland McGrath <roland@redhat.com>
150
151 * readelf.c (print_block): New function.
152 (print_ops): Use it.
153 (attr_callback): Use it for DW_FORM_block* forms.
154
Mark Wielaarddaf85b22009-07-24 15:49:51 -07001552009-07-20 Mark Wielaard <mjw@redhat.com>
156
157 * readelf.c (print_ops): Add handling of DW_OP_implicit_value
158 and DW_OP_stack_value.
159
Ulrich Drepper96d950e2009-07-14 10:42:01 -07001602009-07-14 Ulrich Drepper <drepper@redhat.com>
161
162 * elflint.c (check_elf_header): Allow Linux ABI.
163 (check_symtab): Handle STB_GNU_UNIQUE.
164
Mark Wielaardf735db12009-07-08 19:18:53 +02001652009-07-08 Mark Wielaard <mjw@redhat.com>
166
167 * readelf.c (attr_callback): Handle DW_Form constants for
168 DW_AT_data_member_location.
169
Roland McGrathdffc33d2009-07-06 16:06:41 -07001702009-07-06 Roland McGrath <roland@redhat.com>
171
172 * readelf.c (register_info): New function. Handle unknown register #s.
173 (print_cfa_program): Use it.
174 (handle_core_register, handle_core_registers): Likewise.
175
Roland McGrath5dbccdb2009-06-28 14:48:02 -07001762009-06-28 Roland McGrath <roland@redhat.com>
177
178 * readelf.c (print_address_names): New static variable.
179 (options, parse_opt): Grok -N/--numeric-addresses to clear it.
180 (format_dwarf_addr): Don't look up name if !print_address_names.
181
Ulrich Drepperf1894932009-06-13 15:55:42 -07001822009-06-13 Ulrich Drepper <drepper@redhat.com>
183
184 * ldgeneric.c: Don't use deprecated libelf functions.
185 * nm.c: Likewise.
186 * objdump.c: Likewise.
187 * readelf.c: Likewise.
188 * size.c: Likewise.
189 * strip.c: Likewise.
190 * unstrip.c: Likewise.
191 * ld.h: Fix up comment.
192
Ulrich Drepperb47d2902009-06-01 07:38:32 -07001932009-06-01 Ulrich Drepper <drepper@redhat.com>
194
195 * readelf.c (print_relocs): Expect ELF header argument and pass on
196 to handle_relocs_rel* functions. Adjust caller.
197 (handle_relocs_rel): Add ELF header argument. Add special case for
198 the IRELATIVE relocations in statically linked executables.
199 (handle_relocs_rela): Likewise.
200
Roland McGrathdb19f0b2009-05-07 18:44:27 -07002012009-04-29 Ulrich Drepper <drepper@redhat.com>
202
203 * elflint.c (check_symtab): Add tests of st_other field.
204
Ulrich Drepperaab90f92009-04-23 07:44:36 -07002052009-04-23 Ulrich Drepper <drepper@redhat.com>
206
207 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
208
Roland McGrathd86e1832009-04-20 00:49:33 -07002092009-04-20 Roland McGrath <roland@redhat.com>
210
Roland McGrath8a592412009-04-20 01:20:44 -0700211 * addr2line.c (print_dwarf_function): Honor -s and -A for file names
212 of inline call sites.
213
Roland McGrathd86e1832009-04-20 00:49:33 -0700214 * addr2line.c (just_section): New variable.
215 (adjust_to_section): New function, broken out of ...
216 (handle_address): ... here.
217 (options, parse_opt): Add -j/--section=NAME to set it.
218
Roland McGrath2fb90512009-04-15 14:47:13 -07002192009-04-15 Roland McGrath <roland@redhat.com>
220
221 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
222 64-bit format header, DW_CIE_ID_32 in 32-bit format header.
223
Roland McGrath04a14162009-04-14 01:02:17 -07002242009-04-14 Roland McGrath <roland@redhat.com>
225
Roland McGratheb9ba472009-04-14 18:44:45 -0700226 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
227 like SHT_GNU_ATTRIBUTES.
228
Roland McGrath94f43832009-04-14 04:39:32 -0700229 * readelf.c (handle_core_registers): Fix error message.
230
Roland McGrath04a14162009-04-14 01:02:17 -0700231 * strip.c (handle_elf: check_preserved): Don't note any change when
232 .debug_data is already filled from a previous pass.
233
Ulrich Drepper411cdb22009-02-05 22:04:26 -08002342009-02-05 Ulrich Drepper <drepper@redhat.com>
235
Ulrich Drepper51b3f472009-02-05 22:10:39 -0800236 * objdump.c (show_relocs_x): Minor cleanups.
237
Ulrich Drepper411cdb22009-02-05 22:04:26 -0800238 * readelf.c (print_cfa_program): Correct a few labels.
Ulrich Drepper973a9c72009-02-05 22:56:39 -0800239 Print first DW_CFA_expression and DW_CFA_val_expression parameter
240 as register.
Ulrich Drepper411cdb22009-02-05 22:04:26 -0800241
Ulrich Drepper5ee720c2009-02-01 16:18:18 -08002422009-02-01 Ulrich Drepper <drepper@redhat.com>
243
Ulrich Drepper95fa15e2009-02-01 19:06:10 -0800244 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
245 into ...
246 (show_relocs_x): ...here. New function.
Ulrich Drepperf44f0ce2009-02-01 21:31:26 -0800247 (show_relocs): Better spacing in output.
Ulrich Drepper95fa15e2009-02-01 19:06:10 -0800248
Ulrich Dreppercbb422e2009-02-01 18:18:55 -0800249 * objdump.c (show_relocs_rela): Show offsets as signed values.
250
Ulrich Drepper5ee720c2009-02-01 16:18:18 -0800251 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
252 Improve some error messages.
253 Use program_invocation_short_name instead of AR macro.
254 * Makefile.am (CFLAGS_ar): Remove.
255 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
256 * objdump.c (parse_opt): Likewise.
257 * readelf.c (parse_opt): Likewise.
258
Roland McGrath51f01282009-01-27 17:08:03 -08002592009-01-27 Roland McGrath <roland@redhat.com>
260
261 * readelf.c (print_ops): Notice short length, don't overrun buffer
262 (still need to fix LEB128).
263
264 * readelf.c (print_ops): Fix DW_OP_call[24] decoding.
265
266 * readelf.c (print_ops): Print (empty)\n when LEN == 0.
267
Ulrich Drepper62c46532009-01-24 17:01:08 -08002682009-01-24 Ulrich Drepper <drepper@redhat.com>
269
270 * readelf.c (print_debug_frame_section): Fix computation of vma_base
271 for PC-relative mode.
272
Ulrich Drepperd7285e12009-01-23 16:10:44 -08002732009-01-23 Ulrich Drepper <drepper@redhat.com>
274
Ulrich Drepperccccab02009-01-23 16:32:21 -0800275 * size.c (process_file): When handling archive, close file descriptor
276 here. For unknown file format also close file descriptor.
277 (handle_ar): Don't close file descriptor here.
278
Ulrich Drepperd7285e12009-01-23 16:10:44 -0800279 * readelf.c (parse_opt): Move code to add to dump_data_sections and
280 string_sections list in local function add_dump_section. Adjust 'x'
281 key handling. For 'a' key add .strtab, .dynstr, and .comment section
282 to string_sections list.
283
Roland McGrathe9de9b42009-01-22 13:05:40 -08002842009-01-22 Roland McGrath <roland@redhat.com>
285
Roland McGrath9a847e12009-01-22 19:55:00 -0800286 * readelf.c (print_phdr): Don't print section mapping when no sections.
287
Roland McGrathd759aa62009-01-22 19:17:07 -0800288 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
289
Roland McGrathcabeeee2009-01-22 13:17:45 -0800290 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
291 and reset it only for the 'true' cases.
292
293 * Makefile.am (addr2line_no_Wformat): New variable.
294
Roland McGrathe9de9b42009-01-22 13:05:40 -0800295 * readelf.c (print_debug_frame_section): Use t instead of j formats
296 for ptrdiff_t OFFSET.
297
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -08002982009-01-21 Ulrich Drepper <drepper@redhat.com>
299
300 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
Ulrich Drepperf93ee8d2009-01-21 15:02:03 -0800301 test. Handle debuginfo files.
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -0800302 (check_exception_data): First sanity test.
303
Ulrich Drepperfdc93e12009-01-17 11:47:10 -08003042009-01-17 Ulrich Drepper <drepper@redhat.com>
305
Ulrich Drepper935edde2009-01-17 16:06:42 -0800306 * readelf.c (print_debug_exception_table): Show target of ar_disp
307 field.
308
309 * elflint.c (check_program_header): Add most consistency checks for
310 PT_GNU_EH_FRAME entry.
311
Ulrich Drepperfdc93e12009-01-17 11:47:10 -0800312 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
313 ARGP_PROGRAM_BUG_ADDRESS_DEF.
314 * ar.c: Likewise.
315 * elfcmp.c: Likewise.
316 * elflint.c: Likewise.
317 * findtextrel.c: Likewise.
318 * ld.c: Likewise.
319 * nm.c: Likewise.
320 * objdump.c: Likewise.
321 * ranlib.c: Likewise.
322 * readelf.c: Likewise.
Ulrich Drepper935edde2009-01-17 16:06:42 -0800323
Ulrich Drepperfdc93e12009-01-17 11:47:10 -0800324 * size.c: Likewise.
325 * strings.c: Likewise.
326 * strip.c: Likewise.
327 * unstrip.c: Likewise.
328
Ulrich Drepperb006fbf2009-01-16 03:08:25 -08003292009-01-16 Ulrich Drepper <drepper@redhat.com>
330
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -0800331 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
332 matches .eh_frame_hdr section, if it is available. Also check that
333 the segment is allocated, not writable, not executable.
334
Ulrich Drepperb006fbf2009-01-16 03:08:25 -0800335 * readelf.c: Add -e option. Dump exception and unwind related
336 sections. Add -e to -a.
Ulrich Drepper05d2b202009-01-16 17:58:54 -0800337 (print_encoding_base): Handle DW_EH_PE_omit.
Ulrich Drepperb006fbf2009-01-16 03:08:25 -0800338 (print_debug_exception_table): Beginning of support.
339 (print_debug): Hook up print_debug_exception_table for
340 .gcc_except_table sections.
341
342 * readelf.c (print_debug_frame_section): Some fixes for last change.
343
Ulrich Drepper351bf202009-01-15 20:18:40 -08003442009-01-15 Ulrich Drepper <drepper@redhat.com>
345
346 * readelf.c (print_encoding): Now a toplevel function.
347 (print_relinfo): Likewise.
348 (print_encoding_base): Broken out of print_debug_frame_section.
349 (print_debug_frame_section): Print different header for .eh_frame
350 sections. Fix recognition of matching CIEs in .debug_frame sections.
351 Print absolute offset for PC-relative FDE locations. Don't print
352 table header for FDEs if the table is empty.
353 (read_encoded): New function.
354 (print_debug_frame_hdr_section): New function.
355 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
356 sections.
357
358 * readelf.c (handle_relocs_rel): Print section number.
359 (print_debug_abbrev_section): Likewise.
360 (print_debug_aranges_section): Likewise.
361 (print_debug_ranges_section): Likewise.
362 (print_debug_info_section): Likewise.
363 (print_debug_line_section): Likewise.
364 (print_debug_loc_section): Likewise.
365 (print_debug_macinfo_section): Likewise.
366 (print_debug_pubnames_section): Likewise.
367 (print_debug_str_section): Likewise.
368
Ulrich Drepper8b394632009-01-10 18:29:56 -08003692009-01-10 Ulrich Drepper <drepper@redhat.com>
370
371 * strings.c (read_block): Fix typo in error message string.
372
Ulrich Drepper87cf5832009-01-07 20:39:21 -08003732009-01-07 Ulrich Drepper <drepper@redhat.com>
374
375 * ld.c (ld_new_searchdir): Fix adding to search path list.
376
Ulrich Drepperac194d02009-01-06 00:30:01 -08003772009-01-06 Ulrich Drepper <drepper@redhat.com>
378
379 * readelf.c: Implement call frame debug section dumping.
Roland McGrathe9243e62009-01-21 18:54:20 -0800380
Roland McGrath3614d992009-01-05 18:05:32 -08003812009-01-05 Roland McGrath <roland@redhat.com>
382
383 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
384 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800385
Ulrich Drepper44173ed2009-01-01 19:00:41 -08003862009-01-01 Ulrich Drepper <drepper@redhat.com>
387
388 * addr2line.c: Update copyright year.
389 * ar.c: Likewise.
390 * elfcmp.c: Likewise.
391 * elflint.c: Likewise.
392 * findtextrel.c: Likewise.
393 * ld.c: Likewise.
394 * nm.c: Likewise.
395 * objdump.c: Likewise.
396 * ranlib.c: Likewise.
397 * readelf.c: Likewise.
398 * size.c: Likewise.
399 * strings.c: Likewise.
400 * strip.c: Likewise.
401 * unstrip.c: Likewise.
402
Roland McGrath468fe4d2008-12-11 21:00:12 -08004032008-12-11 Roland McGrath <roland@redhat.com>
404
405 * nm.c (sym_name): New function.
406 (show_symbols_sysv): Use it in place of elf_strptr.
407 (show_symbols_bsd, show_symbols_posix): Likewise.
408 Fixes RHBZ#476136.
409
410 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
411 elf_strptr fails.
412
Roland McGratha845f682008-12-03 03:41:58 +00004132008-12-02 Roland McGrath <roland@redhat.com>
414
415 * readelf.c (count_dwflmod, process_file): Don't presume encoding of
416 nonzero OFFSET argument to dwfl_getmodules.
417
Roland McGrath1d8bb252008-08-07 08:39:41 +00004182008-08-07 Roland McGrath <roland@redhat.com>
419
420 * addr2line.c (main): Pass string to handle_address.
421 (see_one_module): New function, subroutine of handle_address.
422 (find_symbol): Likewise.
423 (handle_address): Take string argument rather than address.
424 Convert plain number, or handle strings like "(section)+offset"
425 or "symbol+offset".
426
4272008-08-01 Roland McGrath <roland@redhat.com>
428
429 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
430 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
431
432 * readelf.c (convert): Take new argument SIZE.
433 (handle_core_register, handle_core_item): Update callers.
434 (handle_core_item): Take new arg REPEATED_SIZE.
435 (handle_core_items): Special case for a singleton item,
436 let handle_core_item handle repeats if it wants to.
437
438 * readelf.c (handle_core_items): Give abridged output
439 for identical groups repeated more than twice.
440
4412008-07-04 Roland McGrath <roland@redhat.com>
442
443 * readelf.c (handle_core_items): Handle ELF_T_ADDR.
444
Roland McGrath521c47d2008-04-11 07:01:58 +00004452008-04-10 Roland McGrath <roland@redhat.com>
446
447 * strip.c (handle_elf): Don't keep sections that kept symbol tables
448 refer to. Instead, just be sure to preserve the original symbol
449 table in the debug file so those symbols go with their sections and
450 can be elided from the stripped version of the symbol table.
451
452 * strip.c (handle_elf): When a discarded section kept in the debug
453 file refers to a nondiscard section via sh_link/sh_info, preserve
454 that nondiscarded section unmodified in the debug file as well.
455 Skip adjustment of discarded sections symbol table references when
456 that symbol table is copied in this way.
457
458 * elflint.c (check_symtab): Don't crash from missing symbol names
459 after diagnosing bogus strtab.
460
461 * strip.c (handle_elf): Cosmetic cleanup in special section contents
462 adjustment for symtab changes.
463
Roland McGrath13b69602008-04-01 02:30:05 +00004642008-03-31 Roland McGrath <roland@redhat.com>
465
466 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
467 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook
468 excuse a special section.
469
4702008-03-27 Roland McGrath <roland@redhat.com>
471
472 * elflint.c (check_sections): Check that executability and writability
473 of sections is reflected in segment p_flags.
474
Roland McGrathd11f9cb2008-03-26 20:51:59 +00004752008-03-26 Roland McGrath <roland@redhat.com>
476
477 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
478 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
479 is valid in RELRO.
480
Roland McGrath47c5c352008-02-29 10:17:16 +00004812008-02-29 Roland McGrath <roland@redhat.com>
482
483 * readelf.c (print_attributes): Add a cast.
484 * elflint.c (check_attributes): Likewise.
485
486 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
487 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
488 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
489
Ulrich Drepper834de6f2008-02-23 06:50:01 +00004902008-02-03 Ulrich Drepper <drepper@redhat.com>
491
492 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
493 when linked into executable.
494 (elf_i386_create_relocations): Likewise.
495
Roland McGrath059c83e2008-02-21 06:19:39 +00004962008-02-20 Roland McGrath <roland@redhat.com>
497
498 * readelf.c (print_attributes): New function.
499 (process_elf_file): Call it under -A.
500
501 * elflint.c (check_attributes): Implement it for real.
502
5032008-02-19 Roland McGrath <roland@redhat.com>
504
505 * elflint.c (special_sections): Handle .gnu.attributes section.
506 (check_sections): Likewise.
507 (check_attributes): New function.
508
5092008-02-10 Roland McGrath <roland@redhat.com>
510
511 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
512 sections and ET_REL files.
513
Ulrich Drepper712d78e2008-02-02 10:01:53 +00005142008-02-02 Ulrich Drepper <drepper@redhat.com>
515
516 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
517 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
518 and R_386_TLS_LE.
519 (elf_i386_create_relocations): Likewise.
520 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
521 elements.
522 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
523 (ld_generic_create_outfile): Add PT_TLS entry to program header.
524 Fix generation of PT_GNU_STACK entry.
525
Ulrich Drepperc54785a2008-02-01 18:05:21 +00005262008-02-01 Ulrich Drepper <drepper@redhat.com>
527
Ulrich Drepper7cd1bf72008-02-01 23:52:59 +0000528 * ld.c (replace_args): Prevent loop over replacements if the parameter
529 is only two characters long.
530
Ulrich Drepperc54785a2008-02-01 18:05:21 +0000531 * ld.c: Recognize sha1 argument for --build-id parameter.
532 * ldgeneric.c (create_build_id_section): Handle sha1.
533 (compute_hash_sum): New function. Broken out of compute_build_id.
534 Take hash function and context as parameters.
535 (compute_build_id): Use compute_hash_sum for md5 and the new sha1
536 implementation.
537
Ulrich Drepper89759c72008-01-31 19:44:12 +00005382008-01-31 Ulrich Drepper <drepper@redhat.com>
539
540 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
541 * ld.c: Recognize --build-id command line parameter.
542 * ld.h: Define scn_dot_note_gnu_build_id.
543 (struct ld_state): Add build_id and buildidscnidx elements.
544 * ldgeneric.c: Implement --build-id command line parameter.
545 * ldlex.l (ID): Recognize - as valid character after the first one.
546
Ulrich Drepper5530ec52008-01-29 10:42:07 +00005472008-01-29 Ulrich Drepper <drepper@redhat.com>
548
Ulrich Drepperb61c4cc2008-01-30 07:16:28 +0000549 * ld.c (replace_args): New function.
550 (main): Use it to rewrite old-style parameters.
551
Ulrich Dreppered9b6cb2008-01-30 06:33:33 +0000552 * elf32-i386.script: Add .gnu.hash section.
553 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
554 (fillin_special_symbol): Initialize st_size.
555 (sortfct_hashval): New function.
556 (create_gnu_hash): New function.
557 (create_hash): New function.
558 (ld_generic_create_outfile): Use the new functions to create the
559 hash tables.
560
Ulrich Drepper5530ec52008-01-29 10:42:07 +0000561 * elflint.c (check_gnu_hash): Fix index value printed in error message.
562
Ulrich Drepper0e864dd2008-01-25 00:18:42 +00005632008-01-24 Ulrich Drepper <drepper@redhat.com>
564
565 * elflint.c (check_group): Check that signature symbol for section
566 group is not an empty string.
567 * ldgeneric.c: Remove magic assignment of indeces in the dynsym
568 section. Start implementation of --hash-style.
569 * i386_ld.c: Likewise.
570 * ld.c: Recognize --hash-style.
571 * ld.h (struct scninfo): Add comdat_group.
572 Add additional parameter to finalize_plt callback.
573
Ulrich Drepper5449a6b2008-01-22 15:49:39 +00005742008-01-22 Ulrich Drepper <drepper@redhat.com>
575
576 * ld.h (struct callbacks): Add initialize_gotplt.
577 (struct scnhead): Add scn_dot_gotplt.
578 (struct ld_state): Add gotpltscnidx.
579 * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
580 (elf_i386_initialize_pltrel): Likewise.
581 (elf_i386_initialize_got): There is now a separate .got.plt, so
582 don't do the PLT-related work here. Initialize d_type.
583 (elf_i386_initialize_gotplt): New function.
584 (elf_i386_plt0): Use ud2a after indirect jump.
585 (elf_i386_pic_plt0_entry): Likewise.
586 (elf_i386_finalize_plt): Reference now .got.plt.
587 (elf_i386_count_relocations): For GOT entries which need no relocation
588 don't bump nrel_got.
589 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32
590 handling for split .got/.got.plt.
591 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
592 * elf32-i386.script: Sort sections for security. There are no .got
593 input sections. Add .got.plt.
594 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
595 (ld_generic_create_outfile): Initialize .got.plt section.
596 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
597
Ulrich Drepperd9488292008-01-20 16:43:15 +00005982008-01-19 Ulrich Drepper <drepper@redhat.com>
599
600 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
601 symbols are not carried over into statically linked output files.
602 Add dummy entries for more TLS relocations.
603
604 * ld.c (options): Add long names for -( and -).
605
606 * ldgeneric.c (check_definition): For newly found definitions don't
607 mark section as used if symbol is absolute.
608 (extract_from_archive): Only assign archive sequence number the first
609 time the archive is handled. Update ld_state.last_archive_used
610 if any symbol was used. Remove nround variable.
611 (file_process2): When using symbol from an archive, update
612 ld_state.group_start_archive, ld_state.archives, and
613 ld_state.tailarchives.
614 (ld_generic_file_process): If group is not handled anymore, after
615 freeing ELF handles for the archives, clear ld_state.archives and
616 *nextp. Fix wrong logic in recognizing first iteration of group
617 loop. When clearing flags, also clear ld_state.group_start_archive.
618
Ulrich Drepper5eee1222008-01-11 10:12:18 +00006192008-01-11 Ulrich Drepper <drepper@redhat.com>
620
621 * objdump.c (show_disasm): Adjust disassembler format string for
622 removal of %e.
623
Ulrich Dreppere219f1c2008-01-09 05:49:49 +00006242008-01-04 Roland McGrath <roland@redhat.com>
625
Roland McGrath059c83e2008-02-21 06:19:39 +0000626 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
627 a size greater than the items cover means multiple sets of items.
628 (handle_core_note): Update caller.
629
6302008-01-04 Roland McGrath <roland@redhat.com>
631
Ulrich Dreppere219f1c2008-01-09 05:49:49 +0000632 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
633
6342008-01-03 Roland McGrath <roland@redhat.com>
635
636 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
637
638 * elflint.c (check_dynamic): Remove duplicate initializer.
639
Ulrich Drepperad024af2008-01-02 17:42:52 +00006402008-01-02 Ulrich Drepper <drepper@redhat.com>
641
642 * addr2line.c: Update copyright year.
643 * ar.c: Likewise.
644 * elfcmp.c: Likewise.
645 * elflint.c: Likewise.
646 * findtextrel.c: Likewise.
647 * ld.c: Likewise.
648 * nm.c: Likewise.
649 * objdump.c: Likewise.
650 * ranlib.c: Likewise.
651 * readelf.c: Likewise.
652 * size.c: Likewise.
653 * strings.c: Likewise.
654 * strip.c: Likewise.
655 * unstrip.c: Likewise.
656
Ulrich Drepper3cbdd382008-01-02 17:44:39 +00006572007-12-30 Ulrich Drepper <drepper@redhat.com>
658
659 * objdump (show_disasm): Use %e after third parameter.
660
6612007-12-21 Ulrich Drepper <drepper@redhat.com>
662
663 * strip.c: Fix wrong parenthesis in a few branch predictions.
664 * strings.c: Likewise.
665
6662007-12-20 Ulrich Drepper <drepper@redhat.com>
667
668 * Makefile.am (DEFS): Add DEBUGPRED.
669 * addr2line.c: Include debugpred.h.
670 * ar.c: Likewise.
671 * elfcmp.c: Likewise.
672 * elflint.c: Likewise.
673 * findtextrel.c: Likewise.
674 * nm.c: Likewise.
675 * objdump.c: Likewise.
676 * ranlib.c: Likewise.
677 * readelf.c: Likewise.
678 * size.c: Likewise.
679 * strings.c: Likewise.
680 * strip.c: Likewise.
681 * unstrip.c: Likewise.
682 * debugpred.h: New file.
683
684 * readelf.c (handle_relocs_rel): Use elf_scnshndx.
685 (handle_relocs_rela): Likewise.
686
687 * readelf.c: Add lots of likely/unlikely.
688
689 * elflint.c: Minor cleanups.
690
Roland McGrath1a2e8f42007-12-15 23:39:34 +00006912007-11-19 Roland McGrath <roland@redhat.com>
692
693 * readelf.c (print_ops): Handle all bad op codes gracefully.
694 Print their numbers instead of just ???.
695
Roland McGrath07a696e2007-11-09 22:44:26 +00006962007-11-09 Roland McGrath <roland@redhat.com>
697
698 * readelf.c (attr_callback): Handle DW_AT_data_location.
Roland McGrath1a2e8f42007-12-15 23:39:34 +0000699 Handle block forms to mean a DWARF expression for DW_AT_allocated,
700 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
701 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
702 DW_AT_upper_bound.
Roland McGrath07a696e2007-11-09 22:44:26 +0000703
Roland McGrathe4c22ea2007-10-23 13:07:39 +00007042007-10-20 Roland McGrath <roland@redhat.com>
705
706 * unstrip.c (options): Update -R description.
707 (struct symbol): Put symbol details a union with a size_t pointer
708 `duplicate'.
709 (compare_symbols_output): Use null ->name as marker for discard
710 symbols, not zero *->map.
711 (copy_elided_sections): Record forwarding pointers for discarded
712 duplicates and fill SYMNDX_MAP elements through them.
713
714 * readelf.c (process_file): Set offline_next_address to 0 at start.
715 (struct process_dwflmod_args): New type.
716 (process_dwflmod): Take args in it, pass fd to process_elf_file.
717 (process_file): Update caller; dup FD for passing to libdwfl.
718 (process_elf_file): Take new arg FD. For ET_REL file when
719 displaying data affected by libdwfl relocation, open a new Elf handle.
720
7212007-10-17 Roland McGrath <roland@redhat.com>
722
723 * readelf.c (print_debug_line_section): For invalid data inside a
724 unit with plausible length, keep printing at the next unit boundary.
725
726 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
727
7282007-10-16 Roland McGrath <roland@redhat.com>
729
730 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
731
Ulrich Drepperb597dfa2007-10-16 05:21:27 +00007322007-10-15 Roland McGrath <roland@redhat.com>
733
734 * make-debug-archive.in: New file.
735 * Makefile.am (EXTRA_DIST): Add it.
736 (make-debug-archive): New target.
737 (bin_SCRIPTS, CLEANFILES): Add it.
738
7392007-10-10 Roland McGrath <roland@redhat.com>
740
741 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
742 Use it to check MERGE|STRINGS for .debug_str.
743 (check_sections): Handle exact_or_gnuld.
744
7452007-10-08 Roland McGrath <roland@redhat.com>
746
747 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
748 64-bit struct timeval with 32-bit tv_usec.
749
7502007-10-07 Roland McGrath <roland@redhat.com>
751
752 * readelf.c (check_archive_index): New function.
753 (process_file): Call it. Change signature to take only fd and name.
754 Use libdwfl to open the file, then iterate on its modules (multiple
755 for an archive) to print file name and call process_elf_file.
756 (main): Update caller. Let process_file do elf_begin.
757 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
758 (process_elf_file): Take only Dwfl_Module * argument.
759 Don't print the file name here.
760 (print_debug_*_section): Take Dwfl_Module * argument.
761 (print_debug): Likewise. Update caller.
762 (format_dwarf_addr): New function.
763 (print_debug_ranges_section): Use it.
764 (attr_callback): Likewise.
765 (print_debug_line_section, print_debug_loc_section): Likewise.
766
767 * readelf.c (print_debug_ranges_section): Translate all strings.
768 (print_debug_loc_section): Likewise.
769
770 * unstrip.c (copy_elided_sections): Initialize SEC.
771
772 * ar.c (do_oper_insert): Put trailing / on short names.
773
774 * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
775
776 * arlib2.c (arlib_add_long_name): Adjust for header size.
777
778 * arlib.c (arlib_finalize): Pad long name table to keep size even.
779
780 * ar.c (do_oper_insert): Use write_retry for padding write.
781
782 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
783 Unconditionally set FOUND[CNT]->elf when setting ->mem.
784 (remember_long_name): New function.
785 (do_oper_insert): Call it. Correctly use length of basename,
786 not original name. Don't store long name twice for new member.
787
7882007-10-06 Roland McGrath <roland@redhat.com>
789
790 * elflint.c (check_note): Skip empty segment.
791 (check_note_section): Skip empty section.
792
793 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
794 (handle_output_dir_module, handle_implicit_modules): Pass it down.
795 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
796 (compare_alloc_sections): Take new arg REL, ignore address if true.
797 (compare_sections): Likewise, pass it down.
798 (compare_sections_rel, compare_sections_nonrel): New functions.
799 (find_alloc_sections_prelink, copy_elided_sections): Use them
800 instead of compare_sections.
801 (sections_match): New function, broken out of ...
802 (find_alloc_section): ... here.
803 (copy_elided_sections): Reorganize section match-up logic.
804 Use sections_match for SHF_ALLOC in ET_REL.
805 For ET_REL, let the nonzero sh_addr from the debug file dominate.
806
807 * unstrip.c (add_new_section_symbols): Take new arg REL.
808 When true, do not update section symbol values.
809 (collect_symbols): Likewise. Update section symbols with address
810 of chosen output section, not original section.
811 (check_symtab_section_symbols, copy_elided_sections): Update callers.
812
813 * unstrip.c (compare_alloc_sections): At the same address, preserve
814 original section order.
815
816 * elflint.c (special_sections): Don't require MERGE|STRINGS for
817 .debug_str, it didn't always have them with older tools.
818
819 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
820
8212007-10-05 Roland McGrath <roland@redhat.com>
822
823 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
824 ET_REL file.
825
826 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
827 SHN_UNDEF as "bad section". Use shndx value in messages.
828
829 * elflint.c (special_sections): Add ".debug_str". Decrement namelen
830 for ".debug" so it matches as a prefix.
831 (IS_KNOWN_SPECIAL): New macro.
832 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS
833 type even under -d, for a .debug* or .shstrtab section.
834
835 * readelf.c (print_ops): Use hex for address operand.
836
8372007-10-04 Roland McGrath <roland@redhat.com>
838
839 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
840 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for
841 sections mapped to SHN_UNDEF.
842
Ulrich Drepper3fc3d7b2007-10-04 18:40:28 +00008432007-10-04 Ulrich Drepper <drepper@redhat.com>
844
845 * readelf.c (dump_archive_index): Avoid warning about uninitialized
846 variable with older glibc versions.
847 Add some branch prediction.
848
Roland McGrath59ea7f32007-10-04 08:50:09 +00008492007-10-04 Roland McGrath <roland@redhat.com>
850
851 * readelf.c (print_archive_index): New variable.
852 (options, parse_opt): Accept -c/--archive-index to set it.
853 (dump_archive_index): New function.
854 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
855 Call dump_archive_index on archives if set.
856 (main): Update caller.
857 (any_control_option): Give it file scope, moved out of ...
858 (parse_opt): ... here.
859
8602007-10-03 Roland McGrath <roland@redhat.com>
861
862 * unstrip.c (struct arg_info): Add `list' flag.
863 (options, parse_opt): Grok -n/--list to set it.
864 (list_module): New function.
865 (handle_implicit_modules): Call it under -n.
866
867 * elflint.c (check_note_section): New function.
868 (check_sections): Call it for SHT_NOTE.
869
870 * readelf.c (handle_notes): Use sections when available.
871
872 * elflint.c (check_note_data): New function, broken out of ...
873 (check_note): ... here. Call it and elf_getdata_rawchunk.
874
875 * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
876 Use elf_getdata_rawchunk and gelf_getauxv.
877 (handle_notes_data): New function, broken out of ...
878 (handle_notes): ... here. Call it and elf_getdata_rawchunk.
879
Roland McGrath241ac022007-10-01 18:21:46 +00008802007-10-01 Roland McGrath <roland@redhat.com>
881
Roland McGrathac0a16c2007-10-01 18:50:35 +0000882 * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
883
Roland McGrath241ac022007-10-01 18:21:46 +0000884 * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
885
Roland McGrathc76f0b02007-09-27 07:31:33 +00008862007-09-10 Roland McGrath <roland@redhat.com>
887
888 * readelf.c (options): Give -p optional argument, alias --string-dump.
889 (string_sections, string_sections_tail): New static variables.
890 (parse_opt): Set them when -p has an argument.
891 (print_string_section): New function, broken out of ...
892 (print_strings): ... here. Call it.
893 (dump_data_section): New function, broken out of ...
894 (dump_data): ... here. Call it.
895 (for_each_section_argument): New function, broken out of ...
896 (dump_data): ... here. Call it.
897 (dump_strings): New function.
898
8992007-08-31 Roland McGrath <roland@redhat.com>
900
901 * readelf.c (print_strings): Typo fix.
902
Roland McGrathcb6d8652007-08-23 08:10:54 +00009032007-08-23 Roland McGrath <roland@redhat.com>
904
905 * readelf.c (printf_with_wrap): Function removed.
906 (REGISTER_WRAP_COLUMN): New macro.
907 (handle_core_register): Use print_core_item instead.
908 (struct register_info): New type.
909 (compare_registers, compare_register_sets): New functions.
910 (register_bitpos, compare_sets_by_info): New functions.
911 (handle_core_registers): Use those to segregate and sort registers
912 for display.
913
914 * readelf.c (ITEM_WRAP_COLUMN): New macro.
915 (print_core_item): New function.
916 (handle_core_item): Use it instead of printf_with_wrap.
917 (compare_core_items, compare_core_item_groups): New functions.
918 (handle_core_items): Use them. Sort by group and force line breaks
919 between groups.
920
921 * readelf.c (handle_core_registers, handle_core_items): New functions,
922 broken out of ...
923 (handle_core_note): ... here. Call them.
924
9252007-08-22 Roland McGrath <roland@redhat.com>
926
927 * unstrip.c (new_shstrtab): New function, broken out of ...
928 (copy_elided_sections): ... here.
929
9302007-08-20 Roland McGrath <roland@redhat.com>
931
932 Avoid local function trampolines in nm binary.
933 * nm.c (sort_by_address): Move to a static function instead of local
934 inside show_symbols.
935 (sort_by_name_strtab): New static variable.
936 (sort_by_name): Use it. Move to a static function instead of local
937 inside show_symbols.
938 (show_symbols): Set sort_by_name_strtab.
939
9402007-08-19 Roland McGrath <roland@redhat.com>
941
942 * readelf.c (handle_auxv_note): New function.
943 (handle_notes): Call it.
944
945 * readelf.c (printf_with_wrap, convert): New functions.
946 (handle_core_item, (handle_core_register): New functions.
947 (handle_notes): Call those with details from ebl_core_note.
948
Roland McGrath099dd522007-08-13 22:58:36 +00009492007-08-12 Roland McGrath <roland@redhat.com>
950
951 * elflint.c (check_note): Accept type 0 with name "Linux".
952
953 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
954
955 * elflint.c (section_flags_string): Return "none" for 0, not "".
956
Roland McGrathd8221722007-08-11 21:18:09 +00009572007-08-11 Roland McGrath <roland@redhat.com>
958
959 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
960
Ulrich Drepperc98bcc72007-08-04 17:06:14 +00009612007-08-04 Ulrich Drepper <drepper@redhat.com>
962
963 * readelf.c (hex_dump): Use isprint to determine whether to print
964 character itself or full stop character.
965 (dump_data): No need to check endp for NULL after strtol call.
966
Roland McGrath60fc84c2007-08-03 21:59:15 +00009672007-08-03 Roland McGrath <roland@redhat.com>
968
969 * readelf.c (print_string_sections): New variable.
970 (options, parse_opt): Handle --strings/-p to set it.
971 (print_strings): New function.
972 (process_elf_file): Call it under -p.
973
974 * readelf.c (options): Add hidden aliases --segments, --sections,
975 as taken by binutils readelf.
976
9772007-08-01 Roland McGrath <roland@redhat.com>
978
979 * readelf.c (dump_data_sections, dump_data_sections_tail):
980 New variables.
981 (options, parse_opt): Handle --hex-dump/-x, set them.
982 (hex_dump): New function.
983 (dump_data): New function, call it.
984 (process_elf_file): Call it.
985
9862007-07-25 Roland McGrath <roland@redhat.com>
987
988 * addr2line.c (show_symbols): New variable.
989 (print_addrsym): New function.
990 (handle_address): Call it.
991 (options, parse_opt): Handle -S/--symbols.
992
Ulrich Drepperb0243862007-06-06 00:09:36 +00009932007-06-05 Ulrich Drepper <drepper@redhat.com>
994
995 * addr2line.c: Update for latest autoconf header.
996 * ar.c: Likewise.
997 * elfcmp.c: Likewise.
998 * elflint.c: Likewise.
999 * findtextrel.c: Likewise.
1000 * ld.c: Likewise.
1001 * ldgeneric.c: Likewise.
1002 * nm.c: Likewise.
1003 * objdump.c: Likewise.
1004 * ranlib.c: Likewise.
1005 * readelf.c: Likewise.
1006 * size.c: Likewise.
1007 * strings.c: Likewise.
1008 * strip.c: Likewise.
1009 * unstrip.c: Likewise.
1010
Roland McGrath9aa8ef72007-05-18 08:59:43 +000010112007-05-18 Roland McGrath <roland@redhat.com>
1012
1013 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
1014 stripped file, so as not to duplicate a section copied in both.
1015
1016 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
1017
10182007-05-17 Roland McGrath <roland@redhat.com>
1019
1020 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
1021
1022 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
1023
1024 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
1025 call make_directories here.
1026 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
1027 (handle_dwfl_module): Likewise.
1028 (handle_implicit_modules): Update callers.
1029 (handle_output_dir_module): Likewise. Don't do make_directories here.
1030
1031 * unstrip.c (get_section_name): New function, broken out of ...
1032 (copy_elided_sections): here. Update callers.
1033 (find_alloc_section): Broken out of ...
1034 (copy_elided_sections): ... here. Update caller.
1035 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
1036 update STT_SECTION symbols' st_value fields as a side effect.
1037 (check_symtab_section_symbols): Update caller.
1038 (add_new_section_symbols): Set st_value in symbols added.
1039 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
1040 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
1041 from .bss to .dynbss.
1042 (find_alloc_sections_prelink): New function. Associate debug file
1043 allocated SHT_NOBITS shdrs with stripped moved by prelink via
1044 .gnu.prelink_undo information.
1045 (copy_elided_sections): Call it when we couldn't find every allocated
1046 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
1047 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
1048 (handle_file): Update callers.
1049
1050 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
1051 named ".comment".
1052
1053 * elflint.c (check_sections): Fix association of segments with
1054 sections when p_memsz > p_filesz.
1055
10562007-04-29 Roland McGrath <roland@redhat.com>
1057
1058 * addr2line.c (options, main): Tweak argp group settings to fix
1059 usage output.
1060
10612007-04-28 Roland McGrath <roland@redhat.com>
1062
1063 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
1064 sizes to match sections adjusted in the stripped file.
1065
Roland McGrath4be15242007-04-25 03:09:33 +000010662007-04-24 Roland McGrath <roland@redhat.com>
1067
1068 * elfcmp.c (OPT_HASH_INEXACT): New macro.
1069 (hash_inexact): New variable.
1070 (options, parse_opt): Add --hash-inexact option to set it.
1071 (hash_content_equivalent): New function.
1072 (main): Call it for differing SHT_HASH sections under --hash-inexact.
1073
10742007-04-23 Roland McGrath <roland@redhat.com>
1075
1076 * unstrip.c: New file.
1077 * Makefile.am (bin_PROGRAMS): Add it.
1078 (unstrip_LDADD): New variable.
1079
1080 * strip.c (options): Allow --output for -o.
1081
Ulrich Drepper8b383102007-02-16 00:31:57 +000010822007-02-15 Ulrich Drepper <drepper@redhat.com>
1083
1084 * readelf.c: Remove unused code. Add a few consts.
1085
Ulrich Drepper903c1162007-02-15 19:40:37 +000010862007-02-15 Roland McGrath <roland@redhat.com>
1087
1088 * readelf.c (print_debug): Fix brainos in SHDR test.
1089
Roland McGrathf82a1ec2007-02-06 04:47:44 +000010902007-02-05 Roland McGrath <roland@redhat.com>
1091
1092 * ar.c: Include <limits.h>, since we use LONG_MAX.
1093
Ulrich Drepper0fe63532007-02-05 21:05:51 +000010942007-02-05 Ulrich Drepper <drepper@redhat.com>
1095
Ulrich Drepper8b383102007-02-16 00:31:57 +00001096 * ar.c: Add ugly hack to work around gcc complaining that we
Ulrich Drepper93ab56f2007-02-05 22:12:41 +00001097 ignore fchown's return value.
1098 (do_oper_insert): Handle error when writing padding.
1099 * ranlib.c: Add fchown complain work around.
1100
Ulrich Drepper0fe63532007-02-05 21:05:51 +00001101 * arlib.c: Make symtab a global variable. Change all users.
1102 * arlib2.c: Likewise.
1103 * ranlib.c: Likewise.
1104 * ar.c: Likewise.
1105 * arlib.h: Declare it.
1106
Ulrich Drepperaa915fd2007-02-05 07:25:33 +000011072007-01-11 Roland McGrath <roland@redhat.com>
1108
1109 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
1110 SHF_MASKPROC bits separately from generic sh_flags validation.
1111
Ulrich Drepperce0bdb62007-02-05 07:13:52 +000011122007-02-04 Ulrich Drepper <drepper@redhat.com>
1113
1114 * ar.c: New file.
1115 * arlib.c: New file.
1116 * arlib2.c: New file.
1117 * arlib.h: New file.
1118 * Makefile (noinst_LIBRARIES): Add libar.
1119 (libar_a_SOURCES): Define.
1120 (ar_LDADD): Define.
1121 (CFLAGS_ar): Define.
1122 * ranlib.c: Change to use arlib.
1123
1124 * elflint.c (check_symtab): Work around GNU ld bug which omits
1125 sections but not symbols in those sections.
1126
Ulrich Drepperb770cf92007-01-10 21:02:34 +000011272007-01-10 Ulrich Drepper <drepper@redhat.com>
1128
1129 * addr2line.c: Update copyright year.
1130 * elfcmp.c: Likewise.
1131 * elflint.c: Likewise.
1132 * findtextrel.c: Likewise.
1133 * ld.c: Likewise.
1134 * nm.c: Likewise.
1135 * objdump.c: Likewise.
1136 * ranlib.c: Likewise.
1137 * readelf.c: Likewise.
1138 * size.c: Likewise.
1139 * strings.c: Likewise.
1140 * strip.c: Likewise.
1141
Ulrich Drepper7c0e79f2006-12-09 21:10:19 +000011422006-12-09 Ulrich Drepper <drepper@redhat.com>
1143
1144 * elflint.c (compare_hash_gnu_hash): New function. Report if the
1145 two hash tables have different content (module expected omission
1146 of undefined symbols).
1147
Roland McGrath8190db62006-12-17 23:56:51 +000011482006-10-31 Roland McGrath <roland@redhat.com>
1149
1150 * elflint.c (check_program_header): Don't complain about
Ulrich Drepper56bc0b82006-12-18 22:38:08 +00001151 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
Roland McGrath8190db62006-12-17 23:56:51 +00001152
11532006-09-19 Jakub Jelinek <jakub@redhat.com>
1154
1155 * strip.c (process_file): Disallow -f on archives.
1156
11572006-10-09 Roland McGrath <roland@redhat.com>
1158
1159 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
1160
Roland McGrathc373d852006-10-10 00:25:21 +000011612006-08-29 Roland McGrath <roland@redhat.com>
1162
1163 * Makefile.am (MAINTAINERCLEANFILES): New variable.
1164
1165 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
1166 Reported by Christian Aichinger <Greek0@gmx.net>.
1167
1168 * elflint.c (valid_e_machine): Add EM_ALPHA.
1169 Reported by Christian Aichinger <Greek0@gmx.net>.
1170
Ulrich Drepper231c5902006-08-08 22:00:11 +000011712006-08-08 Ulrich Drepper <drepper@redhat.com>
1172
1173 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
1174 Keep track of which "high DT" entries are present.
1175 Check that either old or GNU-style hash table is present.
1176 If GNU-style hash table is used a symbol table is mandatory.
1177 Check that if any prelink entry is present all of them are.
1178 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
1179 table if they don't refer to functions.
1180
Roland McGrath858b1892006-07-17 08:41:15 +000011812006-07-17 Roland McGrath <roland@redhat.com>
1182
1183 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
1184 (add_version): Likewise for argument.
1185 (check_versym): Cast constant to GElf_Versym for comparison.
1186
Roland McGrath4ec807e2006-07-13 03:59:46 +000011872006-07-12 Roland McGrath <roland@redhat.com>
1188
1189 * readelf.c (handle_gnu_hash): Add casts for machines where
1190 Elf32_Word != unsigned int.
1191
Ulrich Drepperdcf61602006-07-12 19:59:02 +000011922006-07-12 Ulrich Drepper <drepper@redhat.com>
1193
1194 * elflint.c (check_sysv_hash64): Fix printf format.
1195
Ulrich Dreppercc415622006-07-12 19:42:23 +000011962006-07-11 Roland McGrath <roland@redhat.com>
Ulrich Drepper8ae58142006-07-12 05:22:32 +00001197
Ulrich Dreppercc415622006-07-12 19:42:23 +00001198 * addr2line.c (options): English fix in -f doc string.
1199
1200 * addr2line.c (use_comp_dir): New variable.
1201 (options, parse_opt): Grok -A/--absolute to set it.
1202 (handle_address): If set, prepend dwfl_line_comp_dir results to
1203 relative file names.
Ulrich Drepper8ae58142006-07-12 05:22:32 +00001204
Ulrich Drepper28ed8952006-07-07 03:43:47 +000012052006-07-06 Ulrich Drepper <drepper@redhat.com>
1206
1207 * elflint.c: Adjust for latest new hash table format.
1208 * readelf.c: Likewise.
1209
1210 * elflint.c (check_versym): Ignore hidden bit when comparing version
1211 numbers.
1212
12132006-07-05 Ulrich Drepper <drepper@redhat.com>
1214
1215 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
1216 discarded COMDAT symbols.
1217
1218 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
1219 (elf_i386_create_relocations): Likewise.
1220 * ld.h (struct symbol): Add local and hidden bits.
1221 * ld.c (create_special_section_symbol): These synthsized symbols
1222 are local and hidden.
1223 * ldgeneric.c (file_process2): Check whether input file matches
1224 the emulation.
1225 (fillin_special_symbol): Create symbols as local and/or hidden
1226 if requested.
1227 (ld_generic_create_outfile): Make local copy of symbol.
1228 Don't hide global, defined symbols in dynamic symbol table unless
1229 requested. Synthetic symbols have no version information.
1230
1231 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
1232 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
1233
12342006-07-04 Ulrich Drepper <drepper@redhat.com>
1235
1236 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
1237 testing.
1238
12392006-07-03 Ulrich Drepper <drepper@redhat.com>
1240
1241 * elflint.c: Add testing of DT_GNU_HASH.
1242 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
1243
1244 * Makefile.am: Add hacks to create dependency files for non-generic
1245 linker.
1246
Ulrich Drepper6ca46002006-06-12 22:40:23 +000012472006-06-12 Ulrich Drepper <drepper@redhat.com>
1248
1249 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
1250 section if creating a DSO and no interpreter is given.
1251 (ld_generic_create_outfile): Don't store reference to symbols in
1252 discarded COMDAT groups. Don't create PHDR and INTERP program header
1253 for DSO if no interpreter is specified.
Ulrich Drepper595d0e72006-06-12 23:25:17 +00001254 (create_verneed_data): Pretty printing.
1255
Ulrich Drepper6ca46002006-06-12 22:40:23 +00001256 * ldscript.y (content): If a DSO is created don't set default
1257 interpreter from linker script.
1258
1259 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
1260 for symbols in discarded COMDAT groups.
1261 (elf_i386_create_relocations): Likewise.
1262 * ld.h (struct scninfo): Add unused_comdat.
1263 * ldgeneric.c (add_section): Also check group signature when
1264 matching COMDAT sections.
1265 (add_relocatable_file): Ignore symbols in COMDAT group which are
1266 discarded.
1267
1268 * elflint.c (check_one_reloc): For *_NONE relocs only check type
1269 and symbol reference.
1270
Ulrich Drepper54f33a72006-06-11 09:07:37 +000012712006-06-11 Ulrich Drepper <drepper@redhat.com>
1272
Ulrich Dreppercbb51e52006-06-11 20:25:23 +00001273 * elflint.c (check_dynamic): Fix checking value of tags which are
1274 offsets in the string section. Make sure DT_STRTAB points to the
1275 section referenced in sh_link.
1276
1277 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
1278
Ulrich Drepper54f33a72006-06-11 09:07:37 +00001279 * ld.c: Recognize --eh-frame-hdr option.
1280 * ld.h (struct ld_state): Add eh_frame_hdr field.
1281 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
1282
1283 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
1284 SH_FLAGS_COMBINE.
1285 (add_relocatable_file): Minor optimization of last change.
1286 (match_section): Don't preserve SHF_GROUP flag any longer.
1287
Ulrich Drepper2d880282006-06-11 00:20:43 +000012882006-06-10 Ulrich Drepper <drepper@redhat.com>
1289
1290 * ld.c (parse_z_option): Recognize execstack and noexecstack.
Ulrich Drepper4f0a7a82006-06-11 00:53:45 +00001291 Handle record and ignore as position dependent options.
1292 (parse_z_option_2): Handle ignore and record here.
Ulrich Drepper2d880282006-06-11 00:20:43 +00001293 * ld.h (struct ld_state): Add execstack field.
1294 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
1295 sections.
1296 (ld_generic_create_outfile): Fix program header creation in native
1297 linker. Add PT_GNU_STACK program header.
1298
Ulrich Dreppera688a732006-06-10 06:33:00 +000012992006-06-09 Ulrich Drepper <drepper@redhat.com>
1300
1301 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
1302 for PLT entries if there is no local definition.
1303
1304 * ld.c (parse_option): Handle -z ignore like --as-needed and
1305 -z record like --no-as-needed.
1306 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
1307 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
1308 looping over DSOs. When deciding about adding DT_NEEDED entries
1309 use ->as_needed instead of ignore_unused_dsos.
1310
Ulrich Drepper8c56fe32006-05-31 15:50:43 +000013112006-05-31 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001312
Ulrich Drepper8c56fe32006-05-31 15:50:43 +00001313 * ld.c: Recognize --as-needed and --no-as-needed options.
1314 * ld.h (struct usedfile): Add as_needed field.
1315 (struct ld_state): Likewise.
1316 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
1317 the list.
1318 * ldscript.y (filename_id_list): Split to correctly parse all
1319 combinations.
1320 (mark_as_needed): Fix loop.
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001321
Ulrich Drepper697f4db2006-06-10 06:50:47 +000013222006-05-28 Ulrich Drepper <drepper@redhat.com>
1323
1324 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
1325 and colno.
1326
Ulrich Drepper2cb8e732006-05-27 21:57:27 +000013272006-05-27 Ulrich Drepper <drepper@redhat.com>
1328
1329 * readelf.c (handle_relocs_rela): Better notations for addon value.
Ulrich Drepper41a99082006-05-28 00:01:43 +00001330 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
Ulrich Drepper2cb8e732006-05-27 21:57:27 +00001331
Ulrich Drepper82c345d2006-04-04 22:07:54 +000013322006-04-04 Ulrich Drepper <drepper@redhat.com>
1333
1334 * addr2line.c: Update copyright year.
1335 * elfcmp.c: Likewise.
1336 * elflint.c: Likewise.
1337 * findtextrel.c: Likewise.
1338 * ld.c: Likewise.
1339 * nm.c: Likewise.
1340 * objdump.c: Likewise.
1341 * ranlib.c: Likewise.
1342 * readelf.c: Likewise.
1343 * size.c: Likewise.
1344 * strings.c: Likewise.
1345 * strip.c: Likewise.
1346
Roland McGrathdd7e22b2006-03-09 23:05:47 +000013472006-03-09 Roland McGrath <roland@redhat.com>
1348
1349 * Makefile.am (AM_LDFLAGS): New variable.
1350
Roland McGrath060fa052006-03-02 07:51:50 +000013512006-03-01 Roland McGrath <roland@redhat.com>
1352
1353 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
1354 for dwarf.h changes matching 3.0 spec.
1355 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
1356
Ulrich Drepper038129b2005-12-04 16:47:24 +000013572005-12-04 Ulrich Drepper <drepper@redhat.com>
1358
1359 * elflint.c (check_one_reloc): If relocation section is not loaded,
1360 don't check whether the relocations modify read-only sections or
1361 loaded and unloaded sections.
1362
Ulrich Drepper607e0542005-12-04 15:51:06 +000013632005-11-28 Ulrich Drepper <drepper@redhat.com>
1364
1365 * elflint.c (check_one_reloc): Take additional parameters. Use
1366 them to determine whether relocation is valid in this type of
1367 file. DSOs and executables can contain relocation sections in
1368 unloaded sections which just show the relocations the linker
1369 applied. Adjust all callers.
1370 (check_program_header): Check that PT_PHDR is loaded and that offset
1371 matches the one in the ELF header.
1372
Roland McGrath6724c902005-10-28 07:07:19 +000013732005-10-26 Roland McGrath <roland@redhat.com>
1374
1375 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
1376
Ulrich Drepperd0449522005-09-03 07:23:52 +000013772005-09-03 Ulrich Drepper <drepper@redhat.com>
1378
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001379 * strip.c (handle_elf): Unify some error messages.
1380 * ld.c (main): Likewise.
1381 * ldgeneric.c (open_elf): Likewise.
1382 * elfcmp.c (main): Likewise.
1383 * elflint.c (check_elf_header): Likewise.
1384
1385 * size.c (process_file): Fix typo in error message.
1386
Ulrich Drepperd0449522005-09-03 07:23:52 +00001387 * readelf.c: Lots of little cleanups. Use _unlocked functions.
1388
Ulrich Dreppera60501e2005-09-02 19:50:17 +000013892005-09-02 Ulrich Drepper <drepper@redhat.com>
1390
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001391 * strings.c (main): Reset elfmap variable after munmap call.
Ulrich Drepper618795f2005-09-02 20:01:37 +00001392 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
Ulrich Dreppera60501e2005-09-02 19:50:17 +00001393
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000013942005-08-28 Ulrich Drepper <drepper@redhat.com>
1395
1396 * ranlib.c: Don't define pread_retry and write_retry here.
1397
1398 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
1399 (CLEANFILES): Add *.gcno *.gcda *.gconv.
1400
1401 * strings.c (process_chunk): Reorder expressions in conditional
1402 (process_chunk_mb): Likewise.
1403
1404 * strings.c: New file.
1405 * Makefile.am (bin_PROGRAMS): Add strings.
1406 (strings_no_Wstring): Define.
1407 (strings_LDADD): Define.
1408
Roland McGrath71e15a02005-08-27 10:33:26 +000014092005-08-27 Roland McGrath <roland@redhat.com>
1410
1411 * addr2line.c (dwarf_diename_integrate): Function removed.
1412 (print_dwarf_function): Use plain dwarf_diename.
1413
Ulrich Drepperc5a06cd2005-08-24 19:50:14 +000014142005-08-24 Ulrich Drepper <drepper@redhat.com>
1415
1416 * elflint.c (check_versym): Versioned symbols should not have
1417 local binding.
1418
Ulrich Drepper5d832292005-08-15 21:36:27 +000014192005-08-15 Ulrich Drepper <drepper@redhat.com>
1420
Ulrich Drepper61655e02005-08-16 04:23:02 +00001421 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
1422 undefined.
1423
Ulrich Drepper5d832292005-08-15 21:36:27 +00001424 * Makefile.am: Add rules to build ranlib.
1425 * ranlib.c: New file.
1426
Roland McGrath18e13422005-08-15 08:01:25 +000014272005-08-14 Roland McGrath <roland@redhat.com>
1428
1429 * elflint.c (check_sections): Use ebl_section_type_name and allow any
1430 sh_type it recognizes.
1431
1432 * elflint.c (check_sections): Print unknown flags in hex, don't
1433 truncate high bits. Print section number and name for unknown type.
1434
Roland McGrathf6895042005-08-13 20:56:52 +000014352005-08-13 Roland McGrath <roland@redhat.com>
1436
1437 * elflint.c (check_program_header): Use ebl_segment_type_name and
1438 allow any p_type it recognizes. Include p_type value in error
1439 message for unknown type.
1440
Ulrich Drepperc5c33a62005-08-13 17:50:47 +000014412005-08-13 Ulrich Drepper <drepper@redhat.com>
1442
1443 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
1444 to ebl_check_special_symbol.
1445 (check_sections): Pass ehdr to ebl_bss_plt_p.
1446
Roland McGrath653d3762005-08-13 01:59:10 +000014472005-08-12 Roland McGrath <roland@redhat.com>
1448
1449 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
1450 refers to the right section if it's not SHN_ABS.
1451 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
1452
1453 * elflint.c (check_sections): Don't complain about a non-NOBITS
1454 section taking no segment space, if it's sh_size is 0.
1455
1456 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
1457 be PROGBITS or NOBITS.
1458
1459 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
1460 standard st_value and st_size checks.
1461
Roland McGrath1c83bf12005-08-11 07:03:55 +000014622005-07-28 Roland McGrath <roland@redhat.com>
Ulrich Drepperfaf4d192005-08-11 05:12:05 +00001463
Roland McGrath1c83bf12005-08-11 07:03:55 +00001464 * addr2line.c (options, parse_opt): Don't handle -e here.
1465 (executable): Variable removed.
1466 (argp_children): New static variable.
1467 (argp): Use it. Make const.
1468 (main): Fill in argp_children from dwfl_standard_argp ().
1469 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
1470 (print_dwarf_function): New function. Try to figure out inline chain.
1471 (elf_getname): Function removed, libdwfl does it for us.
1472 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
1473 Use dwfl_module_addrname instead of elf_getname.
1474 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
1475 * Makefile.am (INCLUDES): Add libdwfl directory to path.
1476
14772005-08-10 Ulrich Drepper <drepper@redhat.com>
1478
1479 * strip.c (parse_opt): STATE parameter is now used.
1480 Various little cleanups.
1481
1482 * readelf.c (print_debug_line_section): Correct fallout of renaming
1483 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +00001484
Roland McGrath8f31c2c2005-08-09 04:58:05 +000014852005-08-08 Roland McGrath <roland@redhat.com>
1486
1487 * strip.c (options, parse_opt): Grok -R .comment for compatibility
1488 with binutils strip. Likewise -d, -S, as aliases for -g.
1489 Likewise ignore -s/--strip-all.
1490
Roland McGrath095a01b2005-08-08 03:49:35 +000014912005-08-07 Roland McGrath <roland@redhat.com>
1492
1493 * strip.c (process_file): Open read-only when using a different output
1494 file.
1495
Ulrich Drepper47be7952005-08-07 04:41:39 +000014962005-08-06 Ulrich Drepper <drepper@redhat.com>
1497
Ulrich Drepper637963b2005-08-07 05:33:07 +00001498 * elflint.c (in_nobits_scn): New function.
1499 (check_versym): Allow references for defined symbols against versions
1500 of other DSOs also for symbols in nobits sections.
1501 Move a few variables around.
1502
Ulrich Drepper47be7952005-08-07 04:41:39 +00001503 * Makefile.am (AM_CFLAGS): Avoid duplication.
1504 Link with statis libs if BUILD_STATIC.
1505
Ulrich Drepperdbace232005-08-06 01:37:23 +000015062005-08-05 Ulrich Drepper <drepper@redhat.com>
1507
1508 * elflint.c: Many, many more tests. Mostly related to symbol
1509 versioning. Those sections should now be completely checked.
1510
1511 * readelf.c (print_dynamic): Use gelf_offscn.
1512
Ulrich Drepperacb89832005-08-04 07:01:49 +000015132005-08-04 Ulrich Drepper <drepper@redhat.com>
1514
1515 * elflint.c: Add lots more tests: more extension symbol table sanity,
1516 versioning section tests, hash table tests. General cleanup.
1517
Ulrich Drepperc911c9e2005-08-02 16:07:42 +000015182005-08-02 Ulrich Drepper <drepper@redhat.com>
1519
Ulrich Drepper8a687742005-08-03 02:24:12 +00001520 * objdump.c: New file.
1521 * Makefile.am (bin_PROGRAMS): Add objdump.
1522 (objdump_LDADD): Define.
1523
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001524 * elflint.c (check_reloc_shdr): New function split out from check_rela
1525 and check_rel.
1526 (check_one_reloc): New function. Likewise.
1527 (check_rela): Use check_reloc_shdr and check_one_reloc.
1528 (check_rel): Likewise.
Ulrich Drepper41de4882005-08-03 00:02:56 +00001529 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
1530 section.
1531 Add checks that relocations against read-only segments are flagged,
1532 that the text relocation flag is not set unnecessarily, and that
1533 relocations in one section are either against loaded or not-loaded
1534 segments.
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001535
Ulrich Drepper8533dcf2005-08-01 07:18:47 +000015362005-08-01 Ulrich Drepper <drepper@redhat.com>
1537
1538 * elfcmp.c (main): Ignore section count and section name string table
1539 section index.
1540
Roland McGrathf9ece8a2005-07-28 07:03:04 +000015412005-07-27 Roland McGrath <roland@redhat.com>
1542
1543 * elfcmp.c: Include <locale.h>.
1544
Ulrich Drepper7d48d6a2005-07-27 10:13:23 +000015452005-07-27 Ulrich Drepper <drepper@redhat.com>
1546
1547 * elfcmp.c: Print name and index of differing section.
1548
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000015492005-07-24 Ulrich Drepper <drepper@redhat.com>
1550
1551 * elfcmp.c: Implement comparing gaps between sections.
1552
15532005-07-23 Ulrich Drepper <drepper@redhat.com>
1554
1555 * elflint.c: Include libeblP.h instead of libebl.h.
1556 * nm.c: Likewise.
1557 * readelf.c: Likewise.
1558 * elfcmp.c: Likewise.
1559
1560 * elfcmp.c (main): Compare individual ELF header fields, excluding
1561 e_shoff instead of the whole struct at once.
1562 Use ebl_section_strip_p instead of SECTION_STRIP_P.
1563 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
1564
15652005-07-22 Ulrich Drepper <drepper@redhat.com>
1566
1567 * elfcmp.c (main): Take empty section into account when comparing
1568 section content.
1569
1570 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
1571 using it.
1572
15732005-07-21 Ulrich Drepper <drepper@redhat.com>
1574
1575 * elfcmp.c: New file.
1576 * Makefile.am (bin_PROGRAMS): Add elfcmp.
1577 (elfcmp_LDADD): Define.
1578
1579 * elflint.c (check_rela): Check that copy relocations only reference
1580 object symbols or symbols with unknown type.
1581 (check_rel): Likewise.
1582
15832005-06-08 Roland McGrath <roland@redhat.com>
1584
1585 * readelf.c (print_ops): Add consts.
1586
15872005-05-31 Roland McGrath <roland@redhat.com>
1588
1589 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
1590 abbreviations. Print a header line before each CU section.
1591
1592 * readelf.c (print_debug_loc_section): Fix indentation for larger
1593 address size.
1594
15952005-05-30 Roland McGrath <roland@redhat.com>
1596
1597 * readelf.c (print_debug_line_section): Print section offset of each
1598 CU's table, so they are easy to find from seeing the stmt_list value.
1599
1600 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
1601 (attr_callback): Grok DW_AT_ranges and print offset in hex.
1602
1603 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
1604 (print_debug_ranges_section, print_debug_loc_section): Likewise.
1605
1606 * readelf.c (print_ops): Take different args for indentation control.
1607 (attr_callback): Caller updated.
1608 Grok several more block-form attributes as being location expressions.
1609 For those same attributes with udata forms, format output differently
1610 for location list offset.
1611 (print_debug_loc_section): Implement it for real.
1612
1613 * readelf.c (options): Mention ranges for --debug-dump.
1614 (enum section_e): Add section_ranges.
1615 (parse_opt): Grok "ranges" for -w/--debug-dump.
1616 (print_debug_ranges_section): New function.
1617 (print_debug): Handle .debug_ranges section.
1618
16192005-05-30 Ulrich Drepper <drepper@redhat.com>
1620
1621 * readelf.c (handle_notes): At least x86-64 need not have the note
1622 section values aligned to 8 bytes.
1623
16242005-05-18 Ulrich Drepper <drepper@redhat.com>
1625
1626 * readelf.c (dwarf_tag_string): Add new tags.
1627
16282005-05-08 Roland McGrath <roland@redhat.com>
1629
1630 * strip.c (handle_elf): Don't translate hash and versym data formats,
1631 elf_getdata already did it for us.
1632
16332005-05-07 Ulrich Drepper <drepper@redhat.com>
1634
1635 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
1636 (addr2line_LDADD): Likewise.
1637
16382005-05-03 Roland McGrath <roland@redhat.com>
1639
1640 * strip.c (handle_elf): Apply symbol table fixups to discarded
1641 relocation sections when they are being saved in the debug file.
1642
1643 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
1644 and gelf_xlatetof, not the native byte order.
1645
1646 * strip.c (parse_opt): Give error if -f or -o is repeated.
1647 (main): Exit if argp_parse returns nonzero.
1648
1649 * strip.c (debug_fname_embed): New variable.
1650 (options, parse_opt): New option -F to set it.
1651
16522005-05-07 Ulrich Drepper <drepper@redhat.com>
1653
1654 * readelf.c (parse_opt): Make any_control_option variable
1655 local. Simplify some tests.
1656
16572005-05-03 Roland McGrath <roland@redhat.com>
1658
1659 * strip.c (crc32_file): Function removed (now in ../lib).
1660
16612005-05-03 Roland McGrath <roland@redhat.com>
1662
1663 * elflint.c (is_debuginfo): New variable.
1664 (options, parse_opt): New option --debuginfo/-d to set it.
1665 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
1666 (check_note): If is_debuginfo, don't try to get note contents.
1667
16682005-04-24 Ulrich Drepper <drepper@redhat.com>
1669
1670 * readelf.c (print_debug_abbrev_section): Don't print error when end of
1671 section reached.
1672
16732005-04-14 Ulrich Drepper <drepper@redhat.com>
1674
1675 * readelf.c (dwarf_encoding_string): New function.
1676 (dwarf_inline_string): New function.
1677 (dwarf_access_string): New function.
1678 (dwarf_visibility_string): New function.
1679 (dwarf_virtuality_string): New function.
1680 (dwarf_identifier_case_string): New function.
1681 (dwarf_calling_convention_string): New function.
1682 (dwarf_ordering_string): New function.
1683 (dwarf_discr_list_string): New function.
1684 (attr_callback): Decode man more attribute values.
1685
16862005-04-01 Ulrich Drepper <drepper@redhat.com>
1687
1688 * addr2line.c: Finish implementation of -f option.
1689
16902005-03-29 Ulrich Drepper <drepper@redhat.com>
1691
1692 * addr2line.c: New file.
1693 * Makefile.am (bin_PROGRAMS): Add addr2line.
1694 Define addr2line_LDADD.
1695
1696 * findtextrel.c: Use new dwarf_addrdie function.
1697
1698 * findtextrel.c: Fix usage message and re-add accidentally removed
1699 line.
1700
17012005-03-28 Ulrich Drepper <drepper@redhat.com>
1702
1703 * findtextrel.c: New file.
1704 * Makefile: Add rules to build findtextrel.
1705
17062005-02-15 Ulrich Drepper <drepper@redhat.com>
1707
1708 * ldlex.l: Provide ECHO definition to avoid warning.
1709
1710 * elflint.c (check_program_header): Fix typo in RELRO test.
1711
1712 * Makefile.am (AM_CFLAGS): Add more warning options.
1713 * elflint.c: Fix warnings introduced by the new warning options.
1714 * i386_ld.c: Likewise.
1715 * ld.c: Likewise.
1716 * ld.h: Likewise.
1717 * ldgeneric.c: Likewise.
1718 * nm.c: Likewise.
1719 * readelf.c: Likewise.
1720 * sectionhash.c: Likewise.
1721 * size.c: Likewise.
1722 * string.c: Likewise.
1723
17242005-02-05 Ulrich Drepper <drepper@redhat.com>
1725
1726 * Makefile.am: Check for text relocations in constructed DSOs.
1727
1728 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
1729 with -lmudflap.
1730
1731 * ldscript.y: Add as_needed handling.
1732 * ldlex.l: Recognize AS_NEEDED token.
1733 * ld.h (struct filename_list): Add as_needed flag.
1734
17352005-02-04 Ulrich Drepper <drepper@redhat.com>
1736
1737 * elflint.c (check_symtab): Correctly determine size of GOT section.
1738
17392005-01-19 Ulrich Drepper <drepper@redhat.com>
1740
1741 * ld.c: Remove unnecessary more_help function. Print bug report
1742 address using argp.
1743 * strip.c: Likewise.
1744 * size.c: Likewise.
1745 * nm.c: Likewise.
1746 * readelf.c: Likewise.
1747 * elflint.c: Likewise.
1748
1749 * elflint.c (main): Don't check for parameter problems here.
1750 (parse_opt): Do it here, where we get informed about some of them
1751 anyway.
1752
1753 * readelf.c (main): Don't check for parameter problems here.
1754 (parse_opt): Do it here, where we get informed about some of them
1755 anyway.
1756
17572005-01-11 Ulrich Drepper <drepper@redhat.com>
1758
1759 * strip.c: Update copyright year.
1760 * readelf.c: Likewise.
1761 * size.c: Likewise.
1762 * nm.c: Likewise.
1763 * ld.c: Likewise.
1764 * elflint.c: Likewise.
1765
1766 * elflint.c (check_symtab): Don't warn about wrong size for
1767 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
1768
17692004-10-05 Ulrich Drepper <drepper@redhat.com>
1770
1771 * readelf.c (print_phdr): In section mapping, also indicate
1772 sections in read-only segments.
1773
17742004-09-25 Ulrich Drepper <drepper@redhat.com>
1775
1776 * readelf.c: Make compile with gcc 4.0.
1777 * strip.c: Likewise.
1778
17792004-08-16 Ulrich Drepper <drepper@redhat.com>
1780
1781 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
1782 allocate to work around gcc 3.4 bug.
1783
17842004-01-25 Ulrich Drepper <drepper@redhat.com>
1785
1786 * ldlex.l (invalid_char): Better error message.
1787
17882004-01-23 Ulrich Drepper <drepper@redhat.com>
1789
1790 * readelf.c: Print SHT_GNU_LIBLIST sections.
1791
1792 * none_ld.c: New file.
1793
17942004-01-21 Ulrich Drepper <drepper@redhat.com>
1795
1796 * Makefile.am: Enable building of machine specific linker.
1797
17982004-01-20 Ulrich Drepper <drepper@redhat.com>
1799
1800 * Makefile.am: Support building with mudflap.
1801
1802 * i386_ld.c: Fix warnings gcc 3.4 spits out.
1803 * ldgeneric.c: Likewise.
1804 * ldscript.y: Likewise.
1805 * readelf.c: Likewise.
1806 * strip.c: Likewise.
1807
1808 * readelf.c (print_debug_line_section): Determine address size
1809 correctly.
1810
18112004-01-19 Ulrich Drepper <drepper@redhat.com>
1812
1813 * readelf.c (print_phdr): Show which sections are covered by the
1814 PT_GNU_RELRO entry.
1815
1816 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
1817
1818 * readelf.c (print_debug_macinfo_section): Implement.
1819
18202004-01-18 Ulrich Drepper <drepper@redhat.com>
1821
1822 * readelf.c (print_debug_line_section): Implement.
1823
18242004-01-17 Ulrich Drepper <drepper@redhat.com>
1825
1826 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
1827 * src/ld.c: Likewise.
1828 * src/nm.c: Likewise.
1829 * src/readelf.c: Likewise.
1830 * src/size.c: Likewise.
1831 * src/strip.c: Likewise.
1832
1833 * strip.c: Add a few more unlikely. Reduce scope of some variables.
1834
1835 * Makefile.am: Support building with mudflap.
1836
18372004-01-16 Ulrich Drepper <drepper@redhat.com>
1838
1839 * readelf.c (print_debug_info_section): Free dies memory.
1840
1841 * readelf.c: Print .debug_info section content.
1842
18432004-01-13 Ulrich Drepper <drepper@redhat.com>
1844
1845 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
1846
18472004-01-12 Ulrich Drepper <drepper@redhat.com>
1848
1849 * readelf.c (print_debug_aranges): Implement using libdw.
1850
18512004-01-11 Ulrich Drepper <drepper@redhat.com>
1852
1853 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
1854
1855 * readelf.c: Use libdw instead of libdwarf. Not all of the old
1856 behavior is available yet.
1857 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
1858
18592004-01-09 Ulrich Drepper <drepper@redhat.com>
1860
1861 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
1862
1863 * nm.c: Implement getting information about local variables.
1864
18652004-01-07 Ulrich Drepper <drepper@redhat.com>
1866
1867 * nm.c: Read also debug information for local symbols.
1868
18692004-01-05 Ulrich Drepper <drepper@redhat.com>
1870
1871 * nm.c: Shuffle dwarf handling code around so the maximum column
1872 width can be computed ahead of printing. Avoid collection symbols
1873 which are not printed anyway.
1874
1875 * nm.c: Rewrite dwarf handling to use libdw.
1876 * Makefile.am (AM_CFLAGS): Add -std parameter.
1877 (INCLUDES): Find header in libdw subdir.
1878 (nm_LDADD): Replace libdwarf with libdw.
1879
1880 * elflint.c: Update copyright year.
1881 * readelf.c: Likewise.
1882 * size.c: Likewise.
1883 * strip.c: Likewise.
1884 * nm.c: Likewise.
1885
18862003-12-31 Ulrich Drepper <drepper@redhat.com>
1887
1888 * strip.c (process_file): Close file before returning.
1889
18902003-11-19 Ulrich Drepper <drepper@redhat.com>
1891
1892 * readelf.c (handle_dynamic): Make column for tag name wider.
1893
18942003-09-29 Ulrich Drepper <drepper@redhat.com>
1895
1896 * readelf.c (handle_dynamic): Always terminate tag name with a space.
1897
18982003-09-25 Ulrich Drepper <drepper@redhat.com>
1899
1900 * strip.c (process_file): Don't mmap the input file, we modify the
1901 data structures and don't want the change end up on disk.
1902
19032003-09-23 Jakub Jelinek <jakub@redhat.com>
1904
1905 * unaligned.h (union u_2ubyte_unaligned,
1906 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
1907 packed attribute.
1908 (add_2ubyte_unaligned, add_4ubyte_unaligned,
1909 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
1910 Read/store value through _ptr->u instead of *_ptr.
1911
19122003-09-22 Ulrich Drepper <drepper@redhat.com>
1913
1914 * size.c (show_sysv): Change type of maxlen to int.
1915
1916 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
1917 buckets.
1918
1919 * i386_ld.c: Many many fixes and extensions.
1920 * ld.c: Likewise.
1921 * ldgeneric.c: Likewise.
1922
19232003-08-16 Ulrich Drepper <drepper@redhat.com>
1924
1925 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
1926 the reference is from another DSO.
1927
19282003-08-15 Ulrich Drepper <drepper@redhat.com>
1929
1930 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
1931 point is found when creating a DSO.
1932
19332003-08-14 Ulrich Drepper <drepper@redhat.com>
1934
1935 * ld.c (main): Always call FLAG_UNRESOLVED.
1936 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
1937 undefined symbols if not creating DSO or ld_state.nodefs is not set.
1938
19392003-08-13 Ulrich Drepper <drepper@redhat.com>
1940
1941 * Makefile.in: Depend on libebl.a, not libebl.so.
1942
1943 * ld.c (main): Mark stream for linker script as locked by caller.
1944 (read_version_script): Likewise.
1945 * ldlex.c: Define fread and fwrite to _unlocked variant.
1946
1947 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
1948 target_bswap_32.
1949 * unaligned.h: Define target_bswap_16, target_bswap_32, and
1950 target_bswap_64.
1951 (store_2ubyte_unaligned, store_4ubyte_unaligned,
1952 store_8ubyte_unaligned): Define using new macros.
1953
19542003-08-12 Ulrich Drepper <drepper@redhat.com>
1955
1956 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
1957 possibly unaligned memory. Support use of big endian machines.
1958
19592003-08-11 Ulrich Drepper <drepper@redhat.com>
1960
1961 * Moved to CVS archive.