blob: 4a6389ae8249fe7c116b5b5a104ef4fda2a7bee6 [file] [log] [blame]
Roland McGrath7a5bed82010-06-01 13:44:00 -070012010-06-01 Roland McGrath <roland@redhat.com>
2
3 * readelf.c (print_debug): Don't bail if libdw setup fails.
4 Suppress complaint if we only want .eh_frame anyway.
5
Ulrich Drepper173ade82010-05-28 07:39:49 -070062010-05-28 Ulrich Drepper <drepper@redhat.com>
7
8 * readelf.c (attr_callback): Also print form information.
9
Roland McGrath12e3d1f2010-05-19 18:03:31 -0700102010-05-19 Roland McGrath <roland@redhat.com>
11
12 * addr2line.c (find_symbol): Short-circuit on empty name.
13 (handle_address): Handle SYMBOL with no +OFFSET.
14
Roland McGrath688f7fc2010-05-08 03:22:59 -0700152010-05-08 Roland McGrath <roland@redhat.com>
16
17 * readelf.c (print_ops): Take new arg OFFSET_SIZE.
18 Use that for DW_OP_call_ref, not ADDRSIZE.
19 (print_cfa_program): Update caller.
20 (struct attrcb_args): Add offset_size field.
21 (attr_callback): Use it for print_ops call.
22 (print_debug_info_section): Initialize it.
Roland McGrath50aa8d12010-06-01 11:22:36 -070023
Roland McGrath62b28b62010-04-14 11:54:06 -0700242010-04-14 Roland McGrath <roland@redhat.com>
25
26 * readelf.c (handle_core_item): Fix bitmask printing.
27
Roland McGrath3b495d82010-04-06 12:58:32 -0700282010-04-06 Roland McGrath <roland@redhat.com>
29
30 * ld.c (options): Fix some typos in messages.
31 * elflint.c (check_scn_group, check_group): Likewise.
32 * ldscript.y (add_id_list): Likewise.
33 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment
34 before translated string containing a literal %.
35
Roland McGrath890081b2010-02-26 17:57:50 -0800362010-02-26 Roland McGrath <roland@redhat.com>
37
38 * readelf.c (process_file): Don't leak an fd in failure case.
39
Roland McGrathc2b26f12010-02-15 15:16:15 -0800402010-02-15 Roland McGrath <roland@redhat.com>
41
Roland McGrath22359e22010-02-15 15:57:03 -080042 * Makefile.am: Use config/eu.am for common stuff.
43
Roland McGrathc2b26f12010-02-15 15:16:15 -080044 * readelf.c (print_debug_frame_section): Add a cast to avoid sign
45 mismatch in comparison.
46
Roland McGrathf920fd52010-02-02 15:50:15 -0800472010-02-02 Roland McGrath <roland@redhat.com>
48
49 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero).
50 (read_encoded): Likewise.
51 (print_debug_frame_section): Check for bogus augmentation length.
52 For P augmentation, use read_encoded, print the encoding description,
53 and use hex for unsigned values.
54
Roland McGrathb337b1f2010-01-15 01:02:27 -0800552010-01-15 Roland McGrath <roland@redhat.com>
56
57 * ar.c: Include <sys/stat.h>.
58 * elflint.c: Likewise.
59 * readelf.c: Likewise.
60 * strip.c: Likewise.
61 * unstrip.c: Likewise
62
Roland McGrathbd733ca2010-01-07 20:11:42 -0800632010-01-07 Roland McGrath <roland@redhat.com>
64
Roland McGrath8111da02010-01-07 20:31:59 -080065 * readelf.c (print_ehdr): Handle PN_XNUM.
66 (phnum): New static variable.
67 (process_elf_file): Set it with elf_getphdrnum.
68 (print_phdr): Use phnum instead of EHDR->e_phnum.
69 (print_dynamic, handle_notes): Likewise.
70 (handle_relocs_rel, handle_relocs_rela): Likewise.
71
Roland McGrathbd733ca2010-01-07 20:11:42 -080072 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum.
73
74 * elflint.c (phnum): New static variable.
75 (check_elf_header): Set it, handling PN_XNUM.
76 Use that in place of EHDR->e_phnum throughout.
77 (check_symtab, check_reloc_shdr, check_dynamic): Likewise.
78 (unknown_dependency_p, check_sections, check_program_header): Likewise.
79
Roland McGrath019d9fb2010-01-05 13:36:07 -0800802010-01-05 Roland McGrath <roland@redhat.com>
81
82 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and
83 DW_AT_GNU_template_name.
84
Roland McGrathe4061d02010-01-04 20:25:09 -0800852010-01-04 Roland McGrath <roland@redhat.com>
86
Roland McGrath0ccbbcd2010-01-04 21:59:07 -080087 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE".
88 (handle_core_note): Pass NHDR and NAME to ebl_core_note.
89 (handle_core_item): Handle .format of '\n' as \n-separated strings.
90
Roland McGrath2e79deb2010-01-04 20:36:10 -080091 * readelf.c (implicit_debug_sections): New variable.
92 (parse_opt): Set it instead of print_debug_sections for -a.
93 OR them together for print_debug check.
94 (print_debug): OR them together for section check.
95
Roland McGratha7422be2010-01-04 20:29:33 -080096 * readelf.c (options): Repartition into set implied by -a and others.
97 Correct -a text to match reality.
98
Roland McGrathe4061d02010-01-04 20:25:09 -080099 * readelf.c (struct section_argument): Add bool member 'implicit'.
100 (parse_opt): Set it for -a cases, clear it for -x args.
101 (for_each_section_argument): Don't complain about a missing section by
102 name if it's implicit.
103
Roland McGrathefa64962009-11-16 01:50:58 -08001042009-11-16 Roland McGrath <roland@redhat.com>
105
106 * readelf.c (print_string_section): Punt SHT_NOBITS like empty
107 sections, just as dump_data_section already does.
108
Mark Wielaardc49d00a2009-09-21 16:47:07 -07001092009-09-21 Ulrich Drepper <drepper@redhat.com>
110
111 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be
112 set for .comment section.
113 Patch by Mark Wielaard <mjw@redhat.com>.
114
Roland McGrathfb33c672009-09-08 00:21:18 -07001152009-09-08 Roland McGrath <roland@redhat.com>
116
117 * ar.c (main): Fix typo in message format.
118
Roland McGrath2d13ea22009-08-21 03:16:32 -07001192009-08-21 Roland McGrath <roland@redhat.com>
120
121 * readelf.c (attr_callback): Use print_block only when we don't use
122 print_ops.
123
Roland McGrath536127f2009-08-14 13:10:09 -07001242009-08-14 Roland McGrath <roland@redhat.com>
125
126 * ar.c (do_oper_extract): Use pathconf instead of statfs.
127
Ulrich Drepper9ccf76a2009-08-01 10:07:24 -07001282009-08-01 Ulrich Drepper <drepper@redhat.com>
129
130 * debugpred.h: Add two most const.
131
Mark Wielaardbc1b92e2009-07-26 08:33:18 -07001322009-07-26 Mark Wielaard <mjw@redhat.com>
133
134 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.
135
Mark Wielaard79178202009-07-25 12:44:46 -07001362009-07-25 Mark Wielaard <mjw@redhat.com>
137
138 * Makefile.am (addr2line_LDADD): Add $(libelf).
139
Roland McGrathbe4589d2009-07-24 16:23:12 -07001402009-07-24 Roland McGrath <roland@redhat.com>
141
142 * readelf.c (print_block): New function.
143 (print_ops): Use it.
144 (attr_callback): Use it for DW_FORM_block* forms.
145
Mark Wielaarddaf85b22009-07-24 15:49:51 -07001462009-07-20 Mark Wielaard <mjw@redhat.com>
147
148 * readelf.c (print_ops): Add handling of DW_OP_implicit_value
149 and DW_OP_stack_value.
150
Ulrich Drepper96d950e2009-07-14 10:42:01 -07001512009-07-14 Ulrich Drepper <drepper@redhat.com>
152
153 * elflint.c (check_elf_header): Allow Linux ABI.
154 (check_symtab): Handle STB_GNU_UNIQUE.
155
Mark Wielaardf735db12009-07-08 19:18:53 +02001562009-07-08 Mark Wielaard <mjw@redhat.com>
157
158 * readelf.c (attr_callback): Handle DW_Form constants for
159 DW_AT_data_member_location.
160
Roland McGrathdffc33d2009-07-06 16:06:41 -07001612009-07-06 Roland McGrath <roland@redhat.com>
162
163 * readelf.c (register_info): New function. Handle unknown register #s.
164 (print_cfa_program): Use it.
165 (handle_core_register, handle_core_registers): Likewise.
166
Roland McGrath5dbccdb2009-06-28 14:48:02 -07001672009-06-28 Roland McGrath <roland@redhat.com>
168
169 * readelf.c (print_address_names): New static variable.
170 (options, parse_opt): Grok -N/--numeric-addresses to clear it.
171 (format_dwarf_addr): Don't look up name if !print_address_names.
172
Ulrich Drepperf1894932009-06-13 15:55:42 -07001732009-06-13 Ulrich Drepper <drepper@redhat.com>
174
175 * ldgeneric.c: Don't use deprecated libelf functions.
176 * nm.c: Likewise.
177 * objdump.c: Likewise.
178 * readelf.c: Likewise.
179 * size.c: Likewise.
180 * strip.c: Likewise.
181 * unstrip.c: Likewise.
182 * ld.h: Fix up comment.
183
Ulrich Drepperb47d2902009-06-01 07:38:32 -07001842009-06-01 Ulrich Drepper <drepper@redhat.com>
185
186 * readelf.c (print_relocs): Expect ELF header argument and pass on
187 to handle_relocs_rel* functions. Adjust caller.
188 (handle_relocs_rel): Add ELF header argument. Add special case for
189 the IRELATIVE relocations in statically linked executables.
190 (handle_relocs_rela): Likewise.
191
Roland McGrathdb19f0b2009-05-07 18:44:27 -07001922009-04-29 Ulrich Drepper <drepper@redhat.com>
193
194 * elflint.c (check_symtab): Add tests of st_other field.
195
Ulrich Drepperaab90f92009-04-23 07:44:36 -07001962009-04-23 Ulrich Drepper <drepper@redhat.com>
197
198 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS).
199
Roland McGrathd86e1832009-04-20 00:49:33 -07002002009-04-20 Roland McGrath <roland@redhat.com>
201
Roland McGrath8a592412009-04-20 01:20:44 -0700202 * addr2line.c (print_dwarf_function): Honor -s and -A for file names
203 of inline call sites.
204
Roland McGrathd86e1832009-04-20 00:49:33 -0700205 * addr2line.c (just_section): New variable.
206 (adjust_to_section): New function, broken out of ...
207 (handle_address): ... here.
208 (options, parse_opt): Add -j/--section=NAME to set it.
209
Roland McGrath2fb90512009-04-15 14:47:13 -07002102009-04-15 Roland McGrath <roland@redhat.com>
211
212 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in
213 64-bit format header, DW_CIE_ID_32 in 32-bit format header.
214
Roland McGrath04a14162009-04-14 01:02:17 -07002152009-04-14 Roland McGrath <roland@redhat.com>
216
Roland McGratheb9ba472009-04-14 18:44:45 -0700217 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM
218 like SHT_GNU_ATTRIBUTES.
219
Roland McGrath94f43832009-04-14 04:39:32 -0700220 * readelf.c (handle_core_registers): Fix error message.
221
Roland McGrath04a14162009-04-14 01:02:17 -0700222 * strip.c (handle_elf: check_preserved): Don't note any change when
223 .debug_data is already filled from a previous pass.
224
Ulrich Drepper411cdb22009-02-05 22:04:26 -08002252009-02-05 Ulrich Drepper <drepper@redhat.com>
226
Ulrich Drepper51b3f472009-02-05 22:10:39 -0800227 * objdump.c (show_relocs_x): Minor cleanups.
228
Ulrich Drepper411cdb22009-02-05 22:04:26 -0800229 * readelf.c (print_cfa_program): Correct a few labels.
Ulrich Drepper973a9c72009-02-05 22:56:39 -0800230 Print first DW_CFA_expression and DW_CFA_val_expression parameter
231 as register.
Ulrich Drepper411cdb22009-02-05 22:04:26 -0800232
Ulrich Drepper5ee720c2009-02-01 16:18:18 -08002332009-02-01 Ulrich Drepper <drepper@redhat.com>
234
Ulrich Drepper95fa15e2009-02-01 19:06:10 -0800235 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
236 into ...
237 (show_relocs_x): ...here. New function.
Ulrich Drepperf44f0ce2009-02-01 21:31:26 -0800238 (show_relocs): Better spacing in output.
Ulrich Drepper95fa15e2009-02-01 19:06:10 -0800239
Ulrich Dreppercbb422e2009-02-01 18:18:55 -0800240 * objdump.c (show_relocs_rela): Show offsets as signed values.
241
Ulrich Drepper5ee720c2009-02-01 16:18:18 -0800242 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
243 Improve some error messages.
244 Use program_invocation_short_name instead of AR macro.
245 * Makefile.am (CFLAGS_ar): Remove.
246 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
247 * objdump.c (parse_opt): Likewise.
248 * readelf.c (parse_opt): Likewise.
249
Roland McGrath51f01282009-01-27 17:08:03 -08002502009-01-27 Roland McGrath <roland@redhat.com>
251
252 * readelf.c (print_ops): Notice short length, don't overrun buffer
253 (still need to fix LEB128).
254
255 * readelf.c (print_ops): Fix DW_OP_call[24] decoding.
256
257 * readelf.c (print_ops): Print (empty)\n when LEN == 0.
258
Ulrich Drepper62c46532009-01-24 17:01:08 -08002592009-01-24 Ulrich Drepper <drepper@redhat.com>
260
261 * readelf.c (print_debug_frame_section): Fix computation of vma_base
262 for PC-relative mode.
263
Ulrich Drepperd7285e12009-01-23 16:10:44 -08002642009-01-23 Ulrich Drepper <drepper@redhat.com>
265
Ulrich Drepperccccab02009-01-23 16:32:21 -0800266 * size.c (process_file): When handling archive, close file descriptor
267 here. For unknown file format also close file descriptor.
268 (handle_ar): Don't close file descriptor here.
269
Ulrich Drepperd7285e12009-01-23 16:10:44 -0800270 * readelf.c (parse_opt): Move code to add to dump_data_sections and
271 string_sections list in local function add_dump_section. Adjust 'x'
272 key handling. For 'a' key add .strtab, .dynstr, and .comment section
273 to string_sections list.
274
Roland McGrathe9de9b42009-01-22 13:05:40 -08002752009-01-22 Roland McGrath <roland@redhat.com>
276
Roland McGrath9a847e12009-01-22 19:55:00 -0800277 * readelf.c (print_phdr): Don't print section mapping when no sections.
278
Roland McGrathd759aa62009-01-22 19:17:07 -0800279 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
280
Roland McGrathcabeeee2009-01-22 13:17:45 -0800281 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
282 and reset it only for the 'true' cases.
283
284 * Makefile.am (addr2line_no_Wformat): New variable.
285
Roland McGrathe9de9b42009-01-22 13:05:40 -0800286 * readelf.c (print_debug_frame_section): Use t instead of j formats
287 for ptrdiff_t OFFSET.
288
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -08002892009-01-21 Ulrich Drepper <drepper@redhat.com>
290
291 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
Ulrich Drepperf93ee8d2009-01-21 15:02:03 -0800292 test. Handle debuginfo files.
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -0800293 (check_exception_data): First sanity test.
294
Ulrich Drepperfdc93e12009-01-17 11:47:10 -08002952009-01-17 Ulrich Drepper <drepper@redhat.com>
296
Ulrich Drepper935edde2009-01-17 16:06:42 -0800297 * readelf.c (print_debug_exception_table): Show target of ar_disp
298 field.
299
300 * elflint.c (check_program_header): Add most consistency checks for
301 PT_GNU_EH_FRAME entry.
302
Ulrich Drepperfdc93e12009-01-17 11:47:10 -0800303 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
304 ARGP_PROGRAM_BUG_ADDRESS_DEF.
305 * ar.c: Likewise.
306 * elfcmp.c: Likewise.
307 * elflint.c: Likewise.
308 * findtextrel.c: Likewise.
309 * ld.c: Likewise.
310 * nm.c: Likewise.
311 * objdump.c: Likewise.
312 * ranlib.c: Likewise.
313 * readelf.c: Likewise.
Ulrich Drepper935edde2009-01-17 16:06:42 -0800314
Ulrich Drepperfdc93e12009-01-17 11:47:10 -0800315 * size.c: Likewise.
316 * strings.c: Likewise.
317 * strip.c: Likewise.
318 * unstrip.c: Likewise.
319
Ulrich Drepperb006fbf2009-01-16 03:08:25 -08003202009-01-16 Ulrich Drepper <drepper@redhat.com>
321
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -0800322 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
323 matches .eh_frame_hdr section, if it is available. Also check that
324 the segment is allocated, not writable, not executable.
325
Ulrich Drepperb006fbf2009-01-16 03:08:25 -0800326 * readelf.c: Add -e option. Dump exception and unwind related
327 sections. Add -e to -a.
Ulrich Drepper05d2b202009-01-16 17:58:54 -0800328 (print_encoding_base): Handle DW_EH_PE_omit.
Ulrich Drepperb006fbf2009-01-16 03:08:25 -0800329 (print_debug_exception_table): Beginning of support.
330 (print_debug): Hook up print_debug_exception_table for
331 .gcc_except_table sections.
332
333 * readelf.c (print_debug_frame_section): Some fixes for last change.
334
Ulrich Drepper351bf202009-01-15 20:18:40 -08003352009-01-15 Ulrich Drepper <drepper@redhat.com>
336
337 * readelf.c (print_encoding): Now a toplevel function.
338 (print_relinfo): Likewise.
339 (print_encoding_base): Broken out of print_debug_frame_section.
340 (print_debug_frame_section): Print different header for .eh_frame
341 sections. Fix recognition of matching CIEs in .debug_frame sections.
342 Print absolute offset for PC-relative FDE locations. Don't print
343 table header for FDEs if the table is empty.
344 (read_encoded): New function.
345 (print_debug_frame_hdr_section): New function.
346 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
347 sections.
348
349 * readelf.c (handle_relocs_rel): Print section number.
350 (print_debug_abbrev_section): Likewise.
351 (print_debug_aranges_section): Likewise.
352 (print_debug_ranges_section): Likewise.
353 (print_debug_info_section): Likewise.
354 (print_debug_line_section): Likewise.
355 (print_debug_loc_section): Likewise.
356 (print_debug_macinfo_section): Likewise.
357 (print_debug_pubnames_section): Likewise.
358 (print_debug_str_section): Likewise.
359
Ulrich Drepper8b394632009-01-10 18:29:56 -08003602009-01-10 Ulrich Drepper <drepper@redhat.com>
361
362 * strings.c (read_block): Fix typo in error message string.
363
Ulrich Drepper87cf5832009-01-07 20:39:21 -08003642009-01-07 Ulrich Drepper <drepper@redhat.com>
365
366 * ld.c (ld_new_searchdir): Fix adding to search path list.
367
Ulrich Drepperac194d02009-01-06 00:30:01 -08003682009-01-06 Ulrich Drepper <drepper@redhat.com>
369
370 * readelf.c: Implement call frame debug section dumping.
Roland McGrathe9243e62009-01-21 18:54:20 -0800371
Roland McGrath3614d992009-01-05 18:05:32 -08003722009-01-05 Roland McGrath <roland@redhat.com>
373
374 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
375 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800376
Ulrich Drepper44173ed2009-01-01 19:00:41 -08003772009-01-01 Ulrich Drepper <drepper@redhat.com>
378
379 * addr2line.c: Update copyright year.
380 * ar.c: Likewise.
381 * elfcmp.c: Likewise.
382 * elflint.c: Likewise.
383 * findtextrel.c: Likewise.
384 * ld.c: Likewise.
385 * nm.c: Likewise.
386 * objdump.c: Likewise.
387 * ranlib.c: Likewise.
388 * readelf.c: Likewise.
389 * size.c: Likewise.
390 * strings.c: Likewise.
391 * strip.c: Likewise.
392 * unstrip.c: Likewise.
393
Roland McGrath468fe4d2008-12-11 21:00:12 -08003942008-12-11 Roland McGrath <roland@redhat.com>
395
396 * nm.c (sym_name): New function.
397 (show_symbols_sysv): Use it in place of elf_strptr.
398 (show_symbols_bsd, show_symbols_posix): Likewise.
399 Fixes RHBZ#476136.
400
401 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
402 elf_strptr fails.
403
Roland McGratha845f682008-12-03 03:41:58 +00004042008-12-02 Roland McGrath <roland@redhat.com>
405
406 * readelf.c (count_dwflmod, process_file): Don't presume encoding of
407 nonzero OFFSET argument to dwfl_getmodules.
408
Roland McGrath1d8bb252008-08-07 08:39:41 +00004092008-08-07 Roland McGrath <roland@redhat.com>
410
411 * addr2line.c (main): Pass string to handle_address.
412 (see_one_module): New function, subroutine of handle_address.
413 (find_symbol): Likewise.
414 (handle_address): Take string argument rather than address.
415 Convert plain number, or handle strings like "(section)+offset"
416 or "symbol+offset".
417
4182008-08-01 Roland McGrath <roland@redhat.com>
419
420 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
421 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
422
423 * readelf.c (convert): Take new argument SIZE.
424 (handle_core_register, handle_core_item): Update callers.
425 (handle_core_item): Take new arg REPEATED_SIZE.
426 (handle_core_items): Special case for a singleton item,
427 let handle_core_item handle repeats if it wants to.
428
429 * readelf.c (handle_core_items): Give abridged output
430 for identical groups repeated more than twice.
431
4322008-07-04 Roland McGrath <roland@redhat.com>
433
434 * readelf.c (handle_core_items): Handle ELF_T_ADDR.
435
Roland McGrath521c47d2008-04-11 07:01:58 +00004362008-04-10 Roland McGrath <roland@redhat.com>
437
438 * strip.c (handle_elf): Don't keep sections that kept symbol tables
439 refer to. Instead, just be sure to preserve the original symbol
440 table in the debug file so those symbols go with their sections and
441 can be elided from the stripped version of the symbol table.
442
443 * strip.c (handle_elf): When a discarded section kept in the debug
444 file refers to a nondiscard section via sh_link/sh_info, preserve
445 that nondiscarded section unmodified in the debug file as well.
446 Skip adjustment of discarded sections symbol table references when
447 that symbol table is copied in this way.
448
449 * elflint.c (check_symtab): Don't crash from missing symbol names
450 after diagnosing bogus strtab.
451
452 * strip.c (handle_elf): Cosmetic cleanup in special section contents
453 adjustment for symtab changes.
454
Roland McGrath13b69602008-04-01 02:30:05 +00004552008-03-31 Roland McGrath <roland@redhat.com>
456
457 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
458 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook
459 excuse a special section.
460
4612008-03-27 Roland McGrath <roland@redhat.com>
462
463 * elflint.c (check_sections): Check that executability and writability
464 of sections is reflected in segment p_flags.
465
Roland McGrathd11f9cb2008-03-26 20:51:59 +00004662008-03-26 Roland McGrath <roland@redhat.com>
467
468 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
469 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
470 is valid in RELRO.
471
Roland McGrath47c5c352008-02-29 10:17:16 +00004722008-02-29 Roland McGrath <roland@redhat.com>
473
474 * readelf.c (print_attributes): Add a cast.
475 * elflint.c (check_attributes): Likewise.
476
477 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
478 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
479 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
480
Ulrich Drepper834de6f2008-02-23 06:50:01 +00004812008-02-03 Ulrich Drepper <drepper@redhat.com>
482
483 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
484 when linked into executable.
485 (elf_i386_create_relocations): Likewise.
486
Roland McGrath059c83e2008-02-21 06:19:39 +00004872008-02-20 Roland McGrath <roland@redhat.com>
488
489 * readelf.c (print_attributes): New function.
490 (process_elf_file): Call it under -A.
491
492 * elflint.c (check_attributes): Implement it for real.
493
4942008-02-19 Roland McGrath <roland@redhat.com>
495
496 * elflint.c (special_sections): Handle .gnu.attributes section.
497 (check_sections): Likewise.
498 (check_attributes): New function.
499
5002008-02-10 Roland McGrath <roland@redhat.com>
501
502 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
503 sections and ET_REL files.
504
Ulrich Drepper712d78e2008-02-02 10:01:53 +00005052008-02-02 Ulrich Drepper <drepper@redhat.com>
506
507 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
508 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
509 and R_386_TLS_LE.
510 (elf_i386_create_relocations): Likewise.
511 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
512 elements.
513 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
514 (ld_generic_create_outfile): Add PT_TLS entry to program header.
515 Fix generation of PT_GNU_STACK entry.
516
Ulrich Drepperc54785a2008-02-01 18:05:21 +00005172008-02-01 Ulrich Drepper <drepper@redhat.com>
518
Ulrich Drepper7cd1bf72008-02-01 23:52:59 +0000519 * ld.c (replace_args): Prevent loop over replacements if the parameter
520 is only two characters long.
521
Ulrich Drepperc54785a2008-02-01 18:05:21 +0000522 * ld.c: Recognize sha1 argument for --build-id parameter.
523 * ldgeneric.c (create_build_id_section): Handle sha1.
524 (compute_hash_sum): New function. Broken out of compute_build_id.
525 Take hash function and context as parameters.
526 (compute_build_id): Use compute_hash_sum for md5 and the new sha1
527 implementation.
528
Ulrich Drepper89759c72008-01-31 19:44:12 +00005292008-01-31 Ulrich Drepper <drepper@redhat.com>
530
531 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
532 * ld.c: Recognize --build-id command line parameter.
533 * ld.h: Define scn_dot_note_gnu_build_id.
534 (struct ld_state): Add build_id and buildidscnidx elements.
535 * ldgeneric.c: Implement --build-id command line parameter.
536 * ldlex.l (ID): Recognize - as valid character after the first one.
537
Ulrich Drepper5530ec52008-01-29 10:42:07 +00005382008-01-29 Ulrich Drepper <drepper@redhat.com>
539
Ulrich Drepperb61c4cc2008-01-30 07:16:28 +0000540 * ld.c (replace_args): New function.
541 (main): Use it to rewrite old-style parameters.
542
Ulrich Dreppered9b6cb2008-01-30 06:33:33 +0000543 * elf32-i386.script: Add .gnu.hash section.
544 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
545 (fillin_special_symbol): Initialize st_size.
546 (sortfct_hashval): New function.
547 (create_gnu_hash): New function.
548 (create_hash): New function.
549 (ld_generic_create_outfile): Use the new functions to create the
550 hash tables.
551
Ulrich Drepper5530ec52008-01-29 10:42:07 +0000552 * elflint.c (check_gnu_hash): Fix index value printed in error message.
553
Ulrich Drepper0e864dd2008-01-25 00:18:42 +00005542008-01-24 Ulrich Drepper <drepper@redhat.com>
555
556 * elflint.c (check_group): Check that signature symbol for section
557 group is not an empty string.
558 * ldgeneric.c: Remove magic assignment of indeces in the dynsym
559 section. Start implementation of --hash-style.
560 * i386_ld.c: Likewise.
561 * ld.c: Recognize --hash-style.
562 * ld.h (struct scninfo): Add comdat_group.
563 Add additional parameter to finalize_plt callback.
564
Ulrich Drepper5449a6b2008-01-22 15:49:39 +00005652008-01-22 Ulrich Drepper <drepper@redhat.com>
566
567 * ld.h (struct callbacks): Add initialize_gotplt.
568 (struct scnhead): Add scn_dot_gotplt.
569 (struct ld_state): Add gotpltscnidx.
570 * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
571 (elf_i386_initialize_pltrel): Likewise.
572 (elf_i386_initialize_got): There is now a separate .got.plt, so
573 don't do the PLT-related work here. Initialize d_type.
574 (elf_i386_initialize_gotplt): New function.
575 (elf_i386_plt0): Use ud2a after indirect jump.
576 (elf_i386_pic_plt0_entry): Likewise.
577 (elf_i386_finalize_plt): Reference now .got.plt.
578 (elf_i386_count_relocations): For GOT entries which need no relocation
579 don't bump nrel_got.
580 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32
581 handling for split .got/.got.plt.
582 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
583 * elf32-i386.script: Sort sections for security. There are no .got
584 input sections. Add .got.plt.
585 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
586 (ld_generic_create_outfile): Initialize .got.plt section.
587 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
588
Ulrich Drepperd9488292008-01-20 16:43:15 +00005892008-01-19 Ulrich Drepper <drepper@redhat.com>
590
591 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
592 symbols are not carried over into statically linked output files.
593 Add dummy entries for more TLS relocations.
594
595 * ld.c (options): Add long names for -( and -).
596
597 * ldgeneric.c (check_definition): For newly found definitions don't
598 mark section as used if symbol is absolute.
599 (extract_from_archive): Only assign archive sequence number the first
600 time the archive is handled. Update ld_state.last_archive_used
601 if any symbol was used. Remove nround variable.
602 (file_process2): When using symbol from an archive, update
603 ld_state.group_start_archive, ld_state.archives, and
604 ld_state.tailarchives.
605 (ld_generic_file_process): If group is not handled anymore, after
606 freeing ELF handles for the archives, clear ld_state.archives and
607 *nextp. Fix wrong logic in recognizing first iteration of group
608 loop. When clearing flags, also clear ld_state.group_start_archive.
609
Ulrich Drepper5eee1222008-01-11 10:12:18 +00006102008-01-11 Ulrich Drepper <drepper@redhat.com>
611
612 * objdump.c (show_disasm): Adjust disassembler format string for
613 removal of %e.
614
Ulrich Dreppere219f1c2008-01-09 05:49:49 +00006152008-01-04 Roland McGrath <roland@redhat.com>
616
Roland McGrath059c83e2008-02-21 06:19:39 +0000617 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
618 a size greater than the items cover means multiple sets of items.
619 (handle_core_note): Update caller.
620
6212008-01-04 Roland McGrath <roland@redhat.com>
622
Ulrich Dreppere219f1c2008-01-09 05:49:49 +0000623 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
624
6252008-01-03 Roland McGrath <roland@redhat.com>
626
627 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
628
629 * elflint.c (check_dynamic): Remove duplicate initializer.
630
Ulrich Drepperad024af2008-01-02 17:42:52 +00006312008-01-02 Ulrich Drepper <drepper@redhat.com>
632
633 * addr2line.c: Update copyright year.
634 * ar.c: Likewise.
635 * elfcmp.c: Likewise.
636 * elflint.c: Likewise.
637 * findtextrel.c: Likewise.
638 * ld.c: Likewise.
639 * nm.c: Likewise.
640 * objdump.c: Likewise.
641 * ranlib.c: Likewise.
642 * readelf.c: Likewise.
643 * size.c: Likewise.
644 * strings.c: Likewise.
645 * strip.c: Likewise.
646 * unstrip.c: Likewise.
647
Ulrich Drepper3cbdd382008-01-02 17:44:39 +00006482007-12-30 Ulrich Drepper <drepper@redhat.com>
649
650 * objdump (show_disasm): Use %e after third parameter.
651
6522007-12-21 Ulrich Drepper <drepper@redhat.com>
653
654 * strip.c: Fix wrong parenthesis in a few branch predictions.
655 * strings.c: Likewise.
656
6572007-12-20 Ulrich Drepper <drepper@redhat.com>
658
659 * Makefile.am (DEFS): Add DEBUGPRED.
660 * addr2line.c: Include debugpred.h.
661 * ar.c: Likewise.
662 * elfcmp.c: Likewise.
663 * elflint.c: Likewise.
664 * findtextrel.c: Likewise.
665 * nm.c: Likewise.
666 * objdump.c: Likewise.
667 * ranlib.c: Likewise.
668 * readelf.c: Likewise.
669 * size.c: Likewise.
670 * strings.c: Likewise.
671 * strip.c: Likewise.
672 * unstrip.c: Likewise.
673 * debugpred.h: New file.
674
675 * readelf.c (handle_relocs_rel): Use elf_scnshndx.
676 (handle_relocs_rela): Likewise.
677
678 * readelf.c: Add lots of likely/unlikely.
679
680 * elflint.c: Minor cleanups.
681
Roland McGrath1a2e8f42007-12-15 23:39:34 +00006822007-11-19 Roland McGrath <roland@redhat.com>
683
684 * readelf.c (print_ops): Handle all bad op codes gracefully.
685 Print their numbers instead of just ???.
686
Roland McGrath07a696e2007-11-09 22:44:26 +00006872007-11-09 Roland McGrath <roland@redhat.com>
688
689 * readelf.c (attr_callback): Handle DW_AT_data_location.
Roland McGrath1a2e8f42007-12-15 23:39:34 +0000690 Handle block forms to mean a DWARF expression for DW_AT_allocated,
691 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
692 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
693 DW_AT_upper_bound.
Roland McGrath07a696e2007-11-09 22:44:26 +0000694
Roland McGrathe4c22ea2007-10-23 13:07:39 +00006952007-10-20 Roland McGrath <roland@redhat.com>
696
697 * unstrip.c (options): Update -R description.
698 (struct symbol): Put symbol details a union with a size_t pointer
699 `duplicate'.
700 (compare_symbols_output): Use null ->name as marker for discard
701 symbols, not zero *->map.
702 (copy_elided_sections): Record forwarding pointers for discarded
703 duplicates and fill SYMNDX_MAP elements through them.
704
705 * readelf.c (process_file): Set offline_next_address to 0 at start.
706 (struct process_dwflmod_args): New type.
707 (process_dwflmod): Take args in it, pass fd to process_elf_file.
708 (process_file): Update caller; dup FD for passing to libdwfl.
709 (process_elf_file): Take new arg FD. For ET_REL file when
710 displaying data affected by libdwfl relocation, open a new Elf handle.
711
7122007-10-17 Roland McGrath <roland@redhat.com>
713
714 * readelf.c (print_debug_line_section): For invalid data inside a
715 unit with plausible length, keep printing at the next unit boundary.
716
717 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
718
7192007-10-16 Roland McGrath <roland@redhat.com>
720
721 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
722
Ulrich Drepperb597dfa2007-10-16 05:21:27 +00007232007-10-15 Roland McGrath <roland@redhat.com>
724
725 * make-debug-archive.in: New file.
726 * Makefile.am (EXTRA_DIST): Add it.
727 (make-debug-archive): New target.
728 (bin_SCRIPTS, CLEANFILES): Add it.
729
7302007-10-10 Roland McGrath <roland@redhat.com>
731
732 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
733 Use it to check MERGE|STRINGS for .debug_str.
734 (check_sections): Handle exact_or_gnuld.
735
7362007-10-08 Roland McGrath <roland@redhat.com>
737
738 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
739 64-bit struct timeval with 32-bit tv_usec.
740
7412007-10-07 Roland McGrath <roland@redhat.com>
742
743 * readelf.c (check_archive_index): New function.
744 (process_file): Call it. Change signature to take only fd and name.
745 Use libdwfl to open the file, then iterate on its modules (multiple
746 for an archive) to print file name and call process_elf_file.
747 (main): Update caller. Let process_file do elf_begin.
748 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
749 (process_elf_file): Take only Dwfl_Module * argument.
750 Don't print the file name here.
751 (print_debug_*_section): Take Dwfl_Module * argument.
752 (print_debug): Likewise. Update caller.
753 (format_dwarf_addr): New function.
754 (print_debug_ranges_section): Use it.
755 (attr_callback): Likewise.
756 (print_debug_line_section, print_debug_loc_section): Likewise.
757
758 * readelf.c (print_debug_ranges_section): Translate all strings.
759 (print_debug_loc_section): Likewise.
760
761 * unstrip.c (copy_elided_sections): Initialize SEC.
762
763 * ar.c (do_oper_insert): Put trailing / on short names.
764
765 * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
766
767 * arlib2.c (arlib_add_long_name): Adjust for header size.
768
769 * arlib.c (arlib_finalize): Pad long name table to keep size even.
770
771 * ar.c (do_oper_insert): Use write_retry for padding write.
772
773 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
774 Unconditionally set FOUND[CNT]->elf when setting ->mem.
775 (remember_long_name): New function.
776 (do_oper_insert): Call it. Correctly use length of basename,
777 not original name. Don't store long name twice for new member.
778
7792007-10-06 Roland McGrath <roland@redhat.com>
780
781 * elflint.c (check_note): Skip empty segment.
782 (check_note_section): Skip empty section.
783
784 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
785 (handle_output_dir_module, handle_implicit_modules): Pass it down.
786 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
787 (compare_alloc_sections): Take new arg REL, ignore address if true.
788 (compare_sections): Likewise, pass it down.
789 (compare_sections_rel, compare_sections_nonrel): New functions.
790 (find_alloc_sections_prelink, copy_elided_sections): Use them
791 instead of compare_sections.
792 (sections_match): New function, broken out of ...
793 (find_alloc_section): ... here.
794 (copy_elided_sections): Reorganize section match-up logic.
795 Use sections_match for SHF_ALLOC in ET_REL.
796 For ET_REL, let the nonzero sh_addr from the debug file dominate.
797
798 * unstrip.c (add_new_section_symbols): Take new arg REL.
799 When true, do not update section symbol values.
800 (collect_symbols): Likewise. Update section symbols with address
801 of chosen output section, not original section.
802 (check_symtab_section_symbols, copy_elided_sections): Update callers.
803
804 * unstrip.c (compare_alloc_sections): At the same address, preserve
805 original section order.
806
807 * elflint.c (special_sections): Don't require MERGE|STRINGS for
808 .debug_str, it didn't always have them with older tools.
809
810 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
811
8122007-10-05 Roland McGrath <roland@redhat.com>
813
814 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
815 ET_REL file.
816
817 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
818 SHN_UNDEF as "bad section". Use shndx value in messages.
819
820 * elflint.c (special_sections): Add ".debug_str". Decrement namelen
821 for ".debug" so it matches as a prefix.
822 (IS_KNOWN_SPECIAL): New macro.
823 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS
824 type even under -d, for a .debug* or .shstrtab section.
825
826 * readelf.c (print_ops): Use hex for address operand.
827
8282007-10-04 Roland McGrath <roland@redhat.com>
829
830 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
831 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for
832 sections mapped to SHN_UNDEF.
833
Ulrich Drepper3fc3d7b2007-10-04 18:40:28 +00008342007-10-04 Ulrich Drepper <drepper@redhat.com>
835
836 * readelf.c (dump_archive_index): Avoid warning about uninitialized
837 variable with older glibc versions.
838 Add some branch prediction.
839
Roland McGrath59ea7f32007-10-04 08:50:09 +00008402007-10-04 Roland McGrath <roland@redhat.com>
841
842 * readelf.c (print_archive_index): New variable.
843 (options, parse_opt): Accept -c/--archive-index to set it.
844 (dump_archive_index): New function.
845 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
846 Call dump_archive_index on archives if set.
847 (main): Update caller.
848 (any_control_option): Give it file scope, moved out of ...
849 (parse_opt): ... here.
850
8512007-10-03 Roland McGrath <roland@redhat.com>
852
853 * unstrip.c (struct arg_info): Add `list' flag.
854 (options, parse_opt): Grok -n/--list to set it.
855 (list_module): New function.
856 (handle_implicit_modules): Call it under -n.
857
858 * elflint.c (check_note_section): New function.
859 (check_sections): Call it for SHT_NOTE.
860
861 * readelf.c (handle_notes): Use sections when available.
862
863 * elflint.c (check_note_data): New function, broken out of ...
864 (check_note): ... here. Call it and elf_getdata_rawchunk.
865
866 * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
867 Use elf_getdata_rawchunk and gelf_getauxv.
868 (handle_notes_data): New function, broken out of ...
869 (handle_notes): ... here. Call it and elf_getdata_rawchunk.
870
Roland McGrath241ac022007-10-01 18:21:46 +00008712007-10-01 Roland McGrath <roland@redhat.com>
872
Roland McGrathac0a16c2007-10-01 18:50:35 +0000873 * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
874
Roland McGrath241ac022007-10-01 18:21:46 +0000875 * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
876
Roland McGrathc76f0b02007-09-27 07:31:33 +00008772007-09-10 Roland McGrath <roland@redhat.com>
878
879 * readelf.c (options): Give -p optional argument, alias --string-dump.
880 (string_sections, string_sections_tail): New static variables.
881 (parse_opt): Set them when -p has an argument.
882 (print_string_section): New function, broken out of ...
883 (print_strings): ... here. Call it.
884 (dump_data_section): New function, broken out of ...
885 (dump_data): ... here. Call it.
886 (for_each_section_argument): New function, broken out of ...
887 (dump_data): ... here. Call it.
888 (dump_strings): New function.
889
8902007-08-31 Roland McGrath <roland@redhat.com>
891
892 * readelf.c (print_strings): Typo fix.
893
Roland McGrathcb6d8652007-08-23 08:10:54 +00008942007-08-23 Roland McGrath <roland@redhat.com>
895
896 * readelf.c (printf_with_wrap): Function removed.
897 (REGISTER_WRAP_COLUMN): New macro.
898 (handle_core_register): Use print_core_item instead.
899 (struct register_info): New type.
900 (compare_registers, compare_register_sets): New functions.
901 (register_bitpos, compare_sets_by_info): New functions.
902 (handle_core_registers): Use those to segregate and sort registers
903 for display.
904
905 * readelf.c (ITEM_WRAP_COLUMN): New macro.
906 (print_core_item): New function.
907 (handle_core_item): Use it instead of printf_with_wrap.
908 (compare_core_items, compare_core_item_groups): New functions.
909 (handle_core_items): Use them. Sort by group and force line breaks
910 between groups.
911
912 * readelf.c (handle_core_registers, handle_core_items): New functions,
913 broken out of ...
914 (handle_core_note): ... here. Call them.
915
9162007-08-22 Roland McGrath <roland@redhat.com>
917
918 * unstrip.c (new_shstrtab): New function, broken out of ...
919 (copy_elided_sections): ... here.
920
9212007-08-20 Roland McGrath <roland@redhat.com>
922
923 Avoid local function trampolines in nm binary.
924 * nm.c (sort_by_address): Move to a static function instead of local
925 inside show_symbols.
926 (sort_by_name_strtab): New static variable.
927 (sort_by_name): Use it. Move to a static function instead of local
928 inside show_symbols.
929 (show_symbols): Set sort_by_name_strtab.
930
9312007-08-19 Roland McGrath <roland@redhat.com>
932
933 * readelf.c (handle_auxv_note): New function.
934 (handle_notes): Call it.
935
936 * readelf.c (printf_with_wrap, convert): New functions.
937 (handle_core_item, (handle_core_register): New functions.
938 (handle_notes): Call those with details from ebl_core_note.
939
Roland McGrath099dd522007-08-13 22:58:36 +00009402007-08-12 Roland McGrath <roland@redhat.com>
941
942 * elflint.c (check_note): Accept type 0 with name "Linux".
943
944 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
945
946 * elflint.c (section_flags_string): Return "none" for 0, not "".
947
Roland McGrathd8221722007-08-11 21:18:09 +00009482007-08-11 Roland McGrath <roland@redhat.com>
949
950 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
951
Ulrich Drepperc98bcc72007-08-04 17:06:14 +00009522007-08-04 Ulrich Drepper <drepper@redhat.com>
953
954 * readelf.c (hex_dump): Use isprint to determine whether to print
955 character itself or full stop character.
956 (dump_data): No need to check endp for NULL after strtol call.
957
Roland McGrath60fc84c2007-08-03 21:59:15 +00009582007-08-03 Roland McGrath <roland@redhat.com>
959
960 * readelf.c (print_string_sections): New variable.
961 (options, parse_opt): Handle --strings/-p to set it.
962 (print_strings): New function.
963 (process_elf_file): Call it under -p.
964
965 * readelf.c (options): Add hidden aliases --segments, --sections,
966 as taken by binutils readelf.
967
9682007-08-01 Roland McGrath <roland@redhat.com>
969
970 * readelf.c (dump_data_sections, dump_data_sections_tail):
971 New variables.
972 (options, parse_opt): Handle --hex-dump/-x, set them.
973 (hex_dump): New function.
974 (dump_data): New function, call it.
975 (process_elf_file): Call it.
976
9772007-07-25 Roland McGrath <roland@redhat.com>
978
979 * addr2line.c (show_symbols): New variable.
980 (print_addrsym): New function.
981 (handle_address): Call it.
982 (options, parse_opt): Handle -S/--symbols.
983
Ulrich Drepperb0243862007-06-06 00:09:36 +00009842007-06-05 Ulrich Drepper <drepper@redhat.com>
985
986 * addr2line.c: Update for latest autoconf header.
987 * ar.c: Likewise.
988 * elfcmp.c: Likewise.
989 * elflint.c: Likewise.
990 * findtextrel.c: Likewise.
991 * ld.c: Likewise.
992 * ldgeneric.c: Likewise.
993 * nm.c: Likewise.
994 * objdump.c: Likewise.
995 * ranlib.c: Likewise.
996 * readelf.c: Likewise.
997 * size.c: Likewise.
998 * strings.c: Likewise.
999 * strip.c: Likewise.
1000 * unstrip.c: Likewise.
1001
Roland McGrath9aa8ef72007-05-18 08:59:43 +000010022007-05-18 Roland McGrath <roland@redhat.com>
1003
1004 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
1005 stripped file, so as not to duplicate a section copied in both.
1006
1007 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
1008
10092007-05-17 Roland McGrath <roland@redhat.com>
1010
1011 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
1012
1013 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
1014
1015 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
1016 call make_directories here.
1017 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
1018 (handle_dwfl_module): Likewise.
1019 (handle_implicit_modules): Update callers.
1020 (handle_output_dir_module): Likewise. Don't do make_directories here.
1021
1022 * unstrip.c (get_section_name): New function, broken out of ...
1023 (copy_elided_sections): here. Update callers.
1024 (find_alloc_section): Broken out of ...
1025 (copy_elided_sections): ... here. Update caller.
1026 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
1027 update STT_SECTION symbols' st_value fields as a side effect.
1028 (check_symtab_section_symbols): Update caller.
1029 (add_new_section_symbols): Set st_value in symbols added.
1030 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
1031 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
1032 from .bss to .dynbss.
1033 (find_alloc_sections_prelink): New function. Associate debug file
1034 allocated SHT_NOBITS shdrs with stripped moved by prelink via
1035 .gnu.prelink_undo information.
1036 (copy_elided_sections): Call it when we couldn't find every allocated
1037 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
1038 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
1039 (handle_file): Update callers.
1040
1041 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
1042 named ".comment".
1043
1044 * elflint.c (check_sections): Fix association of segments with
1045 sections when p_memsz > p_filesz.
1046
10472007-04-29 Roland McGrath <roland@redhat.com>
1048
1049 * addr2line.c (options, main): Tweak argp group settings to fix
1050 usage output.
1051
10522007-04-28 Roland McGrath <roland@redhat.com>
1053
1054 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
1055 sizes to match sections adjusted in the stripped file.
1056
Roland McGrath4be15242007-04-25 03:09:33 +000010572007-04-24 Roland McGrath <roland@redhat.com>
1058
1059 * elfcmp.c (OPT_HASH_INEXACT): New macro.
1060 (hash_inexact): New variable.
1061 (options, parse_opt): Add --hash-inexact option to set it.
1062 (hash_content_equivalent): New function.
1063 (main): Call it for differing SHT_HASH sections under --hash-inexact.
1064
10652007-04-23 Roland McGrath <roland@redhat.com>
1066
1067 * unstrip.c: New file.
1068 * Makefile.am (bin_PROGRAMS): Add it.
1069 (unstrip_LDADD): New variable.
1070
1071 * strip.c (options): Allow --output for -o.
1072
Ulrich Drepper8b383102007-02-16 00:31:57 +000010732007-02-15 Ulrich Drepper <drepper@redhat.com>
1074
1075 * readelf.c: Remove unused code. Add a few consts.
1076
Ulrich Drepper903c1162007-02-15 19:40:37 +000010772007-02-15 Roland McGrath <roland@redhat.com>
1078
1079 * readelf.c (print_debug): Fix brainos in SHDR test.
1080
Roland McGrathf82a1ec2007-02-06 04:47:44 +000010812007-02-05 Roland McGrath <roland@redhat.com>
1082
1083 * ar.c: Include <limits.h>, since we use LONG_MAX.
1084
Ulrich Drepper0fe63532007-02-05 21:05:51 +000010852007-02-05 Ulrich Drepper <drepper@redhat.com>
1086
Ulrich Drepper8b383102007-02-16 00:31:57 +00001087 * ar.c: Add ugly hack to work around gcc complaining that we
Ulrich Drepper93ab56f2007-02-05 22:12:41 +00001088 ignore fchown's return value.
1089 (do_oper_insert): Handle error when writing padding.
1090 * ranlib.c: Add fchown complain work around.
1091
Ulrich Drepper0fe63532007-02-05 21:05:51 +00001092 * arlib.c: Make symtab a global variable. Change all users.
1093 * arlib2.c: Likewise.
1094 * ranlib.c: Likewise.
1095 * ar.c: Likewise.
1096 * arlib.h: Declare it.
1097
Ulrich Drepperaa915fd2007-02-05 07:25:33 +000010982007-01-11 Roland McGrath <roland@redhat.com>
1099
1100 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
1101 SHF_MASKPROC bits separately from generic sh_flags validation.
1102
Ulrich Drepperce0bdb62007-02-05 07:13:52 +000011032007-02-04 Ulrich Drepper <drepper@redhat.com>
1104
1105 * ar.c: New file.
1106 * arlib.c: New file.
1107 * arlib2.c: New file.
1108 * arlib.h: New file.
1109 * Makefile (noinst_LIBRARIES): Add libar.
1110 (libar_a_SOURCES): Define.
1111 (ar_LDADD): Define.
1112 (CFLAGS_ar): Define.
1113 * ranlib.c: Change to use arlib.
1114
1115 * elflint.c (check_symtab): Work around GNU ld bug which omits
1116 sections but not symbols in those sections.
1117
Ulrich Drepperb770cf92007-01-10 21:02:34 +000011182007-01-10 Ulrich Drepper <drepper@redhat.com>
1119
1120 * addr2line.c: Update copyright year.
1121 * elfcmp.c: Likewise.
1122 * elflint.c: Likewise.
1123 * findtextrel.c: Likewise.
1124 * ld.c: Likewise.
1125 * nm.c: Likewise.
1126 * objdump.c: Likewise.
1127 * ranlib.c: Likewise.
1128 * readelf.c: Likewise.
1129 * size.c: Likewise.
1130 * strings.c: Likewise.
1131 * strip.c: Likewise.
1132
Ulrich Drepper7c0e79f2006-12-09 21:10:19 +000011332006-12-09 Ulrich Drepper <drepper@redhat.com>
1134
1135 * elflint.c (compare_hash_gnu_hash): New function. Report if the
1136 two hash tables have different content (module expected omission
1137 of undefined symbols).
1138
Roland McGrath8190db62006-12-17 23:56:51 +000011392006-10-31 Roland McGrath <roland@redhat.com>
1140
1141 * elflint.c (check_program_header): Don't complain about
Ulrich Drepper56bc0b82006-12-18 22:38:08 +00001142 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
Roland McGrath8190db62006-12-17 23:56:51 +00001143
11442006-09-19 Jakub Jelinek <jakub@redhat.com>
1145
1146 * strip.c (process_file): Disallow -f on archives.
1147
11482006-10-09 Roland McGrath <roland@redhat.com>
1149
1150 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
1151
Roland McGrathc373d852006-10-10 00:25:21 +000011522006-08-29 Roland McGrath <roland@redhat.com>
1153
1154 * Makefile.am (MAINTAINERCLEANFILES): New variable.
1155
1156 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
1157 Reported by Christian Aichinger <Greek0@gmx.net>.
1158
1159 * elflint.c (valid_e_machine): Add EM_ALPHA.
1160 Reported by Christian Aichinger <Greek0@gmx.net>.
1161
Ulrich Drepper231c5902006-08-08 22:00:11 +000011622006-08-08 Ulrich Drepper <drepper@redhat.com>
1163
1164 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
1165 Keep track of which "high DT" entries are present.
1166 Check that either old or GNU-style hash table is present.
1167 If GNU-style hash table is used a symbol table is mandatory.
1168 Check that if any prelink entry is present all of them are.
1169 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
1170 table if they don't refer to functions.
1171
Roland McGrath858b1892006-07-17 08:41:15 +000011722006-07-17 Roland McGrath <roland@redhat.com>
1173
1174 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
1175 (add_version): Likewise for argument.
1176 (check_versym): Cast constant to GElf_Versym for comparison.
1177
Roland McGrath4ec807e2006-07-13 03:59:46 +000011782006-07-12 Roland McGrath <roland@redhat.com>
1179
1180 * readelf.c (handle_gnu_hash): Add casts for machines where
1181 Elf32_Word != unsigned int.
1182
Ulrich Drepperdcf61602006-07-12 19:59:02 +000011832006-07-12 Ulrich Drepper <drepper@redhat.com>
1184
1185 * elflint.c (check_sysv_hash64): Fix printf format.
1186
Ulrich Dreppercc415622006-07-12 19:42:23 +000011872006-07-11 Roland McGrath <roland@redhat.com>
Ulrich Drepper8ae58142006-07-12 05:22:32 +00001188
Ulrich Dreppercc415622006-07-12 19:42:23 +00001189 * addr2line.c (options): English fix in -f doc string.
1190
1191 * addr2line.c (use_comp_dir): New variable.
1192 (options, parse_opt): Grok -A/--absolute to set it.
1193 (handle_address): If set, prepend dwfl_line_comp_dir results to
1194 relative file names.
Ulrich Drepper8ae58142006-07-12 05:22:32 +00001195
Ulrich Drepper28ed8952006-07-07 03:43:47 +000011962006-07-06 Ulrich Drepper <drepper@redhat.com>
1197
1198 * elflint.c: Adjust for latest new hash table format.
1199 * readelf.c: Likewise.
1200
1201 * elflint.c (check_versym): Ignore hidden bit when comparing version
1202 numbers.
1203
12042006-07-05 Ulrich Drepper <drepper@redhat.com>
1205
1206 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
1207 discarded COMDAT symbols.
1208
1209 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
1210 (elf_i386_create_relocations): Likewise.
1211 * ld.h (struct symbol): Add local and hidden bits.
1212 * ld.c (create_special_section_symbol): These synthsized symbols
1213 are local and hidden.
1214 * ldgeneric.c (file_process2): Check whether input file matches
1215 the emulation.
1216 (fillin_special_symbol): Create symbols as local and/or hidden
1217 if requested.
1218 (ld_generic_create_outfile): Make local copy of symbol.
1219 Don't hide global, defined symbols in dynamic symbol table unless
1220 requested. Synthetic symbols have no version information.
1221
1222 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
1223 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
1224
12252006-07-04 Ulrich Drepper <drepper@redhat.com>
1226
1227 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
1228 testing.
1229
12302006-07-03 Ulrich Drepper <drepper@redhat.com>
1231
1232 * elflint.c: Add testing of DT_GNU_HASH.
1233 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
1234
1235 * Makefile.am: Add hacks to create dependency files for non-generic
1236 linker.
1237
Ulrich Drepper6ca46002006-06-12 22:40:23 +000012382006-06-12 Ulrich Drepper <drepper@redhat.com>
1239
1240 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
1241 section if creating a DSO and no interpreter is given.
1242 (ld_generic_create_outfile): Don't store reference to symbols in
1243 discarded COMDAT groups. Don't create PHDR and INTERP program header
1244 for DSO if no interpreter is specified.
Ulrich Drepper595d0e72006-06-12 23:25:17 +00001245 (create_verneed_data): Pretty printing.
1246
Ulrich Drepper6ca46002006-06-12 22:40:23 +00001247 * ldscript.y (content): If a DSO is created don't set default
1248 interpreter from linker script.
1249
1250 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
1251 for symbols in discarded COMDAT groups.
1252 (elf_i386_create_relocations): Likewise.
1253 * ld.h (struct scninfo): Add unused_comdat.
1254 * ldgeneric.c (add_section): Also check group signature when
1255 matching COMDAT sections.
1256 (add_relocatable_file): Ignore symbols in COMDAT group which are
1257 discarded.
1258
1259 * elflint.c (check_one_reloc): For *_NONE relocs only check type
1260 and symbol reference.
1261
Ulrich Drepper54f33a72006-06-11 09:07:37 +000012622006-06-11 Ulrich Drepper <drepper@redhat.com>
1263
Ulrich Dreppercbb51e52006-06-11 20:25:23 +00001264 * elflint.c (check_dynamic): Fix checking value of tags which are
1265 offsets in the string section. Make sure DT_STRTAB points to the
1266 section referenced in sh_link.
1267
1268 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
1269
Ulrich Drepper54f33a72006-06-11 09:07:37 +00001270 * ld.c: Recognize --eh-frame-hdr option.
1271 * ld.h (struct ld_state): Add eh_frame_hdr field.
1272 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
1273
1274 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
1275 SH_FLAGS_COMBINE.
1276 (add_relocatable_file): Minor optimization of last change.
1277 (match_section): Don't preserve SHF_GROUP flag any longer.
1278
Ulrich Drepper2d880282006-06-11 00:20:43 +000012792006-06-10 Ulrich Drepper <drepper@redhat.com>
1280
1281 * ld.c (parse_z_option): Recognize execstack and noexecstack.
Ulrich Drepper4f0a7a82006-06-11 00:53:45 +00001282 Handle record and ignore as position dependent options.
1283 (parse_z_option_2): Handle ignore and record here.
Ulrich Drepper2d880282006-06-11 00:20:43 +00001284 * ld.h (struct ld_state): Add execstack field.
1285 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
1286 sections.
1287 (ld_generic_create_outfile): Fix program header creation in native
1288 linker. Add PT_GNU_STACK program header.
1289
Ulrich Dreppera688a732006-06-10 06:33:00 +000012902006-06-09 Ulrich Drepper <drepper@redhat.com>
1291
1292 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
1293 for PLT entries if there is no local definition.
1294
1295 * ld.c (parse_option): Handle -z ignore like --as-needed and
1296 -z record like --no-as-needed.
1297 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
1298 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
1299 looping over DSOs. When deciding about adding DT_NEEDED entries
1300 use ->as_needed instead of ignore_unused_dsos.
1301
Ulrich Drepper8c56fe32006-05-31 15:50:43 +000013022006-05-31 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001303
Ulrich Drepper8c56fe32006-05-31 15:50:43 +00001304 * ld.c: Recognize --as-needed and --no-as-needed options.
1305 * ld.h (struct usedfile): Add as_needed field.
1306 (struct ld_state): Likewise.
1307 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
1308 the list.
1309 * ldscript.y (filename_id_list): Split to correctly parse all
1310 combinations.
1311 (mark_as_needed): Fix loop.
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001312
Ulrich Drepper697f4db2006-06-10 06:50:47 +000013132006-05-28 Ulrich Drepper <drepper@redhat.com>
1314
1315 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
1316 and colno.
1317
Ulrich Drepper2cb8e732006-05-27 21:57:27 +000013182006-05-27 Ulrich Drepper <drepper@redhat.com>
1319
1320 * readelf.c (handle_relocs_rela): Better notations for addon value.
Ulrich Drepper41a99082006-05-28 00:01:43 +00001321 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
Ulrich Drepper2cb8e732006-05-27 21:57:27 +00001322
Ulrich Drepper82c345d2006-04-04 22:07:54 +000013232006-04-04 Ulrich Drepper <drepper@redhat.com>
1324
1325 * addr2line.c: Update copyright year.
1326 * elfcmp.c: Likewise.
1327 * elflint.c: Likewise.
1328 * findtextrel.c: Likewise.
1329 * ld.c: Likewise.
1330 * nm.c: Likewise.
1331 * objdump.c: Likewise.
1332 * ranlib.c: Likewise.
1333 * readelf.c: Likewise.
1334 * size.c: Likewise.
1335 * strings.c: Likewise.
1336 * strip.c: Likewise.
1337
Roland McGrathdd7e22b2006-03-09 23:05:47 +000013382006-03-09 Roland McGrath <roland@redhat.com>
1339
1340 * Makefile.am (AM_LDFLAGS): New variable.
1341
Roland McGrath060fa052006-03-02 07:51:50 +000013422006-03-01 Roland McGrath <roland@redhat.com>
1343
1344 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
1345 for dwarf.h changes matching 3.0 spec.
1346 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
1347
Ulrich Drepper038129b2005-12-04 16:47:24 +000013482005-12-04 Ulrich Drepper <drepper@redhat.com>
1349
1350 * elflint.c (check_one_reloc): If relocation section is not loaded,
1351 don't check whether the relocations modify read-only sections or
1352 loaded and unloaded sections.
1353
Ulrich Drepper607e0542005-12-04 15:51:06 +000013542005-11-28 Ulrich Drepper <drepper@redhat.com>
1355
1356 * elflint.c (check_one_reloc): Take additional parameters. Use
1357 them to determine whether relocation is valid in this type of
1358 file. DSOs and executables can contain relocation sections in
1359 unloaded sections which just show the relocations the linker
1360 applied. Adjust all callers.
1361 (check_program_header): Check that PT_PHDR is loaded and that offset
1362 matches the one in the ELF header.
1363
Roland McGrath6724c902005-10-28 07:07:19 +000013642005-10-26 Roland McGrath <roland@redhat.com>
1365
1366 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
1367
Ulrich Drepperd0449522005-09-03 07:23:52 +000013682005-09-03 Ulrich Drepper <drepper@redhat.com>
1369
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001370 * strip.c (handle_elf): Unify some error messages.
1371 * ld.c (main): Likewise.
1372 * ldgeneric.c (open_elf): Likewise.
1373 * elfcmp.c (main): Likewise.
1374 * elflint.c (check_elf_header): Likewise.
1375
1376 * size.c (process_file): Fix typo in error message.
1377
Ulrich Drepperd0449522005-09-03 07:23:52 +00001378 * readelf.c: Lots of little cleanups. Use _unlocked functions.
1379
Ulrich Dreppera60501e2005-09-02 19:50:17 +000013802005-09-02 Ulrich Drepper <drepper@redhat.com>
1381
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001382 * strings.c (main): Reset elfmap variable after munmap call.
Ulrich Drepper618795f2005-09-02 20:01:37 +00001383 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
Ulrich Dreppera60501e2005-09-02 19:50:17 +00001384
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000013852005-08-28 Ulrich Drepper <drepper@redhat.com>
1386
1387 * ranlib.c: Don't define pread_retry and write_retry here.
1388
1389 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
1390 (CLEANFILES): Add *.gcno *.gcda *.gconv.
1391
1392 * strings.c (process_chunk): Reorder expressions in conditional
1393 (process_chunk_mb): Likewise.
1394
1395 * strings.c: New file.
1396 * Makefile.am (bin_PROGRAMS): Add strings.
1397 (strings_no_Wstring): Define.
1398 (strings_LDADD): Define.
1399
Roland McGrath71e15a02005-08-27 10:33:26 +000014002005-08-27 Roland McGrath <roland@redhat.com>
1401
1402 * addr2line.c (dwarf_diename_integrate): Function removed.
1403 (print_dwarf_function): Use plain dwarf_diename.
1404
Ulrich Drepperc5a06cd2005-08-24 19:50:14 +000014052005-08-24 Ulrich Drepper <drepper@redhat.com>
1406
1407 * elflint.c (check_versym): Versioned symbols should not have
1408 local binding.
1409
Ulrich Drepper5d832292005-08-15 21:36:27 +000014102005-08-15 Ulrich Drepper <drepper@redhat.com>
1411
Ulrich Drepper61655e02005-08-16 04:23:02 +00001412 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
1413 undefined.
1414
Ulrich Drepper5d832292005-08-15 21:36:27 +00001415 * Makefile.am: Add rules to build ranlib.
1416 * ranlib.c: New file.
1417
Roland McGrath18e13422005-08-15 08:01:25 +000014182005-08-14 Roland McGrath <roland@redhat.com>
1419
1420 * elflint.c (check_sections): Use ebl_section_type_name and allow any
1421 sh_type it recognizes.
1422
1423 * elflint.c (check_sections): Print unknown flags in hex, don't
1424 truncate high bits. Print section number and name for unknown type.
1425
Roland McGrathf6895042005-08-13 20:56:52 +000014262005-08-13 Roland McGrath <roland@redhat.com>
1427
1428 * elflint.c (check_program_header): Use ebl_segment_type_name and
1429 allow any p_type it recognizes. Include p_type value in error
1430 message for unknown type.
1431
Ulrich Drepperc5c33a62005-08-13 17:50:47 +000014322005-08-13 Ulrich Drepper <drepper@redhat.com>
1433
1434 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
1435 to ebl_check_special_symbol.
1436 (check_sections): Pass ehdr to ebl_bss_plt_p.
1437
Roland McGrath653d3762005-08-13 01:59:10 +000014382005-08-12 Roland McGrath <roland@redhat.com>
1439
1440 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
1441 refers to the right section if it's not SHN_ABS.
1442 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
1443
1444 * elflint.c (check_sections): Don't complain about a non-NOBITS
1445 section taking no segment space, if it's sh_size is 0.
1446
1447 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
1448 be PROGBITS or NOBITS.
1449
1450 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
1451 standard st_value and st_size checks.
1452
Roland McGrath1c83bf12005-08-11 07:03:55 +000014532005-07-28 Roland McGrath <roland@redhat.com>
Ulrich Drepperfaf4d192005-08-11 05:12:05 +00001454
Roland McGrath1c83bf12005-08-11 07:03:55 +00001455 * addr2line.c (options, parse_opt): Don't handle -e here.
1456 (executable): Variable removed.
1457 (argp_children): New static variable.
1458 (argp): Use it. Make const.
1459 (main): Fill in argp_children from dwfl_standard_argp ().
1460 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
1461 (print_dwarf_function): New function. Try to figure out inline chain.
1462 (elf_getname): Function removed, libdwfl does it for us.
1463 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
1464 Use dwfl_module_addrname instead of elf_getname.
1465 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
1466 * Makefile.am (INCLUDES): Add libdwfl directory to path.
1467
14682005-08-10 Ulrich Drepper <drepper@redhat.com>
1469
1470 * strip.c (parse_opt): STATE parameter is now used.
1471 Various little cleanups.
1472
1473 * readelf.c (print_debug_line_section): Correct fallout of renaming
1474 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +00001475
Roland McGrath8f31c2c2005-08-09 04:58:05 +000014762005-08-08 Roland McGrath <roland@redhat.com>
1477
1478 * strip.c (options, parse_opt): Grok -R .comment for compatibility
1479 with binutils strip. Likewise -d, -S, as aliases for -g.
1480 Likewise ignore -s/--strip-all.
1481
Roland McGrath095a01b2005-08-08 03:49:35 +000014822005-08-07 Roland McGrath <roland@redhat.com>
1483
1484 * strip.c (process_file): Open read-only when using a different output
1485 file.
1486
Ulrich Drepper47be7952005-08-07 04:41:39 +000014872005-08-06 Ulrich Drepper <drepper@redhat.com>
1488
Ulrich Drepper637963b2005-08-07 05:33:07 +00001489 * elflint.c (in_nobits_scn): New function.
1490 (check_versym): Allow references for defined symbols against versions
1491 of other DSOs also for symbols in nobits sections.
1492 Move a few variables around.
1493
Ulrich Drepper47be7952005-08-07 04:41:39 +00001494 * Makefile.am (AM_CFLAGS): Avoid duplication.
1495 Link with statis libs if BUILD_STATIC.
1496
Ulrich Drepperdbace232005-08-06 01:37:23 +000014972005-08-05 Ulrich Drepper <drepper@redhat.com>
1498
1499 * elflint.c: Many, many more tests. Mostly related to symbol
1500 versioning. Those sections should now be completely checked.
1501
1502 * readelf.c (print_dynamic): Use gelf_offscn.
1503
Ulrich Drepperacb89832005-08-04 07:01:49 +000015042005-08-04 Ulrich Drepper <drepper@redhat.com>
1505
1506 * elflint.c: Add lots more tests: more extension symbol table sanity,
1507 versioning section tests, hash table tests. General cleanup.
1508
Ulrich Drepperc911c9e2005-08-02 16:07:42 +000015092005-08-02 Ulrich Drepper <drepper@redhat.com>
1510
Ulrich Drepper8a687742005-08-03 02:24:12 +00001511 * objdump.c: New file.
1512 * Makefile.am (bin_PROGRAMS): Add objdump.
1513 (objdump_LDADD): Define.
1514
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001515 * elflint.c (check_reloc_shdr): New function split out from check_rela
1516 and check_rel.
1517 (check_one_reloc): New function. Likewise.
1518 (check_rela): Use check_reloc_shdr and check_one_reloc.
1519 (check_rel): Likewise.
Ulrich Drepper41de4882005-08-03 00:02:56 +00001520 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
1521 section.
1522 Add checks that relocations against read-only segments are flagged,
1523 that the text relocation flag is not set unnecessarily, and that
1524 relocations in one section are either against loaded or not-loaded
1525 segments.
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001526
Ulrich Drepper8533dcf2005-08-01 07:18:47 +000015272005-08-01 Ulrich Drepper <drepper@redhat.com>
1528
1529 * elfcmp.c (main): Ignore section count and section name string table
1530 section index.
1531
Roland McGrathf9ece8a2005-07-28 07:03:04 +000015322005-07-27 Roland McGrath <roland@redhat.com>
1533
1534 * elfcmp.c: Include <locale.h>.
1535
Ulrich Drepper7d48d6a2005-07-27 10:13:23 +000015362005-07-27 Ulrich Drepper <drepper@redhat.com>
1537
1538 * elfcmp.c: Print name and index of differing section.
1539
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000015402005-07-24 Ulrich Drepper <drepper@redhat.com>
1541
1542 * elfcmp.c: Implement comparing gaps between sections.
1543
15442005-07-23 Ulrich Drepper <drepper@redhat.com>
1545
1546 * elflint.c: Include libeblP.h instead of libebl.h.
1547 * nm.c: Likewise.
1548 * readelf.c: Likewise.
1549 * elfcmp.c: Likewise.
1550
1551 * elfcmp.c (main): Compare individual ELF header fields, excluding
1552 e_shoff instead of the whole struct at once.
1553 Use ebl_section_strip_p instead of SECTION_STRIP_P.
1554 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
1555
15562005-07-22 Ulrich Drepper <drepper@redhat.com>
1557
1558 * elfcmp.c (main): Take empty section into account when comparing
1559 section content.
1560
1561 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
1562 using it.
1563
15642005-07-21 Ulrich Drepper <drepper@redhat.com>
1565
1566 * elfcmp.c: New file.
1567 * Makefile.am (bin_PROGRAMS): Add elfcmp.
1568 (elfcmp_LDADD): Define.
1569
1570 * elflint.c (check_rela): Check that copy relocations only reference
1571 object symbols or symbols with unknown type.
1572 (check_rel): Likewise.
1573
15742005-06-08 Roland McGrath <roland@redhat.com>
1575
1576 * readelf.c (print_ops): Add consts.
1577
15782005-05-31 Roland McGrath <roland@redhat.com>
1579
1580 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
1581 abbreviations. Print a header line before each CU section.
1582
1583 * readelf.c (print_debug_loc_section): Fix indentation for larger
1584 address size.
1585
15862005-05-30 Roland McGrath <roland@redhat.com>
1587
1588 * readelf.c (print_debug_line_section): Print section offset of each
1589 CU's table, so they are easy to find from seeing the stmt_list value.
1590
1591 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
1592 (attr_callback): Grok DW_AT_ranges and print offset in hex.
1593
1594 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
1595 (print_debug_ranges_section, print_debug_loc_section): Likewise.
1596
1597 * readelf.c (print_ops): Take different args for indentation control.
1598 (attr_callback): Caller updated.
1599 Grok several more block-form attributes as being location expressions.
1600 For those same attributes with udata forms, format output differently
1601 for location list offset.
1602 (print_debug_loc_section): Implement it for real.
1603
1604 * readelf.c (options): Mention ranges for --debug-dump.
1605 (enum section_e): Add section_ranges.
1606 (parse_opt): Grok "ranges" for -w/--debug-dump.
1607 (print_debug_ranges_section): New function.
1608 (print_debug): Handle .debug_ranges section.
1609
16102005-05-30 Ulrich Drepper <drepper@redhat.com>
1611
1612 * readelf.c (handle_notes): At least x86-64 need not have the note
1613 section values aligned to 8 bytes.
1614
16152005-05-18 Ulrich Drepper <drepper@redhat.com>
1616
1617 * readelf.c (dwarf_tag_string): Add new tags.
1618
16192005-05-08 Roland McGrath <roland@redhat.com>
1620
1621 * strip.c (handle_elf): Don't translate hash and versym data formats,
1622 elf_getdata already did it for us.
1623
16242005-05-07 Ulrich Drepper <drepper@redhat.com>
1625
1626 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
1627 (addr2line_LDADD): Likewise.
1628
16292005-05-03 Roland McGrath <roland@redhat.com>
1630
1631 * strip.c (handle_elf): Apply symbol table fixups to discarded
1632 relocation sections when they are being saved in the debug file.
1633
1634 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
1635 and gelf_xlatetof, not the native byte order.
1636
1637 * strip.c (parse_opt): Give error if -f or -o is repeated.
1638 (main): Exit if argp_parse returns nonzero.
1639
1640 * strip.c (debug_fname_embed): New variable.
1641 (options, parse_opt): New option -F to set it.
1642
16432005-05-07 Ulrich Drepper <drepper@redhat.com>
1644
1645 * readelf.c (parse_opt): Make any_control_option variable
1646 local. Simplify some tests.
1647
16482005-05-03 Roland McGrath <roland@redhat.com>
1649
1650 * strip.c (crc32_file): Function removed (now in ../lib).
1651
16522005-05-03 Roland McGrath <roland@redhat.com>
1653
1654 * elflint.c (is_debuginfo): New variable.
1655 (options, parse_opt): New option --debuginfo/-d to set it.
1656 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
1657 (check_note): If is_debuginfo, don't try to get note contents.
1658
16592005-04-24 Ulrich Drepper <drepper@redhat.com>
1660
1661 * readelf.c (print_debug_abbrev_section): Don't print error when end of
1662 section reached.
1663
16642005-04-14 Ulrich Drepper <drepper@redhat.com>
1665
1666 * readelf.c (dwarf_encoding_string): New function.
1667 (dwarf_inline_string): New function.
1668 (dwarf_access_string): New function.
1669 (dwarf_visibility_string): New function.
1670 (dwarf_virtuality_string): New function.
1671 (dwarf_identifier_case_string): New function.
1672 (dwarf_calling_convention_string): New function.
1673 (dwarf_ordering_string): New function.
1674 (dwarf_discr_list_string): New function.
1675 (attr_callback): Decode man more attribute values.
1676
16772005-04-01 Ulrich Drepper <drepper@redhat.com>
1678
1679 * addr2line.c: Finish implementation of -f option.
1680
16812005-03-29 Ulrich Drepper <drepper@redhat.com>
1682
1683 * addr2line.c: New file.
1684 * Makefile.am (bin_PROGRAMS): Add addr2line.
1685 Define addr2line_LDADD.
1686
1687 * findtextrel.c: Use new dwarf_addrdie function.
1688
1689 * findtextrel.c: Fix usage message and re-add accidentally removed
1690 line.
1691
16922005-03-28 Ulrich Drepper <drepper@redhat.com>
1693
1694 * findtextrel.c: New file.
1695 * Makefile: Add rules to build findtextrel.
1696
16972005-02-15 Ulrich Drepper <drepper@redhat.com>
1698
1699 * ldlex.l: Provide ECHO definition to avoid warning.
1700
1701 * elflint.c (check_program_header): Fix typo in RELRO test.
1702
1703 * Makefile.am (AM_CFLAGS): Add more warning options.
1704 * elflint.c: Fix warnings introduced by the new warning options.
1705 * i386_ld.c: Likewise.
1706 * ld.c: Likewise.
1707 * ld.h: Likewise.
1708 * ldgeneric.c: Likewise.
1709 * nm.c: Likewise.
1710 * readelf.c: Likewise.
1711 * sectionhash.c: Likewise.
1712 * size.c: Likewise.
1713 * string.c: Likewise.
1714
17152005-02-05 Ulrich Drepper <drepper@redhat.com>
1716
1717 * Makefile.am: Check for text relocations in constructed DSOs.
1718
1719 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
1720 with -lmudflap.
1721
1722 * ldscript.y: Add as_needed handling.
1723 * ldlex.l: Recognize AS_NEEDED token.
1724 * ld.h (struct filename_list): Add as_needed flag.
1725
17262005-02-04 Ulrich Drepper <drepper@redhat.com>
1727
1728 * elflint.c (check_symtab): Correctly determine size of GOT section.
1729
17302005-01-19 Ulrich Drepper <drepper@redhat.com>
1731
1732 * ld.c: Remove unnecessary more_help function. Print bug report
1733 address using argp.
1734 * strip.c: Likewise.
1735 * size.c: Likewise.
1736 * nm.c: Likewise.
1737 * readelf.c: Likewise.
1738 * elflint.c: Likewise.
1739
1740 * elflint.c (main): Don't check for parameter problems here.
1741 (parse_opt): Do it here, where we get informed about some of them
1742 anyway.
1743
1744 * readelf.c (main): Don't check for parameter problems here.
1745 (parse_opt): Do it here, where we get informed about some of them
1746 anyway.
1747
17482005-01-11 Ulrich Drepper <drepper@redhat.com>
1749
1750 * strip.c: Update copyright year.
1751 * readelf.c: Likewise.
1752 * size.c: Likewise.
1753 * nm.c: Likewise.
1754 * ld.c: Likewise.
1755 * elflint.c: Likewise.
1756
1757 * elflint.c (check_symtab): Don't warn about wrong size for
1758 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
1759
17602004-10-05 Ulrich Drepper <drepper@redhat.com>
1761
1762 * readelf.c (print_phdr): In section mapping, also indicate
1763 sections in read-only segments.
1764
17652004-09-25 Ulrich Drepper <drepper@redhat.com>
1766
1767 * readelf.c: Make compile with gcc 4.0.
1768 * strip.c: Likewise.
1769
17702004-08-16 Ulrich Drepper <drepper@redhat.com>
1771
1772 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
1773 allocate to work around gcc 3.4 bug.
1774
17752004-01-25 Ulrich Drepper <drepper@redhat.com>
1776
1777 * ldlex.l (invalid_char): Better error message.
1778
17792004-01-23 Ulrich Drepper <drepper@redhat.com>
1780
1781 * readelf.c: Print SHT_GNU_LIBLIST sections.
1782
1783 * none_ld.c: New file.
1784
17852004-01-21 Ulrich Drepper <drepper@redhat.com>
1786
1787 * Makefile.am: Enable building of machine specific linker.
1788
17892004-01-20 Ulrich Drepper <drepper@redhat.com>
1790
1791 * Makefile.am: Support building with mudflap.
1792
1793 * i386_ld.c: Fix warnings gcc 3.4 spits out.
1794 * ldgeneric.c: Likewise.
1795 * ldscript.y: Likewise.
1796 * readelf.c: Likewise.
1797 * strip.c: Likewise.
1798
1799 * readelf.c (print_debug_line_section): Determine address size
1800 correctly.
1801
18022004-01-19 Ulrich Drepper <drepper@redhat.com>
1803
1804 * readelf.c (print_phdr): Show which sections are covered by the
1805 PT_GNU_RELRO entry.
1806
1807 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
1808
1809 * readelf.c (print_debug_macinfo_section): Implement.
1810
18112004-01-18 Ulrich Drepper <drepper@redhat.com>
1812
1813 * readelf.c (print_debug_line_section): Implement.
1814
18152004-01-17 Ulrich Drepper <drepper@redhat.com>
1816
1817 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
1818 * src/ld.c: Likewise.
1819 * src/nm.c: Likewise.
1820 * src/readelf.c: Likewise.
1821 * src/size.c: Likewise.
1822 * src/strip.c: Likewise.
1823
1824 * strip.c: Add a few more unlikely. Reduce scope of some variables.
1825
1826 * Makefile.am: Support building with mudflap.
1827
18282004-01-16 Ulrich Drepper <drepper@redhat.com>
1829
1830 * readelf.c (print_debug_info_section): Free dies memory.
1831
1832 * readelf.c: Print .debug_info section content.
1833
18342004-01-13 Ulrich Drepper <drepper@redhat.com>
1835
1836 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
1837
18382004-01-12 Ulrich Drepper <drepper@redhat.com>
1839
1840 * readelf.c (print_debug_aranges): Implement using libdw.
1841
18422004-01-11 Ulrich Drepper <drepper@redhat.com>
1843
1844 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
1845
1846 * readelf.c: Use libdw instead of libdwarf. Not all of the old
1847 behavior is available yet.
1848 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
1849
18502004-01-09 Ulrich Drepper <drepper@redhat.com>
1851
1852 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
1853
1854 * nm.c: Implement getting information about local variables.
1855
18562004-01-07 Ulrich Drepper <drepper@redhat.com>
1857
1858 * nm.c: Read also debug information for local symbols.
1859
18602004-01-05 Ulrich Drepper <drepper@redhat.com>
1861
1862 * nm.c: Shuffle dwarf handling code around so the maximum column
1863 width can be computed ahead of printing. Avoid collection symbols
1864 which are not printed anyway.
1865
1866 * nm.c: Rewrite dwarf handling to use libdw.
1867 * Makefile.am (AM_CFLAGS): Add -std parameter.
1868 (INCLUDES): Find header in libdw subdir.
1869 (nm_LDADD): Replace libdwarf with libdw.
1870
1871 * elflint.c: Update copyright year.
1872 * readelf.c: Likewise.
1873 * size.c: Likewise.
1874 * strip.c: Likewise.
1875 * nm.c: Likewise.
1876
18772003-12-31 Ulrich Drepper <drepper@redhat.com>
1878
1879 * strip.c (process_file): Close file before returning.
1880
18812003-11-19 Ulrich Drepper <drepper@redhat.com>
1882
1883 * readelf.c (handle_dynamic): Make column for tag name wider.
1884
18852003-09-29 Ulrich Drepper <drepper@redhat.com>
1886
1887 * readelf.c (handle_dynamic): Always terminate tag name with a space.
1888
18892003-09-25 Ulrich Drepper <drepper@redhat.com>
1890
1891 * strip.c (process_file): Don't mmap the input file, we modify the
1892 data structures and don't want the change end up on disk.
1893
18942003-09-23 Jakub Jelinek <jakub@redhat.com>
1895
1896 * unaligned.h (union u_2ubyte_unaligned,
1897 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
1898 packed attribute.
1899 (add_2ubyte_unaligned, add_4ubyte_unaligned,
1900 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
1901 Read/store value through _ptr->u instead of *_ptr.
1902
19032003-09-22 Ulrich Drepper <drepper@redhat.com>
1904
1905 * size.c (show_sysv): Change type of maxlen to int.
1906
1907 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
1908 buckets.
1909
1910 * i386_ld.c: Many many fixes and extensions.
1911 * ld.c: Likewise.
1912 * ldgeneric.c: Likewise.
1913
19142003-08-16 Ulrich Drepper <drepper@redhat.com>
1915
1916 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
1917 the reference is from another DSO.
1918
19192003-08-15 Ulrich Drepper <drepper@redhat.com>
1920
1921 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
1922 point is found when creating a DSO.
1923
19242003-08-14 Ulrich Drepper <drepper@redhat.com>
1925
1926 * ld.c (main): Always call FLAG_UNRESOLVED.
1927 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
1928 undefined symbols if not creating DSO or ld_state.nodefs is not set.
1929
19302003-08-13 Ulrich Drepper <drepper@redhat.com>
1931
1932 * Makefile.in: Depend on libebl.a, not libebl.so.
1933
1934 * ld.c (main): Mark stream for linker script as locked by caller.
1935 (read_version_script): Likewise.
1936 * ldlex.c: Define fread and fwrite to _unlocked variant.
1937
1938 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
1939 target_bswap_32.
1940 * unaligned.h: Define target_bswap_16, target_bswap_32, and
1941 target_bswap_64.
1942 (store_2ubyte_unaligned, store_4ubyte_unaligned,
1943 store_8ubyte_unaligned): Define using new macros.
1944
19452003-08-12 Ulrich Drepper <drepper@redhat.com>
1946
1947 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
1948 possibly unaligned memory. Support use of big endian machines.
1949
19502003-08-11 Ulrich Drepper <drepper@redhat.com>
1951
1952 * Moved to CVS archive.