blob: 71a6da2fa5f4bebe43fee183263bf6b2cbcf0ce7 [file] [log] [blame]
Ulrich Drepper411cdb22009-02-05 22:04:26 -080012009-02-05 Ulrich Drepper <drepper@redhat.com>
2
3 * readelf.c (print_cfa_program): Correct a few labels.
4
Ulrich Drepper5ee720c2009-02-01 16:18:18 -080052009-02-01 Ulrich Drepper <drepper@redhat.com>
6
Ulrich Drepper95fa15e2009-02-01 19:06:10 -08007 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts
8 into ...
9 (show_relocs_x): ...here. New function.
Ulrich Drepperf44f0ce2009-02-01 21:31:26 -080010 (show_relocs): Better spacing in output.
Ulrich Drepper95fa15e2009-02-01 19:06:10 -080011
Ulrich Dreppercbb422e2009-02-01 18:18:55 -080012 * objdump.c (show_relocs_rela): Show offsets as signed values.
13
Ulrich Drepper5ee720c2009-02-01 16:18:18 -080014 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers.
15 Improve some error messages.
16 Use program_invocation_short_name instead of AR macro.
17 * Makefile.am (CFLAGS_ar): Remove.
18 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help.
19 * objdump.c (parse_opt): Likewise.
20 * readelf.c (parse_opt): Likewise.
21
Ulrich Drepper62c46532009-01-24 17:01:08 -0800222009-01-24 Ulrich Drepper <drepper@redhat.com>
23
24 * readelf.c (print_debug_frame_section): Fix computation of vma_base
25 for PC-relative mode.
26
Ulrich Drepperd7285e12009-01-23 16:10:44 -0800272009-01-23 Ulrich Drepper <drepper@redhat.com>
28
Ulrich Drepperccccab02009-01-23 16:32:21 -080029 * size.c (process_file): When handling archive, close file descriptor
30 here. For unknown file format also close file descriptor.
31 (handle_ar): Don't close file descriptor here.
32
Ulrich Drepperd7285e12009-01-23 16:10:44 -080033 * readelf.c (parse_opt): Move code to add to dump_data_sections and
34 string_sections list in local function add_dump_section. Adjust 'x'
35 key handling. For 'a' key add .strtab, .dynstr, and .comment section
36 to string_sections list.
37
Roland McGrathe9de9b42009-01-22 13:05:40 -0800382009-01-22 Roland McGrath <roland@redhat.com>
39
Roland McGrath9a847e12009-01-22 19:55:00 -080040 * readelf.c (print_phdr): Don't print section mapping when no sections.
41
Roland McGrathd759aa62009-01-22 19:17:07 -080042 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat.
43
Roland McGrathcabeeee2009-01-22 13:17:45 -080044 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false
45 and reset it only for the 'true' cases.
46
47 * Makefile.am (addr2line_no_Wformat): New variable.
48
Roland McGrathe9de9b42009-01-22 13:05:40 -080049 * readelf.c (print_debug_frame_section): Use t instead of j formats
50 for ptrdiff_t OFFSET.
51
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -0800522009-01-21 Ulrich Drepper <drepper@redhat.com>
53
54 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
Ulrich Drepperf93ee8d2009-01-21 15:02:03 -080055 test. Handle debuginfo files.
Ulrich Drepperdaf0fda2009-01-21 13:05:36 -080056 (check_exception_data): First sanity test.
57
Ulrich Drepperfdc93e12009-01-17 11:47:10 -0800582009-01-17 Ulrich Drepper <drepper@redhat.com>
59
Ulrich Drepper935edde2009-01-17 16:06:42 -080060 * readelf.c (print_debug_exception_table): Show target of ar_disp
61 field.
62
63 * elflint.c (check_program_header): Add most consistency checks for
64 PT_GNU_EH_FRAME entry.
65
Ulrich Drepperfdc93e12009-01-17 11:47:10 -080066 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and
67 ARGP_PROGRAM_BUG_ADDRESS_DEF.
68 * ar.c: Likewise.
69 * elfcmp.c: Likewise.
70 * elflint.c: Likewise.
71 * findtextrel.c: Likewise.
72 * ld.c: Likewise.
73 * nm.c: Likewise.
74 * objdump.c: Likewise.
75 * ranlib.c: Likewise.
76 * readelf.c: Likewise.
Ulrich Drepper935edde2009-01-17 16:06:42 -080077
Ulrich Drepperfdc93e12009-01-17 11:47:10 -080078 * size.c: Likewise.
79 * strings.c: Likewise.
80 * strip.c: Likewise.
81 * unstrip.c: Likewise.
82
Ulrich Drepperb006fbf2009-01-16 03:08:25 -0800832009-01-16 Ulrich Drepper <drepper@redhat.com>
84
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -080085 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry
86 matches .eh_frame_hdr section, if it is available. Also check that
87 the segment is allocated, not writable, not executable.
88
Ulrich Drepperb006fbf2009-01-16 03:08:25 -080089 * readelf.c: Add -e option. Dump exception and unwind related
90 sections. Add -e to -a.
Ulrich Drepper05d2b202009-01-16 17:58:54 -080091 (print_encoding_base): Handle DW_EH_PE_omit.
Ulrich Drepperb006fbf2009-01-16 03:08:25 -080092 (print_debug_exception_table): Beginning of support.
93 (print_debug): Hook up print_debug_exception_table for
94 .gcc_except_table sections.
95
96 * readelf.c (print_debug_frame_section): Some fixes for last change.
97
Ulrich Drepper351bf202009-01-15 20:18:40 -0800982009-01-15 Ulrich Drepper <drepper@redhat.com>
99
100 * readelf.c (print_encoding): Now a toplevel function.
101 (print_relinfo): Likewise.
102 (print_encoding_base): Broken out of print_debug_frame_section.
103 (print_debug_frame_section): Print different header for .eh_frame
104 sections. Fix recognition of matching CIEs in .debug_frame sections.
105 Print absolute offset for PC-relative FDE locations. Don't print
106 table header for FDEs if the table is empty.
107 (read_encoded): New function.
108 (print_debug_frame_hdr_section): New function.
109 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr
110 sections.
111
112 * readelf.c (handle_relocs_rel): Print section number.
113 (print_debug_abbrev_section): Likewise.
114 (print_debug_aranges_section): Likewise.
115 (print_debug_ranges_section): Likewise.
116 (print_debug_info_section): Likewise.
117 (print_debug_line_section): Likewise.
118 (print_debug_loc_section): Likewise.
119 (print_debug_macinfo_section): Likewise.
120 (print_debug_pubnames_section): Likewise.
121 (print_debug_str_section): Likewise.
122
Ulrich Drepper8b394632009-01-10 18:29:56 -08001232009-01-10 Ulrich Drepper <drepper@redhat.com>
124
125 * strings.c (read_block): Fix typo in error message string.
126
Ulrich Drepper87cf5832009-01-07 20:39:21 -08001272009-01-07 Ulrich Drepper <drepper@redhat.com>
128
129 * ld.c (ld_new_searchdir): Fix adding to search path list.
130
Ulrich Drepperac194d02009-01-06 00:30:01 -08001312009-01-06 Ulrich Drepper <drepper@redhat.com>
132
133 * readelf.c: Implement call frame debug section dumping.
Roland McGrathe9243e62009-01-21 18:54:20 -0800134
Roland McGrath3614d992009-01-05 18:05:32 -08001352009-01-05 Roland McGrath <roland@redhat.com>
136
137 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep).
138 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800139
Ulrich Drepper44173ed2009-01-01 19:00:41 -08001402009-01-01 Ulrich Drepper <drepper@redhat.com>
141
142 * addr2line.c: Update copyright year.
143 * ar.c: Likewise.
144 * elfcmp.c: Likewise.
145 * elflint.c: Likewise.
146 * findtextrel.c: Likewise.
147 * ld.c: Likewise.
148 * nm.c: Likewise.
149 * objdump.c: Likewise.
150 * ranlib.c: Likewise.
151 * readelf.c: Likewise.
152 * size.c: Likewise.
153 * strings.c: Likewise.
154 * strip.c: Likewise.
155 * unstrip.c: Likewise.
156
Roland McGrath468fe4d2008-12-11 21:00:12 -08001572008-12-11 Roland McGrath <roland@redhat.com>
158
159 * nm.c (sym_name): New function.
160 (show_symbols_sysv): Use it in place of elf_strptr.
161 (show_symbols_bsd, show_symbols_posix): Likewise.
162 Fixes RHBZ#476136.
163
164 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when
165 elf_strptr fails.
166
Roland McGratha845f682008-12-03 03:41:58 +00001672008-12-02 Roland McGrath <roland@redhat.com>
168
169 * readelf.c (count_dwflmod, process_file): Don't presume encoding of
170 nonzero OFFSET argument to dwfl_getmodules.
171
Roland McGrath1d8bb252008-08-07 08:39:41 +00001722008-08-07 Roland McGrath <roland@redhat.com>
173
174 * addr2line.c (main): Pass string to handle_address.
175 (see_one_module): New function, subroutine of handle_address.
176 (find_symbol): Likewise.
177 (handle_address): Take string argument rather than address.
178 Convert plain number, or handle strings like "(section)+offset"
179 or "symbol+offset".
180
1812008-08-01 Roland McGrath <roland@redhat.com>
182
183 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset.
184 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string.
185
186 * readelf.c (convert): Take new argument SIZE.
187 (handle_core_register, handle_core_item): Update callers.
188 (handle_core_item): Take new arg REPEATED_SIZE.
189 (handle_core_items): Special case for a singleton item,
190 let handle_core_item handle repeats if it wants to.
191
192 * readelf.c (handle_core_items): Give abridged output
193 for identical groups repeated more than twice.
194
1952008-07-04 Roland McGrath <roland@redhat.com>
196
197 * readelf.c (handle_core_items): Handle ELF_T_ADDR.
198
Roland McGrath521c47d2008-04-11 07:01:58 +00001992008-04-10 Roland McGrath <roland@redhat.com>
200
201 * strip.c (handle_elf): Don't keep sections that kept symbol tables
202 refer to. Instead, just be sure to preserve the original symbol
203 table in the debug file so those symbols go with their sections and
204 can be elided from the stripped version of the symbol table.
205
206 * strip.c (handle_elf): When a discarded section kept in the debug
207 file refers to a nondiscard section via sh_link/sh_info, preserve
208 that nondiscarded section unmodified in the debug file as well.
209 Skip adjustment of discarded sections symbol table references when
210 that symbol table is copied in this way.
211
212 * elflint.c (check_symtab): Don't crash from missing symbol names
213 after diagnosing bogus strtab.
214
215 * strip.c (handle_elf): Cosmetic cleanup in special section contents
216 adjustment for symtab changes.
217
Roland McGrath13b69602008-04-01 02:30:05 +00002182008-03-31 Roland McGrath <roland@redhat.com>
219
220 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections:
221 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook
222 excuse a special section.
223
2242008-03-27 Roland McGrath <roland@redhat.com>
225
226 * elflint.c (check_sections): Check that executability and writability
227 of sections is reflected in segment p_flags.
228
Roland McGrathd11f9cb2008-03-26 20:51:59 +00002292008-03-26 Roland McGrath <roland@redhat.com>
230
231 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
232 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
233 is valid in RELRO.
234
Roland McGrath47c5c352008-02-29 10:17:16 +00002352008-02-29 Roland McGrath <roland@redhat.com>
236
237 * readelf.c (print_attributes): Add a cast.
238 * elflint.c (check_attributes): Likewise.
239
240 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity
241 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition.
242 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise.
243
Ulrich Drepper834de6f2008-02-23 06:50:01 +00002442008-02-03 Ulrich Drepper <drepper@redhat.com>
245
246 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD
247 when linked into executable.
248 (elf_i386_create_relocations): Likewise.
249
Roland McGrath059c83e2008-02-21 06:19:39 +00002502008-02-20 Roland McGrath <roland@redhat.com>
251
252 * readelf.c (print_attributes): New function.
253 (process_elf_file): Call it under -A.
254
255 * elflint.c (check_attributes): Implement it for real.
256
2572008-02-19 Roland McGrath <roland@redhat.com>
258
259 * elflint.c (special_sections): Handle .gnu.attributes section.
260 (check_sections): Likewise.
261 (check_attributes): New function.
262
2632008-02-10 Roland McGrath <roland@redhat.com>
264
265 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC
266 sections and ET_REL files.
267
Ulrich Drepper712d78e2008-02-02 10:01:53 +00002682008-02-02 Ulrich Drepper <drepper@redhat.com>
269
270 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections.
271 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32
272 and R_386_TLS_LE.
273 (elf_i386_create_relocations): Likewise.
274 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb
275 elements.
276 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag.
277 (ld_generic_create_outfile): Add PT_TLS entry to program header.
278 Fix generation of PT_GNU_STACK entry.
279
Ulrich Drepperc54785a2008-02-01 18:05:21 +00002802008-02-01 Ulrich Drepper <drepper@redhat.com>
281
Ulrich Drepper7cd1bf72008-02-01 23:52:59 +0000282 * ld.c (replace_args): Prevent loop over replacements if the parameter
283 is only two characters long.
284
Ulrich Drepperc54785a2008-02-01 18:05:21 +0000285 * ld.c: Recognize sha1 argument for --build-id parameter.
286 * ldgeneric.c (create_build_id_section): Handle sha1.
287 (compute_hash_sum): New function. Broken out of compute_build_id.
288 Take hash function and context as parameters.
289 (compute_build_id): Use compute_hash_sum for md5 and the new sha1
290 implementation.
291
Ulrich Drepper89759c72008-01-31 19:44:12 +00002922008-01-31 Ulrich Drepper <drepper@redhat.com>
293
294 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections.
295 * ld.c: Recognize --build-id command line parameter.
296 * ld.h: Define scn_dot_note_gnu_build_id.
297 (struct ld_state): Add build_id and buildidscnidx elements.
298 * ldgeneric.c: Implement --build-id command line parameter.
299 * ldlex.l (ID): Recognize - as valid character after the first one.
300
Ulrich Drepper5530ec52008-01-29 10:42:07 +00003012008-01-29 Ulrich Drepper <drepper@redhat.com>
302
Ulrich Drepperb61c4cc2008-01-30 07:16:28 +0000303 * ld.c (replace_args): New function.
304 (main): Use it to rewrite old-style parameters.
305
Ulrich Dreppered9b6cb2008-01-30 06:33:33 +0000306 * elf32-i386.script: Add .gnu.hash section.
307 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient.
308 (fillin_special_symbol): Initialize st_size.
309 (sortfct_hashval): New function.
310 (create_gnu_hash): New function.
311 (create_hash): New function.
312 (ld_generic_create_outfile): Use the new functions to create the
313 hash tables.
314
Ulrich Drepper5530ec52008-01-29 10:42:07 +0000315 * elflint.c (check_gnu_hash): Fix index value printed in error message.
316
Ulrich Drepper0e864dd2008-01-25 00:18:42 +00003172008-01-24 Ulrich Drepper <drepper@redhat.com>
318
319 * elflint.c (check_group): Check that signature symbol for section
320 group is not an empty string.
321 * ldgeneric.c: Remove magic assignment of indeces in the dynsym
322 section. Start implementation of --hash-style.
323 * i386_ld.c: Likewise.
324 * ld.c: Recognize --hash-style.
325 * ld.h (struct scninfo): Add comdat_group.
326 Add additional parameter to finalize_plt callback.
327
Ulrich Drepper5449a6b2008-01-22 15:49:39 +00003282008-01-22 Ulrich Drepper <drepper@redhat.com>
329
330 * ld.h (struct callbacks): Add initialize_gotplt.
331 (struct scnhead): Add scn_dot_gotplt.
332 (struct ld_state): Add gotpltscnidx.
333 * i386_ld.c (elf_i386_initialize_plt): Minor optimization.
334 (elf_i386_initialize_pltrel): Likewise.
335 (elf_i386_initialize_got): There is now a separate .got.plt, so
336 don't do the PLT-related work here. Initialize d_type.
337 (elf_i386_initialize_gotplt): New function.
338 (elf_i386_plt0): Use ud2a after indirect jump.
339 (elf_i386_pic_plt0_entry): Likewise.
340 (elf_i386_finalize_plt): Reference now .got.plt.
341 (elf_i386_count_relocations): For GOT entries which need no relocation
342 don't bump nrel_got.
343 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32
344 handling for split .got/.got.plt.
345 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt.
346 * elf32-i386.script: Sort sections for security. There are no .got
347 input sections. Add .got.plt.
348 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section.
349 (ld_generic_create_outfile): Initialize .got.plt section.
350 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT.
351
Ulrich Drepperd9488292008-01-20 16:43:15 +00003522008-01-19 Ulrich Drepper <drepper@redhat.com>
353
354 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined
355 symbols are not carried over into statically linked output files.
356 Add dummy entries for more TLS relocations.
357
358 * ld.c (options): Add long names for -( and -).
359
360 * ldgeneric.c (check_definition): For newly found definitions don't
361 mark section as used if symbol is absolute.
362 (extract_from_archive): Only assign archive sequence number the first
363 time the archive is handled. Update ld_state.last_archive_used
364 if any symbol was used. Remove nround variable.
365 (file_process2): When using symbol from an archive, update
366 ld_state.group_start_archive, ld_state.archives, and
367 ld_state.tailarchives.
368 (ld_generic_file_process): If group is not handled anymore, after
369 freeing ELF handles for the archives, clear ld_state.archives and
370 *nextp. Fix wrong logic in recognizing first iteration of group
371 loop. When clearing flags, also clear ld_state.group_start_archive.
372
Ulrich Drepper5eee1222008-01-11 10:12:18 +00003732008-01-11 Ulrich Drepper <drepper@redhat.com>
374
375 * objdump.c (show_disasm): Adjust disassembler format string for
376 removal of %e.
377
Ulrich Dreppere219f1c2008-01-09 05:49:49 +00003782008-01-04 Roland McGrath <roland@redhat.com>
379
Roland McGrath059c83e2008-02-21 06:19:39 +0000380 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero,
381 a size greater than the items cover means multiple sets of items.
382 (handle_core_note): Update caller.
383
3842008-01-04 Roland McGrath <roland@redhat.com>
385
Ulrich Dreppere219f1c2008-01-09 05:49:49 +0000386 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning.
387
3882008-01-03 Roland McGrath <roland@redhat.com>
389
390 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)).
391
392 * elflint.c (check_dynamic): Remove duplicate initializer.
393
Ulrich Drepperad024af2008-01-02 17:42:52 +00003942008-01-02 Ulrich Drepper <drepper@redhat.com>
395
396 * addr2line.c: Update copyright year.
397 * ar.c: Likewise.
398 * elfcmp.c: Likewise.
399 * elflint.c: Likewise.
400 * findtextrel.c: Likewise.
401 * ld.c: Likewise.
402 * nm.c: Likewise.
403 * objdump.c: Likewise.
404 * ranlib.c: Likewise.
405 * readelf.c: Likewise.
406 * size.c: Likewise.
407 * strings.c: Likewise.
408 * strip.c: Likewise.
409 * unstrip.c: Likewise.
410
Ulrich Drepper3cbdd382008-01-02 17:44:39 +00004112007-12-30 Ulrich Drepper <drepper@redhat.com>
412
413 * objdump (show_disasm): Use %e after third parameter.
414
4152007-12-21 Ulrich Drepper <drepper@redhat.com>
416
417 * strip.c: Fix wrong parenthesis in a few branch predictions.
418 * strings.c: Likewise.
419
4202007-12-20 Ulrich Drepper <drepper@redhat.com>
421
422 * Makefile.am (DEFS): Add DEBUGPRED.
423 * addr2line.c: Include debugpred.h.
424 * ar.c: Likewise.
425 * elfcmp.c: Likewise.
426 * elflint.c: Likewise.
427 * findtextrel.c: Likewise.
428 * nm.c: Likewise.
429 * objdump.c: Likewise.
430 * ranlib.c: Likewise.
431 * readelf.c: Likewise.
432 * size.c: Likewise.
433 * strings.c: Likewise.
434 * strip.c: Likewise.
435 * unstrip.c: Likewise.
436 * debugpred.h: New file.
437
438 * readelf.c (handle_relocs_rel): Use elf_scnshndx.
439 (handle_relocs_rela): Likewise.
440
441 * readelf.c: Add lots of likely/unlikely.
442
443 * elflint.c: Minor cleanups.
444
Roland McGrath1a2e8f42007-12-15 23:39:34 +00004452007-11-19 Roland McGrath <roland@redhat.com>
446
447 * readelf.c (print_ops): Handle all bad op codes gracefully.
448 Print their numbers instead of just ???.
449
Roland McGrath07a696e2007-11-09 22:44:26 +00004502007-11-09 Roland McGrath <roland@redhat.com>
451
452 * readelf.c (attr_callback): Handle DW_AT_data_location.
Roland McGrath1a2e8f42007-12-15 23:39:34 +0000453 Handle block forms to mean a DWARF expression for DW_AT_allocated,
454 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride,
455 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound,
456 DW_AT_upper_bound.
Roland McGrath07a696e2007-11-09 22:44:26 +0000457
Roland McGrathe4c22ea2007-10-23 13:07:39 +00004582007-10-20 Roland McGrath <roland@redhat.com>
459
460 * unstrip.c (options): Update -R description.
461 (struct symbol): Put symbol details a union with a size_t pointer
462 `duplicate'.
463 (compare_symbols_output): Use null ->name as marker for discard
464 symbols, not zero *->map.
465 (copy_elided_sections): Record forwarding pointers for discarded
466 duplicates and fill SYMNDX_MAP elements through them.
467
468 * readelf.c (process_file): Set offline_next_address to 0 at start.
469 (struct process_dwflmod_args): New type.
470 (process_dwflmod): Take args in it, pass fd to process_elf_file.
471 (process_file): Update caller; dup FD for passing to libdwfl.
472 (process_elf_file): Take new arg FD. For ET_REL file when
473 displaying data affected by libdwfl relocation, open a new Elf handle.
474
4752007-10-17 Roland McGrath <roland@redhat.com>
476
477 * readelf.c (print_debug_line_section): For invalid data inside a
478 unit with plausible length, keep printing at the next unit boundary.
479
480 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref.
481
4822007-10-16 Roland McGrath <roland@redhat.com>
483
484 * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
485
Ulrich Drepperb597dfa2007-10-16 05:21:27 +00004862007-10-15 Roland McGrath <roland@redhat.com>
487
488 * make-debug-archive.in: New file.
489 * Makefile.am (EXTRA_DIST): Add it.
490 (make-debug-archive): New target.
491 (bin_SCRIPTS, CLEANFILES): Add it.
492
4932007-10-10 Roland McGrath <roland@redhat.com>
494
495 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld.
496 Use it to check MERGE|STRINGS for .debug_str.
497 (check_sections): Handle exact_or_gnuld.
498
4992007-10-08 Roland McGrath <roland@redhat.com>
500
501 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate
502 64-bit struct timeval with 32-bit tv_usec.
503
5042007-10-07 Roland McGrath <roland@redhat.com>
505
506 * readelf.c (check_archive_index): New function.
507 (process_file): Call it. Change signature to take only fd and name.
508 Use libdwfl to open the file, then iterate on its modules (multiple
509 for an archive) to print file name and call process_elf_file.
510 (main): Update caller. Let process_file do elf_begin.
511 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions.
512 (process_elf_file): Take only Dwfl_Module * argument.
513 Don't print the file name here.
514 (print_debug_*_section): Take Dwfl_Module * argument.
515 (print_debug): Likewise. Update caller.
516 (format_dwarf_addr): New function.
517 (print_debug_ranges_section): Use it.
518 (attr_callback): Likewise.
519 (print_debug_line_section, print_debug_loc_section): Likewise.
520
521 * readelf.c (print_debug_ranges_section): Translate all strings.
522 (print_debug_loc_section): Likewise.
523
524 * unstrip.c (copy_elided_sections): Initialize SEC.
525
526 * ar.c (do_oper_insert): Put trailing / on short names.
527
528 * arlib.h (MAX_AR_NAME_LEN): Decrease by one.
529
530 * arlib2.c (arlib_add_long_name): Adjust for header size.
531
532 * arlib.c (arlib_finalize): Pad long name table to keep size even.
533
534 * ar.c (do_oper_insert): Use write_retry for padding write.
535
536 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case.
537 Unconditionally set FOUND[CNT]->elf when setting ->mem.
538 (remember_long_name): New function.
539 (do_oper_insert): Call it. Correctly use length of basename,
540 not original name. Don't store long name twice for new member.
541
5422007-10-06 Roland McGrath <roland@redhat.com>
543
544 * elflint.c (check_note): Skip empty segment.
545 (check_note_section): Skip empty section.
546
547 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate.
548 (handle_output_dir_module, handle_implicit_modules): Pass it down.
549 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl.
550 (compare_alloc_sections): Take new arg REL, ignore address if true.
551 (compare_sections): Likewise, pass it down.
552 (compare_sections_rel, compare_sections_nonrel): New functions.
553 (find_alloc_sections_prelink, copy_elided_sections): Use them
554 instead of compare_sections.
555 (sections_match): New function, broken out of ...
556 (find_alloc_section): ... here.
557 (copy_elided_sections): Reorganize section match-up logic.
558 Use sections_match for SHF_ALLOC in ET_REL.
559 For ET_REL, let the nonzero sh_addr from the debug file dominate.
560
561 * unstrip.c (add_new_section_symbols): Take new arg REL.
562 When true, do not update section symbol values.
563 (collect_symbols): Likewise. Update section symbols with address
564 of chosen output section, not original section.
565 (check_symtab_section_symbols, copy_elided_sections): Update callers.
566
567 * unstrip.c (compare_alloc_sections): At the same address, preserve
568 original section order.
569
570 * elflint.c (special_sections): Don't require MERGE|STRINGS for
571 .debug_str, it didn't always have them with older tools.
572
573 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL.
574
5752007-10-05 Roland McGrath <roland@redhat.com>
576
577 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in
578 ET_REL file.
579
580 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose
581 SHN_UNDEF as "bad section". Use shndx value in messages.
582
583 * elflint.c (special_sections): Add ".debug_str". Decrement namelen
584 for ".debug" so it matches as a prefix.
585 (IS_KNOWN_SPECIAL): New macro.
586 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS
587 type even under -d, for a .debug* or .shstrtab section.
588
589 * readelf.c (print_ops): Use hex for address operand.
590
5912007-10-04 Roland McGrath <roland@redhat.com>
592
593 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for
594 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for
595 sections mapped to SHN_UNDEF.
596
Ulrich Drepper3fc3d7b2007-10-04 18:40:28 +00005972007-10-04 Ulrich Drepper <drepper@redhat.com>
598
599 * readelf.c (dump_archive_index): Avoid warning about uninitialized
600 variable with older glibc versions.
601 Add some branch prediction.
602
Roland McGrath59ea7f32007-10-04 08:50:09 +00006032007-10-04 Roland McGrath <roland@redhat.com>
604
605 * readelf.c (print_archive_index): New variable.
606 (options, parse_opt): Accept -c/--archive-index to set it.
607 (dump_archive_index): New function.
608 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX.
609 Call dump_archive_index on archives if set.
610 (main): Update caller.
611 (any_control_option): Give it file scope, moved out of ...
612 (parse_opt): ... here.
613
6142007-10-03 Roland McGrath <roland@redhat.com>
615
616 * unstrip.c (struct arg_info): Add `list' flag.
617 (options, parse_opt): Grok -n/--list to set it.
618 (list_module): New function.
619 (handle_implicit_modules): Call it under -n.
620
621 * elflint.c (check_note_section): New function.
622 (check_sections): Call it for SHT_NOTE.
623
624 * readelf.c (handle_notes): Use sections when available.
625
626 * elflint.c (check_note_data): New function, broken out of ...
627 (check_note): ... here. Call it and elf_getdata_rawchunk.
628
629 * readelf.c (handle_auxv_note): Take offset as argument, not buffer.
630 Use elf_getdata_rawchunk and gelf_getauxv.
631 (handle_notes_data): New function, broken out of ...
632 (handle_notes): ... here. Call it and elf_getdata_rawchunk.
633
Roland McGrath241ac022007-10-01 18:21:46 +00006342007-10-01 Roland McGrath <roland@redhat.com>
635
Roland McGrathac0a16c2007-10-01 18:50:35 +0000636 * readelf.c (hex_dump): Fix transposed subtraction generating spaces.
637
Roland McGrath241ac022007-10-01 18:21:46 +0000638 * readelf.c (hex_dump): Fix line header to be hex instead of decimal.
639
Roland McGrathc76f0b02007-09-27 07:31:33 +00006402007-09-10 Roland McGrath <roland@redhat.com>
641
642 * readelf.c (options): Give -p optional argument, alias --string-dump.
643 (string_sections, string_sections_tail): New static variables.
644 (parse_opt): Set them when -p has an argument.
645 (print_string_section): New function, broken out of ...
646 (print_strings): ... here. Call it.
647 (dump_data_section): New function, broken out of ...
648 (dump_data): ... here. Call it.
649 (for_each_section_argument): New function, broken out of ...
650 (dump_data): ... here. Call it.
651 (dump_strings): New function.
652
6532007-08-31 Roland McGrath <roland@redhat.com>
654
655 * readelf.c (print_strings): Typo fix.
656
Roland McGrathcb6d8652007-08-23 08:10:54 +00006572007-08-23 Roland McGrath <roland@redhat.com>
658
659 * readelf.c (printf_with_wrap): Function removed.
660 (REGISTER_WRAP_COLUMN): New macro.
661 (handle_core_register): Use print_core_item instead.
662 (struct register_info): New type.
663 (compare_registers, compare_register_sets): New functions.
664 (register_bitpos, compare_sets_by_info): New functions.
665 (handle_core_registers): Use those to segregate and sort registers
666 for display.
667
668 * readelf.c (ITEM_WRAP_COLUMN): New macro.
669 (print_core_item): New function.
670 (handle_core_item): Use it instead of printf_with_wrap.
671 (compare_core_items, compare_core_item_groups): New functions.
672 (handle_core_items): Use them. Sort by group and force line breaks
673 between groups.
674
675 * readelf.c (handle_core_registers, handle_core_items): New functions,
676 broken out of ...
677 (handle_core_note): ... here. Call them.
678
6792007-08-22 Roland McGrath <roland@redhat.com>
680
681 * unstrip.c (new_shstrtab): New function, broken out of ...
682 (copy_elided_sections): ... here.
683
6842007-08-20 Roland McGrath <roland@redhat.com>
685
686 Avoid local function trampolines in nm binary.
687 * nm.c (sort_by_address): Move to a static function instead of local
688 inside show_symbols.
689 (sort_by_name_strtab): New static variable.
690 (sort_by_name): Use it. Move to a static function instead of local
691 inside show_symbols.
692 (show_symbols): Set sort_by_name_strtab.
693
6942007-08-19 Roland McGrath <roland@redhat.com>
695
696 * readelf.c (handle_auxv_note): New function.
697 (handle_notes): Call it.
698
699 * readelf.c (printf_with_wrap, convert): New functions.
700 (handle_core_item, (handle_core_register): New functions.
701 (handle_notes): Call those with details from ebl_core_note.
702
Roland McGrath099dd522007-08-13 22:58:36 +00007032007-08-12 Roland McGrath <roland@redhat.com>
704
705 * elflint.c (check_note): Accept type 0 with name "Linux".
706
707 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
708
709 * elflint.c (section_flags_string): Return "none" for 0, not "".
710
Roland McGrathd8221722007-08-11 21:18:09 +00007112007-08-11 Roland McGrath <roland@redhat.com>
712
713 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
714
Ulrich Drepperc98bcc72007-08-04 17:06:14 +00007152007-08-04 Ulrich Drepper <drepper@redhat.com>
716
717 * readelf.c (hex_dump): Use isprint to determine whether to print
718 character itself or full stop character.
719 (dump_data): No need to check endp for NULL after strtol call.
720
Roland McGrath60fc84c2007-08-03 21:59:15 +00007212007-08-03 Roland McGrath <roland@redhat.com>
722
723 * readelf.c (print_string_sections): New variable.
724 (options, parse_opt): Handle --strings/-p to set it.
725 (print_strings): New function.
726 (process_elf_file): Call it under -p.
727
728 * readelf.c (options): Add hidden aliases --segments, --sections,
729 as taken by binutils readelf.
730
7312007-08-01 Roland McGrath <roland@redhat.com>
732
733 * readelf.c (dump_data_sections, dump_data_sections_tail):
734 New variables.
735 (options, parse_opt): Handle --hex-dump/-x, set them.
736 (hex_dump): New function.
737 (dump_data): New function, call it.
738 (process_elf_file): Call it.
739
7402007-07-25 Roland McGrath <roland@redhat.com>
741
742 * addr2line.c (show_symbols): New variable.
743 (print_addrsym): New function.
744 (handle_address): Call it.
745 (options, parse_opt): Handle -S/--symbols.
746
Ulrich Drepperb0243862007-06-06 00:09:36 +00007472007-06-05 Ulrich Drepper <drepper@redhat.com>
748
749 * addr2line.c: Update for latest autoconf header.
750 * ar.c: Likewise.
751 * elfcmp.c: Likewise.
752 * elflint.c: Likewise.
753 * findtextrel.c: Likewise.
754 * ld.c: Likewise.
755 * ldgeneric.c: Likewise.
756 * nm.c: Likewise.
757 * objdump.c: Likewise.
758 * ranlib.c: Likewise.
759 * readelf.c: Likewise.
760 * size.c: Likewise.
761 * strings.c: Likewise.
762 * strip.c: Likewise.
763 * unstrip.c: Likewise.
764
Roland McGrath9aa8ef72007-05-18 08:59:43 +00007652007-05-18 Roland McGrath <roland@redhat.com>
766
767 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
768 stripped file, so as not to duplicate a section copied in both.
769
770 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
771
7722007-05-17 Roland McGrath <roland@redhat.com>
773
774 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
775
776 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
777
778 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
779 call make_directories here.
780 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
781 (handle_dwfl_module): Likewise.
782 (handle_implicit_modules): Update callers.
783 (handle_output_dir_module): Likewise. Don't do make_directories here.
784
785 * unstrip.c (get_section_name): New function, broken out of ...
786 (copy_elided_sections): here. Update callers.
787 (find_alloc_section): Broken out of ...
788 (copy_elided_sections): ... here. Update caller.
789 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
790 update STT_SECTION symbols' st_value fields as a side effect.
791 (check_symtab_section_symbols): Update caller.
792 (add_new_section_symbols): Set st_value in symbols added.
793 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
794 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
795 from .bss to .dynbss.
796 (find_alloc_sections_prelink): New function. Associate debug file
797 allocated SHT_NOBITS shdrs with stripped moved by prelink via
798 .gnu.prelink_undo information.
799 (copy_elided_sections): Call it when we couldn't find every allocated
800 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
801 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
802 (handle_file): Update callers.
803
804 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
805 named ".comment".
806
807 * elflint.c (check_sections): Fix association of segments with
808 sections when p_memsz > p_filesz.
809
8102007-04-29 Roland McGrath <roland@redhat.com>
811
812 * addr2line.c (options, main): Tweak argp group settings to fix
813 usage output.
814
8152007-04-28 Roland McGrath <roland@redhat.com>
816
817 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
818 sizes to match sections adjusted in the stripped file.
819
Roland McGrath4be15242007-04-25 03:09:33 +00008202007-04-24 Roland McGrath <roland@redhat.com>
821
822 * elfcmp.c (OPT_HASH_INEXACT): New macro.
823 (hash_inexact): New variable.
824 (options, parse_opt): Add --hash-inexact option to set it.
825 (hash_content_equivalent): New function.
826 (main): Call it for differing SHT_HASH sections under --hash-inexact.
827
8282007-04-23 Roland McGrath <roland@redhat.com>
829
830 * unstrip.c: New file.
831 * Makefile.am (bin_PROGRAMS): Add it.
832 (unstrip_LDADD): New variable.
833
834 * strip.c (options): Allow --output for -o.
835
Ulrich Drepper8b383102007-02-16 00:31:57 +00008362007-02-15 Ulrich Drepper <drepper@redhat.com>
837
838 * readelf.c: Remove unused code. Add a few consts.
839
Ulrich Drepper903c1162007-02-15 19:40:37 +00008402007-02-15 Roland McGrath <roland@redhat.com>
841
842 * readelf.c (print_debug): Fix brainos in SHDR test.
843
Roland McGrathf82a1ec2007-02-06 04:47:44 +00008442007-02-05 Roland McGrath <roland@redhat.com>
845
846 * ar.c: Include <limits.h>, since we use LONG_MAX.
847
Ulrich Drepper0fe63532007-02-05 21:05:51 +00008482007-02-05 Ulrich Drepper <drepper@redhat.com>
849
Ulrich Drepper8b383102007-02-16 00:31:57 +0000850 * ar.c: Add ugly hack to work around gcc complaining that we
Ulrich Drepper93ab56f2007-02-05 22:12:41 +0000851 ignore fchown's return value.
852 (do_oper_insert): Handle error when writing padding.
853 * ranlib.c: Add fchown complain work around.
854
Ulrich Drepper0fe63532007-02-05 21:05:51 +0000855 * arlib.c: Make symtab a global variable. Change all users.
856 * arlib2.c: Likewise.
857 * ranlib.c: Likewise.
858 * ar.c: Likewise.
859 * arlib.h: Declare it.
860
Ulrich Drepperaa915fd2007-02-05 07:25:33 +00008612007-01-11 Roland McGrath <roland@redhat.com>
862
863 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
864 SHF_MASKPROC bits separately from generic sh_flags validation.
865
Ulrich Drepperce0bdb62007-02-05 07:13:52 +00008662007-02-04 Ulrich Drepper <drepper@redhat.com>
867
868 * ar.c: New file.
869 * arlib.c: New file.
870 * arlib2.c: New file.
871 * arlib.h: New file.
872 * Makefile (noinst_LIBRARIES): Add libar.
873 (libar_a_SOURCES): Define.
874 (ar_LDADD): Define.
875 (CFLAGS_ar): Define.
876 * ranlib.c: Change to use arlib.
877
878 * elflint.c (check_symtab): Work around GNU ld bug which omits
879 sections but not symbols in those sections.
880
Ulrich Drepperb770cf92007-01-10 21:02:34 +00008812007-01-10 Ulrich Drepper <drepper@redhat.com>
882
883 * addr2line.c: Update copyright year.
884 * elfcmp.c: Likewise.
885 * elflint.c: Likewise.
886 * findtextrel.c: Likewise.
887 * ld.c: Likewise.
888 * nm.c: Likewise.
889 * objdump.c: Likewise.
890 * ranlib.c: Likewise.
891 * readelf.c: Likewise.
892 * size.c: Likewise.
893 * strings.c: Likewise.
894 * strip.c: Likewise.
895
Ulrich Drepper7c0e79f2006-12-09 21:10:19 +00008962006-12-09 Ulrich Drepper <drepper@redhat.com>
897
898 * elflint.c (compare_hash_gnu_hash): New function. Report if the
899 two hash tables have different content (module expected omission
900 of undefined symbols).
901
Roland McGrath8190db62006-12-17 23:56:51 +00009022006-10-31 Roland McGrath <roland@redhat.com>
903
904 * elflint.c (check_program_header): Don't complain about
Ulrich Drepper56bc0b82006-12-18 22:38:08 +0000905 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
Roland McGrath8190db62006-12-17 23:56:51 +0000906
9072006-09-19 Jakub Jelinek <jakub@redhat.com>
908
909 * strip.c (process_file): Disallow -f on archives.
910
9112006-10-09 Roland McGrath <roland@redhat.com>
912
913 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
914
Roland McGrathc373d852006-10-10 00:25:21 +00009152006-08-29 Roland McGrath <roland@redhat.com>
916
917 * Makefile.am (MAINTAINERCLEANFILES): New variable.
918
919 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
920 Reported by Christian Aichinger <Greek0@gmx.net>.
921
922 * elflint.c (valid_e_machine): Add EM_ALPHA.
923 Reported by Christian Aichinger <Greek0@gmx.net>.
924
Ulrich Drepper231c5902006-08-08 22:00:11 +00009252006-08-08 Ulrich Drepper <drepper@redhat.com>
926
927 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
928 Keep track of which "high DT" entries are present.
929 Check that either old or GNU-style hash table is present.
930 If GNU-style hash table is used a symbol table is mandatory.
931 Check that if any prelink entry is present all of them are.
932 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
933 table if they don't refer to functions.
934
Roland McGrath858b1892006-07-17 08:41:15 +00009352006-07-17 Roland McGrath <roland@redhat.com>
936
937 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
938 (add_version): Likewise for argument.
939 (check_versym): Cast constant to GElf_Versym for comparison.
940
Roland McGrath4ec807e2006-07-13 03:59:46 +00009412006-07-12 Roland McGrath <roland@redhat.com>
942
943 * readelf.c (handle_gnu_hash): Add casts for machines where
944 Elf32_Word != unsigned int.
945
Ulrich Drepperdcf61602006-07-12 19:59:02 +00009462006-07-12 Ulrich Drepper <drepper@redhat.com>
947
948 * elflint.c (check_sysv_hash64): Fix printf format.
949
Ulrich Dreppercc415622006-07-12 19:42:23 +00009502006-07-11 Roland McGrath <roland@redhat.com>
Ulrich Drepper8ae58142006-07-12 05:22:32 +0000951
Ulrich Dreppercc415622006-07-12 19:42:23 +0000952 * addr2line.c (options): English fix in -f doc string.
953
954 * addr2line.c (use_comp_dir): New variable.
955 (options, parse_opt): Grok -A/--absolute to set it.
956 (handle_address): If set, prepend dwfl_line_comp_dir results to
957 relative file names.
Ulrich Drepper8ae58142006-07-12 05:22:32 +0000958
Ulrich Drepper28ed8952006-07-07 03:43:47 +00009592006-07-06 Ulrich Drepper <drepper@redhat.com>
960
961 * elflint.c: Adjust for latest new hash table format.
962 * readelf.c: Likewise.
963
964 * elflint.c (check_versym): Ignore hidden bit when comparing version
965 numbers.
966
9672006-07-05 Ulrich Drepper <drepper@redhat.com>
968
969 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
970 discarded COMDAT symbols.
971
972 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
973 (elf_i386_create_relocations): Likewise.
974 * ld.h (struct symbol): Add local and hidden bits.
975 * ld.c (create_special_section_symbol): These synthsized symbols
976 are local and hidden.
977 * ldgeneric.c (file_process2): Check whether input file matches
978 the emulation.
979 (fillin_special_symbol): Create symbols as local and/or hidden
980 if requested.
981 (ld_generic_create_outfile): Make local copy of symbol.
982 Don't hide global, defined symbols in dynamic symbol table unless
983 requested. Synthetic symbols have no version information.
984
985 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
986 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
987
9882006-07-04 Ulrich Drepper <drepper@redhat.com>
989
990 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
991 testing.
992
9932006-07-03 Ulrich Drepper <drepper@redhat.com>
994
995 * elflint.c: Add testing of DT_GNU_HASH.
996 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
997
998 * Makefile.am: Add hacks to create dependency files for non-generic
999 linker.
1000
Ulrich Drepper6ca46002006-06-12 22:40:23 +000010012006-06-12 Ulrich Drepper <drepper@redhat.com>
1002
1003 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
1004 section if creating a DSO and no interpreter is given.
1005 (ld_generic_create_outfile): Don't store reference to symbols in
1006 discarded COMDAT groups. Don't create PHDR and INTERP program header
1007 for DSO if no interpreter is specified.
Ulrich Drepper595d0e72006-06-12 23:25:17 +00001008 (create_verneed_data): Pretty printing.
1009
Ulrich Drepper6ca46002006-06-12 22:40:23 +00001010 * ldscript.y (content): If a DSO is created don't set default
1011 interpreter from linker script.
1012
1013 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
1014 for symbols in discarded COMDAT groups.
1015 (elf_i386_create_relocations): Likewise.
1016 * ld.h (struct scninfo): Add unused_comdat.
1017 * ldgeneric.c (add_section): Also check group signature when
1018 matching COMDAT sections.
1019 (add_relocatable_file): Ignore symbols in COMDAT group which are
1020 discarded.
1021
1022 * elflint.c (check_one_reloc): For *_NONE relocs only check type
1023 and symbol reference.
1024
Ulrich Drepper54f33a72006-06-11 09:07:37 +000010252006-06-11 Ulrich Drepper <drepper@redhat.com>
1026
Ulrich Dreppercbb51e52006-06-11 20:25:23 +00001027 * elflint.c (check_dynamic): Fix checking value of tags which are
1028 offsets in the string section. Make sure DT_STRTAB points to the
1029 section referenced in sh_link.
1030
1031 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
1032
Ulrich Drepper54f33a72006-06-11 09:07:37 +00001033 * ld.c: Recognize --eh-frame-hdr option.
1034 * ld.h (struct ld_state): Add eh_frame_hdr field.
1035 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
1036
1037 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
1038 SH_FLAGS_COMBINE.
1039 (add_relocatable_file): Minor optimization of last change.
1040 (match_section): Don't preserve SHF_GROUP flag any longer.
1041
Ulrich Drepper2d880282006-06-11 00:20:43 +000010422006-06-10 Ulrich Drepper <drepper@redhat.com>
1043
1044 * ld.c (parse_z_option): Recognize execstack and noexecstack.
Ulrich Drepper4f0a7a82006-06-11 00:53:45 +00001045 Handle record and ignore as position dependent options.
1046 (parse_z_option_2): Handle ignore and record here.
Ulrich Drepper2d880282006-06-11 00:20:43 +00001047 * ld.h (struct ld_state): Add execstack field.
1048 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
1049 sections.
1050 (ld_generic_create_outfile): Fix program header creation in native
1051 linker. Add PT_GNU_STACK program header.
1052
Ulrich Dreppera688a732006-06-10 06:33:00 +000010532006-06-09 Ulrich Drepper <drepper@redhat.com>
1054
1055 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
1056 for PLT entries if there is no local definition.
1057
1058 * ld.c (parse_option): Handle -z ignore like --as-needed and
1059 -z record like --no-as-needed.
1060 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
1061 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
1062 looping over DSOs. When deciding about adding DT_NEEDED entries
1063 use ->as_needed instead of ignore_unused_dsos.
1064
Ulrich Drepper8c56fe32006-05-31 15:50:43 +000010652006-05-31 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001066
Ulrich Drepper8c56fe32006-05-31 15:50:43 +00001067 * ld.c: Recognize --as-needed and --no-as-needed options.
1068 * ld.h (struct usedfile): Add as_needed field.
1069 (struct ld_state): Likewise.
1070 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
1071 the list.
1072 * ldscript.y (filename_id_list): Split to correctly parse all
1073 combinations.
1074 (mark_as_needed): Fix loop.
Ulrich Drepper11b030e2006-05-28 20:28:19 +00001075
Ulrich Drepper697f4db2006-06-10 06:50:47 +000010762006-05-28 Ulrich Drepper <drepper@redhat.com>
1077
1078 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
1079 and colno.
1080
Ulrich Drepper2cb8e732006-05-27 21:57:27 +000010812006-05-27 Ulrich Drepper <drepper@redhat.com>
1082
1083 * readelf.c (handle_relocs_rela): Better notations for addon value.
Ulrich Drepper41a99082006-05-28 00:01:43 +00001084 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
Ulrich Drepper2cb8e732006-05-27 21:57:27 +00001085
Ulrich Drepper82c345d2006-04-04 22:07:54 +000010862006-04-04 Ulrich Drepper <drepper@redhat.com>
1087
1088 * addr2line.c: Update copyright year.
1089 * elfcmp.c: Likewise.
1090 * elflint.c: Likewise.
1091 * findtextrel.c: Likewise.
1092 * ld.c: Likewise.
1093 * nm.c: Likewise.
1094 * objdump.c: Likewise.
1095 * ranlib.c: Likewise.
1096 * readelf.c: Likewise.
1097 * size.c: Likewise.
1098 * strings.c: Likewise.
1099 * strip.c: Likewise.
1100
Roland McGrathdd7e22b2006-03-09 23:05:47 +000011012006-03-09 Roland McGrath <roland@redhat.com>
1102
1103 * Makefile.am (AM_LDFLAGS): New variable.
1104
Roland McGrath060fa052006-03-02 07:51:50 +000011052006-03-01 Roland McGrath <roland@redhat.com>
1106
1107 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
1108 for dwarf.h changes matching 3.0 spec.
1109 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
1110
Ulrich Drepper038129b2005-12-04 16:47:24 +000011112005-12-04 Ulrich Drepper <drepper@redhat.com>
1112
1113 * elflint.c (check_one_reloc): If relocation section is not loaded,
1114 don't check whether the relocations modify read-only sections or
1115 loaded and unloaded sections.
1116
Ulrich Drepper607e0542005-12-04 15:51:06 +000011172005-11-28 Ulrich Drepper <drepper@redhat.com>
1118
1119 * elflint.c (check_one_reloc): Take additional parameters. Use
1120 them to determine whether relocation is valid in this type of
1121 file. DSOs and executables can contain relocation sections in
1122 unloaded sections which just show the relocations the linker
1123 applied. Adjust all callers.
1124 (check_program_header): Check that PT_PHDR is loaded and that offset
1125 matches the one in the ELF header.
1126
Roland McGrath6724c902005-10-28 07:07:19 +000011272005-10-26 Roland McGrath <roland@redhat.com>
1128
1129 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
1130
Ulrich Drepperd0449522005-09-03 07:23:52 +000011312005-09-03 Ulrich Drepper <drepper@redhat.com>
1132
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001133 * strip.c (handle_elf): Unify some error messages.
1134 * ld.c (main): Likewise.
1135 * ldgeneric.c (open_elf): Likewise.
1136 * elfcmp.c (main): Likewise.
1137 * elflint.c (check_elf_header): Likewise.
1138
1139 * size.c (process_file): Fix typo in error message.
1140
Ulrich Drepperd0449522005-09-03 07:23:52 +00001141 * readelf.c: Lots of little cleanups. Use _unlocked functions.
1142
Ulrich Dreppera60501e2005-09-02 19:50:17 +000011432005-09-02 Ulrich Drepper <drepper@redhat.com>
1144
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +00001145 * strings.c (main): Reset elfmap variable after munmap call.
Ulrich Drepper618795f2005-09-02 20:01:37 +00001146 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
Ulrich Dreppera60501e2005-09-02 19:50:17 +00001147
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000011482005-08-28 Ulrich Drepper <drepper@redhat.com>
1149
1150 * ranlib.c: Don't define pread_retry and write_retry here.
1151
1152 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
1153 (CLEANFILES): Add *.gcno *.gcda *.gconv.
1154
1155 * strings.c (process_chunk): Reorder expressions in conditional
1156 (process_chunk_mb): Likewise.
1157
1158 * strings.c: New file.
1159 * Makefile.am (bin_PROGRAMS): Add strings.
1160 (strings_no_Wstring): Define.
1161 (strings_LDADD): Define.
1162
Roland McGrath71e15a02005-08-27 10:33:26 +000011632005-08-27 Roland McGrath <roland@redhat.com>
1164
1165 * addr2line.c (dwarf_diename_integrate): Function removed.
1166 (print_dwarf_function): Use plain dwarf_diename.
1167
Ulrich Drepperc5a06cd2005-08-24 19:50:14 +000011682005-08-24 Ulrich Drepper <drepper@redhat.com>
1169
1170 * elflint.c (check_versym): Versioned symbols should not have
1171 local binding.
1172
Ulrich Drepper5d832292005-08-15 21:36:27 +000011732005-08-15 Ulrich Drepper <drepper@redhat.com>
1174
Ulrich Drepper61655e02005-08-16 04:23:02 +00001175 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
1176 undefined.
1177
Ulrich Drepper5d832292005-08-15 21:36:27 +00001178 * Makefile.am: Add rules to build ranlib.
1179 * ranlib.c: New file.
1180
Roland McGrath18e13422005-08-15 08:01:25 +000011812005-08-14 Roland McGrath <roland@redhat.com>
1182
1183 * elflint.c (check_sections): Use ebl_section_type_name and allow any
1184 sh_type it recognizes.
1185
1186 * elflint.c (check_sections): Print unknown flags in hex, don't
1187 truncate high bits. Print section number and name for unknown type.
1188
Roland McGrathf6895042005-08-13 20:56:52 +000011892005-08-13 Roland McGrath <roland@redhat.com>
1190
1191 * elflint.c (check_program_header): Use ebl_segment_type_name and
1192 allow any p_type it recognizes. Include p_type value in error
1193 message for unknown type.
1194
Ulrich Drepperc5c33a62005-08-13 17:50:47 +000011952005-08-13 Ulrich Drepper <drepper@redhat.com>
1196
1197 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
1198 to ebl_check_special_symbol.
1199 (check_sections): Pass ehdr to ebl_bss_plt_p.
1200
Roland McGrath653d3762005-08-13 01:59:10 +000012012005-08-12 Roland McGrath <roland@redhat.com>
1202
1203 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
1204 refers to the right section if it's not SHN_ABS.
1205 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
1206
1207 * elflint.c (check_sections): Don't complain about a non-NOBITS
1208 section taking no segment space, if it's sh_size is 0.
1209
1210 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
1211 be PROGBITS or NOBITS.
1212
1213 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
1214 standard st_value and st_size checks.
1215
Roland McGrath1c83bf12005-08-11 07:03:55 +000012162005-07-28 Roland McGrath <roland@redhat.com>
Ulrich Drepperfaf4d192005-08-11 05:12:05 +00001217
Roland McGrath1c83bf12005-08-11 07:03:55 +00001218 * addr2line.c (options, parse_opt): Don't handle -e here.
1219 (executable): Variable removed.
1220 (argp_children): New static variable.
1221 (argp): Use it. Make const.
1222 (main): Fill in argp_children from dwfl_standard_argp ().
1223 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
1224 (print_dwarf_function): New function. Try to figure out inline chain.
1225 (elf_getname): Function removed, libdwfl does it for us.
1226 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
1227 Use dwfl_module_addrname instead of elf_getname.
1228 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
1229 * Makefile.am (INCLUDES): Add libdwfl directory to path.
1230
12312005-08-10 Ulrich Drepper <drepper@redhat.com>
1232
1233 * strip.c (parse_opt): STATE parameter is now used.
1234 Various little cleanups.
1235
1236 * readelf.c (print_debug_line_section): Correct fallout of renaming
1237 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +00001238
Roland McGrath8f31c2c2005-08-09 04:58:05 +000012392005-08-08 Roland McGrath <roland@redhat.com>
1240
1241 * strip.c (options, parse_opt): Grok -R .comment for compatibility
1242 with binutils strip. Likewise -d, -S, as aliases for -g.
1243 Likewise ignore -s/--strip-all.
1244
Roland McGrath095a01b2005-08-08 03:49:35 +000012452005-08-07 Roland McGrath <roland@redhat.com>
1246
1247 * strip.c (process_file): Open read-only when using a different output
1248 file.
1249
Ulrich Drepper47be7952005-08-07 04:41:39 +000012502005-08-06 Ulrich Drepper <drepper@redhat.com>
1251
Ulrich Drepper637963b2005-08-07 05:33:07 +00001252 * elflint.c (in_nobits_scn): New function.
1253 (check_versym): Allow references for defined symbols against versions
1254 of other DSOs also for symbols in nobits sections.
1255 Move a few variables around.
1256
Ulrich Drepper47be7952005-08-07 04:41:39 +00001257 * Makefile.am (AM_CFLAGS): Avoid duplication.
1258 Link with statis libs if BUILD_STATIC.
1259
Ulrich Drepperdbace232005-08-06 01:37:23 +000012602005-08-05 Ulrich Drepper <drepper@redhat.com>
1261
1262 * elflint.c: Many, many more tests. Mostly related to symbol
1263 versioning. Those sections should now be completely checked.
1264
1265 * readelf.c (print_dynamic): Use gelf_offscn.
1266
Ulrich Drepperacb89832005-08-04 07:01:49 +000012672005-08-04 Ulrich Drepper <drepper@redhat.com>
1268
1269 * elflint.c: Add lots more tests: more extension symbol table sanity,
1270 versioning section tests, hash table tests. General cleanup.
1271
Ulrich Drepperc911c9e2005-08-02 16:07:42 +000012722005-08-02 Ulrich Drepper <drepper@redhat.com>
1273
Ulrich Drepper8a687742005-08-03 02:24:12 +00001274 * objdump.c: New file.
1275 * Makefile.am (bin_PROGRAMS): Add objdump.
1276 (objdump_LDADD): Define.
1277
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001278 * elflint.c (check_reloc_shdr): New function split out from check_rela
1279 and check_rel.
1280 (check_one_reloc): New function. Likewise.
1281 (check_rela): Use check_reloc_shdr and check_one_reloc.
1282 (check_rel): Likewise.
Ulrich Drepper41de4882005-08-03 00:02:56 +00001283 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
1284 section.
1285 Add checks that relocations against read-only segments are flagged,
1286 that the text relocation flag is not set unnecessarily, and that
1287 relocations in one section are either against loaded or not-loaded
1288 segments.
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00001289
Ulrich Drepper8533dcf2005-08-01 07:18:47 +000012902005-08-01 Ulrich Drepper <drepper@redhat.com>
1291
1292 * elfcmp.c (main): Ignore section count and section name string table
1293 section index.
1294
Roland McGrathf9ece8a2005-07-28 07:03:04 +000012952005-07-27 Roland McGrath <roland@redhat.com>
1296
1297 * elfcmp.c: Include <locale.h>.
1298
Ulrich Drepper7d48d6a2005-07-27 10:13:23 +000012992005-07-27 Ulrich Drepper <drepper@redhat.com>
1300
1301 * elfcmp.c: Print name and index of differing section.
1302
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000013032005-07-24 Ulrich Drepper <drepper@redhat.com>
1304
1305 * elfcmp.c: Implement comparing gaps between sections.
1306
13072005-07-23 Ulrich Drepper <drepper@redhat.com>
1308
1309 * elflint.c: Include libeblP.h instead of libebl.h.
1310 * nm.c: Likewise.
1311 * readelf.c: Likewise.
1312 * elfcmp.c: Likewise.
1313
1314 * elfcmp.c (main): Compare individual ELF header fields, excluding
1315 e_shoff instead of the whole struct at once.
1316 Use ebl_section_strip_p instead of SECTION_STRIP_P.
1317 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
1318
13192005-07-22 Ulrich Drepper <drepper@redhat.com>
1320
1321 * elfcmp.c (main): Take empty section into account when comparing
1322 section content.
1323
1324 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
1325 using it.
1326
13272005-07-21 Ulrich Drepper <drepper@redhat.com>
1328
1329 * elfcmp.c: New file.
1330 * Makefile.am (bin_PROGRAMS): Add elfcmp.
1331 (elfcmp_LDADD): Define.
1332
1333 * elflint.c (check_rela): Check that copy relocations only reference
1334 object symbols or symbols with unknown type.
1335 (check_rel): Likewise.
1336
13372005-06-08 Roland McGrath <roland@redhat.com>
1338
1339 * readelf.c (print_ops): Add consts.
1340
13412005-05-31 Roland McGrath <roland@redhat.com>
1342
1343 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
1344 abbreviations. Print a header line before each CU section.
1345
1346 * readelf.c (print_debug_loc_section): Fix indentation for larger
1347 address size.
1348
13492005-05-30 Roland McGrath <roland@redhat.com>
1350
1351 * readelf.c (print_debug_line_section): Print section offset of each
1352 CU's table, so they are easy to find from seeing the stmt_list value.
1353
1354 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
1355 (attr_callback): Grok DW_AT_ranges and print offset in hex.
1356
1357 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
1358 (print_debug_ranges_section, print_debug_loc_section): Likewise.
1359
1360 * readelf.c (print_ops): Take different args for indentation control.
1361 (attr_callback): Caller updated.
1362 Grok several more block-form attributes as being location expressions.
1363 For those same attributes with udata forms, format output differently
1364 for location list offset.
1365 (print_debug_loc_section): Implement it for real.
1366
1367 * readelf.c (options): Mention ranges for --debug-dump.
1368 (enum section_e): Add section_ranges.
1369 (parse_opt): Grok "ranges" for -w/--debug-dump.
1370 (print_debug_ranges_section): New function.
1371 (print_debug): Handle .debug_ranges section.
1372
13732005-05-30 Ulrich Drepper <drepper@redhat.com>
1374
1375 * readelf.c (handle_notes): At least x86-64 need not have the note
1376 section values aligned to 8 bytes.
1377
13782005-05-18 Ulrich Drepper <drepper@redhat.com>
1379
1380 * readelf.c (dwarf_tag_string): Add new tags.
1381
13822005-05-08 Roland McGrath <roland@redhat.com>
1383
1384 * strip.c (handle_elf): Don't translate hash and versym data formats,
1385 elf_getdata already did it for us.
1386
13872005-05-07 Ulrich Drepper <drepper@redhat.com>
1388
1389 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
1390 (addr2line_LDADD): Likewise.
1391
13922005-05-03 Roland McGrath <roland@redhat.com>
1393
1394 * strip.c (handle_elf): Apply symbol table fixups to discarded
1395 relocation sections when they are being saved in the debug file.
1396
1397 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
1398 and gelf_xlatetof, not the native byte order.
1399
1400 * strip.c (parse_opt): Give error if -f or -o is repeated.
1401 (main): Exit if argp_parse returns nonzero.
1402
1403 * strip.c (debug_fname_embed): New variable.
1404 (options, parse_opt): New option -F to set it.
1405
14062005-05-07 Ulrich Drepper <drepper@redhat.com>
1407
1408 * readelf.c (parse_opt): Make any_control_option variable
1409 local. Simplify some tests.
1410
14112005-05-03 Roland McGrath <roland@redhat.com>
1412
1413 * strip.c (crc32_file): Function removed (now in ../lib).
1414
14152005-05-03 Roland McGrath <roland@redhat.com>
1416
1417 * elflint.c (is_debuginfo): New variable.
1418 (options, parse_opt): New option --debuginfo/-d to set it.
1419 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
1420 (check_note): If is_debuginfo, don't try to get note contents.
1421
14222005-04-24 Ulrich Drepper <drepper@redhat.com>
1423
1424 * readelf.c (print_debug_abbrev_section): Don't print error when end of
1425 section reached.
1426
14272005-04-14 Ulrich Drepper <drepper@redhat.com>
1428
1429 * readelf.c (dwarf_encoding_string): New function.
1430 (dwarf_inline_string): New function.
1431 (dwarf_access_string): New function.
1432 (dwarf_visibility_string): New function.
1433 (dwarf_virtuality_string): New function.
1434 (dwarf_identifier_case_string): New function.
1435 (dwarf_calling_convention_string): New function.
1436 (dwarf_ordering_string): New function.
1437 (dwarf_discr_list_string): New function.
1438 (attr_callback): Decode man more attribute values.
1439
14402005-04-01 Ulrich Drepper <drepper@redhat.com>
1441
1442 * addr2line.c: Finish implementation of -f option.
1443
14442005-03-29 Ulrich Drepper <drepper@redhat.com>
1445
1446 * addr2line.c: New file.
1447 * Makefile.am (bin_PROGRAMS): Add addr2line.
1448 Define addr2line_LDADD.
1449
1450 * findtextrel.c: Use new dwarf_addrdie function.
1451
1452 * findtextrel.c: Fix usage message and re-add accidentally removed
1453 line.
1454
14552005-03-28 Ulrich Drepper <drepper@redhat.com>
1456
1457 * findtextrel.c: New file.
1458 * Makefile: Add rules to build findtextrel.
1459
14602005-02-15 Ulrich Drepper <drepper@redhat.com>
1461
1462 * ldlex.l: Provide ECHO definition to avoid warning.
1463
1464 * elflint.c (check_program_header): Fix typo in RELRO test.
1465
1466 * Makefile.am (AM_CFLAGS): Add more warning options.
1467 * elflint.c: Fix warnings introduced by the new warning options.
1468 * i386_ld.c: Likewise.
1469 * ld.c: Likewise.
1470 * ld.h: Likewise.
1471 * ldgeneric.c: Likewise.
1472 * nm.c: Likewise.
1473 * readelf.c: Likewise.
1474 * sectionhash.c: Likewise.
1475 * size.c: Likewise.
1476 * string.c: Likewise.
1477
14782005-02-05 Ulrich Drepper <drepper@redhat.com>
1479
1480 * Makefile.am: Check for text relocations in constructed DSOs.
1481
1482 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
1483 with -lmudflap.
1484
1485 * ldscript.y: Add as_needed handling.
1486 * ldlex.l: Recognize AS_NEEDED token.
1487 * ld.h (struct filename_list): Add as_needed flag.
1488
14892005-02-04 Ulrich Drepper <drepper@redhat.com>
1490
1491 * elflint.c (check_symtab): Correctly determine size of GOT section.
1492
14932005-01-19 Ulrich Drepper <drepper@redhat.com>
1494
1495 * ld.c: Remove unnecessary more_help function. Print bug report
1496 address using argp.
1497 * strip.c: Likewise.
1498 * size.c: Likewise.
1499 * nm.c: Likewise.
1500 * readelf.c: Likewise.
1501 * elflint.c: Likewise.
1502
1503 * elflint.c (main): Don't check for parameter problems here.
1504 (parse_opt): Do it here, where we get informed about some of them
1505 anyway.
1506
1507 * readelf.c (main): Don't check for parameter problems here.
1508 (parse_opt): Do it here, where we get informed about some of them
1509 anyway.
1510
15112005-01-11 Ulrich Drepper <drepper@redhat.com>
1512
1513 * strip.c: Update copyright year.
1514 * readelf.c: Likewise.
1515 * size.c: Likewise.
1516 * nm.c: Likewise.
1517 * ld.c: Likewise.
1518 * elflint.c: Likewise.
1519
1520 * elflint.c (check_symtab): Don't warn about wrong size for
1521 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
1522
15232004-10-05 Ulrich Drepper <drepper@redhat.com>
1524
1525 * readelf.c (print_phdr): In section mapping, also indicate
1526 sections in read-only segments.
1527
15282004-09-25 Ulrich Drepper <drepper@redhat.com>
1529
1530 * readelf.c: Make compile with gcc 4.0.
1531 * strip.c: Likewise.
1532
15332004-08-16 Ulrich Drepper <drepper@redhat.com>
1534
1535 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
1536 allocate to work around gcc 3.4 bug.
1537
15382004-01-25 Ulrich Drepper <drepper@redhat.com>
1539
1540 * ldlex.l (invalid_char): Better error message.
1541
15422004-01-23 Ulrich Drepper <drepper@redhat.com>
1543
1544 * readelf.c: Print SHT_GNU_LIBLIST sections.
1545
1546 * none_ld.c: New file.
1547
15482004-01-21 Ulrich Drepper <drepper@redhat.com>
1549
1550 * Makefile.am: Enable building of machine specific linker.
1551
15522004-01-20 Ulrich Drepper <drepper@redhat.com>
1553
1554 * Makefile.am: Support building with mudflap.
1555
1556 * i386_ld.c: Fix warnings gcc 3.4 spits out.
1557 * ldgeneric.c: Likewise.
1558 * ldscript.y: Likewise.
1559 * readelf.c: Likewise.
1560 * strip.c: Likewise.
1561
1562 * readelf.c (print_debug_line_section): Determine address size
1563 correctly.
1564
15652004-01-19 Ulrich Drepper <drepper@redhat.com>
1566
1567 * readelf.c (print_phdr): Show which sections are covered by the
1568 PT_GNU_RELRO entry.
1569
1570 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
1571
1572 * readelf.c (print_debug_macinfo_section): Implement.
1573
15742004-01-18 Ulrich Drepper <drepper@redhat.com>
1575
1576 * readelf.c (print_debug_line_section): Implement.
1577
15782004-01-17 Ulrich Drepper <drepper@redhat.com>
1579
1580 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
1581 * src/ld.c: Likewise.
1582 * src/nm.c: Likewise.
1583 * src/readelf.c: Likewise.
1584 * src/size.c: Likewise.
1585 * src/strip.c: Likewise.
1586
1587 * strip.c: Add a few more unlikely. Reduce scope of some variables.
1588
1589 * Makefile.am: Support building with mudflap.
1590
15912004-01-16 Ulrich Drepper <drepper@redhat.com>
1592
1593 * readelf.c (print_debug_info_section): Free dies memory.
1594
1595 * readelf.c: Print .debug_info section content.
1596
15972004-01-13 Ulrich Drepper <drepper@redhat.com>
1598
1599 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
1600
16012004-01-12 Ulrich Drepper <drepper@redhat.com>
1602
1603 * readelf.c (print_debug_aranges): Implement using libdw.
1604
16052004-01-11 Ulrich Drepper <drepper@redhat.com>
1606
1607 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
1608
1609 * readelf.c: Use libdw instead of libdwarf. Not all of the old
1610 behavior is available yet.
1611 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
1612
16132004-01-09 Ulrich Drepper <drepper@redhat.com>
1614
1615 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
1616
1617 * nm.c: Implement getting information about local variables.
1618
16192004-01-07 Ulrich Drepper <drepper@redhat.com>
1620
1621 * nm.c: Read also debug information for local symbols.
1622
16232004-01-05 Ulrich Drepper <drepper@redhat.com>
1624
1625 * nm.c: Shuffle dwarf handling code around so the maximum column
1626 width can be computed ahead of printing. Avoid collection symbols
1627 which are not printed anyway.
1628
1629 * nm.c: Rewrite dwarf handling to use libdw.
1630 * Makefile.am (AM_CFLAGS): Add -std parameter.
1631 (INCLUDES): Find header in libdw subdir.
1632 (nm_LDADD): Replace libdwarf with libdw.
1633
1634 * elflint.c: Update copyright year.
1635 * readelf.c: Likewise.
1636 * size.c: Likewise.
1637 * strip.c: Likewise.
1638 * nm.c: Likewise.
1639
16402003-12-31 Ulrich Drepper <drepper@redhat.com>
1641
1642 * strip.c (process_file): Close file before returning.
1643
16442003-11-19 Ulrich Drepper <drepper@redhat.com>
1645
1646 * readelf.c (handle_dynamic): Make column for tag name wider.
1647
16482003-09-29 Ulrich Drepper <drepper@redhat.com>
1649
1650 * readelf.c (handle_dynamic): Always terminate tag name with a space.
1651
16522003-09-25 Ulrich Drepper <drepper@redhat.com>
1653
1654 * strip.c (process_file): Don't mmap the input file, we modify the
1655 data structures and don't want the change end up on disk.
1656
16572003-09-23 Jakub Jelinek <jakub@redhat.com>
1658
1659 * unaligned.h (union u_2ubyte_unaligned,
1660 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
1661 packed attribute.
1662 (add_2ubyte_unaligned, add_4ubyte_unaligned,
1663 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
1664 Read/store value through _ptr->u instead of *_ptr.
1665
16662003-09-22 Ulrich Drepper <drepper@redhat.com>
1667
1668 * size.c (show_sysv): Change type of maxlen to int.
1669
1670 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
1671 buckets.
1672
1673 * i386_ld.c: Many many fixes and extensions.
1674 * ld.c: Likewise.
1675 * ldgeneric.c: Likewise.
1676
16772003-08-16 Ulrich Drepper <drepper@redhat.com>
1678
1679 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
1680 the reference is from another DSO.
1681
16822003-08-15 Ulrich Drepper <drepper@redhat.com>
1683
1684 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
1685 point is found when creating a DSO.
1686
16872003-08-14 Ulrich Drepper <drepper@redhat.com>
1688
1689 * ld.c (main): Always call FLAG_UNRESOLVED.
1690 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
1691 undefined symbols if not creating DSO or ld_state.nodefs is not set.
1692
16932003-08-13 Ulrich Drepper <drepper@redhat.com>
1694
1695 * Makefile.in: Depend on libebl.a, not libebl.so.
1696
1697 * ld.c (main): Mark stream for linker script as locked by caller.
1698 (read_version_script): Likewise.
1699 * ldlex.c: Define fread and fwrite to _unlocked variant.
1700
1701 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
1702 target_bswap_32.
1703 * unaligned.h: Define target_bswap_16, target_bswap_32, and
1704 target_bswap_64.
1705 (store_2ubyte_unaligned, store_4ubyte_unaligned,
1706 store_8ubyte_unaligned): Define using new macros.
1707
17082003-08-12 Ulrich Drepper <drepper@redhat.com>
1709
1710 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
1711 possibly unaligned memory. Support use of big endian machines.
1712
17132003-08-11 Ulrich Drepper <drepper@redhat.com>
1714
1715 * Moved to CVS archive.