blob: 77c9838100e875faa06bb00ee8365aa11265f1a8 [file] [log] [blame]
Roland McGrath099dd522007-08-13 22:58:36 +000012007-08-12 Roland McGrath <roland@redhat.com>
2
3 * elflint.c (check_note): Accept type 0 with name "Linux".
4
5 * elflint.c (special_sections): Accept SHF_ALLOC for ".note".
6
7 * elflint.c (section_flags_string): Return "none" for 0, not "".
8
Roland McGrathd8221722007-08-11 21:18:09 +000092007-08-11 Roland McGrath <roland@redhat.com>
10
11 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID.
12
Ulrich Drepperc98bcc72007-08-04 17:06:14 +0000132007-08-04 Ulrich Drepper <drepper@redhat.com>
14
15 * readelf.c (hex_dump): Use isprint to determine whether to print
16 character itself or full stop character.
17 (dump_data): No need to check endp for NULL after strtol call.
18
Roland McGrath60fc84c2007-08-03 21:59:15 +0000192007-08-03 Roland McGrath <roland@redhat.com>
20
21 * readelf.c (print_string_sections): New variable.
22 (options, parse_opt): Handle --strings/-p to set it.
23 (print_strings): New function.
24 (process_elf_file): Call it under -p.
25
26 * readelf.c (options): Add hidden aliases --segments, --sections,
27 as taken by binutils readelf.
28
292007-08-01 Roland McGrath <roland@redhat.com>
30
31 * readelf.c (dump_data_sections, dump_data_sections_tail):
32 New variables.
33 (options, parse_opt): Handle --hex-dump/-x, set them.
34 (hex_dump): New function.
35 (dump_data): New function, call it.
36 (process_elf_file): Call it.
37
382007-07-25 Roland McGrath <roland@redhat.com>
39
40 * addr2line.c (show_symbols): New variable.
41 (print_addrsym): New function.
42 (handle_address): Call it.
43 (options, parse_opt): Handle -S/--symbols.
44
Ulrich Drepperb0243862007-06-06 00:09:36 +0000452007-06-05 Ulrich Drepper <drepper@redhat.com>
46
47 * addr2line.c: Update for latest autoconf header.
48 * ar.c: Likewise.
49 * elfcmp.c: Likewise.
50 * elflint.c: Likewise.
51 * findtextrel.c: Likewise.
52 * ld.c: Likewise.
53 * ldgeneric.c: Likewise.
54 * nm.c: Likewise.
55 * objdump.c: Likewise.
56 * ranlib.c: Likewise.
57 * readelf.c: Likewise.
58 * size.c: Likewise.
59 * strings.c: Likewise.
60 * strip.c: Likewise.
61 * unstrip.c: Likewise.
62
Roland McGrath9aa8ef72007-05-18 08:59:43 +0000632007-05-18 Roland McGrath <roland@redhat.com>
64
65 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with
66 stripped file, so as not to duplicate a section copied in both.
67
68 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file.
69
702007-05-17 Roland McGrath <roland@redhat.com>
71
72 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0.
73
74 * unstrip.c (handle_file): Tweak BIAS != 0 warning.
75
76 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set,
77 call make_directories here.
78 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down.
79 (handle_dwfl_module): Likewise.
80 (handle_implicit_modules): Update callers.
81 (handle_output_dir_module): Likewise. Don't do make_directories here.
82
83 * unstrip.c (get_section_name): New function, broken out of ...
84 (copy_elided_sections): here. Update callers.
85 (find_alloc_section): Broken out of ...
86 (copy_elided_sections): ... here. Update caller.
87 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA,
88 update STT_SECTION symbols' st_value fields as a side effect.
89 (check_symtab_section_symbols): Update caller.
90 (add_new_section_symbols): Set st_value in symbols added.
91 (collect_symbols): Reset S->value for STT_SECTION symbols recorded.
92 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved
93 from .bss to .dynbss.
94 (find_alloc_sections_prelink): New function. Associate debug file
95 allocated SHT_NOBITS shdrs with stripped moved by prelink via
96 .gnu.prelink_undo information.
97 (copy_elided_sections): Call it when we couldn't find every allocated
98 section. Don't use a debug file non-NOBITS section if SHF_ALLOC.
99 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM.
100 (handle_file): Update callers.
101
102 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section
103 named ".comment".
104
105 * elflint.c (check_sections): Fix association of segments with
106 sections when p_memsz > p_filesz.
107
1082007-04-29 Roland McGrath <roland@redhat.com>
109
110 * addr2line.c (options, main): Tweak argp group settings to fix
111 usage output.
112
1132007-04-28 Roland McGrath <roland@redhat.com>
114
115 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections'
116 sizes to match sections adjusted in the stripped file.
117
Roland McGrath4be15242007-04-25 03:09:33 +00001182007-04-24 Roland McGrath <roland@redhat.com>
119
120 * elfcmp.c (OPT_HASH_INEXACT): New macro.
121 (hash_inexact): New variable.
122 (options, parse_opt): Add --hash-inexact option to set it.
123 (hash_content_equivalent): New function.
124 (main): Call it for differing SHT_HASH sections under --hash-inexact.
125
1262007-04-23 Roland McGrath <roland@redhat.com>
127
128 * unstrip.c: New file.
129 * Makefile.am (bin_PROGRAMS): Add it.
130 (unstrip_LDADD): New variable.
131
132 * strip.c (options): Allow --output for -o.
133
Ulrich Drepper8b383102007-02-16 00:31:57 +00001342007-02-15 Ulrich Drepper <drepper@redhat.com>
135
136 * readelf.c: Remove unused code. Add a few consts.
137
Ulrich Drepper903c1162007-02-15 19:40:37 +00001382007-02-15 Roland McGrath <roland@redhat.com>
139
140 * readelf.c (print_debug): Fix brainos in SHDR test.
141
Roland McGrathf82a1ec2007-02-06 04:47:44 +00001422007-02-05 Roland McGrath <roland@redhat.com>
143
144 * ar.c: Include <limits.h>, since we use LONG_MAX.
145
Ulrich Drepper0fe63532007-02-05 21:05:51 +00001462007-02-05 Ulrich Drepper <drepper@redhat.com>
147
Ulrich Drepper8b383102007-02-16 00:31:57 +0000148 * ar.c: Add ugly hack to work around gcc complaining that we
Ulrich Drepper93ab56f2007-02-05 22:12:41 +0000149 ignore fchown's return value.
150 (do_oper_insert): Handle error when writing padding.
151 * ranlib.c: Add fchown complain work around.
152
Ulrich Drepper0fe63532007-02-05 21:05:51 +0000153 * arlib.c: Make symtab a global variable. Change all users.
154 * arlib2.c: Likewise.
155 * ranlib.c: Likewise.
156 * ar.c: Likewise.
157 * arlib.h: Declare it.
158
Ulrich Drepperaa915fd2007-02-05 07:25:33 +00001592007-01-11 Roland McGrath <roland@redhat.com>
160
161 * elflint.c (check_sections): Use ebl_machine_section_flag_check on
162 SHF_MASKPROC bits separately from generic sh_flags validation.
163
Ulrich Drepperce0bdb62007-02-05 07:13:52 +00001642007-02-04 Ulrich Drepper <drepper@redhat.com>
165
166 * ar.c: New file.
167 * arlib.c: New file.
168 * arlib2.c: New file.
169 * arlib.h: New file.
170 * Makefile (noinst_LIBRARIES): Add libar.
171 (libar_a_SOURCES): Define.
172 (ar_LDADD): Define.
173 (CFLAGS_ar): Define.
174 * ranlib.c: Change to use arlib.
175
176 * elflint.c (check_symtab): Work around GNU ld bug which omits
177 sections but not symbols in those sections.
178
Ulrich Drepperb770cf92007-01-10 21:02:34 +00001792007-01-10 Ulrich Drepper <drepper@redhat.com>
180
181 * addr2line.c: Update copyright year.
182 * elfcmp.c: Likewise.
183 * elflint.c: Likewise.
184 * findtextrel.c: Likewise.
185 * ld.c: Likewise.
186 * nm.c: Likewise.
187 * objdump.c: Likewise.
188 * ranlib.c: Likewise.
189 * readelf.c: Likewise.
190 * size.c: Likewise.
191 * strings.c: Likewise.
192 * strip.c: Likewise.
193
Ulrich Drepper7c0e79f2006-12-09 21:10:19 +00001942006-12-09 Ulrich Drepper <drepper@redhat.com>
195
196 * elflint.c (compare_hash_gnu_hash): New function. Report if the
197 two hash tables have different content (module expected omission
198 of undefined symbols).
199
Roland McGrath8190db62006-12-17 23:56:51 +00002002006-10-31 Roland McGrath <roland@redhat.com>
201
202 * elflint.c (check_program_header): Don't complain about
Ulrich Drepper56bc0b82006-12-18 22:38:08 +0000203 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE.
Roland McGrath8190db62006-12-17 23:56:51 +0000204
2052006-09-19 Jakub Jelinek <jakub@redhat.com>
206
207 * strip.c (process_file): Disallow -f on archives.
208
2092006-10-09 Roland McGrath <roland@redhat.com>
210
211 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC).
212
Roland McGrathc373d852006-10-10 00:25:21 +00002132006-08-29 Roland McGrath <roland@redhat.com>
214
215 * Makefile.am (MAINTAINERCLEANFILES): New variable.
216
217 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly.
218 Reported by Christian Aichinger <Greek0@gmx.net>.
219
220 * elflint.c (valid_e_machine): Add EM_ALPHA.
221 Reported by Christian Aichinger <Greek0@gmx.net>.
222
Ulrich Drepper231c5902006-08-08 22:00:11 +00002232006-08-08 Ulrich Drepper <drepper@redhat.com>
224
225 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
226 Keep track of which "high DT" entries are present.
227 Check that either old or GNU-style hash table is present.
228 If GNU-style hash table is used a symbol table is mandatory.
229 Check that if any prelink entry is present all of them are.
230 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash
231 table if they don't refer to functions.
232
Roland McGrath858b1892006-07-17 08:41:15 +00002332006-07-17 Roland McGrath <roland@redhat.com>
234
235 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field.
236 (add_version): Likewise for argument.
237 (check_versym): Cast constant to GElf_Versym for comparison.
238
Roland McGrath4ec807e2006-07-13 03:59:46 +00002392006-07-12 Roland McGrath <roland@redhat.com>
240
241 * readelf.c (handle_gnu_hash): Add casts for machines where
242 Elf32_Word != unsigned int.
243
Ulrich Drepperdcf61602006-07-12 19:59:02 +00002442006-07-12 Ulrich Drepper <drepper@redhat.com>
245
246 * elflint.c (check_sysv_hash64): Fix printf format.
247
Ulrich Dreppercc415622006-07-12 19:42:23 +00002482006-07-11 Roland McGrath <roland@redhat.com>
Ulrich Drepper8ae58142006-07-12 05:22:32 +0000249
Ulrich Dreppercc415622006-07-12 19:42:23 +0000250 * addr2line.c (options): English fix in -f doc string.
251
252 * addr2line.c (use_comp_dir): New variable.
253 (options, parse_opt): Grok -A/--absolute to set it.
254 (handle_address): If set, prepend dwfl_line_comp_dir results to
255 relative file names.
Ulrich Drepper8ae58142006-07-12 05:22:32 +0000256
Ulrich Drepper28ed8952006-07-07 03:43:47 +00002572006-07-06 Ulrich Drepper <drepper@redhat.com>
258
259 * elflint.c: Adjust for latest new hash table format.
260 * readelf.c: Likewise.
261
262 * elflint.c (check_versym): Ignore hidden bit when comparing version
263 numbers.
264
2652006-07-05 Ulrich Drepper <drepper@redhat.com>
266
267 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize
268 discarded COMDAT symbols.
269
270 * i386_ld.c (elf_i386_count_relocations): Lot of corrections.
271 (elf_i386_create_relocations): Likewise.
272 * ld.h (struct symbol): Add local and hidden bits.
273 * ld.c (create_special_section_symbol): These synthsized symbols
274 are local and hidden.
275 * ldgeneric.c (file_process2): Check whether input file matches
276 the emulation.
277 (fillin_special_symbol): Create symbols as local and/or hidden
278 if requested.
279 (ld_generic_create_outfile): Make local copy of symbol.
280 Don't hide global, defined symbols in dynamic symbol table unless
281 requested. Synthetic symbols have no version information.
282
283 * elflint.c: Add support for checking 64-bit SysV-style hash tables.
284 * readelf.c: Add support for printing 64-bit SysV-style hash tables.
285
2862006-07-04 Ulrich Drepper <drepper@redhat.com>
287
288 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT
289 testing.
290
2912006-07-03 Ulrich Drepper <drepper@redhat.com>
292
293 * elflint.c: Add testing of DT_GNU_HASH.
294 * readelf.c: Implement showing histogram for DT_GNU_HASH section.
295
296 * Makefile.am: Add hacks to create dependency files for non-generic
297 linker.
298
Ulrich Drepper6ca46002006-06-12 22:40:23 +00002992006-06-12 Ulrich Drepper <drepper@redhat.com>
300
301 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
302 section if creating a DSO and no interpreter is given.
303 (ld_generic_create_outfile): Don't store reference to symbols in
304 discarded COMDAT groups. Don't create PHDR and INTERP program header
305 for DSO if no interpreter is specified.
Ulrich Drepper595d0e72006-06-12 23:25:17 +0000306 (create_verneed_data): Pretty printing.
307
Ulrich Drepper6ca46002006-06-12 22:40:23 +0000308 * ldscript.y (content): If a DSO is created don't set default
309 interpreter from linker script.
310
311 * i386_ld.c (elf_i386_count_relocations): Do not add relocations
312 for symbols in discarded COMDAT groups.
313 (elf_i386_create_relocations): Likewise.
314 * ld.h (struct scninfo): Add unused_comdat.
315 * ldgeneric.c (add_section): Also check group signature when
316 matching COMDAT sections.
317 (add_relocatable_file): Ignore symbols in COMDAT group which are
318 discarded.
319
320 * elflint.c (check_one_reloc): For *_NONE relocs only check type
321 and symbol reference.
322
Ulrich Drepper54f33a72006-06-11 09:07:37 +00003232006-06-11 Ulrich Drepper <drepper@redhat.com>
324
Ulrich Dreppercbb51e52006-06-11 20:25:23 +0000325 * elflint.c (check_dynamic): Fix checking value of tags which are
326 offsets in the string section. Make sure DT_STRTAB points to the
327 section referenced in sh_link.
328
329 * ld.c (options): Add headers. Add short option 'R' for '--rpath'.
330
Ulrich Drepper54f33a72006-06-11 09:07:37 +0000331 * ld.c: Recognize --eh-frame-hdr option.
332 * ld.h (struct ld_state): Add eh_frame_hdr field.
333 * ldgeneric.c (struct unw_eh_frame_hdr): Define.
334
335 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of
336 SH_FLAGS_COMBINE.
337 (add_relocatable_file): Minor optimization of last change.
338 (match_section): Don't preserve SHF_GROUP flag any longer.
339
Ulrich Drepper2d880282006-06-11 00:20:43 +00003402006-06-10 Ulrich Drepper <drepper@redhat.com>
341
342 * ld.c (parse_z_option): Recognize execstack and noexecstack.
Ulrich Drepper4f0a7a82006-06-11 00:53:45 +0000343 Handle record and ignore as position dependent options.
344 (parse_z_option_2): Handle ignore and record here.
Ulrich Drepper2d880282006-06-11 00:20:43 +0000345 * ld.h (struct ld_state): Add execstack field.
346 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack
347 sections.
348 (ld_generic_create_outfile): Fix program header creation in native
349 linker. Add PT_GNU_STACK program header.
350
Ulrich Dreppera688a732006-06-10 06:33:00 +00003512006-06-09 Ulrich Drepper <drepper@redhat.com>
352
353 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries
354 for PLT entries if there is no local definition.
355
356 * ld.c (parse_option): Handle -z ignore like --as-needed and
357 -z record like --no-as-needed.
358 * ld.h (struct ld_state): Remove ignore_unused_dsos field.
359 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by
360 looping over DSOs. When deciding about adding DT_NEEDED entries
361 use ->as_needed instead of ignore_unused_dsos.
362
Ulrich Drepper8c56fe32006-05-31 15:50:43 +00003632006-05-31 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper11b030e2006-05-28 20:28:19 +0000364
Ulrich Drepper8c56fe32006-05-31 15:50:43 +0000365 * ld.c: Recognize --as-needed and --no-as-needed options.
366 * ld.h (struct usedfile): Add as_needed field.
367 (struct ld_state): Likewise.
368 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from
369 the list.
370 * ldscript.y (filename_id_list): Split to correctly parse all
371 combinations.
372 (mark_as_needed): Fix loop.
Ulrich Drepper11b030e2006-05-28 20:28:19 +0000373
Ulrich Drepper697f4db2006-06-10 06:50:47 +00003742006-05-28 Ulrich Drepper <drepper@redhat.com>
375
376 * addr2line.c (print_dwarf_function): Use unsigned type for lineno
377 and colno.
378
Ulrich Drepper2cb8e732006-05-27 21:57:27 +00003792006-05-27 Ulrich Drepper <drepper@redhat.com>
380
381 * readelf.c (handle_relocs_rela): Better notations for addon value.
Ulrich Drepper41a99082006-05-28 00:01:43 +0000382 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version.
Ulrich Drepper2cb8e732006-05-27 21:57:27 +0000383
Ulrich Drepper82c345d2006-04-04 22:07:54 +00003842006-04-04 Ulrich Drepper <drepper@redhat.com>
385
386 * addr2line.c: Update copyright year.
387 * elfcmp.c: Likewise.
388 * elflint.c: Likewise.
389 * findtextrel.c: Likewise.
390 * ld.c: Likewise.
391 * nm.c: Likewise.
392 * objdump.c: Likewise.
393 * ranlib.c: Likewise.
394 * readelf.c: Likewise.
395 * size.c: Likewise.
396 * strings.c: Likewise.
397 * strip.c: Likewise.
398
Roland McGrathdd7e22b2006-03-09 23:05:47 +00003992006-03-09 Roland McGrath <roland@redhat.com>
400
401 * Makefile.am (AM_LDFLAGS): New variable.
402
Roland McGrath060fa052006-03-02 07:51:50 +00004032006-03-01 Roland McGrath <roland@redhat.com>
404
405 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables
406 for dwarf.h changes matching 3.0 spec.
407 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise.
408
Ulrich Drepper038129b2005-12-04 16:47:24 +00004092005-12-04 Ulrich Drepper <drepper@redhat.com>
410
411 * elflint.c (check_one_reloc): If relocation section is not loaded,
412 don't check whether the relocations modify read-only sections or
413 loaded and unloaded sections.
414
Ulrich Drepper607e0542005-12-04 15:51:06 +00004152005-11-28 Ulrich Drepper <drepper@redhat.com>
416
417 * elflint.c (check_one_reloc): Take additional parameters. Use
418 them to determine whether relocation is valid in this type of
419 file. DSOs and executables can contain relocation sections in
420 unloaded sections which just show the relocations the linker
421 applied. Adjust all callers.
422 (check_program_header): Check that PT_PHDR is loaded and that offset
423 matches the one in the ELF header.
424
Roland McGrath6724c902005-10-28 07:07:19 +00004252005-10-26 Roland McGrath <roland@redhat.com>
426
427 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation.
428
Ulrich Drepperd0449522005-09-03 07:23:52 +00004292005-09-03 Ulrich Drepper <drepper@redhat.com>
430
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +0000431 * strip.c (handle_elf): Unify some error messages.
432 * ld.c (main): Likewise.
433 * ldgeneric.c (open_elf): Likewise.
434 * elfcmp.c (main): Likewise.
435 * elflint.c (check_elf_header): Likewise.
436
437 * size.c (process_file): Fix typo in error message.
438
Ulrich Drepperd0449522005-09-03 07:23:52 +0000439 * readelf.c: Lots of little cleanups. Use _unlocked functions.
440
Ulrich Dreppera60501e2005-09-02 19:50:17 +00004412005-09-02 Ulrich Drepper <drepper@redhat.com>
442
Ulrich Dreppere3f9b7d2005-09-03 16:42:46 +0000443 * strings.c (main): Reset elfmap variable after munmap call.
Ulrich Drepper618795f2005-09-02 20:01:37 +0000444 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap.
Ulrich Dreppera60501e2005-09-02 19:50:17 +0000445
Ulrich Drepperfbe998a2005-08-29 16:27:10 +00004462005-08-28 Ulrich Drepper <drepper@redhat.com>
447
448 * ranlib.c: Don't define pread_retry and write_retry here.
449
450 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl.
451 (CLEANFILES): Add *.gcno *.gcda *.gconv.
452
453 * strings.c (process_chunk): Reorder expressions in conditional
454 (process_chunk_mb): Likewise.
455
456 * strings.c: New file.
457 * Makefile.am (bin_PROGRAMS): Add strings.
458 (strings_no_Wstring): Define.
459 (strings_LDADD): Define.
460
Roland McGrath71e15a02005-08-27 10:33:26 +00004612005-08-27 Roland McGrath <roland@redhat.com>
462
463 * addr2line.c (dwarf_diename_integrate): Function removed.
464 (print_dwarf_function): Use plain dwarf_diename.
465
Ulrich Drepperc5a06cd2005-08-24 19:50:14 +00004662005-08-24 Ulrich Drepper <drepper@redhat.com>
467
468 * elflint.c (check_versym): Versioned symbols should not have
469 local binding.
470
Ulrich Drepper5d832292005-08-15 21:36:27 +00004712005-08-15 Ulrich Drepper <drepper@redhat.com>
472
Ulrich Drepper61655e02005-08-16 04:23:02 +0000473 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be
474 undefined.
475
Ulrich Drepper5d832292005-08-15 21:36:27 +0000476 * Makefile.am: Add rules to build ranlib.
477 * ranlib.c: New file.
478
Roland McGrath18e13422005-08-15 08:01:25 +00004792005-08-14 Roland McGrath <roland@redhat.com>
480
481 * elflint.c (check_sections): Use ebl_section_type_name and allow any
482 sh_type it recognizes.
483
484 * elflint.c (check_sections): Print unknown flags in hex, don't
485 truncate high bits. Print section number and name for unknown type.
486
Roland McGrathf6895042005-08-13 20:56:52 +00004872005-08-13 Roland McGrath <roland@redhat.com>
488
489 * elflint.c (check_program_header): Use ebl_segment_type_name and
490 allow any p_type it recognizes. Include p_type value in error
491 message for unknown type.
492
Ulrich Drepperc5c33a62005-08-13 17:50:47 +00004932005-08-13 Ulrich Drepper <drepper@redhat.com>
494
495 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr
496 to ebl_check_special_symbol.
497 (check_sections): Pass ehdr to ebl_bss_plt_p.
498
Roland McGrath653d3762005-08-13 01:59:10 +00004992005-08-12 Roland McGrath <roland@redhat.com>
500
501 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx
502 refers to the right section if it's not SHN_ABS.
503 Let ebl_check_special_symbol override _G_O_T_ value and size checks.
504
505 * elflint.c (check_sections): Don't complain about a non-NOBITS
506 section taking no segment space, if it's sh_size is 0.
507
508 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should
509 be PROGBITS or NOBITS.
510
511 * elflint.c (check_symtab): Use ebl_check_special_symbol to override
512 standard st_value and st_size checks.
513
Roland McGrath1c83bf12005-08-11 07:03:55 +00005142005-07-28 Roland McGrath <roland@redhat.com>
Ulrich Drepperfaf4d192005-08-11 05:12:05 +0000515
Roland McGrath1c83bf12005-08-11 07:03:55 +0000516 * addr2line.c (options, parse_opt): Don't handle -e here.
517 (executable): Variable removed.
518 (argp_children): New static variable.
519 (argp): Use it. Make const.
520 (main): Fill in argp_children from dwfl_standard_argp ().
521 Let libdwfl handle file selection, pass Dwfl handle to handle_address.
522 (print_dwarf_function): New function. Try to figure out inline chain.
523 (elf_getname): Function removed, libdwfl does it for us.
524 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles.
525 Use dwfl_module_addrname instead of elf_getname.
526 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls.
527 * Makefile.am (INCLUDES): Add libdwfl directory to path.
528
5292005-08-10 Ulrich Drepper <drepper@redhat.com>
530
531 * strip.c (parse_opt): STATE parameter is now used.
532 Various little cleanups.
533
534 * readelf.c (print_debug_line_section): Correct fallout of renaming
535 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +0000536
Roland McGrath8f31c2c2005-08-09 04:58:05 +00005372005-08-08 Roland McGrath <roland@redhat.com>
538
539 * strip.c (options, parse_opt): Grok -R .comment for compatibility
540 with binutils strip. Likewise -d, -S, as aliases for -g.
541 Likewise ignore -s/--strip-all.
542
Roland McGrath095a01b2005-08-08 03:49:35 +00005432005-08-07 Roland McGrath <roland@redhat.com>
544
545 * strip.c (process_file): Open read-only when using a different output
546 file.
547
Ulrich Drepper47be7952005-08-07 04:41:39 +00005482005-08-06 Ulrich Drepper <drepper@redhat.com>
549
Ulrich Drepper637963b2005-08-07 05:33:07 +0000550 * elflint.c (in_nobits_scn): New function.
551 (check_versym): Allow references for defined symbols against versions
552 of other DSOs also for symbols in nobits sections.
553 Move a few variables around.
554
Ulrich Drepper47be7952005-08-07 04:41:39 +0000555 * Makefile.am (AM_CFLAGS): Avoid duplication.
556 Link with statis libs if BUILD_STATIC.
557
Ulrich Drepperdbace232005-08-06 01:37:23 +00005582005-08-05 Ulrich Drepper <drepper@redhat.com>
559
560 * elflint.c: Many, many more tests. Mostly related to symbol
561 versioning. Those sections should now be completely checked.
562
563 * readelf.c (print_dynamic): Use gelf_offscn.
564
Ulrich Drepperacb89832005-08-04 07:01:49 +00005652005-08-04 Ulrich Drepper <drepper@redhat.com>
566
567 * elflint.c: Add lots more tests: more extension symbol table sanity,
568 versioning section tests, hash table tests. General cleanup.
569
Ulrich Drepperc911c9e2005-08-02 16:07:42 +00005702005-08-02 Ulrich Drepper <drepper@redhat.com>
571
Ulrich Drepper8a687742005-08-03 02:24:12 +0000572 * objdump.c: New file.
573 * Makefile.am (bin_PROGRAMS): Add objdump.
574 (objdump_LDADD): Define.
575
Ulrich Drepperc911c9e2005-08-02 16:07:42 +0000576 * elflint.c (check_reloc_shdr): New function split out from check_rela
577 and check_rel.
578 (check_one_reloc): New function. Likewise.
579 (check_rela): Use check_reloc_shdr and check_one_reloc.
580 (check_rel): Likewise.
Ulrich Drepper41de4882005-08-03 00:02:56 +0000581 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic
582 section.
583 Add checks that relocations against read-only segments are flagged,
584 that the text relocation flag is not set unnecessarily, and that
585 relocations in one section are either against loaded or not-loaded
586 segments.
Ulrich Drepperc911c9e2005-08-02 16:07:42 +0000587
Ulrich Drepper8533dcf2005-08-01 07:18:47 +00005882005-08-01 Ulrich Drepper <drepper@redhat.com>
589
590 * elfcmp.c (main): Ignore section count and section name string table
591 section index.
592
Roland McGrathf9ece8a2005-07-28 07:03:04 +00005932005-07-27 Roland McGrath <roland@redhat.com>
594
595 * elfcmp.c: Include <locale.h>.
596
Ulrich Drepper7d48d6a2005-07-27 10:13:23 +00005972005-07-27 Ulrich Drepper <drepper@redhat.com>
598
599 * elfcmp.c: Print name and index of differing section.
600
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00006012005-07-24 Ulrich Drepper <drepper@redhat.com>
602
603 * elfcmp.c: Implement comparing gaps between sections.
604
6052005-07-23 Ulrich Drepper <drepper@redhat.com>
606
607 * elflint.c: Include libeblP.h instead of libebl.h.
608 * nm.c: Likewise.
609 * readelf.c: Likewise.
610 * elfcmp.c: Likewise.
611
612 * elfcmp.c (main): Compare individual ELF header fields, excluding
613 e_shoff instead of the whole struct at once.
614 Use ebl_section_strip_p instead of SECTION_STRIP_P.
615 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P.
616
6172005-07-22 Ulrich Drepper <drepper@redhat.com>
618
619 * elfcmp.c (main): Take empty section into account when comparing
620 section content.
621
622 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before
623 using it.
624
6252005-07-21 Ulrich Drepper <drepper@redhat.com>
626
627 * elfcmp.c: New file.
628 * Makefile.am (bin_PROGRAMS): Add elfcmp.
629 (elfcmp_LDADD): Define.
630
631 * elflint.c (check_rela): Check that copy relocations only reference
632 object symbols or symbols with unknown type.
633 (check_rel): Likewise.
634
6352005-06-08 Roland McGrath <roland@redhat.com>
636
637 * readelf.c (print_ops): Add consts.
638
6392005-05-31 Roland McGrath <roland@redhat.com>
640
641 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's
642 abbreviations. Print a header line before each CU section.
643
644 * readelf.c (print_debug_loc_section): Fix indentation for larger
645 address size.
646
6472005-05-30 Roland McGrath <roland@redhat.com>
648
649 * readelf.c (print_debug_line_section): Print section offset of each
650 CU's table, so they are easy to find from seeing the stmt_list value.
651
652 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>.
653 (attr_callback): Grok DW_AT_ranges and print offset in hex.
654
655 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format.
656 (print_debug_ranges_section, print_debug_loc_section): Likewise.
657
658 * readelf.c (print_ops): Take different args for indentation control.
659 (attr_callback): Caller updated.
660 Grok several more block-form attributes as being location expressions.
661 For those same attributes with udata forms, format output differently
662 for location list offset.
663 (print_debug_loc_section): Implement it for real.
664
665 * readelf.c (options): Mention ranges for --debug-dump.
666 (enum section_e): Add section_ranges.
667 (parse_opt): Grok "ranges" for -w/--debug-dump.
668 (print_debug_ranges_section): New function.
669 (print_debug): Handle .debug_ranges section.
670
6712005-05-30 Ulrich Drepper <drepper@redhat.com>
672
673 * readelf.c (handle_notes): At least x86-64 need not have the note
674 section values aligned to 8 bytes.
675
6762005-05-18 Ulrich Drepper <drepper@redhat.com>
677
678 * readelf.c (dwarf_tag_string): Add new tags.
679
6802005-05-08 Roland McGrath <roland@redhat.com>
681
682 * strip.c (handle_elf): Don't translate hash and versym data formats,
683 elf_getdata already did it for us.
684
6852005-05-07 Ulrich Drepper <drepper@redhat.com>
686
687 * Makefile.am (findtextrel_LDADD): Add $(libmudflap).
688 (addr2line_LDADD): Likewise.
689
6902005-05-03 Roland McGrath <roland@redhat.com>
691
692 * strip.c (handle_elf): Apply symbol table fixups to discarded
693 relocation sections when they are being saved in the debug file.
694
695 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom
696 and gelf_xlatetof, not the native byte order.
697
698 * strip.c (parse_opt): Give error if -f or -o is repeated.
699 (main): Exit if argp_parse returns nonzero.
700
701 * strip.c (debug_fname_embed): New variable.
702 (options, parse_opt): New option -F to set it.
703
7042005-05-07 Ulrich Drepper <drepper@redhat.com>
705
706 * readelf.c (parse_opt): Make any_control_option variable
707 local. Simplify some tests.
708
7092005-05-03 Roland McGrath <roland@redhat.com>
710
711 * strip.c (crc32_file): Function removed (now in ../lib).
712
7132005-05-03 Roland McGrath <roland@redhat.com>
714
715 * elflint.c (is_debuginfo): New variable.
716 (options, parse_opt): New option --debuginfo/-d to set it.
717 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS.
718 (check_note): If is_debuginfo, don't try to get note contents.
719
7202005-04-24 Ulrich Drepper <drepper@redhat.com>
721
722 * readelf.c (print_debug_abbrev_section): Don't print error when end of
723 section reached.
724
7252005-04-14 Ulrich Drepper <drepper@redhat.com>
726
727 * readelf.c (dwarf_encoding_string): New function.
728 (dwarf_inline_string): New function.
729 (dwarf_access_string): New function.
730 (dwarf_visibility_string): New function.
731 (dwarf_virtuality_string): New function.
732 (dwarf_identifier_case_string): New function.
733 (dwarf_calling_convention_string): New function.
734 (dwarf_ordering_string): New function.
735 (dwarf_discr_list_string): New function.
736 (attr_callback): Decode man more attribute values.
737
7382005-04-01 Ulrich Drepper <drepper@redhat.com>
739
740 * addr2line.c: Finish implementation of -f option.
741
7422005-03-29 Ulrich Drepper <drepper@redhat.com>
743
744 * addr2line.c: New file.
745 * Makefile.am (bin_PROGRAMS): Add addr2line.
746 Define addr2line_LDADD.
747
748 * findtextrel.c: Use new dwarf_addrdie function.
749
750 * findtextrel.c: Fix usage message and re-add accidentally removed
751 line.
752
7532005-03-28 Ulrich Drepper <drepper@redhat.com>
754
755 * findtextrel.c: New file.
756 * Makefile: Add rules to build findtextrel.
757
7582005-02-15 Ulrich Drepper <drepper@redhat.com>
759
760 * ldlex.l: Provide ECHO definition to avoid warning.
761
762 * elflint.c (check_program_header): Fix typo in RELRO test.
763
764 * Makefile.am (AM_CFLAGS): Add more warning options.
765 * elflint.c: Fix warnings introduced by the new warning options.
766 * i386_ld.c: Likewise.
767 * ld.c: Likewise.
768 * ld.h: Likewise.
769 * ldgeneric.c: Likewise.
770 * nm.c: Likewise.
771 * readelf.c: Likewise.
772 * sectionhash.c: Likewise.
773 * size.c: Likewise.
774 * string.c: Likewise.
775
7762005-02-05 Ulrich Drepper <drepper@redhat.com>
777
778 * Makefile.am: Check for text relocations in constructed DSOs.
779
780 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps
781 with -lmudflap.
782
783 * ldscript.y: Add as_needed handling.
784 * ldlex.l: Recognize AS_NEEDED token.
785 * ld.h (struct filename_list): Add as_needed flag.
786
7872005-02-04 Ulrich Drepper <drepper@redhat.com>
788
789 * elflint.c (check_symtab): Correctly determine size of GOT section.
790
7912005-01-19 Ulrich Drepper <drepper@redhat.com>
792
793 * ld.c: Remove unnecessary more_help function. Print bug report
794 address using argp.
795 * strip.c: Likewise.
796 * size.c: Likewise.
797 * nm.c: Likewise.
798 * readelf.c: Likewise.
799 * elflint.c: Likewise.
800
801 * elflint.c (main): Don't check for parameter problems here.
802 (parse_opt): Do it here, where we get informed about some of them
803 anyway.
804
805 * readelf.c (main): Don't check for parameter problems here.
806 (parse_opt): Do it here, where we get informed about some of them
807 anyway.
808
8092005-01-11 Ulrich Drepper <drepper@redhat.com>
810
811 * strip.c: Update copyright year.
812 * readelf.c: Likewise.
813 * size.c: Likewise.
814 * nm.c: Likewise.
815 * ld.c: Likewise.
816 * elflint.c: Likewise.
817
818 * elflint.c (check_symtab): Don't warn about wrong size for
819 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld.
820
8212004-10-05 Ulrich Drepper <drepper@redhat.com>
822
823 * readelf.c (print_phdr): In section mapping, also indicate
824 sections in read-only segments.
825
8262004-09-25 Ulrich Drepper <drepper@redhat.com>
827
828 * readelf.c: Make compile with gcc 4.0.
829 * strip.c: Likewise.
830
8312004-08-16 Ulrich Drepper <drepper@redhat.com>
832
833 * strip.c (handle_elf): Rewrite dynamic memory handling to use of
834 allocate to work around gcc 3.4 bug.
835
8362004-01-25 Ulrich Drepper <drepper@redhat.com>
837
838 * ldlex.l (invalid_char): Better error message.
839
8402004-01-23 Ulrich Drepper <drepper@redhat.com>
841
842 * readelf.c: Print SHT_GNU_LIBLIST sections.
843
844 * none_ld.c: New file.
845
8462004-01-21 Ulrich Drepper <drepper@redhat.com>
847
848 * Makefile.am: Enable building of machine specific linker.
849
8502004-01-20 Ulrich Drepper <drepper@redhat.com>
851
852 * Makefile.am: Support building with mudflap.
853
854 * i386_ld.c: Fix warnings gcc 3.4 spits out.
855 * ldgeneric.c: Likewise.
856 * ldscript.y: Likewise.
857 * readelf.c: Likewise.
858 * strip.c: Likewise.
859
860 * readelf.c (print_debug_line_section): Determine address size
861 correctly.
862
8632004-01-19 Ulrich Drepper <drepper@redhat.com>
864
865 * readelf.c (print_phdr): Show which sections are covered by the
866 PT_GNU_RELRO entry.
867
868 * elflint.c (check_program_header): Check PT_GNU_RELRO entry.
869
870 * readelf.c (print_debug_macinfo_section): Implement.
871
8722004-01-18 Ulrich Drepper <drepper@redhat.com>
873
874 * readelf.c (print_debug_line_section): Implement.
875
8762004-01-17 Ulrich Drepper <drepper@redhat.com>
877
878 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE.
879 * src/ld.c: Likewise.
880 * src/nm.c: Likewise.
881 * src/readelf.c: Likewise.
882 * src/size.c: Likewise.
883 * src/strip.c: Likewise.
884
885 * strip.c: Add a few more unlikely. Reduce scope of some variables.
886
887 * Makefile.am: Support building with mudflap.
888
8892004-01-16 Ulrich Drepper <drepper@redhat.com>
890
891 * readelf.c (print_debug_info_section): Free dies memory.
892
893 * readelf.c: Print .debug_info section content.
894
8952004-01-13 Ulrich Drepper <drepper@redhat.com>
896
897 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE.
898
8992004-01-12 Ulrich Drepper <drepper@redhat.com>
900
901 * readelf.c (print_debug_aranges): Implement using libdw.
902
9032004-01-11 Ulrich Drepper <drepper@redhat.com>
904
905 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change.
906
907 * readelf.c: Use libdw instead of libdwarf. Not all of the old
908 behavior is available yet.
909 * Makefile.am: Link readelf with libdw. Remove libdwarf include path.
910
9112004-01-09 Ulrich Drepper <drepper@redhat.com>
912
913 * nm.c (get_local_names): Adjust call to dwarf_nextcu.
914
915 * nm.c: Implement getting information about local variables.
916
9172004-01-07 Ulrich Drepper <drepper@redhat.com>
918
919 * nm.c: Read also debug information for local symbols.
920
9212004-01-05 Ulrich Drepper <drepper@redhat.com>
922
923 * nm.c: Shuffle dwarf handling code around so the maximum column
924 width can be computed ahead of printing. Avoid collection symbols
925 which are not printed anyway.
926
927 * nm.c: Rewrite dwarf handling to use libdw.
928 * Makefile.am (AM_CFLAGS): Add -std parameter.
929 (INCLUDES): Find header in libdw subdir.
930 (nm_LDADD): Replace libdwarf with libdw.
931
932 * elflint.c: Update copyright year.
933 * readelf.c: Likewise.
934 * size.c: Likewise.
935 * strip.c: Likewise.
936 * nm.c: Likewise.
937
9382003-12-31 Ulrich Drepper <drepper@redhat.com>
939
940 * strip.c (process_file): Close file before returning.
941
9422003-11-19 Ulrich Drepper <drepper@redhat.com>
943
944 * readelf.c (handle_dynamic): Make column for tag name wider.
945
9462003-09-29 Ulrich Drepper <drepper@redhat.com>
947
948 * readelf.c (handle_dynamic): Always terminate tag name with a space.
949
9502003-09-25 Ulrich Drepper <drepper@redhat.com>
951
952 * strip.c (process_file): Don't mmap the input file, we modify the
953 data structures and don't want the change end up on disk.
954
9552003-09-23 Jakub Jelinek <jakub@redhat.com>
956
957 * unaligned.h (union u_2ubyte_unaligned,
958 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add
959 packed attribute.
960 (add_2ubyte_unaligned, add_4ubyte_unaligned,
961 add_8ubyte_unaligned): Avoid nesting bswap_NN macros.
962 Read/store value through _ptr->u instead of *_ptr.
963
9642003-09-22 Ulrich Drepper <drepper@redhat.com>
965
966 * size.c (show_sysv): Change type of maxlen to int.
967
968 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit
969 buckets.
970
971 * i386_ld.c: Many many fixes and extensions.
972 * ld.c: Likewise.
973 * ldgeneric.c: Likewise.
974
9752003-08-16 Ulrich Drepper <drepper@redhat.com>
976
977 * ldgeneric.c (check_definition): Don't add symbol on dso_list if
978 the reference is from another DSO.
979
9802003-08-15 Ulrich Drepper <drepper@redhat.com>
981
982 * ldgeneric.c (find_entry_point): It is no fatal error if no entry
983 point is found when creating a DSO.
984
9852003-08-14 Ulrich Drepper <drepper@redhat.com>
986
987 * ld.c (main): Always call FLAG_UNRESOLVED.
988 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about
989 undefined symbols if not creating DSO or ld_state.nodefs is not set.
990
9912003-08-13 Ulrich Drepper <drepper@redhat.com>
992
993 * Makefile.in: Depend on libebl.a, not libebl.so.
994
995 * ld.c (main): Mark stream for linker script as locked by caller.
996 (read_version_script): Likewise.
997 * ldlex.c: Define fread and fwrite to _unlocked variant.
998
999 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of
1000 target_bswap_32.
1001 * unaligned.h: Define target_bswap_16, target_bswap_32, and
1002 target_bswap_64.
1003 (store_2ubyte_unaligned, store_4ubyte_unaligned,
1004 store_8ubyte_unaligned): Define using new macros.
1005
10062003-08-12 Ulrich Drepper <drepper@redhat.com>
1007
1008 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access
1009 possibly unaligned memory. Support use of big endian machines.
1010
10112003-08-11 Ulrich Drepper <drepper@redhat.com>
1012
1013 * Moved to CVS archive.