12012-01-31 Mark Wielaard <mjw@redhat.com> 2 3 * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset. 4 52012-01-21 Ulrich Drepper <drepper@gmail.com> 6 7 * addr2line.c: Update copyright year. 8 * ar.c: Likewise. 9 * elfcmp.c: Likewise. 10 * elflint.c: Likewise. 11 * findtextrel.c: Likewise. 12 * ld.c: Likewise. 13 * nm.c: Likewise. 14 * objdump.c: Likewise. 15 * ranlib.c: Likewise. 16 * readelf.c: Likewise. 17 * size.c: Likewise. 18 * strings.c: Likewise. 19 * strip.c: Likewise. 20 * unstrip.c: Likewise. 21 22 * nm.c (argp_children): Define. 23 (argp): Hook up argp_children. 24 (handle_ar): Optimize puts call. 25 (show_symbols_bsd): Use positional parameters to also print color 26 codes. Don't print STT_FILE symbols. 27 * objdump.c (options): Improve help text. 28 (argp_children): Define. 29 (argp): Hook up argp_children. 30 (disasm_info): Add elements for color codes. 31 (disasm_output): Print color codes as well. 32 (show_disasm): Set up disasm_info data for callback. 33 342012-01-20 Roland McGrath <roland@hack.frob.com> 35 36 * arlib-argp.c (arlib_deterministic_output): Initialize from 37 configured value. 38 (help_filter): New function. 39 (argp): Use it. 40 41 * ar.c (main): Handle oper_none as usage error. 42 43 * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D. 44 45 * ranlib.c (argp): Use arlib_argp_children. 46 47 * arlib.c (arlib_init): Obey arlib_deterministic_output. 48 49 * arlib-argp.c: New file. 50 * Makefile.am (libar_a_SOURCES): Add it. 51 * arlib.h (arlib_deterministic_output, arlib_argp_children): 52 Declare new variables. 53 * ar.c (deterministic_output): Variable removed. 54 (do_oper_insert): Use arlib_deterministic_output instead. 55 (options, parse_opt): Don't handle -D here. Add group numbers. 56 (argp): Use arlib_argp_children. 57 582011-12-20 Roland McGrath <roland@hack.frob.com> 59 60 * readelf.c (print_debug): Initialize DUMMY_DBG.elf. 61 Reported by Karel Klic <kklic@redhat.com>. 62 632011-11-05 Roland McGrath <roland@hack.frob.com> 64 65 * ar.c (deterministic_output): New flag variable. 66 (options, parse_opt): Grok -D to set it. 67 (do_oper_insert): When set, use zero from mtime, uid, and gid. 68 69 * ar.c (do_oper_insert): Fix check on elf_rawfile return value. 70 712011-10-04 Marek Polacek <mpolacek@redhat.com> 72 73 * readelf.c (register_info): Assume the right size of an array. 74 752011-10-03 Ulrich Drepper <drepper@gmail.com> 76 77 * nm.c: Recognize option --mark-special. Still recognize --mark-weak 78 but don't show it in help anymore. 79 (mark_special): Renamed from mark_weak. 80 (parse_opt): Adjust. 81 (class_type_char): Take additional parameters for ELF file and ELF 82 header. Treat TLS symbols like objects. 83 In case of D symbols, show u for unique symbols, R for symbols in 84 read-only sections, B for symbols in BSS sections. 85 (show_symbols_bsd): Take additional parameters for ELF file and ELF 86 header. Adjust for class_type_char change. Show TLS symbols with 87 @ after them in case --mark-special is selected. 88 (show_symbols_posix): Likewise. 89 (show_symbols): Adjust calls to show_symbols_bsd and 90 show_symbols_posix. 91 (show_symbols_sysv): Avoid printing adress and size for undefined 92 symbols. Don't print initial special entry and section entries. 93 942011-10-02 Ulrich Drepper <drepper@gmail.com> 95 96 * Makefile.am (demanglelib): Define. 97 (nm_LDADD): Add demanglelib. 98 * nm.c (options): Add -C option. 99 (demangle): Define as global variable. 100 (parse_opt): Recognize -C. 101 (show_symbols_sysv): Handle demangling. 102 (show_symbols_bad): Likewise. 103 (show_symbols_posix): Likewise. 104 (show_symbols): Likewise. 105 1062011-07-09 Roland McGrath <roland@hack.frob.com> 107 108 * readelf.c (options, parse_opt): Grok -W/--wide and ignore it. 109 110 * ar.c (parse_opt): Grok -u. 111 1122011-05-30 Mark Wielaard <mjw@redhat.com> 113 114 * strip.c (relocate): Make offset check overflow-proof. 115 1162011-05-23 Mark Wielaard <mjw@redhat.com> 117 118 * strip.c (relocate): Take new arguments is_rela to indicate 119 whether the relocation is from a SHT_REL or SHT_RELA section. 120 Relocate against any debug section symbol, not just STT_SECTION 121 symbols. For SHT_REL relocations, fetch addend from offset and 122 add it to symbol value if not zero. 123 1242011-05-23 Mark Wielaard <mjw@redhat.com> 125 126 * strip.c (OPT_RELOC_DEBUG): New option. 127 (argp_option): Add new --reloc-debug-sections option. 128 (main): Check new option. 129 (parse_opt): Likewise. 130 (handle_elf): Remove any relocations between debug sections 131 in ET_REL for the debug file when requested. 132 1332011-05-18 Mark Wielaard <mjw@redhat.com> 134 135 * strip.c (handle_elf): Make sure all sections of a removed group 136 section are removed too. Don't discard SHT_GROUP sections, copy 137 section table before it gets modified. Section group signature 138 symbols don't have to be retained. 139 1402011-05-16 Jakub Jelinek <jakub@redhat.com> 141 142 * readelf.c (print_ops): Handle DW_OP_GNU_const_type, 143 DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert 144 and DW_OP_GNU_reinterpret. 145 1462011-05-17 Mark Wielaard <mjw@redhat.com> 147 148 * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and 149 DW_TAG_GNU_call_site_parameter return strings. 150 1512011-05-11 Marek Polacek <mpolacek@redhat.com> 152 153 * nm.c (show_symbols_sysv): Remove unused if/else, remove 154 unused `prefix' and `fname' parameters. 155 1562011-05-07 Marek Polacek <mpolacek@redhat.com> 157 158 * unstrip.c (compare_sections_nonrel): Mark this function as static. 159 1602011-04-26 Mark Wielaard <mjw@redhat.com> 161 162 * readelf.c (handle_notes_data): Call ebl_object_note_type_name 163 with note name. 164 1652011-04-14 Mark Wielaard <mjw@redhat.com> 166 167 * readelf.c (options): Add gdb_index. 168 (section_e): Define section_gdb_index. 169 (parse_opt): Recognize gdb_index debug-dump argument. 170 (print_gdb_index_section): New function. 171 (print_debug): Add gdb_index to debug_sections. 172 1732011-03-24 Petr Machata <pmachata@redhat.com> 174 175 * readelf.c (print_debug_line_section): Emit initial space for all 176 opcode lines. Print offset in front of each opcode. 177 1782011-03-22 Marek Polacek <mpolacek@redhat.com> 179 180 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case. 181 1822011-03-22 Mark Wielaard <mjw@redhat.com> 183 184 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site 185 and DW_TAG_GNU_call_site_parameter. 186 (dwarf_attr_string): Support DW_AT_GNU_call_site_value, 187 DW_AT_GNU_call_site_data_value, 188 DW_AT_GNU_call_site_target, 189 DW_AT_GNU_call_site_target_clobbered, 190 DW_AT_GNU_tail_call, 191 DW_AT_GNU_all_tail_call_sites, 192 DW_AT_GNU_all_call_sites, 193 and DW_AT_GNU_all_source_call_sites. 194 (print_ops): Handle DW_OP_GNU_entry_value. 195 (attr_callback): Handle DW_AT_GNU_call_site_value, 196 DW_AT_GNU_call_site_data_value, 197 DW_AT_GNU_call_site_target, 198 and DW_AT_GNU_call_site_target_clobbered. 199 2002011-03-10 Mark Wielaard <mjw@redhat.com> 201 202 * elflint.c (check_symtab): Use ebl_check_st_other_bits. 203 2042011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com> 205 206 * readelf.c (reset_listptr): Clear TABLE->TABLE. 207 2082011-02-25 Mark Wielaard <mjw@redhat.com> 209 210 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling. 211 (dwarf_form_string): Properly format and return unknown form. 212 2132011-02-23 Roland McGrath <roland@redhat.com> 214 215 * readelf.c (section_name): New function. 216 (print_debug_abbrev_section): Use it instead of constant. 217 (print_debug_aranges_section): Likewise. 218 (print_debug_ranges_section): Likewise. 219 (print_debug_units): Likewise. 220 (print_debug_line_section): Likewise. 221 (print_debug_loc_section): Likewise. 222 (print_debug_macinfo_section): Likewise. 223 (print_debug_pubnames_section): Likewise. 224 (print_debug_str_section): Likewise. 225 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too. 226 (print_debug_abbrev_section): Use decoded d_size, not sh_size. 227 (print_debug_str_section): Likewise. 228 229 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature. 230 2312011-02-11 Roland McGrath <roland@redhat.com> 232 233 * elfcmp.c (verbose): New variable. 234 (options, parse_opt): Grok -l/--verbose to set it. 235 (main): Under -l, keep going after first difference. 236 237 * elfcmp.c (ignore_build_id): New variable. 238 (options, parse_opt): Grok --ignore-build-id to set it. 239 (main): For SHT_NOTE sections, compare note details rather than raw 240 bytes. Under --ignore-build-id, don't complain about differing build 241 ID contents if lengths match. 242 2432011-02-08 Roland McGrath <roland@redhat.com> 244 245 * ldscript.y (filename_id_star): Remove unused variable. 246 247 * unstrip.c (copy_elided_sections): Remove unused variable. 248 249 * elflint.c (check_dynamic): Remove unused variables. 250 251 * elflint.c (check_symtab): Warn about missing xndx section only once. 252 253 * ldgeneric.c (check_for_duplicate2): Remove unused variable. 254 2552011-01-06 Roland McGrath <roland@redhat.com> 256 257 * strip.c (handle_elf): Under --strip-sections, remove all 258 non-allocated sections and never generate .gnu_debuglink. 259 2602011-01-04 Roland McGrath <roland@redhat.com> 261 262 * strip.c (remove_shdrs): New variable. 263 (options, parse_opt): Grok --strip-sections to set it. 264 (handle_elf): When that's set, truncate off .shstrtab and shdrs. 265 2662010-11-10 Roland McGrath <roland@redhat.com> 267 268 * findtextrel.c (process_file): Don't assume order of sections. 269 Reported by Mike Hommey <mh@glandium.org>. 270 2712010-07-26 Roland McGrath <roland@redhat.com> 272 273 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer. 274 2752010-08-30 Roland McGrath <roland@redhat.com> 276 277 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses. 278 * readelf.c (parse_opt): Add section_info to implicit_debug_sections 279 for ranges, loc. 280 (struct listptr, struct listptr_table): New types. 281 (compare_listptr, reset_listptr, sort_listptr): New functions. 282 (notice_listptr, skip_listptr_hole): New functions. 283 (struct attrcb_args): Add silent member. 284 (attr_callback): Call notice_listptr for loclistptr and rangelistptr. 285 Suppress output if silent, but still call notice_listptr. 286 (print_debug_units): Suppress output if section_info not requested. 287 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole. 288 (print_debug_ranges_section): Likewise. 289 (print_debug): Call reset_listptr on both tables. 290 291 * readelf.c (print_debug_ranges_section): Print empty list. 292 (print_debug_loc_section): Likewise. 293 294 * readelf.c (print_debug_loc_section): Check for bogus length 295 before calling print_ops. 296 (print_ops): Check harder for bogus data that would read off end. 297 2982010-08-11 Roland McGrath <roland@redhat.com> 299 300 * readelf.c (for_each_section_argument): Process all sections with 301 matching name, not just the first. 302 3032010-07-26 Roland McGrath <roland@redhat.com> 304 305 * readelf.c (print_ops): Take new argument for CU version. 306 Fix DW_OP_call_ref decoding to depend on it. 307 (print_debug_loc_section): Update caller. 308 (print_cfa_program): Take new argument, pass it down. 309 (print_debug_frame_section): Update caller. 310 (struct attrcb_args): New member version. 311 (print_debug_units): Initialize it. 312 3132010-07-02 Roland McGrath <roland@redhat.com> 314 315 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for 316 initial_location. 317 3182010-06-30 Roland McGrath <roland@redhat.com> 319 320 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO. 321 Ignore st_size for a non-S_ISREG file descriptor. 322 (read_block): Move assert after no-mmap bail-out. 323 (read_block_no_mmap): Fix size calculations for moving buffer remnant. 324 3252010-06-22 Roland McGrath <roland@redhat.com> 326 327 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa. 328 3292010-06-21 Roland McGrath <roland@redhat.com> 330 331 * readelf.c (dwarf_tag_string): Handle new v4 tags. 332 (dwarf_attr_string): Add new attributes. 333 (dwarf_tag_string): Handle DW_TAG_GNU_*. 334 335 * readelf.c (print_ops): Use 64-bit types for LEB128 operands. 336 (print_cfa_program): Likewise. 337 3382010-06-20 Roland McGrath <roland@redhat.com> 339 340 * readelf.c (print_debug_units): New function, broken out of ... 341 (print_debug_info_section): ... here. Call it. 342 (print_debug_types_section): New function. 343 (enum section_e): Add section_types alias for section_info. 344 (print_debug): Add types to the sections table. 345 346 * readelf.c (print_debug_frame_section): Handle version 4 format. 347 348 * readelf.c (print_debug_line_section): Handle version 4 format. 349 3502010-06-14 Roland McGrath <roland@redhat.com> 351 352 * unstrip.c (copy_elided_sections): Make sure all sections' data have 353 been read in before we write anything out. 354 3552010-06-04 Roland McGrath <roland@redhat.com> 356 357 * unstrip.c (update_shdr): New function. 358 (update_sh_size): Call it instead of gelf_update_shdr. 359 (adjust_relocs, add_new_section_symbols): Likewise. 360 (new_shstrtab, copy_elided_sections): Likewise. 361 362 * unstrip.c (copy_elided_sections): Bail if stripped file has more 363 sections than unstripped file, rather than getting confused later. 364 3652010-06-01 Roland McGrath <roland@redhat.com> 366 367 * readelf.c (dwarf_form_string): Handle DWARF 4 forms. 368 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc, 369 DW_FORM_sec_offset, DW_FORM_ref_sig8. 370 371 * readelf.c (print_debug): Don't bail if libdw setup fails. 372 Suppress complaint if we only want .eh_frame anyway. 373 3742010-05-28 Ulrich Drepper <drepper@redhat.com> 375 376 * readelf.c (attr_callback): Also print form information. 377 3782010-05-19 Roland McGrath <roland@redhat.com> 379 380 * addr2line.c (find_symbol): Short-circuit on empty name. 381 (handle_address): Handle SYMBOL with no +OFFSET. 382 3832010-05-08 Roland McGrath <roland@redhat.com> 384 385 * readelf.c (print_ops): Take new arg OFFSET_SIZE. 386 Use that for DW_OP_call_ref, not ADDRSIZE. 387 (print_cfa_program): Update caller. 388 (struct attrcb_args): Add offset_size field. 389 (attr_callback): Use it for print_ops call. 390 (print_debug_info_section): Initialize it. 391 (print_ops): Likewise. 392 3932010-04-14 Roland McGrath <roland@redhat.com> 394 395 * readelf.c (handle_core_item): Fix bitmask printing. 396 3972010-04-06 Roland McGrath <roland@redhat.com> 398 399 * ld.c (options): Fix some typos in messages. 400 * elflint.c (check_scn_group, check_group): Likewise. 401 * ldscript.y (add_id_list): Likewise. 402 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment 403 before translated string containing a literal %. 404 4052010-02-26 Roland McGrath <roland@redhat.com> 406 407 * readelf.c (process_file): Don't leak an fd in failure case. 408 4092010-02-15 Roland McGrath <roland@redhat.com> 410 411 * Makefile.am: Use config/eu.am for common stuff. 412 413 * readelf.c (print_debug_frame_section): Add a cast to avoid sign 414 mismatch in comparison. 415 4162010-02-02 Roland McGrath <roland@redhat.com> 417 418 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero). 419 (read_encoded): Likewise. 420 (print_debug_frame_section): Check for bogus augmentation length. 421 For P augmentation, use read_encoded, print the encoding description, 422 and use hex for unsigned values. 423 4242010-01-15 Roland McGrath <roland@redhat.com> 425 426 * ar.c: Include <sys/stat.h>. 427 * elflint.c: Likewise. 428 * readelf.c: Likewise. 429 * strip.c: Likewise. 430 * unstrip.c: Likewise 431 4322010-01-07 Roland McGrath <roland@redhat.com> 433 434 * readelf.c (print_ehdr): Handle PN_XNUM. 435 (phnum): New static variable. 436 (process_elf_file): Set it with elf_getphdrnum. 437 (print_phdr): Use phnum instead of EHDR->e_phnum. 438 (print_dynamic, handle_notes): Likewise. 439 (handle_relocs_rel, handle_relocs_rela): Likewise. 440 441 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum. 442 443 * elflint.c (phnum): New static variable. 444 (check_elf_header): Set it, handling PN_XNUM. 445 Use that in place of EHDR->e_phnum throughout. 446 (check_symtab, check_reloc_shdr, check_dynamic): Likewise. 447 (unknown_dependency_p, check_sections, check_program_header): Likewise. 448 4492010-01-05 Roland McGrath <roland@redhat.com> 450 451 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and 452 DW_AT_GNU_template_name. 453 4542010-01-04 Roland McGrath <roland@redhat.com> 455 456 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE". 457 (handle_core_note): Pass NHDR and NAME to ebl_core_note. 458 (handle_core_item): Handle .format of '\n' as \n-separated strings. 459 460 * readelf.c (implicit_debug_sections): New variable. 461 (parse_opt): Set it instead of print_debug_sections for -a. 462 OR them together for print_debug check. 463 (print_debug): OR them together for section check. 464 465 * readelf.c (options): Repartition into set implied by -a and others. 466 Correct -a text to match reality. 467 468 * readelf.c (struct section_argument): Add bool member 'implicit'. 469 (parse_opt): Set it for -a cases, clear it for -x args. 470 (for_each_section_argument): Don't complain about a missing section by 471 name if it's implicit. 472 4732009-11-16 Roland McGrath <roland@redhat.com> 474 475 * readelf.c (print_string_section): Punt SHT_NOBITS like empty 476 sections, just as dump_data_section already does. 477 4782009-09-21 Ulrich Drepper <drepper@redhat.com> 479 480 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be 481 set for .comment section. 482 Patch by Mark Wielaard <mjw@redhat.com>. 483 4842009-09-08 Roland McGrath <roland@redhat.com> 485 486 * ar.c (main): Fix typo in message format. 487 4882009-08-21 Roland McGrath <roland@redhat.com> 489 490 * readelf.c (attr_callback): Use print_block only when we don't use 491 print_ops. 492 4932009-08-14 Roland McGrath <roland@redhat.com> 494 495 * ar.c (do_oper_extract): Use pathconf instead of statfs. 496 4972009-08-01 Ulrich Drepper <drepper@redhat.com> 498 499 * debugpred.h: Add two most const. 500 5012009-07-26 Mark Wielaard <mjw@redhat.com> 502 503 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION. 504 5052009-07-25 Mark Wielaard <mjw@redhat.com> 506 507 * Makefile.am (addr2line_LDADD): Add $(libelf). 508 5092009-07-24 Roland McGrath <roland@redhat.com> 510 511 * readelf.c (print_block): New function. 512 (print_ops): Use it. 513 (attr_callback): Use it for DW_FORM_block* forms. 514 5152009-07-20 Mark Wielaard <mjw@redhat.com> 516 517 * readelf.c (print_ops): Add handling of DW_OP_implicit_value 518 and DW_OP_stack_value. 519 5202009-07-14 Ulrich Drepper <drepper@redhat.com> 521 522 * elflint.c (check_elf_header): Allow Linux ABI. 523 (check_symtab): Handle STB_GNU_UNIQUE. 524 5252009-07-08 Mark Wielaard <mjw@redhat.com> 526 527 * readelf.c (attr_callback): Handle DW_Form constants for 528 DW_AT_data_member_location. 529 5302009-07-06 Roland McGrath <roland@redhat.com> 531 532 * readelf.c (register_info): New function. Handle unknown register #s. 533 (print_cfa_program): Use it. 534 (handle_core_register, handle_core_registers): Likewise. 535 5362009-06-28 Roland McGrath <roland@redhat.com> 537 538 * readelf.c (print_address_names): New static variable. 539 (options, parse_opt): Grok -N/--numeric-addresses to clear it. 540 (format_dwarf_addr): Don't look up name if !print_address_names. 541 5422009-06-13 Ulrich Drepper <drepper@redhat.com> 543 544 * ldgeneric.c: Don't use deprecated libelf functions. 545 * nm.c: Likewise. 546 * objdump.c: Likewise. 547 * readelf.c: Likewise. 548 * size.c: Likewise. 549 * strip.c: Likewise. 550 * unstrip.c: Likewise. 551 * ld.h: Fix up comment. 552 5532009-06-01 Ulrich Drepper <drepper@redhat.com> 554 555 * readelf.c (print_relocs): Expect ELF header argument and pass on 556 to handle_relocs_rel* functions. Adjust caller. 557 (handle_relocs_rel): Add ELF header argument. Add special case for 558 the IRELATIVE relocations in statically linked executables. 559 (handle_relocs_rela): Likewise. 560 5612009-04-29 Ulrich Drepper <drepper@redhat.com> 562 563 * elflint.c (check_symtab): Add tests of st_other field. 564 5652009-04-23 Ulrich Drepper <drepper@redhat.com> 566 567 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS). 568 5692009-04-20 Roland McGrath <roland@redhat.com> 570 571 * addr2line.c (print_dwarf_function): Honor -s and -A for file names 572 of inline call sites. 573 574 * addr2line.c (just_section): New variable. 575 (adjust_to_section): New function, broken out of ... 576 (handle_address): ... here. 577 (options, parse_opt): Add -j/--section=NAME to set it. 578 5792009-04-15 Roland McGrath <roland@redhat.com> 580 581 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in 582 64-bit format header, DW_CIE_ID_32 in 32-bit format header. 583 5842009-04-14 Roland McGrath <roland@redhat.com> 585 586 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM 587 like SHT_GNU_ATTRIBUTES. 588 589 * readelf.c (handle_core_registers): Fix error message. 590 591 * strip.c (handle_elf: check_preserved): Don't note any change when 592 .debug_data is already filled from a previous pass. 593 5942009-02-05 Ulrich Drepper <drepper@redhat.com> 595 596 * objdump.c (show_relocs_x): Minor cleanups. 597 598 * readelf.c (print_cfa_program): Correct a few labels. 599 Print first DW_CFA_expression and DW_CFA_val_expression parameter 600 as register. 601 6022009-02-01 Ulrich Drepper <drepper@redhat.com> 603 604 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts 605 into ... 606 (show_relocs_x): ...here. New function. 607 (show_relocs): Better spacing in output. 608 609 * objdump.c (show_relocs_rela): Show offsets as signed values. 610 611 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers. 612 Improve some error messages. 613 Use program_invocation_short_name instead of AR macro. 614 * Makefile.am (CFLAGS_ar): Remove. 615 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help. 616 * objdump.c (parse_opt): Likewise. 617 * readelf.c (parse_opt): Likewise. 618 6192009-01-27 Roland McGrath <roland@redhat.com> 620 621 * readelf.c (print_ops): Notice short length, don't overrun buffer 622 (still need to fix LEB128). 623 624 * readelf.c (print_ops): Fix DW_OP_call[24] decoding. 625 626 * readelf.c (print_ops): Print (empty)\n when LEN == 0. 627 6282009-01-24 Ulrich Drepper <drepper@redhat.com> 629 630 * readelf.c (print_debug_frame_section): Fix computation of vma_base 631 for PC-relative mode. 632 6332009-01-23 Ulrich Drepper <drepper@redhat.com> 634 635 * size.c (process_file): When handling archive, close file descriptor 636 here. For unknown file format also close file descriptor. 637 (handle_ar): Don't close file descriptor here. 638 639 * readelf.c (parse_opt): Move code to add to dump_data_sections and 640 string_sections list in local function add_dump_section. Adjust 'x' 641 key handling. For 'a' key add .strtab, .dynstr, and .comment section 642 to string_sections list. 643 6442009-01-22 Roland McGrath <roland@redhat.com> 645 646 * readelf.c (print_phdr): Don't print section mapping when no sections. 647 648 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat. 649 650 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false 651 and reset it only for the 'true' cases. 652 653 * Makefile.am (addr2line_no_Wformat): New variable. 654 655 * readelf.c (print_debug_frame_section): Use t instead of j formats 656 for ptrdiff_t OFFSET. 657 6582009-01-21 Ulrich Drepper <drepper@redhat.com> 659 660 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section 661 test. Handle debuginfo files. 662 (check_exception_data): First sanity test. 663 6642009-01-17 Ulrich Drepper <drepper@redhat.com> 665 666 * readelf.c (print_debug_exception_table): Show target of ar_disp 667 field. 668 669 * elflint.c (check_program_header): Add most consistency checks for 670 PT_GNU_EH_FRAME entry. 671 672 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and 673 ARGP_PROGRAM_BUG_ADDRESS_DEF. 674 * ar.c: Likewise. 675 * elfcmp.c: Likewise. 676 * elflint.c: Likewise. 677 * findtextrel.c: Likewise. 678 * ld.c: Likewise. 679 * nm.c: Likewise. 680 * objdump.c: Likewise. 681 * ranlib.c: Likewise. 682 * readelf.c: Likewise. 683 684 * size.c: Likewise. 685 * strings.c: Likewise. 686 * strip.c: Likewise. 687 * unstrip.c: Likewise. 688 6892009-01-16 Ulrich Drepper <drepper@redhat.com> 690 691 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry 692 matches .eh_frame_hdr section, if it is available. Also check that 693 the segment is allocated, not writable, not executable. 694 695 * readelf.c: Add -e option. Dump exception and unwind related 696 sections. Add -e to -a. 697 (print_encoding_base): Handle DW_EH_PE_omit. 698 (print_debug_exception_table): Beginning of support. 699 (print_debug): Hook up print_debug_exception_table for 700 .gcc_except_table sections. 701 702 * readelf.c (print_debug_frame_section): Some fixes for last change. 703 7042009-01-15 Ulrich Drepper <drepper@redhat.com> 705 706 * readelf.c (print_encoding): Now a toplevel function. 707 (print_relinfo): Likewise. 708 (print_encoding_base): Broken out of print_debug_frame_section. 709 (print_debug_frame_section): Print different header for .eh_frame 710 sections. Fix recognition of matching CIEs in .debug_frame sections. 711 Print absolute offset for PC-relative FDE locations. Don't print 712 table header for FDEs if the table is empty. 713 (read_encoded): New function. 714 (print_debug_frame_hdr_section): New function. 715 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr 716 sections. 717 718 * readelf.c (handle_relocs_rel): Print section number. 719 (print_debug_abbrev_section): Likewise. 720 (print_debug_aranges_section): Likewise. 721 (print_debug_ranges_section): Likewise. 722 (print_debug_info_section): Likewise. 723 (print_debug_line_section): Likewise. 724 (print_debug_loc_section): Likewise. 725 (print_debug_macinfo_section): Likewise. 726 (print_debug_pubnames_section): Likewise. 727 (print_debug_str_section): Likewise. 728 7292009-01-10 Ulrich Drepper <drepper@redhat.com> 730 731 * strings.c (read_block): Fix typo in error message string. 732 7332009-01-07 Ulrich Drepper <drepper@redhat.com> 734 735 * ld.c (ld_new_searchdir): Fix adding to search path list. 736 7372009-01-06 Ulrich Drepper <drepper@redhat.com> 738 739 * readelf.c: Implement call frame debug section dumping. 740 7412009-01-05 Roland McGrath <roland@redhat.com> 742 743 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep). 744 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal. 745 7462009-01-01 Ulrich Drepper <drepper@redhat.com> 747 748 * addr2line.c: Update copyright year. 749 * ar.c: Likewise. 750 * elfcmp.c: Likewise. 751 * elflint.c: Likewise. 752 * findtextrel.c: Likewise. 753 * ld.c: Likewise. 754 * nm.c: Likewise. 755 * objdump.c: Likewise. 756 * ranlib.c: Likewise. 757 * readelf.c: Likewise. 758 * size.c: Likewise. 759 * strings.c: Likewise. 760 * strip.c: Likewise. 761 * unstrip.c: Likewise. 762 7632008-12-11 Roland McGrath <roland@redhat.com> 764 765 * nm.c (sym_name): New function. 766 (show_symbols_sysv): Use it in place of elf_strptr. 767 (show_symbols_bsd, show_symbols_posix): Likewise. 768 Fixes RHBZ#476136. 769 770 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when 771 elf_strptr fails. 772 7732008-12-02 Roland McGrath <roland@redhat.com> 774 775 * readelf.c (count_dwflmod, process_file): Don't presume encoding of 776 nonzero OFFSET argument to dwfl_getmodules. 777 7782008-08-07 Roland McGrath <roland@redhat.com> 779 780 * addr2line.c (main): Pass string to handle_address. 781 (see_one_module): New function, subroutine of handle_address. 782 (find_symbol): Likewise. 783 (handle_address): Take string argument rather than address. 784 Convert plain number, or handle strings like "(section)+offset" 785 or "symbol+offset". 786 7872008-08-01 Roland McGrath <roland@redhat.com> 788 789 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset. 790 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string. 791 792 * readelf.c (convert): Take new argument SIZE. 793 (handle_core_register, handle_core_item): Update callers. 794 (handle_core_item): Take new arg REPEATED_SIZE. 795 (handle_core_items): Special case for a singleton item, 796 let handle_core_item handle repeats if it wants to. 797 798 * readelf.c (handle_core_items): Give abridged output 799 for identical groups repeated more than twice. 800 8012008-07-04 Roland McGrath <roland@redhat.com> 802 803 * readelf.c (handle_core_items): Handle ELF_T_ADDR. 804 8052008-04-10 Roland McGrath <roland@redhat.com> 806 807 * strip.c (handle_elf): Don't keep sections that kept symbol tables 808 refer to. Instead, just be sure to preserve the original symbol 809 table in the debug file so those symbols go with their sections and 810 can be elided from the stripped version of the symbol table. 811 812 * strip.c (handle_elf): When a discarded section kept in the debug 813 file refers to a nondiscard section via sh_link/sh_info, preserve 814 that nondiscarded section unmodified in the debug file as well. 815 Skip adjustment of discarded sections symbol table references when 816 that symbol table is copied in this way. 817 818 * elflint.c (check_symtab): Don't crash from missing symbol names 819 after diagnosing bogus strtab. 820 821 * strip.c (handle_elf): Cosmetic cleanup in special section contents 822 adjustment for symtab changes. 823 8242008-03-31 Roland McGrath <roland@redhat.com> 825 826 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections: 827 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook 828 excuse a special section. 829 8302008-03-27 Roland McGrath <roland@redhat.com> 831 832 * elflint.c (check_sections): Check that executability and writability 833 of sections is reflected in segment p_flags. 834 8352008-03-26 Roland McGrath <roland@redhat.com> 836 837 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags 838 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really 839 is valid in RELRO. 840 8412008-02-29 Roland McGrath <roland@redhat.com> 842 843 * readelf.c (print_attributes): Add a cast. 844 * elflint.c (check_attributes): Likewise. 845 846 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity 847 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition. 848 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise. 849 8502008-02-03 Ulrich Drepper <drepper@redhat.com> 851 852 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD 853 when linked into executable. 854 (elf_i386_create_relocations): Likewise. 855 8562008-02-20 Roland McGrath <roland@redhat.com> 857 858 * readelf.c (print_attributes): New function. 859 (process_elf_file): Call it under -A. 860 861 * elflint.c (check_attributes): Implement it for real. 862 8632008-02-19 Roland McGrath <roland@redhat.com> 864 865 * elflint.c (special_sections): Handle .gnu.attributes section. 866 (check_sections): Likewise. 867 (check_attributes): New function. 868 8692008-02-10 Roland McGrath <roland@redhat.com> 870 871 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC 872 sections and ET_REL files. 873 8742008-02-02 Ulrich Drepper <drepper@redhat.com> 875 876 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections. 877 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32 878 and R_386_TLS_LE. 879 (elf_i386_create_relocations): Likewise. 880 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb 881 elements. 882 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag. 883 (ld_generic_create_outfile): Add PT_TLS entry to program header. 884 Fix generation of PT_GNU_STACK entry. 885 8862008-02-01 Ulrich Drepper <drepper@redhat.com> 887 888 * ld.c (replace_args): Prevent loop over replacements if the parameter 889 is only two characters long. 890 891 * ld.c: Recognize sha1 argument for --build-id parameter. 892 * ldgeneric.c (create_build_id_section): Handle sha1. 893 (compute_hash_sum): New function. Broken out of compute_build_id. 894 Take hash function and context as parameters. 895 (compute_build_id): Use compute_hash_sum for md5 and the new sha1 896 implementation. 897 8982008-01-31 Ulrich Drepper <drepper@redhat.com> 899 900 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections. 901 * ld.c: Recognize --build-id command line parameter. 902 * ld.h: Define scn_dot_note_gnu_build_id. 903 (struct ld_state): Add build_id and buildidscnidx elements. 904 * ldgeneric.c: Implement --build-id command line parameter. 905 * ldlex.l (ID): Recognize - as valid character after the first one. 906 9072008-01-29 Ulrich Drepper <drepper@redhat.com> 908 909 * ld.c (replace_args): New function. 910 (main): Use it to rewrite old-style parameters. 911 912 * elf32-i386.script: Add .gnu.hash section. 913 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient. 914 (fillin_special_symbol): Initialize st_size. 915 (sortfct_hashval): New function. 916 (create_gnu_hash): New function. 917 (create_hash): New function. 918 (ld_generic_create_outfile): Use the new functions to create the 919 hash tables. 920 921 * elflint.c (check_gnu_hash): Fix index value printed in error message. 922 9232008-01-24 Ulrich Drepper <drepper@redhat.com> 924 925 * elflint.c (check_group): Check that signature symbol for section 926 group is not an empty string. 927 * ldgeneric.c: Remove magic assignment of indeces in the dynsym 928 section. Start implementation of --hash-style. 929 * i386_ld.c: Likewise. 930 * ld.c: Recognize --hash-style. 931 * ld.h (struct scninfo): Add comdat_group. 932 Add additional parameter to finalize_plt callback. 933 9342008-01-22 Ulrich Drepper <drepper@redhat.com> 935 936 * ld.h (struct callbacks): Add initialize_gotplt. 937 (struct scnhead): Add scn_dot_gotplt. 938 (struct ld_state): Add gotpltscnidx. 939 * i386_ld.c (elf_i386_initialize_plt): Minor optimization. 940 (elf_i386_initialize_pltrel): Likewise. 941 (elf_i386_initialize_got): There is now a separate .got.plt, so 942 don't do the PLT-related work here. Initialize d_type. 943 (elf_i386_initialize_gotplt): New function. 944 (elf_i386_plt0): Use ud2a after indirect jump. 945 (elf_i386_pic_plt0_entry): Likewise. 946 (elf_i386_finalize_plt): Reference now .got.plt. 947 (elf_i386_count_relocations): For GOT entries which need no relocation 948 don't bump nrel_got. 949 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32 950 handling for split .got/.got.plt. 951 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt. 952 * elf32-i386.script: Sort sections for security. There are no .got 953 input sections. Add .got.plt. 954 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section. 955 (ld_generic_create_outfile): Initialize .got.plt section. 956 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT. 957 9582008-01-19 Ulrich Drepper <drepper@redhat.com> 959 960 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined 961 symbols are not carried over into statically linked output files. 962 Add dummy entries for more TLS relocations. 963 964 * ld.c (options): Add long names for -( and -). 965 966 * ldgeneric.c (check_definition): For newly found definitions don't 967 mark section as used if symbol is absolute. 968 (extract_from_archive): Only assign archive sequence number the first 969 time the archive is handled. Update ld_state.last_archive_used 970 if any symbol was used. Remove nround variable. 971 (file_process2): When using symbol from an archive, update 972 ld_state.group_start_archive, ld_state.archives, and 973 ld_state.tailarchives. 974 (ld_generic_file_process): If group is not handled anymore, after 975 freeing ELF handles for the archives, clear ld_state.archives and 976 *nextp. Fix wrong logic in recognizing first iteration of group 977 loop. When clearing flags, also clear ld_state.group_start_archive. 978 9792008-01-11 Ulrich Drepper <drepper@redhat.com> 980 981 * objdump.c (show_disasm): Adjust disassembler format string for 982 removal of %e. 983 9842008-01-04 Roland McGrath <roland@redhat.com> 985 986 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero, 987 a size greater than the items cover means multiple sets of items. 988 (handle_core_note): Update caller. 989 9902008-01-04 Roland McGrath <roland@redhat.com> 991 992 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning. 993 9942008-01-03 Roland McGrath <roland@redhat.com> 995 996 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)). 997 998 * elflint.c (check_dynamic): Remove duplicate initializer. 999 10002008-01-02 Ulrich Drepper <drepper@redhat.com> 1001 1002 * addr2line.c: Update copyright year. 1003 * ar.c: Likewise. 1004 * elfcmp.c: Likewise. 1005 * elflint.c: Likewise. 1006 * findtextrel.c: Likewise. 1007 * ld.c: Likewise. 1008 * nm.c: Likewise. 1009 * objdump.c: Likewise. 1010 * ranlib.c: Likewise. 1011 * readelf.c: Likewise. 1012 * size.c: Likewise. 1013 * strings.c: Likewise. 1014 * strip.c: Likewise. 1015 * unstrip.c: Likewise. 1016 10172007-12-30 Ulrich Drepper <drepper@redhat.com> 1018 1019 * objdump (show_disasm): Use %e after third parameter. 1020 10212007-12-21 Ulrich Drepper <drepper@redhat.com> 1022 1023 * strip.c: Fix wrong parenthesis in a few branch predictions. 1024 * strings.c: Likewise. 1025 10262007-12-20 Ulrich Drepper <drepper@redhat.com> 1027 1028 * Makefile.am (DEFS): Add DEBUGPRED. 1029 * addr2line.c: Include debugpred.h. 1030 * ar.c: Likewise. 1031 * elfcmp.c: Likewise. 1032 * elflint.c: Likewise. 1033 * findtextrel.c: Likewise. 1034 * nm.c: Likewise. 1035 * objdump.c: Likewise. 1036 * ranlib.c: Likewise. 1037 * readelf.c: Likewise. 1038 * size.c: Likewise. 1039 * strings.c: Likewise. 1040 * strip.c: Likewise. 1041 * unstrip.c: Likewise. 1042 * debugpred.h: New file. 1043 1044 * readelf.c (handle_relocs_rel): Use elf_scnshndx. 1045 (handle_relocs_rela): Likewise. 1046 1047 * readelf.c: Add lots of likely/unlikely. 1048 1049 * elflint.c: Minor cleanups. 1050 10512007-11-19 Roland McGrath <roland@redhat.com> 1052 1053 * readelf.c (print_ops): Handle all bad op codes gracefully. 1054 Print their numbers instead of just ???. 1055 10562007-11-09 Roland McGrath <roland@redhat.com> 1057 1058 * readelf.c (attr_callback): Handle DW_AT_data_location. 1059 Handle block forms to mean a DWARF expression for DW_AT_allocated, 1060 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride, 1061 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound, 1062 DW_AT_upper_bound. 1063 10642007-10-20 Roland McGrath <roland@redhat.com> 1065 1066 * unstrip.c (options): Update -R description. 1067 (struct symbol): Put symbol details a union with a size_t pointer 1068 `duplicate'. 1069 (compare_symbols_output): Use null ->name as marker for discard 1070 symbols, not zero *->map. 1071 (copy_elided_sections): Record forwarding pointers for discarded 1072 duplicates and fill SYMNDX_MAP elements through them. 1073 1074 * readelf.c (process_file): Set offline_next_address to 0 at start. 1075 (struct process_dwflmod_args): New type. 1076 (process_dwflmod): Take args in it, pass fd to process_elf_file. 1077 (process_file): Update caller; dup FD for passing to libdwfl. 1078 (process_elf_file): Take new arg FD. For ET_REL file when 1079 displaying data affected by libdwfl relocation, open a new Elf handle. 1080 10812007-10-17 Roland McGrath <roland@redhat.com> 1082 1083 * readelf.c (print_debug_line_section): For invalid data inside a 1084 unit with plausible length, keep printing at the next unit boundary. 1085 1086 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref. 1087 10882007-10-16 Roland McGrath <roland@redhat.com> 1089 1090 * readelf.c (hex_dump): Fix rounding error in whitespace calculation. 1091 10922007-10-15 Roland McGrath <roland@redhat.com> 1093 1094 * make-debug-archive.in: New file. 1095 * Makefile.am (EXTRA_DIST): Add it. 1096 (make-debug-archive): New target. 1097 (bin_SCRIPTS, CLEANFILES): Add it. 1098 10992007-10-10 Roland McGrath <roland@redhat.com> 1100 1101 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld. 1102 Use it to check MERGE|STRINGS for .debug_str. 1103 (check_sections): Handle exact_or_gnuld. 1104 11052007-10-08 Roland McGrath <roland@redhat.com> 1106 1107 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate 1108 64-bit struct timeval with 32-bit tv_usec. 1109 11102007-10-07 Roland McGrath <roland@redhat.com> 1111 1112 * readelf.c (check_archive_index): New function. 1113 (process_file): Call it. Change signature to take only fd and name. 1114 Use libdwfl to open the file, then iterate on its modules (multiple 1115 for an archive) to print file name and call process_elf_file. 1116 (main): Update caller. Let process_file do elf_begin. 1117 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions. 1118 (process_elf_file): Take only Dwfl_Module * argument. 1119 Don't print the file name here. 1120 (print_debug_*_section): Take Dwfl_Module * argument. 1121 (print_debug): Likewise. Update caller. 1122 (format_dwarf_addr): New function. 1123 (print_debug_ranges_section): Use it. 1124 (attr_callback): Likewise. 1125 (print_debug_line_section, print_debug_loc_section): Likewise. 1126 1127 * readelf.c (print_debug_ranges_section): Translate all strings. 1128 (print_debug_loc_section): Likewise. 1129 1130 * unstrip.c (copy_elided_sections): Initialize SEC. 1131 1132 * ar.c (do_oper_insert): Put trailing / on short names. 1133 1134 * arlib.h (MAX_AR_NAME_LEN): Decrease by one. 1135 1136 * arlib2.c (arlib_add_long_name): Adjust for header size. 1137 1138 * arlib.c (arlib_finalize): Pad long name table to keep size even. 1139 1140 * ar.c (do_oper_insert): Use write_retry for padding write. 1141 1142 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case. 1143 Unconditionally set FOUND[CNT]->elf when setting ->mem. 1144 (remember_long_name): New function. 1145 (do_oper_insert): Call it. Correctly use length of basename, 1146 not original name. Don't store long name twice for new member. 1147 11482007-10-06 Roland McGrath <roland@redhat.com> 1149 1150 * elflint.c (check_note): Skip empty segment. 1151 (check_note_section): Skip empty section. 1152 1153 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate. 1154 (handle_output_dir_module, handle_implicit_modules): Pass it down. 1155 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl. 1156 (compare_alloc_sections): Take new arg REL, ignore address if true. 1157 (compare_sections): Likewise, pass it down. 1158 (compare_sections_rel, compare_sections_nonrel): New functions. 1159 (find_alloc_sections_prelink, copy_elided_sections): Use them 1160 instead of compare_sections. 1161 (sections_match): New function, broken out of ... 1162 (find_alloc_section): ... here. 1163 (copy_elided_sections): Reorganize section match-up logic. 1164 Use sections_match for SHF_ALLOC in ET_REL. 1165 For ET_REL, let the nonzero sh_addr from the debug file dominate. 1166 1167 * unstrip.c (add_new_section_symbols): Take new arg REL. 1168 When true, do not update section symbol values. 1169 (collect_symbols): Likewise. Update section symbols with address 1170 of chosen output section, not original section. 1171 (check_symtab_section_symbols, copy_elided_sections): Update callers. 1172 1173 * unstrip.c (compare_alloc_sections): At the same address, preserve 1174 original section order. 1175 1176 * elflint.c (special_sections): Don't require MERGE|STRINGS for 1177 .debug_str, it didn't always have them with older tools. 1178 1179 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL. 1180 11812007-10-05 Roland McGrath <roland@redhat.com> 1182 1183 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in 1184 ET_REL file. 1185 1186 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose 1187 SHN_UNDEF as "bad section". Use shndx value in messages. 1188 1189 * elflint.c (special_sections): Add ".debug_str". Decrement namelen 1190 for ".debug" so it matches as a prefix. 1191 (IS_KNOWN_SPECIAL): New macro. 1192 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS 1193 type even under -d, for a .debug* or .shstrtab section. 1194 1195 * readelf.c (print_ops): Use hex for address operand. 1196 11972007-10-04 Roland McGrath <roland@redhat.com> 1198 1199 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for 1200 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for 1201 sections mapped to SHN_UNDEF. 1202 12032007-10-04 Ulrich Drepper <drepper@redhat.com> 1204 1205 * readelf.c (dump_archive_index): Avoid warning about uninitialized 1206 variable with older glibc versions. 1207 Add some branch prediction. 1208 12092007-10-04 Roland McGrath <roland@redhat.com> 1210 1211 * readelf.c (print_archive_index): New variable. 1212 (options, parse_opt): Accept -c/--archive-index to set it. 1213 (dump_archive_index): New function. 1214 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX. 1215 Call dump_archive_index on archives if set. 1216 (main): Update caller. 1217 (any_control_option): Give it file scope, moved out of ... 1218 (parse_opt): ... here. 1219 12202007-10-03 Roland McGrath <roland@redhat.com> 1221 1222 * unstrip.c (struct arg_info): Add `list' flag. 1223 (options, parse_opt): Grok -n/--list to set it. 1224 (list_module): New function. 1225 (handle_implicit_modules): Call it under -n. 1226 1227 * elflint.c (check_note_section): New function. 1228 (check_sections): Call it for SHT_NOTE. 1229 1230 * readelf.c (handle_notes): Use sections when available. 1231 1232 * elflint.c (check_note_data): New function, broken out of ... 1233 (check_note): ... here. Call it and elf_getdata_rawchunk. 1234 1235 * readelf.c (handle_auxv_note): Take offset as argument, not buffer. 1236 Use elf_getdata_rawchunk and gelf_getauxv. 1237 (handle_notes_data): New function, broken out of ... 1238 (handle_notes): ... here. Call it and elf_getdata_rawchunk. 1239 12402007-10-01 Roland McGrath <roland@redhat.com> 1241 1242 * readelf.c (hex_dump): Fix transposed subtraction generating spaces. 1243 1244 * readelf.c (hex_dump): Fix line header to be hex instead of decimal. 1245 12462007-09-10 Roland McGrath <roland@redhat.com> 1247 1248 * readelf.c (options): Give -p optional argument, alias --string-dump. 1249 (string_sections, string_sections_tail): New static variables. 1250 (parse_opt): Set them when -p has an argument. 1251 (print_string_section): New function, broken out of ... 1252 (print_strings): ... here. Call it. 1253 (dump_data_section): New function, broken out of ... 1254 (dump_data): ... here. Call it. 1255 (for_each_section_argument): New function, broken out of ... 1256 (dump_data): ... here. Call it. 1257 (dump_strings): New function. 1258 12592007-08-31 Roland McGrath <roland@redhat.com> 1260 1261 * readelf.c (print_strings): Typo fix. 1262 12632007-08-23 Roland McGrath <roland@redhat.com> 1264 1265 * readelf.c (printf_with_wrap): Function removed. 1266 (REGISTER_WRAP_COLUMN): New macro. 1267 (handle_core_register): Use print_core_item instead. 1268 (struct register_info): New type. 1269 (compare_registers, compare_register_sets): New functions. 1270 (register_bitpos, compare_sets_by_info): New functions. 1271 (handle_core_registers): Use those to segregate and sort registers 1272 for display. 1273 1274 * readelf.c (ITEM_WRAP_COLUMN): New macro. 1275 (print_core_item): New function. 1276 (handle_core_item): Use it instead of printf_with_wrap. 1277 (compare_core_items, compare_core_item_groups): New functions. 1278 (handle_core_items): Use them. Sort by group and force line breaks 1279 between groups. 1280 1281 * readelf.c (handle_core_registers, handle_core_items): New functions, 1282 broken out of ... 1283 (handle_core_note): ... here. Call them. 1284 12852007-08-22 Roland McGrath <roland@redhat.com> 1286 1287 * unstrip.c (new_shstrtab): New function, broken out of ... 1288 (copy_elided_sections): ... here. 1289 12902007-08-20 Roland McGrath <roland@redhat.com> 1291 1292 Avoid local function trampolines in nm binary. 1293 * nm.c (sort_by_address): Move to a static function instead of local 1294 inside show_symbols. 1295 (sort_by_name_strtab): New static variable. 1296 (sort_by_name): Use it. Move to a static function instead of local 1297 inside show_symbols. 1298 (show_symbols): Set sort_by_name_strtab. 1299 13002007-08-19 Roland McGrath <roland@redhat.com> 1301 1302 * readelf.c (handle_auxv_note): New function. 1303 (handle_notes): Call it. 1304 1305 * readelf.c (printf_with_wrap, convert): New functions. 1306 (handle_core_item, (handle_core_register): New functions. 1307 (handle_notes): Call those with details from ebl_core_note. 1308 13092007-08-12 Roland McGrath <roland@redhat.com> 1310 1311 * elflint.c (check_note): Accept type 0 with name "Linux". 1312 1313 * elflint.c (special_sections): Accept SHF_ALLOC for ".note". 1314 1315 * elflint.c (section_flags_string): Return "none" for 0, not "". 1316 13172007-08-11 Roland McGrath <roland@redhat.com> 1318 1319 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID. 1320 13212007-08-04 Ulrich Drepper <drepper@redhat.com> 1322 1323 * readelf.c (hex_dump): Use isprint to determine whether to print 1324 character itself or full stop character. 1325 (dump_data): No need to check endp for NULL after strtol call. 1326 13272007-08-03 Roland McGrath <roland@redhat.com> 1328 1329 * readelf.c (print_string_sections): New variable. 1330 (options, parse_opt): Handle --strings/-p to set it. 1331 (print_strings): New function. 1332 (process_elf_file): Call it under -p. 1333 1334 * readelf.c (options): Add hidden aliases --segments, --sections, 1335 as taken by binutils readelf. 1336 13372007-08-01 Roland McGrath <roland@redhat.com> 1338 1339 * readelf.c (dump_data_sections, dump_data_sections_tail): 1340 New variables. 1341 (options, parse_opt): Handle --hex-dump/-x, set them. 1342 (hex_dump): New function. 1343 (dump_data): New function, call it. 1344 (process_elf_file): Call it. 1345 13462007-07-25 Roland McGrath <roland@redhat.com> 1347 1348 * addr2line.c (show_symbols): New variable. 1349 (print_addrsym): New function. 1350 (handle_address): Call it. 1351 (options, parse_opt): Handle -S/--symbols. 1352 13532007-06-05 Ulrich Drepper <drepper@redhat.com> 1354 1355 * addr2line.c: Update for latest autoconf header. 1356 * ar.c: Likewise. 1357 * elfcmp.c: Likewise. 1358 * elflint.c: Likewise. 1359 * findtextrel.c: Likewise. 1360 * ld.c: Likewise. 1361 * ldgeneric.c: Likewise. 1362 * nm.c: Likewise. 1363 * objdump.c: Likewise. 1364 * ranlib.c: Likewise. 1365 * readelf.c: Likewise. 1366 * size.c: Likewise. 1367 * strings.c: Likewise. 1368 * strip.c: Likewise. 1369 * unstrip.c: Likewise. 1370 13712007-05-18 Roland McGrath <roland@redhat.com> 1372 1373 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with 1374 stripped file, so as not to duplicate a section copied in both. 1375 1376 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file. 1377 13782007-05-17 Roland McGrath <roland@redhat.com> 1379 1380 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0. 1381 1382 * unstrip.c (handle_file): Tweak BIAS != 0 warning. 1383 1384 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set, 1385 call make_directories here. 1386 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down. 1387 (handle_dwfl_module): Likewise. 1388 (handle_implicit_modules): Update callers. 1389 (handle_output_dir_module): Likewise. Don't do make_directories here. 1390 1391 * unstrip.c (get_section_name): New function, broken out of ... 1392 (copy_elided_sections): here. Update callers. 1393 (find_alloc_section): Broken out of ... 1394 (copy_elided_sections): ... here. Update caller. 1395 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA, 1396 update STT_SECTION symbols' st_value fields as a side effect. 1397 (check_symtab_section_symbols): Update caller. 1398 (add_new_section_symbols): Set st_value in symbols added. 1399 (collect_symbols): Reset S->value for STT_SECTION symbols recorded. 1400 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved 1401 from .bss to .dynbss. 1402 (find_alloc_sections_prelink): New function. Associate debug file 1403 allocated SHT_NOBITS shdrs with stripped moved by prelink via 1404 .gnu.prelink_undo information. 1405 (copy_elided_sections): Call it when we couldn't find every allocated 1406 section. Don't use a debug file non-NOBITS section if SHF_ALLOC. 1407 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM. 1408 (handle_file): Update callers. 1409 1410 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section 1411 named ".comment". 1412 1413 * elflint.c (check_sections): Fix association of segments with 1414 sections when p_memsz > p_filesz. 1415 14162007-04-29 Roland McGrath <roland@redhat.com> 1417 1418 * addr2line.c (options, main): Tweak argp group settings to fix 1419 usage output. 1420 14212007-04-28 Roland McGrath <roland@redhat.com> 1422 1423 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections' 1424 sizes to match sections adjusted in the stripped file. 1425 14262007-04-24 Roland McGrath <roland@redhat.com> 1427 1428 * elfcmp.c (OPT_HASH_INEXACT): New macro. 1429 (hash_inexact): New variable. 1430 (options, parse_opt): Add --hash-inexact option to set it. 1431 (hash_content_equivalent): New function. 1432 (main): Call it for differing SHT_HASH sections under --hash-inexact. 1433 14342007-04-23 Roland McGrath <roland@redhat.com> 1435 1436 * unstrip.c: New file. 1437 * Makefile.am (bin_PROGRAMS): Add it. 1438 (unstrip_LDADD): New variable. 1439 1440 * strip.c (options): Allow --output for -o. 1441 14422007-02-15 Ulrich Drepper <drepper@redhat.com> 1443 1444 * readelf.c: Remove unused code. Add a few consts. 1445 14462007-02-15 Roland McGrath <roland@redhat.com> 1447 1448 * readelf.c (print_debug): Fix brainos in SHDR test. 1449 14502007-02-05 Roland McGrath <roland@redhat.com> 1451 1452 * ar.c: Include <limits.h>, since we use LONG_MAX. 1453 14542007-02-05 Ulrich Drepper <drepper@redhat.com> 1455 1456 * ar.c: Add ugly hack to work around gcc complaining that we 1457 ignore fchown's return value. 1458 (do_oper_insert): Handle error when writing padding. 1459 * ranlib.c: Add fchown complain work around. 1460 1461 * arlib.c: Make symtab a global variable. Change all users. 1462 * arlib2.c: Likewise. 1463 * ranlib.c: Likewise. 1464 * ar.c: Likewise. 1465 * arlib.h: Declare it. 1466 14672007-01-11 Roland McGrath <roland@redhat.com> 1468 1469 * elflint.c (check_sections): Use ebl_machine_section_flag_check on 1470 SHF_MASKPROC bits separately from generic sh_flags validation. 1471 14722007-02-04 Ulrich Drepper <drepper@redhat.com> 1473 1474 * ar.c: New file. 1475 * arlib.c: New file. 1476 * arlib2.c: New file. 1477 * arlib.h: New file. 1478 * Makefile (noinst_LIBRARIES): Add libar. 1479 (libar_a_SOURCES): Define. 1480 (ar_LDADD): Define. 1481 (CFLAGS_ar): Define. 1482 * ranlib.c: Change to use arlib. 1483 1484 * elflint.c (check_symtab): Work around GNU ld bug which omits 1485 sections but not symbols in those sections. 1486 14872007-01-10 Ulrich Drepper <drepper@redhat.com> 1488 1489 * addr2line.c: Update copyright year. 1490 * elfcmp.c: Likewise. 1491 * elflint.c: Likewise. 1492 * findtextrel.c: Likewise. 1493 * ld.c: Likewise. 1494 * nm.c: Likewise. 1495 * objdump.c: Likewise. 1496 * ranlib.c: Likewise. 1497 * readelf.c: Likewise. 1498 * size.c: Likewise. 1499 * strings.c: Likewise. 1500 * strip.c: Likewise. 1501 15022006-12-09 Ulrich Drepper <drepper@redhat.com> 1503 1504 * elflint.c (compare_hash_gnu_hash): New function. Report if the 1505 two hash tables have different content (module expected omission 1506 of undefined symbols). 1507 15082006-10-31 Roland McGrath <roland@redhat.com> 1509 1510 * elflint.c (check_program_header): Don't complain about 1511 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE. 1512 15132006-09-19 Jakub Jelinek <jakub@redhat.com> 1514 1515 * strip.c (process_file): Disallow -f on archives. 1516 15172006-10-09 Roland McGrath <roland@redhat.com> 1518 1519 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC). 1520 15212006-08-29 Roland McGrath <roland@redhat.com> 1522 1523 * Makefile.am (MAINTAINERCLEANFILES): New variable. 1524 1525 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly. 1526 Reported by Christian Aichinger <Greek0@gmx.net>. 1527 1528 * elflint.c (valid_e_machine): Add EM_ALPHA. 1529 Reported by Christian Aichinger <Greek0@gmx.net>. 1530 15312006-08-08 Ulrich Drepper <drepper@redhat.com> 1532 1533 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. 1534 Keep track of which "high DT" entries are present. 1535 Check that either old or GNU-style hash table is present. 1536 If GNU-style hash table is used a symbol table is mandatory. 1537 Check that if any prelink entry is present all of them are. 1538 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash 1539 table if they don't refer to functions. 1540 15412006-07-17 Roland McGrath <roland@redhat.com> 1542 1543 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field. 1544 (add_version): Likewise for argument. 1545 (check_versym): Cast constant to GElf_Versym for comparison. 1546 15472006-07-12 Roland McGrath <roland@redhat.com> 1548 1549 * readelf.c (handle_gnu_hash): Add casts for machines where 1550 Elf32_Word != unsigned int. 1551 15522006-07-12 Ulrich Drepper <drepper@redhat.com> 1553 1554 * elflint.c (check_sysv_hash64): Fix printf format. 1555 15562006-07-11 Roland McGrath <roland@redhat.com> 1557 1558 * addr2line.c (options): English fix in -f doc string. 1559 1560 * addr2line.c (use_comp_dir): New variable. 1561 (options, parse_opt): Grok -A/--absolute to set it. 1562 (handle_address): If set, prepend dwfl_line_comp_dir results to 1563 relative file names. 1564 15652006-07-06 Ulrich Drepper <drepper@redhat.com> 1566 1567 * elflint.c: Adjust for latest new hash table format. 1568 * readelf.c: Likewise. 1569 1570 * elflint.c (check_versym): Ignore hidden bit when comparing version 1571 numbers. 1572 15732006-07-05 Ulrich Drepper <drepper@redhat.com> 1574 1575 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize 1576 discarded COMDAT symbols. 1577 1578 * i386_ld.c (elf_i386_count_relocations): Lot of corrections. 1579 (elf_i386_create_relocations): Likewise. 1580 * ld.h (struct symbol): Add local and hidden bits. 1581 * ld.c (create_special_section_symbol): These synthsized symbols 1582 are local and hidden. 1583 * ldgeneric.c (file_process2): Check whether input file matches 1584 the emulation. 1585 (fillin_special_symbol): Create symbols as local and/or hidden 1586 if requested. 1587 (ld_generic_create_outfile): Make local copy of symbol. 1588 Don't hide global, defined symbols in dynamic symbol table unless 1589 requested. Synthetic symbols have no version information. 1590 1591 * elflint.c: Add support for checking 64-bit SysV-style hash tables. 1592 * readelf.c: Add support for printing 64-bit SysV-style hash tables. 1593 15942006-07-04 Ulrich Drepper <drepper@redhat.com> 1595 1596 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT 1597 testing. 1598 15992006-07-03 Ulrich Drepper <drepper@redhat.com> 1600 1601 * elflint.c: Add testing of DT_GNU_HASH. 1602 * readelf.c: Implement showing histogram for DT_GNU_HASH section. 1603 1604 * Makefile.am: Add hacks to create dependency files for non-generic 1605 linker. 1606 16072006-06-12 Ulrich Drepper <drepper@redhat.com> 1608 1609 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp 1610 section if creating a DSO and no interpreter is given. 1611 (ld_generic_create_outfile): Don't store reference to symbols in 1612 discarded COMDAT groups. Don't create PHDR and INTERP program header 1613 for DSO if no interpreter is specified. 1614 (create_verneed_data): Pretty printing. 1615 1616 * ldscript.y (content): If a DSO is created don't set default 1617 interpreter from linker script. 1618 1619 * i386_ld.c (elf_i386_count_relocations): Do not add relocations 1620 for symbols in discarded COMDAT groups. 1621 (elf_i386_create_relocations): Likewise. 1622 * ld.h (struct scninfo): Add unused_comdat. 1623 * ldgeneric.c (add_section): Also check group signature when 1624 matching COMDAT sections. 1625 (add_relocatable_file): Ignore symbols in COMDAT group which are 1626 discarded. 1627 1628 * elflint.c (check_one_reloc): For *_NONE relocs only check type 1629 and symbol reference. 1630 16312006-06-11 Ulrich Drepper <drepper@redhat.com> 1632 1633 * elflint.c (check_dynamic): Fix checking value of tags which are 1634 offsets in the string section. Make sure DT_STRTAB points to the 1635 section referenced in sh_link. 1636 1637 * ld.c (options): Add headers. Add short option 'R' for '--rpath'. 1638 1639 * ld.c: Recognize --eh-frame-hdr option. 1640 * ld.h (struct ld_state): Add eh_frame_hdr field. 1641 * ldgeneric.c (struct unw_eh_frame_hdr): Define. 1642 1643 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of 1644 SH_FLAGS_COMBINE. 1645 (add_relocatable_file): Minor optimization of last change. 1646 (match_section): Don't preserve SHF_GROUP flag any longer. 1647 16482006-06-10 Ulrich Drepper <drepper@redhat.com> 1649 1650 * ld.c (parse_z_option): Recognize execstack and noexecstack. 1651 Handle record and ignore as position dependent options. 1652 (parse_z_option_2): Handle ignore and record here. 1653 * ld.h (struct ld_state): Add execstack field. 1654 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack 1655 sections. 1656 (ld_generic_create_outfile): Fix program header creation in native 1657 linker. Add PT_GNU_STACK program header. 1658 16592006-06-09 Ulrich Drepper <drepper@redhat.com> 1660 1661 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries 1662 for PLT entries if there is no local definition. 1663 1664 * ld.c (parse_option): Handle -z ignore like --as-needed and 1665 -z record like --no-as-needed. 1666 * ld.h (struct ld_state): Remove ignore_unused_dsos field. 1667 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by 1668 looping over DSOs. When deciding about adding DT_NEEDED entries 1669 use ->as_needed instead of ignore_unused_dsos. 1670 16712006-05-31 Ulrich Drepper <drepper@redhat.com> 1672 1673 * ld.c: Recognize --as-needed and --no-as-needed options. 1674 * ld.h (struct usedfile): Add as_needed field. 1675 (struct ld_state): Likewise. 1676 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from 1677 the list. 1678 * ldscript.y (filename_id_list): Split to correctly parse all 1679 combinations. 1680 (mark_as_needed): Fix loop. 1681 16822006-05-28 Ulrich Drepper <drepper@redhat.com> 1683 1684 * addr2line.c (print_dwarf_function): Use unsigned type for lineno 1685 and colno. 1686 16872006-05-27 Ulrich Drepper <drepper@redhat.com> 1688 1689 * readelf.c (handle_relocs_rela): Better notations for addon value. 1690 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version. 1691 16922006-04-04 Ulrich Drepper <drepper@redhat.com> 1693 1694 * addr2line.c: Update copyright year. 1695 * elfcmp.c: Likewise. 1696 * elflint.c: Likewise. 1697 * findtextrel.c: Likewise. 1698 * ld.c: Likewise. 1699 * nm.c: Likewise. 1700 * objdump.c: Likewise. 1701 * ranlib.c: Likewise. 1702 * readelf.c: Likewise. 1703 * size.c: Likewise. 1704 * strings.c: Likewise. 1705 * strip.c: Likewise. 1706 17072006-03-09 Roland McGrath <roland@redhat.com> 1708 1709 * Makefile.am (AM_LDFLAGS): New variable. 1710 17112006-03-01 Roland McGrath <roland@redhat.com> 1712 1713 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables 1714 for dwarf.h changes matching 3.0 spec. 1715 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise. 1716 17172005-12-04 Ulrich Drepper <drepper@redhat.com> 1718 1719 * elflint.c (check_one_reloc): If relocation section is not loaded, 1720 don't check whether the relocations modify read-only sections or 1721 loaded and unloaded sections. 1722 17232005-11-28 Ulrich Drepper <drepper@redhat.com> 1724 1725 * elflint.c (check_one_reloc): Take additional parameters. Use 1726 them to determine whether relocation is valid in this type of 1727 file. DSOs and executables can contain relocation sections in 1728 unloaded sections which just show the relocations the linker 1729 applied. Adjust all callers. 1730 (check_program_header): Check that PT_PHDR is loaded and that offset 1731 matches the one in the ELF header. 1732 17332005-10-26 Roland McGrath <roland@redhat.com> 1734 1735 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation. 1736 17372005-09-03 Ulrich Drepper <drepper@redhat.com> 1738 1739 * strip.c (handle_elf): Unify some error messages. 1740 * ld.c (main): Likewise. 1741 * ldgeneric.c (open_elf): Likewise. 1742 * elfcmp.c (main): Likewise. 1743 * elflint.c (check_elf_header): Likewise. 1744 1745 * size.c (process_file): Fix typo in error message. 1746 1747 * readelf.c: Lots of little cleanups. Use _unlocked functions. 1748 17492005-09-02 Ulrich Drepper <drepper@redhat.com> 1750 1751 * strings.c (main): Reset elfmap variable after munmap call. 1752 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap. 1753 17542005-08-28 Ulrich Drepper <drepper@redhat.com> 1755 1756 * ranlib.c: Don't define pread_retry and write_retry here. 1757 1758 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl. 1759 (CLEANFILES): Add *.gcno *.gcda *.gconv. 1760 1761 * strings.c (process_chunk): Reorder expressions in conditional 1762 (process_chunk_mb): Likewise. 1763 1764 * strings.c: New file. 1765 * Makefile.am (bin_PROGRAMS): Add strings. 1766 (strings_no_Wstring): Define. 1767 (strings_LDADD): Define. 1768 17692005-08-27 Roland McGrath <roland@redhat.com> 1770 1771 * addr2line.c (dwarf_diename_integrate): Function removed. 1772 (print_dwarf_function): Use plain dwarf_diename. 1773 17742005-08-24 Ulrich Drepper <drepper@redhat.com> 1775 1776 * elflint.c (check_versym): Versioned symbols should not have 1777 local binding. 1778 17792005-08-15 Ulrich Drepper <drepper@redhat.com> 1780 1781 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be 1782 undefined. 1783 1784 * Makefile.am: Add rules to build ranlib. 1785 * ranlib.c: New file. 1786 17872005-08-14 Roland McGrath <roland@redhat.com> 1788 1789 * elflint.c (check_sections): Use ebl_section_type_name and allow any 1790 sh_type it recognizes. 1791 1792 * elflint.c (check_sections): Print unknown flags in hex, don't 1793 truncate high bits. Print section number and name for unknown type. 1794 17952005-08-13 Roland McGrath <roland@redhat.com> 1796 1797 * elflint.c (check_program_header): Use ebl_segment_type_name and 1798 allow any p_type it recognizes. Include p_type value in error 1799 message for unknown type. 1800 18012005-08-13 Ulrich Drepper <drepper@redhat.com> 1802 1803 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr 1804 to ebl_check_special_symbol. 1805 (check_sections): Pass ehdr to ebl_bss_plt_p. 1806 18072005-08-12 Roland McGrath <roland@redhat.com> 1808 1809 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx 1810 refers to the right section if it's not SHN_ABS. 1811 Let ebl_check_special_symbol override _G_O_T_ value and size checks. 1812 1813 * elflint.c (check_sections): Don't complain about a non-NOBITS 1814 section taking no segment space, if it's sh_size is 0. 1815 1816 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should 1817 be PROGBITS or NOBITS. 1818 1819 * elflint.c (check_symtab): Use ebl_check_special_symbol to override 1820 standard st_value and st_size checks. 1821 18222005-07-28 Roland McGrath <roland@redhat.com> 1823 1824 * addr2line.c (options, parse_opt): Don't handle -e here. 1825 (executable): Variable removed. 1826 (argp_children): New static variable. 1827 (argp): Use it. Make const. 1828 (main): Fill in argp_children from dwfl_standard_argp (). 1829 Let libdwfl handle file selection, pass Dwfl handle to handle_address. 1830 (print_dwarf_function): New function. Try to figure out inline chain. 1831 (elf_getname): Function removed, libdwfl does it for us. 1832 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles. 1833 Use dwfl_module_addrname instead of elf_getname. 1834 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls. 1835 * Makefile.am (INCLUDES): Add libdwfl directory to path. 1836 18372005-08-10 Ulrich Drepper <drepper@redhat.com> 1838 1839 * strip.c (parse_opt): STATE parameter is now used. 1840 Various little cleanups. 1841 1842 * readelf.c (print_debug_line_section): Correct fallout of renaming 1843 of DW_LNS_set_epilog_begin. 1844 18452005-08-08 Roland McGrath <roland@redhat.com> 1846 1847 * strip.c (options, parse_opt): Grok -R .comment for compatibility 1848 with binutils strip. Likewise -d, -S, as aliases for -g. 1849 Likewise ignore -s/--strip-all. 1850 18512005-08-07 Roland McGrath <roland@redhat.com> 1852 1853 * strip.c (process_file): Open read-only when using a different output 1854 file. 1855 18562005-08-06 Ulrich Drepper <drepper@redhat.com> 1857 1858 * elflint.c (in_nobits_scn): New function. 1859 (check_versym): Allow references for defined symbols against versions 1860 of other DSOs also for symbols in nobits sections. 1861 Move a few variables around. 1862 1863 * Makefile.am (AM_CFLAGS): Avoid duplication. 1864 Link with statis libs if BUILD_STATIC. 1865 18662005-08-05 Ulrich Drepper <drepper@redhat.com> 1867 1868 * elflint.c: Many, many more tests. Mostly related to symbol 1869 versioning. Those sections should now be completely checked. 1870 1871 * readelf.c (print_dynamic): Use gelf_offscn. 1872 18732005-08-04 Ulrich Drepper <drepper@redhat.com> 1874 1875 * elflint.c: Add lots more tests: more extension symbol table sanity, 1876 versioning section tests, hash table tests. General cleanup. 1877 18782005-08-02 Ulrich Drepper <drepper@redhat.com> 1879 1880 * objdump.c: New file. 1881 * Makefile.am (bin_PROGRAMS): Add objdump. 1882 (objdump_LDADD): Define. 1883 1884 * elflint.c (check_reloc_shdr): New function split out from check_rela 1885 and check_rel. 1886 (check_one_reloc): New function. Likewise. 1887 (check_rela): Use check_reloc_shdr and check_one_reloc. 1888 (check_rel): Likewise. 1889 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic 1890 section. 1891 Add checks that relocations against read-only segments are flagged, 1892 that the text relocation flag is not set unnecessarily, and that 1893 relocations in one section are either against loaded or not-loaded 1894 segments. 1895 18962005-08-01 Ulrich Drepper <drepper@redhat.com> 1897 1898 * elfcmp.c (main): Ignore section count and section name string table 1899 section index. 1900 19012005-07-27 Roland McGrath <roland@redhat.com> 1902 1903 * elfcmp.c: Include <locale.h>. 1904 19052005-07-27 Ulrich Drepper <drepper@redhat.com> 1906 1907 * elfcmp.c: Print name and index of differing section. 1908 19092005-07-24 Ulrich Drepper <drepper@redhat.com> 1910 1911 * elfcmp.c: Implement comparing gaps between sections. 1912 19132005-07-23 Ulrich Drepper <drepper@redhat.com> 1914 1915 * elflint.c: Include libeblP.h instead of libebl.h. 1916 * nm.c: Likewise. 1917 * readelf.c: Likewise. 1918 * elfcmp.c: Likewise. 1919 1920 * elfcmp.c (main): Compare individual ELF header fields, excluding 1921 e_shoff instead of the whole struct at once. 1922 Use ebl_section_strip_p instead of SECTION_STRIP_P. 1923 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P. 1924 19252005-07-22 Ulrich Drepper <drepper@redhat.com> 1926 1927 * elfcmp.c (main): Take empty section into account when comparing 1928 section content. 1929 1930 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before 1931 using it. 1932 19332005-07-21 Ulrich Drepper <drepper@redhat.com> 1934 1935 * elfcmp.c: New file. 1936 * Makefile.am (bin_PROGRAMS): Add elfcmp. 1937 (elfcmp_LDADD): Define. 1938 1939 * elflint.c (check_rela): Check that copy relocations only reference 1940 object symbols or symbols with unknown type. 1941 (check_rel): Likewise. 1942 19432005-06-08 Roland McGrath <roland@redhat.com> 1944 1945 * readelf.c (print_ops): Add consts. 1946 19472005-05-31 Roland McGrath <roland@redhat.com> 1948 1949 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's 1950 abbreviations. Print a header line before each CU section. 1951 1952 * readelf.c (print_debug_loc_section): Fix indentation for larger 1953 address size. 1954 19552005-05-30 Roland McGrath <roland@redhat.com> 1956 1957 * readelf.c (print_debug_line_section): Print section offset of each 1958 CU's table, so they are easy to find from seeing the stmt_list value. 1959 1960 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>. 1961 (attr_callback): Grok DW_AT_ranges and print offset in hex. 1962 1963 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format. 1964 (print_debug_ranges_section, print_debug_loc_section): Likewise. 1965 1966 * readelf.c (print_ops): Take different args for indentation control. 1967 (attr_callback): Caller updated. 1968 Grok several more block-form attributes as being location expressions. 1969 For those same attributes with udata forms, format output differently 1970 for location list offset. 1971 (print_debug_loc_section): Implement it for real. 1972 1973 * readelf.c (options): Mention ranges for --debug-dump. 1974 (enum section_e): Add section_ranges. 1975 (parse_opt): Grok "ranges" for -w/--debug-dump. 1976 (print_debug_ranges_section): New function. 1977 (print_debug): Handle .debug_ranges section. 1978 19792005-05-30 Ulrich Drepper <drepper@redhat.com> 1980 1981 * readelf.c (handle_notes): At least x86-64 need not have the note 1982 section values aligned to 8 bytes. 1983 19842005-05-18 Ulrich Drepper <drepper@redhat.com> 1985 1986 * readelf.c (dwarf_tag_string): Add new tags. 1987 19882005-05-08 Roland McGrath <roland@redhat.com> 1989 1990 * strip.c (handle_elf): Don't translate hash and versym data formats, 1991 elf_getdata already did it for us. 1992 19932005-05-07 Ulrich Drepper <drepper@redhat.com> 1994 1995 * Makefile.am (findtextrel_LDADD): Add $(libmudflap). 1996 (addr2line_LDADD): Likewise. 1997 19982005-05-03 Roland McGrath <roland@redhat.com> 1999 2000 * strip.c (handle_elf): Apply symbol table fixups to discarded 2001 relocation sections when they are being saved in the debug file. 2002 2003 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom 2004 and gelf_xlatetof, not the native byte order. 2005 2006 * strip.c (parse_opt): Give error if -f or -o is repeated. 2007 (main): Exit if argp_parse returns nonzero. 2008 2009 * strip.c (debug_fname_embed): New variable. 2010 (options, parse_opt): New option -F to set it. 2011 20122005-05-07 Ulrich Drepper <drepper@redhat.com> 2013 2014 * readelf.c (parse_opt): Make any_control_option variable 2015 local. Simplify some tests. 2016 20172005-05-03 Roland McGrath <roland@redhat.com> 2018 2019 * strip.c (crc32_file): Function removed (now in ../lib). 2020 20212005-05-03 Roland McGrath <roland@redhat.com> 2022 2023 * elflint.c (is_debuginfo): New variable. 2024 (options, parse_opt): New option --debuginfo/-d to set it. 2025 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS. 2026 (check_note): If is_debuginfo, don't try to get note contents. 2027 20282005-04-24 Ulrich Drepper <drepper@redhat.com> 2029 2030 * readelf.c (print_debug_abbrev_section): Don't print error when end of 2031 section reached. 2032 20332005-04-14 Ulrich Drepper <drepper@redhat.com> 2034 2035 * readelf.c (dwarf_encoding_string): New function. 2036 (dwarf_inline_string): New function. 2037 (dwarf_access_string): New function. 2038 (dwarf_visibility_string): New function. 2039 (dwarf_virtuality_string): New function. 2040 (dwarf_identifier_case_string): New function. 2041 (dwarf_calling_convention_string): New function. 2042 (dwarf_ordering_string): New function. 2043 (dwarf_discr_list_string): New function. 2044 (attr_callback): Decode man more attribute values. 2045 20462005-04-01 Ulrich Drepper <drepper@redhat.com> 2047 2048 * addr2line.c: Finish implementation of -f option. 2049 20502005-03-29 Ulrich Drepper <drepper@redhat.com> 2051 2052 * addr2line.c: New file. 2053 * Makefile.am (bin_PROGRAMS): Add addr2line. 2054 Define addr2line_LDADD. 2055 2056 * findtextrel.c: Use new dwarf_addrdie function. 2057 2058 * findtextrel.c: Fix usage message and re-add accidentally removed 2059 line. 2060 20612005-03-28 Ulrich Drepper <drepper@redhat.com> 2062 2063 * findtextrel.c: New file. 2064 * Makefile: Add rules to build findtextrel. 2065 20662005-02-15 Ulrich Drepper <drepper@redhat.com> 2067 2068 * ldlex.l: Provide ECHO definition to avoid warning. 2069 2070 * elflint.c (check_program_header): Fix typo in RELRO test. 2071 2072 * Makefile.am (AM_CFLAGS): Add more warning options. 2073 * elflint.c: Fix warnings introduced by the new warning options. 2074 * i386_ld.c: Likewise. 2075 * ld.c: Likewise. 2076 * ld.h: Likewise. 2077 * ldgeneric.c: Likewise. 2078 * nm.c: Likewise. 2079 * readelf.c: Likewise. 2080 * sectionhash.c: Likewise. 2081 * size.c: Likewise. 2082 * string.c: Likewise. 2083 20842005-02-05 Ulrich Drepper <drepper@redhat.com> 2085 2086 * Makefile.am: Check for text relocations in constructed DSOs. 2087 2088 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps 2089 with -lmudflap. 2090 2091 * ldscript.y: Add as_needed handling. 2092 * ldlex.l: Recognize AS_NEEDED token. 2093 * ld.h (struct filename_list): Add as_needed flag. 2094 20952005-02-04 Ulrich Drepper <drepper@redhat.com> 2096 2097 * elflint.c (check_symtab): Correctly determine size of GOT section. 2098 20992005-01-19 Ulrich Drepper <drepper@redhat.com> 2100 2101 * ld.c: Remove unnecessary more_help function. Print bug report 2102 address using argp. 2103 * strip.c: Likewise. 2104 * size.c: Likewise. 2105 * nm.c: Likewise. 2106 * readelf.c: Likewise. 2107 * elflint.c: Likewise. 2108 2109 * elflint.c (main): Don't check for parameter problems here. 2110 (parse_opt): Do it here, where we get informed about some of them 2111 anyway. 2112 2113 * readelf.c (main): Don't check for parameter problems here. 2114 (parse_opt): Do it here, where we get informed about some of them 2115 anyway. 2116 21172005-01-11 Ulrich Drepper <drepper@redhat.com> 2118 2119 * strip.c: Update copyright year. 2120 * readelf.c: Likewise. 2121 * size.c: Likewise. 2122 * nm.c: Likewise. 2123 * ld.c: Likewise. 2124 * elflint.c: Likewise. 2125 2126 * elflint.c (check_symtab): Don't warn about wrong size for 2127 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld. 2128 21292004-10-05 Ulrich Drepper <drepper@redhat.com> 2130 2131 * readelf.c (print_phdr): In section mapping, also indicate 2132 sections in read-only segments. 2133 21342004-09-25 Ulrich Drepper <drepper@redhat.com> 2135 2136 * readelf.c: Make compile with gcc 4.0. 2137 * strip.c: Likewise. 2138 21392004-08-16 Ulrich Drepper <drepper@redhat.com> 2140 2141 * strip.c (handle_elf): Rewrite dynamic memory handling to use of 2142 allocate to work around gcc 3.4 bug. 2143 21442004-01-25 Ulrich Drepper <drepper@redhat.com> 2145 2146 * ldlex.l (invalid_char): Better error message. 2147 21482004-01-23 Ulrich Drepper <drepper@redhat.com> 2149 2150 * readelf.c: Print SHT_GNU_LIBLIST sections. 2151 2152 * none_ld.c: New file. 2153 21542004-01-21 Ulrich Drepper <drepper@redhat.com> 2155 2156 * Makefile.am: Enable building of machine specific linker. 2157 21582004-01-20 Ulrich Drepper <drepper@redhat.com> 2159 2160 * Makefile.am: Support building with mudflap. 2161 2162 * i386_ld.c: Fix warnings gcc 3.4 spits out. 2163 * ldgeneric.c: Likewise. 2164 * ldscript.y: Likewise. 2165 * readelf.c: Likewise. 2166 * strip.c: Likewise. 2167 2168 * readelf.c (print_debug_line_section): Determine address size 2169 correctly. 2170 21712004-01-19 Ulrich Drepper <drepper@redhat.com> 2172 2173 * readelf.c (print_phdr): Show which sections are covered by the 2174 PT_GNU_RELRO entry. 2175 2176 * elflint.c (check_program_header): Check PT_GNU_RELRO entry. 2177 2178 * readelf.c (print_debug_macinfo_section): Implement. 2179 21802004-01-18 Ulrich Drepper <drepper@redhat.com> 2181 2182 * readelf.c (print_debug_line_section): Implement. 2183 21842004-01-17 Ulrich Drepper <drepper@redhat.com> 2185 2186 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE. 2187 * src/ld.c: Likewise. 2188 * src/nm.c: Likewise. 2189 * src/readelf.c: Likewise. 2190 * src/size.c: Likewise. 2191 * src/strip.c: Likewise. 2192 2193 * strip.c: Add a few more unlikely. Reduce scope of some variables. 2194 2195 * Makefile.am: Support building with mudflap. 2196 21972004-01-16 Ulrich Drepper <drepper@redhat.com> 2198 2199 * readelf.c (print_debug_info_section): Free dies memory. 2200 2201 * readelf.c: Print .debug_info section content. 2202 22032004-01-13 Ulrich Drepper <drepper@redhat.com> 2204 2205 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE. 2206 22072004-01-12 Ulrich Drepper <drepper@redhat.com> 2208 2209 * readelf.c (print_debug_aranges): Implement using libdw. 2210 22112004-01-11 Ulrich Drepper <drepper@redhat.com> 2212 2213 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change. 2214 2215 * readelf.c: Use libdw instead of libdwarf. Not all of the old 2216 behavior is available yet. 2217 * Makefile.am: Link readelf with libdw. Remove libdwarf include path. 2218 22192004-01-09 Ulrich Drepper <drepper@redhat.com> 2220 2221 * nm.c (get_local_names): Adjust call to dwarf_nextcu. 2222 2223 * nm.c: Implement getting information about local variables. 2224 22252004-01-07 Ulrich Drepper <drepper@redhat.com> 2226 2227 * nm.c: Read also debug information for local symbols. 2228 22292004-01-05 Ulrich Drepper <drepper@redhat.com> 2230 2231 * nm.c: Shuffle dwarf handling code around so the maximum column 2232 width can be computed ahead of printing. Avoid collection symbols 2233 which are not printed anyway. 2234 2235 * nm.c: Rewrite dwarf handling to use libdw. 2236 * Makefile.am (AM_CFLAGS): Add -std parameter. 2237 (INCLUDES): Find header in libdw subdir. 2238 (nm_LDADD): Replace libdwarf with libdw. 2239 2240 * elflint.c: Update copyright year. 2241 * readelf.c: Likewise. 2242 * size.c: Likewise. 2243 * strip.c: Likewise. 2244 * nm.c: Likewise. 2245 22462003-12-31 Ulrich Drepper <drepper@redhat.com> 2247 2248 * strip.c (process_file): Close file before returning. 2249 22502003-11-19 Ulrich Drepper <drepper@redhat.com> 2251 2252 * readelf.c (handle_dynamic): Make column for tag name wider. 2253 22542003-09-29 Ulrich Drepper <drepper@redhat.com> 2255 2256 * readelf.c (handle_dynamic): Always terminate tag name with a space. 2257 22582003-09-25 Ulrich Drepper <drepper@redhat.com> 2259 2260 * strip.c (process_file): Don't mmap the input file, we modify the 2261 data structures and don't want the change end up on disk. 2262 22632003-09-23 Jakub Jelinek <jakub@redhat.com> 2264 2265 * unaligned.h (union u_2ubyte_unaligned, 2266 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add 2267 packed attribute. 2268 (add_2ubyte_unaligned, add_4ubyte_unaligned, 2269 add_8ubyte_unaligned): Avoid nesting bswap_NN macros. 2270 Read/store value through _ptr->u instead of *_ptr. 2271 22722003-09-22 Ulrich Drepper <drepper@redhat.com> 2273 2274 * size.c (show_sysv): Change type of maxlen to int. 2275 2276 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit 2277 buckets. 2278 2279 * i386_ld.c: Many many fixes and extensions. 2280 * ld.c: Likewise. 2281 * ldgeneric.c: Likewise. 2282 22832003-08-16 Ulrich Drepper <drepper@redhat.com> 2284 2285 * ldgeneric.c (check_definition): Don't add symbol on dso_list if 2286 the reference is from another DSO. 2287 22882003-08-15 Ulrich Drepper <drepper@redhat.com> 2289 2290 * ldgeneric.c (find_entry_point): It is no fatal error if no entry 2291 point is found when creating a DSO. 2292 22932003-08-14 Ulrich Drepper <drepper@redhat.com> 2294 2295 * ld.c (main): Always call FLAG_UNRESOLVED. 2296 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about 2297 undefined symbols if not creating DSO or ld_state.nodefs is not set. 2298 22992003-08-13 Ulrich Drepper <drepper@redhat.com> 2300 2301 * Makefile.in: Depend on libebl.a, not libebl.so. 2302 2303 * ld.c (main): Mark stream for linker script as locked by caller. 2304 (read_version_script): Likewise. 2305 * ldlex.c: Define fread and fwrite to _unlocked variant. 2306 2307 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of 2308 target_bswap_32. 2309 * unaligned.h: Define target_bswap_16, target_bswap_32, and 2310 target_bswap_64. 2311 (store_2ubyte_unaligned, store_4ubyte_unaligned, 2312 store_8ubyte_unaligned): Define using new macros. 2313 23142003-08-12 Ulrich Drepper <drepper@redhat.com> 2315 2316 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access 2317 possibly unaligned memory. Support use of big endian machines. 2318 23192003-08-11 Ulrich Drepper <drepper@redhat.com> 2320 2321 * Moved to CVS archive. 2322