12019-01-24 Mark Wielaard <mark@klomp.org> 2 3 * strip.c (handle_elf): Fix check test for SHN_XINDEX symbol. 4 52019-01-22 Mark Wielaard <mark@klomp.org> 6 7 * readelf.c (print_debug_line_section): Check we are not at end of 8 line data when reading parameters for unknown opcodes. 9 102019-01-20 Mark Wielaard <mark@klomp.org> 11 12 * readelf.c (print_debug_line_section): Check terminating NUL byte 13 for dir and file tables. 14 152019-01-16 Mark Wielaard <mark@klomp.org> 16 17 * readelf (handle_core_note): Pass desc to ebl_core_note. 18 192018-11-10 Mark Wielaard <mark@klomp.org> 20 21 * elflint.c (check_program_header): Allow PT_GNU_EH_FRAME segment 22 to be matched against SHT_X86_64_UNWIND section. 23 242018-11-09 Mark Wielaard <mark@klomp.org> 25 26 * strip.c (remove_debug_relocations): Check if section is gnu 27 compressed and decompress and recompress it. 28 292018-11-12 Mark Wielaard <mark@klomp.org> 30 31 * elflint.c (check_note_data): Recognize NT_GNU_BUILD_ATTRIBUTE_OPEN 32 and NT_GNU_BUILD_ATTRIBUTE_OPEN. 33 * readelf.c (handle_notes_data): Handle 34 ELF_NOTE_GNU_BUILD_ATTRIBUTE_PREFIX. Pass nhdr.n_namesz to 35 ebl_object_note. 36 372018-11-11 Mark Wielaard <mark@klomp.org> 38 39 * readelf.c (handle_notes_data): Pass n_descsz to 40 ebl_object_note_type_name. 41 * elflint.c (check_note_data): Recognize NT_VERSION, add owner 42 name to unknown note error. 43 442018-10-20 Mark Wielaard <mark@klomp.org> 45 46 * readelf.c (process_elf_file): Use dwelf_elf_begin to open pure_elf. 47 482018-10-26 Mark Wielaard <mark@klomp.org> 49 50 * strip.c (OPT_RELOC_DEBUG_ONLY): New define. 51 (options): Add reloc-debug-sections-only. 52 (reloc_debug_only): New static bool. 53 (main): Check reloc_debug_only is the only strip option used. 54 (parse_opt): Handle OPT_RELOC_DEBUG_ONLY. 55 (handle_debug_relocs): New function. 56 (handle_elf): Add local variables lastsec_offset and lastsec_size. 57 Handle reloc_debug_only. 58 592018-10-24 Mark Wielaard <mark@klomp.org> 60 61 * strip.c (handle_elf): Extract code to update shdrstrndx into... 62 (update_shdrstrndx): ... this new function. 63 642018-10-24 Mark Wielaard <mark@klomp.org> 65 66 * strip.c (handle_elf): Extract code into separate functions... 67 (secndx_name): ... new function. 68 (get_xndxdata): Likewise. 69 (remove_debug_relocations): Likewise. 70 712018-10-24 Mark Wielaard <mark@klomp.org> 72 73 * strip.c (handle_elf): Always copy over phdrs if there are any 74 and check phnum instead of e_type to determine whether to move 75 allocated sections. 76 772018-11-02 Mark Wielaard <mark@klomp.org> 78 79 * unstrip.c (copy_elf): Add ELF_CHECK to make sure gelf_getehdr () 80 doesn't return NULL. 81 822018-10-18 Mark Wielaard <mark@klomp.org> 83 84 * elflint.c (check_note_data): Recognize NT_GNU_PROPERTY_TYPE_0. 85 (check_note): Use p_align to pass either ELF_T_NHDR or ELF_T_NHDR8 to 86 elf_getdata_rawchunk. 87 * readelf (handle_notes): Likewise. 88 892018-10-24 Mark Wielaard <mark@klomp.org> 90 91 * addr2line.c (print_addrsym): Use elf_getshdrstrndx instead of 92 Ehdr field. 93 942018-10-24 Mark Wielaard <mark@klomp.org> 95 96 * readelf.c (section_name): Remove ehdr argument, lookup shstrndx. 97 (print_debug_abbrev_section): Don't pass ehdr. 98 (print_debug_addr_section): Likewise. 99 (print_decoded_aranges_section): Likewise. 100 (print_debug_aranges_section): Likewise. 101 (print_debug_rnglists_section): Likewise. 102 (print_debug_ranges_section): Likewise. 103 (print_debug_units): Likewise. 104 (print_decoded_line_section): Likewise. 105 (print_debug_line_section): Likewise. 106 (print_debug_loclists_section): Likewise. 107 (print_debug_loc_section): Likewise. 108 (print_debug_macinfo_section): Likewise. 109 (print_debug_macro_section): Likewise. 110 (print_debug_pubnames_section): Likewise. 111 (print_debug_str_section): Liekwise. 112 (print_debug_str_offsets_section): Likewise. 113 (print_gdb_index_section): Likewise. 114 1152018-10-16 Mark Wielaard <mark@klomp.org> 116 117 * readelf.c (print_debug_frame_section): Make sure readp is never 118 greater than cieend. 119 1202018-10-19 Mark Wielaard <mark@klomp.org> 121 122 * dwfl_module_getdwarf.c (adjust_relocs): Check sh_entsize is not 123 zero. 124 (add_new_section_symbols): Likewise. 125 (copy_elided_sections): Likewise. 126 1272018-10-18 Mark Wielaard <mark@klomp.org> 128 129 * size.c (handle_ar): Only close elf if prefix was NULL. 130 1312018-10-18 Mark Wielaard <mark@klomp.org> 132 133 * arlib.c (arlib_add_symbols): Check that sh_entsize is not zero. 134 1352018-10-14 Mark Wielaard <mark@klomp.org> 136 137 * ar.c (do_oper_extract): Assume epoch if ar_date is bogus. 138 1392018-10-14 Mark Wielaard <mark@klomp.org> 140 141 * findtextrel.c (process_file): Check that sh_entsize is not zero. 142 1432018-10-13 Mark Wielaard <mark@klomp.org> 144 145 * readelf.c (print_debug_macro_section): Use elf_getdata. Print 146 decoded flag string. 147 1482018-10-19 Mark Wielaard <mark@klomp.org> 149 150 * unstrip.c (copy_elided_sections): Renumber group section indexes. 151 1522018-10-12 Mark Wielaard <mark@klomp.org> 153 154 * strip.c (handle_elf): Don't remove SHF_GROUP flag from sections. 155 Skip group section flag when renumbering section indexes. 156 * unstrip.c (struct section): Add sig field. 157 (compare_unalloc_sections): Take and use sig1 and sig2 as arguments. 158 (compare_sections): Pass signatures to compare_unalloc_sections. 159 (get_group_sig): New function. 160 (find_alloc_sections_prelink): Set signature. 161 (copy_elided_sections): Likewise and pass them on. 162 (find_unalloc_section): Take and pass signatures. 163 1642018-10-02 Andreas Schwab <schwab@suse.de> 165 166 * strip.c (handle_elf): Handle ADD/SUB relocation. 167 1682018-09-13 Mark Wielaard <mark@klomp.org> 169 170 * readelf.c (print_shdr): Get number of section with elf_getshdrnum. 171 (print_phdr): Likewise. 172 1732018-09-13 Mark Wielaard <mark@klomp.org> 174 175 * strip.c (handle_elf): Check against shstrndx, not e_shstrndx. 176 Explicitly set shdrstrndx for debug file. 177 * unstrip.c (copy_elf): Explicitly copy shstrndx. 178 (find_alloc_sections_prelink): Document shnum usage. 179 1802018-09-13 Mark Wielaard <mark@klomp.org> 181 182 * elflint.c (check_elf_header): Use shnum instead of e_shnum for all 183 checks. 184 (check_symtab): Use shstrndx instead of e_shstrndx to get section 185 names. 186 1872018-09-13 Mark Wielaard <mark@klomp.org> 188 189 * elfcmp.c (main): Get, check and shdrstrndx for section names. 190 1912018-09-12 Mark Wielaard <mark@klomp.org> 192 193 * elfcmp.c (main): Call ebl_section_strip_p without ehdr. 194 * strip.c (handle_elf): Likewise. 195 1962018-09-12 Mark Wielaard <mark@klomp.org> 197 198 * elflint.c (check_symtab): Call ebl_check_special_symbol without 199 ehdr. 200 2012018-07-30 Mark Wielaard <mark@klomp.org> 202 203 * strip.c (handle_elf): Track allocated/unallocated sections seen. Set 204 section offset of unallocated sections after handling all allocated 205 sections. 206 2072018-08-18 Mark Wielaard <mark@klomp.org> 208 209 * readelf.c (print_debug_aranges_section): Make sure there is enough 210 data to read the header segment size. 211 2122018-08-18 Mark Wielaard <mark@klomp.org> 213 214 * elflint.c (check_sysv_hash): Calculate needed size using unsigned 215 long long int to prevent overflow. 216 (check_sysv_hash64): Calculate maxwords used separately before 217 comparison to prevent overflow. 218 2192018-07-24 Mark Wielaard <mark@klomp.org> 220 221 * unstrip.c (compare_unalloc_sections): Also compare sh_size. 222 2232018-07-21 Mark Wielaard <mark@klomp.org> 224 225 * unstrip.c (adjust_all_relocs): Skip SHT_GROUP sections. 226 2272018-07-21 Mark Wielaard <mark@klomp.org> 228 229 * elfcompress.c (get_sections): New function. 230 (process_file): Check whether section needs to change. Don't rewrite 231 file if no section data needs changing. 232 (main): Update 'force' help text. 233 2342018-07-21 Mark Wielaard <mark@klomp.org> 235 236 * elfcompress.c (process_file): Swap fchmod and fchown calls. 237 2382018-07-04 Mark Wielaard <mark@klomp.org> 239 240 * readelf.c (print_debug_addr_section): Rename index var to uidx. 241 (attr_callback): Rename index var to word. 242 (print_debug_str_offsets_section): Rename index var to uidx. 243 2442018-07-04 Ross Burton <ross.burton@intel.com> 245 246 * addr2line.c: Remove error.h include. 247 * ar.c: Likewise. 248 * arlib.c: Likewise and add system.h include. 249 * arlib2.c: Likewise. 250 * elfcmp.c: Likewise. 251 * elfcompress.c: Likewise. 252 * elflint.c: Likewise. 253 * findtextrel.c: Likewise. 254 * nm.c: Likewise. 255 * objdump.c: Likewise. 256 * ranlib.c: Likewise. 257 * readelf.c: Likewise. 258 * stack.c: Likewise. 259 * strings.c: Likewise. 260 * strip.c: Likewise. 261 * unstrip.c: Likewise. 262 2632018-06-25 Mark Wielaard <mark@klomp.org> 264 265 * readelf.c (print_decoded_line_section): Use dwarf_next_lines 266 instead of dwarf_nextcu. 267 (print_debug_line_section): Don't explicitly lookup CU. 268 2692018-06-15 Mark Wielaard <mark@klomp.org> 270 271 * readelf.c (attr_callback): Only print block as expressions if it 272 isn't DW_FORM_data16. 273 2742018-06-12 Mark Wielaard <mark@klomp.org> 275 276 * readelf.c (print_form_data): Check we have 4, not 2, bytes 277 available for DW_FORM_block4. 278 2792018-06-12 Mark Wielaard <mark@klomp.org> 280 281 * readelf.c (print_form_data): Don't increase strreadp after use. 282 Do increase readp for DW_FORM_strx[1234]. 283 2842018-06-16 Mark Wielaard <mark@klomp.org> 285 286 * readelf.c (print_debug_loc_section): Make sure next_off doesn't 287 overflow d_buf. 288 2892018-06-13 Mark Wielaard <mark@klomp.org> 290 291 * readelf.c (die_type_sign_bytes): New function. 292 (attr_callback): Recognized DW_FORM_implicit_cost as signed. Use 293 die_type_sign_bytes to lookup the signedness and size of const 294 values. 295 2962018-06-11 Mark Wielaard <mark@klomp.org> 297 298 * readelf.c (print_form_data): Don't reuse readp and readendp when 299 reading str_offsets section. 300 3012018-06-10 Mark Wielaard <mark@klomp.org> 302 303 * readelf.c (print_form_data): Don't cast value to ptrdiff_t, cast 304 ptrdiff_t to size_t. 305 3062018-06-08 Mark Wielaard <mark@klomp.org> 307 308 * readelf.c (print_debug_rnglists_section): Calculate max_entries 309 instead of needed bytes to prevent overflowing. Always print 310 max_entries (but not more). 311 (print_debug_loclists_section): Likewise. 312 3132018-06-08 Mark Wielaard <mark@klomp.org> 314 315 * readelf.c (print_debug_line_section): Stop printing directories 316 and files when we are at the end of the unit data. 317 3182018-06-07 Mark Wielaard <mark@klomp.org> 319 320 * readelf.c (format_result): Removed. 321 (format_result_size): Removed. 322 (format_dwarf_addr): Renamed to... 323 (print_dwarf_addr): ...this. Simply call printf, don't setup buffer, 324 don't call sprintf. 325 (print_ops): Use print_dwarf_addr instead of format_dwarf_addr. 326 (print_debug_addr_section): Likewise. 327 (print_debug_aranges_section): Likewise. 328 (print_debug_rnglists_section): Likewise. 329 (print_debug_ranges_section): Likewise. 330 (print_debug_frame_section): Likewise. 331 (attr_callback): Likewise. 332 (print_decoded_line_section): Likewise. 333 (print_debug_line_section): Likewise. 334 (print_debug_loclists_section): Likewise. 335 (print_debug_loc_section): Likewise. 336 (print_gdb_index_section): Likewsie. 337 3382018-06-05 Mark Wielaard <mark@klomp.org> 339 340 * readelf.c (print_debug_addr_section): Set unit_length always to 341 (next_unitp - readp) in case we don't have a real header. 342 3432018-06-05 Mark Wielaard <mark@klomp.org> 344 345 * readelf.c (print_debug_loc_section): Set begin to idx when failing 346 to read the start address if DW_LLE_GNU_start_end_entry. 347 3482018-06-05 Mark Wielaard <mark@klomp.org> 349 350 * readelf.c (handle_sysv_hash): Don't leak lengths array when 351 detecting an invalid chain. 352 (handle_sysv_hash64): Likewise. 353 3542018-06-05 Mark Wielaard <mark@klomp.org> 355 356 * readelf.c (print_debug_macro_section): Extend vendor array by one 357 to include max DW_MACRO_hi_user opcode. 358 3592018-06-07 Mark Wielaard <mark@klomp.org> 360 361 * readelf.c (main): Lookup "no" for no_str. 362 (print_debug_abbrev_section): Use yes_str and no_str. 363 (print_form_data): Likewise. 364 3652018-06-04 Mark Wielaard <mark@klomp.org> 366 367 * readelf (format_result): New static char pointer. 368 (format_result_size): New static size_t. 369 (format_dwarf_addr): Calculate max string size, reuse format_result 370 if possible, otherwise realloc. Use sprintf on result, not asprintf. 371 (print_ops): Don't free format_dwarf_addr, make sure result is 372 printed before calling format_dwarf_addr again. 373 (print_debug_addr_section): Likewise. 374 (print_debug_aranges_section): Likewise. 375 (print_debug_rnglists_section): Likewise. 376 (print_debug_ranges_section): Likewise. 377 (print_debug_frame_section): Likewise. 378 (attr_callback): Likewise. 379 (print_decoded_line_section): Likewise. 380 (print_debug_line_section): Likewise. 381 (print_debug_loclists_section): Likewise. 382 (print_debug_loc_section): Likewise. 383 (print_gdb_index_section): Likewsie. 384 3852018-06-04 Mark Wielaard <mark@klomp.org> 386 387 * readelf.c (yes_str): New static char pointer. 388 (no_str): Likewise. 389 (main): Set yes_str and no_str using gettext. 390 (attr_callback): Use yes_str and no_str instead of calling gettext. 391 3922018-06-04 Mark Wielaard <mark@klomp.org> 393 394 * readelf.c (main): Call __fsetlocking (stdout, FSETLOCKING_BYCALLER). 395 3962018-05-31 Mark Wielaard <mark@klomp.org> 397 398 * readelf.c (print_debug_units): Print the dwo name and id when 399 unable to find a .dwo file. 400 4012018-05-31 Mark Wielaard <mark@klomp.org> 402 403 * readelf.c (enum section_e): Make section_types not an alias of 404 section_info. 405 (section_all): Add section_types. 406 (parse_opt): Add both section_info and section_types for "info" 407 and "info+". 408 (print_debug_units): Don't be silent for debug_types. 409 4102018-05-31 Mark Wielaard <mark@klomp.org> 411 412 * readelf.c (attr_callback): Only register section_loc when not 413 looking at a split dwarf from a skeleton. 414 4152018-05-30 Mark Wielaard <mark@klomp.org> 416 417 * readelf.c (print_debug_loc_section): Use correct listptr for 418 locview attribute. 419 4202018-05-31 Mark Wielaard <mark@klomp.org> 421 422 * readelf.c (print_debug_units): Check offset against -1 not ~0ul. 423 4242018-05-29 Mark Wielaard <mark@klomp.org> 425 426 * readelf.c (print_debug_loc_section): Handle GNU DebugFission list 427 entries. 428 4292018-05-29 Mark Wielaard <mark@klomp.org> 430 431 * readelf.c (print_debug): Record and reset section_info status in 432 implicit_debug_sections and print_debug_sections. 433 4342018-05-28 Mark Wielaard <mark@klomp.org> 435 436 * readelf.c (print_debug_units): Turn "Could not find split compile 437 unit" into an Warning instead of an error. 438 4392018-04-29 Mark Wielaard <mark@klomp.org> 440 441 * readelf.c (parse_opt): Request implicit section_info for "str". 442 (known_stroffbases): New static variable. 443 (attr_callbackattr_callback): Handle DW_AT_str_offets_base. 444 (print_debug_str_offsets_section): New function. 445 (print_debug): Handle .debug_str_offsets as section_str. Reset 446 known_stroffbases. 447 4482018-04-27 Mark Wielaard <mark@klomp.org> 449 450 * readelf.c (options): Add addr. 451 (enum section_e): Add section_addr. 452 (section_all): Add section_addr. 453 (parse_opt): Parse "addr". 454 (known_addrbases): New static variable. 455 (get_listptr): New function. 456 (print_debug_addr_section): Likewise. 457 (attr_callback): Handle DW_AT_addr_base and DW_AT_GNU_addr_base. 458 (print_debug): Add NEW_SECTION (addr). Reset known_addrbases. 459 4602018-04-07 Mark Wielaard <mark@klomp.org> 461 462 * readelf.c (attr_callback): Handle DW_FORM_loclistx and 463 DW_AT_segment. 464 4652018-04-12 Mark Wielaard <mark@klomp.org> 466 467 * readelf.c (dwarf_loc_list_encoding_string): New functions. 468 (dwarf_loc_list_encoding_name): Likewise. 469 (known_loclistptr): Renamed and split in two... 470 (known_locsptr): this and ... 471 (known_loclistsptr): this. 472 (listptr_base): Split out... 473 (cudie_base): ...this. 474 (is_split_dwarf): New function. 475 (attr_callback): Handle DW_AT_loclists_base and notice sec_offset 476 in correct list. 477 (print_debug_rnglists_section): Use spit_dwarf_cu_base. 478 (print_debug_loclists_section): New function. 479 (print_debug_loc_section): Use known_locsptr instead of 480 known_loclistptr. 481 (print_debug): Recognize .debug_loclists. Reset known_locsptr and 482 known_loclistsptr. 483 4842018-05-25 Mark Wielaard <mark@klomp.org> 485 486 * readelf.c (DWARF_SKELETON): New constant. 487 (do_not_close_dwfl): New bool. 488 (options): Add dwarf-skeleton. 489 (dwarf_skeleton): New static variable. 490 (parse_opt): Handle DWARF_SKELETON, set dwarf_skeleton. 491 (create_dwfl): New function, with code extracted from... 492 (process_file): ...here. Check do_not_close_dwfl. 493 (is_split_darf): New function. 494 (getone_dwflmod): Likewise. 495 (print_debug): Use new functions to find skeleton DWARF file to use 496 when inspecting .dwo split DWARF file. 497 4982018-04-11 Mark Wielaard <mark@klomp.org> 499 500 * readelf.c (dwarf_range_list_encoding_string): New function. 501 (dwarf_range_list_encoding_name): Likewise. 502 (known_rnglistptr): New static variable. 503 (listptr_cu): New function. 504 (print_debug_rnglists_section): Likewise. 505 (attr_callback): Call notice_listptr for DW_AT_ranges. Handle 506 DW_AT_rnglists_base. Handle DW_FORM_rnglistx. DW_AT_start_scope 507 can also have a rnglist. 508 (print_debug_units): Do (silently) scan split DWARF also for 509 debug_ranges before DWARF5 to catch all rangelistptrs. 510 (print_debug): Recognize .debug_rnglists. Reset known_rnglistptr. 511 5122018-01-21 Mark Wielaard <mark@klomp.org> 513 514 * readelf.c (get_indexed_addr): New function. 515 (print_ops): Handle DW_OP_addrx, DW_OP_GNU_addr_index, 516 DW_OP_constx, DW_OP_GNU_const_index separately and resolve 517 address. 518 (attr_callback): Print index and address for 519 DW_FORM_GNU_addr_index and DW_FORM_addrx[1234]. 520 5212018-01-19 Mark Wielaard <mark@klomp.org> 522 523 * readelf.c (options): Add info+. 524 (show_split_units): New static boolean defaulting to false. 525 (parse_opt): For all (no arg) --debug-dump set show_split_units 526 to yes. For "info+" enable section_info and show_split_units. 527 (attrcb_args): Add is_split field. 528 (attr_callback): Use is_split to format DIE offsets differently. 529 (print_debug_units): Likewise. Get subdie (type or split) only 530 when needed. When not silent reiterate over split DIEs when 531 found. 532 5332018-05-15 Mark Wielaard <mark@klomp.org> 534 535 * readelf.c (print_debug_units): Print unit type and id for any 536 unit type that has it even when version < 5. 537 5382018-05-14 Mark Wielaard <mark@klomp.org> 539 540 * readelf.c (print_ops): Handle DW_OP_GNU_addr_index and 541 DW_OP_GNU_const_index. 542 (attr_callback): Handle DW_FORM_GNU_addr_index as DW_FORM_addrx. 543 Handle DW_FORM_GNU_str_index as DW_FORM_constx. Add as_hex_id. 544 Handle DW_AT_GNU_dwo_id as_hex_id. 545 (print_form_data): Handle DW_FORM_GNU_str_index as DW_FORM_strx. 546 5472018-05-12 Mark Wielaard <mark@klomp.org> 548 549 * readelf.c (print_debug): Also recognize .dwo section name variants. 550 5512018-05-15 Dmitry V. Levin <ldv@altlinux.org> 552 553 * elflint.c (check_elf_header): Fix typo in error diagnostics. 554 5552018-05-15 Mark Wielaard <mark@klomp.org> 556 557 * readelf.c (print_form_data): Cast comparisons against offset_len to 558 ptrdiff_t. 559 (print_debug_line_section): Print uint64_t as PRIu64. 560 5612018-05-11 Mark Wielaard <mark@klomp.org> 562 563 * readelf.c (print_debug_macro_section): Use libdw_valid_user_form. 564 Use print_form_data for strx and sup strings. 565 5662018-05-09 Mark Wielaard <mark@klomp.org> 567 568 * readelf.c (dwarf_line_content_description_string): New function. 569 (dwarf_line_content_description_name): Likewise. 570 (print_bytes): Likewise. 571 (print_form_data): Likewise. Based on code taken from... 572 (print_debug_macro_section): ...here. Now calls print_form_data 573 and str_offsets_base_off. 574 (print_debug_line_section): Parse DWARF5 header, directory and file 575 name tables. 576 5772018-05-12 Mark Wielaard <mark@klomp.org> 578 579 * addr2line.c (main): Add fflush (stdout) after handle_address () 580 when reading from stdin. 581 5822018-04-24 Mark Wielaard <mark@klomp.org> 583 584 * readelf.c (print_debug_aranges_section): Try elf_rawdata if no 585 sectiondata. 586 (print_debug_ranges_section): Likewise. 587 (print_debug_frame_section): Likewise. 588 (print_debug_line_section): Likewise. Check for data == NULL. 589 (print_debug_loc_section): Likewise. 590 (print_debug_macinfo_section): Likewise. 591 (print_debug_macro_section): Likewise. 592 5932018-04-28 Mark Wielaard <mark@klomp.org> 594 595 * readelf.c (print_debug): If .debug_info is needed implicitly by 596 then handle it first before handling any other debug section. 597 (parse_opt): Set implicit_debug_sections to section_info when 598 showing all debug sections. 599 6002018-05-05 Mark Wielaard <mark@klomp.org> 601 602 * readelf.c (attr_callback): Handle DW_FORM_ref_sup4 and 603 DW_FORM_ref_sup8 as references. 604 6052018-04-24 Mark Wielaard <mark@klomp.org> 606 607 * readelf.c (print_debug_str_section): Take raw section data. Don't 608 use dwarf_getstring, but determine start and end of string from 609 offset and section data directly. 610 (print_debug): Handle ".debug_line_str" like ".debug_str". 611 6122018-04-19 Andreas Schwab <schwab@suse.de> 613 614 * elflint.c (valid_e_machine): Add EM_RISCV. 615 6162018-04-16 Mark Wielaard <mark@klomp.org> 617 618 * readelf.c (print_debug_line_section). In advance_pc, advance 619 using op_addr_advance, not op_advance. 620 6212018-04-14 Mark Wielaard <mark@klomp.org> 622 623 * readelf.c (attr_callback): Only show errors when not silent. 624 6252018-03-23 Mark Wielaard <mark@klomp.org> 626 627 * readelf.c (attr_callback): Handle DW_FORM_strx[1234]. 628 6292018-03-22 Mark Wielaard <mark@klomp.org> 630 631 * readelf.c (attr_callback): Handle DW_FORM_addrx[1234]. 632 6332018-03-28 Mark Wielaard <mark@klomp.org> 634 635 * readelf.c (handle_sysv_hash): Break bucket chain after nchain 636 entries are found. 637 (handle_sysv_hash64): Likewise. 638 6392018-03-27 Mark Wielaard <mark@klomp.org> 640 641 * readelf.c (attr_callback): Print dwarf_dieoffset as %PRIx64, 642 not %zx. 643 6442018-03-20 Mark Wielaard <mark@klomp.org> 645 646 * readelf.c (attr_callback): Report error when DW_AT_decl_file or 647 DW_AT_call_file cannot be resolved. 648 6492018-03-06 Mark Wielaard <mark@klomp.org> 650 651 * readelf.c (print_ops): Handle DW_OP_addrx, DW_OP_constx, 652 DW_OP_implicit_pointer, DW_OP_entry_value, DW_OP_const_type, 653 DW_OP_regval_type, DW_OP_deref_type, DW_OP_xderef_type, 654 DW_OP_convert, DW_OP_reinterpret. 655 6562018-03-01 Mark Wielaard <mark@klomp.org> 657 658 * readelf.c (struct listptr): Add attr field. 659 (compare_listptr): Warn when two listptrs for the same offset have 660 different attributes. 661 (notice_listptr): Take attr as argument and add it to listptr. 662 (skip_listptr_hole): New attr argument. 663 (next_listptr_offset): New function. 664 (print_debug_ranges_section): Pass NULL attr to skip_listptr_hole. 665 (attr_callback): Handle DW_AT_GNU_locviews. Call notice_listptr with 666 attr. 667 (print_debug_loc_section): Keep track of which attr is associated with 668 a listptr. If the attr is DW_AT_GNU_locview print view pairs till the 669 next listptr offset. 670 6712018-02-09 Mark Wielaard <mark@klomp.org> 672 673 * elflint.c (check_group): Make sure we can read a complete 674 element when iterating over the group. 675 6762018-02-09 Mark Wielaard <mark@klomp.org> 677 678 * readelf.c (attr_callback): Handle DW_FORM_data16 as Dwarf_Block. 679 6802018-02-09 Mark Wielaard <mark@klomp.org> 681 682 * readelf.c (print_debug_abbrev_section): Print the value of a 683 DW_FORM_implicit_const using dwarf_getabbrevattr_data. 684 (attr_callback): Handle DW_FORM_implicit_const. 685 6862018-01-30 Mark Wielaard <mark@klomp.org> 687 688 * readelf.c (dwarf_unit_string): New function. 689 (dwarf_unit_name): Likewise. 690 (print_debug_units): Use dwarf_get_units and dwarf_cu_die instead 691 of dwarf_next_unit. Print unit type, id and subdie if available. 692 6932018-02-09 Joshua Watt <JPEWhacker@gmail.com> 694 695 * addr2line.c (handle_address): Use FALLTHROUGH macro instead of 696 comment. 697 * elfcompress.c (parse_opt): Likewise. 698 * elflint.c (check_dynamic): Likewise. 699 (check_sections): Likewise. 700 (check_note_data): Likewise. 701 * objdump.c (parse_opt): Likewise. 702 * readelf.c (parse_opt): Likewise. 703 (attr_callback): Likewise. 704 (handle_auxv_note): Likewise. 705 * strings.c (parse_opt): Likewise. 706 * backtrace.c (callback_verify): Likewise. 707 7082018-01-25 Mark Wielaard <mark@klomp.org> 709 710 * readelf.c (print_debug_ranges_section): Initialize cu to last_cu. 711 (print_debug_loc_section): Likewise. 712 7132018-01-01 Mark Wielaard <mark@klomp.org> 714 715 * readelf.c (attr_callback): Use dwarf_form_name for unknown forms. 716 (print_debug_macro_section): Print form using dwarf_form_name. 717 7182017-12-28 Mark Wielaard <mark@klomp.org> 719 720 * readelf.c (print_debug_units): Print DIE offset in error message 721 as hex. 722 7232017-12-18 Mark Wielaard <mark@klomp.org> 724 725 * readelf.c (handle_notes_data): Don't use EXIT_FAILURE in error. 726 Adjust error message depending on whether or not we got data. 727 7282017-12-07 Mark Wielaard <mark@klomp.org> 729 730 * readelf.c (print_ops): Update data pointer and print arguments 731 to DW_OP_call2 and DW_OP_call4 as DIE offsets. 732 7332017-11-29 Mark Wielaard <mark@klomp.org> 734 735 * readelf.c (argp_options): Add "section-groups", 'g'. 736 7372017-11-29 Mark Wielaard <mark@klomp.org> 738 739 * readelf.c (print_debug_loc_section): Print CU base and unresolved 740 addresses. Adjust formatting. 741 7422017-11-29 Mark Wielaard <mark@klomp.org> 743 744 * readelf.c (print_debug_ranges_section): Print CU base and unresolved 745 addresses. Adjust formatting. 746 7472017-11-29 Mark Wielaard <mark@klomp.org> 748 749 * readelf.c (attr_callback): Set valuestr to resolved file name 750 for DW_AT_decl_file and DW_AT_call_file. 751 7522017-11-29 Mark Wielaard <mark@klomp.org> 753 754 * readelf.c (print_debug_units): Print abbrev code after DIE tag. 755 7562017-11-29 Mark Wielaard <mark@klomp.org> 757 758 * readelf.c (print_ops): Use only2 space for index. re-indent +5 759 for DW_OP_GNU_entry_value. 760 7612017-11-21 Mark Wielaard <mark@klomp.org> 762 763 * readelf.c (attr_callback): Print attribute name and form in error 764 message. If only the value cannot be retrieved/resolved don't abort. 765 7662017-10-03 Mark Wielaard <mark@klomp.org> 767 768 * readelf.c (attr_callback): Print DIE offset in error messages. 769 7702017-11-03 Mark Wielaard <mark@klomp.org> 771 772 * readelf.c (print_ops): Handle DW_OP_GNU_variable_value. Print 773 referenced DIE as offset. 774 7752017-09-10 Mark Wielaard <mark@klomp.org> 776 777 * ar.c (do_oper_delete): Remove DEBUG conditional check. 778 (no0print): Return bool. Check snprintf return value. 779 (do_oper_insert): Initialize elf. Remove DEBUG conditional check. 780 Check no0print calls succeed. Explicitly elf_end found elfs. 781 (do_oper_extract): Make sure we don't create an empty variable 782 length array. 783 7842017-09-01 Mark Wielaard <mark@klomp.org> 785 786 * stack.c (main): Replace \v in doc string with \n\n. 787 * unstrip.c (main): Likewise. 788 7892017-05-04 Ulf Hermann <ulf.hermann@qt.io> 790 791 * stack.c: Print pid_t using %lld. 792 7932017-08-18 Ulf Hermann <ulf.hermann@qt.io> 794 795 * readelf.c: Hardcode the signal numbers for non-linux systems. 796 7972017-07-26 Mark Wielaard <mark@klomp.org> 798 799 * readelf.c (print_debug_macro_section): Accept either version 4 or 800 version 5. Use DW_MACRO names instead of DW_MACRO_GNU names. Add 801 minimal support for DW_MACRO_define_sup, DW_MACRO_undef_sup, 802 DW_MACRO_import_sup, DW_MACRO_define_strx and DW_MACRO_undef_strx. 803 8042017-07-26 Mark Wielaard <mark@klomp.org> 805 806 * readelf.c (dwarf_defaulted_string): New function. 807 (dwarf_defaulted_name): Likewise. 808 (attr_callback): Use dwarf_defaulted_name to get value of 809 DW_AT_defaulted. 810 8112017-07-20 Mark Wielaard <mark@klomp.org> 812 813 * strip.c (handle_elf): Deal with data marker symbols pointing to 814 debug sections (they can be removed). 815 8162017-07-14 Mark Wielaard <mark@klomp.org> 817 818 * strip (OPT_KEEP_SECTION): New define. 819 (options): Add documentation for remove-section. Add keep-section. 820 (struct section_pattern): New data type. 821 (keep_secs, remove_secs): New globals. 822 (add_pattern, free_sec_patterns, free_patterns, section_name_matches): 823 New functions. 824 (main): Call free_patterns. 825 (parse_opt): Handle 'R' and OPT_KEEP_SECTION. Check remove_comment 826 on ARGP_KEY_SUCCESS. 827 (handle_elf): Handle and sanity check keep_secs and remove_secs. 828 8292017-06-07 Mark Wielaard <mark@klomp.org> 830 831 * strip.c (handle_elf): Introduce new handle_elf boolean. Use it to 832 determine whether to create an output and/or debug file. Remove new 833 output file on error. 834 8352017-06-06 Mark Wielaard <mark@klomp.org> 836 837 * strip.c (handle_elf): Assume e_shstrndx section can be removed. 838 8392017-04-20 Ulf Hermann <ulf.hermann@qt.io> 840 841 * readelf.c: Include strings.h. 842 8432017-04-20 Ulf Hermann <ulf.hermann@qt.io> 844 845 * unstrip.c: Check shnum for 0 before subtracting from it. 846 8472017-04-20 Ulf Hermann <ulf.hermann@qt.io> 848 849 * readelf.c: Replace YESSTR and NOSTR with gettext ("yes") and 850 gettext ("no"), respectively. 851 8522017-04-05 Mark Wielaard <mark@klomp.org> 853 854 * elflint.c (check_elf_header): Decompress all sections. 855 8562017-03-28 Mark Wielaard <mark@klomp.org> 857 858 * elflint (check_group): Don't check if there is no flag word. 859 8602017-03-27 Mark Wielaard <mark@klomp.org> 861 862 * elflint.c (check_elf_header): Sanity check phnum and shnum. 863 8642017-03-27 Mark Wielaard <mark@klomp.org> 865 866 * elflint.c (check_sysv_hash): Return early if section size is 867 too small. 868 (check_sysv_hash64): Likewise. 869 (check_hash): Calculate expect_entsize to check section size. 870 8712017-03-27 Mark Wielaard <mark@klomp.org> 872 873 * elflint.c (check_symtab_shndx): Check data->d_size. 874 8752017-03-24 Mark Wielaard <mjw@redhat.com> 876 877 * elfcmp.c (main): If n_namesz == 0 then the note name data is the 878 empty string. 879 * readelf.c (handle_notes_data): Likewise. 880 8812017-03-24 Mark Wielaard <mjw@redhat.com> 882 883 * readelf.c (handle_gnu_hash): Check inner < max_nsyms before 884 indexing into chain array. 885 8862017-02-16 Ulf Hermann <ulf.hermann@qt.io> 887 888 * addr2line.c: Include printversion.h 889 * ar.c: Likewise. 890 * elflint.c: Likewise. 891 * nm.c: Likewise. 892 * objdump.c: Likewise. 893 * ranlib.c: Likewise. 894 * readelf.c: Likewise. 895 * size.c: Likewise. 896 * stack.c: Likewise. 897 * strings.c: Likewise. 898 * strip.c: Likewise. 899 * elfcmp.c: Include printversion.h, remove system.h include. 900 * elfcompress.c: Likewise. 901 * findtextrel.c: Likewise. 902 * unstrip.c: Likewise. 903 9042017-02-14 Ulf Hermann <ulf.hermann@qt.io> 905 906 * nm.c: Include color.h. 907 * objdump.c: Likewise. 908 9092016-12-24 Mark Wielaard <mark@klomp.org> 910 911 * Makefile.am (findtextrel_LDADD): Add $(libeu). 912 (addr2line_LDADD): Likewise. 913 (elfcmp_LDADD): Likewise. 914 * addr2line.c (print_version): Removed. 915 * ar.c (print_version): Likewise. 916 * elfcmp.c (print_version): Likewise. 917 * elfcompress.c (print_version): Likewise. 918 * elflint.c (print_version): Likewise. 919 * findtextrel.c (print_version): Likewise. 920 * nm.c (print_version): Likewise. 921 * objdump.c: Likewise. 922 * ranlib.c: Likewise. 923 * readelf.c: Likewise. 924 * size.c: Likewise. 925 * stack.c: Likewise. 926 * strings.c: Likewise. 927 * strip.c: Likewise. 928 * unstrip.c: Likewise. 929 9302016-11-17 Mark Wielaard <mjw@redhat.com> 931 932 * readelf.c (options): Add optional arg SECTION for symbols. 933 (symbol_table_section): New static variable. 934 (parse_opt): Set symbol_table_section on 's'. 935 (print_symtab): Filter on symbol_table_section name is set. 936 9372016-11-10 Mark Wielaard <mjw@redhat.com> 938 939 * ar.c (write_member): Make sure tmpbuf is large enough to contain 940 a starting '/' and ending '\0' char. 941 (do_oper_insert): Likewise. 942 * arlib.c (arlib_finalize): Format tmpbuf as PRId32 decimal. 943 9442016-11-02 Mark Wielaard <mjw@redhat.com> 945 946 * addr2line.c (handle_address): Add fallthrough comment. 947 * elfcompress.c (parse_opt): Adjust fallthrough comment. 948 * elflint.c (parse_opt): Add missing break after 'd' case. 949 (check_sections): Add fallthrough comments. 950 * objdump.c (parse_opt): Add explantion for fallthrough comment. 951 9522016-10-22 Kevin Cernekee <cernekee@chromium.org> 953 954 * unstrip.c: Fix "invalid string offset" error caused by using the 955 unstripped .symtab with the stripped .strtab. 956 9572016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> 958 959 * arlib.c: Remove system.h include, add libeu.h include. 960 * arlib2.c: Remove sys/param.h include. 961 * elfcompress.c: Add libeu.h include. 962 * elflint.c: Remove sys/param.h include, add libeu.h include. 963 * nm.c: Likewise. 964 * objdump.c: Likewise. 965 * ranlib.c: Likewise. 966 * readelf.c: Likewise. 967 * size.c: Remove sys/param.h include. 968 * strings.c: Likewise, add libeu.h include. 969 * strip.c: Likewise. 970 * unstrip.c: Likewise. 971 9722016-10-06 Mark Wielaard <mjw@redhat.com> 973 974 * strip.c (handle_elf): Don't remove real symbols from allocated 975 symbol tables. 976 9772016-08-25 Mark Wielaard <mjw@redhat.com> 978 979 * strip.c (handle_elf): Recompress with ELF_CHF_FORCE. 980 9812016-08-06 Mark Wielaard <mjw@redhat.com> 982 983 * strip.c (handle_elf): Uncompress and recompress relocation target 984 section if necessary. 985 9862016-07-08 Mark Wielaard <mjw@redhat.com> 987 988 * Makefile.am (strip_LDADD): Add libdw. 989 * elfcompress.c (process_file): Use dwelf_strtab functions instead of 990 ebl_strtab. 991 * strip.c (handle_elf): Likewise. 992 * unstrip.c (new_shstrtab): Likewise. 993 9942016-07-06 Mark Wielaard <mjw@redhat.com> 995 996 * elf32-i386.script, i386_ld.c, ld.c, ld.h, ldgeneric.c, ldlex.l, 997 ldscript.y, libld_elf_i386.map, none_ld.c, sectionhash.c, 998 sectionhash.h, symbolhash.c, symbolhash.h, unaligned.h, 999 versionhash.c, versionhash.h, xelf.h: Removed. 1000 * Makefile.am (YACC): Removed. 1001 (AM_YFLAGS): Removed. 1002 (AM_LFLAGS): Removed. 1003 (native_ld): Removed. 1004 (base_cpu): Removed. 1005 (bin_PROGRAMS): Removed ld. 1006 (ld_dsos): Removed. 1007 (ld_SOURCES): Removed. 1008 (noinst_LIBRARIES): Only libar.a. 1009 (EXTRA_DIST): Just arlib.h and debugpred.h. 1010 (ld_LDADD): Removed. 1011 (ld_LDFLAGS): Removed. 1012 (ldlex.o): Removed. 1013 (ldscript.h): Removed. 1014 (libld*): Removed. 1015 (CLEANFILES): Just *.gconv. 1016 (MAINTAINERCLEANFILES): Removed. 1017 10182016-07-06 Mark Wielaard <mjw@redhat.com> 1019 1020 * unstrip.c (copy_elided_sections): Use unstripped_strent[] from 1021 index zero, instead of one. 1022 10232016-06-28 Richard Henderson <rth@redhat.com> 1024 1025 * elflint.c (valid_e_machine): Add EM_BPF. 1026 10272016-04-11 David Abdurachmanov <davidlt@cern.ch> 1028 1029 * elfcmp.c (main): Fix self-comparison error with GCC 6. 1030 10312016-03-21 Mark Wielaard <mjw@redhat.com> 1032 1033 * nm.c (show_symbols): Check for malloc size argument overflow. 1034 10352016-02-13 Mark Wielaard <mjw@redhat.com> 1036 1037 * readelf.c (print_scngrp): Call error when gelf_getshdr fails. 1038 (print_symtab): Likewise. 1039 (handle_hash): Likewise. 1040 (dump_data_section): Print a warning if decompressing fails. 1041 (print_string_section): Likewise. 1042 10432016-02-13 Mark Wielaard <mjw@redhat.com> 1044 1045 * elfcompress.c (parse_opt): Don't fallthrough after processing -q. 1046 10472016-02-12 Mark Wielaard <mjw@redhat.com> 1048 1049 * strip.c (handle_elf): Correct elf_assert shndxdata check. 1050 10512016-02-09 Mark Wielaard <mjw@redhat.com> 1052 1053 * readelf.c (read_encoded): Move up. 1054 (print_cfa_program): Add encoding argument. Use it for read_encoded 1055 when reading DW_CFA_set_loc op. 1056 (print_debug_frame_section): Pass fde_encoding to print_cfa_program. 1057 10582016-02-09 Mark Wielaard <mjw@redhat.com> 1059 1060 * elflint.c (compare_hash_gnu_hash): Check hash sh_entsize against 1061 sizeof (Elf64_Xword). Correct invalid sh_entsize error message 1062 section idx and name. 1063 10642016-01-13 Mark Wielaard <mjw@redhat.com> 1065 1066 * elflint.c (check_elf_header): Recognize ELFOSABI_FREEBSD. 1067 10682016-01-08 Mark Wielaard <mjw@redhat.com> 1069 1070 * elfcompress.c (compress_section): Use %zu to print size_t. 1071 * readelf.c (print_shdr): Use %zx to print size_t. 1072 10732015-12-16 Mark Wielaard <mjw@redhat.com> 1074 1075 * elfcompress.c: New file. 1076 * Makefile.am (bin_PROGRAMS): Add elfcompress. 1077 (elfcompress_LDADD): New variable. 1078 10792015-12-18 Mark Wielaard <mjw@redhat.com> 1080 1081 * elflint.c (section_flags_string): Add NEWFLAG COMPRESSED. 1082 (check_sections): SHF_COMPRESSED can be on any special section. 1083 SHF_COMPRESSED is a valid section flag. SHF_COMPRESSED cannot 1084 be used together with SHF_ALLOC or with SHT_NOBITS. Should have 1085 a valid Chdr. 1086 10872015-10-20 Mark Wielaard <mjw@redhat.com> 1088 1089 * readelf.c (options): Expand -z help text. 1090 (dump_data_section): Check whether we need and can decompress section 1091 data and call elf_rawzdata if so, 1092 (print_string_section): Likewise. 1093 (elf_contains_chdrs): New function. 1094 (process_elf_file): Rename print_unrelocated to print_unchanged, 1095 use elf_contains_chdrs. 1096 (print_scngrp): Check whether section is compressed before use. 1097 (print_symtab): Likewise. 1098 (handle_hash): Likewise. 1099 11002015-10-16 Mark Wielaard <mjw@redhat.com> 1101 1102 * readelf.c (argp_option): Describe --decompress,-z. 1103 (print_decompress): New bool. 1104 (parse_opt): Handle -z. 1105 (elf_ch_type_name): New function. 1106 (print_shdr): Print section compress information. 1107 11082015-12-31 Mark Wielaard <mjw@redhat.com> 1109 1110 * elflint.c (check_symtab): Add _edata and _end (plus extra underscore 1111 variants) to to the list of possibly dangling symbols. 1112 11132015-12-02 Mark Wielaard <mjw@redhat.com> 1114 1115 * nm.c (process_file): Accept fd and pass it on. 1116 (handle_elf): Likewise. 1117 (find_no_debuginfo): New. 1118 (struct getdbg): Likewise. 1119 (getdbg_dwflmod): Likewise. 1120 (show_symbols): Take fd. If the file is ET_REL use libdwfl to get 1121 the relocated Dwarf. 1122 11232015-12-02 Mark Wielaard <mjw@redhat.com> 1124 1125 * nm.c (get_local_names): Check for duplicates in local_root tree. 1126 11272015-12-02 Mark Wielaard <mjw@redhat.com> 1128 1129 * unstrip.c (struct data_list): New. 1130 (new_data_list): Likewise. 1131 (record_new_data): Likewise. 1132 (free_new_data): Likewise. 1133 (adjust_relocs): Call record_new_data. 1134 (add_new_section_symbols): Likewise. 1135 (copy_elided_sections): Call free_new_data. 1136 11372015-12-01 Mark Wielaard <mjw@redhat.com> 1138 1139 * elfcmp.c (main): Close ebl1 and ebl2 backends. 1140 11412015-10-16 Mark Wielaard <mjw@redhat.com> 1142 1143 * Makefile.am [BUILD_STATIC](libdw): Add -lz. 1144 [BUILD_STATIC](libelf): Likewise. 1145 11462015-10-16 Mark Wielaard <mjw@redhat.com> 1147 1148 * elflint.c (check_symtab): Don't check TLS symbol value against TLS 1149 phdr offset in debuginfo files. 1150 (check_sections): Don't try to match section offsets to phdrs offsets 1151 in debuginfo files. 1152 11532015-10-16 Mark Wielaard <mjw@redhat.com> 1154 1155 * elflint.c (check_reloc_shdr): Reject only desthdrs if they have both 1156 SHF_MERGE and SHF_STRINGS set. 1157 11582015-10-13 Jose E. Marchesi <jose.marchesi@oracle.com> 1159 1160 * elflint.c (check_sections): Do not rely on 1161 ebl_check_special_section when checking debuginfo files. Also 1162 check that the type of WE sections in debuginfo files is NOBITS. 1163 11642015-10-13 Mark Wielaard <mjw@redhat.com> 1165 1166 * elflint.c (check_program_header): Check relro flags are a subset 1167 of the load segment if they don't fully overlap. 1168 11692015-10-07 Mark Wielaard <mjw@redhat.com> 1170 1171 * Makefile.am (ldlex_no_Wstack_usage): New. 1172 * ldlex.l ([RWX]): Make cnt unsigned. 1173 11742015-10-09 Josh Stone <jistone@redhat.com> 1175 1176 * elflint.c (main): Replace stat64 and fstat64 with stat and fstat. 1177 * readelf.c (process_file): Likewise. 1178 (process_elf_file): Replace off64_t with off_t. 1179 * findtextrel.c (process_file): Replace open64 with open. 1180 * ld.c (main): Replace sizeof (off64_t) with 8. 1181 * strings.c: Replace off64_t with off_t throughout. 1182 (main): Replace stat64 and fstat64 with stat and fstat. 1183 (map_file): Replace mmap64 with mmap. 1184 (read_block): Likewise, and replace lseek64 with lseek. 1185 * strip.c (handle_elf): Replace ftruncate64 with ftruncate. 1186 (process_file): Replace stat64 and fstat64 with stat and fstat. 1187 * unstrip.c (parse_opt): Replace stat64 with stat. 1188 (handle_file): Replace open64 with open. 1189 (open_file): Likewise. 1190 11912015-10-08 Chih-Hung Hsieh <chh@google.com> 1192 1193 * ld.c (determine_output_format): Move recursive nested 1194 function "try" to file scope. 1195 11962015-10-04 Mark Wielaard <mjw@redhat.com> 1197 1198 * strip.c (handle_elf): Only sanity check section symbols to not 1199 kept discarded sections if we are creating a debug file. 1200 12012015-10-07 Mark Wielaard <mjw@redhat.com> 1202 1203 * unstrip.c (MAX): Removed. 1204 (find_alloc_sections_prelink): Allocate exact amount of bytes for 1205 shdrs. 1206 12072015-10-05 Chih-Hung Hsieh <chh@google.com> 1208 1209 * unstrip.c (find_alloc_sections_prelink): Do not allocate 1210 on stack union types with variable length arrays; use xmalloc 1211 for such dynamic sized objects. 1212 * readelf.c (handle_core_item): Likewise, but use alloca 1213 for small variable size data object and add assert(count < 128). 1214 12152015-10-05 Josh Stone <jistone@redhat.com> 1216 1217 * Makefile.am (libld_elf_i386.so): Add AM_V_CCLD silencer. 1218 (.deps/none_ld.Po): Always silence the dummy command. 1219 (make-debug-archive): Add AM_V_GEN and AM_V_at silencers. 1220 12212015-10-02 Mark Wielaard <mjw@redhat.com> 1222 1223 * unstrip.c (copy_elided_sections): Use SH_INFO_LINK_P, not just 1224 SHF_INFO_LINK. 1225 12262015-10-02 Mark Wielaard <mjw@redhat.com> 1227 1228 * strip.c (handle_elf): Don't move around allocated NOBITS sections. 1229 Don't just mark the section header string table as unused. 1230 * unstrip.c (copy_elided_sections): Add header names to strtab if 1231 shstrndx equals the symtab strtabndx. 1232 12332015-09-22 Mark Wielaard <mjw@redhat.com> 1234 1235 * strip.c (cleanup_debug): Remove old-style function definitions. 1236 12372015-09-09 Chih-Hung Hsieh <chh@google.com> 1238 1239 * readelf.c (print_debug_exception_table): Initialize variable before 1240 it is used, because compiler does not know that error never returns. 1241 (dump_arhive_index): Likewise. 1242 12432015-09-04 Chih-Hung Hsieh <chh@google.com> 1244 1245 * elflint.c (check_group): Replace %Z length modifier with %z. 1246 (check_note_data): Likewise. 1247 * findtextrel.c (process_file): Likewise. 1248 * readelf.c (handle_dynamic): Likewise. 1249 (handle_symtab): Likewise. 1250 (handle_verneed): Likewise. 1251 (handle_verdef): Likewise. 1252 (handle_versym): Likewise. 1253 (print_hash_info): Likewise. 1254 (print_decoded_aranges_section): Likewise. 1255 (print_debug_aranges_section): Likewise. 1256 (print_debug_line_section): Likewise. 1257 (hex_dump): Likewise. 1258 (dump_data_section): Likewise. 1259 (print_string_section): Likewise. 1260 (dump_archive_index): Likewise. 1261 * unstrip.c (adjust_relocs): Likewise. 1262 (collect_symbols): likewise. 1263 (get_section_name): Likewise. 1264 (find_alloc_sections_prelink): Likewise. 1265 (copy_elided_sections): Likewise. 1266 * ldscript.y (add_id_list): Add missing '%s'. 1267 12682015-09-03 Mark Wielaard <mjw@redhat.com> 1269 1270 * readelf.c (handle_core_item): Handle right shift >= 32 bits. 1271 12722015-08-11 Mark Wielaard <mjw@redhat.com> 1273 1274 * elflint.c (check_sections): When gnuld and a NOBITS section falls 1275 inside a segment make sure any ELF file contents is zero. 1276 12772015-07-29 Mark Wielaard <mjw@redhat.com> 1278 1279 * unstrip.c (sections_flags_match): New function. 1280 (sections_match): Use sections_flags_match. 1281 (find_alloc_sections_prelink): Only clear matched sections if there 1282 is an undo section. 1283 (copy_elided_sections): Add SHF_INFO_LINK to shdr_mem.sh_flags if 1284 necessary. 1285 12862015-06-27 Pino Toscano <toscano.pino@tiscali.it> 1287 1288 * src/strings.c: Define MAP_POPULATE if not defined already. 1289 12902015-06-27 Mark Wielaard <mjw@redhat.com> 1291 1292 * nm.c (show_symbols): First call elf_getdata, then allocate memory. 1293 12942015-06-18 Mark Wielaard <mjw@redhat.com> 1295 1296 * findtextrel.c (process_file): Free segments after use. 1297 12982015-06-18 Mark Wielaard <mjw@redhat.com> 1299 1300 * readelf.c (print_phdr): Make sure phdr2_mem lifetime/scope equals 1301 phdr2 pointer. 1302 13032015-06-18 Mark Wielaard <mjw@redhat.com> 1304 1305 * readelf.c (handle_gnu_hash): Free lengths on invalid_data. 1306 13072015-06-18 Mark Wielaard <mjw@redhat.com> 1308 1309 * elflint.c (check_symtab): Only check the PT_TLS phdr if it actually 1310 exists. Warn otherwise. 1311 13122015-06-18 Mark Wielaard <mjw@redhat.com> 1313 1314 * nm.c (show_symbols): Check sizeof (sym_mem[0]), not GElf_Sym to 1315 known whether or not we stack allocated memory. 1316 13172015-06-18 Mark Wielaard <mjw@redhat.com> 1318 1319 * strings.c (readelf): Use "<unknown>" if we cannot retrieve section 1320 name. 1321 13222015-06-09 Mark Wielaard <mjw@redhat.com> 1323 1324 * addr2line.c (print_dwarf_function): Always free scopes before 1325 returning. 1326 13272015-06-09 Mark Wielaard <mjw@redhat.com> 1328 1329 * strip.c (handle_ar): Mark as unused. 1330 (process_file): Produce an error when trying to handle an ar. 1331 13322015-05-30 Mark Wielaard <mjw@redhat.com> 1333 1334 * elfcmp.c (main): Only call memcmp when d_size != 0. 1335 13362015-05-23 Mark Wielaard <mjw@redhat.com> 1337 1338 * Makefile.am: Define ldgeneric, readelf, nm, size, strip, elflint, 1339 findtextrel, elfcmp objdump, ranlib, ar and unstrip no_Wstack_usage. 1340 13412015-05-21 Mark Wielaard <mjw@redhat.com> 1342 1343 * addr2line.c (handle_address): Set scopes to NULL after free. 1344 13452015-05-20 Mark Wielaard <mjw@redhat.com> 1346 1347 * addr2line.c (OPT_PRETTY): New constant define. 1348 (argp_option): Add "pretty-print". 1349 (pretty): New static bool. 1350 (parse_opt): Set pretty. 1351 (print_dwarf_function): Adjust output when pretty is set. 1352 (print_addrsym): Likewise. 1353 (handle_address): Likewise. 1354 13552015-05-20 Mark Wielaard <mjw@redhat.com> 1356 1357 * Makefile.am (addr2line_LDADD): Add demanglelib. 1358 * addr2line.c (argp_option): Move demangle under output format. 1359 (demangle): New static bool. 1360 (demangle_buffer_len): New static size_t. 1361 (demangle_buffer): New static char *. 1362 (main): free demangle_buffer. 1363 (parse_opt): Set demangle. 1364 (symname): New static function. 1365 (get_diename): Use symname. 1366 (print_dwarf_function): Likewise. 1367 (print_addrsym): Likewise. 1368 (handle_address): Likewise. 1369 13702015-05-20 Mark Wielaard <mjw@redhat.com> 1371 1372 * addr2line.c (argp_option): Add "addresses", 'a'. 1373 (print_addresses): New static bool. 1374 (parse_opt): Set print_addresses. 1375 (get_addr_width): New static function. 1376 (handle_address): Print address if print_addresses is true. 1377 13782015-05-20 Mark Wielaard <mjw@redhat.com> 1379 1380 * addr2line.c (handle_address): Call strtoumax with base 16. Make 1381 sure all input has been processed. 1382 13832015-05-20 Mark Wielaard <mjw@redhat.com> 1384 1385 * addr2line (argp_option): Group 'section' under "Input format 1386 options". 1387 13882015-05-12 Mark Wielaard <mjw@redhat.com> 1389 1390 * strip.c (debug_fd): New static variable. 1391 (tmp_debug_fname): Likewise. 1392 (cleanup_debug): New function using the above to clean up temporary 1393 debug file. 1394 (INTERNAL_ERROR): Call cleanup_debug. 1395 (handle_elf): Use debug_fd and tmp_debug_fname statics and call 1396 cleanup_debug before any error. Use output_fname instead of fname in 1397 error messages when it exists (-o was given). SHT_NOBITS sections 1398 can also be moved freely even if SHF_ALLOC is set. Add various 1399 sanity checks. Use elf_assert instead of plain assert. 1400 14012015-05-08 Mark Wielaard <mjw@redhat.com> 1402 1403 * nm.c (show_symbols): Call gelf_fsize with EV_CURRENT. 1404 * strip.c (handle_elf): Likewise. 1405 14062015-05-06 Mark Wielaard <mjw@redhat.com> 1407 1408 * elflint.c (check_gnu_hash): Return early when 2nd hash function 1409 shift too big. Check there is enough data available. Make sure 1410 bitmask_words is not zero. 1411 (check_verdef): Use Elf64_Word for shdr->sh_info cnt. 1412 (check_verneed): Likewise. 1413 (check_attributes): Break when vendor name isn't terminated. 1414 Add overflow check for subsection_len. 1415 14162015-05-05 Mark Wielaard <mjw@redhat.com> 1417 1418 * nm.c (show_symbols): Handle dwarf_linesrc returning NULL. 1419 14202015-05-04 Max Filippov <jcmvbkbc@gmail.com> 1421 1422 * ar.c (do_oper_extract): Replace struct timeval with struct timespec 1423 and futimes with futimens. 1424 * strip.c (process_file): Replace struct timeval with struct timespec. 1425 (handle_elf, handle_ar): Replace struct timeval with struct timespec 1426 in prototype. Replace futimes with futimens. 1427 14282015-05-04 Max Filippov <jcmvbkbc@gmail.com> 1429 1430 * addr2line.c (main): Drop mtrace() call and #include <mcheck.h>. 1431 * ar.c: Likewise. 1432 * ld.c: Likewise. 1433 * nm.c: Likewise. 1434 * objdump.c: Likewise. 1435 * ranlib.c: Likewise. 1436 * size.c: Likewise. 1437 * strip.c: Likewise. 1438 * unstrip.c: Likewise. 1439 14402015-05-04 Anthony G. Basile <blueness@gentoo.org> 1441 1442 * Makefile.am (readelf_LDADD, nm_LDADD, size_LDADD, strip_LDADD) 1443 (ld_LDADD, elflint_LDADD, findtextrel_LDADD, addr2line_LDADD) 1444 (elfcmp_LDADD, objdump_LDADD, ranlib_LDADD, strings_LDADD) 1445 (ar_LDADD, unstrip_LDADD, stack_LDADD): Append $(argp_LDADD). 1446 14472015-03-22 Mark Wielaard <mjw@redhat.com> 1448 1449 * readelf.c (print_debug_frame_section): Cast start to Dwarf_Off 1450 before subtracting cie_id. And cast cie_offset to Dwarf_Off before 1451 comparison. 1452 14532015-03-22 Mark Wielaard <mjw@redhat.com> 1454 1455 * readelf.c (print_gdb_index_section): Check all offsets used 1456 against section d_size. 1457 14582015-03-17 Mark Wielaard <mjw@redhat.com> 1459 1460 * readelf.c (print_debug): Don't return, but always use dummy_dbg. 1461 14622015-03-17 Mark Wielaard <mjw@redhat.com> 1463 1464 * readelf.c (print_gdb_index_section): Add overflow checking for 1465 dataend checks. 1466 14672015-03-14 Mark Wielaard <mjw@redhat.com> 1468 1469 * nm.c (INTERNAL_ERROR): Remove __DATE__. 1470 * objdump.c (INTERNAL_ERROR): Likewise. 1471 * size.c (INTERNAL_ERROR): Likewise. 1472 * strip.c (INTERNAL_ERROR): Likewise. 1473 14742015-03-18 Petr Machata <pmachata@redhat.com> 1475 1476 * readelf.c (dwarf_tag_string, dwarf_attr_string) 1477 (dwarf_form_string, dwarf_lang_string, dwarf_inline_string) 1478 (dwarf_encoding_string, dwarf_access_string) 1479 (dwarf_visibility_string, dwarf_virtuality_string) 1480 (dwarf_identifier_case_string, dwarf_calling_convention_string) 1481 (dwarf_ordering_string, dwarf_discr_list_string) 1482 (dwarf_locexpr_opcode_string): Adjust uses of know-dwarf.h macros 1483 to match the API changes. 1484 14852015-03-09 Mark Wielaard <mjw@redhat.com> 1486 1487 * elflint.c (compare_hash_gnu_hash): Correct gnu_symbias usage. 1488 14892015-01-03 Mark Wielaard <mjw@redhat.com> 1490 1491 * elfcmp (main): Check section name is not NULL. Check sh_entsize 1492 is not zero for symbol tables. Check phdrs are not NULL. 1493 (search_for_copy_reloc): Check sh_entsize is not zero. 1494 14952014-12-30 Mark Wielaard <mjw@redhat.com> 1496 1497 * elflint.c (check_scn_group): Check d_buf and name are not NULL. 1498 (is_rel_dyn): Check d is not NULL. Check shdr->sh_entsize is not 1499 zero. 1500 (check_dynamic): Check strshdr is not NULL. Check d_tag is positive. 1501 (check_symtab_shndx): Check symshdr and data->d_buf are not NULL. 1502 Check shdr and symshdr sh_entsize are not zero. 1503 (check_gnu_hash): Make sure maskidx is smaller than bitmask_words. 1504 Check symshdr->sh_entsize is not zero. Check data->d_buf is not 1505 NULL. 1506 (compare_hash_gnu_hash): Check sections d_buf are not NULL. 1507 Check section data is large enough. Use gnu_symbias. 1508 (check_group): Check section val is valid. 1509 (has_copy_reloc): Check sh_entsize is not zero. 1510 (check_versym): Likewise. 1511 (unknown_dependency_p): Likewise. 1512 (check_verneed): Break on invalid ref or offset. Don't assert. 1513 Report error when next offset is zero, but more vers expected. 1514 (check_verdef): Likewise. 1515 (check_attributes): Make sure d_buf is not NULL. 1516 (check_note): Likewise. 1517 (check_note_section): Likewise. 1518 (check_program_header): Make sure section name is not NULL. 1519 15202014-12-26 Mark Wielaard <mjw@redhat.com> 1521 1522 * strings.c (read_elf): Produce error when section data falls outside 1523 file. 1524 15252014-12-26 Mark Wielaard <mjw@redhat.com> 1526 1527 * nm.c (show_symbols): Guard against divide by zero in error check. 1528 Add section index number in error message. 1529 15302014-12-26 Mark Wielaard <mjw@redhat.com> 1531 1532 * nm.c (handle_ar): Skip over /SYM64/ entries. 1533 15342014-12-26 Mark Wielaard <mjw@redhat.com> 1535 1536 * nm.c (handle_ar): Break on arsym with invalid offset. 1537 15382014-12-20 Mark Wielaard <mjw@redhat.com> 1539 1540 * readelf.c (print_debug_macinfo_section): Mark cus sentinel files 1541 as -1 non-existent. Check macoff against sentinel cus. 1542 15432014-12-20 Mark Wielaard <mjw@redhat.com> 1544 1545 * readelf.c (print_debug_exception_table): Add max_action overflow 1546 check. Check action_table_end before reading slib128. Check 1547 max_ar_filter underflow. 1548 15492014-12-18 Ulrich Drepper <drepper@gmail.com> 1550 1551 * Makefile.am: Suppress output of textrel_check command. 1552 15532014-12-17 Mark Wielaard <mjw@redhat.com> 1554 1555 * readelf.c (print_cfa_program): Add bounds check before each op that 1556 takes at least one argument. 1557 15582014-12-16 Mark Wielaard <mjw@redhat.com> 1559 1560 * readelf.c (print_decoded_line_section): Print dwarf_errmsg if 1561 dwarf_onesrcline or dwarf_linesrc fails. 1562 15632014-12-16 Mark Wielaard <mjw@redhat.com> 1564 1565 * readelf.c (print_debug_line_section): Correct overflow check for 1566 unit_length. 1567 (print_debug_aranges_section): Correct overflow check for length. 1568 15692014-12-15 Mark Wielaard <mjw@redhat.com> 1570 1571 * readelf.c (notice_listptr): Return false if offset doesn't fit 1572 in 61-bits. 1573 (attr_callback): Warn if loclist or rangelist offset doesn't fit. 1574 15752014-12-15 Mark Wielaard <mjw@redhat.com> 1576 1577 * readelf.c (print_ops): Don't assert when addr_size or ref_size 1578 is not 4 or 8, just report invalid data. 1579 15802014-12-15 Mark Wielaard <mjw@redhat.com> 1581 1582 * readelf.c (print_gdb_index_section): Add more bounds checks. 1583 15842014-12-15 Mark Wielaard <mjw@redhat.com> 1585 1586 * readelf.c (print_debug_line_section): Check there is enough room 1587 for DW_LNE_set_address argument. Make sure there is enough room 1588 for the the initial unit_length. 1589 15902014-12-14 Mark Wielaard <mjw@redhat.com> 1591 1592 * elflint.c (check_attributes): Call get_uleb128 with end pointer. 1593 * readelf.c (print_attributes): Likewise. 1594 (print_ops): Likewise and also for get_sleb128. 1595 (print_cfa_program): Likewise and add more readp bounds checks. 1596 (read_encoded): Likewise. 1597 (print_debug_frame_section): Likewise. 1598 (print_debug_line_section): Likewise. 1599 (print_debug_macinfo_section): Likewise. 1600 (print_debug_macro_section): Likewise. 1601 (print_debug_exception_table): Likewise. 1602 16032014-12-16 Mark Wielaard <mjw@redhat.com> 1604 1605 * elfcmp.c (compare_Elf32_Word): Make sure (unsigned) Elf32_Word 1606 difference doesn't wrap around before returning as int. 1607 16082014-12-11 Mark Wielaard <mjw@redhat.com> 1609 1610 * readelf.c (print_debug_exception_table): Check TType base offset 1611 and Action table are sane. 1612 16132014-12-11 Mark Wielaard <mjw@redhat.com> 1614 1615 * readelf.c (print_debug_frame_section): Check number of augmentation 1616 chars to print. 1617 16182014-12-09 Mark Wielaard <mjw@redhat.com> 1619 1620 * readelf.c (handle_file_note): Check count fits data section and 1621 doesn't overflow fptr. 1622 16232014-12-08 Mark Wielaard <mjw@redhat.com> 1624 1625 * readelf.c (print_debug_exception_table): Report invalid data if 1626 action table doesn't immediately follow call site table. 1627 16282014-12-10 Josh Stone <jistone@redhat.com> 1629 1630 * addr2line.c (get_diename): New, get linkage_name or name. 1631 * addr2line.c (print_dwarf_function): Use get_diename. 1632 * addr2line.c (handle_address): Likewise. 1633 * addr2line.c (print_diesym): Removed. 1634 16352014-12-10 Josh Stone <jistone@redhat.com> 1636 1637 * addr2line.c (handle_address): Find the proper inline parents. 1638 16392014-12-07 Mark Wielaard <mjw@redhat.com> 1640 1641 * readelf.c (print_debug_line_section): max_ops_per_instr cannot 1642 be zero. 1643 16442014-12-07 Mark Wielaard <mjw@redhat.com> 1645 1646 * readelf.c (print_ops): Handle zero ref_size for DW_OP_call_ref 1647 and DW_OP_GNU_implicit_pointer. 1648 16492014-12-04 Mark Wielaard <mjw@redhat.com> 1650 1651 * objdump.c (show_relocs_x): Make sure destshdr exists. 1652 (show_relocs_rel): Don't rely on shdr->sh_entsize, use gelf_fsize. 1653 (show_relocs_rela): Likewise. 1654 (show_relocs): Make sure destshdr, symshdr and symdata exists. 1655 16562014-11-30 Mark Wielaard <mjw@redhat.com> 1657 1658 * readelf.c (handle_sysv_hash64): Fix overflow check. 1659 16602014-11-28 Mark Wielaard <mjw@redhat.com> 1661 1662 * readelf.c (handle_relocs_rel): Don't reuse destshdr to store 1663 section header of a relocation against a STT_SECTION symbol. Use 1664 a new local variable secshdr. 1665 (handle_relocs_rela): Likewise. 1666 16672014-11-26 Mark Wielaard <mjw@redhat.com> 1668 1669 * readelf.c (print_debug_aranges_section): Cast Dwarf_Word length 1670 to ptrdiff_t for comparison. 1671 16722014-11-24 Mark Wielaard <mjw@redhat.com> 1673 1674 * readelf.c (print_debug_line_section): Check line_range is not zero 1675 before usage. 1676 16772014-11-23 Mark Wielaard <mjw@redhat.com> 1678 1679 * readelf.c (print_debug_aranges_section): Check length to catch 1680 nexthdr overflow. 1681 16822014-11-21 Mark Wielaard <mjw@redhat.com> 1683 1684 * readelf.c (print_attributes): Guard against empty section. 1685 Document attribute format. Break when vendor name isn't terminated. 1686 Add overflow check for subsection_len. Handle both gnu and non-gnu 1687 attribute tags. 1688 16892014-11-22 Mark Wielaard <mjw@redhat.com> 1690 1691 * elflint.c (check_sections): Call ebl_bss_plt_p without ehdr. 1692 * findtextrel.c (process_file): Use elf_getphdrnum. 1693 * readelf.c (process_elf_file): Remove redundant ehdr->e_phoff check. 1694 (print_phdr): Check phnum. 1695 * size.c (show_segments): Use elf_getphdrnum. 1696 * strip.c (handle_elf): Likewise. 1697 * unstrip.c (copy_elf): Likewise. 1698 (copy_elided_sections): Likewise. 1699 (handle_file): Likewise. 1700 17012014-11-18 Mark Wielaard <mjw@redhat.com> 1702 1703 * readelf.c (print_cfa_program): Fix sanity check of DW_FORM_block 1704 length. 1705 17062014-11-17 Mark Wielaard <mjw@redhat.com> 1707 1708 * readelf.c (handle_verneed): Check vna_next and vn_next exist. 1709 (handle_verdef): Check vda_next and vd_next exist. 1710 (handle_versym): Check vd_next, vna_next and vn_next exist. 1711 Check vername and filename are not NULL before use. 1712 17132014-11-17 Mark Wielaard <mjw@redhat.com> 1714 1715 * elfcmp.c (main): Check section names are NULL before use. 1716 * objdump.c (section_match): Likewise. 1717 * size.c (show_sysv): Likewise. 1718 17192014-11-17 Mark Wielaard <mjw@redhat.com> 1720 1721 * readelf.c (print_debug_frame_section): Warn if ptr_size is not 4 1722 or 8 instead of just calling print_cfa_program. 1723 17242014-11-16 Mark Wielaard <mjw@redhat.com> 1725 1726 * readelf (process_elf_file): Set phnum to zero if there aren't 1727 actually any pheaders. 1728 (print_phdr): Check there actually is a phdr. 1729 17302014-11-16 Mark Wielaard <mjw@redhat.com> 1731 1732 * readelf.c (print_cfa_program): Check block len before calling 1733 print_ops. 1734 17352014-11-14 Mark Wielaard <mjw@redhat.com> 1736 1737 * readelf.c (print_debug_frame_section): Sanity Check CIE 1738 unit_length and augmentationlen. 1739 17402014-11-14 Mark Wielaard <mjw@redhat.com> 1741 1742 * readelf.c (handle_versym): Check def == NULL before use. 1743 17442014-11-08 Mark Wielaard <mjw@redhat.com> 1745 1746 * readelf.c (handle_versym): Initialize vername and filename array 1747 elements. 1748 17492014-11-07 Mark Wielaard <mjw@redhat.com> 1750 1751 * readelf.c (handle_sysv_hash): Sanity check section contents. 1752 (handle_sysv_hash64): Likewise. 1753 (handle_gnu_hash): Likewise. 1754 17552014-09-14 Petr Machata <pmachata@redhat.com> 1756 1757 * readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly. 1758 17592014-09-12 Petr Machata <pmachata@redhat.com> 1760 1761 * readelf.c (encoded_ptr_size): In the switch statement, change 1762 magic constants 3 and 4 to DW_EH_PE_* counterparts. Still accept 1763 0. Print diagnostic for anything else. 1764 17652014-08-25 Josh Stone <jistone@redhat.com> 1766 1767 * Makefile.am: Prevent premature @AR@ replacement in a sed expression. 1768 17692014-07-04 Menanteau Guy <menantea@linux.vnet.ibm.com> 1770 Mark Wielaard <mjw@redhat.com> 1771 1772 * elflint (check_symtab): Add ".TOC." to the list of possibly 1773 dangling symbols because of sourceware PR13621. 1774 17752014-06-14 Mark Wielaard <mjw@redhat.com> 1776 1777 * elflint (check_symtab): Use ebl_func_addr_mask on st_value. 1778 17792014-05-27 Mark Wielaard <mjw@redhat.com> 1780 1781 * readelf.c (print_debug): Skip section if name is NULL. 1782 17832014-05-26 Mark Wielaard <mjw@redhat.com> 1784 1785 * readelf.c (handle_relocs_rela): Print header like handle_relocs_rel 1786 does, when sh_info == 0. 1787 17882014-05-26 Mark Wielaard <mjw@redhat.com> 1789 1790 * unstrip.c (find_alloc_sections_prelink): Allow non-split .bss 1791 section when sh_size of the original and undo .bss section are equal. 1792 17932014-05-26 Mark Wielaard <mjw@redhat.com> 1794 1795 * unstrip.c (options): Add --force, -F. 1796 (struct arg_info): Add bool force. 1797 (parse_opt): Handle 'F', set force. 1798 (handle_explicit_files): Add force argument, add warn function, 1799 separate check ehdr field checks, use warn. 1800 (handle_dwfl_module): Add force argument, pass on to 1801 handle_explicit_files. 1802 (handle_output_dir_module): Add force argument, pass on to 1803 handle_dwfl_module. 1804 (handle_implicit_modules): Pass info->force to handle_dwfl_module and 1805 handle_output_dir_module. 1806 (main): Pass info.force to handle_explicit_files. 1807 18082014-05-19 Mark Wielaard <mjw@redhat.com> 1809 1810 * elflint.c (check_reloc_shdr): Check ebl_check_reloc_target_type. 1811 18122014-05-01 Mark Wielaard <mjw@redhat.com> 1813 1814 * readelf.c (find_no_debuginfo): Call dwfl_standard_find_debuginfo 1815 if looking for alternate debug file. 1816 18172014-04-11 Mark Wielaard <mjw@redhat.com> 1818 1819 * Makefile.am (AM_CPPFLAGS): Add -I libdwelf. 1820 18212014-04-22 Mark Wielaard <mjw@redhat.com> 1822 1823 * readelf.c (handle_core_item): Make sure variable length array 1824 contains at least enough space for terminating zero char. 1825 18262014-04-22 Mark Wielaard <mjw@redhat.com> 1827 1828 * readelf.c (print_gdb_index_section): Use unsigned int for 31 bits 1829 left shift. 1830 18312014-03-13 Mark Wielaard <mjw@redhat.com> 1832 1833 * Makefile.am: Remove no_mudflap.os. Remove libmudflap from all 1834 LDADD lines. 1835 * strings.c (process_chunk): Remove _MUDFLAP condition. 1836 18372014-04-09 Mark Wielaard <mjw@redhat.com> 1838 1839 * readelf.c (print_debug_aranges_section): Don't get the raw section 1840 data, use the possibly decompressed .[z]debug sectiondata. 1841 (print_debug_ranges_section): Likewise. 1842 (print_debug_frame_section): Likewise. 1843 (print_debug_line_section): Likewise. 1844 (print_debug_loc_section): Likewise. 1845 (print_debug_macinfo_section): Likewise. 1846 (print_debug_macro_section): Likewise. 1847 18482014-04-10 Mark Wielaard <mjw@redhat.com> 1849 1850 * readelf.c (buf_read_ulong): Pass actual long size to convert. 1851 18522014-03-05 Mark Wielaard <mjw@redhat.com> 1853 1854 * readelf.c (attr_callback): Print DW_FORM_sdata values as signed 1855 numbers. 1856 18572014-02-24 Mark Wielaard <mjw@redhat.com> 1858 1859 * readelf (print_phdr): Check there is a SHT_PROGBITS section at the 1860 offset given by p_offsets for a PT_INTERP segment before trying to 1861 display the interpreter string. 1862 18632014-02-07 Mark Wielaard <mjw@redhat.com> 1864 1865 * readelf.c (print_phdr): Check phdr->p_filesz and make sure 1866 interpreter string is zero terminated before calling printf. 1867 18682014-01-22 Mark Wielaard <mjw@redhat.com> 1869 1870 * Makefile.am (nm_no_Wformat): Removed. 1871 (size_no_Wformat): Likewise. 1872 (strings_no_Wformat): Likewise. 1873 (addr2line_no_Wformat): Likewise. 1874 * size.c (show_sysv): Use fmtstr directly as literal in printf. 1875 (show_sysv_one_line): Likewise. 1876 * strings.c (locfmt): Removed. 1877 (radix): New static enum. 1878 (parse_opt): Set radix, not locfmt. 1879 (process_chunk_mb): Use fmtstr directly as literal in printf based 1880 on radix. 1881 (process_chunk): Likewise. 1882 * nm.c (show_symbols_sysv): Use fmtstr directly as literal in printf. 1883 (show_symbols_bsd): Likewise. 1884 (show_symbols_posix): Likewise. 1885 18862014-01-21 Mark Wielaard <mjw@redhat.com> 1887 1888 * stack.c (show_inlines): New static boolean. 1889 (print_frame): New function split out from... 1890 (print_frames): ..here. If show_inlines is true and we found a 1891 DIE for the frame address, call print_inline_frames otherwise 1892 call print_frame. Keep track of and track frame_nr. 1893 (print_inline_frames): New function. 1894 (parse_opt): Handle '-i'. 1895 (main): Add 'i' to options. 1896 18972014-01-27 Mark Wielaard <mjw@redhat.com> 1898 1899 * stack.c (maxframes): Initialize to 256. 1900 (main): Document new default in options. Document magic number 1901 used in frames.allocated initialization. 1902 19032014-01-20 Mark Wielaard <mjw@redhat.com> 1904 1905 * stack.c (show_debugname): New static boolean. 1906 (die_name): New function. 1907 (print_frames): If show_debugname is true set symname to the 1908 first function-like DIE with a name in scope for the address in 1909 the debuginfo. 1910 (parse_opt): Handle '-d'. 1911 (main): Add 'd' to options. 1912 19132014-01-20 Mark Wielaard <mjw@redhat.com> 1914 1915 * addr2line.c (handle_address): Initialize scopes to NULL. 1916 19172014-01-17 Roland McGrath <roland@redhat.com> 1918 1919 * strip.c (handle_elf): Check for bogus values in sh_link, sh_info, 1920 st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data. 1921 Don't use assert on input values, instead bail with "illformed" error. 1922 19232014-01-17 Roland McGrath <roland@redhat.com> 1924 1925 * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link. 1926 (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise. 1927 (handle_scngrp): Check for bogus sh_info. 1928 19292014-01-17 Jakub Jelinek <jakub@redhat.com> 1930 1931 * elflint.c (section_name): Return "<invalid>" instead of 1932 crashing on invalid section name. 1933 (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic, 1934 check_symtab_shndx, check_hash, check_versym): Robustify. 1935 (check_hash): Don't check entries beyond end of section. 1936 (check_note): Don't crash if gelf_rawchunk fails. 1937 19382014-01-17 Petr Machata <pmachata@redhat.com> 1939 1940 * readelf.c (handle_dynamic, handle_relocs_rel) 1941 (handle_relocs_rela, handle_versym, print_liblist): 1942 Use gelf_fsize instead of relying on shdr->sh_entsize. 1943 19442014-01-14 Mark Wielaard <mjw@redhat.com> 1945 1946 * readelf.c (print_debug_macro_section): Clear vendor array before 1947 use. 1948 19492014-01-15 Jan Kratochvil <jan.kratochvil@redhat.com> 1950 1951 Fix corruption of non-C++ symbols by the demangler. 1952 * nm.c (show_symbols_sysv, show_symbols_bsd, show_symbols_posix) 1953 (show_symbols): Check for _Z. 1954 * stack.c (print_frames) <USE_DEMANGLE>: Check for _Z. 1955 19562014-01-02 Mark Wielaard <mjw@redhat.com> 1957 1958 * stack.c (show_raw): Declare unconditionally. 1959 (parse_opt): Handle '-r' unconditionally. 1960 (main): Show "raw" option even without USE_DEMANGLE. 1961 19622014-01-02 Mark Wielaard <mjw@redhat.com> 1963 1964 * stack.c (print_frames): Print 0x before build-id hex-offset. 1965 19662014-01-02 Mark Wielaard <mjw@redhat.com> 1967 1968 * stack.c (maxframes): Increase to 2048. 1969 (struct frames): Add allocated field. 1970 (frame_callback): If frames used is frames allocated, realloc. 1971 (print_frames): Show an error if maxframes has been reached. 1972 (parse_opt): Allow -n 0 for unlimited frames. 1973 (main): Document -n 0 and new default 2048 frames. Allocate initial 1974 number of frames with malloc. 1975 19762013-12-30 Mark Wielaard <mjw@redhat.com> 1977 1978 * stack.c (parse_opt): Explicitly call dwfl_linux_proc_attach 1979 or dwfl_core_file_attach and check for errors. 1980 19812013-12-28 Mark Wielaard <mjw@redhat.com> 1982 1983 * stack.c (print_frames): Remove address width code and use... 1984 (get_addr_width): ...this new function. 1985 (show_modules): New static boolean. 1986 (module_callback): New static function. 1987 (parse_opt): Handle '-l'. 1988 (main): Add 'l' to options. If show_modules then use dwfl_getmodules 1989 with module_callback to show all detected modules and possible 1990 build_id, elf and dwarf files. 1991 19922013-12-27 Mark Wielaard <mjw@redhat.com> 1993 1994 * stack.c (frames_shown): New static boolean. 1995 (EXIT_OK,EXIT_ERROR,EXIT_BAD,EXIT_USAGES): New defines. 1996 (frame_callback): Return -1 on error. Don't print error. 1997 (print_frames): Add arguments, tid, dwflerr and what. Print tid. 1998 If there was an error report it with address and module if possible. 1999 Record whether any frames were actually printed. 2000 (thread_callback): Collect tid and err, pass it to print_frames. 2001 (parse_opt): Use EXIT_BAD for errors. On ARGP_KEY_END print errno 2002 if dwfl_linux_proc_report returned it. Check whether we are properly 2003 attached with dwfl_pid. 2004 (main): Document exit status. Don't report DWARF_CB_ABORT from 2005 callbacks as error. Pass real errors to print_frames. Return 2006 EXIT_BAD if no frames could be shown. Return EXIT_ERROR if there 2007 were any non-fatal errors. 2008 20092013-12-23 Mark Wielaard <mjw@redhat.com> 2010 2011 * Makefile.am (stack_LDADD): Add demanglelib. 2012 * stack.c (show_quiet): New static boolean, default false. 2013 (show_raw): Likewise. 2014 (demangle_buffer_len): New static size_t. 2015 (demangle_buffer): New static char *. 2016 (print_frames): Don't resolve pc name if show_quiet. Demangle name 2017 unless show_raw. 2018 (parse_opt): Handle '-q' and '-r'. 2019 (main): Add 'q' and 'r' to options. Free demangle_buffer. 2020 20212013-12-23 Mark Wielaard <mjw@redhat.com> 2022 2023 * stack.c (OPT_DEBUGINFO): New define. 2024 (OPT_COREFILE): Likewise. 2025 (pid): New static. 2026 (core_fd): Likewise. 2027 (core): Likewise. 2028 (exec): Likewise. 2029 (debuginfo_path): Likewise. 2030 (parse_opt): Handle '-p', '--core', '-e' and '--debuginfo-path'. 2031 Do argument sanity checking. Setup Dwfl. 2032 (main): Add 'p', 'core', 'e' and 'debuginfo-path' to options. 2033 Remove argp_child children, simplify argp doc, remove custom 2034 usage message and construction of dwfl with dwfl_standard_argp. 2035 Use pid directly as tid. close core and core_fd if opened. Print 2036 pid of process or core. 2037 20382013-12-23 Mark Wielaard <mjw@redhat.com> 2039 2040 * stack.c (show_build_id): New static boolean. 2041 (print_frames): Print module build-id, load address and pc offset 2042 if show_build_id is true. 2043 (parse_opt): Handle '-b'. 2044 (main): Add -b to options. 2045 20462013-12-22 Mark Wielaard <mjw@redhat.com> 2047 2048 * stack.c (maxframes): New static unsigned. Initialize to 64. 2049 (struct frame): New struct. 2050 (struct frames): Likewise. 2051 (dwfl): New static Dwfl pointer. 2052 (frame_callback): Use arg as struct frames and fill it next frame. 2053 Return DWARF_CB_ABORT when maxframes has been reached. Move 2054 printing of frame to... 2055 (print_frames): ...here. New function. 2056 (thread_callback): Use arg as struct frames and set frames to zero. 2057 Call print_frames. 2058 (parse_opt): Handle '-n'. 2059 (main): Add -n to options. Allocate frames using maxframes. Pass 2060 frames to frame_callback and thread_callback. 2061 20622013-12-20 Mark Wielaard <mjw@redhat.com> 2063 2064 * stack.c (show_one_tid): New static boolean. 2065 (parse_opt): Handle '-1'. 2066 (main): Add -1 to options. Call dwfl_getthread_frames when 2067 show_one_tid is true. 2068 20692013-12-18 Mark Wielaard <mjw@redhat.com> 2070 2071 * addr2line.c (options): Add symbol-sections, 'x'. 2072 (show_symbol_sections): New static bool. 2073 (parse_opt): Handle 'x'. 2074 (print_addrsym): Use dwfl_module_addrinfo value.r 2075 Also show section of address with show_symbol_sections. 2076 (find_symbol): Use dwfl_module_getsym_info and set value. 2077 (handle_address): Request value and use it instead of sym.st_value. 2078 * readelf.c (format_dwarf_addr): Use dwfl_module_addrinfo to get 2079 name and offset. 2080 20812013-12-17 Masatake YAMATO <yamato@redhat.com> 2082 Mark Wielaard <mjw@redhat.com> 2083 2084 * stack.c (show_activation, show_module, show_source): New variables. 2085 (parse_opt): Set show_activation if -a option is given. 2086 Set show_module if -m option is given. Set show_source if -s option 2087 is given. Set all show booleans when -v option is given. 2088 (main): Added `-a', `-m', `-s', and `-v' to the help message. 2089 (frame_callback): Print module and source file information. 2090 20912013-11-25 Petr Machata <pmachata@redhat.com> 2092 2093 * elflint.c (valid_e_machine): Add EM_AARCH64. 2094 20952013-11-14 Petr Machata <pmachata@redhat.com> 2096 2097 * readelf.c (handle_core_item) <'h'>: New branch for handling 2098 fields that shouldn't be displayed. 2099 21002013-11-10 Mark Wielaard <mjw@redhat.com> 2101 2102 * stack.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and 2103 ARGP_PROGRAM_BUG_ADDRESS_DEF. 2104 (print_version): New function. 2105 21062013-11-09 Mark Wielaard <mjw@redhat.com> 2107 2108 * arlib.c (arlib_init): Call snprintf before using the result 2109 with memcpy. 2110 (arlib_finalize): Likewise. 2111 * nm.c (show_symbols_sysv): Don't modify cnt inside assert. 2112 21132013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com> 2114 2115 * Makefile.am (bin_PROGRAMS): Add stack. 2116 (stack_LDADD): New. 2117 * stack.c: New file. 2118 21192013-11-05 Mark Wielaard <mjw@redhat.com> 2120 2121 * readelf.c (print_debug_ranges_section): Cast address to size_t 2122 before comparison. 2123 (print_debug_loc_section): Likewise. 2124 21252013-10-18 Mark Wielaard <mjw@redhat.com> 2126 2127 * ar.c (main): Correct operation check when instance_specifed is set. 2128 21292013-09-26 Petr Machata <pmachata@redhat.com> 2130 2131 * readelf.c (handle_file_note): New function. 2132 (handle_notes_data): Call it to handle NT_FILE notes. 2133 21342013-09-26 Petr Machata <pmachata@redhat.com> 2135 2136 * readelf.c (handle_siginfo_note): New function. 2137 (handle_notes_data): Call it to handle NT_SIGINFO notes. 2138 (buf_read_int, buf_read_ulong, buf_has_data): New functions. 2139 21402013-08-13 Mark Wielaard <mjw@redhat.com> 2141 2142 * addr2line.c (options): Add "inlines", 'i'. 2143 (show_inlines): New bool. 2144 (parse_opt): Handle 'i'. 2145 (print_diesym): New static function. 2146 (print_src): New function taking code from... 2147 (handle_address): here. Call print_src. Print inlines. 2148 21492013-08-12 Mark Wielaard <mjw@redhat.com> 2150 2151 * addr2line.c (main): If there is a newline char at end of buf, 2152 then remove it. 2153 21542013-07-05 Mark Wielaard <mjw@redhat.com> 2155 2156 * readelf.c (print_ops): Take CU as argument, use it to print 2157 parameter_ref DIE offset. 2158 (struct listptr): Replace base field with cu. 2159 (listptr_base): New function. 2160 (compare_listptr): Use listptr_base. 2161 (notice_listptr): Take CU as argument. 2162 (skip_listptr_hole): Likewise. 2163 (print_debug_ranges_section): Pass NULL as CU to skip_listptr_hole. 2164 (print_cfa_program): Pass NULL as CU to print_ops. 2165 (struct attrcb_args): Replace cu_base field with cu. 2166 (attr_callback): Pass cu not cu_base to notice_listptr. 2167 (print_debug_units): Don't calculate base, just set cu. 2168 (print_debug_loc_section): Pass cu to skip_listptr_hole and 2169 print_ops. 2170 21712013-05-06 Mark Wielaard <mjw@redhat.com> 2172 2173 * readelf.c (print_ops): Format first DW_OP_GNU_implicit_pointer 2174 argument as DIE offset. 2175 21762013-04-24 Mark Wielaard <mjw@redhat.com> 2177 2178 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES. 2179 21802013-03-25 Mark Wielaard <mjw@redhat.com> 2181 2182 * readelf.c (argp_options): Add decodedline. 2183 (decodedline): New boolean initialized to false. 2184 (parse_opt): Set decodedline when arg is decodedline. 2185 (print_decoded_line_section): New function. 2186 (print_debug_line_section): Call print_decoded_line_section when 2187 decodedline is true. 2188 21892013-03-25 Mark Wielaard <mjw@redhat.com> 2190 2191 * readelf.c (argp_option): Add decodedaranges. 2192 (decodedaranges): New boolean initialized to false. 2193 (parse_opt): Set decodedaranges when arg is decodedaranges. 2194 (print_debug_aranges_section): Reimplemented and original 2195 implementation renamed to... 2196 (print_decoded_aranges_section): this. 2197 21982013-03-25 Mark Wielaard <mjw@redhat.com> 2199 2200 * readelf.c (attrcb_args): Add Dwarf_Die. 2201 (attr_callback): When highpc is in constant form also print as 2202 address. 2203 (print_debug_units): Set args.die. 2204 22052013-03-19 Mark Wielaard <mjw@redhat.com> 2206 2207 * readelf.c (print_gdb_index_section): Free format_dwarf_addr results. 2208 22092013-03-18 Mark Wielaard <mjw@redhat.com> 2210 2211 * readelf.c (print_gdb_index_section): Accept version 8. 2212 22132013-03-01 Mark Wielaard <mjw@redhat.com> 2214 2215 * findtextrel.c (process_file): Release ELF and close file when not 2216 text relocations are found. 2217 * strip.c (handle_elf): Track memory used for .debuglink section data 2218 and free when done. 2219 22202013-02-24 Mark Wielaard <mjw@redhat.com> 2221 2222 * elflint.c (check_symtab): Add __bss_start__ to the list of symbols 2223 allowed to have out of section values because of GNU ld bugs. 2224 22252013-02-06 Mark Wielaard <mjw@redhat.com> 2226 2227 * elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the 2228 list of symbols allowed to have out of section values because of 2229 GNU ld bugs in either .symtab or .dynsym, but only when they are 2230 zero sized. 2231 22322013-01-24 Mark Wielaard <mjw@redhat.com> 2233 2234 * readelf.c (argp_option): Add unresolved-address-offsets, U. 2235 (print_unresolved_addresses): New static. 2236 (parse_opt): Handle 'U', set print_unprocessed_values. 2237 (format_dwarf_addr): Take and handle new raw argument. 2238 (print_ops): Call format_dwarf_addr with raw offset values. 2239 (print_debug_ranges_section): Likewise. 2240 (print_debug_frame_section): Likewise. 2241 (attr_callback): Likewise. 2242 (print_debug_line_section): Likewise. 2243 (print_debug_loc_section): Likewise. 2244 (print_gdb_index_section): Likewise. 2245 22462013-01-18 Mark Wielaard <mjw@redhat.com> 2247 2248 * readelf.c (struct listptr): Add base Dwarf_Addr field. 2249 (compare_listptr): Warn for same offset with different base. 2250 (notice_listptr): Take base argument and set it. 2251 (skip_listptr_hole): Likewise. 2252 (struct attrcb_args): Removed unused cu_offset field. 2253 Add cu_base Dwarf_Addr field. 2254 (attr_callback): Call notice_listptr with cbargs->cu_base. 2255 (print_debug_units): Set args.cu_base. 2256 (print_debug_ranges_section): Get base and use for format_dwarf_addr. 2257 (print_debug_loc_section): Likewise. 2258 22592013-01-29 Jan Kratochvil <jan.kratochvil@redhat.com> 2260 2261 * readelf.c (handle_core_items): Limit special repeated items handling 2262 to single-item formats '\n', 'b' and 'B', assert OFFSET 0 there. 2263 22642012-12-18 Mark Wielaard <mark@bordewijk.wildebeest.org> 2265 2266 * readelf.c (ELF_INPUT_SECTION): New argp key value. 2267 (argp_option): Add elf-section. 2268 (elf_input_section): New static. 2269 (parse_opt): Handle ELF_INPUT_SECTION and set elf_input_section. 2270 (open_input_section): New function. 2271 (process_file): Call open_input_section if elf_input_section set. 2272 22732013-01-13 David Abdurachmanov <David.Abdurachmanov@cern.ch> 2274 2275 ar.c (do_oper_delete): Fix num passed to memset. 2276 22772012-12-21 Mark Wielaard <mjw@redhat.com> 2278 2279 * readelf.c (print_debug_frame_section): Adjust FDE start address 2280 if pcrel before feeding it to format_dwarf_addr. 2281 22822012-12-21 Mark Wielaard <mjw@redhat.com> 2283 2284 * addr2line.c (main): Call dwfl_end. 2285 22862012-12-11 Roland McGrath <roland@hack.frob.com> 2287 2288 * nm.c (show_symbols_sysv): Fix size passed to snprintf for invalid 2289 sh_name case. 2290 Reported by David Abdurachmanov <David.Abdurachmanov@cern.ch>. 2291 22922012-10-16 Mark Wielaard <mjw@redhat.com> 2293 2294 * readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are 2295 calculated beginning after the operand and 2-byte constant. 2296 22972012-10-12 Jan Kratochvil <jan.kratochvil@redhat.com> 2298 2299 * readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ... 2300 (WRAP_COLUMN): ... here. 2301 (print_core_item): Remove parameter format_max. Update function 2302 comment. Replace FORMAT_MAX by the real output width. 2303 (handle_core_item): Remove the FORMAT_MAX values in TYPES, DO_TYPE, 2304 calls of print_core_item, remove variable maxfmt, change 2305 ITEM_WRAP_COLUMN to WRAP_COLUMN. 2306 (handle_core_register): Remove the FORMAT_MAX values in TYPES, BITS, 2307 calls of print_core_item, change REGISTER_WRAP_COLUMN to WRAP_COLUMN. 2308 23092012-10-11 Jan Kratochvil <jan.kratochvil@redhat.com> 2310 2311 * readelf.c (handle_core_item) <b>: Make run an outer block variable. 2312 Increase run only if LASTBIT != 0. Print last element only if RUN > 0. 2313 23142012-08-27 Mark Wielaard <mjw@redhat.com> 2315 2316 * readelf.c (print_debug_macro_section): Print offset as PRIx64. 2317 23182012-08-27 Mark Wielaard <mjw@redhat.com> 2319 2320 * readelf.c (register_info): Handle loc == NULL. 2321 23222012-08-22 Jeff Kenton <jkenton@tilera.com> 2323 2324 * elflint.c (valid_e_machine): Add EM_TILEGX and EM_TILEPRO. 2325 23262012-08-16 Mark Wielaard <mjw@redhat.com> 2327 2328 * readelf.c (dwarf_tag_name): Renamed from dwarf_tag_string. 2329 Uses new dwarf_tag_string or adds ??? or lo_user+%#x when 2330 appropriate. 2331 (dwarf_attr_name): Likewise. 2332 (dwarf_form_name): Likewise. 2333 (dwarf_lang_name): Likewise. 2334 (dwarf_inline_name): Likewise. 2335 (dwarf_encoding_name): Likewise. 2336 (dwarf_access_name): Likewise. 2337 (dwarf_visibility_name): Likewise. 2338 (dwarf_virtuality_name): Likewise. 2339 (dwarf_identifier_case_name): Likewise. 2340 (dwarf_calling_convention_name): Likewise. 2341 (dwarf_ordering_name): Likewise. 2342 (dwarf_discr_list_name): Likewise. 2343 (print_ops): Remove KNOWN. Use dwarf_locexpr_opcode_string. 2344 (attr_callback): Call new dwarf_foobar_name instead of old 2345 dwarf_foobar_string functions. 2346 (dwarf_tag_string): New function using known-dwarf.h macros. 2347 (dwarf_attr_string): Likewise. 2348 (dwarf_form_string): Likewise. 2349 (dwarf_lang_string): Likewise. 2350 (dwarf_inline_string): Likewise. 2351 (dwarf_encoding_string): Likewise. 2352 (dwarf_access_string): Likewise. 2353 (dwarf_visibility_string): Likewise. 2354 (dwarf_virtuality_string): Likewise. 2355 (dwarf_identifier_case_string): Likewise. 2356 (dwarf_calling_convention_string): Likewise. 2357 (dwarf_ordering_string): Likewise. 2358 (dwarf_discr_list_string): Likewise. 2359 (dwarf_locexpr_opcode_string): Likewise. 2360 23612012-06-27 Mark Wielaard <mjw@redhat.com> 2362 2363 * readelf.c (dwarf_form_string): Handle DW_FORM_GNU_ref_alt and 2364 DW_FORM_GNU_strp_alt. 2365 (attr_callback): Likewise. 2366 23672012-07-30 Petr Machata <pmachata@redhat.com> 2368 2369 * nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and 2370 corresponding printf) so that those that are referenced by only 2371 one of the formatting strings are at the end. 2372 23732012-07-29 Mark Wielaard <mjw@redhat.com> 2374 2375 * readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc. 2376 (print_ops): Use known[op], not op_name, for DW_OP_GNU_parameter_ref. 2377 23782012-07-19 Mark Wielaard <mjw@redhat.com> 2379 2380 * readelf.c (print_ops): Handle DW_OP_GNU_parameter_ref. 2381 23822012-07-11 Mark Wielaard <mjw@redhat.com> 2383 2384 * readelf.c (options): Add macro to help of debug-dump. 2385 (section_e): Add section_macro. 2386 (section_all): Add section_macro. 2387 (parse_opt): Handle macro. 2388 (print_debug_macro_section): New function. 2389 (print_debug): Add NEW_SECTION (macro). 2390 23912012-07-10 Mark Wielaard <mjw@redhat.com> 2392 2393 * readelf.c (print_gdb_index_section): Add version 7 support. 2394 Keep track of cu_nr. Print kind and static/global flag for each 2395 symbol. When a symbol is in the TU list add 'T'. 2396 23972012-06-26 Mark Wielaard <mjw@redhat.com> 2398 2399 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros. 2400 24012012-06-22 Mark Wielaard <mjw@redhat.com> 2402 2403 * readelf.c (print_ops): Cast printf PRIu/x64 arguments to uint64_t 2404 for gcc 4.7 -Wformat. 2405 24062012-05-09 Roland McGrath <roland@hack.frob.com> 2407 2408 * elflint (check_sections): Allow zero sized sections at (filesz) end 2409 of segment. And make check overflow-proofed. 2410 24112012-04-24 Mark Wielaard <mjw@redhat.com> 2412 2413 * readelf.c (print_ops): Add DW_OP_GNU_push_tls_address, 2414 DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr. 2415 24162012-03-28 Roland McGrath <roland@hack.frob.com> 2417 2418 * elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections. 2419 24202012-03-28 Mark Wielaard <mjw@redhat.com> 2421 2422 * readelf.c (print_debug_abbrev_section): Check there is Dwarf 2423 section data. 2424 (print_debug_str_section): Likewise. 2425 24262012-03-21 Mark Wielaard <mjw@redhat.com> 2427 2428 * readelf.c (print_gdb_index_section): Accept version 6. 2429 24302012-01-31 Mark Wielaard <mjw@redhat.com> 2431 2432 * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset. 2433 24342012-01-21 Ulrich Drepper <drepper@gmail.com> 2435 2436 * addr2line.c: Update copyright year. 2437 * ar.c: Likewise. 2438 * elfcmp.c: Likewise. 2439 * elflint.c: Likewise. 2440 * findtextrel.c: Likewise. 2441 * ld.c: Likewise. 2442 * nm.c: Likewise. 2443 * objdump.c: Likewise. 2444 * ranlib.c: Likewise. 2445 * readelf.c: Likewise. 2446 * size.c: Likewise. 2447 * strings.c: Likewise. 2448 * strip.c: Likewise. 2449 * unstrip.c: Likewise. 2450 2451 * nm.c (argp_children): Define. 2452 (argp): Hook up argp_children. 2453 (handle_ar): Optimize puts call. 2454 (show_symbols_bsd): Use positional parameters to also print color 2455 codes. Don't print STT_FILE symbols. 2456 * objdump.c (options): Improve help text. 2457 (argp_children): Define. 2458 (argp): Hook up argp_children. 2459 (disasm_info): Add elements for color codes. 2460 (disasm_output): Print color codes as well. 2461 (show_disasm): Set up disasm_info data for callback. 2462 24632012-01-20 Roland McGrath <roland@hack.frob.com> 2464 2465 * arlib-argp.c (arlib_deterministic_output): Initialize from 2466 configured value. 2467 (help_filter): New function. 2468 (argp): Use it. 2469 2470 * ar.c (main): Handle oper_none as usage error. 2471 2472 * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D. 2473 2474 * ranlib.c (argp): Use arlib_argp_children. 2475 2476 * arlib.c (arlib_init): Obey arlib_deterministic_output. 2477 2478 * arlib-argp.c: New file. 2479 * Makefile.am (libar_a_SOURCES): Add it. 2480 * arlib.h (arlib_deterministic_output, arlib_argp_children): 2481 Declare new variables. 2482 * ar.c (deterministic_output): Variable removed. 2483 (do_oper_insert): Use arlib_deterministic_output instead. 2484 (options, parse_opt): Don't handle -D here. Add group numbers. 2485 (argp): Use arlib_argp_children. 2486 24872011-12-20 Roland McGrath <roland@hack.frob.com> 2488 2489 * readelf.c (print_debug): Initialize DUMMY_DBG.elf. 2490 Reported by Karel Klic <kklic@redhat.com>. 2491 24922011-11-05 Roland McGrath <roland@hack.frob.com> 2493 2494 * ar.c (deterministic_output): New flag variable. 2495 (options, parse_opt): Grok -D to set it. 2496 (do_oper_insert): When set, use zero from mtime, uid, and gid. 2497 2498 * ar.c (do_oper_insert): Fix check on elf_rawfile return value. 2499 25002011-10-04 Marek Polacek <mpolacek@redhat.com> 2501 2502 * readelf.c (register_info): Assume the right size of an array. 2503 25042011-10-03 Ulrich Drepper <drepper@gmail.com> 2505 2506 * nm.c: Recognize option --mark-special. Still recognize --mark-weak 2507 but don't show it in help anymore. 2508 (mark_special): Renamed from mark_weak. 2509 (parse_opt): Adjust. 2510 (class_type_char): Take additional parameters for ELF file and ELF 2511 header. Treat TLS symbols like objects. 2512 In case of D symbols, show u for unique symbols, R for symbols in 2513 read-only sections, B for symbols in BSS sections. 2514 (show_symbols_bsd): Take additional parameters for ELF file and ELF 2515 header. Adjust for class_type_char change. Show TLS symbols with 2516 @ after them in case --mark-special is selected. 2517 (show_symbols_posix): Likewise. 2518 (show_symbols): Adjust calls to show_symbols_bsd and 2519 show_symbols_posix. 2520 (show_symbols_sysv): Avoid printing adress and size for undefined 2521 symbols. Don't print initial special entry and section entries. 2522 25232011-10-02 Ulrich Drepper <drepper@gmail.com> 2524 2525 * Makefile.am (demanglelib): Define. 2526 (nm_LDADD): Add demanglelib. 2527 * nm.c (options): Add -C option. 2528 (demangle): Define as global variable. 2529 (parse_opt): Recognize -C. 2530 (show_symbols_sysv): Handle demangling. 2531 (show_symbols_bad): Likewise. 2532 (show_symbols_posix): Likewise. 2533 (show_symbols): Likewise. 2534 25352011-07-09 Roland McGrath <roland@hack.frob.com> 2536 2537 * readelf.c (options, parse_opt): Grok -W/--wide and ignore it. 2538 2539 * ar.c (parse_opt): Grok -u. 2540 25412011-05-30 Mark Wielaard <mjw@redhat.com> 2542 2543 * strip.c (relocate): Make offset check overflow-proof. 2544 25452011-05-23 Mark Wielaard <mjw@redhat.com> 2546 2547 * strip.c (relocate): Take new arguments is_rela to indicate 2548 whether the relocation is from a SHT_REL or SHT_RELA section. 2549 Relocate against any debug section symbol, not just STT_SECTION 2550 symbols. For SHT_REL relocations, fetch addend from offset and 2551 add it to symbol value if not zero. 2552 25532011-05-23 Mark Wielaard <mjw@redhat.com> 2554 2555 * strip.c (OPT_RELOC_DEBUG): New option. 2556 (argp_option): Add new --reloc-debug-sections option. 2557 (main): Check new option. 2558 (parse_opt): Likewise. 2559 (handle_elf): Remove any relocations between debug sections 2560 in ET_REL for the debug file when requested. 2561 25622011-05-18 Mark Wielaard <mjw@redhat.com> 2563 2564 * strip.c (handle_elf): Make sure all sections of a removed group 2565 section are removed too. Don't discard SHT_GROUP sections, copy 2566 section table before it gets modified. Section group signature 2567 symbols don't have to be retained. 2568 25692011-05-16 Jakub Jelinek <jakub@redhat.com> 2570 2571 * readelf.c (print_ops): Handle DW_OP_GNU_const_type, 2572 DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert 2573 and DW_OP_GNU_reinterpret. 2574 25752011-05-17 Mark Wielaard <mjw@redhat.com> 2576 2577 * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and 2578 DW_TAG_GNU_call_site_parameter return strings. 2579 25802011-05-11 Marek Polacek <mpolacek@redhat.com> 2581 2582 * nm.c (show_symbols_sysv): Remove unused if/else, remove 2583 unused `prefix' and `fname' parameters. 2584 25852011-05-07 Marek Polacek <mpolacek@redhat.com> 2586 2587 * unstrip.c (compare_sections_nonrel): Mark this function as static. 2588 25892011-04-26 Mark Wielaard <mjw@redhat.com> 2590 2591 * readelf.c (handle_notes_data): Call ebl_object_note_type_name 2592 with note name. 2593 25942011-04-14 Mark Wielaard <mjw@redhat.com> 2595 2596 * readelf.c (options): Add gdb_index. 2597 (section_e): Define section_gdb_index. 2598 (parse_opt): Recognize gdb_index debug-dump argument. 2599 (print_gdb_index_section): New function. 2600 (print_debug): Add gdb_index to debug_sections. 2601 26022011-03-24 Petr Machata <pmachata@redhat.com> 2603 2604 * readelf.c (print_debug_line_section): Emit initial space for all 2605 opcode lines. Print offset in front of each opcode. 2606 26072011-03-22 Marek Polacek <mpolacek@redhat.com> 2608 2609 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case. 2610 26112011-03-22 Mark Wielaard <mjw@redhat.com> 2612 2613 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site 2614 and DW_TAG_GNU_call_site_parameter. 2615 (dwarf_attr_string): Support DW_AT_GNU_call_site_value, 2616 DW_AT_GNU_call_site_data_value, 2617 DW_AT_GNU_call_site_target, 2618 DW_AT_GNU_call_site_target_clobbered, 2619 DW_AT_GNU_tail_call, 2620 DW_AT_GNU_all_tail_call_sites, 2621 DW_AT_GNU_all_call_sites, 2622 and DW_AT_GNU_all_source_call_sites. 2623 (print_ops): Handle DW_OP_GNU_entry_value. 2624 (attr_callback): Handle DW_AT_GNU_call_site_value, 2625 DW_AT_GNU_call_site_data_value, 2626 DW_AT_GNU_call_site_target, 2627 and DW_AT_GNU_call_site_target_clobbered. 2628 26292011-03-10 Mark Wielaard <mjw@redhat.com> 2630 2631 * elflint.c (check_symtab): Use ebl_check_st_other_bits. 2632 26332011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com> 2634 2635 * readelf.c (reset_listptr): Clear TABLE->TABLE. 2636 26372011-02-25 Mark Wielaard <mjw@redhat.com> 2638 2639 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling. 2640 (dwarf_form_string): Properly format and return unknown form. 2641 26422011-02-23 Roland McGrath <roland@redhat.com> 2643 2644 * readelf.c (section_name): New function. 2645 (print_debug_abbrev_section): Use it instead of constant. 2646 (print_debug_aranges_section): Likewise. 2647 (print_debug_ranges_section): Likewise. 2648 (print_debug_units): Likewise. 2649 (print_debug_line_section): Likewise. 2650 (print_debug_loc_section): Likewise. 2651 (print_debug_macinfo_section): Likewise. 2652 (print_debug_pubnames_section): Likewise. 2653 (print_debug_str_section): Likewise. 2654 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too. 2655 (print_debug_abbrev_section): Use decoded d_size, not sh_size. 2656 (print_debug_str_section): Likewise. 2657 2658 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature. 2659 26602011-02-11 Roland McGrath <roland@redhat.com> 2661 2662 * elfcmp.c (verbose): New variable. 2663 (options, parse_opt): Grok -l/--verbose to set it. 2664 (main): Under -l, keep going after first difference. 2665 2666 * elfcmp.c (ignore_build_id): New variable. 2667 (options, parse_opt): Grok --ignore-build-id to set it. 2668 (main): For SHT_NOTE sections, compare note details rather than raw 2669 bytes. Under --ignore-build-id, don't complain about differing build 2670 ID contents if lengths match. 2671 26722011-02-08 Roland McGrath <roland@redhat.com> 2673 2674 * ldscript.y (filename_id_star): Remove unused variable. 2675 2676 * unstrip.c (copy_elided_sections): Remove unused variable. 2677 2678 * elflint.c (check_dynamic): Remove unused variables. 2679 2680 * elflint.c (check_symtab): Warn about missing xndx section only once. 2681 2682 * ldgeneric.c (check_for_duplicate2): Remove unused variable. 2683 26842011-01-06 Roland McGrath <roland@redhat.com> 2685 2686 * strip.c (handle_elf): Under --strip-sections, remove all 2687 non-allocated sections and never generate .gnu_debuglink. 2688 26892011-01-04 Roland McGrath <roland@redhat.com> 2690 2691 * strip.c (remove_shdrs): New variable. 2692 (options, parse_opt): Grok --strip-sections to set it. 2693 (handle_elf): When that's set, truncate off .shstrtab and shdrs. 2694 26952010-11-10 Roland McGrath <roland@redhat.com> 2696 2697 * findtextrel.c (process_file): Don't assume order of sections. 2698 Reported by Mike Hommey <mh@glandium.org>. 2699 27002010-07-26 Roland McGrath <roland@redhat.com> 2701 2702 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer. 2703 27042010-08-30 Roland McGrath <roland@redhat.com> 2705 2706 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses. 2707 * readelf.c (parse_opt): Add section_info to implicit_debug_sections 2708 for ranges, loc. 2709 (struct listptr, struct listptr_table): New types. 2710 (compare_listptr, reset_listptr, sort_listptr): New functions. 2711 (notice_listptr, skip_listptr_hole): New functions. 2712 (struct attrcb_args): Add silent member. 2713 (attr_callback): Call notice_listptr for loclistptr and rangelistptr. 2714 Suppress output if silent, but still call notice_listptr. 2715 (print_debug_units): Suppress output if section_info not requested. 2716 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole. 2717 (print_debug_ranges_section): Likewise. 2718 (print_debug): Call reset_listptr on both tables. 2719 2720 * readelf.c (print_debug_ranges_section): Print empty list. 2721 (print_debug_loc_section): Likewise. 2722 2723 * readelf.c (print_debug_loc_section): Check for bogus length 2724 before calling print_ops. 2725 (print_ops): Check harder for bogus data that would read off end. 2726 27272010-08-11 Roland McGrath <roland@redhat.com> 2728 2729 * readelf.c (for_each_section_argument): Process all sections with 2730 matching name, not just the first. 2731 27322010-07-26 Roland McGrath <roland@redhat.com> 2733 2734 * readelf.c (print_ops): Take new argument for CU version. 2735 Fix DW_OP_call_ref decoding to depend on it. 2736 (print_debug_loc_section): Update caller. 2737 (print_cfa_program): Take new argument, pass it down. 2738 (print_debug_frame_section): Update caller. 2739 (struct attrcb_args): New member version. 2740 (print_debug_units): Initialize it. 2741 27422010-07-02 Roland McGrath <roland@redhat.com> 2743 2744 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for 2745 initial_location. 2746 27472010-06-30 Roland McGrath <roland@redhat.com> 2748 2749 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO. 2750 Ignore st_size for a non-S_ISREG file descriptor. 2751 (read_block): Move assert after no-mmap bail-out. 2752 (read_block_no_mmap): Fix size calculations for moving buffer remnant. 2753 27542010-06-22 Roland McGrath <roland@redhat.com> 2755 2756 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa. 2757 27582010-06-21 Roland McGrath <roland@redhat.com> 2759 2760 * readelf.c (dwarf_tag_string): Handle new v4 tags. 2761 (dwarf_attr_string): Add new attributes. 2762 (dwarf_tag_string): Handle DW_TAG_GNU_*. 2763 2764 * readelf.c (print_ops): Use 64-bit types for LEB128 operands. 2765 (print_cfa_program): Likewise. 2766 27672010-06-20 Roland McGrath <roland@redhat.com> 2768 2769 * readelf.c (print_debug_units): New function, broken out of ... 2770 (print_debug_info_section): ... here. Call it. 2771 (print_debug_types_section): New function. 2772 (enum section_e): Add section_types alias for section_info. 2773 (print_debug): Add types to the sections table. 2774 2775 * readelf.c (print_debug_frame_section): Handle version 4 format. 2776 2777 * readelf.c (print_debug_line_section): Handle version 4 format. 2778 27792010-06-14 Roland McGrath <roland@redhat.com> 2780 2781 * unstrip.c (copy_elided_sections): Make sure all sections' data have 2782 been read in before we write anything out. 2783 27842010-06-04 Roland McGrath <roland@redhat.com> 2785 2786 * unstrip.c (update_shdr): New function. 2787 (update_sh_size): Call it instead of gelf_update_shdr. 2788 (adjust_relocs, add_new_section_symbols): Likewise. 2789 (new_shstrtab, copy_elided_sections): Likewise. 2790 2791 * unstrip.c (copy_elided_sections): Bail if stripped file has more 2792 sections than unstripped file, rather than getting confused later. 2793 27942010-06-01 Roland McGrath <roland@redhat.com> 2795 2796 * readelf.c (dwarf_form_string): Handle DWARF 4 forms. 2797 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc, 2798 DW_FORM_sec_offset, DW_FORM_ref_sig8. 2799 2800 * readelf.c (print_debug): Don't bail if libdw setup fails. 2801 Suppress complaint if we only want .eh_frame anyway. 2802 28032010-05-28 Ulrich Drepper <drepper@redhat.com> 2804 2805 * readelf.c (attr_callback): Also print form information. 2806 28072010-05-19 Roland McGrath <roland@redhat.com> 2808 2809 * addr2line.c (find_symbol): Short-circuit on empty name. 2810 (handle_address): Handle SYMBOL with no +OFFSET. 2811 28122010-05-08 Roland McGrath <roland@redhat.com> 2813 2814 * readelf.c (print_ops): Take new arg OFFSET_SIZE. 2815 Use that for DW_OP_call_ref, not ADDRSIZE. 2816 (print_cfa_program): Update caller. 2817 (struct attrcb_args): Add offset_size field. 2818 (attr_callback): Use it for print_ops call. 2819 (print_debug_info_section): Initialize it. 2820 (print_ops): Likewise. 2821 28222010-04-14 Roland McGrath <roland@redhat.com> 2823 2824 * readelf.c (handle_core_item): Fix bitmask printing. 2825 28262010-04-06 Roland McGrath <roland@redhat.com> 2827 2828 * ld.c (options): Fix some typos in messages. 2829 * elflint.c (check_scn_group, check_group): Likewise. 2830 * ldscript.y (add_id_list): Likewise. 2831 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment 2832 before translated string containing a literal %. 2833 28342010-02-26 Roland McGrath <roland@redhat.com> 2835 2836 * readelf.c (process_file): Don't leak an fd in failure case. 2837 28382010-02-15 Roland McGrath <roland@redhat.com> 2839 2840 * Makefile.am: Use config/eu.am for common stuff. 2841 2842 * readelf.c (print_debug_frame_section): Add a cast to avoid sign 2843 mismatch in comparison. 2844 28452010-02-02 Roland McGrath <roland@redhat.com> 2846 2847 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero). 2848 (read_encoded): Likewise. 2849 (print_debug_frame_section): Check for bogus augmentation length. 2850 For P augmentation, use read_encoded, print the encoding description, 2851 and use hex for unsigned values. 2852 28532010-01-15 Roland McGrath <roland@redhat.com> 2854 2855 * ar.c: Include <sys/stat.h>. 2856 * elflint.c: Likewise. 2857 * readelf.c: Likewise. 2858 * strip.c: Likewise. 2859 * unstrip.c: Likewise 2860 28612010-01-07 Roland McGrath <roland@redhat.com> 2862 2863 * readelf.c (print_ehdr): Handle PN_XNUM. 2864 (phnum): New static variable. 2865 (process_elf_file): Set it with elf_getphdrnum. 2866 (print_phdr): Use phnum instead of EHDR->e_phnum. 2867 (print_dynamic, handle_notes): Likewise. 2868 (handle_relocs_rel, handle_relocs_rela): Likewise. 2869 2870 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum. 2871 2872 * elflint.c (phnum): New static variable. 2873 (check_elf_header): Set it, handling PN_XNUM. 2874 Use that in place of EHDR->e_phnum throughout. 2875 (check_symtab, check_reloc_shdr, check_dynamic): Likewise. 2876 (unknown_dependency_p, check_sections, check_program_header): Likewise. 2877 28782010-01-05 Roland McGrath <roland@redhat.com> 2879 2880 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and 2881 DW_AT_GNU_template_name. 2882 28832010-01-04 Roland McGrath <roland@redhat.com> 2884 2885 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE". 2886 (handle_core_note): Pass NHDR and NAME to ebl_core_note. 2887 (handle_core_item): Handle .format of '\n' as \n-separated strings. 2888 2889 * readelf.c (implicit_debug_sections): New variable. 2890 (parse_opt): Set it instead of print_debug_sections for -a. 2891 OR them together for print_debug check. 2892 (print_debug): OR them together for section check. 2893 2894 * readelf.c (options): Repartition into set implied by -a and others. 2895 Correct -a text to match reality. 2896 2897 * readelf.c (struct section_argument): Add bool member 'implicit'. 2898 (parse_opt): Set it for -a cases, clear it for -x args. 2899 (for_each_section_argument): Don't complain about a missing section by 2900 name if it's implicit. 2901 29022009-11-16 Roland McGrath <roland@redhat.com> 2903 2904 * readelf.c (print_string_section): Punt SHT_NOBITS like empty 2905 sections, just as dump_data_section already does. 2906 29072009-09-21 Ulrich Drepper <drepper@redhat.com> 2908 2909 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be 2910 set for .comment section. 2911 Patch by Mark Wielaard <mjw@redhat.com>. 2912 29132009-09-08 Roland McGrath <roland@redhat.com> 2914 2915 * ar.c (main): Fix typo in message format. 2916 29172009-08-21 Roland McGrath <roland@redhat.com> 2918 2919 * readelf.c (attr_callback): Use print_block only when we don't use 2920 print_ops. 2921 29222009-08-14 Roland McGrath <roland@redhat.com> 2923 2924 * ar.c (do_oper_extract): Use pathconf instead of statfs. 2925 29262009-08-01 Ulrich Drepper <drepper@redhat.com> 2927 2928 * debugpred.h: Add two most const. 2929 29302009-07-26 Mark Wielaard <mjw@redhat.com> 2931 2932 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION. 2933 29342009-07-25 Mark Wielaard <mjw@redhat.com> 2935 2936 * Makefile.am (addr2line_LDADD): Add $(libelf). 2937 29382009-07-24 Roland McGrath <roland@redhat.com> 2939 2940 * readelf.c (print_block): New function. 2941 (print_ops): Use it. 2942 (attr_callback): Use it for DW_FORM_block* forms. 2943 29442009-07-20 Mark Wielaard <mjw@redhat.com> 2945 2946 * readelf.c (print_ops): Add handling of DW_OP_implicit_value 2947 and DW_OP_stack_value. 2948 29492009-07-14 Ulrich Drepper <drepper@redhat.com> 2950 2951 * elflint.c (check_elf_header): Allow Linux ABI. 2952 (check_symtab): Handle STB_GNU_UNIQUE. 2953 29542009-07-08 Mark Wielaard <mjw@redhat.com> 2955 2956 * readelf.c (attr_callback): Handle DW_Form constants for 2957 DW_AT_data_member_location. 2958 29592009-07-06 Roland McGrath <roland@redhat.com> 2960 2961 * readelf.c (register_info): New function. Handle unknown register #s. 2962 (print_cfa_program): Use it. 2963 (handle_core_register, handle_core_registers): Likewise. 2964 29652009-06-28 Roland McGrath <roland@redhat.com> 2966 2967 * readelf.c (print_address_names): New static variable. 2968 (options, parse_opt): Grok -N/--numeric-addresses to clear it. 2969 (format_dwarf_addr): Don't look up name if !print_address_names. 2970 29712009-06-13 Ulrich Drepper <drepper@redhat.com> 2972 2973 * ldgeneric.c: Don't use deprecated libelf functions. 2974 * nm.c: Likewise. 2975 * objdump.c: Likewise. 2976 * readelf.c: Likewise. 2977 * size.c: Likewise. 2978 * strip.c: Likewise. 2979 * unstrip.c: Likewise. 2980 * ld.h: Fix up comment. 2981 29822009-06-01 Ulrich Drepper <drepper@redhat.com> 2983 2984 * readelf.c (print_relocs): Expect ELF header argument and pass on 2985 to handle_relocs_rel* functions. Adjust caller. 2986 (handle_relocs_rel): Add ELF header argument. Add special case for 2987 the IRELATIVE relocations in statically linked executables. 2988 (handle_relocs_rela): Likewise. 2989 29902009-04-29 Ulrich Drepper <drepper@redhat.com> 2991 2992 * elflint.c (check_symtab): Add tests of st_other field. 2993 29942009-04-23 Ulrich Drepper <drepper@redhat.com> 2995 2996 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS). 2997 29982009-04-20 Roland McGrath <roland@redhat.com> 2999 3000 * addr2line.c (print_dwarf_function): Honor -s and -A for file names 3001 of inline call sites. 3002 3003 * addr2line.c (just_section): New variable. 3004 (adjust_to_section): New function, broken out of ... 3005 (handle_address): ... here. 3006 (options, parse_opt): Add -j/--section=NAME to set it. 3007 30082009-04-15 Roland McGrath <roland@redhat.com> 3009 3010 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in 3011 64-bit format header, DW_CIE_ID_32 in 32-bit format header. 3012 30132009-04-14 Roland McGrath <roland@redhat.com> 3014 3015 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM 3016 like SHT_GNU_ATTRIBUTES. 3017 3018 * readelf.c (handle_core_registers): Fix error message. 3019 3020 * strip.c (handle_elf: check_preserved): Don't note any change when 3021 .debug_data is already filled from a previous pass. 3022 30232009-02-05 Ulrich Drepper <drepper@redhat.com> 3024 3025 * objdump.c (show_relocs_x): Minor cleanups. 3026 3027 * readelf.c (print_cfa_program): Correct a few labels. 3028 Print first DW_CFA_expression and DW_CFA_val_expression parameter 3029 as register. 3030 30312009-02-01 Ulrich Drepper <drepper@redhat.com> 3032 3033 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts 3034 into ... 3035 (show_relocs_x): ...here. New function. 3036 (show_relocs): Better spacing in output. 3037 3038 * objdump.c (show_relocs_rela): Show offsets as signed values. 3039 3040 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers. 3041 Improve some error messages. 3042 Use program_invocation_short_name instead of AR macro. 3043 * Makefile.am (CFLAGS_ar): Remove. 3044 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help. 3045 * objdump.c (parse_opt): Likewise. 3046 * readelf.c (parse_opt): Likewise. 3047 30482009-01-27 Roland McGrath <roland@redhat.com> 3049 3050 * readelf.c (print_ops): Notice short length, don't overrun buffer 3051 (still need to fix LEB128). 3052 3053 * readelf.c (print_ops): Fix DW_OP_call[24] decoding. 3054 3055 * readelf.c (print_ops): Print (empty)\n when LEN == 0. 3056 30572009-01-24 Ulrich Drepper <drepper@redhat.com> 3058 3059 * readelf.c (print_debug_frame_section): Fix computation of vma_base 3060 for PC-relative mode. 3061 30622009-01-23 Ulrich Drepper <drepper@redhat.com> 3063 3064 * size.c (process_file): When handling archive, close file descriptor 3065 here. For unknown file format also close file descriptor. 3066 (handle_ar): Don't close file descriptor here. 3067 3068 * readelf.c (parse_opt): Move code to add to dump_data_sections and 3069 string_sections list in local function add_dump_section. Adjust 'x' 3070 key handling. For 'a' key add .strtab, .dynstr, and .comment section 3071 to string_sections list. 3072 30732009-01-22 Roland McGrath <roland@redhat.com> 3074 3075 * readelf.c (print_phdr): Don't print section mapping when no sections. 3076 3077 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat. 3078 3079 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false 3080 and reset it only for the 'true' cases. 3081 3082 * Makefile.am (addr2line_no_Wformat): New variable. 3083 3084 * readelf.c (print_debug_frame_section): Use t instead of j formats 3085 for ptrdiff_t OFFSET. 3086 30872009-01-21 Ulrich Drepper <drepper@redhat.com> 3088 3089 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section 3090 test. Handle debuginfo files. 3091 (check_exception_data): First sanity test. 3092 30932009-01-17 Ulrich Drepper <drepper@redhat.com> 3094 3095 * readelf.c (print_debug_exception_table): Show target of ar_disp 3096 field. 3097 3098 * elflint.c (check_program_header): Add most consistency checks for 3099 PT_GNU_EH_FRAME entry. 3100 3101 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and 3102 ARGP_PROGRAM_BUG_ADDRESS_DEF. 3103 * ar.c: Likewise. 3104 * elfcmp.c: Likewise. 3105 * elflint.c: Likewise. 3106 * findtextrel.c: Likewise. 3107 * ld.c: Likewise. 3108 * nm.c: Likewise. 3109 * objdump.c: Likewise. 3110 * ranlib.c: Likewise. 3111 * readelf.c: Likewise. 3112 3113 * size.c: Likewise. 3114 * strings.c: Likewise. 3115 * strip.c: Likewise. 3116 * unstrip.c: Likewise. 3117 31182009-01-16 Ulrich Drepper <drepper@redhat.com> 3119 3120 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry 3121 matches .eh_frame_hdr section, if it is available. Also check that 3122 the segment is allocated, not writable, not executable. 3123 3124 * readelf.c: Add -e option. Dump exception and unwind related 3125 sections. Add -e to -a. 3126 (print_encoding_base): Handle DW_EH_PE_omit. 3127 (print_debug_exception_table): Beginning of support. 3128 (print_debug): Hook up print_debug_exception_table for 3129 .gcc_except_table sections. 3130 3131 * readelf.c (print_debug_frame_section): Some fixes for last change. 3132 31332009-01-15 Ulrich Drepper <drepper@redhat.com> 3134 3135 * readelf.c (print_encoding): Now a toplevel function. 3136 (print_relinfo): Likewise. 3137 (print_encoding_base): Broken out of print_debug_frame_section. 3138 (print_debug_frame_section): Print different header for .eh_frame 3139 sections. Fix recognition of matching CIEs in .debug_frame sections. 3140 Print absolute offset for PC-relative FDE locations. Don't print 3141 table header for FDEs if the table is empty. 3142 (read_encoded): New function. 3143 (print_debug_frame_hdr_section): New function. 3144 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr 3145 sections. 3146 3147 * readelf.c (handle_relocs_rel): Print section number. 3148 (print_debug_abbrev_section): Likewise. 3149 (print_debug_aranges_section): Likewise. 3150 (print_debug_ranges_section): Likewise. 3151 (print_debug_info_section): Likewise. 3152 (print_debug_line_section): Likewise. 3153 (print_debug_loc_section): Likewise. 3154 (print_debug_macinfo_section): Likewise. 3155 (print_debug_pubnames_section): Likewise. 3156 (print_debug_str_section): Likewise. 3157 31582009-01-10 Ulrich Drepper <drepper@redhat.com> 3159 3160 * strings.c (read_block): Fix typo in error message string. 3161 31622009-01-07 Ulrich Drepper <drepper@redhat.com> 3163 3164 * ld.c (ld_new_searchdir): Fix adding to search path list. 3165 31662009-01-06 Ulrich Drepper <drepper@redhat.com> 3167 3168 * readelf.c: Implement call frame debug section dumping. 3169 31702009-01-05 Roland McGrath <roland@redhat.com> 3171 3172 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep). 3173 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal. 3174 31752009-01-01 Ulrich Drepper <drepper@redhat.com> 3176 3177 * addr2line.c: Update copyright year. 3178 * ar.c: Likewise. 3179 * elfcmp.c: Likewise. 3180 * elflint.c: Likewise. 3181 * findtextrel.c: Likewise. 3182 * ld.c: Likewise. 3183 * nm.c: Likewise. 3184 * objdump.c: Likewise. 3185 * ranlib.c: Likewise. 3186 * readelf.c: Likewise. 3187 * size.c: Likewise. 3188 * strings.c: Likewise. 3189 * strip.c: Likewise. 3190 * unstrip.c: Likewise. 3191 31922008-12-11 Roland McGrath <roland@redhat.com> 3193 3194 * nm.c (sym_name): New function. 3195 (show_symbols_sysv): Use it in place of elf_strptr. 3196 (show_symbols_bsd, show_symbols_posix): Likewise. 3197 Fixes RHBZ#476136. 3198 3199 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when 3200 elf_strptr fails. 3201 32022008-12-02 Roland McGrath <roland@redhat.com> 3203 3204 * readelf.c (count_dwflmod, process_file): Don't presume encoding of 3205 nonzero OFFSET argument to dwfl_getmodules. 3206 32072008-08-07 Roland McGrath <roland@redhat.com> 3208 3209 * addr2line.c (main): Pass string to handle_address. 3210 (see_one_module): New function, subroutine of handle_address. 3211 (find_symbol): Likewise. 3212 (handle_address): Take string argument rather than address. 3213 Convert plain number, or handle strings like "(section)+offset" 3214 or "symbol+offset". 3215 32162008-08-01 Roland McGrath <roland@redhat.com> 3217 3218 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset. 3219 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string. 3220 3221 * readelf.c (convert): Take new argument SIZE. 3222 (handle_core_register, handle_core_item): Update callers. 3223 (handle_core_item): Take new arg REPEATED_SIZE. 3224 (handle_core_items): Special case for a singleton item, 3225 let handle_core_item handle repeats if it wants to. 3226 3227 * readelf.c (handle_core_items): Give abridged output 3228 for identical groups repeated more than twice. 3229 32302008-07-04 Roland McGrath <roland@redhat.com> 3231 3232 * readelf.c (handle_core_items): Handle ELF_T_ADDR. 3233 32342008-04-10 Roland McGrath <roland@redhat.com> 3235 3236 * strip.c (handle_elf): Don't keep sections that kept symbol tables 3237 refer to. Instead, just be sure to preserve the original symbol 3238 table in the debug file so those symbols go with their sections and 3239 can be elided from the stripped version of the symbol table. 3240 3241 * strip.c (handle_elf): When a discarded section kept in the debug 3242 file refers to a nondiscard section via sh_link/sh_info, preserve 3243 that nondiscarded section unmodified in the debug file as well. 3244 Skip adjustment of discarded sections symbol table references when 3245 that symbol table is copied in this way. 3246 3247 * elflint.c (check_symtab): Don't crash from missing symbol names 3248 after diagnosing bogus strtab. 3249 3250 * strip.c (handle_elf): Cosmetic cleanup in special section contents 3251 adjustment for symtab changes. 3252 32532008-03-31 Roland McGrath <roland@redhat.com> 3254 3255 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections: 3256 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook 3257 excuse a special section. 3258 32592008-03-27 Roland McGrath <roland@redhat.com> 3260 3261 * elflint.c (check_sections): Check that executability and writability 3262 of sections is reflected in segment p_flags. 3263 32642008-03-26 Roland McGrath <roland@redhat.com> 3265 3266 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags 3267 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really 3268 is valid in RELRO. 3269 32702008-02-29 Roland McGrath <roland@redhat.com> 3271 3272 * readelf.c (print_attributes): Add a cast. 3273 * elflint.c (check_attributes): Likewise. 3274 3275 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity 3276 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition. 3277 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise. 3278 32792008-02-03 Ulrich Drepper <drepper@redhat.com> 3280 3281 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD 3282 when linked into executable. 3283 (elf_i386_create_relocations): Likewise. 3284 32852008-02-20 Roland McGrath <roland@redhat.com> 3286 3287 * readelf.c (print_attributes): New function. 3288 (process_elf_file): Call it under -A. 3289 3290 * elflint.c (check_attributes): Implement it for real. 3291 32922008-02-19 Roland McGrath <roland@redhat.com> 3293 3294 * elflint.c (special_sections): Handle .gnu.attributes section. 3295 (check_sections): Likewise. 3296 (check_attributes): New function. 3297 32982008-02-10 Roland McGrath <roland@redhat.com> 3299 3300 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC 3301 sections and ET_REL files. 3302 33032008-02-02 Ulrich Drepper <drepper@redhat.com> 3304 3305 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections. 3306 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32 3307 and R_386_TLS_LE. 3308 (elf_i386_create_relocations): Likewise. 3309 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb 3310 elements. 3311 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag. 3312 (ld_generic_create_outfile): Add PT_TLS entry to program header. 3313 Fix generation of PT_GNU_STACK entry. 3314 33152008-02-01 Ulrich Drepper <drepper@redhat.com> 3316 3317 * ld.c (replace_args): Prevent loop over replacements if the parameter 3318 is only two characters long. 3319 3320 * ld.c: Recognize sha1 argument for --build-id parameter. 3321 * ldgeneric.c (create_build_id_section): Handle sha1. 3322 (compute_hash_sum): New function. Broken out of compute_build_id. 3323 Take hash function and context as parameters. 3324 (compute_build_id): Use compute_hash_sum for md5 and the new sha1 3325 implementation. 3326 33272008-01-31 Ulrich Drepper <drepper@redhat.com> 3328 3329 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections. 3330 * ld.c: Recognize --build-id command line parameter. 3331 * ld.h: Define scn_dot_note_gnu_build_id. 3332 (struct ld_state): Add build_id and buildidscnidx elements. 3333 * ldgeneric.c: Implement --build-id command line parameter. 3334 * ldlex.l (ID): Recognize - as valid character after the first one. 3335 33362008-01-29 Ulrich Drepper <drepper@redhat.com> 3337 3338 * ld.c (replace_args): New function. 3339 (main): Use it to rewrite old-style parameters. 3340 3341 * elf32-i386.script: Add .gnu.hash section. 3342 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient. 3343 (fillin_special_symbol): Initialize st_size. 3344 (sortfct_hashval): New function. 3345 (create_gnu_hash): New function. 3346 (create_hash): New function. 3347 (ld_generic_create_outfile): Use the new functions to create the 3348 hash tables. 3349 3350 * elflint.c (check_gnu_hash): Fix index value printed in error message. 3351 33522008-01-24 Ulrich Drepper <drepper@redhat.com> 3353 3354 * elflint.c (check_group): Check that signature symbol for section 3355 group is not an empty string. 3356 * ldgeneric.c: Remove magic assignment of indeces in the dynsym 3357 section. Start implementation of --hash-style. 3358 * i386_ld.c: Likewise. 3359 * ld.c: Recognize --hash-style. 3360 * ld.h (struct scninfo): Add comdat_group. 3361 Add additional parameter to finalize_plt callback. 3362 33632008-01-22 Ulrich Drepper <drepper@redhat.com> 3364 3365 * ld.h (struct callbacks): Add initialize_gotplt. 3366 (struct scnhead): Add scn_dot_gotplt. 3367 (struct ld_state): Add gotpltscnidx. 3368 * i386_ld.c (elf_i386_initialize_plt): Minor optimization. 3369 (elf_i386_initialize_pltrel): Likewise. 3370 (elf_i386_initialize_got): There is now a separate .got.plt, so 3371 don't do the PLT-related work here. Initialize d_type. 3372 (elf_i386_initialize_gotplt): New function. 3373 (elf_i386_plt0): Use ud2a after indirect jump. 3374 (elf_i386_pic_plt0_entry): Likewise. 3375 (elf_i386_finalize_plt): Reference now .got.plt. 3376 (elf_i386_count_relocations): For GOT entries which need no relocation 3377 don't bump nrel_got. 3378 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32 3379 handling for split .got/.got.plt. 3380 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt. 3381 * elf32-i386.script: Sort sections for security. There are no .got 3382 input sections. Add .got.plt. 3383 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section. 3384 (ld_generic_create_outfile): Initialize .got.plt section. 3385 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT. 3386 33872008-01-19 Ulrich Drepper <drepper@redhat.com> 3388 3389 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined 3390 symbols are not carried over into statically linked output files. 3391 Add dummy entries for more TLS relocations. 3392 3393 * ld.c (options): Add long names for -( and -). 3394 3395 * ldgeneric.c (check_definition): For newly found definitions don't 3396 mark section as used if symbol is absolute. 3397 (extract_from_archive): Only assign archive sequence number the first 3398 time the archive is handled. Update ld_state.last_archive_used 3399 if any symbol was used. Remove nround variable. 3400 (file_process2): When using symbol from an archive, update 3401 ld_state.group_start_archive, ld_state.archives, and 3402 ld_state.tailarchives. 3403 (ld_generic_file_process): If group is not handled anymore, after 3404 freeing ELF handles for the archives, clear ld_state.archives and 3405 *nextp. Fix wrong logic in recognizing first iteration of group 3406 loop. When clearing flags, also clear ld_state.group_start_archive. 3407 34082008-01-11 Ulrich Drepper <drepper@redhat.com> 3409 3410 * objdump.c (show_disasm): Adjust disassembler format string for 3411 removal of %e. 3412 34132008-01-04 Roland McGrath <roland@redhat.com> 3414 3415 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero, 3416 a size greater than the items cover means multiple sets of items. 3417 (handle_core_note): Update caller. 3418 34192008-01-04 Roland McGrath <roland@redhat.com> 3420 3421 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning. 3422 34232008-01-03 Roland McGrath <roland@redhat.com> 3424 3425 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)). 3426 3427 * elflint.c (check_dynamic): Remove duplicate initializer. 3428 34292008-01-02 Ulrich Drepper <drepper@redhat.com> 3430 3431 * addr2line.c: Update copyright year. 3432 * ar.c: Likewise. 3433 * elfcmp.c: Likewise. 3434 * elflint.c: Likewise. 3435 * findtextrel.c: Likewise. 3436 * ld.c: Likewise. 3437 * nm.c: Likewise. 3438 * objdump.c: Likewise. 3439 * ranlib.c: Likewise. 3440 * readelf.c: Likewise. 3441 * size.c: Likewise. 3442 * strings.c: Likewise. 3443 * strip.c: Likewise. 3444 * unstrip.c: Likewise. 3445 34462007-12-30 Ulrich Drepper <drepper@redhat.com> 3447 3448 * objdump (show_disasm): Use %e after third parameter. 3449 34502007-12-21 Ulrich Drepper <drepper@redhat.com> 3451 3452 * strip.c: Fix wrong parenthesis in a few branch predictions. 3453 * strings.c: Likewise. 3454 34552007-12-20 Ulrich Drepper <drepper@redhat.com> 3456 3457 * Makefile.am (DEFS): Add DEBUGPRED. 3458 * addr2line.c: Include debugpred.h. 3459 * ar.c: Likewise. 3460 * elfcmp.c: Likewise. 3461 * elflint.c: Likewise. 3462 * findtextrel.c: Likewise. 3463 * nm.c: Likewise. 3464 * objdump.c: Likewise. 3465 * ranlib.c: Likewise. 3466 * readelf.c: Likewise. 3467 * size.c: Likewise. 3468 * strings.c: Likewise. 3469 * strip.c: Likewise. 3470 * unstrip.c: Likewise. 3471 * debugpred.h: New file. 3472 3473 * readelf.c (handle_relocs_rel): Use elf_scnshndx. 3474 (handle_relocs_rela): Likewise. 3475 3476 * readelf.c: Add lots of likely/unlikely. 3477 3478 * elflint.c: Minor cleanups. 3479 34802007-11-19 Roland McGrath <roland@redhat.com> 3481 3482 * readelf.c (print_ops): Handle all bad op codes gracefully. 3483 Print their numbers instead of just ???. 3484 34852007-11-09 Roland McGrath <roland@redhat.com> 3486 3487 * readelf.c (attr_callback): Handle DW_AT_data_location. 3488 Handle block forms to mean a DWARF expression for DW_AT_allocated, 3489 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride, 3490 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound, 3491 DW_AT_upper_bound. 3492 34932007-10-20 Roland McGrath <roland@redhat.com> 3494 3495 * unstrip.c (options): Update -R description. 3496 (struct symbol): Put symbol details a union with a size_t pointer 3497 `duplicate'. 3498 (compare_symbols_output): Use null ->name as marker for discard 3499 symbols, not zero *->map. 3500 (copy_elided_sections): Record forwarding pointers for discarded 3501 duplicates and fill SYMNDX_MAP elements through them. 3502 3503 * readelf.c (process_file): Set offline_next_address to 0 at start. 3504 (struct process_dwflmod_args): New type. 3505 (process_dwflmod): Take args in it, pass fd to process_elf_file. 3506 (process_file): Update caller; dup FD for passing to libdwfl. 3507 (process_elf_file): Take new arg FD. For ET_REL file when 3508 displaying data affected by libdwfl relocation, open a new Elf handle. 3509 35102007-10-17 Roland McGrath <roland@redhat.com> 3511 3512 * readelf.c (print_debug_line_section): For invalid data inside a 3513 unit with plausible length, keep printing at the next unit boundary. 3514 3515 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref. 3516 35172007-10-16 Roland McGrath <roland@redhat.com> 3518 3519 * readelf.c (hex_dump): Fix rounding error in whitespace calculation. 3520 35212007-10-15 Roland McGrath <roland@redhat.com> 3522 3523 * make-debug-archive.in: New file. 3524 * Makefile.am (EXTRA_DIST): Add it. 3525 (make-debug-archive): New target. 3526 (bin_SCRIPTS, CLEANFILES): Add it. 3527 35282007-10-10 Roland McGrath <roland@redhat.com> 3529 3530 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld. 3531 Use it to check MERGE|STRINGS for .debug_str. 3532 (check_sections): Handle exact_or_gnuld. 3533 35342007-10-08 Roland McGrath <roland@redhat.com> 3535 3536 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate 3537 64-bit struct timeval with 32-bit tv_usec. 3538 35392007-10-07 Roland McGrath <roland@redhat.com> 3540 3541 * readelf.c (check_archive_index): New function. 3542 (process_file): Call it. Change signature to take only fd and name. 3543 Use libdwfl to open the file, then iterate on its modules (multiple 3544 for an archive) to print file name and call process_elf_file. 3545 (main): Update caller. Let process_file do elf_begin. 3546 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions. 3547 (process_elf_file): Take only Dwfl_Module * argument. 3548 Don't print the file name here. 3549 (print_debug_*_section): Take Dwfl_Module * argument. 3550 (print_debug): Likewise. Update caller. 3551 (format_dwarf_addr): New function. 3552 (print_debug_ranges_section): Use it. 3553 (attr_callback): Likewise. 3554 (print_debug_line_section, print_debug_loc_section): Likewise. 3555 3556 * readelf.c (print_debug_ranges_section): Translate all strings. 3557 (print_debug_loc_section): Likewise. 3558 3559 * unstrip.c (copy_elided_sections): Initialize SEC. 3560 3561 * ar.c (do_oper_insert): Put trailing / on short names. 3562 3563 * arlib.h (MAX_AR_NAME_LEN): Decrease by one. 3564 3565 * arlib2.c (arlib_add_long_name): Adjust for header size. 3566 3567 * arlib.c (arlib_finalize): Pad long name table to keep size even. 3568 3569 * ar.c (do_oper_insert): Use write_retry for padding write. 3570 3571 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case. 3572 Unconditionally set FOUND[CNT]->elf when setting ->mem. 3573 (remember_long_name): New function. 3574 (do_oper_insert): Call it. Correctly use length of basename, 3575 not original name. Don't store long name twice for new member. 3576 35772007-10-06 Roland McGrath <roland@redhat.com> 3578 3579 * elflint.c (check_note): Skip empty segment. 3580 (check_note_section): Skip empty section. 3581 3582 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate. 3583 (handle_output_dir_module, handle_implicit_modules): Pass it down. 3584 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl. 3585 (compare_alloc_sections): Take new arg REL, ignore address if true. 3586 (compare_sections): Likewise, pass it down. 3587 (compare_sections_rel, compare_sections_nonrel): New functions. 3588 (find_alloc_sections_prelink, copy_elided_sections): Use them 3589 instead of compare_sections. 3590 (sections_match): New function, broken out of ... 3591 (find_alloc_section): ... here. 3592 (copy_elided_sections): Reorganize section match-up logic. 3593 Use sections_match for SHF_ALLOC in ET_REL. 3594 For ET_REL, let the nonzero sh_addr from the debug file dominate. 3595 3596 * unstrip.c (add_new_section_symbols): Take new arg REL. 3597 When true, do not update section symbol values. 3598 (collect_symbols): Likewise. Update section symbols with address 3599 of chosen output section, not original section. 3600 (check_symtab_section_symbols, copy_elided_sections): Update callers. 3601 3602 * unstrip.c (compare_alloc_sections): At the same address, preserve 3603 original section order. 3604 3605 * elflint.c (special_sections): Don't require MERGE|STRINGS for 3606 .debug_str, it didn't always have them with older tools. 3607 3608 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL. 3609 36102007-10-05 Roland McGrath <roland@redhat.com> 3611 3612 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in 3613 ET_REL file. 3614 3615 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose 3616 SHN_UNDEF as "bad section". Use shndx value in messages. 3617 3618 * elflint.c (special_sections): Add ".debug_str". Decrement namelen 3619 for ".debug" so it matches as a prefix. 3620 (IS_KNOWN_SPECIAL): New macro. 3621 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS 3622 type even under -d, for a .debug* or .shstrtab section. 3623 3624 * readelf.c (print_ops): Use hex for address operand. 3625 36262007-10-04 Roland McGrath <roland@redhat.com> 3627 3628 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for 3629 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for 3630 sections mapped to SHN_UNDEF. 3631 36322007-10-04 Ulrich Drepper <drepper@redhat.com> 3633 3634 * readelf.c (dump_archive_index): Avoid warning about uninitialized 3635 variable with older glibc versions. 3636 Add some branch prediction. 3637 36382007-10-04 Roland McGrath <roland@redhat.com> 3639 3640 * readelf.c (print_archive_index): New variable. 3641 (options, parse_opt): Accept -c/--archive-index to set it. 3642 (dump_archive_index): New function. 3643 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX. 3644 Call dump_archive_index on archives if set. 3645 (main): Update caller. 3646 (any_control_option): Give it file scope, moved out of ... 3647 (parse_opt): ... here. 3648 36492007-10-03 Roland McGrath <roland@redhat.com> 3650 3651 * unstrip.c (struct arg_info): Add `list' flag. 3652 (options, parse_opt): Grok -n/--list to set it. 3653 (list_module): New function. 3654 (handle_implicit_modules): Call it under -n. 3655 3656 * elflint.c (check_note_section): New function. 3657 (check_sections): Call it for SHT_NOTE. 3658 3659 * readelf.c (handle_notes): Use sections when available. 3660 3661 * elflint.c (check_note_data): New function, broken out of ... 3662 (check_note): ... here. Call it and elf_getdata_rawchunk. 3663 3664 * readelf.c (handle_auxv_note): Take offset as argument, not buffer. 3665 Use elf_getdata_rawchunk and gelf_getauxv. 3666 (handle_notes_data): New function, broken out of ... 3667 (handle_notes): ... here. Call it and elf_getdata_rawchunk. 3668 36692007-10-01 Roland McGrath <roland@redhat.com> 3670 3671 * readelf.c (hex_dump): Fix transposed subtraction generating spaces. 3672 3673 * readelf.c (hex_dump): Fix line header to be hex instead of decimal. 3674 36752007-09-10 Roland McGrath <roland@redhat.com> 3676 3677 * readelf.c (options): Give -p optional argument, alias --string-dump. 3678 (string_sections, string_sections_tail): New static variables. 3679 (parse_opt): Set them when -p has an argument. 3680 (print_string_section): New function, broken out of ... 3681 (print_strings): ... here. Call it. 3682 (dump_data_section): New function, broken out of ... 3683 (dump_data): ... here. Call it. 3684 (for_each_section_argument): New function, broken out of ... 3685 (dump_data): ... here. Call it. 3686 (dump_strings): New function. 3687 36882007-08-31 Roland McGrath <roland@redhat.com> 3689 3690 * readelf.c (print_strings): Typo fix. 3691 36922007-08-23 Roland McGrath <roland@redhat.com> 3693 3694 * readelf.c (printf_with_wrap): Function removed. 3695 (REGISTER_WRAP_COLUMN): New macro. 3696 (handle_core_register): Use print_core_item instead. 3697 (struct register_info): New type. 3698 (compare_registers, compare_register_sets): New functions. 3699 (register_bitpos, compare_sets_by_info): New functions. 3700 (handle_core_registers): Use those to segregate and sort registers 3701 for display. 3702 3703 * readelf.c (ITEM_WRAP_COLUMN): New macro. 3704 (print_core_item): New function. 3705 (handle_core_item): Use it instead of printf_with_wrap. 3706 (compare_core_items, compare_core_item_groups): New functions. 3707 (handle_core_items): Use them. Sort by group and force line breaks 3708 between groups. 3709 3710 * readelf.c (handle_core_registers, handle_core_items): New functions, 3711 broken out of ... 3712 (handle_core_note): ... here. Call them. 3713 37142007-08-22 Roland McGrath <roland@redhat.com> 3715 3716 * unstrip.c (new_shstrtab): New function, broken out of ... 3717 (copy_elided_sections): ... here. 3718 37192007-08-20 Roland McGrath <roland@redhat.com> 3720 3721 Avoid local function trampolines in nm binary. 3722 * nm.c (sort_by_address): Move to a static function instead of local 3723 inside show_symbols. 3724 (sort_by_name_strtab): New static variable. 3725 (sort_by_name): Use it. Move to a static function instead of local 3726 inside show_symbols. 3727 (show_symbols): Set sort_by_name_strtab. 3728 37292007-08-19 Roland McGrath <roland@redhat.com> 3730 3731 * readelf.c (handle_auxv_note): New function. 3732 (handle_notes): Call it. 3733 3734 * readelf.c (printf_with_wrap, convert): New functions. 3735 (handle_core_item, (handle_core_register): New functions. 3736 (handle_notes): Call those with details from ebl_core_note. 3737 37382007-08-12 Roland McGrath <roland@redhat.com> 3739 3740 * elflint.c (check_note): Accept type 0 with name "Linux". 3741 3742 * elflint.c (special_sections): Accept SHF_ALLOC for ".note". 3743 3744 * elflint.c (section_flags_string): Return "none" for 0, not "". 3745 37462007-08-11 Roland McGrath <roland@redhat.com> 3747 3748 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID. 3749 37502007-08-04 Ulrich Drepper <drepper@redhat.com> 3751 3752 * readelf.c (hex_dump): Use isprint to determine whether to print 3753 character itself or full stop character. 3754 (dump_data): No need to check endp for NULL after strtol call. 3755 37562007-08-03 Roland McGrath <roland@redhat.com> 3757 3758 * readelf.c (print_string_sections): New variable. 3759 (options, parse_opt): Handle --strings/-p to set it. 3760 (print_strings): New function. 3761 (process_elf_file): Call it under -p. 3762 3763 * readelf.c (options): Add hidden aliases --segments, --sections, 3764 as taken by binutils readelf. 3765 37662007-08-01 Roland McGrath <roland@redhat.com> 3767 3768 * readelf.c (dump_data_sections, dump_data_sections_tail): 3769 New variables. 3770 (options, parse_opt): Handle --hex-dump/-x, set them. 3771 (hex_dump): New function. 3772 (dump_data): New function, call it. 3773 (process_elf_file): Call it. 3774 37752007-07-25 Roland McGrath <roland@redhat.com> 3776 3777 * addr2line.c (show_symbols): New variable. 3778 (print_addrsym): New function. 3779 (handle_address): Call it. 3780 (options, parse_opt): Handle -S/--symbols. 3781 37822007-06-05 Ulrich Drepper <drepper@redhat.com> 3783 3784 * addr2line.c: Update for latest autoconf header. 3785 * ar.c: Likewise. 3786 * elfcmp.c: Likewise. 3787 * elflint.c: Likewise. 3788 * findtextrel.c: Likewise. 3789 * ld.c: Likewise. 3790 * ldgeneric.c: Likewise. 3791 * nm.c: Likewise. 3792 * objdump.c: Likewise. 3793 * ranlib.c: Likewise. 3794 * readelf.c: Likewise. 3795 * size.c: Likewise. 3796 * strings.c: Likewise. 3797 * strip.c: Likewise. 3798 * unstrip.c: Likewise. 3799 38002007-05-18 Roland McGrath <roland@redhat.com> 3801 3802 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with 3803 stripped file, so as not to duplicate a section copied in both. 3804 3805 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file. 3806 38072007-05-17 Roland McGrath <roland@redhat.com> 3808 3809 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0. 3810 3811 * unstrip.c (handle_file): Tweak BIAS != 0 warning. 3812 3813 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set, 3814 call make_directories here. 3815 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down. 3816 (handle_dwfl_module): Likewise. 3817 (handle_implicit_modules): Update callers. 3818 (handle_output_dir_module): Likewise. Don't do make_directories here. 3819 3820 * unstrip.c (get_section_name): New function, broken out of ... 3821 (copy_elided_sections): here. Update callers. 3822 (find_alloc_section): Broken out of ... 3823 (copy_elided_sections): ... here. Update caller. 3824 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA, 3825 update STT_SECTION symbols' st_value fields as a side effect. 3826 (check_symtab_section_symbols): Update caller. 3827 (add_new_section_symbols): Set st_value in symbols added. 3828 (collect_symbols): Reset S->value for STT_SECTION symbols recorded. 3829 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved 3830 from .bss to .dynbss. 3831 (find_alloc_sections_prelink): New function. Associate debug file 3832 allocated SHT_NOBITS shdrs with stripped moved by prelink via 3833 .gnu.prelink_undo information. 3834 (copy_elided_sections): Call it when we couldn't find every allocated 3835 section. Don't use a debug file non-NOBITS section if SHF_ALLOC. 3836 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM. 3837 (handle_file): Update callers. 3838 3839 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section 3840 named ".comment". 3841 3842 * elflint.c (check_sections): Fix association of segments with 3843 sections when p_memsz > p_filesz. 3844 38452007-04-29 Roland McGrath <roland@redhat.com> 3846 3847 * addr2line.c (options, main): Tweak argp group settings to fix 3848 usage output. 3849 38502007-04-28 Roland McGrath <roland@redhat.com> 3851 3852 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections' 3853 sizes to match sections adjusted in the stripped file. 3854 38552007-04-24 Roland McGrath <roland@redhat.com> 3856 3857 * elfcmp.c (OPT_HASH_INEXACT): New macro. 3858 (hash_inexact): New variable. 3859 (options, parse_opt): Add --hash-inexact option to set it. 3860 (hash_content_equivalent): New function. 3861 (main): Call it for differing SHT_HASH sections under --hash-inexact. 3862 38632007-04-23 Roland McGrath <roland@redhat.com> 3864 3865 * unstrip.c: New file. 3866 * Makefile.am (bin_PROGRAMS): Add it. 3867 (unstrip_LDADD): New variable. 3868 3869 * strip.c (options): Allow --output for -o. 3870 38712007-02-15 Ulrich Drepper <drepper@redhat.com> 3872 3873 * readelf.c: Remove unused code. Add a few consts. 3874 38752007-02-15 Roland McGrath <roland@redhat.com> 3876 3877 * readelf.c (print_debug): Fix brainos in SHDR test. 3878 38792007-02-05 Roland McGrath <roland@redhat.com> 3880 3881 * ar.c: Include <limits.h>, since we use LONG_MAX. 3882 38832007-02-05 Ulrich Drepper <drepper@redhat.com> 3884 3885 * ar.c: Add ugly hack to work around gcc complaining that we 3886 ignore fchown's return value. 3887 (do_oper_insert): Handle error when writing padding. 3888 * ranlib.c: Add fchown complain work around. 3889 3890 * arlib.c: Make symtab a global variable. Change all users. 3891 * arlib2.c: Likewise. 3892 * ranlib.c: Likewise. 3893 * ar.c: Likewise. 3894 * arlib.h: Declare it. 3895 38962007-01-11 Roland McGrath <roland@redhat.com> 3897 3898 * elflint.c (check_sections): Use ebl_machine_section_flag_check on 3899 SHF_MASKPROC bits separately from generic sh_flags validation. 3900 39012007-02-04 Ulrich Drepper <drepper@redhat.com> 3902 3903 * ar.c: New file. 3904 * arlib.c: New file. 3905 * arlib2.c: New file. 3906 * arlib.h: New file. 3907 * Makefile (noinst_LIBRARIES): Add libar. 3908 (libar_a_SOURCES): Define. 3909 (ar_LDADD): Define. 3910 (CFLAGS_ar): Define. 3911 * ranlib.c: Change to use arlib. 3912 3913 * elflint.c (check_symtab): Work around GNU ld bug which omits 3914 sections but not symbols in those sections. 3915 39162007-01-10 Ulrich Drepper <drepper@redhat.com> 3917 3918 * addr2line.c: Update copyright year. 3919 * elfcmp.c: Likewise. 3920 * elflint.c: Likewise. 3921 * findtextrel.c: Likewise. 3922 * ld.c: Likewise. 3923 * nm.c: Likewise. 3924 * objdump.c: Likewise. 3925 * ranlib.c: Likewise. 3926 * readelf.c: Likewise. 3927 * size.c: Likewise. 3928 * strings.c: Likewise. 3929 * strip.c: Likewise. 3930 39312006-12-09 Ulrich Drepper <drepper@redhat.com> 3932 3933 * elflint.c (compare_hash_gnu_hash): New function. Report if the 3934 two hash tables have different content (module expected omission 3935 of undefined symbols). 3936 39372006-10-31 Roland McGrath <roland@redhat.com> 3938 3939 * elflint.c (check_program_header): Don't complain about 3940 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE. 3941 39422006-09-19 Jakub Jelinek <jakub@redhat.com> 3943 3944 * strip.c (process_file): Disallow -f on archives. 3945 39462006-10-09 Roland McGrath <roland@redhat.com> 3947 3948 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC). 3949 39502006-08-29 Roland McGrath <roland@redhat.com> 3951 3952 * Makefile.am (MAINTAINERCLEANFILES): New variable. 3953 3954 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly. 3955 Reported by Christian Aichinger <Greek0@gmx.net>. 3956 3957 * elflint.c (valid_e_machine): Add EM_ALPHA. 3958 Reported by Christian Aichinger <Greek0@gmx.net>. 3959 39602006-08-08 Ulrich Drepper <drepper@redhat.com> 3961 3962 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. 3963 Keep track of which "high DT" entries are present. 3964 Check that either old or GNU-style hash table is present. 3965 If GNU-style hash table is used a symbol table is mandatory. 3966 Check that if any prelink entry is present all of them are. 3967 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash 3968 table if they don't refer to functions. 3969 39702006-07-17 Roland McGrath <roland@redhat.com> 3971 3972 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field. 3973 (add_version): Likewise for argument. 3974 (check_versym): Cast constant to GElf_Versym for comparison. 3975 39762006-07-12 Roland McGrath <roland@redhat.com> 3977 3978 * readelf.c (handle_gnu_hash): Add casts for machines where 3979 Elf32_Word != unsigned int. 3980 39812006-07-12 Ulrich Drepper <drepper@redhat.com> 3982 3983 * elflint.c (check_sysv_hash64): Fix printf format. 3984 39852006-07-11 Roland McGrath <roland@redhat.com> 3986 3987 * addr2line.c (options): English fix in -f doc string. 3988 3989 * addr2line.c (use_comp_dir): New variable. 3990 (options, parse_opt): Grok -A/--absolute to set it. 3991 (handle_address): If set, prepend dwfl_line_comp_dir results to 3992 relative file names. 3993 39942006-07-06 Ulrich Drepper <drepper@redhat.com> 3995 3996 * elflint.c: Adjust for latest new hash table format. 3997 * readelf.c: Likewise. 3998 3999 * elflint.c (check_versym): Ignore hidden bit when comparing version 4000 numbers. 4001 40022006-07-05 Ulrich Drepper <drepper@redhat.com> 4003 4004 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize 4005 discarded COMDAT symbols. 4006 4007 * i386_ld.c (elf_i386_count_relocations): Lot of corrections. 4008 (elf_i386_create_relocations): Likewise. 4009 * ld.h (struct symbol): Add local and hidden bits. 4010 * ld.c (create_special_section_symbol): These synthsized symbols 4011 are local and hidden. 4012 * ldgeneric.c (file_process2): Check whether input file matches 4013 the emulation. 4014 (fillin_special_symbol): Create symbols as local and/or hidden 4015 if requested. 4016 (ld_generic_create_outfile): Make local copy of symbol. 4017 Don't hide global, defined symbols in dynamic symbol table unless 4018 requested. Synthetic symbols have no version information. 4019 4020 * elflint.c: Add support for checking 64-bit SysV-style hash tables. 4021 * readelf.c: Add support for printing 64-bit SysV-style hash tables. 4022 40232006-07-04 Ulrich Drepper <drepper@redhat.com> 4024 4025 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT 4026 testing. 4027 40282006-07-03 Ulrich Drepper <drepper@redhat.com> 4029 4030 * elflint.c: Add testing of DT_GNU_HASH. 4031 * readelf.c: Implement showing histogram for DT_GNU_HASH section. 4032 4033 * Makefile.am: Add hacks to create dependency files for non-generic 4034 linker. 4035 40362006-06-12 Ulrich Drepper <drepper@redhat.com> 4037 4038 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp 4039 section if creating a DSO and no interpreter is given. 4040 (ld_generic_create_outfile): Don't store reference to symbols in 4041 discarded COMDAT groups. Don't create PHDR and INTERP program header 4042 for DSO if no interpreter is specified. 4043 (create_verneed_data): Pretty printing. 4044 4045 * ldscript.y (content): If a DSO is created don't set default 4046 interpreter from linker script. 4047 4048 * i386_ld.c (elf_i386_count_relocations): Do not add relocations 4049 for symbols in discarded COMDAT groups. 4050 (elf_i386_create_relocations): Likewise. 4051 * ld.h (struct scninfo): Add unused_comdat. 4052 * ldgeneric.c (add_section): Also check group signature when 4053 matching COMDAT sections. 4054 (add_relocatable_file): Ignore symbols in COMDAT group which are 4055 discarded. 4056 4057 * elflint.c (check_one_reloc): For *_NONE relocs only check type 4058 and symbol reference. 4059 40602006-06-11 Ulrich Drepper <drepper@redhat.com> 4061 4062 * elflint.c (check_dynamic): Fix checking value of tags which are 4063 offsets in the string section. Make sure DT_STRTAB points to the 4064 section referenced in sh_link. 4065 4066 * ld.c (options): Add headers. Add short option 'R' for '--rpath'. 4067 4068 * ld.c: Recognize --eh-frame-hdr option. 4069 * ld.h (struct ld_state): Add eh_frame_hdr field. 4070 * ldgeneric.c (struct unw_eh_frame_hdr): Define. 4071 4072 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of 4073 SH_FLAGS_COMBINE. 4074 (add_relocatable_file): Minor optimization of last change. 4075 (match_section): Don't preserve SHF_GROUP flag any longer. 4076 40772006-06-10 Ulrich Drepper <drepper@redhat.com> 4078 4079 * ld.c (parse_z_option): Recognize execstack and noexecstack. 4080 Handle record and ignore as position dependent options. 4081 (parse_z_option_2): Handle ignore and record here. 4082 * ld.h (struct ld_state): Add execstack field. 4083 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack 4084 sections. 4085 (ld_generic_create_outfile): Fix program header creation in native 4086 linker. Add PT_GNU_STACK program header. 4087 40882006-06-09 Ulrich Drepper <drepper@redhat.com> 4089 4090 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries 4091 for PLT entries if there is no local definition. 4092 4093 * ld.c (parse_option): Handle -z ignore like --as-needed and 4094 -z record like --no-as-needed. 4095 * ld.h (struct ld_state): Remove ignore_unused_dsos field. 4096 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by 4097 looping over DSOs. When deciding about adding DT_NEEDED entries 4098 use ->as_needed instead of ignore_unused_dsos. 4099 41002006-05-31 Ulrich Drepper <drepper@redhat.com> 4101 4102 * ld.c: Recognize --as-needed and --no-as-needed options. 4103 * ld.h (struct usedfile): Add as_needed field. 4104 (struct ld_state): Likewise. 4105 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from 4106 the list. 4107 * ldscript.y (filename_id_list): Split to correctly parse all 4108 combinations. 4109 (mark_as_needed): Fix loop. 4110 41112006-05-28 Ulrich Drepper <drepper@redhat.com> 4112 4113 * addr2line.c (print_dwarf_function): Use unsigned type for lineno 4114 and colno. 4115 41162006-05-27 Ulrich Drepper <drepper@redhat.com> 4117 4118 * readelf.c (handle_relocs_rela): Better notations for addon value. 4119 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version. 4120 41212006-04-04 Ulrich Drepper <drepper@redhat.com> 4122 4123 * addr2line.c: Update copyright year. 4124 * elfcmp.c: Likewise. 4125 * elflint.c: Likewise. 4126 * findtextrel.c: Likewise. 4127 * ld.c: Likewise. 4128 * nm.c: Likewise. 4129 * objdump.c: Likewise. 4130 * ranlib.c: Likewise. 4131 * readelf.c: Likewise. 4132 * size.c: Likewise. 4133 * strings.c: Likewise. 4134 * strip.c: Likewise. 4135 41362006-03-09 Roland McGrath <roland@redhat.com> 4137 4138 * Makefile.am (AM_LDFLAGS): New variable. 4139 41402006-03-01 Roland McGrath <roland@redhat.com> 4141 4142 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables 4143 for dwarf.h changes matching 3.0 spec. 4144 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise. 4145 41462005-12-04 Ulrich Drepper <drepper@redhat.com> 4147 4148 * elflint.c (check_one_reloc): If relocation section is not loaded, 4149 don't check whether the relocations modify read-only sections or 4150 loaded and unloaded sections. 4151 41522005-11-28 Ulrich Drepper <drepper@redhat.com> 4153 4154 * elflint.c (check_one_reloc): Take additional parameters. Use 4155 them to determine whether relocation is valid in this type of 4156 file. DSOs and executables can contain relocation sections in 4157 unloaded sections which just show the relocations the linker 4158 applied. Adjust all callers. 4159 (check_program_header): Check that PT_PHDR is loaded and that offset 4160 matches the one in the ELF header. 4161 41622005-10-26 Roland McGrath <roland@redhat.com> 4163 4164 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation. 4165 41662005-09-03 Ulrich Drepper <drepper@redhat.com> 4167 4168 * strip.c (handle_elf): Unify some error messages. 4169 * ld.c (main): Likewise. 4170 * ldgeneric.c (open_elf): Likewise. 4171 * elfcmp.c (main): Likewise. 4172 * elflint.c (check_elf_header): Likewise. 4173 4174 * size.c (process_file): Fix typo in error message. 4175 4176 * readelf.c: Lots of little cleanups. Use _unlocked functions. 4177 41782005-09-02 Ulrich Drepper <drepper@redhat.com> 4179 4180 * strings.c (main): Reset elfmap variable after munmap call. 4181 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap. 4182 41832005-08-28 Ulrich Drepper <drepper@redhat.com> 4184 4185 * ranlib.c: Don't define pread_retry and write_retry here. 4186 4187 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl. 4188 (CLEANFILES): Add *.gcno *.gcda *.gconv. 4189 4190 * strings.c (process_chunk): Reorder expressions in conditional 4191 (process_chunk_mb): Likewise. 4192 4193 * strings.c: New file. 4194 * Makefile.am (bin_PROGRAMS): Add strings. 4195 (strings_no_Wstring): Define. 4196 (strings_LDADD): Define. 4197 41982005-08-27 Roland McGrath <roland@redhat.com> 4199 4200 * addr2line.c (dwarf_diename_integrate): Function removed. 4201 (print_dwarf_function): Use plain dwarf_diename. 4202 42032005-08-24 Ulrich Drepper <drepper@redhat.com> 4204 4205 * elflint.c (check_versym): Versioned symbols should not have 4206 local binding. 4207 42082005-08-15 Ulrich Drepper <drepper@redhat.com> 4209 4210 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be 4211 undefined. 4212 4213 * Makefile.am: Add rules to build ranlib. 4214 * ranlib.c: New file. 4215 42162005-08-14 Roland McGrath <roland@redhat.com> 4217 4218 * elflint.c (check_sections): Use ebl_section_type_name and allow any 4219 sh_type it recognizes. 4220 4221 * elflint.c (check_sections): Print unknown flags in hex, don't 4222 truncate high bits. Print section number and name for unknown type. 4223 42242005-08-13 Roland McGrath <roland@redhat.com> 4225 4226 * elflint.c (check_program_header): Use ebl_segment_type_name and 4227 allow any p_type it recognizes. Include p_type value in error 4228 message for unknown type. 4229 42302005-08-13 Ulrich Drepper <drepper@redhat.com> 4231 4232 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr 4233 to ebl_check_special_symbol. 4234 (check_sections): Pass ehdr to ebl_bss_plt_p. 4235 42362005-08-12 Roland McGrath <roland@redhat.com> 4237 4238 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx 4239 refers to the right section if it's not SHN_ABS. 4240 Let ebl_check_special_symbol override _G_O_T_ value and size checks. 4241 4242 * elflint.c (check_sections): Don't complain about a non-NOBITS 4243 section taking no segment space, if it's sh_size is 0. 4244 4245 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should 4246 be PROGBITS or NOBITS. 4247 4248 * elflint.c (check_symtab): Use ebl_check_special_symbol to override 4249 standard st_value and st_size checks. 4250 42512005-07-28 Roland McGrath <roland@redhat.com> 4252 4253 * addr2line.c (options, parse_opt): Don't handle -e here. 4254 (executable): Variable removed. 4255 (argp_children): New static variable. 4256 (argp): Use it. Make const. 4257 (main): Fill in argp_children from dwfl_standard_argp (). 4258 Let libdwfl handle file selection, pass Dwfl handle to handle_address. 4259 (print_dwarf_function): New function. Try to figure out inline chain. 4260 (elf_getname): Function removed, libdwfl does it for us. 4261 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles. 4262 Use dwfl_module_addrname instead of elf_getname. 4263 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls. 4264 * Makefile.am (INCLUDES): Add libdwfl directory to path. 4265 42662005-08-10 Ulrich Drepper <drepper@redhat.com> 4267 4268 * strip.c (parse_opt): STATE parameter is now used. 4269 Various little cleanups. 4270 4271 * readelf.c (print_debug_line_section): Correct fallout of renaming 4272 of DW_LNS_set_epilog_begin. 4273 42742005-08-08 Roland McGrath <roland@redhat.com> 4275 4276 * strip.c (options, parse_opt): Grok -R .comment for compatibility 4277 with binutils strip. Likewise -d, -S, as aliases for -g. 4278 Likewise ignore -s/--strip-all. 4279 42802005-08-07 Roland McGrath <roland@redhat.com> 4281 4282 * strip.c (process_file): Open read-only when using a different output 4283 file. 4284 42852005-08-06 Ulrich Drepper <drepper@redhat.com> 4286 4287 * elflint.c (in_nobits_scn): New function. 4288 (check_versym): Allow references for defined symbols against versions 4289 of other DSOs also for symbols in nobits sections. 4290 Move a few variables around. 4291 4292 * Makefile.am (AM_CFLAGS): Avoid duplication. 4293 Link with statis libs if BUILD_STATIC. 4294 42952005-08-05 Ulrich Drepper <drepper@redhat.com> 4296 4297 * elflint.c: Many, many more tests. Mostly related to symbol 4298 versioning. Those sections should now be completely checked. 4299 4300 * readelf.c (print_dynamic): Use gelf_offscn. 4301 43022005-08-04 Ulrich Drepper <drepper@redhat.com> 4303 4304 * elflint.c: Add lots more tests: more extension symbol table sanity, 4305 versioning section tests, hash table tests. General cleanup. 4306 43072005-08-02 Ulrich Drepper <drepper@redhat.com> 4308 4309 * objdump.c: New file. 4310 * Makefile.am (bin_PROGRAMS): Add objdump. 4311 (objdump_LDADD): Define. 4312 4313 * elflint.c (check_reloc_shdr): New function split out from check_rela 4314 and check_rel. 4315 (check_one_reloc): New function. Likewise. 4316 (check_rela): Use check_reloc_shdr and check_one_reloc. 4317 (check_rel): Likewise. 4318 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic 4319 section. 4320 Add checks that relocations against read-only segments are flagged, 4321 that the text relocation flag is not set unnecessarily, and that 4322 relocations in one section are either against loaded or not-loaded 4323 segments. 4324 43252005-08-01 Ulrich Drepper <drepper@redhat.com> 4326 4327 * elfcmp.c (main): Ignore section count and section name string table 4328 section index. 4329 43302005-07-27 Roland McGrath <roland@redhat.com> 4331 4332 * elfcmp.c: Include <locale.h>. 4333 43342005-07-27 Ulrich Drepper <drepper@redhat.com> 4335 4336 * elfcmp.c: Print name and index of differing section. 4337 43382005-07-24 Ulrich Drepper <drepper@redhat.com> 4339 4340 * elfcmp.c: Implement comparing gaps between sections. 4341 43422005-07-23 Ulrich Drepper <drepper@redhat.com> 4343 4344 * elflint.c: Include libeblP.h instead of libebl.h. 4345 * nm.c: Likewise. 4346 * readelf.c: Likewise. 4347 * elfcmp.c: Likewise. 4348 4349 * elfcmp.c (main): Compare individual ELF header fields, excluding 4350 e_shoff instead of the whole struct at once. 4351 Use ebl_section_strip_p instead of SECTION_STRIP_P. 4352 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P. 4353 43542005-07-22 Ulrich Drepper <drepper@redhat.com> 4355 4356 * elfcmp.c (main): Take empty section into account when comparing 4357 section content. 4358 4359 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before 4360 using it. 4361 43622005-07-21 Ulrich Drepper <drepper@redhat.com> 4363 4364 * elfcmp.c: New file. 4365 * Makefile.am (bin_PROGRAMS): Add elfcmp. 4366 (elfcmp_LDADD): Define. 4367 4368 * elflint.c (check_rela): Check that copy relocations only reference 4369 object symbols or symbols with unknown type. 4370 (check_rel): Likewise. 4371 43722005-06-08 Roland McGrath <roland@redhat.com> 4373 4374 * readelf.c (print_ops): Add consts. 4375 43762005-05-31 Roland McGrath <roland@redhat.com> 4377 4378 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's 4379 abbreviations. Print a header line before each CU section. 4380 4381 * readelf.c (print_debug_loc_section): Fix indentation for larger 4382 address size. 4383 43842005-05-30 Roland McGrath <roland@redhat.com> 4385 4386 * readelf.c (print_debug_line_section): Print section offset of each 4387 CU's table, so they are easy to find from seeing the stmt_list value. 4388 4389 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>. 4390 (attr_callback): Grok DW_AT_ranges and print offset in hex. 4391 4392 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format. 4393 (print_debug_ranges_section, print_debug_loc_section): Likewise. 4394 4395 * readelf.c (print_ops): Take different args for indentation control. 4396 (attr_callback): Caller updated. 4397 Grok several more block-form attributes as being location expressions. 4398 For those same attributes with udata forms, format output differently 4399 for location list offset. 4400 (print_debug_loc_section): Implement it for real. 4401 4402 * readelf.c (options): Mention ranges for --debug-dump. 4403 (enum section_e): Add section_ranges. 4404 (parse_opt): Grok "ranges" for -w/--debug-dump. 4405 (print_debug_ranges_section): New function. 4406 (print_debug): Handle .debug_ranges section. 4407 44082005-05-30 Ulrich Drepper <drepper@redhat.com> 4409 4410 * readelf.c (handle_notes): At least x86-64 need not have the note 4411 section values aligned to 8 bytes. 4412 44132005-05-18 Ulrich Drepper <drepper@redhat.com> 4414 4415 * readelf.c (dwarf_tag_string): Add new tags. 4416 44172005-05-08 Roland McGrath <roland@redhat.com> 4418 4419 * strip.c (handle_elf): Don't translate hash and versym data formats, 4420 elf_getdata already did it for us. 4421 44222005-05-07 Ulrich Drepper <drepper@redhat.com> 4423 4424 * Makefile.am (findtextrel_LDADD): Add $(libmudflap). 4425 (addr2line_LDADD): Likewise. 4426 44272005-05-03 Roland McGrath <roland@redhat.com> 4428 4429 * strip.c (handle_elf): Apply symbol table fixups to discarded 4430 relocation sections when they are being saved in the debug file. 4431 4432 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom 4433 and gelf_xlatetof, not the native byte order. 4434 4435 * strip.c (parse_opt): Give error if -f or -o is repeated. 4436 (main): Exit if argp_parse returns nonzero. 4437 4438 * strip.c (debug_fname_embed): New variable. 4439 (options, parse_opt): New option -F to set it. 4440 44412005-05-07 Ulrich Drepper <drepper@redhat.com> 4442 4443 * readelf.c (parse_opt): Make any_control_option variable 4444 local. Simplify some tests. 4445 44462005-05-03 Roland McGrath <roland@redhat.com> 4447 4448 * strip.c (crc32_file): Function removed (now in ../lib). 4449 44502005-05-03 Roland McGrath <roland@redhat.com> 4451 4452 * elflint.c (is_debuginfo): New variable. 4453 (options, parse_opt): New option --debuginfo/-d to set it. 4454 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS. 4455 (check_note): If is_debuginfo, don't try to get note contents. 4456 44572005-04-24 Ulrich Drepper <drepper@redhat.com> 4458 4459 * readelf.c (print_debug_abbrev_section): Don't print error when end of 4460 section reached. 4461 44622005-04-14 Ulrich Drepper <drepper@redhat.com> 4463 4464 * readelf.c (dwarf_encoding_string): New function. 4465 (dwarf_inline_string): New function. 4466 (dwarf_access_string): New function. 4467 (dwarf_visibility_string): New function. 4468 (dwarf_virtuality_string): New function. 4469 (dwarf_identifier_case_string): New function. 4470 (dwarf_calling_convention_string): New function. 4471 (dwarf_ordering_string): New function. 4472 (dwarf_discr_list_string): New function. 4473 (attr_callback): Decode man more attribute values. 4474 44752005-04-01 Ulrich Drepper <drepper@redhat.com> 4476 4477 * addr2line.c: Finish implementation of -f option. 4478 44792005-03-29 Ulrich Drepper <drepper@redhat.com> 4480 4481 * addr2line.c: New file. 4482 * Makefile.am (bin_PROGRAMS): Add addr2line. 4483 Define addr2line_LDADD. 4484 4485 * findtextrel.c: Use new dwarf_addrdie function. 4486 4487 * findtextrel.c: Fix usage message and re-add accidentally removed 4488 line. 4489 44902005-03-28 Ulrich Drepper <drepper@redhat.com> 4491 4492 * findtextrel.c: New file. 4493 * Makefile: Add rules to build findtextrel. 4494 44952005-02-15 Ulrich Drepper <drepper@redhat.com> 4496 4497 * ldlex.l: Provide ECHO definition to avoid warning. 4498 4499 * elflint.c (check_program_header): Fix typo in RELRO test. 4500 4501 * Makefile.am (AM_CFLAGS): Add more warning options. 4502 * elflint.c: Fix warnings introduced by the new warning options. 4503 * i386_ld.c: Likewise. 4504 * ld.c: Likewise. 4505 * ld.h: Likewise. 4506 * ldgeneric.c: Likewise. 4507 * nm.c: Likewise. 4508 * readelf.c: Likewise. 4509 * sectionhash.c: Likewise. 4510 * size.c: Likewise. 4511 * string.c: Likewise. 4512 45132005-02-05 Ulrich Drepper <drepper@redhat.com> 4514 4515 * Makefile.am: Check for text relocations in constructed DSOs. 4516 4517 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps 4518 with -lmudflap. 4519 4520 * ldscript.y: Add as_needed handling. 4521 * ldlex.l: Recognize AS_NEEDED token. 4522 * ld.h (struct filename_list): Add as_needed flag. 4523 45242005-02-04 Ulrich Drepper <drepper@redhat.com> 4525 4526 * elflint.c (check_symtab): Correctly determine size of GOT section. 4527 45282005-01-19 Ulrich Drepper <drepper@redhat.com> 4529 4530 * ld.c: Remove unnecessary more_help function. Print bug report 4531 address using argp. 4532 * strip.c: Likewise. 4533 * size.c: Likewise. 4534 * nm.c: Likewise. 4535 * readelf.c: Likewise. 4536 * elflint.c: Likewise. 4537 4538 * elflint.c (main): Don't check for parameter problems here. 4539 (parse_opt): Do it here, where we get informed about some of them 4540 anyway. 4541 4542 * readelf.c (main): Don't check for parameter problems here. 4543 (parse_opt): Do it here, where we get informed about some of them 4544 anyway. 4545 45462005-01-11 Ulrich Drepper <drepper@redhat.com> 4547 4548 * strip.c: Update copyright year. 4549 * readelf.c: Likewise. 4550 * size.c: Likewise. 4551 * nm.c: Likewise. 4552 * ld.c: Likewise. 4553 * elflint.c: Likewise. 4554 4555 * elflint.c (check_symtab): Don't warn about wrong size for 4556 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld. 4557 45582004-10-05 Ulrich Drepper <drepper@redhat.com> 4559 4560 * readelf.c (print_phdr): In section mapping, also indicate 4561 sections in read-only segments. 4562 45632004-09-25 Ulrich Drepper <drepper@redhat.com> 4564 4565 * readelf.c: Make compile with gcc 4.0. 4566 * strip.c: Likewise. 4567 45682004-08-16 Ulrich Drepper <drepper@redhat.com> 4569 4570 * strip.c (handle_elf): Rewrite dynamic memory handling to use of 4571 allocate to work around gcc 3.4 bug. 4572 45732004-01-25 Ulrich Drepper <drepper@redhat.com> 4574 4575 * ldlex.l (invalid_char): Better error message. 4576 45772004-01-23 Ulrich Drepper <drepper@redhat.com> 4578 4579 * readelf.c: Print SHT_GNU_LIBLIST sections. 4580 4581 * none_ld.c: New file. 4582 45832004-01-21 Ulrich Drepper <drepper@redhat.com> 4584 4585 * Makefile.am: Enable building of machine specific linker. 4586 45872004-01-20 Ulrich Drepper <drepper@redhat.com> 4588 4589 * Makefile.am: Support building with mudflap. 4590 4591 * i386_ld.c: Fix warnings gcc 3.4 spits out. 4592 * ldgeneric.c: Likewise. 4593 * ldscript.y: Likewise. 4594 * readelf.c: Likewise. 4595 * strip.c: Likewise. 4596 4597 * readelf.c (print_debug_line_section): Determine address size 4598 correctly. 4599 46002004-01-19 Ulrich Drepper <drepper@redhat.com> 4601 4602 * readelf.c (print_phdr): Show which sections are covered by the 4603 PT_GNU_RELRO entry. 4604 4605 * elflint.c (check_program_header): Check PT_GNU_RELRO entry. 4606 4607 * readelf.c (print_debug_macinfo_section): Implement. 4608 46092004-01-18 Ulrich Drepper <drepper@redhat.com> 4610 4611 * readelf.c (print_debug_line_section): Implement. 4612 46132004-01-17 Ulrich Drepper <drepper@redhat.com> 4614 4615 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE. 4616 * src/ld.c: Likewise. 4617 * src/nm.c: Likewise. 4618 * src/readelf.c: Likewise. 4619 * src/size.c: Likewise. 4620 * src/strip.c: Likewise. 4621 4622 * strip.c: Add a few more unlikely. Reduce scope of some variables. 4623 4624 * Makefile.am: Support building with mudflap. 4625 46262004-01-16 Ulrich Drepper <drepper@redhat.com> 4627 4628 * readelf.c (print_debug_info_section): Free dies memory. 4629 4630 * readelf.c: Print .debug_info section content. 4631 46322004-01-13 Ulrich Drepper <drepper@redhat.com> 4633 4634 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE. 4635 46362004-01-12 Ulrich Drepper <drepper@redhat.com> 4637 4638 * readelf.c (print_debug_aranges): Implement using libdw. 4639 46402004-01-11 Ulrich Drepper <drepper@redhat.com> 4641 4642 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change. 4643 4644 * readelf.c: Use libdw instead of libdwarf. Not all of the old 4645 behavior is available yet. 4646 * Makefile.am: Link readelf with libdw. Remove libdwarf include path. 4647 46482004-01-09 Ulrich Drepper <drepper@redhat.com> 4649 4650 * nm.c (get_local_names): Adjust call to dwarf_nextcu. 4651 4652 * nm.c: Implement getting information about local variables. 4653 46542004-01-07 Ulrich Drepper <drepper@redhat.com> 4655 4656 * nm.c: Read also debug information for local symbols. 4657 46582004-01-05 Ulrich Drepper <drepper@redhat.com> 4659 4660 * nm.c: Shuffle dwarf handling code around so the maximum column 4661 width can be computed ahead of printing. Avoid collection symbols 4662 which are not printed anyway. 4663 4664 * nm.c: Rewrite dwarf handling to use libdw. 4665 * Makefile.am (AM_CFLAGS): Add -std parameter. 4666 (INCLUDES): Find header in libdw subdir. 4667 (nm_LDADD): Replace libdwarf with libdw. 4668 4669 * elflint.c: Update copyright year. 4670 * readelf.c: Likewise. 4671 * size.c: Likewise. 4672 * strip.c: Likewise. 4673 * nm.c: Likewise. 4674 46752003-12-31 Ulrich Drepper <drepper@redhat.com> 4676 4677 * strip.c (process_file): Close file before returning. 4678 46792003-11-19 Ulrich Drepper <drepper@redhat.com> 4680 4681 * readelf.c (handle_dynamic): Make column for tag name wider. 4682 46832003-09-29 Ulrich Drepper <drepper@redhat.com> 4684 4685 * readelf.c (handle_dynamic): Always terminate tag name with a space. 4686 46872003-09-25 Ulrich Drepper <drepper@redhat.com> 4688 4689 * strip.c (process_file): Don't mmap the input file, we modify the 4690 data structures and don't want the change end up on disk. 4691 46922003-09-23 Jakub Jelinek <jakub@redhat.com> 4693 4694 * unaligned.h (union u_2ubyte_unaligned, 4695 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add 4696 packed attribute. 4697 (add_2ubyte_unaligned, add_4ubyte_unaligned, 4698 add_8ubyte_unaligned): Avoid nesting bswap_NN macros. 4699 Read/store value through _ptr->u instead of *_ptr. 4700 47012003-09-22 Ulrich Drepper <drepper@redhat.com> 4702 4703 * size.c (show_sysv): Change type of maxlen to int. 4704 4705 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit 4706 buckets. 4707 4708 * i386_ld.c: Many many fixes and extensions. 4709 * ld.c: Likewise. 4710 * ldgeneric.c: Likewise. 4711 47122003-08-16 Ulrich Drepper <drepper@redhat.com> 4713 4714 * ldgeneric.c (check_definition): Don't add symbol on dso_list if 4715 the reference is from another DSO. 4716 47172003-08-15 Ulrich Drepper <drepper@redhat.com> 4718 4719 * ldgeneric.c (find_entry_point): It is no fatal error if no entry 4720 point is found when creating a DSO. 4721 47222003-08-14 Ulrich Drepper <drepper@redhat.com> 4723 4724 * ld.c (main): Always call FLAG_UNRESOLVED. 4725 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about 4726 undefined symbols if not creating DSO or ld_state.nodefs is not set. 4727 47282003-08-13 Ulrich Drepper <drepper@redhat.com> 4729 4730 * Makefile.in: Depend on libebl.a, not libebl.so. 4731 4732 * ld.c (main): Mark stream for linker script as locked by caller. 4733 (read_version_script): Likewise. 4734 * ldlex.c: Define fread and fwrite to _unlocked variant. 4735 4736 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of 4737 target_bswap_32. 4738 * unaligned.h: Define target_bswap_16, target_bswap_32, and 4739 target_bswap_64. 4740 (store_2ubyte_unaligned, store_4ubyte_unaligned, 4741 store_8ubyte_unaligned): Define using new macros. 4742 47432003-08-12 Ulrich Drepper <drepper@redhat.com> 4744 4745 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access 4746 possibly unaligned memory. Support use of big endian machines. 4747 47482003-08-11 Ulrich Drepper <drepper@redhat.com> 4749 4750 * Moved to CVS archive. 4751