1 2008-12-11 Roland McGrath <roland (a] redhat.com> 2 3 * nm.c (sym_name): New function. 4 (show_symbols_sysv): Use it in place of elf_strptr. 5 (show_symbols_bsd, show_symbols_posix): Likewise. 6 Fixes RHBZ#476136. 7 8 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when 9 elf_strptr fails. 10 11 2008-12-02 Roland McGrath <roland (a] redhat.com> 12 13 * readelf.c (count_dwflmod, process_file): Don't presume encoding of 14 nonzero OFFSET argument to dwfl_getmodules. 15 16 2008-08-07 Roland McGrath <roland (a] redhat.com> 17 18 * addr2line.c (main): Pass string to handle_address. 19 (see_one_module): New function, subroutine of handle_address. 20 (find_symbol): Likewise. 21 (handle_address): Take string argument rather than address. 22 Convert plain number, or handle strings like "(section)+offset" 23 or "symbol+offset". 24 25 2008-08-01 Roland McGrath <roland (a] redhat.com> 26 27 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset. 28 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string. 29 30 * readelf.c (convert): Take new argument SIZE. 31 (handle_core_register, handle_core_item): Update callers. 32 (handle_core_item): Take new arg REPEATED_SIZE. 33 (handle_core_items): Special case for a singleton item, 34 let handle_core_item handle repeats if it wants to. 35 36 * readelf.c (handle_core_items): Give abridged output 37 for identical groups repeated more than twice. 38 39 2008-07-04 Roland McGrath <roland (a] redhat.com> 40 41 * readelf.c (handle_core_items): Handle ELF_T_ADDR. 42 43 2008-04-10 Roland McGrath <roland (a] redhat.com> 44 45 * strip.c (handle_elf): Don't keep sections that kept symbol tables 46 refer to. Instead, just be sure to preserve the original symbol 47 table in the debug file so those symbols go with their sections and 48 can be elided from the stripped version of the symbol table. 49 50 * strip.c (handle_elf): When a discarded section kept in the debug 51 file refers to a nondiscard section via sh_link/sh_info, preserve 52 that nondiscarded section unmodified in the debug file as well. 53 Skip adjustment of discarded sections symbol table references when 54 that symbol table is copied in this way. 55 56 * elflint.c (check_symtab): Don't crash from missing symbol names 57 after diagnosing bogus strtab. 58 59 * strip.c (handle_elf): Cosmetic cleanup in special section contents 60 adjustment for symtab changes. 61 62 2008-03-31 Roland McGrath <roland (a] redhat.com> 63 64 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections: 65 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook 66 excuse a special section. 67 68 2008-03-27 Roland McGrath <roland (a] redhat.com> 69 70 * elflint.c (check_sections): Check that executability and writability 71 of sections is reflected in segment p_flags. 72 73 2008-03-26 Roland McGrath <roland (a] redhat.com> 74 75 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags 76 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really 77 is valid in RELRO. 78 79 2008-02-29 Roland McGrath <roland (a] redhat.com> 80 81 * readelf.c (print_attributes): Add a cast. 82 * elflint.c (check_attributes): Likewise. 83 84 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity 85 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition. 86 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise. 87 88 2008-02-03 Ulrich Drepper <drepper (a] redhat.com> 89 90 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD 91 when linked into executable. 92 (elf_i386_create_relocations): Likewise. 93 94 2008-02-20 Roland McGrath <roland (a] redhat.com> 95 96 * readelf.c (print_attributes): New function. 97 (process_elf_file): Call it under -A. 98 99 * elflint.c (check_attributes): Implement it for real. 100 101 2008-02-19 Roland McGrath <roland (a] redhat.com> 102 103 * elflint.c (special_sections): Handle .gnu.attributes section. 104 (check_sections): Likewise. 105 (check_attributes): New function. 106 107 2008-02-10 Roland McGrath <roland (a] redhat.com> 108 109 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC 110 sections and ET_REL files. 111 112 2008-02-02 Ulrich Drepper <drepper (a] redhat.com> 113 114 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections. 115 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32 116 and R_386_TLS_LE. 117 (elf_i386_create_relocations): Likewise. 118 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb 119 elements. 120 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag. 121 (ld_generic_create_outfile): Add PT_TLS entry to program header. 122 Fix generation of PT_GNU_STACK entry. 123 124 2008-02-01 Ulrich Drepper <drepper (a] redhat.com> 125 126 * ld.c (replace_args): Prevent loop over replacements if the parameter 127 is only two characters long. 128 129 * ld.c: Recognize sha1 argument for --build-id parameter. 130 * ldgeneric.c (create_build_id_section): Handle sha1. 131 (compute_hash_sum): New function. Broken out of compute_build_id. 132 Take hash function and context as parameters. 133 (compute_build_id): Use compute_hash_sum for md5 and the new sha1 134 implementation. 135 136 2008-01-31 Ulrich Drepper <drepper (a] redhat.com> 137 138 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections. 139 * ld.c: Recognize --build-id command line parameter. 140 * ld.h: Define scn_dot_note_gnu_build_id. 141 (struct ld_state): Add build_id and buildidscnidx elements. 142 * ldgeneric.c: Implement --build-id command line parameter. 143 * ldlex.l (ID): Recognize - as valid character after the first one. 144 145 2008-01-29 Ulrich Drepper <drepper (a] redhat.com> 146 147 * ld.c (replace_args): New function. 148 (main): Use it to rewrite old-style parameters. 149 150 * elf32-i386.script: Add .gnu.hash section. 151 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient. 152 (fillin_special_symbol): Initialize st_size. 153 (sortfct_hashval): New function. 154 (create_gnu_hash): New function. 155 (create_hash): New function. 156 (ld_generic_create_outfile): Use the new functions to create the 157 hash tables. 158 159 * elflint.c (check_gnu_hash): Fix index value printed in error message. 160 161 2008-01-24 Ulrich Drepper <drepper (a] redhat.com> 162 163 * elflint.c (check_group): Check that signature symbol for section 164 group is not an empty string. 165 * ldgeneric.c: Remove magic assignment of indeces in the dynsym 166 section. Start implementation of --hash-style. 167 * i386_ld.c: Likewise. 168 * ld.c: Recognize --hash-style. 169 * ld.h (struct scninfo): Add comdat_group. 170 Add additional parameter to finalize_plt callback. 171 172 2008-01-22 Ulrich Drepper <drepper (a] redhat.com> 173 174 * ld.h (struct callbacks): Add initialize_gotplt. 175 (struct scnhead): Add scn_dot_gotplt. 176 (struct ld_state): Add gotpltscnidx. 177 * i386_ld.c (elf_i386_initialize_plt): Minor optimization. 178 (elf_i386_initialize_pltrel): Likewise. 179 (elf_i386_initialize_got): There is now a separate .got.plt, so 180 don't do the PLT-related work here. Initialize d_type. 181 (elf_i386_initialize_gotplt): New function. 182 (elf_i386_plt0): Use ud2a after indirect jump. 183 (elf_i386_pic_plt0_entry): Likewise. 184 (elf_i386_finalize_plt): Reference now .got.plt. 185 (elf_i386_count_relocations): For GOT entries which need no relocation 186 don't bump nrel_got. 187 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32 188 handling for split .got/.got.plt. 189 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt. 190 * elf32-i386.script: Sort sections for security. There are no .got 191 input sections. Add .got.plt. 192 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section. 193 (ld_generic_create_outfile): Initialize .got.plt section. 194 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT. 195 196 2008-01-19 Ulrich Drepper <drepper (a] redhat.com> 197 198 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined 199 symbols are not carried over into statically linked output files. 200 Add dummy entries for more TLS relocations. 201 202 * ld.c (options): Add long names for -( and -). 203 204 * ldgeneric.c (check_definition): For newly found definitions don't 205 mark section as used if symbol is absolute. 206 (extract_from_archive): Only assign archive sequence number the first 207 time the archive is handled. Update ld_state.last_archive_used 208 if any symbol was used. Remove nround variable. 209 (file_process2): When using symbol from an archive, update 210 ld_state.group_start_archive, ld_state.archives, and 211 ld_state.tailarchives. 212 (ld_generic_file_process): If group is not handled anymore, after 213 freeing ELF handles for the archives, clear ld_state.archives and 214 *nextp. Fix wrong logic in recognizing first iteration of group 215 loop. When clearing flags, also clear ld_state.group_start_archive. 216 217 2008-01-11 Ulrich Drepper <drepper (a] redhat.com> 218 219 * objdump.c (show_disasm): Adjust disassembler format string for 220 removal of %e. 221 222 2008-01-04 Roland McGrath <roland (a] redhat.com> 223 224 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero, 225 a size greater than the items cover means multiple sets of items. 226 (handle_core_note): Update caller. 227 228 2008-01-04 Roland McGrath <roland (a] redhat.com> 229 230 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning. 231 232 2008-01-03 Roland McGrath <roland (a] redhat.com> 233 234 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)). 235 236 * elflint.c (check_dynamic): Remove duplicate initializer. 237 238 2008-01-02 Ulrich Drepper <drepper (a] redhat.com> 239 240 * addr2line.c: Update copyright year. 241 * ar.c: Likewise. 242 * elfcmp.c: Likewise. 243 * elflint.c: Likewise. 244 * findtextrel.c: Likewise. 245 * ld.c: Likewise. 246 * nm.c: Likewise. 247 * objdump.c: Likewise. 248 * ranlib.c: Likewise. 249 * readelf.c: Likewise. 250 * size.c: Likewise. 251 * strings.c: Likewise. 252 * strip.c: Likewise. 253 * unstrip.c: Likewise. 254 255 2007-12-30 Ulrich Drepper <drepper (a] redhat.com> 256 257 * objdump (show_disasm): Use %e after third parameter. 258 259 2007-12-21 Ulrich Drepper <drepper (a] redhat.com> 260 261 * strip.c: Fix wrong parenthesis in a few branch predictions. 262 * strings.c: Likewise. 263 264 2007-12-20 Ulrich Drepper <drepper (a] redhat.com> 265 266 * Makefile.am (DEFS): Add DEBUGPRED. 267 * addr2line.c: Include debugpred.h. 268 * ar.c: Likewise. 269 * elfcmp.c: Likewise. 270 * elflint.c: Likewise. 271 * findtextrel.c: Likewise. 272 * nm.c: Likewise. 273 * objdump.c: Likewise. 274 * ranlib.c: Likewise. 275 * readelf.c: Likewise. 276 * size.c: Likewise. 277 * strings.c: Likewise. 278 * strip.c: Likewise. 279 * unstrip.c: Likewise. 280 * debugpred.h: New file. 281 282 * readelf.c (handle_relocs_rel): Use elf_scnshndx. 283 (handle_relocs_rela): Likewise. 284 285 * readelf.c: Add lots of likely/unlikely. 286 287 * elflint.c: Minor cleanups. 288 289 2007-11-19 Roland McGrath <roland (a] redhat.com> 290 291 * readelf.c (print_ops): Handle all bad op codes gracefully. 292 Print their numbers instead of just ???. 293 294 2007-11-09 Roland McGrath <roland (a] redhat.com> 295 296 * readelf.c (attr_callback): Handle DW_AT_data_location. 297 Handle block forms to mean a DWARF expression for DW_AT_allocated, 298 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride, 299 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound, 300 DW_AT_upper_bound. 301 302 2007-10-20 Roland McGrath <roland (a] redhat.com> 303 304 * unstrip.c (options): Update -R description. 305 (struct symbol): Put symbol details a union with a size_t pointer 306 `duplicate'. 307 (compare_symbols_output): Use null ->name as marker for discard 308 symbols, not zero *->map. 309 (copy_elided_sections): Record forwarding pointers for discarded 310 duplicates and fill SYMNDX_MAP elements through them. 311 312 * readelf.c (process_file): Set offline_next_address to 0 at start. 313 (struct process_dwflmod_args): New type. 314 (process_dwflmod): Take args in it, pass fd to process_elf_file. 315 (process_file): Update caller; dup FD for passing to libdwfl. 316 (process_elf_file): Take new arg FD. For ET_REL file when 317 displaying data affected by libdwfl relocation, open a new Elf handle. 318 319 2007-10-17 Roland McGrath <roland (a] redhat.com> 320 321 * readelf.c (print_debug_line_section): For invalid data inside a 322 unit with plausible length, keep printing at the next unit boundary. 323 324 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref. 325 326 2007-10-16 Roland McGrath <roland (a] redhat.com> 327 328 * readelf.c (hex_dump): Fix rounding error in whitespace calculation. 329 330 2007-10-15 Roland McGrath <roland (a] redhat.com> 331 332 * make-debug-archive.in: New file. 333 * Makefile.am (EXTRA_DIST): Add it. 334 (make-debug-archive): New target. 335 (bin_SCRIPTS, CLEANFILES): Add it. 336 337 2007-10-10 Roland McGrath <roland (a] redhat.com> 338 339 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld. 340 Use it to check MERGE|STRINGS for .debug_str. 341 (check_sections): Handle exact_or_gnuld. 342 343 2007-10-08 Roland McGrath <roland (a] redhat.com> 344 345 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate 346 64-bit struct timeval with 32-bit tv_usec. 347 348 2007-10-07 Roland McGrath <roland (a] redhat.com> 349 350 * readelf.c (check_archive_index): New function. 351 (process_file): Call it. Change signature to take only fd and name. 352 Use libdwfl to open the file, then iterate on its modules (multiple 353 for an archive) to print file name and call process_elf_file. 354 (main): Update caller. Let process_file do elf_begin. 355 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions. 356 (process_elf_file): Take only Dwfl_Module * argument. 357 Don't print the file name here. 358 (print_debug_*_section): Take Dwfl_Module * argument. 359 (print_debug): Likewise. Update caller. 360 (format_dwarf_addr): New function. 361 (print_debug_ranges_section): Use it. 362 (attr_callback): Likewise. 363 (print_debug_line_section, print_debug_loc_section): Likewise. 364 365 * readelf.c (print_debug_ranges_section): Translate all strings. 366 (print_debug_loc_section): Likewise. 367 368 * unstrip.c (copy_elided_sections): Initialize SEC. 369 370 * ar.c (do_oper_insert): Put trailing / on short names. 371 372 * arlib.h (MAX_AR_NAME_LEN): Decrease by one. 373 374 * arlib2.c (arlib_add_long_name): Adjust for header size. 375 376 * arlib.c (arlib_finalize): Pad long name table to keep size even. 377 378 * ar.c (do_oper_insert): Use write_retry for padding write. 379 380 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case. 381 Unconditionally set FOUND[CNT]->elf when setting ->mem. 382 (remember_long_name): New function. 383 (do_oper_insert): Call it. Correctly use length of basename, 384 not original name. Don't store long name twice for new member. 385 386 2007-10-06 Roland McGrath <roland (a] redhat.com> 387 388 * elflint.c (check_note): Skip empty segment. 389 (check_note_section): Skip empty section. 390 391 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate. 392 (handle_output_dir_module, handle_implicit_modules): Pass it down. 393 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl. 394 (compare_alloc_sections): Take new arg REL, ignore address if true. 395 (compare_sections): Likewise, pass it down. 396 (compare_sections_rel, compare_sections_nonrel): New functions. 397 (find_alloc_sections_prelink, copy_elided_sections): Use them 398 instead of compare_sections. 399 (sections_match): New function, broken out of ... 400 (find_alloc_section): ... here. 401 (copy_elided_sections): Reorganize section match-up logic. 402 Use sections_match for SHF_ALLOC in ET_REL. 403 For ET_REL, let the nonzero sh_addr from the debug file dominate. 404 405 * unstrip.c (add_new_section_symbols): Take new arg REL. 406 When true, do not update section symbol values. 407 (collect_symbols): Likewise. Update section symbols with address 408 of chosen output section, not original section. 409 (check_symtab_section_symbols, copy_elided_sections): Update callers. 410 411 * unstrip.c (compare_alloc_sections): At the same address, preserve 412 original section order. 413 414 * elflint.c (special_sections): Don't require MERGE|STRINGS for 415 .debug_str, it didn't always have them with older tools. 416 417 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL. 418 419 2007-10-05 Roland McGrath <roland (a] redhat.com> 420 421 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in 422 ET_REL file. 423 424 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose 425 SHN_UNDEF as "bad section". Use shndx value in messages. 426 427 * elflint.c (special_sections): Add ".debug_str". Decrement namelen 428 for ".debug" so it matches as a prefix. 429 (IS_KNOWN_SPECIAL): New macro. 430 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS 431 type even under -d, for a .debug* or .shstrtab section. 432 433 * readelf.c (print_ops): Use hex for address operand. 434 435 2007-10-04 Roland McGrath <roland (a] redhat.com> 436 437 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for 438 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for 439 sections mapped to SHN_UNDEF. 440 441 2007-10-04 Ulrich Drepper <drepper (a] redhat.com> 442 443 * readelf.c (dump_archive_index): Avoid warning about uninitialized 444 variable with older glibc versions. 445 Add some branch prediction. 446 447 2007-10-04 Roland McGrath <roland (a] redhat.com> 448 449 * readelf.c (print_archive_index): New variable. 450 (options, parse_opt): Accept -c/--archive-index to set it. 451 (dump_archive_index): New function. 452 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX. 453 Call dump_archive_index on archives if set. 454 (main): Update caller. 455 (any_control_option): Give it file scope, moved out of ... 456 (parse_opt): ... here. 457 458 2007-10-03 Roland McGrath <roland (a] redhat.com> 459 460 * unstrip.c (struct arg_info): Add `list' flag. 461 (options, parse_opt): Grok -n/--list to set it. 462 (list_module): New function. 463 (handle_implicit_modules): Call it under -n. 464 465 * elflint.c (check_note_section): New function. 466 (check_sections): Call it for SHT_NOTE. 467 468 * readelf.c (handle_notes): Use sections when available. 469 470 * elflint.c (check_note_data): New function, broken out of ... 471 (check_note): ... here. Call it and elf_getdata_rawchunk. 472 473 * readelf.c (handle_auxv_note): Take offset as argument, not buffer. 474 Use elf_getdata_rawchunk and gelf_getauxv. 475 (handle_notes_data): New function, broken out of ... 476 (handle_notes): ... here. Call it and elf_getdata_rawchunk. 477 478 2007-10-01 Roland McGrath <roland (a] redhat.com> 479 480 * readelf.c (hex_dump): Fix transposed subtraction generating spaces. 481 482 * readelf.c (hex_dump): Fix line header to be hex instead of decimal. 483 484 2007-09-10 Roland McGrath <roland (a] redhat.com> 485 486 * readelf.c (options): Give -p optional argument, alias --string-dump. 487 (string_sections, string_sections_tail): New static variables. 488 (parse_opt): Set them when -p has an argument. 489 (print_string_section): New function, broken out of ... 490 (print_strings): ... here. Call it. 491 (dump_data_section): New function, broken out of ... 492 (dump_data): ... here. Call it. 493 (for_each_section_argument): New function, broken out of ... 494 (dump_data): ... here. Call it. 495 (dump_strings): New function. 496 497 2007-08-31 Roland McGrath <roland (a] redhat.com> 498 499 * readelf.c (print_strings): Typo fix. 500 501 2007-08-23 Roland McGrath <roland (a] redhat.com> 502 503 * readelf.c (printf_with_wrap): Function removed. 504 (REGISTER_WRAP_COLUMN): New macro. 505 (handle_core_register): Use print_core_item instead. 506 (struct register_info): New type. 507 (compare_registers, compare_register_sets): New functions. 508 (register_bitpos, compare_sets_by_info): New functions. 509 (handle_core_registers): Use those to segregate and sort registers 510 for display. 511 512 * readelf.c (ITEM_WRAP_COLUMN): New macro. 513 (print_core_item): New function. 514 (handle_core_item): Use it instead of printf_with_wrap. 515 (compare_core_items, compare_core_item_groups): New functions. 516 (handle_core_items): Use them. Sort by group and force line breaks 517 between groups. 518 519 * readelf.c (handle_core_registers, handle_core_items): New functions, 520 broken out of ... 521 (handle_core_note): ... here. Call them. 522 523 2007-08-22 Roland McGrath <roland (a] redhat.com> 524 525 * unstrip.c (new_shstrtab): New function, broken out of ... 526 (copy_elided_sections): ... here. 527 528 2007-08-20 Roland McGrath <roland (a] redhat.com> 529 530 Avoid local function trampolines in nm binary. 531 * nm.c (sort_by_address): Move to a static function instead of local 532 inside show_symbols. 533 (sort_by_name_strtab): New static variable. 534 (sort_by_name): Use it. Move to a static function instead of local 535 inside show_symbols. 536 (show_symbols): Set sort_by_name_strtab. 537 538 2007-08-19 Roland McGrath <roland (a] redhat.com> 539 540 * readelf.c (handle_auxv_note): New function. 541 (handle_notes): Call it. 542 543 * readelf.c (printf_with_wrap, convert): New functions. 544 (handle_core_item, (handle_core_register): New functions. 545 (handle_notes): Call those with details from ebl_core_note. 546 547 2007-08-12 Roland McGrath <roland (a] redhat.com> 548 549 * elflint.c (check_note): Accept type 0 with name "Linux". 550 551 * elflint.c (special_sections): Accept SHF_ALLOC for ".note". 552 553 * elflint.c (section_flags_string): Return "none" for 0, not "". 554 555 2007-08-11 Roland McGrath <roland (a] redhat.com> 556 557 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID. 558 559 2007-08-04 Ulrich Drepper <drepper (a] redhat.com> 560 561 * readelf.c (hex_dump): Use isprint to determine whether to print 562 character itself or full stop character. 563 (dump_data): No need to check endp for NULL after strtol call. 564 565 2007-08-03 Roland McGrath <roland (a] redhat.com> 566 567 * readelf.c (print_string_sections): New variable. 568 (options, parse_opt): Handle --strings/-p to set it. 569 (print_strings): New function. 570 (process_elf_file): Call it under -p. 571 572 * readelf.c (options): Add hidden aliases --segments, --sections, 573 as taken by binutils readelf. 574 575 2007-08-01 Roland McGrath <roland (a] redhat.com> 576 577 * readelf.c (dump_data_sections, dump_data_sections_tail): 578 New variables. 579 (options, parse_opt): Handle --hex-dump/-x, set them. 580 (hex_dump): New function. 581 (dump_data): New function, call it. 582 (process_elf_file): Call it. 583 584 2007-07-25 Roland McGrath <roland (a] redhat.com> 585 586 * addr2line.c (show_symbols): New variable. 587 (print_addrsym): New function. 588 (handle_address): Call it. 589 (options, parse_opt): Handle -S/--symbols. 590 591 2007-06-05 Ulrich Drepper <drepper (a] redhat.com> 592 593 * addr2line.c: Update for latest autoconf header. 594 * ar.c: Likewise. 595 * elfcmp.c: Likewise. 596 * elflint.c: Likewise. 597 * findtextrel.c: Likewise. 598 * ld.c: Likewise. 599 * ldgeneric.c: Likewise. 600 * nm.c: Likewise. 601 * objdump.c: Likewise. 602 * ranlib.c: Likewise. 603 * readelf.c: Likewise. 604 * size.c: Likewise. 605 * strings.c: Likewise. 606 * strip.c: Likewise. 607 * unstrip.c: Likewise. 608 609 2007-05-18 Roland McGrath <roland (a] redhat.com> 610 611 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with 612 stripped file, so as not to duplicate a section copied in both. 613 614 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file. 615 616 2007-05-17 Roland McGrath <roland (a] redhat.com> 617 618 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0. 619 620 * unstrip.c (handle_file): Tweak BIAS != 0 warning. 621 622 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set, 623 call make_directories here. 624 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down. 625 (handle_dwfl_module): Likewise. 626 (handle_implicit_modules): Update callers. 627 (handle_output_dir_module): Likewise. Don't do make_directories here. 628 629 * unstrip.c (get_section_name): New function, broken out of ... 630 (copy_elided_sections): here. Update callers. 631 (find_alloc_section): Broken out of ... 632 (copy_elided_sections): ... here. Update caller. 633 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA, 634 update STT_SECTION symbols' st_value fields as a side effect. 635 (check_symtab_section_symbols): Update caller. 636 (add_new_section_symbols): Set st_value in symbols added. 637 (collect_symbols): Reset S->value for STT_SECTION symbols recorded. 638 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved 639 from .bss to .dynbss. 640 (find_alloc_sections_prelink): New function. Associate debug file 641 allocated SHT_NOBITS shdrs with stripped moved by prelink via 642 .gnu.prelink_undo information. 643 (copy_elided_sections): Call it when we couldn't find every allocated 644 section. Don't use a debug file non-NOBITS section if SHF_ALLOC. 645 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM. 646 (handle_file): Update callers. 647 648 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section 649 named ".comment". 650 651 * elflint.c (check_sections): Fix association of segments with 652 sections when p_memsz > p_filesz. 653 654 2007-04-29 Roland McGrath <roland (a] redhat.com> 655 656 * addr2line.c (options, main): Tweak argp group settings to fix 657 usage output. 658 659 2007-04-28 Roland McGrath <roland (a] redhat.com> 660 661 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections' 662 sizes to match sections adjusted in the stripped file. 663 664 2007-04-24 Roland McGrath <roland (a] redhat.com> 665 666 * elfcmp.c (OPT_HASH_INEXACT): New macro. 667 (hash_inexact): New variable. 668 (options, parse_opt): Add --hash-inexact option to set it. 669 (hash_content_equivalent): New function. 670 (main): Call it for differing SHT_HASH sections under --hash-inexact. 671 672 2007-04-23 Roland McGrath <roland (a] redhat.com> 673 674 * unstrip.c: New file. 675 * Makefile.am (bin_PROGRAMS): Add it. 676 (unstrip_LDADD): New variable. 677 678 * strip.c (options): Allow --output for -o. 679 680 2007-02-15 Ulrich Drepper <drepper (a] redhat.com> 681 682 * readelf.c: Remove unused code. Add a few consts. 683 684 2007-02-15 Roland McGrath <roland (a] redhat.com> 685 686 * readelf.c (print_debug): Fix brainos in SHDR test. 687 688 2007-02-05 Roland McGrath <roland (a] redhat.com> 689 690 * ar.c: Include <limits.h>, since we use LONG_MAX. 691 692 2007-02-05 Ulrich Drepper <drepper (a] redhat.com> 693 694 * ar.c: Add ugly hack to work around gcc complaining that we 695 ignore fchown's return value. 696 (do_oper_insert): Handle error when writing padding. 697 * ranlib.c: Add fchown complain work around. 698 699 * arlib.c: Make symtab a global variable. Change all users. 700 * arlib2.c: Likewise. 701 * ranlib.c: Likewise. 702 * ar.c: Likewise. 703 * arlib.h: Declare it. 704 705 2007-01-11 Roland McGrath <roland (a] redhat.com> 706 707 * elflint.c (check_sections): Use ebl_machine_section_flag_check on 708 SHF_MASKPROC bits separately from generic sh_flags validation. 709 710 2007-02-04 Ulrich Drepper <drepper (a] redhat.com> 711 712 * ar.c: New file. 713 * arlib.c: New file. 714 * arlib2.c: New file. 715 * arlib.h: New file. 716 * Makefile (noinst_LIBRARIES): Add libar. 717 (libar_a_SOURCES): Define. 718 (ar_LDADD): Define. 719 (CFLAGS_ar): Define. 720 * ranlib.c: Change to use arlib. 721 722 * elflint.c (check_symtab): Work around GNU ld bug which omits 723 sections but not symbols in those sections. 724 725 2007-01-10 Ulrich Drepper <drepper (a] redhat.com> 726 727 * addr2line.c: Update copyright year. 728 * elfcmp.c: Likewise. 729 * elflint.c: Likewise. 730 * findtextrel.c: Likewise. 731 * ld.c: Likewise. 732 * nm.c: Likewise. 733 * objdump.c: Likewise. 734 * ranlib.c: Likewise. 735 * readelf.c: Likewise. 736 * size.c: Likewise. 737 * strings.c: Likewise. 738 * strip.c: Likewise. 739 740 2006-12-09 Ulrich Drepper <drepper (a] redhat.com> 741 742 * elflint.c (compare_hash_gnu_hash): New function. Report if the 743 two hash tables have different content (module expected omission 744 of undefined symbols). 745 746 2006-10-31 Roland McGrath <roland (a] redhat.com> 747 748 * elflint.c (check_program_header): Don't complain about 749 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE. 750 751 2006-09-19 Jakub Jelinek <jakub (a] redhat.com> 752 753 * strip.c (process_file): Disallow -f on archives. 754 755 2006-10-09 Roland McGrath <roland (a] redhat.com> 756 757 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC). 758 759 2006-08-29 Roland McGrath <roland (a] redhat.com> 760 761 * Makefile.am (MAINTAINERCLEANFILES): New variable. 762 763 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly. 764 Reported by Christian Aichinger <Greek0 (a] gmx.net>. 765 766 * elflint.c (valid_e_machine): Add EM_ALPHA. 767 Reported by Christian Aichinger <Greek0 (a] gmx.net>. 768 769 2006-08-08 Ulrich Drepper <drepper (a] redhat.com> 770 771 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. 772 Keep track of which "high DT" entries are present. 773 Check that either old or GNU-style hash table is present. 774 If GNU-style hash table is used a symbol table is mandatory. 775 Check that if any prelink entry is present all of them are. 776 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash 777 table if they don't refer to functions. 778 779 2006-07-17 Roland McGrath <roland (a] redhat.com> 780 781 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field. 782 (add_version): Likewise for argument. 783 (check_versym): Cast constant to GElf_Versym for comparison. 784 785 2006-07-12 Roland McGrath <roland (a] redhat.com> 786 787 * readelf.c (handle_gnu_hash): Add casts for machines where 788 Elf32_Word != unsigned int. 789 790 2006-07-12 Ulrich Drepper <drepper (a] redhat.com> 791 792 * elflint.c (check_sysv_hash64): Fix printf format. 793 794 2006-07-11 Roland McGrath <roland (a] redhat.com> 795 796 * addr2line.c (options): English fix in -f doc string. 797 798 * addr2line.c (use_comp_dir): New variable. 799 (options, parse_opt): Grok -A/--absolute to set it. 800 (handle_address): If set, prepend dwfl_line_comp_dir results to 801 relative file names. 802 803 2006-07-06 Ulrich Drepper <drepper (a] redhat.com> 804 805 * elflint.c: Adjust for latest new hash table format. 806 * readelf.c: Likewise. 807 808 * elflint.c (check_versym): Ignore hidden bit when comparing version 809 numbers. 810 811 2006-07-05 Ulrich Drepper <drepper (a] redhat.com> 812 813 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize 814 discarded COMDAT symbols. 815 816 * i386_ld.c (elf_i386_count_relocations): Lot of corrections. 817 (elf_i386_create_relocations): Likewise. 818 * ld.h (struct symbol): Add local and hidden bits. 819 * ld.c (create_special_section_symbol): These synthsized symbols 820 are local and hidden. 821 * ldgeneric.c (file_process2): Check whether input file matches 822 the emulation. 823 (fillin_special_symbol): Create symbols as local and/or hidden 824 if requested. 825 (ld_generic_create_outfile): Make local copy of symbol. 826 Don't hide global, defined symbols in dynamic symbol table unless 827 requested. Synthetic symbols have no version information. 828 829 * elflint.c: Add support for checking 64-bit SysV-style hash tables. 830 * readelf.c: Add support for printing 64-bit SysV-style hash tables. 831 832 2006-07-04 Ulrich Drepper <drepper (a] redhat.com> 833 834 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT 835 testing. 836 837 2006-07-03 Ulrich Drepper <drepper (a] redhat.com> 838 839 * elflint.c: Add testing of DT_GNU_HASH. 840 * readelf.c: Implement showing histogram for DT_GNU_HASH section. 841 842 * Makefile.am: Add hacks to create dependency files for non-generic 843 linker. 844 845 2006-06-12 Ulrich Drepper <drepper (a] redhat.com> 846 847 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp 848 section if creating a DSO and no interpreter is given. 849 (ld_generic_create_outfile): Don't store reference to symbols in 850 discarded COMDAT groups. Don't create PHDR and INTERP program header 851 for DSO if no interpreter is specified. 852 (create_verneed_data): Pretty printing. 853 854 * ldscript.y (content): If a DSO is created don't set default 855 interpreter from linker script. 856 857 * i386_ld.c (elf_i386_count_relocations): Do not add relocations 858 for symbols in discarded COMDAT groups. 859 (elf_i386_create_relocations): Likewise. 860 * ld.h (struct scninfo): Add unused_comdat. 861 * ldgeneric.c (add_section): Also check group signature when 862 matching COMDAT sections. 863 (add_relocatable_file): Ignore symbols in COMDAT group which are 864 discarded. 865 866 * elflint.c (check_one_reloc): For *_NONE relocs only check type 867 and symbol reference. 868 869 2006-06-11 Ulrich Drepper <drepper (a] redhat.com> 870 871 * elflint.c (check_dynamic): Fix checking value of tags which are 872 offsets in the string section. Make sure DT_STRTAB points to the 873 section referenced in sh_link. 874 875 * ld.c (options): Add headers. Add short option 'R' for '--rpath'. 876 877 * ld.c: Recognize --eh-frame-hdr option. 878 * ld.h (struct ld_state): Add eh_frame_hdr field. 879 * ldgeneric.c (struct unw_eh_frame_hdr): Define. 880 881 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of 882 SH_FLAGS_COMBINE. 883 (add_relocatable_file): Minor optimization of last change. 884 (match_section): Don't preserve SHF_GROUP flag any longer. 885 886 2006-06-10 Ulrich Drepper <drepper (a] redhat.com> 887 888 * ld.c (parse_z_option): Recognize execstack and noexecstack. 889 Handle record and ignore as position dependent options. 890 (parse_z_option_2): Handle ignore and record here. 891 * ld.h (struct ld_state): Add execstack field. 892 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack 893 sections. 894 (ld_generic_create_outfile): Fix program header creation in native 895 linker. Add PT_GNU_STACK program header. 896 897 2006-06-09 Ulrich Drepper <drepper (a] redhat.com> 898 899 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries 900 for PLT entries if there is no local definition. 901 902 * ld.c (parse_option): Handle -z ignore like --as-needed and 903 -z record like --no-as-needed. 904 * ld.h (struct ld_state): Remove ignore_unused_dsos field. 905 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by 906 looping over DSOs. When deciding about adding DT_NEEDED entries 907 use ->as_needed instead of ignore_unused_dsos. 908 909 2006-05-31 Ulrich Drepper <drepper (a] redhat.com> 910 911 * ld.c: Recognize --as-needed and --no-as-needed options. 912 * ld.h (struct usedfile): Add as_needed field. 913 (struct ld_state): Likewise. 914 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from 915 the list. 916 * ldscript.y (filename_id_list): Split to correctly parse all 917 combinations. 918 (mark_as_needed): Fix loop. 919 920 2006-05-28 Ulrich Drepper <drepper (a] redhat.com> 921 922 * addr2line.c (print_dwarf_function): Use unsigned type for lineno 923 and colno. 924 925 2006-05-27 Ulrich Drepper <drepper (a] redhat.com> 926 927 * readelf.c (handle_relocs_rela): Better notations for addon value. 928 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version. 929 930 2006-04-04 Ulrich Drepper <drepper (a] redhat.com> 931 932 * addr2line.c: Update copyright year. 933 * elfcmp.c: Likewise. 934 * elflint.c: Likewise. 935 * findtextrel.c: Likewise. 936 * ld.c: Likewise. 937 * nm.c: Likewise. 938 * objdump.c: Likewise. 939 * ranlib.c: Likewise. 940 * readelf.c: Likewise. 941 * size.c: Likewise. 942 * strings.c: Likewise. 943 * strip.c: Likewise. 944 945 2006-03-09 Roland McGrath <roland (a] redhat.com> 946 947 * Makefile.am (AM_LDFLAGS): New variable. 948 949 2006-03-01 Roland McGrath <roland (a] redhat.com> 950 951 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables 952 for dwarf.h changes matching 3.0 spec. 953 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise. 954 955 2005-12-04 Ulrich Drepper <drepper (a] redhat.com> 956 957 * elflint.c (check_one_reloc): If relocation section is not loaded, 958 don't check whether the relocations modify read-only sections or 959 loaded and unloaded sections. 960 961 2005-11-28 Ulrich Drepper <drepper (a] redhat.com> 962 963 * elflint.c (check_one_reloc): Take additional parameters. Use 964 them to determine whether relocation is valid in this type of 965 file. DSOs and executables can contain relocation sections in 966 unloaded sections which just show the relocations the linker 967 applied. Adjust all callers. 968 (check_program_header): Check that PT_PHDR is loaded and that offset 969 matches the one in the ELF header. 970 971 2005-10-26 Roland McGrath <roland (a] redhat.com> 972 973 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation. 974 975 2005-09-03 Ulrich Drepper <drepper (a] redhat.com> 976 977 * strip.c (handle_elf): Unify some error messages. 978 * ld.c (main): Likewise. 979 * ldgeneric.c (open_elf): Likewise. 980 * elfcmp.c (main): Likewise. 981 * elflint.c (check_elf_header): Likewise. 982 983 * size.c (process_file): Fix typo in error message. 984 985 * readelf.c: Lots of little cleanups. Use _unlocked functions. 986 987 2005-09-02 Ulrich Drepper <drepper (a] redhat.com> 988 989 * strings.c (main): Reset elfmap variable after munmap call. 990 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap. 991 992 2005-08-28 Ulrich Drepper <drepper (a] redhat.com> 993 994 * ranlib.c: Don't define pread_retry and write_retry here. 995 996 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl. 997 (CLEANFILES): Add *.gcno *.gcda *.gconv. 998 999 * strings.c (process_chunk): Reorder expressions in conditional 1000 (process_chunk_mb): Likewise. 1001 1002 * strings.c: New file. 1003 * Makefile.am (bin_PROGRAMS): Add strings. 1004 (strings_no_Wstring): Define. 1005 (strings_LDADD): Define. 1006 1007 2005-08-27 Roland McGrath <roland (a] redhat.com> 1008 1009 * addr2line.c (dwarf_diename_integrate): Function removed. 1010 (print_dwarf_function): Use plain dwarf_diename. 1011 1012 2005-08-24 Ulrich Drepper <drepper (a] redhat.com> 1013 1014 * elflint.c (check_versym): Versioned symbols should not have 1015 local binding. 1016 1017 2005-08-15 Ulrich Drepper <drepper (a] redhat.com> 1018 1019 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be 1020 undefined. 1021 1022 * Makefile.am: Add rules to build ranlib. 1023 * ranlib.c: New file. 1024 1025 2005-08-14 Roland McGrath <roland (a] redhat.com> 1026 1027 * elflint.c (check_sections): Use ebl_section_type_name and allow any 1028 sh_type it recognizes. 1029 1030 * elflint.c (check_sections): Print unknown flags in hex, don't 1031 truncate high bits. Print section number and name for unknown type. 1032 1033 2005-08-13 Roland McGrath <roland (a] redhat.com> 1034 1035 * elflint.c (check_program_header): Use ebl_segment_type_name and 1036 allow any p_type it recognizes. Include p_type value in error 1037 message for unknown type. 1038 1039 2005-08-13 Ulrich Drepper <drepper (a] redhat.com> 1040 1041 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr 1042 to ebl_check_special_symbol. 1043 (check_sections): Pass ehdr to ebl_bss_plt_p. 1044 1045 2005-08-12 Roland McGrath <roland (a] redhat.com> 1046 1047 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx 1048 refers to the right section if it's not SHN_ABS. 1049 Let ebl_check_special_symbol override _G_O_T_ value and size checks. 1050 1051 * elflint.c (check_sections): Don't complain about a non-NOBITS 1052 section taking no segment space, if it's sh_size is 0. 1053 1054 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should 1055 be PROGBITS or NOBITS. 1056 1057 * elflint.c (check_symtab): Use ebl_check_special_symbol to override 1058 standard st_value and st_size checks. 1059 1060 2005-07-28 Roland McGrath <roland (a] redhat.com> 1061 1062 * addr2line.c (options, parse_opt): Don't handle -e here. 1063 (executable): Variable removed. 1064 (argp_children): New static variable. 1065 (argp): Use it. Make const. 1066 (main): Fill in argp_children from dwfl_standard_argp (). 1067 Let libdwfl handle file selection, pass Dwfl handle to handle_address. 1068 (print_dwarf_function): New function. Try to figure out inline chain. 1069 (elf_getname): Function removed, libdwfl does it for us. 1070 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles. 1071 Use dwfl_module_addrname instead of elf_getname. 1072 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls. 1073 * Makefile.am (INCLUDES): Add libdwfl directory to path. 1074 1075 2005-08-10 Ulrich Drepper <drepper (a] redhat.com> 1076 1077 * strip.c (parse_opt): STATE parameter is now used. 1078 Various little cleanups. 1079 1080 * readelf.c (print_debug_line_section): Correct fallout of renaming 1081 of DW_LNS_set_epilog_begin. 1082 1083 2005-08-08 Roland McGrath <roland (a] redhat.com> 1084 1085 * strip.c (options, parse_opt): Grok -R .comment for compatibility 1086 with binutils strip. Likewise -d, -S, as aliases for -g. 1087 Likewise ignore -s/--strip-all. 1088 1089 2005-08-07 Roland McGrath <roland (a] redhat.com> 1090 1091 * strip.c (process_file): Open read-only when using a different output 1092 file. 1093 1094 2005-08-06 Ulrich Drepper <drepper (a] redhat.com> 1095 1096 * elflint.c (in_nobits_scn): New function. 1097 (check_versym): Allow references for defined symbols against versions 1098 of other DSOs also for symbols in nobits sections. 1099 Move a few variables around. 1100 1101 * Makefile.am (AM_CFLAGS): Avoid duplication. 1102 Link with statis libs if BUILD_STATIC. 1103 1104 2005-08-05 Ulrich Drepper <drepper (a] redhat.com> 1105 1106 * elflint.c: Many, many more tests. Mostly related to symbol 1107 versioning. Those sections should now be completely checked. 1108 1109 * readelf.c (print_dynamic): Use gelf_offscn. 1110 1111 2005-08-04 Ulrich Drepper <drepper (a] redhat.com> 1112 1113 * elflint.c: Add lots more tests: more extension symbol table sanity, 1114 versioning section tests, hash table tests. General cleanup. 1115 1116 2005-08-02 Ulrich Drepper <drepper (a] redhat.com> 1117 1118 * objdump.c: New file. 1119 * Makefile.am (bin_PROGRAMS): Add objdump. 1120 (objdump_LDADD): Define. 1121 1122 * elflint.c (check_reloc_shdr): New function split out from check_rela 1123 and check_rel. 1124 (check_one_reloc): New function. Likewise. 1125 (check_rela): Use check_reloc_shdr and check_one_reloc. 1126 (check_rel): Likewise. 1127 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic 1128 section. 1129 Add checks that relocations against read-only segments are flagged, 1130 that the text relocation flag is not set unnecessarily, and that 1131 relocations in one section are either against loaded or not-loaded 1132 segments. 1133 1134 2005-08-01 Ulrich Drepper <drepper (a] redhat.com> 1135 1136 * elfcmp.c (main): Ignore section count and section name string table 1137 section index. 1138 1139 2005-07-27 Roland McGrath <roland (a] redhat.com> 1140 1141 * elfcmp.c: Include <locale.h>. 1142 1143 2005-07-27 Ulrich Drepper <drepper (a] redhat.com> 1144 1145 * elfcmp.c: Print name and index of differing section. 1146 1147 2005-07-24 Ulrich Drepper <drepper (a] redhat.com> 1148 1149 * elfcmp.c: Implement comparing gaps between sections. 1150 1151 2005-07-23 Ulrich Drepper <drepper (a] redhat.com> 1152 1153 * elflint.c: Include libeblP.h instead of libebl.h. 1154 * nm.c: Likewise. 1155 * readelf.c: Likewise. 1156 * elfcmp.c: Likewise. 1157 1158 * elfcmp.c (main): Compare individual ELF header fields, excluding 1159 e_shoff instead of the whole struct at once. 1160 Use ebl_section_strip_p instead of SECTION_STRIP_P. 1161 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P. 1162 1163 2005-07-22 Ulrich Drepper <drepper (a] redhat.com> 1164 1165 * elfcmp.c (main): Take empty section into account when comparing 1166 section content. 1167 1168 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before 1169 using it. 1170 1171 2005-07-21 Ulrich Drepper <drepper (a] redhat.com> 1172 1173 * elfcmp.c: New file. 1174 * Makefile.am (bin_PROGRAMS): Add elfcmp. 1175 (elfcmp_LDADD): Define. 1176 1177 * elflint.c (check_rela): Check that copy relocations only reference 1178 object symbols or symbols with unknown type. 1179 (check_rel): Likewise. 1180 1181 2005-06-08 Roland McGrath <roland (a] redhat.com> 1182 1183 * readelf.c (print_ops): Add consts. 1184 1185 2005-05-31 Roland McGrath <roland (a] redhat.com> 1186 1187 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's 1188 abbreviations. Print a header line before each CU section. 1189 1190 * readelf.c (print_debug_loc_section): Fix indentation for larger 1191 address size. 1192 1193 2005-05-30 Roland McGrath <roland (a] redhat.com> 1194 1195 * readelf.c (print_debug_line_section): Print section offset of each 1196 CU's table, so they are easy to find from seeing the stmt_list value. 1197 1198 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>. 1199 (attr_callback): Grok DW_AT_ranges and print offset in hex. 1200 1201 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format. 1202 (print_debug_ranges_section, print_debug_loc_section): Likewise. 1203 1204 * readelf.c (print_ops): Take different args for indentation control. 1205 (attr_callback): Caller updated. 1206 Grok several more block-form attributes as being location expressions. 1207 For those same attributes with udata forms, format output differently 1208 for location list offset. 1209 (print_debug_loc_section): Implement it for real. 1210 1211 * readelf.c (options): Mention ranges for --debug-dump. 1212 (enum section_e): Add section_ranges. 1213 (parse_opt): Grok "ranges" for -w/--debug-dump. 1214 (print_debug_ranges_section): New function. 1215 (print_debug): Handle .debug_ranges section. 1216 1217 2005-05-30 Ulrich Drepper <drepper (a] redhat.com> 1218 1219 * readelf.c (handle_notes): At least x86-64 need not have the note 1220 section values aligned to 8 bytes. 1221 1222 2005-05-18 Ulrich Drepper <drepper (a] redhat.com> 1223 1224 * readelf.c (dwarf_tag_string): Add new tags. 1225 1226 2005-05-08 Roland McGrath <roland (a] redhat.com> 1227 1228 * strip.c (handle_elf): Don't translate hash and versym data formats, 1229 elf_getdata already did it for us. 1230 1231 2005-05-07 Ulrich Drepper <drepper (a] redhat.com> 1232 1233 * Makefile.am (findtextrel_LDADD): Add $(libmudflap). 1234 (addr2line_LDADD): Likewise. 1235 1236 2005-05-03 Roland McGrath <roland (a] redhat.com> 1237 1238 * strip.c (handle_elf): Apply symbol table fixups to discarded 1239 relocation sections when they are being saved in the debug file. 1240 1241 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom 1242 and gelf_xlatetof, not the native byte order. 1243 1244 * strip.c (parse_opt): Give error if -f or -o is repeated. 1245 (main): Exit if argp_parse returns nonzero. 1246 1247 * strip.c (debug_fname_embed): New variable. 1248 (options, parse_opt): New option -F to set it. 1249 1250 2005-05-07 Ulrich Drepper <drepper (a] redhat.com> 1251 1252 * readelf.c (parse_opt): Make any_control_option variable 1253 local. Simplify some tests. 1254 1255 2005-05-03 Roland McGrath <roland (a] redhat.com> 1256 1257 * strip.c (crc32_file): Function removed (now in ../lib). 1258 1259 2005-05-03 Roland McGrath <roland (a] redhat.com> 1260 1261 * elflint.c (is_debuginfo): New variable. 1262 (options, parse_opt): New option --debuginfo/-d to set it. 1263 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS. 1264 (check_note): If is_debuginfo, don't try to get note contents. 1265 1266 2005-04-24 Ulrich Drepper <drepper (a] redhat.com> 1267 1268 * readelf.c (print_debug_abbrev_section): Don't print error when end of 1269 section reached. 1270 1271 2005-04-14 Ulrich Drepper <drepper (a] redhat.com> 1272 1273 * readelf.c (dwarf_encoding_string): New function. 1274 (dwarf_inline_string): New function. 1275 (dwarf_access_string): New function. 1276 (dwarf_visibility_string): New function. 1277 (dwarf_virtuality_string): New function. 1278 (dwarf_identifier_case_string): New function. 1279 (dwarf_calling_convention_string): New function. 1280 (dwarf_ordering_string): New function. 1281 (dwarf_discr_list_string): New function. 1282 (attr_callback): Decode man more attribute values. 1283 1284 2005-04-01 Ulrich Drepper <drepper (a] redhat.com> 1285 1286 * addr2line.c: Finish implementation of -f option. 1287 1288 2005-03-29 Ulrich Drepper <drepper (a] redhat.com> 1289 1290 * addr2line.c: New file. 1291 * Makefile.am (bin_PROGRAMS): Add addr2line. 1292 Define addr2line_LDADD. 1293 1294 * findtextrel.c: Use new dwarf_addrdie function. 1295 1296 * findtextrel.c: Fix usage message and re-add accidentally removed 1297 line. 1298 1299 2005-03-28 Ulrich Drepper <drepper (a] redhat.com> 1300 1301 * findtextrel.c: New file. 1302 * Makefile: Add rules to build findtextrel. 1303 1304 2005-02-15 Ulrich Drepper <drepper (a] redhat.com> 1305 1306 * ldlex.l: Provide ECHO definition to avoid warning. 1307 1308 * elflint.c (check_program_header): Fix typo in RELRO test. 1309 1310 * Makefile.am (AM_CFLAGS): Add more warning options. 1311 * elflint.c: Fix warnings introduced by the new warning options. 1312 * i386_ld.c: Likewise. 1313 * ld.c: Likewise. 1314 * ld.h: Likewise. 1315 * ldgeneric.c: Likewise. 1316 * nm.c: Likewise. 1317 * readelf.c: Likewise. 1318 * sectionhash.c: Likewise. 1319 * size.c: Likewise. 1320 * string.c: Likewise. 1321 1322 2005-02-05 Ulrich Drepper <drepper (a] redhat.com> 1323 1324 * Makefile.am: Check for text relocations in constructed DSOs. 1325 1326 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps 1327 with -lmudflap. 1328 1329 * ldscript.y: Add as_needed handling. 1330 * ldlex.l: Recognize AS_NEEDED token. 1331 * ld.h (struct filename_list): Add as_needed flag. 1332 1333 2005-02-04 Ulrich Drepper <drepper (a] redhat.com> 1334 1335 * elflint.c (check_symtab): Correctly determine size of GOT section. 1336 1337 2005-01-19 Ulrich Drepper <drepper (a] redhat.com> 1338 1339 * ld.c: Remove unnecessary more_help function. Print bug report 1340 address using argp. 1341 * strip.c: Likewise. 1342 * size.c: Likewise. 1343 * nm.c: Likewise. 1344 * readelf.c: Likewise. 1345 * elflint.c: Likewise. 1346 1347 * elflint.c (main): Don't check for parameter problems here. 1348 (parse_opt): Do it here, where we get informed about some of them 1349 anyway. 1350 1351 * readelf.c (main): Don't check for parameter problems here. 1352 (parse_opt): Do it here, where we get informed about some of them 1353 anyway. 1354 1355 2005-01-11 Ulrich Drepper <drepper (a] redhat.com> 1356 1357 * strip.c: Update copyright year. 1358 * readelf.c: Likewise. 1359 * size.c: Likewise. 1360 * nm.c: Likewise. 1361 * ld.c: Likewise. 1362 * elflint.c: Likewise. 1363 1364 * elflint.c (check_symtab): Don't warn about wrong size for 1365 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld. 1366 1367 2004-10-05 Ulrich Drepper <drepper (a] redhat.com> 1368 1369 * readelf.c (print_phdr): In section mapping, also indicate 1370 sections in read-only segments. 1371 1372 2004-09-25 Ulrich Drepper <drepper (a] redhat.com> 1373 1374 * readelf.c: Make compile with gcc 4.0. 1375 * strip.c: Likewise. 1376 1377 2004-08-16 Ulrich Drepper <drepper (a] redhat.com> 1378 1379 * strip.c (handle_elf): Rewrite dynamic memory handling to use of 1380 allocate to work around gcc 3.4 bug. 1381 1382 2004-01-25 Ulrich Drepper <drepper (a] redhat.com> 1383 1384 * ldlex.l (invalid_char): Better error message. 1385 1386 2004-01-23 Ulrich Drepper <drepper (a] redhat.com> 1387 1388 * readelf.c: Print SHT_GNU_LIBLIST sections. 1389 1390 * none_ld.c: New file. 1391 1392 2004-01-21 Ulrich Drepper <drepper (a] redhat.com> 1393 1394 * Makefile.am: Enable building of machine specific linker. 1395 1396 2004-01-20 Ulrich Drepper <drepper (a] redhat.com> 1397 1398 * Makefile.am: Support building with mudflap. 1399 1400 * i386_ld.c: Fix warnings gcc 3.4 spits out. 1401 * ldgeneric.c: Likewise. 1402 * ldscript.y: Likewise. 1403 * readelf.c: Likewise. 1404 * strip.c: Likewise. 1405 1406 * readelf.c (print_debug_line_section): Determine address size 1407 correctly. 1408 1409 2004-01-19 Ulrich Drepper <drepper (a] redhat.com> 1410 1411 * readelf.c (print_phdr): Show which sections are covered by the 1412 PT_GNU_RELRO entry. 1413 1414 * elflint.c (check_program_header): Check PT_GNU_RELRO entry. 1415 1416 * readelf.c (print_debug_macinfo_section): Implement. 1417 1418 2004-01-18 Ulrich Drepper <drepper (a] redhat.com> 1419 1420 * readelf.c (print_debug_line_section): Implement. 1421 1422 2004-01-17 Ulrich Drepper <drepper (a] redhat.com> 1423 1424 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE. 1425 * src/ld.c: Likewise. 1426 * src/nm.c: Likewise. 1427 * src/readelf.c: Likewise. 1428 * src/size.c: Likewise. 1429 * src/strip.c: Likewise. 1430 1431 * strip.c: Add a few more unlikely. Reduce scope of some variables. 1432 1433 * Makefile.am: Support building with mudflap. 1434 1435 2004-01-16 Ulrich Drepper <drepper (a] redhat.com> 1436 1437 * readelf.c (print_debug_info_section): Free dies memory. 1438 1439 * readelf.c: Print .debug_info section content. 1440 1441 2004-01-13 Ulrich Drepper <drepper (a] redhat.com> 1442 1443 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE. 1444 1445 2004-01-12 Ulrich Drepper <drepper (a] redhat.com> 1446 1447 * readelf.c (print_debug_aranges): Implement using libdw. 1448 1449 2004-01-11 Ulrich Drepper <drepper (a] redhat.com> 1450 1451 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change. 1452 1453 * readelf.c: Use libdw instead of libdwarf. Not all of the old 1454 behavior is available yet. 1455 * Makefile.am: Link readelf with libdw. Remove libdwarf include path. 1456 1457 2004-01-09 Ulrich Drepper <drepper (a] redhat.com> 1458 1459 * nm.c (get_local_names): Adjust call to dwarf_nextcu. 1460 1461 * nm.c: Implement getting information about local variables. 1462 1463 2004-01-07 Ulrich Drepper <drepper (a] redhat.com> 1464 1465 * nm.c: Read also debug information for local symbols. 1466 1467 2004-01-05 Ulrich Drepper <drepper (a] redhat.com> 1468 1469 * nm.c: Shuffle dwarf handling code around so the maximum column 1470 width can be computed ahead of printing. Avoid collection symbols 1471 which are not printed anyway. 1472 1473 * nm.c: Rewrite dwarf handling to use libdw. 1474 * Makefile.am (AM_CFLAGS): Add -std parameter. 1475 (INCLUDES): Find header in libdw subdir. 1476 (nm_LDADD): Replace libdwarf with libdw. 1477 1478 * elflint.c: Update copyright year. 1479 * readelf.c: Likewise. 1480 * size.c: Likewise. 1481 * strip.c: Likewise. 1482 * nm.c: Likewise. 1483 1484 2003-12-31 Ulrich Drepper <drepper (a] redhat.com> 1485 1486 * strip.c (process_file): Close file before returning. 1487 1488 2003-11-19 Ulrich Drepper <drepper (a] redhat.com> 1489 1490 * readelf.c (handle_dynamic): Make column for tag name wider. 1491 1492 2003-09-29 Ulrich Drepper <drepper (a] redhat.com> 1493 1494 * readelf.c (handle_dynamic): Always terminate tag name with a space. 1495 1496 2003-09-25 Ulrich Drepper <drepper (a] redhat.com> 1497 1498 * strip.c (process_file): Don't mmap the input file, we modify the 1499 data structures and don't want the change end up on disk. 1500 1501 2003-09-23 Jakub Jelinek <jakub (a] redhat.com> 1502 1503 * unaligned.h (union u_2ubyte_unaligned, 1504 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add 1505 packed attribute. 1506 (add_2ubyte_unaligned, add_4ubyte_unaligned, 1507 add_8ubyte_unaligned): Avoid nesting bswap_NN macros. 1508 Read/store value through _ptr->u instead of *_ptr. 1509 1510 2003-09-22 Ulrich Drepper <drepper (a] redhat.com> 1511 1512 * size.c (show_sysv): Change type of maxlen to int. 1513 1514 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit 1515 buckets. 1516 1517 * i386_ld.c: Many many fixes and extensions. 1518 * ld.c: Likewise. 1519 * ldgeneric.c: Likewise. 1520 1521 2003-08-16 Ulrich Drepper <drepper (a] redhat.com> 1522 1523 * ldgeneric.c (check_definition): Don't add symbol on dso_list if 1524 the reference is from another DSO. 1525 1526 2003-08-15 Ulrich Drepper <drepper (a] redhat.com> 1527 1528 * ldgeneric.c (find_entry_point): It is no fatal error if no entry 1529 point is found when creating a DSO. 1530 1531 2003-08-14 Ulrich Drepper <drepper (a] redhat.com> 1532 1533 * ld.c (main): Always call FLAG_UNRESOLVED. 1534 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about 1535 undefined symbols if not creating DSO or ld_state.nodefs is not set. 1536 1537 2003-08-13 Ulrich Drepper <drepper (a] redhat.com> 1538 1539 * Makefile.in: Depend on libebl.a, not libebl.so. 1540 1541 * ld.c (main): Mark stream for linker script as locked by caller. 1542 (read_version_script): Likewise. 1543 * ldlex.c: Define fread and fwrite to _unlocked variant. 1544 1545 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of 1546 target_bswap_32. 1547 * unaligned.h: Define target_bswap_16, target_bswap_32, and 1548 target_bswap_64. 1549 (store_2ubyte_unaligned, store_4ubyte_unaligned, 1550 store_8ubyte_unaligned): Define using new macros. 1551 1552 2003-08-12 Ulrich Drepper <drepper (a] redhat.com> 1553 1554 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access 1555 possibly unaligned memory. Support use of big endian machines. 1556 1557 2003-08-11 Ulrich Drepper <drepper (a] redhat.com> 1558 1559 * Moved to CVS archive. 1560