12014-12-18 Ulrich Drepper <drepper@gmail.com> 2 3 * Makefile.am: Suppress output of textrel_check command. 4 52014-12-17 Mark Wielaard <mjw@redhat.com> 6 7 * readelf.c (print_cfa_program): Add bounds check before each op that 8 takes at least one argument. 9 102014-12-16 Mark Wielaard <mjw@redhat.com> 11 12 * readelf.c (print_decoded_line_section): Print dwarf_errmsg if 13 dwarf_onesrcline or dwarf_linesrc fails. 14 152014-12-16 Mark Wielaard <mjw@redhat.com> 16 17 * readelf.c (print_debug_line_section): Correct overflow check for 18 unit_length. 19 (print_debug_aranges_section): Correct overflow check for length. 20 212014-12-15 Mark Wielaard <mjw@redhat.com> 22 23 * readelf.c (notice_listptr): Return false if offset doesn't fit 24 in 61-bits. 25 (attr_callback): Warn if loclist or rangelist offset doesn't fit. 26 272014-12-15 Mark Wielaard <mjw@redhat.com> 28 29 * readelf.c (print_ops): Don't assert when addr_size or ref_size 30 is not 4 or 8, just report invalid data. 31 322014-12-15 Mark Wielaard <mjw@redhat.com> 33 34 * readelf.c (print_gdb_index_section): Add more bounds checks. 35 362014-12-15 Mark Wielaard <mjw@redhat.com> 37 38 * readelf.c (print_debug_line_section): Check there is enough room 39 for DW_LNE_set_address argument. Make sure there is enough room 40 for the the initial unit_length. 41 422014-12-14 Mark Wielaard <mjw@redhat.com> 43 44 * elflint.c (check_attributes): Call get_uleb128 with end pointer. 45 * readelf.c (print_attributes): Likewise. 46 (print_ops): Likewise and also for get_sleb128. 47 (print_cfa_program): Likewise and add more readp bounds checks. 48 (read_encoded): Likewise. 49 (print_debug_frame_section): Likewise. 50 (print_debug_line_section): Likewise. 51 (print_debug_macinfo_section): Likewise. 52 (print_debug_macro_section): Likewise. 53 (print_debug_exception_table): Likewise. 54 552014-12-16 Mark Wielaard <mjw@redhat.com> 56 57 * elfcmp.c (compare_Elf32_Word): Make sure (unsigned) Elf32_Word 58 difference doesn't wrap around before returning as int. 59 602014-12-11 Mark Wielaard <mjw@redhat.com> 61 62 * readelf.c (print_debug_exception_table): Check TType base offset 63 and Action table are sane. 64 652014-12-11 Mark Wielaard <mjw@redhat.com> 66 67 * readelf.c (print_debug_frame_section): Check number of augmentation 68 chars to print. 69 702014-12-09 Mark Wielaard <mjw@redhat.com> 71 72 * readelf.c (handle_file_note): Check count fits data section and 73 doesn't overflow fptr. 74 752014-12-08 Mark Wielaard <mjw@redhat.com> 76 77 * readelf.c (print_debug_exception_table): Report invalid data if 78 action table doesn't immediately follow call site table. 79 802014-12-10 Josh Stone <jistone@redhat.com> 81 82 * addr2line.c (get_diename): New, get linkage_name or name. 83 * addr2line.c (print_dwarf_function): Use get_diename. 84 * addr2line.c (handle_address): Likewise. 85 * addr2line.c (print_diesym): Removed. 86 872014-12-10 Josh Stone <jistone@redhat.com> 88 89 * addr2line.c (handle_address): Find the proper inline parents. 90 912014-12-07 Mark Wielaard <mjw@redhat.com> 92 93 * readelf.c (print_debug_line_section): max_ops_per_instr cannot 94 be zero. 95 962014-12-07 Mark Wielaard <mjw@redhat.com> 97 98 * readelf.c (print_ops): Handle zero ref_size for DW_OP_call_ref 99 and DW_OP_GNU_implicit_pointer. 100 1012014-12-04 Mark Wielaard <mjw@redhat.com> 102 103 * objdump.c (show_relocs_x): Make sure destshdr exists. 104 (show_relocs_rel): Don't rely on shdr->sh_entsize, use gelf_fsize. 105 (show_relocs_rela): Likewise. 106 (show_relocs): Make sure destshdr, symshdr and symdata exists. 107 1082014-11-30 Mark Wielaard <mjw@redhat.com> 109 110 * readelf.c (handle_sysv_hash64): Fix overflow check. 111 1122014-11-28 Mark Wielaard <mjw@redhat.com> 113 114 * readelf.c (handle_relocs_rel): Don't reuse destshdr to store 115 section header of a relocation against a STT_SECTION symbol. Use 116 a new local variable secshdr. 117 (handle_relocs_rela): Likewise. 118 1192014-11-26 Mark Wielaard <mjw@redhat.com> 120 121 * readelf.c (print_debug_aranges_section): Cast Dwarf_Word length 122 to ptrdiff_t for comparison. 123 1242014-11-24 Mark Wielaard <mjw@redhat.com> 125 126 * readelf.c (print_debug_line_section): Check line_range is not zero 127 before usage. 128 1292014-11-23 Mark Wielaard <mjw@redhat.com> 130 131 * readelf.c (print_debug_aranges_section): Check length to catch 132 nexthdr overflow. 133 1342014-11-21 Mark Wielaard <mjw@redhat.com> 135 136 * readelf.c (print_attributes): Guard against empty section. 137 Document attribute format. Break when vendor name isn't terminated. 138 Add overflow check for subsection_len. Handle both gnu and non-gnu 139 attribute tags. 140 1412014-11-22 Mark Wielaard <mjw@redhat.com> 142 143 * elflint.c (check_sections): Call ebl_bss_plt_p without ehdr. 144 * findtextrel.c (process_file): Use elf_getphdrnum. 145 * readelf.c (process_elf_file): Remove redundant ehdr->e_phoff check. 146 (print_phdr): Check phnum. 147 * size.c (show_segments): Use elf_getphdrnum. 148 * strip.c (handle_elf): Likewise. 149 * unstrip.c (copy_elf): Likewise. 150 (copy_elided_sections): Likewise. 151 (handle_file): Likewise. 152 1532014-11-18 Mark Wielaard <mjw@redhat.com> 154 155 * readelf.c (print_cfa_program): Fix sanity check of DW_FORM_block 156 length. 157 1582014-11-17 Mark Wielaard <mjw@redhat.com> 159 160 * readelf.c (handle_verneed): Check vna_next and vn_next exist. 161 (handle_verdef): Check vda_next and vd_next exist. 162 (handle_versym): Check vd_next, vna_next and vn_next exist. 163 Check vername and filename are not NULL before use. 164 1652014-11-17 Mark Wielaard <mjw@redhat.com> 166 167 * elfcmp.c (main): Check section names are NULL before use. 168 * objdump.c (section_match): Likewise. 169 * size.c (show_sysv): Likewise. 170 1712014-11-17 Mark Wielaard <mjw@redhat.com> 172 173 * readelf.c (print_debug_frame_section): Warn if ptr_size is not 4 174 or 8 instead of just calling print_cfa_program. 175 1762014-11-16 Mark Wielaard <mjw@redhat.com> 177 178 * readelf (process_elf_file): Set phnum to zero if there aren't 179 actually any pheaders. 180 (print_phdr): Check there actually is a phdr. 181 1822014-11-16 Mark Wielaard <mjw@redhat.com> 183 184 * readelf.c (print_cfa_program): Check block len before calling 185 print_ops. 186 1872014-11-14 Mark Wielaard <mjw@redhat.com> 188 189 * readelf.c (print_debug_frame_section): Sanity Check CIE 190 unit_length and augmentationlen. 191 1922014-11-14 Mark Wielaard <mjw@redhat.com> 193 194 * readelf.c (handle_versym): Check def == NULL before use. 195 1962014-11-08 Mark Wielaard <mjw@redhat.com> 197 198 * readelf.c (handle_versym): Initialize vername and filename array 199 elements. 200 2012014-11-07 Mark Wielaard <mjw@redhat.com> 202 203 * readelf.c (handle_sysv_hash): Sanity check section contents. 204 (handle_sysv_hash64): Likewise. 205 (handle_gnu_hash): Likewise. 206 2072014-09-14 Petr Machata <pmachata@redhat.com> 208 209 * readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly. 210 2112014-09-12 Petr Machata <pmachata@redhat.com> 212 213 * readelf.c (encoded_ptr_size): In the switch statement, change 214 magic constants 3 and 4 to DW_EH_PE_* counterparts. Still accept 215 0. Print diagnostic for anything else. 216 2172014-08-25 Josh Stone <jistone@redhat.com> 218 219 * Makefile.am: Prevent premature @AR@ replacement in a sed expression. 220 2212014-07-04 Menanteau Guy <menantea@linux.vnet.ibm.com> 222 Mark Wielaard <mjw@redhat.com> 223 224 * elflint (check_symtab): Add ".TOC." to the list of possibly 225 dangling symbols because of sourceware PR13621. 226 2272014-06-14 Mark Wielaard <mjw@redhat.com> 228 229 * elflint (check_symtab): Use ebl_func_addr_mask on st_value. 230 2312014-05-27 Mark Wielaard <mjw@redhat.com> 232 233 * readelf.c (print_debug): Skip section if name is NULL. 234 2352014-05-26 Mark Wielaard <mjw@redhat.com> 236 237 * readelf.c (handle_relocs_rela): Print header like handle_relocs_rel 238 does, when sh_info == 0. 239 2402014-05-26 Mark Wielaard <mjw@redhat.com> 241 242 * unstrip.c (find_alloc_sections_prelink): Allow non-split .bss 243 section when sh_size of the original and undo .bss section are equal. 244 2452014-05-26 Mark Wielaard <mjw@redhat.com> 246 247 * unstrip.c (options): Add --force, -F. 248 (struct arg_info): Add bool force. 249 (parse_opt): Handle 'F', set force. 250 (handle_explicit_files): Add force argument, add warn function, 251 separate check ehdr field checks, use warn. 252 (handle_dwfl_module): Add force argument, pass on to 253 handle_explicit_files. 254 (handle_output_dir_module): Add force argument, pass on to 255 handle_dwfl_module. 256 (handle_implicit_modules): Pass info->force to handle_dwfl_module and 257 handle_output_dir_module. 258 (main): Pass info.force to handle_explicit_files. 259 2602014-05-19 Mark Wielaard <mjw@redhat.com> 261 262 * elflint.c (check_reloc_shdr): Check ebl_check_reloc_target_type. 263 2642014-05-01 Mark Wielaard <mjw@redhat.com> 265 266 * readelf.c (find_no_debuginfo): Call dwfl_standard_find_debuginfo 267 if looking for alternate debug file. 268 2692014-04-11 Mark Wielaard <mjw@redhat.com> 270 271 * Makefile.am (AM_CPPFLAGS): Add -I libdwelf. 272 2732014-04-22 Mark Wielaard <mjw@redhat.com> 274 275 * readelf.c (handle_core_item): Make sure variable length array 276 contains at least enough space for terminating zero char. 277 2782014-04-22 Mark Wielaard <mjw@redhat.com> 279 280 * readelf.c (print_gdb_index_section): Use unsigned int for 31 bits 281 left shift. 282 2832014-03-13 Mark Wielaard <mjw@redhat.com> 284 285 * Makefile.am: Remove no_mudflap.os. Remove libmudflap from all 286 LDADD lines. 287 * strings.c (process_chunk): Remove _MUDFLAP condition. 288 2892014-04-09 Mark Wielaard <mjw@redhat.com> 290 291 * readelf.c (print_debug_aranges_section): Don't get the raw section 292 data, use the possibly decompressed .[z]debug sectiondata. 293 (print_debug_ranges_section): Likewise. 294 (print_debug_frame_section): Likewise. 295 (print_debug_line_section): Likewise. 296 (print_debug_loc_section): Likewise. 297 (print_debug_macinfo_section): Likewise. 298 (print_debug_macro_section): Likewise. 299 3002014-04-10 Mark Wielaard <mjw@redhat.com> 301 302 * readelf.c (buf_read_ulong): Pass actual long size to convert. 303 3042014-03-05 Mark Wielaard <mjw@redhat.com> 305 306 * readelf.c (attr_callback): Print DW_FORM_sdata values as signed 307 numbers. 308 3092014-02-24 Mark Wielaard <mjw@redhat.com> 310 311 * readelf (print_phdr): Check there is a SHT_PROGBITS section at the 312 offset given by p_offsets for a PT_INTERP segment before trying to 313 display the interpreter string. 314 3152014-02-07 Mark Wielaard <mjw@redhat.com> 316 317 * readelf.c (print_phdr): Check phdr->p_filesz and make sure 318 interpreter string is zero terminated before calling printf. 319 3202014-01-22 Mark Wielaard <mjw@redhat.com> 321 322 * Makefile.am (nm_no_Wformat): Removed. 323 (size_no_Wformat): Likewise. 324 (strings_no_Wformat): Likewise. 325 (addr2line_no_Wformat): Likewise. 326 * size.c (show_sysv): Use fmtstr directly as literal in printf. 327 (show_sysv_one_line): Likewise. 328 * strings.c (locfmt): Removed. 329 (radix): New static enum. 330 (parse_opt): Set radix, not locfmt. 331 (process_chunk_mb): Use fmtstr directly as literal in printf based 332 on radix. 333 (process_chunk): Likewise. 334 * nm.c (show_symbols_sysv): Use fmtstr directly as literal in printf. 335 (show_symbols_bsd): Likewise. 336 (show_symbols_posix): Likewise. 337 3382014-01-21 Mark Wielaard <mjw@redhat.com> 339 340 * stack.c (show_inlines): New static boolean. 341 (print_frame): New function split out from... 342 (print_frames): ..here. If show_inlines is true and we found a 343 DIE for the frame address, call print_inline_frames otherwise 344 call print_frame. Keep track of and track frame_nr. 345 (print_inline_frames): New function. 346 (parse_opt): Handle '-i'. 347 (main): Add 'i' to options. 348 3492014-01-27 Mark Wielaard <mjw@redhat.com> 350 351 * stack.c (maxframes): Initialize to 256. 352 (main): Document new default in options. Document magic number 353 used in frames.allocated initialization. 354 3552014-01-20 Mark Wielaard <mjw@redhat.com> 356 357 * stack.c (show_debugname): New static boolean. 358 (die_name): New function. 359 (print_frames): If show_debugname is true set symname to the 360 first function-like DIE with a name in scope for the address in 361 the debuginfo. 362 (parse_opt): Handle '-d'. 363 (main): Add 'd' to options. 364 3652014-01-20 Mark Wielaard <mjw@redhat.com> 366 367 * addr2line.c (handle_address): Initialize scopes to NULL. 368 3692014-01-17 Roland McGrath <roland@redhat.com> 370 371 * strip.c (handle_elf): Check for bogus values in sh_link, sh_info, 372 st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data. 373 Don't use assert on input values, instead bail with "illformed" error. 374 3752014-01-17 Roland McGrath <roland@redhat.com> 376 377 * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link. 378 (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise. 379 (handle_scngrp): Check for bogus sh_info. 380 3812014-01-17 Jakub Jelinek <jakub@redhat.com> 382 383 * elflint.c (section_name): Return "<invalid>" instead of 384 crashing on invalid section name. 385 (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic, 386 check_symtab_shndx, check_hash, check_versym): Robustify. 387 (check_hash): Don't check entries beyond end of section. 388 (check_note): Don't crash if gelf_rawchunk fails. 389 3902014-01-17 Petr Machata <pmachata@redhat.com> 391 392 * readelf.c (handle_dynamic, handle_relocs_rel) 393 (handle_relocs_rela, handle_versym, print_liblist): 394 Use gelf_fsize instead of relying on shdr->sh_entsize. 395 3962014-01-14 Mark Wielaard <mjw@redhat.com> 397 398 * readelf.c (print_debug_macro_section): Clear vendor array before 399 use. 400 4012014-01-15 Jan Kratochvil <jan.kratochvil@redhat.com> 402 403 Fix corruption of non-C++ symbols by the demangler. 404 * nm.c (show_symbols_sysv, show_symbols_bsd, show_symbols_posix) 405 (show_symbols): Check for _Z. 406 * stack.c (print_frames) <USE_DEMANGLE>: Check for _Z. 407 4082014-01-02 Mark Wielaard <mjw@redhat.com> 409 410 * stack.c (show_raw): Declare unconditionally. 411 (parse_opt): Handle '-r' unconditionally. 412 (main): Show "raw" option even without USE_DEMANGLE. 413 4142014-01-02 Mark Wielaard <mjw@redhat.com> 415 416 * stack.c (print_frames): Print 0x before build-id hex-offset. 417 4182014-01-02 Mark Wielaard <mjw@redhat.com> 419 420 * stack.c (maxframes): Increase to 2048. 421 (struct frames): Add allocated field. 422 (frame_callback): If frames used is frames allocated, realloc. 423 (print_frames): Show an error if maxframes has been reached. 424 (parse_opt): Allow -n 0 for unlimited frames. 425 (main): Document -n 0 and new default 2048 frames. Allocate initial 426 number of frames with malloc. 427 4282013-12-30 Mark Wielaard <mjw@redhat.com> 429 430 * stack.c (parse_opt): Explicitly call dwfl_linux_proc_attach 431 or dwfl_core_file_attach and check for errors. 432 4332013-12-28 Mark Wielaard <mjw@redhat.com> 434 435 * stack.c (print_frames): Remove address width code and use... 436 (get_addr_width): ...this new function. 437 (show_modules): New static boolean. 438 (module_callback): New static function. 439 (parse_opt): Handle '-l'. 440 (main): Add 'l' to options. If show_modules then use dwfl_getmodules 441 with module_callback to show all detected modules and possible 442 build_id, elf and dwarf files. 443 4442013-12-27 Mark Wielaard <mjw@redhat.com> 445 446 * stack.c (frames_shown): New static boolean. 447 (EXIT_OK,EXIT_ERROR,EXIT_BAD,EXIT_USAGES): New defines. 448 (frame_callback): Return -1 on error. Don't print error. 449 (print_frames): Add arguments, tid, dwflerr and what. Print tid. 450 If there was an error report it with address and module if possible. 451 Record whether any frames were actually printed. 452 (thread_callback): Collect tid and err, pass it to print_frames. 453 (parse_opt): Use EXIT_BAD for errors. On ARGP_KEY_END print errno 454 if dwfl_linux_proc_report returned it. Check whether we are properly 455 attached with dwfl_pid. 456 (main): Document exit status. Don't report DWARF_CB_ABORT from 457 callbacks as error. Pass real errors to print_frames. Return 458 EXIT_BAD if no frames could be shown. Return EXIT_ERROR if there 459 were any non-fatal errors. 460 4612013-12-23 Mark Wielaard <mjw@redhat.com> 462 463 * Makefile.am (stack_LDADD): Add demanglelib. 464 * stack.c (show_quiet): New static boolean, default false. 465 (show_raw): Likewise. 466 (demangle_buffer_len): New static size_t. 467 (demangle_buffer): New static char *. 468 (print_frames): Don't resolve pc name if show_quiet. Demangle name 469 unless show_raw. 470 (parse_opt): Handle '-q' and '-r'. 471 (main): Add 'q' and 'r' to options. Free demangle_buffer. 472 4732013-12-23 Mark Wielaard <mjw@redhat.com> 474 475 * stack.c (OPT_DEBUGINFO): New define. 476 (OPT_COREFILE): Likewise. 477 (pid): New static. 478 (core_fd): Likewise. 479 (core): Likewise. 480 (exec): Likewise. 481 (debuginfo_path): Likewise. 482 (parse_opt): Handle '-p', '--core', '-e' and '--debuginfo-path'. 483 Do argument sanity checking. Setup Dwfl. 484 (main): Add 'p', 'core', 'e' and 'debuginfo-path' to options. 485 Remove argp_child children, simplify argp doc, remove custom 486 usage message and construction of dwfl with dwfl_standard_argp. 487 Use pid directly as tid. close core and core_fd if opened. Print 488 pid of process or core. 489 4902013-12-23 Mark Wielaard <mjw@redhat.com> 491 492 * stack.c (show_build_id): New static boolean. 493 (print_frames): Print module build-id, load address and pc offset 494 if show_build_id is true. 495 (parse_opt): Handle '-b'. 496 (main): Add -b to options. 497 4982013-12-22 Mark Wielaard <mjw@redhat.com> 499 500 * stack.c (maxframes): New static unsigned. Initialize to 64. 501 (struct frame): New struct. 502 (struct frames): Likewise. 503 (dwfl): New static Dwfl pointer. 504 (frame_callback): Use arg as struct frames and fill it next frame. 505 Return DWARF_CB_ABORT when maxframes has been reached. Move 506 printing of frame to... 507 (print_frames): ...here. New function. 508 (thread_callback): Use arg as struct frames and set frames to zero. 509 Call print_frames. 510 (parse_opt): Handle '-n'. 511 (main): Add -n to options. Allocate frames using maxframes. Pass 512 frames to frame_callback and thread_callback. 513 5142013-12-20 Mark Wielaard <mjw@redhat.com> 515 516 * stack.c (show_one_tid): New static boolean. 517 (parse_opt): Handle '-1'. 518 (main): Add -1 to options. Call dwfl_getthread_frames when 519 show_one_tid is true. 520 5212013-12-18 Mark Wielaard <mjw@redhat.com> 522 523 * addr2line.c (options): Add symbol-sections, 'x'. 524 (show_symbol_sections): New static bool. 525 (parse_opt): Handle 'x'. 526 (print_addrsym): Use dwfl_module_addrinfo value.r 527 Also show section of address with show_symbol_sections. 528 (find_symbol): Use dwfl_module_getsym_info and set value. 529 (handle_address): Request value and use it instead of sym.st_value. 530 * readelf.c (format_dwarf_addr): Use dwfl_module_addrinfo to get 531 name and offset. 532 5332013-12-17 Masatake YAMATO <yamato@redhat.com> 534 Mark Wielaard <mjw@redhat.com> 535 536 * stack.c (show_activation, show_module, show_source): New variables. 537 (parse_opt): Set show_activation if -a option is given. 538 Set show_module if -m option is given. Set show_source if -s option 539 is given. Set all show booleans when -v option is given. 540 (main): Added `-a', `-m', `-s', and `-v' to the help message. 541 (frame_callback): Print module and source file information. 542 5432013-11-25 Petr Machata <pmachata@redhat.com> 544 545 * elflint.c (valid_e_machine): Add EM_AARCH64. 546 5472013-11-14 Petr Machata <pmachata@redhat.com> 548 549 * readelf.c (handle_core_item) <'h'>: New branch for handling 550 fields that shouldn't be displayed. 551 5522013-11-10 Mark Wielaard <mjw@redhat.com> 553 554 * stack.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and 555 ARGP_PROGRAM_BUG_ADDRESS_DEF. 556 (print_version): New function. 557 5582013-11-09 Mark Wielaard <mjw@redhat.com> 559 560 * arlib.c (arlib_init): Call snprintf before using the result 561 with memcpy. 562 (arlib_finalize): Likewise. 563 * nm.c (show_symbols_sysv): Don't modify cnt inside assert. 564 5652013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com> 566 567 * Makefile.am (bin_PROGRAMS): Add stack. 568 (stack_LDADD): New. 569 * stack.c: New file. 570 5712013-11-05 Mark Wielaard <mjw@redhat.com> 572 573 * readelf.c (print_debug_ranges_section): Cast address to size_t 574 before comparison. 575 (print_debug_loc_section): Likewise. 576 5772013-10-18 Mark Wielaard <mjw@redhat.com> 578 579 * ar.c (main): Correct operation check when instance_specifed is set. 580 5812013-09-26 Petr Machata <pmachata@redhat.com> 582 583 * readelf.c (handle_file_note): New function. 584 (handle_notes_data): Call it to handle NT_FILE notes. 585 5862013-09-26 Petr Machata <pmachata@redhat.com> 587 588 * readelf.c (handle_siginfo_note): New function. 589 (handle_notes_data): Call it to handle NT_SIGINFO notes. 590 (buf_read_int, buf_read_ulong, buf_has_data): New functions. 591 5922013-08-13 Mark Wielaard <mjw@redhat.com> 593 594 * addr2line.c (options): Add "inlines", 'i'. 595 (show_inlines): New bool. 596 (parse_opt): Handle 'i'. 597 (print_diesym): New static function. 598 (print_src): New function taking code from... 599 (handle_address): here. Call print_src. Print inlines. 600 6012013-08-12 Mark Wielaard <mjw@redhat.com> 602 603 * addr2line.c (main): If there is a newline char at end of buf, 604 then remove it. 605 6062013-07-05 Mark Wielaard <mjw@redhat.com> 607 608 * readelf.c (print_ops): Take CU as argument, use it to print 609 parameter_ref DIE offset. 610 (struct listptr): Replace base field with cu. 611 (listptr_base): New function. 612 (compare_listptr): Use listptr_base. 613 (notice_listptr): Take CU as argument. 614 (skip_listptr_hole): Likewise. 615 (print_debug_ranges_section): Pass NULL as CU to skip_listptr_hole. 616 (print_cfa_program): Pass NULL as CU to print_ops. 617 (struct attrcb_args): Replace cu_base field with cu. 618 (attr_callback): Pass cu not cu_base to notice_listptr. 619 (print_debug_units): Don't calculate base, just set cu. 620 (print_debug_loc_section): Pass cu to skip_listptr_hole and 621 print_ops. 622 6232013-05-06 Mark Wielaard <mjw@redhat.com> 624 625 * readelf.c (print_ops): Format first DW_OP_GNU_implicit_pointer 626 argument as DIE offset. 627 6282013-04-24 Mark Wielaard <mjw@redhat.com> 629 630 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES. 631 6322013-03-25 Mark Wielaard <mjw@redhat.com> 633 634 * readelf.c (argp_options): Add decodedline. 635 (decodedline): New boolean initialized to false. 636 (parse_opt): Set decodedline when arg is decodedline. 637 (print_decoded_line_section): New function. 638 (print_debug_line_section): Call print_decoded_line_section when 639 decodedline is true. 640 6412013-03-25 Mark Wielaard <mjw@redhat.com> 642 643 * readelf.c (argp_option): Add decodedaranges. 644 (decodedaranges): New boolean initialized to false. 645 (parse_opt): Set decodedaranges when arg is decodedaranges. 646 (print_debug_aranges_section): Reimplemented and original 647 implementation renamed to... 648 (print_decoded_aranges_section): this. 649 6502013-03-25 Mark Wielaard <mjw@redhat.com> 651 652 * readelf.c (attrcb_args): Add Dwarf_Die. 653 (attr_callback): When highpc is in constant form also print as 654 address. 655 (print_debug_units): Set args.die. 656 6572013-03-19 Mark Wielaard <mjw@redhat.com> 658 659 * readelf.c (print_gdb_index_section): Free format_dwarf_addr results. 660 6612013-03-18 Mark Wielaard <mjw@redhat.com> 662 663 * readelf.c (print_gdb_index_section): Accept version 8. 664 6652013-03-01 Mark Wielaard <mjw@redhat.com> 666 667 * findtextrel.c (process_file): Release ELF and close file when not 668 text relocations are found. 669 * strip.c (handle_elf): Track memory used for .debuglink section data 670 and free when done. 671 6722013-02-24 Mark Wielaard <mjw@redhat.com> 673 674 * elflint.c (check_symtab): Add __bss_start__ to the list of symbols 675 allowed to have out of section values because of GNU ld bugs. 676 6772013-02-06 Mark Wielaard <mjw@redhat.com> 678 679 * elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the 680 list of symbols allowed to have out of section values because of 681 GNU ld bugs in either .symtab or .dynsym, but only when they are 682 zero sized. 683 6842013-01-24 Mark Wielaard <mjw@redhat.com> 685 686 * readelf.c (argp_option): Add unresolved-address-offsets, U. 687 (print_unresolved_addresses): New static. 688 (parse_opt): Handle 'U', set print_unprocessed_values. 689 (format_dwarf_addr): Take and handle new raw argument. 690 (print_ops): Call format_dwarf_addr with raw offset values. 691 (print_debug_ranges_section): Likewise. 692 (print_debug_frame_section): Likewise. 693 (attr_callback): Likewise. 694 (print_debug_line_section): Likewise. 695 (print_debug_loc_section): Likewise. 696 (print_gdb_index_section): Likewise. 697 6982013-01-18 Mark Wielaard <mjw@redhat.com> 699 700 * readelf.c (struct listptr): Add base Dwarf_Addr field. 701 (compare_listptr): Warn for same offset with different base. 702 (notice_listptr): Take base argument and set it. 703 (skip_listptr_hole): Likewise. 704 (struct attrcb_args): Removed unused cu_offset field. 705 Add cu_base Dwarf_Addr field. 706 (attr_callback): Call notice_listptr with cbargs->cu_base. 707 (print_debug_units): Set args.cu_base. 708 (print_debug_ranges_section): Get base and use for format_dwarf_addr. 709 (print_debug_loc_section): Likewise. 710 7112013-01-29 Jan Kratochvil <jan.kratochvil@redhat.com> 712 713 * readelf.c (handle_core_items): Limit special repeated items handling 714 to single-item formats '\n', 'b' and 'B', assert OFFSET 0 there. 715 7162012-12-18 Mark Wielaard <mark@bordewijk.wildebeest.org> 717 718 * readelf.c (ELF_INPUT_SECTION): New argp key value. 719 (argp_option): Add elf-section. 720 (elf_input_section): New static. 721 (parse_opt): Handle ELF_INPUT_SECTION and set elf_input_section. 722 (open_input_section): New function. 723 (process_file): Call open_input_section if elf_input_section set. 724 7252013-01-13 David Abdurachmanov <David.Abdurachmanov@cern.ch> 726 727 ar.c (do_oper_delete): Fix num passed to memset. 728 7292012-12-21 Mark Wielaard <mjw@redhat.com> 730 731 * readelf.c (print_debug_frame_section): Adjust FDE start address 732 if pcrel before feeding it to format_dwarf_addr. 733 7342012-12-21 Mark Wielaard <mjw@redhat.com> 735 736 * addr2line.c (main): Call dwfl_end. 737 7382012-12-11 Roland McGrath <roland@hack.frob.com> 739 740 * nm.c (show_symbols_sysv): Fix size passed to snprintf for invalid 741 sh_name case. 742 Reported by David Abdurachmanov <David.Abdurachmanov@cern.ch>. 743 7442012-10-16 Mark Wielaard <mjw@redhat.com> 745 746 * readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are 747 calculated beginning after the operand and 2-byte constant. 748 7492012-10-12 Jan Kratochvil <jan.kratochvil@redhat.com> 750 751 * readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ... 752 (WRAP_COLUMN): ... here. 753 (print_core_item): Remove parameter format_max. Update function 754 comment. Replace FORMAT_MAX by the real output width. 755 (handle_core_item): Remove the FORMAT_MAX values in TYPES, DO_TYPE, 756 calls of print_core_item, remove variable maxfmt, change 757 ITEM_WRAP_COLUMN to WRAP_COLUMN. 758 (handle_core_register): Remove the FORMAT_MAX values in TYPES, BITS, 759 calls of print_core_item, change REGISTER_WRAP_COLUMN to WRAP_COLUMN. 760 7612012-10-11 Jan Kratochvil <jan.kratochvil@redhat.com> 762 763 * readelf.c (handle_core_item) <b>: Make run an outer block variable. 764 Increase run only if LASTBIT != 0. Print last element only if RUN > 0. 765 7662012-08-27 Mark Wielaard <mjw@redhat.com> 767 768 * readelf.c (print_debug_macro_section): Print offset as PRIx64. 769 7702012-08-27 Mark Wielaard <mjw@redhat.com> 771 772 * readelf.c (register_info): Handle loc == NULL. 773 7742012-08-22 Jeff Kenton <jkenton@tilera.com> 775 776 * elflint.c (valid_e_machine): Add EM_TILEGX and EM_TILEPRO. 777 7782012-08-16 Mark Wielaard <mjw@redhat.com> 779 780 * readelf.c (dwarf_tag_name): Renamed from dwarf_tag_string. 781 Uses new dwarf_tag_string or adds ??? or lo_user+%#x when 782 appropriate. 783 (dwarf_attr_name): Likewise. 784 (dwarf_form_name): Likewise. 785 (dwarf_lang_name): Likewise. 786 (dwarf_inline_name): Likewise. 787 (dwarf_encoding_name): Likewise. 788 (dwarf_access_name): Likewise. 789 (dwarf_visibility_name): Likewise. 790 (dwarf_virtuality_name): Likewise. 791 (dwarf_identifier_case_name): Likewise. 792 (dwarf_calling_convention_name): Likewise. 793 (dwarf_ordering_name): Likewise. 794 (dwarf_discr_list_name): Likewise. 795 (print_ops): Remove KNOWN. Use dwarf_locexpr_opcode_string. 796 (attr_callback): Call new dwarf_foobar_name instead of old 797 dwarf_foobar_string functions. 798 (dwarf_tag_string): New function using known-dwarf.h macros. 799 (dwarf_attr_string): Likewise. 800 (dwarf_form_string): Likewise. 801 (dwarf_lang_string): Likewise. 802 (dwarf_inline_string): Likewise. 803 (dwarf_encoding_string): Likewise. 804 (dwarf_access_string): Likewise. 805 (dwarf_visibility_string): Likewise. 806 (dwarf_virtuality_string): Likewise. 807 (dwarf_identifier_case_string): Likewise. 808 (dwarf_calling_convention_string): Likewise. 809 (dwarf_ordering_string): Likewise. 810 (dwarf_discr_list_string): Likewise. 811 (dwarf_locexpr_opcode_string): Likewise. 812 8132012-06-27 Mark Wielaard <mjw@redhat.com> 814 815 * readelf.c (dwarf_form_string): Handle DW_FORM_GNU_ref_alt and 816 DW_FORM_GNU_strp_alt. 817 (attr_callback): Likewise. 818 8192012-07-30 Petr Machata <pmachata@redhat.com> 820 821 * nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and 822 corresponding printf) so that those that are referenced by only 823 one of the formatting strings are at the end. 824 8252012-07-29 Mark Wielaard <mjw@redhat.com> 826 827 * readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc. 828 (print_ops): Use known[op], not op_name, for DW_OP_GNU_parameter_ref. 829 8302012-07-19 Mark Wielaard <mjw@redhat.com> 831 832 * readelf.c (print_ops): Handle DW_OP_GNU_parameter_ref. 833 8342012-07-11 Mark Wielaard <mjw@redhat.com> 835 836 * readelf.c (options): Add macro to help of debug-dump. 837 (section_e): Add section_macro. 838 (section_all): Add section_macro. 839 (parse_opt): Handle macro. 840 (print_debug_macro_section): New function. 841 (print_debug): Add NEW_SECTION (macro). 842 8432012-07-10 Mark Wielaard <mjw@redhat.com> 844 845 * readelf.c (print_gdb_index_section): Add version 7 support. 846 Keep track of cu_nr. Print kind and static/global flag for each 847 symbol. When a symbol is in the TU list add 'T'. 848 8492012-06-26 Mark Wielaard <mjw@redhat.com> 850 851 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros. 852 8532012-06-22 Mark Wielaard <mjw@redhat.com> 854 855 * readelf.c (print_ops): Cast printf PRIu/x64 arguments to uint64_t 856 for gcc 4.7 -Wformat. 857 8582012-05-09 Roland McGrath <roland@hack.frob.com> 859 860 * elflint (check_sections): Allow zero sized sections at (filesz) end 861 of segment. And make check overflow-proofed. 862 8632012-04-24 Mark Wielaard <mjw@redhat.com> 864 865 * readelf.c (print_ops): Add DW_OP_GNU_push_tls_address, 866 DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr. 867 8682012-03-28 Roland McGrath <roland@hack.frob.com> 869 870 * elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections. 871 8722012-03-28 Mark Wielaard <mjw@redhat.com> 873 874 * readelf.c (print_debug_abbrev_section): Check there is Dwarf 875 section data. 876 (print_debug_str_section): Likewise. 877 8782012-03-21 Mark Wielaard <mjw@redhat.com> 879 880 * readelf.c (print_gdb_index_section): Accept version 6. 881 8822012-01-31 Mark Wielaard <mjw@redhat.com> 883 884 * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset. 885 8862012-01-21 Ulrich Drepper <drepper@gmail.com> 887 888 * addr2line.c: Update copyright year. 889 * ar.c: Likewise. 890 * elfcmp.c: Likewise. 891 * elflint.c: Likewise. 892 * findtextrel.c: Likewise. 893 * ld.c: Likewise. 894 * nm.c: Likewise. 895 * objdump.c: Likewise. 896 * ranlib.c: Likewise. 897 * readelf.c: Likewise. 898 * size.c: Likewise. 899 * strings.c: Likewise. 900 * strip.c: Likewise. 901 * unstrip.c: Likewise. 902 903 * nm.c (argp_children): Define. 904 (argp): Hook up argp_children. 905 (handle_ar): Optimize puts call. 906 (show_symbols_bsd): Use positional parameters to also print color 907 codes. Don't print STT_FILE symbols. 908 * objdump.c (options): Improve help text. 909 (argp_children): Define. 910 (argp): Hook up argp_children. 911 (disasm_info): Add elements for color codes. 912 (disasm_output): Print color codes as well. 913 (show_disasm): Set up disasm_info data for callback. 914 9152012-01-20 Roland McGrath <roland@hack.frob.com> 916 917 * arlib-argp.c (arlib_deterministic_output): Initialize from 918 configured value. 919 (help_filter): New function. 920 (argp): Use it. 921 922 * ar.c (main): Handle oper_none as usage error. 923 924 * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D. 925 926 * ranlib.c (argp): Use arlib_argp_children. 927 928 * arlib.c (arlib_init): Obey arlib_deterministic_output. 929 930 * arlib-argp.c: New file. 931 * Makefile.am (libar_a_SOURCES): Add it. 932 * arlib.h (arlib_deterministic_output, arlib_argp_children): 933 Declare new variables. 934 * ar.c (deterministic_output): Variable removed. 935 (do_oper_insert): Use arlib_deterministic_output instead. 936 (options, parse_opt): Don't handle -D here. Add group numbers. 937 (argp): Use arlib_argp_children. 938 9392011-12-20 Roland McGrath <roland@hack.frob.com> 940 941 * readelf.c (print_debug): Initialize DUMMY_DBG.elf. 942 Reported by Karel Klic <kklic@redhat.com>. 943 9442011-11-05 Roland McGrath <roland@hack.frob.com> 945 946 * ar.c (deterministic_output): New flag variable. 947 (options, parse_opt): Grok -D to set it. 948 (do_oper_insert): When set, use zero from mtime, uid, and gid. 949 950 * ar.c (do_oper_insert): Fix check on elf_rawfile return value. 951 9522011-10-04 Marek Polacek <mpolacek@redhat.com> 953 954 * readelf.c (register_info): Assume the right size of an array. 955 9562011-10-03 Ulrich Drepper <drepper@gmail.com> 957 958 * nm.c: Recognize option --mark-special. Still recognize --mark-weak 959 but don't show it in help anymore. 960 (mark_special): Renamed from mark_weak. 961 (parse_opt): Adjust. 962 (class_type_char): Take additional parameters for ELF file and ELF 963 header. Treat TLS symbols like objects. 964 In case of D symbols, show u for unique symbols, R for symbols in 965 read-only sections, B for symbols in BSS sections. 966 (show_symbols_bsd): Take additional parameters for ELF file and ELF 967 header. Adjust for class_type_char change. Show TLS symbols with 968 @ after them in case --mark-special is selected. 969 (show_symbols_posix): Likewise. 970 (show_symbols): Adjust calls to show_symbols_bsd and 971 show_symbols_posix. 972 (show_symbols_sysv): Avoid printing adress and size for undefined 973 symbols. Don't print initial special entry and section entries. 974 9752011-10-02 Ulrich Drepper <drepper@gmail.com> 976 977 * Makefile.am (demanglelib): Define. 978 (nm_LDADD): Add demanglelib. 979 * nm.c (options): Add -C option. 980 (demangle): Define as global variable. 981 (parse_opt): Recognize -C. 982 (show_symbols_sysv): Handle demangling. 983 (show_symbols_bad): Likewise. 984 (show_symbols_posix): Likewise. 985 (show_symbols): Likewise. 986 9872011-07-09 Roland McGrath <roland@hack.frob.com> 988 989 * readelf.c (options, parse_opt): Grok -W/--wide and ignore it. 990 991 * ar.c (parse_opt): Grok -u. 992 9932011-05-30 Mark Wielaard <mjw@redhat.com> 994 995 * strip.c (relocate): Make offset check overflow-proof. 996 9972011-05-23 Mark Wielaard <mjw@redhat.com> 998 999 * strip.c (relocate): Take new arguments is_rela to indicate 1000 whether the relocation is from a SHT_REL or SHT_RELA section. 1001 Relocate against any debug section symbol, not just STT_SECTION 1002 symbols. For SHT_REL relocations, fetch addend from offset and 1003 add it to symbol value if not zero. 1004 10052011-05-23 Mark Wielaard <mjw@redhat.com> 1006 1007 * strip.c (OPT_RELOC_DEBUG): New option. 1008 (argp_option): Add new --reloc-debug-sections option. 1009 (main): Check new option. 1010 (parse_opt): Likewise. 1011 (handle_elf): Remove any relocations between debug sections 1012 in ET_REL for the debug file when requested. 1013 10142011-05-18 Mark Wielaard <mjw@redhat.com> 1015 1016 * strip.c (handle_elf): Make sure all sections of a removed group 1017 section are removed too. Don't discard SHT_GROUP sections, copy 1018 section table before it gets modified. Section group signature 1019 symbols don't have to be retained. 1020 10212011-05-16 Jakub Jelinek <jakub@redhat.com> 1022 1023 * readelf.c (print_ops): Handle DW_OP_GNU_const_type, 1024 DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert 1025 and DW_OP_GNU_reinterpret. 1026 10272011-05-17 Mark Wielaard <mjw@redhat.com> 1028 1029 * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and 1030 DW_TAG_GNU_call_site_parameter return strings. 1031 10322011-05-11 Marek Polacek <mpolacek@redhat.com> 1033 1034 * nm.c (show_symbols_sysv): Remove unused if/else, remove 1035 unused `prefix' and `fname' parameters. 1036 10372011-05-07 Marek Polacek <mpolacek@redhat.com> 1038 1039 * unstrip.c (compare_sections_nonrel): Mark this function as static. 1040 10412011-04-26 Mark Wielaard <mjw@redhat.com> 1042 1043 * readelf.c (handle_notes_data): Call ebl_object_note_type_name 1044 with note name. 1045 10462011-04-14 Mark Wielaard <mjw@redhat.com> 1047 1048 * readelf.c (options): Add gdb_index. 1049 (section_e): Define section_gdb_index. 1050 (parse_opt): Recognize gdb_index debug-dump argument. 1051 (print_gdb_index_section): New function. 1052 (print_debug): Add gdb_index to debug_sections. 1053 10542011-03-24 Petr Machata <pmachata@redhat.com> 1055 1056 * readelf.c (print_debug_line_section): Emit initial space for all 1057 opcode lines. Print offset in front of each opcode. 1058 10592011-03-22 Marek Polacek <mpolacek@redhat.com> 1060 1061 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case. 1062 10632011-03-22 Mark Wielaard <mjw@redhat.com> 1064 1065 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site 1066 and DW_TAG_GNU_call_site_parameter. 1067 (dwarf_attr_string): Support DW_AT_GNU_call_site_value, 1068 DW_AT_GNU_call_site_data_value, 1069 DW_AT_GNU_call_site_target, 1070 DW_AT_GNU_call_site_target_clobbered, 1071 DW_AT_GNU_tail_call, 1072 DW_AT_GNU_all_tail_call_sites, 1073 DW_AT_GNU_all_call_sites, 1074 and DW_AT_GNU_all_source_call_sites. 1075 (print_ops): Handle DW_OP_GNU_entry_value. 1076 (attr_callback): Handle DW_AT_GNU_call_site_value, 1077 DW_AT_GNU_call_site_data_value, 1078 DW_AT_GNU_call_site_target, 1079 and DW_AT_GNU_call_site_target_clobbered. 1080 10812011-03-10 Mark Wielaard <mjw@redhat.com> 1082 1083 * elflint.c (check_symtab): Use ebl_check_st_other_bits. 1084 10852011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com> 1086 1087 * readelf.c (reset_listptr): Clear TABLE->TABLE. 1088 10892011-02-25 Mark Wielaard <mjw@redhat.com> 1090 1091 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling. 1092 (dwarf_form_string): Properly format and return unknown form. 1093 10942011-02-23 Roland McGrath <roland@redhat.com> 1095 1096 * readelf.c (section_name): New function. 1097 (print_debug_abbrev_section): Use it instead of constant. 1098 (print_debug_aranges_section): Likewise. 1099 (print_debug_ranges_section): Likewise. 1100 (print_debug_units): Likewise. 1101 (print_debug_line_section): Likewise. 1102 (print_debug_loc_section): Likewise. 1103 (print_debug_macinfo_section): Likewise. 1104 (print_debug_pubnames_section): Likewise. 1105 (print_debug_str_section): Likewise. 1106 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too. 1107 (print_debug_abbrev_section): Use decoded d_size, not sh_size. 1108 (print_debug_str_section): Likewise. 1109 1110 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature. 1111 11122011-02-11 Roland McGrath <roland@redhat.com> 1113 1114 * elfcmp.c (verbose): New variable. 1115 (options, parse_opt): Grok -l/--verbose to set it. 1116 (main): Under -l, keep going after first difference. 1117 1118 * elfcmp.c (ignore_build_id): New variable. 1119 (options, parse_opt): Grok --ignore-build-id to set it. 1120 (main): For SHT_NOTE sections, compare note details rather than raw 1121 bytes. Under --ignore-build-id, don't complain about differing build 1122 ID contents if lengths match. 1123 11242011-02-08 Roland McGrath <roland@redhat.com> 1125 1126 * ldscript.y (filename_id_star): Remove unused variable. 1127 1128 * unstrip.c (copy_elided_sections): Remove unused variable. 1129 1130 * elflint.c (check_dynamic): Remove unused variables. 1131 1132 * elflint.c (check_symtab): Warn about missing xndx section only once. 1133 1134 * ldgeneric.c (check_for_duplicate2): Remove unused variable. 1135 11362011-01-06 Roland McGrath <roland@redhat.com> 1137 1138 * strip.c (handle_elf): Under --strip-sections, remove all 1139 non-allocated sections and never generate .gnu_debuglink. 1140 11412011-01-04 Roland McGrath <roland@redhat.com> 1142 1143 * strip.c (remove_shdrs): New variable. 1144 (options, parse_opt): Grok --strip-sections to set it. 1145 (handle_elf): When that's set, truncate off .shstrtab and shdrs. 1146 11472010-11-10 Roland McGrath <roland@redhat.com> 1148 1149 * findtextrel.c (process_file): Don't assume order of sections. 1150 Reported by Mike Hommey <mh@glandium.org>. 1151 11522010-07-26 Roland McGrath <roland@redhat.com> 1153 1154 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer. 1155 11562010-08-30 Roland McGrath <roland@redhat.com> 1157 1158 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses. 1159 * readelf.c (parse_opt): Add section_info to implicit_debug_sections 1160 for ranges, loc. 1161 (struct listptr, struct listptr_table): New types. 1162 (compare_listptr, reset_listptr, sort_listptr): New functions. 1163 (notice_listptr, skip_listptr_hole): New functions. 1164 (struct attrcb_args): Add silent member. 1165 (attr_callback): Call notice_listptr for loclistptr and rangelistptr. 1166 Suppress output if silent, but still call notice_listptr. 1167 (print_debug_units): Suppress output if section_info not requested. 1168 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole. 1169 (print_debug_ranges_section): Likewise. 1170 (print_debug): Call reset_listptr on both tables. 1171 1172 * readelf.c (print_debug_ranges_section): Print empty list. 1173 (print_debug_loc_section): Likewise. 1174 1175 * readelf.c (print_debug_loc_section): Check for bogus length 1176 before calling print_ops. 1177 (print_ops): Check harder for bogus data that would read off end. 1178 11792010-08-11 Roland McGrath <roland@redhat.com> 1180 1181 * readelf.c (for_each_section_argument): Process all sections with 1182 matching name, not just the first. 1183 11842010-07-26 Roland McGrath <roland@redhat.com> 1185 1186 * readelf.c (print_ops): Take new argument for CU version. 1187 Fix DW_OP_call_ref decoding to depend on it. 1188 (print_debug_loc_section): Update caller. 1189 (print_cfa_program): Take new argument, pass it down. 1190 (print_debug_frame_section): Update caller. 1191 (struct attrcb_args): New member version. 1192 (print_debug_units): Initialize it. 1193 11942010-07-02 Roland McGrath <roland@redhat.com> 1195 1196 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for 1197 initial_location. 1198 11992010-06-30 Roland McGrath <roland@redhat.com> 1200 1201 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO. 1202 Ignore st_size for a non-S_ISREG file descriptor. 1203 (read_block): Move assert after no-mmap bail-out. 1204 (read_block_no_mmap): Fix size calculations for moving buffer remnant. 1205 12062010-06-22 Roland McGrath <roland@redhat.com> 1207 1208 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa. 1209 12102010-06-21 Roland McGrath <roland@redhat.com> 1211 1212 * readelf.c (dwarf_tag_string): Handle new v4 tags. 1213 (dwarf_attr_string): Add new attributes. 1214 (dwarf_tag_string): Handle DW_TAG_GNU_*. 1215 1216 * readelf.c (print_ops): Use 64-bit types for LEB128 operands. 1217 (print_cfa_program): Likewise. 1218 12192010-06-20 Roland McGrath <roland@redhat.com> 1220 1221 * readelf.c (print_debug_units): New function, broken out of ... 1222 (print_debug_info_section): ... here. Call it. 1223 (print_debug_types_section): New function. 1224 (enum section_e): Add section_types alias for section_info. 1225 (print_debug): Add types to the sections table. 1226 1227 * readelf.c (print_debug_frame_section): Handle version 4 format. 1228 1229 * readelf.c (print_debug_line_section): Handle version 4 format. 1230 12312010-06-14 Roland McGrath <roland@redhat.com> 1232 1233 * unstrip.c (copy_elided_sections): Make sure all sections' data have 1234 been read in before we write anything out. 1235 12362010-06-04 Roland McGrath <roland@redhat.com> 1237 1238 * unstrip.c (update_shdr): New function. 1239 (update_sh_size): Call it instead of gelf_update_shdr. 1240 (adjust_relocs, add_new_section_symbols): Likewise. 1241 (new_shstrtab, copy_elided_sections): Likewise. 1242 1243 * unstrip.c (copy_elided_sections): Bail if stripped file has more 1244 sections than unstripped file, rather than getting confused later. 1245 12462010-06-01 Roland McGrath <roland@redhat.com> 1247 1248 * readelf.c (dwarf_form_string): Handle DWARF 4 forms. 1249 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc, 1250 DW_FORM_sec_offset, DW_FORM_ref_sig8. 1251 1252 * readelf.c (print_debug): Don't bail if libdw setup fails. 1253 Suppress complaint if we only want .eh_frame anyway. 1254 12552010-05-28 Ulrich Drepper <drepper@redhat.com> 1256 1257 * readelf.c (attr_callback): Also print form information. 1258 12592010-05-19 Roland McGrath <roland@redhat.com> 1260 1261 * addr2line.c (find_symbol): Short-circuit on empty name. 1262 (handle_address): Handle SYMBOL with no +OFFSET. 1263 12642010-05-08 Roland McGrath <roland@redhat.com> 1265 1266 * readelf.c (print_ops): Take new arg OFFSET_SIZE. 1267 Use that for DW_OP_call_ref, not ADDRSIZE. 1268 (print_cfa_program): Update caller. 1269 (struct attrcb_args): Add offset_size field. 1270 (attr_callback): Use it for print_ops call. 1271 (print_debug_info_section): Initialize it. 1272 (print_ops): Likewise. 1273 12742010-04-14 Roland McGrath <roland@redhat.com> 1275 1276 * readelf.c (handle_core_item): Fix bitmask printing. 1277 12782010-04-06 Roland McGrath <roland@redhat.com> 1279 1280 * ld.c (options): Fix some typos in messages. 1281 * elflint.c (check_scn_group, check_group): Likewise. 1282 * ldscript.y (add_id_list): Likewise. 1283 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment 1284 before translated string containing a literal %. 1285 12862010-02-26 Roland McGrath <roland@redhat.com> 1287 1288 * readelf.c (process_file): Don't leak an fd in failure case. 1289 12902010-02-15 Roland McGrath <roland@redhat.com> 1291 1292 * Makefile.am: Use config/eu.am for common stuff. 1293 1294 * readelf.c (print_debug_frame_section): Add a cast to avoid sign 1295 mismatch in comparison. 1296 12972010-02-02 Roland McGrath <roland@redhat.com> 1298 1299 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero). 1300 (read_encoded): Likewise. 1301 (print_debug_frame_section): Check for bogus augmentation length. 1302 For P augmentation, use read_encoded, print the encoding description, 1303 and use hex for unsigned values. 1304 13052010-01-15 Roland McGrath <roland@redhat.com> 1306 1307 * ar.c: Include <sys/stat.h>. 1308 * elflint.c: Likewise. 1309 * readelf.c: Likewise. 1310 * strip.c: Likewise. 1311 * unstrip.c: Likewise 1312 13132010-01-07 Roland McGrath <roland@redhat.com> 1314 1315 * readelf.c (print_ehdr): Handle PN_XNUM. 1316 (phnum): New static variable. 1317 (process_elf_file): Set it with elf_getphdrnum. 1318 (print_phdr): Use phnum instead of EHDR->e_phnum. 1319 (print_dynamic, handle_notes): Likewise. 1320 (handle_relocs_rel, handle_relocs_rela): Likewise. 1321 1322 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum. 1323 1324 * elflint.c (phnum): New static variable. 1325 (check_elf_header): Set it, handling PN_XNUM. 1326 Use that in place of EHDR->e_phnum throughout. 1327 (check_symtab, check_reloc_shdr, check_dynamic): Likewise. 1328 (unknown_dependency_p, check_sections, check_program_header): Likewise. 1329 13302010-01-05 Roland McGrath <roland@redhat.com> 1331 1332 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and 1333 DW_AT_GNU_template_name. 1334 13352010-01-04 Roland McGrath <roland@redhat.com> 1336 1337 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE". 1338 (handle_core_note): Pass NHDR and NAME to ebl_core_note. 1339 (handle_core_item): Handle .format of '\n' as \n-separated strings. 1340 1341 * readelf.c (implicit_debug_sections): New variable. 1342 (parse_opt): Set it instead of print_debug_sections for -a. 1343 OR them together for print_debug check. 1344 (print_debug): OR them together for section check. 1345 1346 * readelf.c (options): Repartition into set implied by -a and others. 1347 Correct -a text to match reality. 1348 1349 * readelf.c (struct section_argument): Add bool member 'implicit'. 1350 (parse_opt): Set it for -a cases, clear it for -x args. 1351 (for_each_section_argument): Don't complain about a missing section by 1352 name if it's implicit. 1353 13542009-11-16 Roland McGrath <roland@redhat.com> 1355 1356 * readelf.c (print_string_section): Punt SHT_NOBITS like empty 1357 sections, just as dump_data_section already does. 1358 13592009-09-21 Ulrich Drepper <drepper@redhat.com> 1360 1361 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be 1362 set for .comment section. 1363 Patch by Mark Wielaard <mjw@redhat.com>. 1364 13652009-09-08 Roland McGrath <roland@redhat.com> 1366 1367 * ar.c (main): Fix typo in message format. 1368 13692009-08-21 Roland McGrath <roland@redhat.com> 1370 1371 * readelf.c (attr_callback): Use print_block only when we don't use 1372 print_ops. 1373 13742009-08-14 Roland McGrath <roland@redhat.com> 1375 1376 * ar.c (do_oper_extract): Use pathconf instead of statfs. 1377 13782009-08-01 Ulrich Drepper <drepper@redhat.com> 1379 1380 * debugpred.h: Add two most const. 1381 13822009-07-26 Mark Wielaard <mjw@redhat.com> 1383 1384 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION. 1385 13862009-07-25 Mark Wielaard <mjw@redhat.com> 1387 1388 * Makefile.am (addr2line_LDADD): Add $(libelf). 1389 13902009-07-24 Roland McGrath <roland@redhat.com> 1391 1392 * readelf.c (print_block): New function. 1393 (print_ops): Use it. 1394 (attr_callback): Use it for DW_FORM_block* forms. 1395 13962009-07-20 Mark Wielaard <mjw@redhat.com> 1397 1398 * readelf.c (print_ops): Add handling of DW_OP_implicit_value 1399 and DW_OP_stack_value. 1400 14012009-07-14 Ulrich Drepper <drepper@redhat.com> 1402 1403 * elflint.c (check_elf_header): Allow Linux ABI. 1404 (check_symtab): Handle STB_GNU_UNIQUE. 1405 14062009-07-08 Mark Wielaard <mjw@redhat.com> 1407 1408 * readelf.c (attr_callback): Handle DW_Form constants for 1409 DW_AT_data_member_location. 1410 14112009-07-06 Roland McGrath <roland@redhat.com> 1412 1413 * readelf.c (register_info): New function. Handle unknown register #s. 1414 (print_cfa_program): Use it. 1415 (handle_core_register, handle_core_registers): Likewise. 1416 14172009-06-28 Roland McGrath <roland@redhat.com> 1418 1419 * readelf.c (print_address_names): New static variable. 1420 (options, parse_opt): Grok -N/--numeric-addresses to clear it. 1421 (format_dwarf_addr): Don't look up name if !print_address_names. 1422 14232009-06-13 Ulrich Drepper <drepper@redhat.com> 1424 1425 * ldgeneric.c: Don't use deprecated libelf functions. 1426 * nm.c: Likewise. 1427 * objdump.c: Likewise. 1428 * readelf.c: Likewise. 1429 * size.c: Likewise. 1430 * strip.c: Likewise. 1431 * unstrip.c: Likewise. 1432 * ld.h: Fix up comment. 1433 14342009-06-01 Ulrich Drepper <drepper@redhat.com> 1435 1436 * readelf.c (print_relocs): Expect ELF header argument and pass on 1437 to handle_relocs_rel* functions. Adjust caller. 1438 (handle_relocs_rel): Add ELF header argument. Add special case for 1439 the IRELATIVE relocations in statically linked executables. 1440 (handle_relocs_rela): Likewise. 1441 14422009-04-29 Ulrich Drepper <drepper@redhat.com> 1443 1444 * elflint.c (check_symtab): Add tests of st_other field. 1445 14462009-04-23 Ulrich Drepper <drepper@redhat.com> 1447 1448 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS). 1449 14502009-04-20 Roland McGrath <roland@redhat.com> 1451 1452 * addr2line.c (print_dwarf_function): Honor -s and -A for file names 1453 of inline call sites. 1454 1455 * addr2line.c (just_section): New variable. 1456 (adjust_to_section): New function, broken out of ... 1457 (handle_address): ... here. 1458 (options, parse_opt): Add -j/--section=NAME to set it. 1459 14602009-04-15 Roland McGrath <roland@redhat.com> 1461 1462 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in 1463 64-bit format header, DW_CIE_ID_32 in 32-bit format header. 1464 14652009-04-14 Roland McGrath <roland@redhat.com> 1466 1467 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM 1468 like SHT_GNU_ATTRIBUTES. 1469 1470 * readelf.c (handle_core_registers): Fix error message. 1471 1472 * strip.c (handle_elf: check_preserved): Don't note any change when 1473 .debug_data is already filled from a previous pass. 1474 14752009-02-05 Ulrich Drepper <drepper@redhat.com> 1476 1477 * objdump.c (show_relocs_x): Minor cleanups. 1478 1479 * readelf.c (print_cfa_program): Correct a few labels. 1480 Print first DW_CFA_expression and DW_CFA_val_expression parameter 1481 as register. 1482 14832009-02-01 Ulrich Drepper <drepper@redhat.com> 1484 1485 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts 1486 into ... 1487 (show_relocs_x): ...here. New function. 1488 (show_relocs): Better spacing in output. 1489 1490 * objdump.c (show_relocs_rela): Show offsets as signed values. 1491 1492 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers. 1493 Improve some error messages. 1494 Use program_invocation_short_name instead of AR macro. 1495 * Makefile.am (CFLAGS_ar): Remove. 1496 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help. 1497 * objdump.c (parse_opt): Likewise. 1498 * readelf.c (parse_opt): Likewise. 1499 15002009-01-27 Roland McGrath <roland@redhat.com> 1501 1502 * readelf.c (print_ops): Notice short length, don't overrun buffer 1503 (still need to fix LEB128). 1504 1505 * readelf.c (print_ops): Fix DW_OP_call[24] decoding. 1506 1507 * readelf.c (print_ops): Print (empty)\n when LEN == 0. 1508 15092009-01-24 Ulrich Drepper <drepper@redhat.com> 1510 1511 * readelf.c (print_debug_frame_section): Fix computation of vma_base 1512 for PC-relative mode. 1513 15142009-01-23 Ulrich Drepper <drepper@redhat.com> 1515 1516 * size.c (process_file): When handling archive, close file descriptor 1517 here. For unknown file format also close file descriptor. 1518 (handle_ar): Don't close file descriptor here. 1519 1520 * readelf.c (parse_opt): Move code to add to dump_data_sections and 1521 string_sections list in local function add_dump_section. Adjust 'x' 1522 key handling. For 'a' key add .strtab, .dynstr, and .comment section 1523 to string_sections list. 1524 15252009-01-22 Roland McGrath <roland@redhat.com> 1526 1527 * readelf.c (print_phdr): Don't print section mapping when no sections. 1528 1529 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat. 1530 1531 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false 1532 and reset it only for the 'true' cases. 1533 1534 * Makefile.am (addr2line_no_Wformat): New variable. 1535 1536 * readelf.c (print_debug_frame_section): Use t instead of j formats 1537 for ptrdiff_t OFFSET. 1538 15392009-01-21 Ulrich Drepper <drepper@redhat.com> 1540 1541 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section 1542 test. Handle debuginfo files. 1543 (check_exception_data): First sanity test. 1544 15452009-01-17 Ulrich Drepper <drepper@redhat.com> 1546 1547 * readelf.c (print_debug_exception_table): Show target of ar_disp 1548 field. 1549 1550 * elflint.c (check_program_header): Add most consistency checks for 1551 PT_GNU_EH_FRAME entry. 1552 1553 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and 1554 ARGP_PROGRAM_BUG_ADDRESS_DEF. 1555 * ar.c: Likewise. 1556 * elfcmp.c: Likewise. 1557 * elflint.c: Likewise. 1558 * findtextrel.c: Likewise. 1559 * ld.c: Likewise. 1560 * nm.c: Likewise. 1561 * objdump.c: Likewise. 1562 * ranlib.c: Likewise. 1563 * readelf.c: Likewise. 1564 1565 * size.c: Likewise. 1566 * strings.c: Likewise. 1567 * strip.c: Likewise. 1568 * unstrip.c: Likewise. 1569 15702009-01-16 Ulrich Drepper <drepper@redhat.com> 1571 1572 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry 1573 matches .eh_frame_hdr section, if it is available. Also check that 1574 the segment is allocated, not writable, not executable. 1575 1576 * readelf.c: Add -e option. Dump exception and unwind related 1577 sections. Add -e to -a. 1578 (print_encoding_base): Handle DW_EH_PE_omit. 1579 (print_debug_exception_table): Beginning of support. 1580 (print_debug): Hook up print_debug_exception_table for 1581 .gcc_except_table sections. 1582 1583 * readelf.c (print_debug_frame_section): Some fixes for last change. 1584 15852009-01-15 Ulrich Drepper <drepper@redhat.com> 1586 1587 * readelf.c (print_encoding): Now a toplevel function. 1588 (print_relinfo): Likewise. 1589 (print_encoding_base): Broken out of print_debug_frame_section. 1590 (print_debug_frame_section): Print different header for .eh_frame 1591 sections. Fix recognition of matching CIEs in .debug_frame sections. 1592 Print absolute offset for PC-relative FDE locations. Don't print 1593 table header for FDEs if the table is empty. 1594 (read_encoded): New function. 1595 (print_debug_frame_hdr_section): New function. 1596 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr 1597 sections. 1598 1599 * readelf.c (handle_relocs_rel): Print section number. 1600 (print_debug_abbrev_section): Likewise. 1601 (print_debug_aranges_section): Likewise. 1602 (print_debug_ranges_section): Likewise. 1603 (print_debug_info_section): Likewise. 1604 (print_debug_line_section): Likewise. 1605 (print_debug_loc_section): Likewise. 1606 (print_debug_macinfo_section): Likewise. 1607 (print_debug_pubnames_section): Likewise. 1608 (print_debug_str_section): Likewise. 1609 16102009-01-10 Ulrich Drepper <drepper@redhat.com> 1611 1612 * strings.c (read_block): Fix typo in error message string. 1613 16142009-01-07 Ulrich Drepper <drepper@redhat.com> 1615 1616 * ld.c (ld_new_searchdir): Fix adding to search path list. 1617 16182009-01-06 Ulrich Drepper <drepper@redhat.com> 1619 1620 * readelf.c: Implement call frame debug section dumping. 1621 16222009-01-05 Roland McGrath <roland@redhat.com> 1623 1624 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep). 1625 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal. 1626 16272009-01-01 Ulrich Drepper <drepper@redhat.com> 1628 1629 * addr2line.c: Update copyright year. 1630 * ar.c: Likewise. 1631 * elfcmp.c: Likewise. 1632 * elflint.c: Likewise. 1633 * findtextrel.c: Likewise. 1634 * ld.c: Likewise. 1635 * nm.c: Likewise. 1636 * objdump.c: Likewise. 1637 * ranlib.c: Likewise. 1638 * readelf.c: Likewise. 1639 * size.c: Likewise. 1640 * strings.c: Likewise. 1641 * strip.c: Likewise. 1642 * unstrip.c: Likewise. 1643 16442008-12-11 Roland McGrath <roland@redhat.com> 1645 1646 * nm.c (sym_name): New function. 1647 (show_symbols_sysv): Use it in place of elf_strptr. 1648 (show_symbols_bsd, show_symbols_posix): Likewise. 1649 Fixes RHBZ#476136. 1650 1651 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when 1652 elf_strptr fails. 1653 16542008-12-02 Roland McGrath <roland@redhat.com> 1655 1656 * readelf.c (count_dwflmod, process_file): Don't presume encoding of 1657 nonzero OFFSET argument to dwfl_getmodules. 1658 16592008-08-07 Roland McGrath <roland@redhat.com> 1660 1661 * addr2line.c (main): Pass string to handle_address. 1662 (see_one_module): New function, subroutine of handle_address. 1663 (find_symbol): Likewise. 1664 (handle_address): Take string argument rather than address. 1665 Convert plain number, or handle strings like "(section)+offset" 1666 or "symbol+offset". 1667 16682008-08-01 Roland McGrath <roland@redhat.com> 1669 1670 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset. 1671 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string. 1672 1673 * readelf.c (convert): Take new argument SIZE. 1674 (handle_core_register, handle_core_item): Update callers. 1675 (handle_core_item): Take new arg REPEATED_SIZE. 1676 (handle_core_items): Special case for a singleton item, 1677 let handle_core_item handle repeats if it wants to. 1678 1679 * readelf.c (handle_core_items): Give abridged output 1680 for identical groups repeated more than twice. 1681 16822008-07-04 Roland McGrath <roland@redhat.com> 1683 1684 * readelf.c (handle_core_items): Handle ELF_T_ADDR. 1685 16862008-04-10 Roland McGrath <roland@redhat.com> 1687 1688 * strip.c (handle_elf): Don't keep sections that kept symbol tables 1689 refer to. Instead, just be sure to preserve the original symbol 1690 table in the debug file so those symbols go with their sections and 1691 can be elided from the stripped version of the symbol table. 1692 1693 * strip.c (handle_elf): When a discarded section kept in the debug 1694 file refers to a nondiscard section via sh_link/sh_info, preserve 1695 that nondiscarded section unmodified in the debug file as well. 1696 Skip adjustment of discarded sections symbol table references when 1697 that symbol table is copied in this way. 1698 1699 * elflint.c (check_symtab): Don't crash from missing symbol names 1700 after diagnosing bogus strtab. 1701 1702 * strip.c (handle_elf): Cosmetic cleanup in special section contents 1703 adjustment for symtab changes. 1704 17052008-03-31 Roland McGrath <roland@redhat.com> 1706 1707 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections: 1708 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook 1709 excuse a special section. 1710 17112008-03-27 Roland McGrath <roland@redhat.com> 1712 1713 * elflint.c (check_sections): Check that executability and writability 1714 of sections is reflected in segment p_flags. 1715 17162008-03-26 Roland McGrath <roland@redhat.com> 1717 1718 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags 1719 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really 1720 is valid in RELRO. 1721 17222008-02-29 Roland McGrath <roland@redhat.com> 1723 1724 * readelf.c (print_attributes): Add a cast. 1725 * elflint.c (check_attributes): Likewise. 1726 1727 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity 1728 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition. 1729 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise. 1730 17312008-02-03 Ulrich Drepper <drepper@redhat.com> 1732 1733 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD 1734 when linked into executable. 1735 (elf_i386_create_relocations): Likewise. 1736 17372008-02-20 Roland McGrath <roland@redhat.com> 1738 1739 * readelf.c (print_attributes): New function. 1740 (process_elf_file): Call it under -A. 1741 1742 * elflint.c (check_attributes): Implement it for real. 1743 17442008-02-19 Roland McGrath <roland@redhat.com> 1745 1746 * elflint.c (special_sections): Handle .gnu.attributes section. 1747 (check_sections): Likewise. 1748 (check_attributes): New function. 1749 17502008-02-10 Roland McGrath <roland@redhat.com> 1751 1752 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC 1753 sections and ET_REL files. 1754 17552008-02-02 Ulrich Drepper <drepper@redhat.com> 1756 1757 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections. 1758 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32 1759 and R_386_TLS_LE. 1760 (elf_i386_create_relocations): Likewise. 1761 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb 1762 elements. 1763 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag. 1764 (ld_generic_create_outfile): Add PT_TLS entry to program header. 1765 Fix generation of PT_GNU_STACK entry. 1766 17672008-02-01 Ulrich Drepper <drepper@redhat.com> 1768 1769 * ld.c (replace_args): Prevent loop over replacements if the parameter 1770 is only two characters long. 1771 1772 * ld.c: Recognize sha1 argument for --build-id parameter. 1773 * ldgeneric.c (create_build_id_section): Handle sha1. 1774 (compute_hash_sum): New function. Broken out of compute_build_id. 1775 Take hash function and context as parameters. 1776 (compute_build_id): Use compute_hash_sum for md5 and the new sha1 1777 implementation. 1778 17792008-01-31 Ulrich Drepper <drepper@redhat.com> 1780 1781 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections. 1782 * ld.c: Recognize --build-id command line parameter. 1783 * ld.h: Define scn_dot_note_gnu_build_id. 1784 (struct ld_state): Add build_id and buildidscnidx elements. 1785 * ldgeneric.c: Implement --build-id command line parameter. 1786 * ldlex.l (ID): Recognize - as valid character after the first one. 1787 17882008-01-29 Ulrich Drepper <drepper@redhat.com> 1789 1790 * ld.c (replace_args): New function. 1791 (main): Use it to rewrite old-style parameters. 1792 1793 * elf32-i386.script: Add .gnu.hash section. 1794 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient. 1795 (fillin_special_symbol): Initialize st_size. 1796 (sortfct_hashval): New function. 1797 (create_gnu_hash): New function. 1798 (create_hash): New function. 1799 (ld_generic_create_outfile): Use the new functions to create the 1800 hash tables. 1801 1802 * elflint.c (check_gnu_hash): Fix index value printed in error message. 1803 18042008-01-24 Ulrich Drepper <drepper@redhat.com> 1805 1806 * elflint.c (check_group): Check that signature symbol for section 1807 group is not an empty string. 1808 * ldgeneric.c: Remove magic assignment of indeces in the dynsym 1809 section. Start implementation of --hash-style. 1810 * i386_ld.c: Likewise. 1811 * ld.c: Recognize --hash-style. 1812 * ld.h (struct scninfo): Add comdat_group. 1813 Add additional parameter to finalize_plt callback. 1814 18152008-01-22 Ulrich Drepper <drepper@redhat.com> 1816 1817 * ld.h (struct callbacks): Add initialize_gotplt. 1818 (struct scnhead): Add scn_dot_gotplt. 1819 (struct ld_state): Add gotpltscnidx. 1820 * i386_ld.c (elf_i386_initialize_plt): Minor optimization. 1821 (elf_i386_initialize_pltrel): Likewise. 1822 (elf_i386_initialize_got): There is now a separate .got.plt, so 1823 don't do the PLT-related work here. Initialize d_type. 1824 (elf_i386_initialize_gotplt): New function. 1825 (elf_i386_plt0): Use ud2a after indirect jump. 1826 (elf_i386_pic_plt0_entry): Likewise. 1827 (elf_i386_finalize_plt): Reference now .got.plt. 1828 (elf_i386_count_relocations): For GOT entries which need no relocation 1829 don't bump nrel_got. 1830 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32 1831 handling for split .got/.got.plt. 1832 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt. 1833 * elf32-i386.script: Sort sections for security. There are no .got 1834 input sections. Add .got.plt. 1835 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section. 1836 (ld_generic_create_outfile): Initialize .got.plt section. 1837 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT. 1838 18392008-01-19 Ulrich Drepper <drepper@redhat.com> 1840 1841 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined 1842 symbols are not carried over into statically linked output files. 1843 Add dummy entries for more TLS relocations. 1844 1845 * ld.c (options): Add long names for -( and -). 1846 1847 * ldgeneric.c (check_definition): For newly found definitions don't 1848 mark section as used if symbol is absolute. 1849 (extract_from_archive): Only assign archive sequence number the first 1850 time the archive is handled. Update ld_state.last_archive_used 1851 if any symbol was used. Remove nround variable. 1852 (file_process2): When using symbol from an archive, update 1853 ld_state.group_start_archive, ld_state.archives, and 1854 ld_state.tailarchives. 1855 (ld_generic_file_process): If group is not handled anymore, after 1856 freeing ELF handles for the archives, clear ld_state.archives and 1857 *nextp. Fix wrong logic in recognizing first iteration of group 1858 loop. When clearing flags, also clear ld_state.group_start_archive. 1859 18602008-01-11 Ulrich Drepper <drepper@redhat.com> 1861 1862 * objdump.c (show_disasm): Adjust disassembler format string for 1863 removal of %e. 1864 18652008-01-04 Roland McGrath <roland@redhat.com> 1866 1867 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero, 1868 a size greater than the items cover means multiple sets of items. 1869 (handle_core_note): Update caller. 1870 18712008-01-04 Roland McGrath <roland@redhat.com> 1872 1873 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning. 1874 18752008-01-03 Roland McGrath <roland@redhat.com> 1876 1877 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)). 1878 1879 * elflint.c (check_dynamic): Remove duplicate initializer. 1880 18812008-01-02 Ulrich Drepper <drepper@redhat.com> 1882 1883 * addr2line.c: Update copyright year. 1884 * ar.c: Likewise. 1885 * elfcmp.c: Likewise. 1886 * elflint.c: Likewise. 1887 * findtextrel.c: Likewise. 1888 * ld.c: Likewise. 1889 * nm.c: Likewise. 1890 * objdump.c: Likewise. 1891 * ranlib.c: Likewise. 1892 * readelf.c: Likewise. 1893 * size.c: Likewise. 1894 * strings.c: Likewise. 1895 * strip.c: Likewise. 1896 * unstrip.c: Likewise. 1897 18982007-12-30 Ulrich Drepper <drepper@redhat.com> 1899 1900 * objdump (show_disasm): Use %e after third parameter. 1901 19022007-12-21 Ulrich Drepper <drepper@redhat.com> 1903 1904 * strip.c: Fix wrong parenthesis in a few branch predictions. 1905 * strings.c: Likewise. 1906 19072007-12-20 Ulrich Drepper <drepper@redhat.com> 1908 1909 * Makefile.am (DEFS): Add DEBUGPRED. 1910 * addr2line.c: Include debugpred.h. 1911 * ar.c: Likewise. 1912 * elfcmp.c: Likewise. 1913 * elflint.c: Likewise. 1914 * findtextrel.c: Likewise. 1915 * nm.c: Likewise. 1916 * objdump.c: Likewise. 1917 * ranlib.c: Likewise. 1918 * readelf.c: Likewise. 1919 * size.c: Likewise. 1920 * strings.c: Likewise. 1921 * strip.c: Likewise. 1922 * unstrip.c: Likewise. 1923 * debugpred.h: New file. 1924 1925 * readelf.c (handle_relocs_rel): Use elf_scnshndx. 1926 (handle_relocs_rela): Likewise. 1927 1928 * readelf.c: Add lots of likely/unlikely. 1929 1930 * elflint.c: Minor cleanups. 1931 19322007-11-19 Roland McGrath <roland@redhat.com> 1933 1934 * readelf.c (print_ops): Handle all bad op codes gracefully. 1935 Print their numbers instead of just ???. 1936 19372007-11-09 Roland McGrath <roland@redhat.com> 1938 1939 * readelf.c (attr_callback): Handle DW_AT_data_location. 1940 Handle block forms to mean a DWARF expression for DW_AT_allocated, 1941 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride, 1942 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound, 1943 DW_AT_upper_bound. 1944 19452007-10-20 Roland McGrath <roland@redhat.com> 1946 1947 * unstrip.c (options): Update -R description. 1948 (struct symbol): Put symbol details a union with a size_t pointer 1949 `duplicate'. 1950 (compare_symbols_output): Use null ->name as marker for discard 1951 symbols, not zero *->map. 1952 (copy_elided_sections): Record forwarding pointers for discarded 1953 duplicates and fill SYMNDX_MAP elements through them. 1954 1955 * readelf.c (process_file): Set offline_next_address to 0 at start. 1956 (struct process_dwflmod_args): New type. 1957 (process_dwflmod): Take args in it, pass fd to process_elf_file. 1958 (process_file): Update caller; dup FD for passing to libdwfl. 1959 (process_elf_file): Take new arg FD. For ET_REL file when 1960 displaying data affected by libdwfl relocation, open a new Elf handle. 1961 19622007-10-17 Roland McGrath <roland@redhat.com> 1963 1964 * readelf.c (print_debug_line_section): For invalid data inside a 1965 unit with plausible length, keep printing at the next unit boundary. 1966 1967 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref. 1968 19692007-10-16 Roland McGrath <roland@redhat.com> 1970 1971 * readelf.c (hex_dump): Fix rounding error in whitespace calculation. 1972 19732007-10-15 Roland McGrath <roland@redhat.com> 1974 1975 * make-debug-archive.in: New file. 1976 * Makefile.am (EXTRA_DIST): Add it. 1977 (make-debug-archive): New target. 1978 (bin_SCRIPTS, CLEANFILES): Add it. 1979 19802007-10-10 Roland McGrath <roland@redhat.com> 1981 1982 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld. 1983 Use it to check MERGE|STRINGS for .debug_str. 1984 (check_sections): Handle exact_or_gnuld. 1985 19862007-10-08 Roland McGrath <roland@redhat.com> 1987 1988 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate 1989 64-bit struct timeval with 32-bit tv_usec. 1990 19912007-10-07 Roland McGrath <roland@redhat.com> 1992 1993 * readelf.c (check_archive_index): New function. 1994 (process_file): Call it. Change signature to take only fd and name. 1995 Use libdwfl to open the file, then iterate on its modules (multiple 1996 for an archive) to print file name and call process_elf_file. 1997 (main): Update caller. Let process_file do elf_begin. 1998 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions. 1999 (process_elf_file): Take only Dwfl_Module * argument. 2000 Don't print the file name here. 2001 (print_debug_*_section): Take Dwfl_Module * argument. 2002 (print_debug): Likewise. Update caller. 2003 (format_dwarf_addr): New function. 2004 (print_debug_ranges_section): Use it. 2005 (attr_callback): Likewise. 2006 (print_debug_line_section, print_debug_loc_section): Likewise. 2007 2008 * readelf.c (print_debug_ranges_section): Translate all strings. 2009 (print_debug_loc_section): Likewise. 2010 2011 * unstrip.c (copy_elided_sections): Initialize SEC. 2012 2013 * ar.c (do_oper_insert): Put trailing / on short names. 2014 2015 * arlib.h (MAX_AR_NAME_LEN): Decrease by one. 2016 2017 * arlib2.c (arlib_add_long_name): Adjust for header size. 2018 2019 * arlib.c (arlib_finalize): Pad long name table to keep size even. 2020 2021 * ar.c (do_oper_insert): Use write_retry for padding write. 2022 2023 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case. 2024 Unconditionally set FOUND[CNT]->elf when setting ->mem. 2025 (remember_long_name): New function. 2026 (do_oper_insert): Call it. Correctly use length of basename, 2027 not original name. Don't store long name twice for new member. 2028 20292007-10-06 Roland McGrath <roland@redhat.com> 2030 2031 * elflint.c (check_note): Skip empty segment. 2032 (check_note_section): Skip empty section. 2033 2034 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate. 2035 (handle_output_dir_module, handle_implicit_modules): Pass it down. 2036 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl. 2037 (compare_alloc_sections): Take new arg REL, ignore address if true. 2038 (compare_sections): Likewise, pass it down. 2039 (compare_sections_rel, compare_sections_nonrel): New functions. 2040 (find_alloc_sections_prelink, copy_elided_sections): Use them 2041 instead of compare_sections. 2042 (sections_match): New function, broken out of ... 2043 (find_alloc_section): ... here. 2044 (copy_elided_sections): Reorganize section match-up logic. 2045 Use sections_match for SHF_ALLOC in ET_REL. 2046 For ET_REL, let the nonzero sh_addr from the debug file dominate. 2047 2048 * unstrip.c (add_new_section_symbols): Take new arg REL. 2049 When true, do not update section symbol values. 2050 (collect_symbols): Likewise. Update section symbols with address 2051 of chosen output section, not original section. 2052 (check_symtab_section_symbols, copy_elided_sections): Update callers. 2053 2054 * unstrip.c (compare_alloc_sections): At the same address, preserve 2055 original section order. 2056 2057 * elflint.c (special_sections): Don't require MERGE|STRINGS for 2058 .debug_str, it didn't always have them with older tools. 2059 2060 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL. 2061 20622007-10-05 Roland McGrath <roland@redhat.com> 2063 2064 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in 2065 ET_REL file. 2066 2067 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose 2068 SHN_UNDEF as "bad section". Use shndx value in messages. 2069 2070 * elflint.c (special_sections): Add ".debug_str". Decrement namelen 2071 for ".debug" so it matches as a prefix. 2072 (IS_KNOWN_SPECIAL): New macro. 2073 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS 2074 type even under -d, for a .debug* or .shstrtab section. 2075 2076 * readelf.c (print_ops): Use hex for address operand. 2077 20782007-10-04 Roland McGrath <roland@redhat.com> 2079 2080 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for 2081 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for 2082 sections mapped to SHN_UNDEF. 2083 20842007-10-04 Ulrich Drepper <drepper@redhat.com> 2085 2086 * readelf.c (dump_archive_index): Avoid warning about uninitialized 2087 variable with older glibc versions. 2088 Add some branch prediction. 2089 20902007-10-04 Roland McGrath <roland@redhat.com> 2091 2092 * readelf.c (print_archive_index): New variable. 2093 (options, parse_opt): Accept -c/--archive-index to set it. 2094 (dump_archive_index): New function. 2095 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX. 2096 Call dump_archive_index on archives if set. 2097 (main): Update caller. 2098 (any_control_option): Give it file scope, moved out of ... 2099 (parse_opt): ... here. 2100 21012007-10-03 Roland McGrath <roland@redhat.com> 2102 2103 * unstrip.c (struct arg_info): Add `list' flag. 2104 (options, parse_opt): Grok -n/--list to set it. 2105 (list_module): New function. 2106 (handle_implicit_modules): Call it under -n. 2107 2108 * elflint.c (check_note_section): New function. 2109 (check_sections): Call it for SHT_NOTE. 2110 2111 * readelf.c (handle_notes): Use sections when available. 2112 2113 * elflint.c (check_note_data): New function, broken out of ... 2114 (check_note): ... here. Call it and elf_getdata_rawchunk. 2115 2116 * readelf.c (handle_auxv_note): Take offset as argument, not buffer. 2117 Use elf_getdata_rawchunk and gelf_getauxv. 2118 (handle_notes_data): New function, broken out of ... 2119 (handle_notes): ... here. Call it and elf_getdata_rawchunk. 2120 21212007-10-01 Roland McGrath <roland@redhat.com> 2122 2123 * readelf.c (hex_dump): Fix transposed subtraction generating spaces. 2124 2125 * readelf.c (hex_dump): Fix line header to be hex instead of decimal. 2126 21272007-09-10 Roland McGrath <roland@redhat.com> 2128 2129 * readelf.c (options): Give -p optional argument, alias --string-dump. 2130 (string_sections, string_sections_tail): New static variables. 2131 (parse_opt): Set them when -p has an argument. 2132 (print_string_section): New function, broken out of ... 2133 (print_strings): ... here. Call it. 2134 (dump_data_section): New function, broken out of ... 2135 (dump_data): ... here. Call it. 2136 (for_each_section_argument): New function, broken out of ... 2137 (dump_data): ... here. Call it. 2138 (dump_strings): New function. 2139 21402007-08-31 Roland McGrath <roland@redhat.com> 2141 2142 * readelf.c (print_strings): Typo fix. 2143 21442007-08-23 Roland McGrath <roland@redhat.com> 2145 2146 * readelf.c (printf_with_wrap): Function removed. 2147 (REGISTER_WRAP_COLUMN): New macro. 2148 (handle_core_register): Use print_core_item instead. 2149 (struct register_info): New type. 2150 (compare_registers, compare_register_sets): New functions. 2151 (register_bitpos, compare_sets_by_info): New functions. 2152 (handle_core_registers): Use those to segregate and sort registers 2153 for display. 2154 2155 * readelf.c (ITEM_WRAP_COLUMN): New macro. 2156 (print_core_item): New function. 2157 (handle_core_item): Use it instead of printf_with_wrap. 2158 (compare_core_items, compare_core_item_groups): New functions. 2159 (handle_core_items): Use them. Sort by group and force line breaks 2160 between groups. 2161 2162 * readelf.c (handle_core_registers, handle_core_items): New functions, 2163 broken out of ... 2164 (handle_core_note): ... here. Call them. 2165 21662007-08-22 Roland McGrath <roland@redhat.com> 2167 2168 * unstrip.c (new_shstrtab): New function, broken out of ... 2169 (copy_elided_sections): ... here. 2170 21712007-08-20 Roland McGrath <roland@redhat.com> 2172 2173 Avoid local function trampolines in nm binary. 2174 * nm.c (sort_by_address): Move to a static function instead of local 2175 inside show_symbols. 2176 (sort_by_name_strtab): New static variable. 2177 (sort_by_name): Use it. Move to a static function instead of local 2178 inside show_symbols. 2179 (show_symbols): Set sort_by_name_strtab. 2180 21812007-08-19 Roland McGrath <roland@redhat.com> 2182 2183 * readelf.c (handle_auxv_note): New function. 2184 (handle_notes): Call it. 2185 2186 * readelf.c (printf_with_wrap, convert): New functions. 2187 (handle_core_item, (handle_core_register): New functions. 2188 (handle_notes): Call those with details from ebl_core_note. 2189 21902007-08-12 Roland McGrath <roland@redhat.com> 2191 2192 * elflint.c (check_note): Accept type 0 with name "Linux". 2193 2194 * elflint.c (special_sections): Accept SHF_ALLOC for ".note". 2195 2196 * elflint.c (section_flags_string): Return "none" for 0, not "". 2197 21982007-08-11 Roland McGrath <roland@redhat.com> 2199 2200 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID. 2201 22022007-08-04 Ulrich Drepper <drepper@redhat.com> 2203 2204 * readelf.c (hex_dump): Use isprint to determine whether to print 2205 character itself or full stop character. 2206 (dump_data): No need to check endp for NULL after strtol call. 2207 22082007-08-03 Roland McGrath <roland@redhat.com> 2209 2210 * readelf.c (print_string_sections): New variable. 2211 (options, parse_opt): Handle --strings/-p to set it. 2212 (print_strings): New function. 2213 (process_elf_file): Call it under -p. 2214 2215 * readelf.c (options): Add hidden aliases --segments, --sections, 2216 as taken by binutils readelf. 2217 22182007-08-01 Roland McGrath <roland@redhat.com> 2219 2220 * readelf.c (dump_data_sections, dump_data_sections_tail): 2221 New variables. 2222 (options, parse_opt): Handle --hex-dump/-x, set them. 2223 (hex_dump): New function. 2224 (dump_data): New function, call it. 2225 (process_elf_file): Call it. 2226 22272007-07-25 Roland McGrath <roland@redhat.com> 2228 2229 * addr2line.c (show_symbols): New variable. 2230 (print_addrsym): New function. 2231 (handle_address): Call it. 2232 (options, parse_opt): Handle -S/--symbols. 2233 22342007-06-05 Ulrich Drepper <drepper@redhat.com> 2235 2236 * addr2line.c: Update for latest autoconf header. 2237 * ar.c: Likewise. 2238 * elfcmp.c: Likewise. 2239 * elflint.c: Likewise. 2240 * findtextrel.c: Likewise. 2241 * ld.c: Likewise. 2242 * ldgeneric.c: Likewise. 2243 * nm.c: Likewise. 2244 * objdump.c: Likewise. 2245 * ranlib.c: Likewise. 2246 * readelf.c: Likewise. 2247 * size.c: Likewise. 2248 * strings.c: Likewise. 2249 * strip.c: Likewise. 2250 * unstrip.c: Likewise. 2251 22522007-05-18 Roland McGrath <roland@redhat.com> 2253 2254 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with 2255 stripped file, so as not to duplicate a section copied in both. 2256 2257 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file. 2258 22592007-05-17 Roland McGrath <roland@redhat.com> 2260 2261 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0. 2262 2263 * unstrip.c (handle_file): Tweak BIAS != 0 warning. 2264 2265 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set, 2266 call make_directories here. 2267 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down. 2268 (handle_dwfl_module): Likewise. 2269 (handle_implicit_modules): Update callers. 2270 (handle_output_dir_module): Likewise. Don't do make_directories here. 2271 2272 * unstrip.c (get_section_name): New function, broken out of ... 2273 (copy_elided_sections): here. Update callers. 2274 (find_alloc_section): Broken out of ... 2275 (copy_elided_sections): ... here. Update caller. 2276 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA, 2277 update STT_SECTION symbols' st_value fields as a side effect. 2278 (check_symtab_section_symbols): Update caller. 2279 (add_new_section_symbols): Set st_value in symbols added. 2280 (collect_symbols): Reset S->value for STT_SECTION symbols recorded. 2281 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved 2282 from .bss to .dynbss. 2283 (find_alloc_sections_prelink): New function. Associate debug file 2284 allocated SHT_NOBITS shdrs with stripped moved by prelink via 2285 .gnu.prelink_undo information. 2286 (copy_elided_sections): Call it when we couldn't find every allocated 2287 section. Don't use a debug file non-NOBITS section if SHF_ALLOC. 2288 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM. 2289 (handle_file): Update callers. 2290 2291 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section 2292 named ".comment". 2293 2294 * elflint.c (check_sections): Fix association of segments with 2295 sections when p_memsz > p_filesz. 2296 22972007-04-29 Roland McGrath <roland@redhat.com> 2298 2299 * addr2line.c (options, main): Tweak argp group settings to fix 2300 usage output. 2301 23022007-04-28 Roland McGrath <roland@redhat.com> 2303 2304 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections' 2305 sizes to match sections adjusted in the stripped file. 2306 23072007-04-24 Roland McGrath <roland@redhat.com> 2308 2309 * elfcmp.c (OPT_HASH_INEXACT): New macro. 2310 (hash_inexact): New variable. 2311 (options, parse_opt): Add --hash-inexact option to set it. 2312 (hash_content_equivalent): New function. 2313 (main): Call it for differing SHT_HASH sections under --hash-inexact. 2314 23152007-04-23 Roland McGrath <roland@redhat.com> 2316 2317 * unstrip.c: New file. 2318 * Makefile.am (bin_PROGRAMS): Add it. 2319 (unstrip_LDADD): New variable. 2320 2321 * strip.c (options): Allow --output for -o. 2322 23232007-02-15 Ulrich Drepper <drepper@redhat.com> 2324 2325 * readelf.c: Remove unused code. Add a few consts. 2326 23272007-02-15 Roland McGrath <roland@redhat.com> 2328 2329 * readelf.c (print_debug): Fix brainos in SHDR test. 2330 23312007-02-05 Roland McGrath <roland@redhat.com> 2332 2333 * ar.c: Include <limits.h>, since we use LONG_MAX. 2334 23352007-02-05 Ulrich Drepper <drepper@redhat.com> 2336 2337 * ar.c: Add ugly hack to work around gcc complaining that we 2338 ignore fchown's return value. 2339 (do_oper_insert): Handle error when writing padding. 2340 * ranlib.c: Add fchown complain work around. 2341 2342 * arlib.c: Make symtab a global variable. Change all users. 2343 * arlib2.c: Likewise. 2344 * ranlib.c: Likewise. 2345 * ar.c: Likewise. 2346 * arlib.h: Declare it. 2347 23482007-01-11 Roland McGrath <roland@redhat.com> 2349 2350 * elflint.c (check_sections): Use ebl_machine_section_flag_check on 2351 SHF_MASKPROC bits separately from generic sh_flags validation. 2352 23532007-02-04 Ulrich Drepper <drepper@redhat.com> 2354 2355 * ar.c: New file. 2356 * arlib.c: New file. 2357 * arlib2.c: New file. 2358 * arlib.h: New file. 2359 * Makefile (noinst_LIBRARIES): Add libar. 2360 (libar_a_SOURCES): Define. 2361 (ar_LDADD): Define. 2362 (CFLAGS_ar): Define. 2363 * ranlib.c: Change to use arlib. 2364 2365 * elflint.c (check_symtab): Work around GNU ld bug which omits 2366 sections but not symbols in those sections. 2367 23682007-01-10 Ulrich Drepper <drepper@redhat.com> 2369 2370 * addr2line.c: Update copyright year. 2371 * elfcmp.c: Likewise. 2372 * elflint.c: Likewise. 2373 * findtextrel.c: Likewise. 2374 * ld.c: Likewise. 2375 * nm.c: Likewise. 2376 * objdump.c: Likewise. 2377 * ranlib.c: Likewise. 2378 * readelf.c: Likewise. 2379 * size.c: Likewise. 2380 * strings.c: Likewise. 2381 * strip.c: Likewise. 2382 23832006-12-09 Ulrich Drepper <drepper@redhat.com> 2384 2385 * elflint.c (compare_hash_gnu_hash): New function. Report if the 2386 two hash tables have different content (module expected omission 2387 of undefined symbols). 2388 23892006-10-31 Roland McGrath <roland@redhat.com> 2390 2391 * elflint.c (check_program_header): Don't complain about 2392 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE. 2393 23942006-09-19 Jakub Jelinek <jakub@redhat.com> 2395 2396 * strip.c (process_file): Disallow -f on archives. 2397 23982006-10-09 Roland McGrath <roland@redhat.com> 2399 2400 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC). 2401 24022006-08-29 Roland McGrath <roland@redhat.com> 2403 2404 * Makefile.am (MAINTAINERCLEANFILES): New variable. 2405 2406 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly. 2407 Reported by Christian Aichinger <Greek0@gmx.net>. 2408 2409 * elflint.c (valid_e_machine): Add EM_ALPHA. 2410 Reported by Christian Aichinger <Greek0@gmx.net>. 2411 24122006-08-08 Ulrich Drepper <drepper@redhat.com> 2413 2414 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. 2415 Keep track of which "high DT" entries are present. 2416 Check that either old or GNU-style hash table is present. 2417 If GNU-style hash table is used a symbol table is mandatory. 2418 Check that if any prelink entry is present all of them are. 2419 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash 2420 table if they don't refer to functions. 2421 24222006-07-17 Roland McGrath <roland@redhat.com> 2423 2424 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field. 2425 (add_version): Likewise for argument. 2426 (check_versym): Cast constant to GElf_Versym for comparison. 2427 24282006-07-12 Roland McGrath <roland@redhat.com> 2429 2430 * readelf.c (handle_gnu_hash): Add casts for machines where 2431 Elf32_Word != unsigned int. 2432 24332006-07-12 Ulrich Drepper <drepper@redhat.com> 2434 2435 * elflint.c (check_sysv_hash64): Fix printf format. 2436 24372006-07-11 Roland McGrath <roland@redhat.com> 2438 2439 * addr2line.c (options): English fix in -f doc string. 2440 2441 * addr2line.c (use_comp_dir): New variable. 2442 (options, parse_opt): Grok -A/--absolute to set it. 2443 (handle_address): If set, prepend dwfl_line_comp_dir results to 2444 relative file names. 2445 24462006-07-06 Ulrich Drepper <drepper@redhat.com> 2447 2448 * elflint.c: Adjust for latest new hash table format. 2449 * readelf.c: Likewise. 2450 2451 * elflint.c (check_versym): Ignore hidden bit when comparing version 2452 numbers. 2453 24542006-07-05 Ulrich Drepper <drepper@redhat.com> 2455 2456 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize 2457 discarded COMDAT symbols. 2458 2459 * i386_ld.c (elf_i386_count_relocations): Lot of corrections. 2460 (elf_i386_create_relocations): Likewise. 2461 * ld.h (struct symbol): Add local and hidden bits. 2462 * ld.c (create_special_section_symbol): These synthsized symbols 2463 are local and hidden. 2464 * ldgeneric.c (file_process2): Check whether input file matches 2465 the emulation. 2466 (fillin_special_symbol): Create symbols as local and/or hidden 2467 if requested. 2468 (ld_generic_create_outfile): Make local copy of symbol. 2469 Don't hide global, defined symbols in dynamic symbol table unless 2470 requested. Synthetic symbols have no version information. 2471 2472 * elflint.c: Add support for checking 64-bit SysV-style hash tables. 2473 * readelf.c: Add support for printing 64-bit SysV-style hash tables. 2474 24752006-07-04 Ulrich Drepper <drepper@redhat.com> 2476 2477 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT 2478 testing. 2479 24802006-07-03 Ulrich Drepper <drepper@redhat.com> 2481 2482 * elflint.c: Add testing of DT_GNU_HASH. 2483 * readelf.c: Implement showing histogram for DT_GNU_HASH section. 2484 2485 * Makefile.am: Add hacks to create dependency files for non-generic 2486 linker. 2487 24882006-06-12 Ulrich Drepper <drepper@redhat.com> 2489 2490 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp 2491 section if creating a DSO and no interpreter is given. 2492 (ld_generic_create_outfile): Don't store reference to symbols in 2493 discarded COMDAT groups. Don't create PHDR and INTERP program header 2494 for DSO if no interpreter is specified. 2495 (create_verneed_data): Pretty printing. 2496 2497 * ldscript.y (content): If a DSO is created don't set default 2498 interpreter from linker script. 2499 2500 * i386_ld.c (elf_i386_count_relocations): Do not add relocations 2501 for symbols in discarded COMDAT groups. 2502 (elf_i386_create_relocations): Likewise. 2503 * ld.h (struct scninfo): Add unused_comdat. 2504 * ldgeneric.c (add_section): Also check group signature when 2505 matching COMDAT sections. 2506 (add_relocatable_file): Ignore symbols in COMDAT group which are 2507 discarded. 2508 2509 * elflint.c (check_one_reloc): For *_NONE relocs only check type 2510 and symbol reference. 2511 25122006-06-11 Ulrich Drepper <drepper@redhat.com> 2513 2514 * elflint.c (check_dynamic): Fix checking value of tags which are 2515 offsets in the string section. Make sure DT_STRTAB points to the 2516 section referenced in sh_link. 2517 2518 * ld.c (options): Add headers. Add short option 'R' for '--rpath'. 2519 2520 * ld.c: Recognize --eh-frame-hdr option. 2521 * ld.h (struct ld_state): Add eh_frame_hdr field. 2522 * ldgeneric.c (struct unw_eh_frame_hdr): Define. 2523 2524 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of 2525 SH_FLAGS_COMBINE. 2526 (add_relocatable_file): Minor optimization of last change. 2527 (match_section): Don't preserve SHF_GROUP flag any longer. 2528 25292006-06-10 Ulrich Drepper <drepper@redhat.com> 2530 2531 * ld.c (parse_z_option): Recognize execstack and noexecstack. 2532 Handle record and ignore as position dependent options. 2533 (parse_z_option_2): Handle ignore and record here. 2534 * ld.h (struct ld_state): Add execstack field. 2535 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack 2536 sections. 2537 (ld_generic_create_outfile): Fix program header creation in native 2538 linker. Add PT_GNU_STACK program header. 2539 25402006-06-09 Ulrich Drepper <drepper@redhat.com> 2541 2542 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries 2543 for PLT entries if there is no local definition. 2544 2545 * ld.c (parse_option): Handle -z ignore like --as-needed and 2546 -z record like --no-as-needed. 2547 * ld.h (struct ld_state): Remove ignore_unused_dsos field. 2548 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by 2549 looping over DSOs. When deciding about adding DT_NEEDED entries 2550 use ->as_needed instead of ignore_unused_dsos. 2551 25522006-05-31 Ulrich Drepper <drepper@redhat.com> 2553 2554 * ld.c: Recognize --as-needed and --no-as-needed options. 2555 * ld.h (struct usedfile): Add as_needed field. 2556 (struct ld_state): Likewise. 2557 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from 2558 the list. 2559 * ldscript.y (filename_id_list): Split to correctly parse all 2560 combinations. 2561 (mark_as_needed): Fix loop. 2562 25632006-05-28 Ulrich Drepper <drepper@redhat.com> 2564 2565 * addr2line.c (print_dwarf_function): Use unsigned type for lineno 2566 and colno. 2567 25682006-05-27 Ulrich Drepper <drepper@redhat.com> 2569 2570 * readelf.c (handle_relocs_rela): Better notations for addon value. 2571 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version. 2572 25732006-04-04 Ulrich Drepper <drepper@redhat.com> 2574 2575 * addr2line.c: Update copyright year. 2576 * elfcmp.c: Likewise. 2577 * elflint.c: Likewise. 2578 * findtextrel.c: Likewise. 2579 * ld.c: Likewise. 2580 * nm.c: Likewise. 2581 * objdump.c: Likewise. 2582 * ranlib.c: Likewise. 2583 * readelf.c: Likewise. 2584 * size.c: Likewise. 2585 * strings.c: Likewise. 2586 * strip.c: Likewise. 2587 25882006-03-09 Roland McGrath <roland@redhat.com> 2589 2590 * Makefile.am (AM_LDFLAGS): New variable. 2591 25922006-03-01 Roland McGrath <roland@redhat.com> 2593 2594 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables 2595 for dwarf.h changes matching 3.0 spec. 2596 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise. 2597 25982005-12-04 Ulrich Drepper <drepper@redhat.com> 2599 2600 * elflint.c (check_one_reloc): If relocation section is not loaded, 2601 don't check whether the relocations modify read-only sections or 2602 loaded and unloaded sections. 2603 26042005-11-28 Ulrich Drepper <drepper@redhat.com> 2605 2606 * elflint.c (check_one_reloc): Take additional parameters. Use 2607 them to determine whether relocation is valid in this type of 2608 file. DSOs and executables can contain relocation sections in 2609 unloaded sections which just show the relocations the linker 2610 applied. Adjust all callers. 2611 (check_program_header): Check that PT_PHDR is loaded and that offset 2612 matches the one in the ELF header. 2613 26142005-10-26 Roland McGrath <roland@redhat.com> 2615 2616 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation. 2617 26182005-09-03 Ulrich Drepper <drepper@redhat.com> 2619 2620 * strip.c (handle_elf): Unify some error messages. 2621 * ld.c (main): Likewise. 2622 * ldgeneric.c (open_elf): Likewise. 2623 * elfcmp.c (main): Likewise. 2624 * elflint.c (check_elf_header): Likewise. 2625 2626 * size.c (process_file): Fix typo in error message. 2627 2628 * readelf.c: Lots of little cleanups. Use _unlocked functions. 2629 26302005-09-02 Ulrich Drepper <drepper@redhat.com> 2631 2632 * strings.c (main): Reset elfmap variable after munmap call. 2633 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap. 2634 26352005-08-28 Ulrich Drepper <drepper@redhat.com> 2636 2637 * ranlib.c: Don't define pread_retry and write_retry here. 2638 2639 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl. 2640 (CLEANFILES): Add *.gcno *.gcda *.gconv. 2641 2642 * strings.c (process_chunk): Reorder expressions in conditional 2643 (process_chunk_mb): Likewise. 2644 2645 * strings.c: New file. 2646 * Makefile.am (bin_PROGRAMS): Add strings. 2647 (strings_no_Wstring): Define. 2648 (strings_LDADD): Define. 2649 26502005-08-27 Roland McGrath <roland@redhat.com> 2651 2652 * addr2line.c (dwarf_diename_integrate): Function removed. 2653 (print_dwarf_function): Use plain dwarf_diename. 2654 26552005-08-24 Ulrich Drepper <drepper@redhat.com> 2656 2657 * elflint.c (check_versym): Versioned symbols should not have 2658 local binding. 2659 26602005-08-15 Ulrich Drepper <drepper@redhat.com> 2661 2662 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be 2663 undefined. 2664 2665 * Makefile.am: Add rules to build ranlib. 2666 * ranlib.c: New file. 2667 26682005-08-14 Roland McGrath <roland@redhat.com> 2669 2670 * elflint.c (check_sections): Use ebl_section_type_name and allow any 2671 sh_type it recognizes. 2672 2673 * elflint.c (check_sections): Print unknown flags in hex, don't 2674 truncate high bits. Print section number and name for unknown type. 2675 26762005-08-13 Roland McGrath <roland@redhat.com> 2677 2678 * elflint.c (check_program_header): Use ebl_segment_type_name and 2679 allow any p_type it recognizes. Include p_type value in error 2680 message for unknown type. 2681 26822005-08-13 Ulrich Drepper <drepper@redhat.com> 2683 2684 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr 2685 to ebl_check_special_symbol. 2686 (check_sections): Pass ehdr to ebl_bss_plt_p. 2687 26882005-08-12 Roland McGrath <roland@redhat.com> 2689 2690 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx 2691 refers to the right section if it's not SHN_ABS. 2692 Let ebl_check_special_symbol override _G_O_T_ value and size checks. 2693 2694 * elflint.c (check_sections): Don't complain about a non-NOBITS 2695 section taking no segment space, if it's sh_size is 0. 2696 2697 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should 2698 be PROGBITS or NOBITS. 2699 2700 * elflint.c (check_symtab): Use ebl_check_special_symbol to override 2701 standard st_value and st_size checks. 2702 27032005-07-28 Roland McGrath <roland@redhat.com> 2704 2705 * addr2line.c (options, parse_opt): Don't handle -e here. 2706 (executable): Variable removed. 2707 (argp_children): New static variable. 2708 (argp): Use it. Make const. 2709 (main): Fill in argp_children from dwfl_standard_argp (). 2710 Let libdwfl handle file selection, pass Dwfl handle to handle_address. 2711 (print_dwarf_function): New function. Try to figure out inline chain. 2712 (elf_getname): Function removed, libdwfl does it for us. 2713 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles. 2714 Use dwfl_module_addrname instead of elf_getname. 2715 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls. 2716 * Makefile.am (INCLUDES): Add libdwfl directory to path. 2717 27182005-08-10 Ulrich Drepper <drepper@redhat.com> 2719 2720 * strip.c (parse_opt): STATE parameter is now used. 2721 Various little cleanups. 2722 2723 * readelf.c (print_debug_line_section): Correct fallout of renaming 2724 of DW_LNS_set_epilog_begin. 2725 27262005-08-08 Roland McGrath <roland@redhat.com> 2727 2728 * strip.c (options, parse_opt): Grok -R .comment for compatibility 2729 with binutils strip. Likewise -d, -S, as aliases for -g. 2730 Likewise ignore -s/--strip-all. 2731 27322005-08-07 Roland McGrath <roland@redhat.com> 2733 2734 * strip.c (process_file): Open read-only when using a different output 2735 file. 2736 27372005-08-06 Ulrich Drepper <drepper@redhat.com> 2738 2739 * elflint.c (in_nobits_scn): New function. 2740 (check_versym): Allow references for defined symbols against versions 2741 of other DSOs also for symbols in nobits sections. 2742 Move a few variables around. 2743 2744 * Makefile.am (AM_CFLAGS): Avoid duplication. 2745 Link with statis libs if BUILD_STATIC. 2746 27472005-08-05 Ulrich Drepper <drepper@redhat.com> 2748 2749 * elflint.c: Many, many more tests. Mostly related to symbol 2750 versioning. Those sections should now be completely checked. 2751 2752 * readelf.c (print_dynamic): Use gelf_offscn. 2753 27542005-08-04 Ulrich Drepper <drepper@redhat.com> 2755 2756 * elflint.c: Add lots more tests: more extension symbol table sanity, 2757 versioning section tests, hash table tests. General cleanup. 2758 27592005-08-02 Ulrich Drepper <drepper@redhat.com> 2760 2761 * objdump.c: New file. 2762 * Makefile.am (bin_PROGRAMS): Add objdump. 2763 (objdump_LDADD): Define. 2764 2765 * elflint.c (check_reloc_shdr): New function split out from check_rela 2766 and check_rel. 2767 (check_one_reloc): New function. Likewise. 2768 (check_rela): Use check_reloc_shdr and check_one_reloc. 2769 (check_rel): Likewise. 2770 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic 2771 section. 2772 Add checks that relocations against read-only segments are flagged, 2773 that the text relocation flag is not set unnecessarily, and that 2774 relocations in one section are either against loaded or not-loaded 2775 segments. 2776 27772005-08-01 Ulrich Drepper <drepper@redhat.com> 2778 2779 * elfcmp.c (main): Ignore section count and section name string table 2780 section index. 2781 27822005-07-27 Roland McGrath <roland@redhat.com> 2783 2784 * elfcmp.c: Include <locale.h>. 2785 27862005-07-27 Ulrich Drepper <drepper@redhat.com> 2787 2788 * elfcmp.c: Print name and index of differing section. 2789 27902005-07-24 Ulrich Drepper <drepper@redhat.com> 2791 2792 * elfcmp.c: Implement comparing gaps between sections. 2793 27942005-07-23 Ulrich Drepper <drepper@redhat.com> 2795 2796 * elflint.c: Include libeblP.h instead of libebl.h. 2797 * nm.c: Likewise. 2798 * readelf.c: Likewise. 2799 * elfcmp.c: Likewise. 2800 2801 * elfcmp.c (main): Compare individual ELF header fields, excluding 2802 e_shoff instead of the whole struct at once. 2803 Use ebl_section_strip_p instead of SECTION_STRIP_P. 2804 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P. 2805 28062005-07-22 Ulrich Drepper <drepper@redhat.com> 2807 2808 * elfcmp.c (main): Take empty section into account when comparing 2809 section content. 2810 2811 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before 2812 using it. 2813 28142005-07-21 Ulrich Drepper <drepper@redhat.com> 2815 2816 * elfcmp.c: New file. 2817 * Makefile.am (bin_PROGRAMS): Add elfcmp. 2818 (elfcmp_LDADD): Define. 2819 2820 * elflint.c (check_rela): Check that copy relocations only reference 2821 object symbols or symbols with unknown type. 2822 (check_rel): Likewise. 2823 28242005-06-08 Roland McGrath <roland@redhat.com> 2825 2826 * readelf.c (print_ops): Add consts. 2827 28282005-05-31 Roland McGrath <roland@redhat.com> 2829 2830 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's 2831 abbreviations. Print a header line before each CU section. 2832 2833 * readelf.c (print_debug_loc_section): Fix indentation for larger 2834 address size. 2835 28362005-05-30 Roland McGrath <roland@redhat.com> 2837 2838 * readelf.c (print_debug_line_section): Print section offset of each 2839 CU's table, so they are easy to find from seeing the stmt_list value. 2840 2841 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>. 2842 (attr_callback): Grok DW_AT_ranges and print offset in hex. 2843 2844 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format. 2845 (print_debug_ranges_section, print_debug_loc_section): Likewise. 2846 2847 * readelf.c (print_ops): Take different args for indentation control. 2848 (attr_callback): Caller updated. 2849 Grok several more block-form attributes as being location expressions. 2850 For those same attributes with udata forms, format output differently 2851 for location list offset. 2852 (print_debug_loc_section): Implement it for real. 2853 2854 * readelf.c (options): Mention ranges for --debug-dump. 2855 (enum section_e): Add section_ranges. 2856 (parse_opt): Grok "ranges" for -w/--debug-dump. 2857 (print_debug_ranges_section): New function. 2858 (print_debug): Handle .debug_ranges section. 2859 28602005-05-30 Ulrich Drepper <drepper@redhat.com> 2861 2862 * readelf.c (handle_notes): At least x86-64 need not have the note 2863 section values aligned to 8 bytes. 2864 28652005-05-18 Ulrich Drepper <drepper@redhat.com> 2866 2867 * readelf.c (dwarf_tag_string): Add new tags. 2868 28692005-05-08 Roland McGrath <roland@redhat.com> 2870 2871 * strip.c (handle_elf): Don't translate hash and versym data formats, 2872 elf_getdata already did it for us. 2873 28742005-05-07 Ulrich Drepper <drepper@redhat.com> 2875 2876 * Makefile.am (findtextrel_LDADD): Add $(libmudflap). 2877 (addr2line_LDADD): Likewise. 2878 28792005-05-03 Roland McGrath <roland@redhat.com> 2880 2881 * strip.c (handle_elf): Apply symbol table fixups to discarded 2882 relocation sections when they are being saved in the debug file. 2883 2884 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom 2885 and gelf_xlatetof, not the native byte order. 2886 2887 * strip.c (parse_opt): Give error if -f or -o is repeated. 2888 (main): Exit if argp_parse returns nonzero. 2889 2890 * strip.c (debug_fname_embed): New variable. 2891 (options, parse_opt): New option -F to set it. 2892 28932005-05-07 Ulrich Drepper <drepper@redhat.com> 2894 2895 * readelf.c (parse_opt): Make any_control_option variable 2896 local. Simplify some tests. 2897 28982005-05-03 Roland McGrath <roland@redhat.com> 2899 2900 * strip.c (crc32_file): Function removed (now in ../lib). 2901 29022005-05-03 Roland McGrath <roland@redhat.com> 2903 2904 * elflint.c (is_debuginfo): New variable. 2905 (options, parse_opt): New option --debuginfo/-d to set it. 2906 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS. 2907 (check_note): If is_debuginfo, don't try to get note contents. 2908 29092005-04-24 Ulrich Drepper <drepper@redhat.com> 2910 2911 * readelf.c (print_debug_abbrev_section): Don't print error when end of 2912 section reached. 2913 29142005-04-14 Ulrich Drepper <drepper@redhat.com> 2915 2916 * readelf.c (dwarf_encoding_string): New function. 2917 (dwarf_inline_string): New function. 2918 (dwarf_access_string): New function. 2919 (dwarf_visibility_string): New function. 2920 (dwarf_virtuality_string): New function. 2921 (dwarf_identifier_case_string): New function. 2922 (dwarf_calling_convention_string): New function. 2923 (dwarf_ordering_string): New function. 2924 (dwarf_discr_list_string): New function. 2925 (attr_callback): Decode man more attribute values. 2926 29272005-04-01 Ulrich Drepper <drepper@redhat.com> 2928 2929 * addr2line.c: Finish implementation of -f option. 2930 29312005-03-29 Ulrich Drepper <drepper@redhat.com> 2932 2933 * addr2line.c: New file. 2934 * Makefile.am (bin_PROGRAMS): Add addr2line. 2935 Define addr2line_LDADD. 2936 2937 * findtextrel.c: Use new dwarf_addrdie function. 2938 2939 * findtextrel.c: Fix usage message and re-add accidentally removed 2940 line. 2941 29422005-03-28 Ulrich Drepper <drepper@redhat.com> 2943 2944 * findtextrel.c: New file. 2945 * Makefile: Add rules to build findtextrel. 2946 29472005-02-15 Ulrich Drepper <drepper@redhat.com> 2948 2949 * ldlex.l: Provide ECHO definition to avoid warning. 2950 2951 * elflint.c (check_program_header): Fix typo in RELRO test. 2952 2953 * Makefile.am (AM_CFLAGS): Add more warning options. 2954 * elflint.c: Fix warnings introduced by the new warning options. 2955 * i386_ld.c: Likewise. 2956 * ld.c: Likewise. 2957 * ld.h: Likewise. 2958 * ldgeneric.c: Likewise. 2959 * nm.c: Likewise. 2960 * readelf.c: Likewise. 2961 * sectionhash.c: Likewise. 2962 * size.c: Likewise. 2963 * string.c: Likewise. 2964 29652005-02-05 Ulrich Drepper <drepper@redhat.com> 2966 2967 * Makefile.am: Check for text relocations in constructed DSOs. 2968 2969 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps 2970 with -lmudflap. 2971 2972 * ldscript.y: Add as_needed handling. 2973 * ldlex.l: Recognize AS_NEEDED token. 2974 * ld.h (struct filename_list): Add as_needed flag. 2975 29762005-02-04 Ulrich Drepper <drepper@redhat.com> 2977 2978 * elflint.c (check_symtab): Correctly determine size of GOT section. 2979 29802005-01-19 Ulrich Drepper <drepper@redhat.com> 2981 2982 * ld.c: Remove unnecessary more_help function. Print bug report 2983 address using argp. 2984 * strip.c: Likewise. 2985 * size.c: Likewise. 2986 * nm.c: Likewise. 2987 * readelf.c: Likewise. 2988 * elflint.c: Likewise. 2989 2990 * elflint.c (main): Don't check for parameter problems here. 2991 (parse_opt): Do it here, where we get informed about some of them 2992 anyway. 2993 2994 * readelf.c (main): Don't check for parameter problems here. 2995 (parse_opt): Do it here, where we get informed about some of them 2996 anyway. 2997 29982005-01-11 Ulrich Drepper <drepper@redhat.com> 2999 3000 * strip.c: Update copyright year. 3001 * readelf.c: Likewise. 3002 * size.c: Likewise. 3003 * nm.c: Likewise. 3004 * ld.c: Likewise. 3005 * elflint.c: Likewise. 3006 3007 * elflint.c (check_symtab): Don't warn about wrong size for 3008 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld. 3009 30102004-10-05 Ulrich Drepper <drepper@redhat.com> 3011 3012 * readelf.c (print_phdr): In section mapping, also indicate 3013 sections in read-only segments. 3014 30152004-09-25 Ulrich Drepper <drepper@redhat.com> 3016 3017 * readelf.c: Make compile with gcc 4.0. 3018 * strip.c: Likewise. 3019 30202004-08-16 Ulrich Drepper <drepper@redhat.com> 3021 3022 * strip.c (handle_elf): Rewrite dynamic memory handling to use of 3023 allocate to work around gcc 3.4 bug. 3024 30252004-01-25 Ulrich Drepper <drepper@redhat.com> 3026 3027 * ldlex.l (invalid_char): Better error message. 3028 30292004-01-23 Ulrich Drepper <drepper@redhat.com> 3030 3031 * readelf.c: Print SHT_GNU_LIBLIST sections. 3032 3033 * none_ld.c: New file. 3034 30352004-01-21 Ulrich Drepper <drepper@redhat.com> 3036 3037 * Makefile.am: Enable building of machine specific linker. 3038 30392004-01-20 Ulrich Drepper <drepper@redhat.com> 3040 3041 * Makefile.am: Support building with mudflap. 3042 3043 * i386_ld.c: Fix warnings gcc 3.4 spits out. 3044 * ldgeneric.c: Likewise. 3045 * ldscript.y: Likewise. 3046 * readelf.c: Likewise. 3047 * strip.c: Likewise. 3048 3049 * readelf.c (print_debug_line_section): Determine address size 3050 correctly. 3051 30522004-01-19 Ulrich Drepper <drepper@redhat.com> 3053 3054 * readelf.c (print_phdr): Show which sections are covered by the 3055 PT_GNU_RELRO entry. 3056 3057 * elflint.c (check_program_header): Check PT_GNU_RELRO entry. 3058 3059 * readelf.c (print_debug_macinfo_section): Implement. 3060 30612004-01-18 Ulrich Drepper <drepper@redhat.com> 3062 3063 * readelf.c (print_debug_line_section): Implement. 3064 30652004-01-17 Ulrich Drepper <drepper@redhat.com> 3066 3067 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE. 3068 * src/ld.c: Likewise. 3069 * src/nm.c: Likewise. 3070 * src/readelf.c: Likewise. 3071 * src/size.c: Likewise. 3072 * src/strip.c: Likewise. 3073 3074 * strip.c: Add a few more unlikely. Reduce scope of some variables. 3075 3076 * Makefile.am: Support building with mudflap. 3077 30782004-01-16 Ulrich Drepper <drepper@redhat.com> 3079 3080 * readelf.c (print_debug_info_section): Free dies memory. 3081 3082 * readelf.c: Print .debug_info section content. 3083 30842004-01-13 Ulrich Drepper <drepper@redhat.com> 3085 3086 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE. 3087 30882004-01-12 Ulrich Drepper <drepper@redhat.com> 3089 3090 * readelf.c (print_debug_aranges): Implement using libdw. 3091 30922004-01-11 Ulrich Drepper <drepper@redhat.com> 3093 3094 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change. 3095 3096 * readelf.c: Use libdw instead of libdwarf. Not all of the old 3097 behavior is available yet. 3098 * Makefile.am: Link readelf with libdw. Remove libdwarf include path. 3099 31002004-01-09 Ulrich Drepper <drepper@redhat.com> 3101 3102 * nm.c (get_local_names): Adjust call to dwarf_nextcu. 3103 3104 * nm.c: Implement getting information about local variables. 3105 31062004-01-07 Ulrich Drepper <drepper@redhat.com> 3107 3108 * nm.c: Read also debug information for local symbols. 3109 31102004-01-05 Ulrich Drepper <drepper@redhat.com> 3111 3112 * nm.c: Shuffle dwarf handling code around so the maximum column 3113 width can be computed ahead of printing. Avoid collection symbols 3114 which are not printed anyway. 3115 3116 * nm.c: Rewrite dwarf handling to use libdw. 3117 * Makefile.am (AM_CFLAGS): Add -std parameter. 3118 (INCLUDES): Find header in libdw subdir. 3119 (nm_LDADD): Replace libdwarf with libdw. 3120 3121 * elflint.c: Update copyright year. 3122 * readelf.c: Likewise. 3123 * size.c: Likewise. 3124 * strip.c: Likewise. 3125 * nm.c: Likewise. 3126 31272003-12-31 Ulrich Drepper <drepper@redhat.com> 3128 3129 * strip.c (process_file): Close file before returning. 3130 31312003-11-19 Ulrich Drepper <drepper@redhat.com> 3132 3133 * readelf.c (handle_dynamic): Make column for tag name wider. 3134 31352003-09-29 Ulrich Drepper <drepper@redhat.com> 3136 3137 * readelf.c (handle_dynamic): Always terminate tag name with a space. 3138 31392003-09-25 Ulrich Drepper <drepper@redhat.com> 3140 3141 * strip.c (process_file): Don't mmap the input file, we modify the 3142 data structures and don't want the change end up on disk. 3143 31442003-09-23 Jakub Jelinek <jakub@redhat.com> 3145 3146 * unaligned.h (union u_2ubyte_unaligned, 3147 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add 3148 packed attribute. 3149 (add_2ubyte_unaligned, add_4ubyte_unaligned, 3150 add_8ubyte_unaligned): Avoid nesting bswap_NN macros. 3151 Read/store value through _ptr->u instead of *_ptr. 3152 31532003-09-22 Ulrich Drepper <drepper@redhat.com> 3154 3155 * size.c (show_sysv): Change type of maxlen to int. 3156 3157 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit 3158 buckets. 3159 3160 * i386_ld.c: Many many fixes and extensions. 3161 * ld.c: Likewise. 3162 * ldgeneric.c: Likewise. 3163 31642003-08-16 Ulrich Drepper <drepper@redhat.com> 3165 3166 * ldgeneric.c (check_definition): Don't add symbol on dso_list if 3167 the reference is from another DSO. 3168 31692003-08-15 Ulrich Drepper <drepper@redhat.com> 3170 3171 * ldgeneric.c (find_entry_point): It is no fatal error if no entry 3172 point is found when creating a DSO. 3173 31742003-08-14 Ulrich Drepper <drepper@redhat.com> 3175 3176 * ld.c (main): Always call FLAG_UNRESOLVED. 3177 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about 3178 undefined symbols if not creating DSO or ld_state.nodefs is not set. 3179 31802003-08-13 Ulrich Drepper <drepper@redhat.com> 3181 3182 * Makefile.in: Depend on libebl.a, not libebl.so. 3183 3184 * ld.c (main): Mark stream for linker script as locked by caller. 3185 (read_version_script): Likewise. 3186 * ldlex.c: Define fread and fwrite to _unlocked variant. 3187 3188 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of 3189 target_bswap_32. 3190 * unaligned.h: Define target_bswap_16, target_bswap_32, and 3191 target_bswap_64. 3192 (store_2ubyte_unaligned, store_4ubyte_unaligned, 3193 store_8ubyte_unaligned): Define using new macros. 3194 31952003-08-12 Ulrich Drepper <drepper@redhat.com> 3196 3197 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access 3198 possibly unaligned memory. Support use of big endian machines. 3199 32002003-08-11 Ulrich Drepper <drepper@redhat.com> 3201 3202 * Moved to CVS archive. 3203