12016-01-13 Mark Wielaard <mjw@redhat.com> 2 3 * elflint.c (check_elf_header): Recognize ELFOSABI_FREEBSD. 4 52016-01-08 Mark Wielaard <mjw@redhat.com> 6 7 * elfcompress.c (compress_section): Use %zu to print size_t. 8 * readelf.c (print_shdr): Use %zx to print size_t. 9 102015-12-16 Mark Wielaard <mjw@redhat.com> 11 12 * elfcompress.c: New file. 13 * Makefile.am (bin_PROGRAMS): Add elfcompress. 14 (elfcompress_LDADD): New variable. 15 162015-12-18 Mark Wielaard <mjw@redhat.com> 17 18 * elflint.c (section_flags_string): Add NEWFLAG COMPRESSED. 19 (check_sections): SHF_COMPRESSED can be on any special section. 20 SHF_COMPRESSED is a valid section flag. SHF_COMPRESSED cannot 21 be used together with SHF_ALLOC or with SHT_NOBITS. Should have 22 a valid Chdr. 23 242015-10-20 Mark Wielaard <mjw@redhat.com> 25 26 * readelf.c (options): Expand -z help text. 27 (dump_data_section): Check whether we need and can decompress section 28 data and call elf_rawzdata if so, 29 (print_string_section): Likewise. 30 (elf_contains_chdrs): New function. 31 (process_elf_file): Rename print_unrelocated to print_unchanged, 32 use elf_contains_chdrs. 33 (print_scngrp): Check whether section is compressed before use. 34 (print_symtab): Likewise. 35 (handle_hash): Likewise. 36 372015-10-16 Mark Wielaard <mjw@redhat.com> 38 39 * readelf.c (argp_option): Describe --decompress,-z. 40 (print_decompress): New bool. 41 (parse_opt): Handle -z. 42 (elf_ch_type_name): New function. 43 (print_shdr): Print section compress information. 44 452015-12-31 Mark Wielaard <mjw@redhat.com> 46 47 * elflint.c (check_symtab): Add _edata and _end (plus extra underscore 48 variants) to to the list of possibly dangling symbols. 49 502015-12-02 Mark Wielaard <mjw@redhat.com> 51 52 * nm.c (process_file): Accept fd and pass it on. 53 (handle_elf): Likewise. 54 (find_no_debuginfo): New. 55 (struct getdbg): Likewise. 56 (getdbg_dwflmod): Likewise. 57 (show_symbols): Take fd. If the file is ET_REL use libdwfl to get 58 the relocated Dwarf. 59 602015-12-02 Mark Wielaard <mjw@redhat.com> 61 62 * nm.c (get_local_names): Check for duplicates in local_root tree. 63 642015-12-02 Mark Wielaard <mjw@redhat.com> 65 66 * unstrip.c (struct data_list): New. 67 (new_data_list): Likewise. 68 (record_new_data): Likewise. 69 (free_new_data): Likewise. 70 (adjust_relocs): Call record_new_data. 71 (add_new_section_symbols): Likewise. 72 (copy_elided_sections): Call free_new_data. 73 742015-12-01 Mark Wielaard <mjw@redhat.com> 75 76 * elfcmp.c (main): Close ebl1 and ebl2 backends. 77 782015-10-16 Mark Wielaard <mjw@redhat.com> 79 80 * Makefile.am [BUILD_STATIC](libdw): Add -lz. 81 [BUILD_STATIC](libelf): Likewise. 82 832015-10-16 Mark Wielaard <mjw@redhat.com> 84 85 * elflint.c (check_symtab): Don't check TLS symbol value against TLS 86 phdr offset in debuginfo files. 87 (check_sections): Don't try to match section offsets to phdrs offsets 88 in debuginfo files. 89 902015-10-16 Mark Wielaard <mjw@redhat.com> 91 92 * elflint.c (check_reloc_shdr): Reject only desthdrs if they have both 93 SHF_MERGE and SHF_STRINGS set. 94 952015-10-13 Jose E. Marchesi <jose.marchesi@oracle.com> 96 97 * elflint.c (check_sections): Do not rely on 98 ebl_check_special_section when checking debuginfo files. Also 99 check that the type of WE sections in debuginfo files is NOBITS. 100 1012015-10-13 Mark Wielaard <mjw@redhat.com> 102 103 * elflint.c (check_program_header): Check relro flags are a subset 104 of the load segment if they don't fully overlap. 105 1062015-10-07 Mark Wielaard <mjw@redhat.com> 107 108 * Makefile.am (ldlex_no_Wstack_usage): New. 109 * ldlex.l ([RWX]): Make cnt unsigned. 110 1112015-10-09 Josh Stone <jistone@redhat.com> 112 113 * elflint.c (main): Replace stat64 and fstat64 with stat and fstat. 114 * readelf.c (process_file): Likewise. 115 (process_elf_file): Replace off64_t with off_t. 116 * findtextrel.c (process_file): Replace open64 with open. 117 * ld.c (main): Replace sizeof (off64_t) with 8. 118 * strings.c: Replace off64_t with off_t throughout. 119 (main): Replace stat64 and fstat64 with stat and fstat. 120 (map_file): Replace mmap64 with mmap. 121 (read_block): Likewise, and replace lseek64 with lseek. 122 * strip.c (handle_elf): Replace ftruncate64 with ftruncate. 123 (process_file): Replace stat64 and fstat64 with stat and fstat. 124 * unstrip.c (parse_opt): Replace stat64 with stat. 125 (handle_file): Replace open64 with open. 126 (open_file): Likewise. 127 1282015-10-08 Chih-Hung Hsieh <chh@google.com> 129 130 * ld.c (determine_output_format): Move recursive nested 131 function "try" to file scope. 132 1332015-10-04 Mark Wielaard <mjw@redhat.com> 134 135 * strip.c (handle_elf): Only sanity check section symbols to not 136 kept discarded sections if we are creating a debug file. 137 1382015-10-07 Mark Wielaard <mjw@redhat.com> 139 140 * unstrip.c (MAX): Removed. 141 (find_alloc_sections_prelink): Allocate exact amount of bytes for 142 shdrs. 143 1442015-10-05 Chih-Hung Hsieh <chh@google.com> 145 146 * unstrip.c (find_alloc_sections_prelink): Do not allocate 147 on stack union types with variable length arrays; use xmalloc 148 for such dynamic sized objects. 149 * readelf.c (handle_core_item): Likewise, but use alloca 150 for small variable size data object and add assert(count < 128). 151 1522015-10-05 Josh Stone <jistone@redhat.com> 153 154 * Makefile.am (libld_elf_i386.so): Add AM_V_CCLD silencer. 155 (.deps/none_ld.Po): Always silence the dummy command. 156 (make-debug-archive): Add AM_V_GEN and AM_V_at silencers. 157 1582015-10-02 Mark Wielaard <mjw@redhat.com> 159 160 * unstrip.c (copy_elided_sections): Use SH_INFO_LINK_P, not just 161 SHF_INFO_LINK. 162 1632015-10-02 Mark Wielaard <mjw@redhat.com> 164 165 * strip.c (handle_elf): Don't move around allocated NOBITS sections. 166 Don't just mark the section header string table as unused. 167 * unstrip.c (copy_elided_sections): Add header names to strtab if 168 shstrndx equals the symtab strtabndx. 169 1702015-09-22 Mark Wielaard <mjw@redhat.com> 171 172 * strip.c (cleanup_debug): Remove old-style function definitions. 173 1742015-09-09 Chih-Hung Hsieh <chh@google.com> 175 176 * readelf.c (print_debug_exception_table): Initialize variable before 177 it is used, because compiler does not know that error never returns. 178 (dump_arhive_index): Likewise. 179 1802015-09-04 Chih-Hung Hsieh <chh@google.com> 181 182 * elflint.c (check_group): Replace %Z length modifier with %z. 183 (check_note_data): Likewise. 184 * findtextrel.c (process_file): Likewise. 185 * readelf.c (handle_dynamic): Likewise. 186 (handle_symtab): Likewise. 187 (handle_verneed): Likewise. 188 (handle_verdef): Likewise. 189 (handle_versym): Likewise. 190 (print_hash_info): Likewise. 191 (print_decoded_aranges_section): Likewise. 192 (print_debug_aranges_section): Likewise. 193 (print_debug_line_section): Likewise. 194 (hex_dump): Likewise. 195 (dump_data_section): Likewise. 196 (print_string_section): Likewise. 197 (dump_archive_index): Likewise. 198 * unstrip.c (adjust_relocs): Likewise. 199 (collect_symbols): likewise. 200 (get_section_name): Likewise. 201 (find_alloc_sections_prelink): Likewise. 202 (copy_elided_sections): Likewise. 203 * ldscript.y (add_id_list): Add missing '%s'. 204 2052015-09-03 Mark Wielaard <mjw@redhat.com> 206 207 * readelf.c (handle_core_item): Handle right shift >= 32 bits. 208 2092015-08-11 Mark Wielaard <mjw@redhat.com> 210 211 * elflint.c (check_sections): When gnuld and a NOBITS section falls 212 inside a segment make sure any ELF file contents is zero. 213 2142015-07-29 Mark Wielaard <mjw@redhat.com> 215 216 * unstrip.c (sections_flags_match): New function. 217 (sections_match): Use sections_flags_match. 218 (find_alloc_sections_prelink): Only clear matched sections if there 219 is an undo section. 220 (copy_elided_sections): Add SHF_INFO_LINK to shdr_mem.sh_flags if 221 necessary. 222 2232015-06-27 Pino Toscano <toscano.pino@tiscali.it> 224 225 * src/strings.c: Define MAP_POPULATE if not defined already. 226 2272015-06-27 Mark Wielaard <mjw@redhat.com> 228 229 * nm.c (show_symbols): First call elf_getdata, then allocate memory. 230 2312015-06-18 Mark Wielaard <mjw@redhat.com> 232 233 * findtextrel.c (process_file): Free segments after use. 234 2352015-06-18 Mark Wielaard <mjw@redhat.com> 236 237 * readelf.c (print_phdr): Make sure phdr2_mem lifetime/scope equals 238 phdr2 pointer. 239 2402015-06-18 Mark Wielaard <mjw@redhat.com> 241 242 * readelf.c (handle_gnu_hash): Free lengths on invalid_data. 243 2442015-06-18 Mark Wielaard <mjw@redhat.com> 245 246 * elflint.c (check_symtab): Only check the PT_TLS phdr if it actually 247 exists. Warn otherwise. 248 2492015-06-18 Mark Wielaard <mjw@redhat.com> 250 251 * nm.c (show_symbols): Check sizeof (sym_mem[0]), not GElf_Sym to 252 known whether or not we stack allocated memory. 253 2542015-06-18 Mark Wielaard <mjw@redhat.com> 255 256 * strings.c (readelf): Use "<unknown>" if we cannot retrieve section 257 name. 258 2592015-06-09 Mark Wielaard <mjw@redhat.com> 260 261 * addr2line.c (print_dwarf_function): Always free scopes before 262 returning. 263 2642015-06-09 Mark Wielaard <mjw@redhat.com> 265 266 * strip.c (handle_ar): Mark as unused. 267 (process_file): Produce an error when trying to handle an ar. 268 2692015-05-30 Mark Wielaard <mjw@redhat.com> 270 271 * elfcmp.c (main): Only call memcmp when d_size != 0. 272 2732015-05-23 Mark Wielaard <mjw@redhat.com> 274 275 * Makefile.am: Define ldgeneric, readelf, nm, size, strip, elflint, 276 findtextrel, elfcmp objdump, ranlib, ar and unstrip no_Wstack_usage. 277 2782015-05-21 Mark Wielaard <mjw@redhat.com> 279 280 * addr2line.c (handle_address): Set scopes to NULL after free. 281 2822015-05-20 Mark Wielaard <mjw@redhat.com> 283 284 * addr2line.c (OPT_PRETTY): New constant define. 285 (argp_option): Add "pretty-print". 286 (pretty): New static bool. 287 (parse_opt): Set pretty. 288 (print_dwarf_function): Adjust output when pretty is set. 289 (print_addrsym): Likewise. 290 (handle_address): Likewise. 291 2922015-05-20 Mark Wielaard <mjw@redhat.com> 293 294 * Makefile.am (addr2line_LDADD): Add demanglelib. 295 * addr2line.c (argp_option): Move demangle under output format. 296 (demangle): New static bool. 297 (demangle_buffer_len): New static size_t. 298 (demangle_buffer): New static char *. 299 (main): free demangle_buffer. 300 (parse_opt): Set demangle. 301 (symname): New static function. 302 (get_diename): Use symname. 303 (print_dwarf_function): Likewise. 304 (print_addrsym): Likewise. 305 (handle_address): Likewise. 306 3072015-05-20 Mark Wielaard <mjw@redhat.com> 308 309 * addr2line.c (argp_option): Add "addresses", 'a'. 310 (print_addresses): New static bool. 311 (parse_opt): Set print_addresses. 312 (get_addr_width): New static function. 313 (handle_address): Print address if print_addresses is true. 314 3152015-05-20 Mark Wielaard <mjw@redhat.com> 316 317 * addr2line.c (handle_address): Call strtoumax with base 16. Make 318 sure all input has been processed. 319 3202015-05-20 Mark Wielaard <mjw@redhat.com> 321 322 * addr2line (argp_option): Group 'section' under "Input format 323 options". 324 3252015-05-12 Mark Wielaard <mjw@redhat.com> 326 327 * strip.c (debug_fd): New static variable. 328 (tmp_debug_fname): Likewise. 329 (cleanup_debug): New function using the above to clean up temporary 330 debug file. 331 (INTERNAL_ERROR): Call cleanup_debug. 332 (handle_elf): Use debug_fd and tmp_debug_fname statics and call 333 cleanup_debug before any error. Use output_fname instead of fname in 334 error messages when it exists (-o was given). SHT_NOBITS sections 335 can also be moved freely even if SHF_ALLOC is set. Add various 336 sanity checks. Use elf_assert instead of plain assert. 337 3382015-05-08 Mark Wielaard <mjw@redhat.com> 339 340 * nm.c (show_symbols): Call gelf_fsize with EV_CURRENT. 341 * strip.c (handle_elf): Likewise. 342 3432015-05-06 Mark Wielaard <mjw@redhat.com> 344 345 * elflint.c (check_gnu_hash): Return early when 2nd hash function 346 shift too big. Check there is enough data available. Make sure 347 bitmask_words is not zero. 348 (check_verdef): Use Elf64_Word for shdr->sh_info cnt. 349 (check_verneed): Likewise. 350 (check_attributes): Break when vendor name isn't terminated. 351 Add overflow check for subsection_len. 352 3532015-05-05 Mark Wielaard <mjw@redhat.com> 354 355 * nm.c (show_symbols): Handle dwarf_linesrc returning NULL. 356 3572015-05-04 Max Filippov <jcmvbkbc@gmail.com> 358 359 * ar.c (do_oper_extract): Replace struct timeval with struct timespec 360 and futimes with futimens. 361 * strip.c (process_file): Replace struct timeval with struct timespec. 362 (handle_elf, handle_ar): Replace struct timeval with struct timespec 363 in prototype. Replace futimes with futimens. 364 3652015-05-04 Max Filippov <jcmvbkbc@gmail.com> 366 367 * addr2line.c (main): Drop mtrace() call and #include <mcheck.h>. 368 * ar.c: Likewise. 369 * ld.c: Likewise. 370 * nm.c: Likewise. 371 * objdump.c: Likewise. 372 * ranlib.c: Likewise. 373 * size.c: Likewise. 374 * strip.c: Likewise. 375 * unstrip.c: Likewise. 376 3772015-05-04 Anthony G. Basile <blueness@gentoo.org> 378 379 * Makefile.am (readelf_LDADD, nm_LDADD, size_LDADD, strip_LDADD) 380 (ld_LDADD, elflint_LDADD, findtextrel_LDADD, addr2line_LDADD) 381 (elfcmp_LDADD, objdump_LDADD, ranlib_LDADD, strings_LDADD) 382 (ar_LDADD, unstrip_LDADD, stack_LDADD): Append $(argp_LDADD). 383 3842015-03-22 Mark Wielaard <mjw@redhat.com> 385 386 * readelf.c (print_debug_frame_section): Cast start to Dwarf_Off 387 before subtracting cie_id. And cast cie_offset to Dwarf_Off before 388 comparison. 389 3902015-03-22 Mark Wielaard <mjw@redhat.com> 391 392 * readelf.c (print_gdb_index_section): Check all offsets used 393 against section d_size. 394 3952015-03-17 Mark Wielaard <mjw@redhat.com> 396 397 * readelf.c (print_debug): Don't return, but always use dummy_dbg. 398 3992015-03-17 Mark Wielaard <mjw@redhat.com> 400 401 * readelf.c (print_gdb_index_section): Add overflow checking for 402 dataend checks. 403 4042015-03-14 Mark Wielaard <mjw@redhat.com> 405 406 * nm.c (INTERNAL_ERROR): Remove __DATE__. 407 * objdump.c (INTERNAL_ERROR): Likewise. 408 * size.c (INTERNAL_ERROR): Likewise. 409 * strip.c (INTERNAL_ERROR): Likewise. 410 4112015-03-18 Petr Machata <pmachata@redhat.com> 412 413 * readelf.c (dwarf_tag_string, dwarf_attr_string) 414 (dwarf_form_string, dwarf_lang_string, dwarf_inline_string) 415 (dwarf_encoding_string, dwarf_access_string) 416 (dwarf_visibility_string, dwarf_virtuality_string) 417 (dwarf_identifier_case_string, dwarf_calling_convention_string) 418 (dwarf_ordering_string, dwarf_discr_list_string) 419 (dwarf_locexpr_opcode_string): Adjust uses of know-dwarf.h macros 420 to match the API changes. 421 4222015-03-09 Mark Wielaard <mjw@redhat.com> 423 424 * elflint.c (compare_hash_gnu_hash): Correct gnu_symbias usage. 425 4262015-01-03 Mark Wielaard <mjw@redhat.com> 427 428 * elfcmp (main): Check section name is not NULL. Check sh_entsize 429 is not zero for symbol tables. Check phdrs are not NULL. 430 (search_for_copy_reloc): Check sh_entsize is not zero. 431 4322014-12-30 Mark Wielaard <mjw@redhat.com> 433 434 * elflint.c (check_scn_group): Check d_buf and name are not NULL. 435 (is_rel_dyn): Check d is not NULL. Check shdr->sh_entsize is not 436 zero. 437 (check_dynamic): Check strshdr is not NULL. Check d_tag is positive. 438 (check_symtab_shndx): Check symshdr and data->d_buf are not NULL. 439 Check shdr and symshdr sh_entsize are not zero. 440 (check_gnu_hash): Make sure maskidx is smaller than bitmask_words. 441 Check symshdr->sh_entsize is not zero. Check data->d_buf is not 442 NULL. 443 (compare_hash_gnu_hash): Check sections d_buf are not NULL. 444 Check section data is large enough. Use gnu_symbias. 445 (check_group): Check section val is valid. 446 (has_copy_reloc): Check sh_entsize is not zero. 447 (check_versym): Likewise. 448 (unknown_dependency_p): Likewise. 449 (check_verneed): Break on invalid ref or offset. Don't assert. 450 Report error when next offset is zero, but more vers expected. 451 (check_verdef): Likewise. 452 (check_attributes): Make sure d_buf is not NULL. 453 (check_note): Likewise. 454 (check_note_section): Likewise. 455 (check_program_header): Make sure section name is not NULL. 456 4572014-12-26 Mark Wielaard <mjw@redhat.com> 458 459 * strings.c (read_elf): Produce error when section data falls outside 460 file. 461 4622014-12-26 Mark Wielaard <mjw@redhat.com> 463 464 * nm.c (show_symbols): Guard against divide by zero in error check. 465 Add section index number in error message. 466 4672014-12-26 Mark Wielaard <mjw@redhat.com> 468 469 * nm.c (handle_ar): Skip over /SYM64/ entries. 470 4712014-12-26 Mark Wielaard <mjw@redhat.com> 472 473 * nm.c (handle_ar): Break on arsym with invalid offset. 474 4752014-12-20 Mark Wielaard <mjw@redhat.com> 476 477 * readelf.c (print_debug_macinfo_section): Mark cus sentinel files 478 as -1 non-existent. Check macoff against sentinel cus. 479 4802014-12-20 Mark Wielaard <mjw@redhat.com> 481 482 * readelf.c (print_debug_exception_table): Add max_action overflow 483 check. Check action_table_end before reading slib128. Check 484 max_ar_filter underflow. 485 4862014-12-18 Ulrich Drepper <drepper@gmail.com> 487 488 * Makefile.am: Suppress output of textrel_check command. 489 4902014-12-17 Mark Wielaard <mjw@redhat.com> 491 492 * readelf.c (print_cfa_program): Add bounds check before each op that 493 takes at least one argument. 494 4952014-12-16 Mark Wielaard <mjw@redhat.com> 496 497 * readelf.c (print_decoded_line_section): Print dwarf_errmsg if 498 dwarf_onesrcline or dwarf_linesrc fails. 499 5002014-12-16 Mark Wielaard <mjw@redhat.com> 501 502 * readelf.c (print_debug_line_section): Correct overflow check for 503 unit_length. 504 (print_debug_aranges_section): Correct overflow check for length. 505 5062014-12-15 Mark Wielaard <mjw@redhat.com> 507 508 * readelf.c (notice_listptr): Return false if offset doesn't fit 509 in 61-bits. 510 (attr_callback): Warn if loclist or rangelist offset doesn't fit. 511 5122014-12-15 Mark Wielaard <mjw@redhat.com> 513 514 * readelf.c (print_ops): Don't assert when addr_size or ref_size 515 is not 4 or 8, just report invalid data. 516 5172014-12-15 Mark Wielaard <mjw@redhat.com> 518 519 * readelf.c (print_gdb_index_section): Add more bounds checks. 520 5212014-12-15 Mark Wielaard <mjw@redhat.com> 522 523 * readelf.c (print_debug_line_section): Check there is enough room 524 for DW_LNE_set_address argument. Make sure there is enough room 525 for the the initial unit_length. 526 5272014-12-14 Mark Wielaard <mjw@redhat.com> 528 529 * elflint.c (check_attributes): Call get_uleb128 with end pointer. 530 * readelf.c (print_attributes): Likewise. 531 (print_ops): Likewise and also for get_sleb128. 532 (print_cfa_program): Likewise and add more readp bounds checks. 533 (read_encoded): Likewise. 534 (print_debug_frame_section): Likewise. 535 (print_debug_line_section): Likewise. 536 (print_debug_macinfo_section): Likewise. 537 (print_debug_macro_section): Likewise. 538 (print_debug_exception_table): Likewise. 539 5402014-12-16 Mark Wielaard <mjw@redhat.com> 541 542 * elfcmp.c (compare_Elf32_Word): Make sure (unsigned) Elf32_Word 543 difference doesn't wrap around before returning as int. 544 5452014-12-11 Mark Wielaard <mjw@redhat.com> 546 547 * readelf.c (print_debug_exception_table): Check TType base offset 548 and Action table are sane. 549 5502014-12-11 Mark Wielaard <mjw@redhat.com> 551 552 * readelf.c (print_debug_frame_section): Check number of augmentation 553 chars to print. 554 5552014-12-09 Mark Wielaard <mjw@redhat.com> 556 557 * readelf.c (handle_file_note): Check count fits data section and 558 doesn't overflow fptr. 559 5602014-12-08 Mark Wielaard <mjw@redhat.com> 561 562 * readelf.c (print_debug_exception_table): Report invalid data if 563 action table doesn't immediately follow call site table. 564 5652014-12-10 Josh Stone <jistone@redhat.com> 566 567 * addr2line.c (get_diename): New, get linkage_name or name. 568 * addr2line.c (print_dwarf_function): Use get_diename. 569 * addr2line.c (handle_address): Likewise. 570 * addr2line.c (print_diesym): Removed. 571 5722014-12-10 Josh Stone <jistone@redhat.com> 573 574 * addr2line.c (handle_address): Find the proper inline parents. 575 5762014-12-07 Mark Wielaard <mjw@redhat.com> 577 578 * readelf.c (print_debug_line_section): max_ops_per_instr cannot 579 be zero. 580 5812014-12-07 Mark Wielaard <mjw@redhat.com> 582 583 * readelf.c (print_ops): Handle zero ref_size for DW_OP_call_ref 584 and DW_OP_GNU_implicit_pointer. 585 5862014-12-04 Mark Wielaard <mjw@redhat.com> 587 588 * objdump.c (show_relocs_x): Make sure destshdr exists. 589 (show_relocs_rel): Don't rely on shdr->sh_entsize, use gelf_fsize. 590 (show_relocs_rela): Likewise. 591 (show_relocs): Make sure destshdr, symshdr and symdata exists. 592 5932014-11-30 Mark Wielaard <mjw@redhat.com> 594 595 * readelf.c (handle_sysv_hash64): Fix overflow check. 596 5972014-11-28 Mark Wielaard <mjw@redhat.com> 598 599 * readelf.c (handle_relocs_rel): Don't reuse destshdr to store 600 section header of a relocation against a STT_SECTION symbol. Use 601 a new local variable secshdr. 602 (handle_relocs_rela): Likewise. 603 6042014-11-26 Mark Wielaard <mjw@redhat.com> 605 606 * readelf.c (print_debug_aranges_section): Cast Dwarf_Word length 607 to ptrdiff_t for comparison. 608 6092014-11-24 Mark Wielaard <mjw@redhat.com> 610 611 * readelf.c (print_debug_line_section): Check line_range is not zero 612 before usage. 613 6142014-11-23 Mark Wielaard <mjw@redhat.com> 615 616 * readelf.c (print_debug_aranges_section): Check length to catch 617 nexthdr overflow. 618 6192014-11-21 Mark Wielaard <mjw@redhat.com> 620 621 * readelf.c (print_attributes): Guard against empty section. 622 Document attribute format. Break when vendor name isn't terminated. 623 Add overflow check for subsection_len. Handle both gnu and non-gnu 624 attribute tags. 625 6262014-11-22 Mark Wielaard <mjw@redhat.com> 627 628 * elflint.c (check_sections): Call ebl_bss_plt_p without ehdr. 629 * findtextrel.c (process_file): Use elf_getphdrnum. 630 * readelf.c (process_elf_file): Remove redundant ehdr->e_phoff check. 631 (print_phdr): Check phnum. 632 * size.c (show_segments): Use elf_getphdrnum. 633 * strip.c (handle_elf): Likewise. 634 * unstrip.c (copy_elf): Likewise. 635 (copy_elided_sections): Likewise. 636 (handle_file): Likewise. 637 6382014-11-18 Mark Wielaard <mjw@redhat.com> 639 640 * readelf.c (print_cfa_program): Fix sanity check of DW_FORM_block 641 length. 642 6432014-11-17 Mark Wielaard <mjw@redhat.com> 644 645 * readelf.c (handle_verneed): Check vna_next and vn_next exist. 646 (handle_verdef): Check vda_next and vd_next exist. 647 (handle_versym): Check vd_next, vna_next and vn_next exist. 648 Check vername and filename are not NULL before use. 649 6502014-11-17 Mark Wielaard <mjw@redhat.com> 651 652 * elfcmp.c (main): Check section names are NULL before use. 653 * objdump.c (section_match): Likewise. 654 * size.c (show_sysv): Likewise. 655 6562014-11-17 Mark Wielaard <mjw@redhat.com> 657 658 * readelf.c (print_debug_frame_section): Warn if ptr_size is not 4 659 or 8 instead of just calling print_cfa_program. 660 6612014-11-16 Mark Wielaard <mjw@redhat.com> 662 663 * readelf (process_elf_file): Set phnum to zero if there aren't 664 actually any pheaders. 665 (print_phdr): Check there actually is a phdr. 666 6672014-11-16 Mark Wielaard <mjw@redhat.com> 668 669 * readelf.c (print_cfa_program): Check block len before calling 670 print_ops. 671 6722014-11-14 Mark Wielaard <mjw@redhat.com> 673 674 * readelf.c (print_debug_frame_section): Sanity Check CIE 675 unit_length and augmentationlen. 676 6772014-11-14 Mark Wielaard <mjw@redhat.com> 678 679 * readelf.c (handle_versym): Check def == NULL before use. 680 6812014-11-08 Mark Wielaard <mjw@redhat.com> 682 683 * readelf.c (handle_versym): Initialize vername and filename array 684 elements. 685 6862014-11-07 Mark Wielaard <mjw@redhat.com> 687 688 * readelf.c (handle_sysv_hash): Sanity check section contents. 689 (handle_sysv_hash64): Likewise. 690 (handle_gnu_hash): Likewise. 691 6922014-09-14 Petr Machata <pmachata@redhat.com> 693 694 * readelf.c (handle_relocs_rela): Typo fix, test DESTSHDR properly. 695 6962014-09-12 Petr Machata <pmachata@redhat.com> 697 698 * readelf.c (encoded_ptr_size): In the switch statement, change 699 magic constants 3 and 4 to DW_EH_PE_* counterparts. Still accept 700 0. Print diagnostic for anything else. 701 7022014-08-25 Josh Stone <jistone@redhat.com> 703 704 * Makefile.am: Prevent premature @AR@ replacement in a sed expression. 705 7062014-07-04 Menanteau Guy <menantea@linux.vnet.ibm.com> 707 Mark Wielaard <mjw@redhat.com> 708 709 * elflint (check_symtab): Add ".TOC." to the list of possibly 710 dangling symbols because of sourceware PR13621. 711 7122014-06-14 Mark Wielaard <mjw@redhat.com> 713 714 * elflint (check_symtab): Use ebl_func_addr_mask on st_value. 715 7162014-05-27 Mark Wielaard <mjw@redhat.com> 717 718 * readelf.c (print_debug): Skip section if name is NULL. 719 7202014-05-26 Mark Wielaard <mjw@redhat.com> 721 722 * readelf.c (handle_relocs_rela): Print header like handle_relocs_rel 723 does, when sh_info == 0. 724 7252014-05-26 Mark Wielaard <mjw@redhat.com> 726 727 * unstrip.c (find_alloc_sections_prelink): Allow non-split .bss 728 section when sh_size of the original and undo .bss section are equal. 729 7302014-05-26 Mark Wielaard <mjw@redhat.com> 731 732 * unstrip.c (options): Add --force, -F. 733 (struct arg_info): Add bool force. 734 (parse_opt): Handle 'F', set force. 735 (handle_explicit_files): Add force argument, add warn function, 736 separate check ehdr field checks, use warn. 737 (handle_dwfl_module): Add force argument, pass on to 738 handle_explicit_files. 739 (handle_output_dir_module): Add force argument, pass on to 740 handle_dwfl_module. 741 (handle_implicit_modules): Pass info->force to handle_dwfl_module and 742 handle_output_dir_module. 743 (main): Pass info.force to handle_explicit_files. 744 7452014-05-19 Mark Wielaard <mjw@redhat.com> 746 747 * elflint.c (check_reloc_shdr): Check ebl_check_reloc_target_type. 748 7492014-05-01 Mark Wielaard <mjw@redhat.com> 750 751 * readelf.c (find_no_debuginfo): Call dwfl_standard_find_debuginfo 752 if looking for alternate debug file. 753 7542014-04-11 Mark Wielaard <mjw@redhat.com> 755 756 * Makefile.am (AM_CPPFLAGS): Add -I libdwelf. 757 7582014-04-22 Mark Wielaard <mjw@redhat.com> 759 760 * readelf.c (handle_core_item): Make sure variable length array 761 contains at least enough space for terminating zero char. 762 7632014-04-22 Mark Wielaard <mjw@redhat.com> 764 765 * readelf.c (print_gdb_index_section): Use unsigned int for 31 bits 766 left shift. 767 7682014-03-13 Mark Wielaard <mjw@redhat.com> 769 770 * Makefile.am: Remove no_mudflap.os. Remove libmudflap from all 771 LDADD lines. 772 * strings.c (process_chunk): Remove _MUDFLAP condition. 773 7742014-04-09 Mark Wielaard <mjw@redhat.com> 775 776 * readelf.c (print_debug_aranges_section): Don't get the raw section 777 data, use the possibly decompressed .[z]debug sectiondata. 778 (print_debug_ranges_section): Likewise. 779 (print_debug_frame_section): Likewise. 780 (print_debug_line_section): Likewise. 781 (print_debug_loc_section): Likewise. 782 (print_debug_macinfo_section): Likewise. 783 (print_debug_macro_section): Likewise. 784 7852014-04-10 Mark Wielaard <mjw@redhat.com> 786 787 * readelf.c (buf_read_ulong): Pass actual long size to convert. 788 7892014-03-05 Mark Wielaard <mjw@redhat.com> 790 791 * readelf.c (attr_callback): Print DW_FORM_sdata values as signed 792 numbers. 793 7942014-02-24 Mark Wielaard <mjw@redhat.com> 795 796 * readelf (print_phdr): Check there is a SHT_PROGBITS section at the 797 offset given by p_offsets for a PT_INTERP segment before trying to 798 display the interpreter string. 799 8002014-02-07 Mark Wielaard <mjw@redhat.com> 801 802 * readelf.c (print_phdr): Check phdr->p_filesz and make sure 803 interpreter string is zero terminated before calling printf. 804 8052014-01-22 Mark Wielaard <mjw@redhat.com> 806 807 * Makefile.am (nm_no_Wformat): Removed. 808 (size_no_Wformat): Likewise. 809 (strings_no_Wformat): Likewise. 810 (addr2line_no_Wformat): Likewise. 811 * size.c (show_sysv): Use fmtstr directly as literal in printf. 812 (show_sysv_one_line): Likewise. 813 * strings.c (locfmt): Removed. 814 (radix): New static enum. 815 (parse_opt): Set radix, not locfmt. 816 (process_chunk_mb): Use fmtstr directly as literal in printf based 817 on radix. 818 (process_chunk): Likewise. 819 * nm.c (show_symbols_sysv): Use fmtstr directly as literal in printf. 820 (show_symbols_bsd): Likewise. 821 (show_symbols_posix): Likewise. 822 8232014-01-21 Mark Wielaard <mjw@redhat.com> 824 825 * stack.c (show_inlines): New static boolean. 826 (print_frame): New function split out from... 827 (print_frames): ..here. If show_inlines is true and we found a 828 DIE for the frame address, call print_inline_frames otherwise 829 call print_frame. Keep track of and track frame_nr. 830 (print_inline_frames): New function. 831 (parse_opt): Handle '-i'. 832 (main): Add 'i' to options. 833 8342014-01-27 Mark Wielaard <mjw@redhat.com> 835 836 * stack.c (maxframes): Initialize to 256. 837 (main): Document new default in options. Document magic number 838 used in frames.allocated initialization. 839 8402014-01-20 Mark Wielaard <mjw@redhat.com> 841 842 * stack.c (show_debugname): New static boolean. 843 (die_name): New function. 844 (print_frames): If show_debugname is true set symname to the 845 first function-like DIE with a name in scope for the address in 846 the debuginfo. 847 (parse_opt): Handle '-d'. 848 (main): Add 'd' to options. 849 8502014-01-20 Mark Wielaard <mjw@redhat.com> 851 852 * addr2line.c (handle_address): Initialize scopes to NULL. 853 8542014-01-17 Roland McGrath <roland@redhat.com> 855 856 * strip.c (handle_elf): Check for bogus values in sh_link, sh_info, 857 st_shndx, e_shstrndx, and SHT_GROUP or SHT_SYMTAB_SHNDX data. 858 Don't use assert on input values, instead bail with "illformed" error. 859 8602014-01-17 Roland McGrath <roland@redhat.com> 861 862 * readelf.c (handle_dynamic, handle_symtab): Check for bogus sh_link. 863 (handle_verneed, handle_verdef, handle_versym, handle_hash): Likewise. 864 (handle_scngrp): Check for bogus sh_info. 865 8662014-01-17 Jakub Jelinek <jakub@redhat.com> 867 868 * elflint.c (section_name): Return "<invalid>" instead of 869 crashing on invalid section name. 870 (check_symtab, is_rel_dyn, check_rela, check_rel, check_dynamic, 871 check_symtab_shndx, check_hash, check_versym): Robustify. 872 (check_hash): Don't check entries beyond end of section. 873 (check_note): Don't crash if gelf_rawchunk fails. 874 8752014-01-17 Petr Machata <pmachata@redhat.com> 876 877 * readelf.c (handle_dynamic, handle_relocs_rel) 878 (handle_relocs_rela, handle_versym, print_liblist): 879 Use gelf_fsize instead of relying on shdr->sh_entsize. 880 8812014-01-14 Mark Wielaard <mjw@redhat.com> 882 883 * readelf.c (print_debug_macro_section): Clear vendor array before 884 use. 885 8862014-01-15 Jan Kratochvil <jan.kratochvil@redhat.com> 887 888 Fix corruption of non-C++ symbols by the demangler. 889 * nm.c (show_symbols_sysv, show_symbols_bsd, show_symbols_posix) 890 (show_symbols): Check for _Z. 891 * stack.c (print_frames) <USE_DEMANGLE>: Check for _Z. 892 8932014-01-02 Mark Wielaard <mjw@redhat.com> 894 895 * stack.c (show_raw): Declare unconditionally. 896 (parse_opt): Handle '-r' unconditionally. 897 (main): Show "raw" option even without USE_DEMANGLE. 898 8992014-01-02 Mark Wielaard <mjw@redhat.com> 900 901 * stack.c (print_frames): Print 0x before build-id hex-offset. 902 9032014-01-02 Mark Wielaard <mjw@redhat.com> 904 905 * stack.c (maxframes): Increase to 2048. 906 (struct frames): Add allocated field. 907 (frame_callback): If frames used is frames allocated, realloc. 908 (print_frames): Show an error if maxframes has been reached. 909 (parse_opt): Allow -n 0 for unlimited frames. 910 (main): Document -n 0 and new default 2048 frames. Allocate initial 911 number of frames with malloc. 912 9132013-12-30 Mark Wielaard <mjw@redhat.com> 914 915 * stack.c (parse_opt): Explicitly call dwfl_linux_proc_attach 916 or dwfl_core_file_attach and check for errors. 917 9182013-12-28 Mark Wielaard <mjw@redhat.com> 919 920 * stack.c (print_frames): Remove address width code and use... 921 (get_addr_width): ...this new function. 922 (show_modules): New static boolean. 923 (module_callback): New static function. 924 (parse_opt): Handle '-l'. 925 (main): Add 'l' to options. If show_modules then use dwfl_getmodules 926 with module_callback to show all detected modules and possible 927 build_id, elf and dwarf files. 928 9292013-12-27 Mark Wielaard <mjw@redhat.com> 930 931 * stack.c (frames_shown): New static boolean. 932 (EXIT_OK,EXIT_ERROR,EXIT_BAD,EXIT_USAGES): New defines. 933 (frame_callback): Return -1 on error. Don't print error. 934 (print_frames): Add arguments, tid, dwflerr and what. Print tid. 935 If there was an error report it with address and module if possible. 936 Record whether any frames were actually printed. 937 (thread_callback): Collect tid and err, pass it to print_frames. 938 (parse_opt): Use EXIT_BAD for errors. On ARGP_KEY_END print errno 939 if dwfl_linux_proc_report returned it. Check whether we are properly 940 attached with dwfl_pid. 941 (main): Document exit status. Don't report DWARF_CB_ABORT from 942 callbacks as error. Pass real errors to print_frames. Return 943 EXIT_BAD if no frames could be shown. Return EXIT_ERROR if there 944 were any non-fatal errors. 945 9462013-12-23 Mark Wielaard <mjw@redhat.com> 947 948 * Makefile.am (stack_LDADD): Add demanglelib. 949 * stack.c (show_quiet): New static boolean, default false. 950 (show_raw): Likewise. 951 (demangle_buffer_len): New static size_t. 952 (demangle_buffer): New static char *. 953 (print_frames): Don't resolve pc name if show_quiet. Demangle name 954 unless show_raw. 955 (parse_opt): Handle '-q' and '-r'. 956 (main): Add 'q' and 'r' to options. Free demangle_buffer. 957 9582013-12-23 Mark Wielaard <mjw@redhat.com> 959 960 * stack.c (OPT_DEBUGINFO): New define. 961 (OPT_COREFILE): Likewise. 962 (pid): New static. 963 (core_fd): Likewise. 964 (core): Likewise. 965 (exec): Likewise. 966 (debuginfo_path): Likewise. 967 (parse_opt): Handle '-p', '--core', '-e' and '--debuginfo-path'. 968 Do argument sanity checking. Setup Dwfl. 969 (main): Add 'p', 'core', 'e' and 'debuginfo-path' to options. 970 Remove argp_child children, simplify argp doc, remove custom 971 usage message and construction of dwfl with dwfl_standard_argp. 972 Use pid directly as tid. close core and core_fd if opened. Print 973 pid of process or core. 974 9752013-12-23 Mark Wielaard <mjw@redhat.com> 976 977 * stack.c (show_build_id): New static boolean. 978 (print_frames): Print module build-id, load address and pc offset 979 if show_build_id is true. 980 (parse_opt): Handle '-b'. 981 (main): Add -b to options. 982 9832013-12-22 Mark Wielaard <mjw@redhat.com> 984 985 * stack.c (maxframes): New static unsigned. Initialize to 64. 986 (struct frame): New struct. 987 (struct frames): Likewise. 988 (dwfl): New static Dwfl pointer. 989 (frame_callback): Use arg as struct frames and fill it next frame. 990 Return DWARF_CB_ABORT when maxframes has been reached. Move 991 printing of frame to... 992 (print_frames): ...here. New function. 993 (thread_callback): Use arg as struct frames and set frames to zero. 994 Call print_frames. 995 (parse_opt): Handle '-n'. 996 (main): Add -n to options. Allocate frames using maxframes. Pass 997 frames to frame_callback and thread_callback. 998 9992013-12-20 Mark Wielaard <mjw@redhat.com> 1000 1001 * stack.c (show_one_tid): New static boolean. 1002 (parse_opt): Handle '-1'. 1003 (main): Add -1 to options. Call dwfl_getthread_frames when 1004 show_one_tid is true. 1005 10062013-12-18 Mark Wielaard <mjw@redhat.com> 1007 1008 * addr2line.c (options): Add symbol-sections, 'x'. 1009 (show_symbol_sections): New static bool. 1010 (parse_opt): Handle 'x'. 1011 (print_addrsym): Use dwfl_module_addrinfo value.r 1012 Also show section of address with show_symbol_sections. 1013 (find_symbol): Use dwfl_module_getsym_info and set value. 1014 (handle_address): Request value and use it instead of sym.st_value. 1015 * readelf.c (format_dwarf_addr): Use dwfl_module_addrinfo to get 1016 name and offset. 1017 10182013-12-17 Masatake YAMATO <yamato@redhat.com> 1019 Mark Wielaard <mjw@redhat.com> 1020 1021 * stack.c (show_activation, show_module, show_source): New variables. 1022 (parse_opt): Set show_activation if -a option is given. 1023 Set show_module if -m option is given. Set show_source if -s option 1024 is given. Set all show booleans when -v option is given. 1025 (main): Added `-a', `-m', `-s', and `-v' to the help message. 1026 (frame_callback): Print module and source file information. 1027 10282013-11-25 Petr Machata <pmachata@redhat.com> 1029 1030 * elflint.c (valid_e_machine): Add EM_AARCH64. 1031 10322013-11-14 Petr Machata <pmachata@redhat.com> 1033 1034 * readelf.c (handle_core_item) <'h'>: New branch for handling 1035 fields that shouldn't be displayed. 1036 10372013-11-10 Mark Wielaard <mjw@redhat.com> 1038 1039 * stack.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and 1040 ARGP_PROGRAM_BUG_ADDRESS_DEF. 1041 (print_version): New function. 1042 10432013-11-09 Mark Wielaard <mjw@redhat.com> 1044 1045 * arlib.c (arlib_init): Call snprintf before using the result 1046 with memcpy. 1047 (arlib_finalize): Likewise. 1048 * nm.c (show_symbols_sysv): Don't modify cnt inside assert. 1049 10502013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com> 1051 1052 * Makefile.am (bin_PROGRAMS): Add stack. 1053 (stack_LDADD): New. 1054 * stack.c: New file. 1055 10562013-11-05 Mark Wielaard <mjw@redhat.com> 1057 1058 * readelf.c (print_debug_ranges_section): Cast address to size_t 1059 before comparison. 1060 (print_debug_loc_section): Likewise. 1061 10622013-10-18 Mark Wielaard <mjw@redhat.com> 1063 1064 * ar.c (main): Correct operation check when instance_specifed is set. 1065 10662013-09-26 Petr Machata <pmachata@redhat.com> 1067 1068 * readelf.c (handle_file_note): New function. 1069 (handle_notes_data): Call it to handle NT_FILE notes. 1070 10712013-09-26 Petr Machata <pmachata@redhat.com> 1072 1073 * readelf.c (handle_siginfo_note): New function. 1074 (handle_notes_data): Call it to handle NT_SIGINFO notes. 1075 (buf_read_int, buf_read_ulong, buf_has_data): New functions. 1076 10772013-08-13 Mark Wielaard <mjw@redhat.com> 1078 1079 * addr2line.c (options): Add "inlines", 'i'. 1080 (show_inlines): New bool. 1081 (parse_opt): Handle 'i'. 1082 (print_diesym): New static function. 1083 (print_src): New function taking code from... 1084 (handle_address): here. Call print_src. Print inlines. 1085 10862013-08-12 Mark Wielaard <mjw@redhat.com> 1087 1088 * addr2line.c (main): If there is a newline char at end of buf, 1089 then remove it. 1090 10912013-07-05 Mark Wielaard <mjw@redhat.com> 1092 1093 * readelf.c (print_ops): Take CU as argument, use it to print 1094 parameter_ref DIE offset. 1095 (struct listptr): Replace base field with cu. 1096 (listptr_base): New function. 1097 (compare_listptr): Use listptr_base. 1098 (notice_listptr): Take CU as argument. 1099 (skip_listptr_hole): Likewise. 1100 (print_debug_ranges_section): Pass NULL as CU to skip_listptr_hole. 1101 (print_cfa_program): Pass NULL as CU to print_ops. 1102 (struct attrcb_args): Replace cu_base field with cu. 1103 (attr_callback): Pass cu not cu_base to notice_listptr. 1104 (print_debug_units): Don't calculate base, just set cu. 1105 (print_debug_loc_section): Pass cu to skip_listptr_hole and 1106 print_ops. 1107 11082013-05-06 Mark Wielaard <mjw@redhat.com> 1109 1110 * readelf.c (print_ops): Format first DW_OP_GNU_implicit_pointer 1111 argument as DIE offset. 1112 11132013-04-24 Mark Wielaard <mjw@redhat.com> 1114 1115 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES. 1116 11172013-03-25 Mark Wielaard <mjw@redhat.com> 1118 1119 * readelf.c (argp_options): Add decodedline. 1120 (decodedline): New boolean initialized to false. 1121 (parse_opt): Set decodedline when arg is decodedline. 1122 (print_decoded_line_section): New function. 1123 (print_debug_line_section): Call print_decoded_line_section when 1124 decodedline is true. 1125 11262013-03-25 Mark Wielaard <mjw@redhat.com> 1127 1128 * readelf.c (argp_option): Add decodedaranges. 1129 (decodedaranges): New boolean initialized to false. 1130 (parse_opt): Set decodedaranges when arg is decodedaranges. 1131 (print_debug_aranges_section): Reimplemented and original 1132 implementation renamed to... 1133 (print_decoded_aranges_section): this. 1134 11352013-03-25 Mark Wielaard <mjw@redhat.com> 1136 1137 * readelf.c (attrcb_args): Add Dwarf_Die. 1138 (attr_callback): When highpc is in constant form also print as 1139 address. 1140 (print_debug_units): Set args.die. 1141 11422013-03-19 Mark Wielaard <mjw@redhat.com> 1143 1144 * readelf.c (print_gdb_index_section): Free format_dwarf_addr results. 1145 11462013-03-18 Mark Wielaard <mjw@redhat.com> 1147 1148 * readelf.c (print_gdb_index_section): Accept version 8. 1149 11502013-03-01 Mark Wielaard <mjw@redhat.com> 1151 1152 * findtextrel.c (process_file): Release ELF and close file when not 1153 text relocations are found. 1154 * strip.c (handle_elf): Track memory used for .debuglink section data 1155 and free when done. 1156 11572013-02-24 Mark Wielaard <mjw@redhat.com> 1158 1159 * elflint.c (check_symtab): Add __bss_start__ to the list of symbols 1160 allowed to have out of section values because of GNU ld bugs. 1161 11622013-02-06 Mark Wielaard <mjw@redhat.com> 1163 1164 * elflint.c (check_symtab): Add __bss_start and __TMC_END__ to the 1165 list of symbols allowed to have out of section values because of 1166 GNU ld bugs in either .symtab or .dynsym, but only when they are 1167 zero sized. 1168 11692013-01-24 Mark Wielaard <mjw@redhat.com> 1170 1171 * readelf.c (argp_option): Add unresolved-address-offsets, U. 1172 (print_unresolved_addresses): New static. 1173 (parse_opt): Handle 'U', set print_unprocessed_values. 1174 (format_dwarf_addr): Take and handle new raw argument. 1175 (print_ops): Call format_dwarf_addr with raw offset values. 1176 (print_debug_ranges_section): Likewise. 1177 (print_debug_frame_section): Likewise. 1178 (attr_callback): Likewise. 1179 (print_debug_line_section): Likewise. 1180 (print_debug_loc_section): Likewise. 1181 (print_gdb_index_section): Likewise. 1182 11832013-01-18 Mark Wielaard <mjw@redhat.com> 1184 1185 * readelf.c (struct listptr): Add base Dwarf_Addr field. 1186 (compare_listptr): Warn for same offset with different base. 1187 (notice_listptr): Take base argument and set it. 1188 (skip_listptr_hole): Likewise. 1189 (struct attrcb_args): Removed unused cu_offset field. 1190 Add cu_base Dwarf_Addr field. 1191 (attr_callback): Call notice_listptr with cbargs->cu_base. 1192 (print_debug_units): Set args.cu_base. 1193 (print_debug_ranges_section): Get base and use for format_dwarf_addr. 1194 (print_debug_loc_section): Likewise. 1195 11962013-01-29 Jan Kratochvil <jan.kratochvil@redhat.com> 1197 1198 * readelf.c (handle_core_items): Limit special repeated items handling 1199 to single-item formats '\n', 'b' and 'B', assert OFFSET 0 there. 1200 12012012-12-18 Mark Wielaard <mark@bordewijk.wildebeest.org> 1202 1203 * readelf.c (ELF_INPUT_SECTION): New argp key value. 1204 (argp_option): Add elf-section. 1205 (elf_input_section): New static. 1206 (parse_opt): Handle ELF_INPUT_SECTION and set elf_input_section. 1207 (open_input_section): New function. 1208 (process_file): Call open_input_section if elf_input_section set. 1209 12102013-01-13 David Abdurachmanov <David.Abdurachmanov@cern.ch> 1211 1212 ar.c (do_oper_delete): Fix num passed to memset. 1213 12142012-12-21 Mark Wielaard <mjw@redhat.com> 1215 1216 * readelf.c (print_debug_frame_section): Adjust FDE start address 1217 if pcrel before feeding it to format_dwarf_addr. 1218 12192012-12-21 Mark Wielaard <mjw@redhat.com> 1220 1221 * addr2line.c (main): Call dwfl_end. 1222 12232012-12-11 Roland McGrath <roland@hack.frob.com> 1224 1225 * nm.c (show_symbols_sysv): Fix size passed to snprintf for invalid 1226 sh_name case. 1227 Reported by David Abdurachmanov <David.Abdurachmanov@cern.ch>. 1228 12292012-10-16 Mark Wielaard <mjw@redhat.com> 1230 1231 * readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are 1232 calculated beginning after the operand and 2-byte constant. 1233 12342012-10-12 Jan Kratochvil <jan.kratochvil@redhat.com> 1235 1236 * readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ... 1237 (WRAP_COLUMN): ... here. 1238 (print_core_item): Remove parameter format_max. Update function 1239 comment. Replace FORMAT_MAX by the real output width. 1240 (handle_core_item): Remove the FORMAT_MAX values in TYPES, DO_TYPE, 1241 calls of print_core_item, remove variable maxfmt, change 1242 ITEM_WRAP_COLUMN to WRAP_COLUMN. 1243 (handle_core_register): Remove the FORMAT_MAX values in TYPES, BITS, 1244 calls of print_core_item, change REGISTER_WRAP_COLUMN to WRAP_COLUMN. 1245 12462012-10-11 Jan Kratochvil <jan.kratochvil@redhat.com> 1247 1248 * readelf.c (handle_core_item) <b>: Make run an outer block variable. 1249 Increase run only if LASTBIT != 0. Print last element only if RUN > 0. 1250 12512012-08-27 Mark Wielaard <mjw@redhat.com> 1252 1253 * readelf.c (print_debug_macro_section): Print offset as PRIx64. 1254 12552012-08-27 Mark Wielaard <mjw@redhat.com> 1256 1257 * readelf.c (register_info): Handle loc == NULL. 1258 12592012-08-22 Jeff Kenton <jkenton@tilera.com> 1260 1261 * elflint.c (valid_e_machine): Add EM_TILEGX and EM_TILEPRO. 1262 12632012-08-16 Mark Wielaard <mjw@redhat.com> 1264 1265 * readelf.c (dwarf_tag_name): Renamed from dwarf_tag_string. 1266 Uses new dwarf_tag_string or adds ??? or lo_user+%#x when 1267 appropriate. 1268 (dwarf_attr_name): Likewise. 1269 (dwarf_form_name): Likewise. 1270 (dwarf_lang_name): Likewise. 1271 (dwarf_inline_name): Likewise. 1272 (dwarf_encoding_name): Likewise. 1273 (dwarf_access_name): Likewise. 1274 (dwarf_visibility_name): Likewise. 1275 (dwarf_virtuality_name): Likewise. 1276 (dwarf_identifier_case_name): Likewise. 1277 (dwarf_calling_convention_name): Likewise. 1278 (dwarf_ordering_name): Likewise. 1279 (dwarf_discr_list_name): Likewise. 1280 (print_ops): Remove KNOWN. Use dwarf_locexpr_opcode_string. 1281 (attr_callback): Call new dwarf_foobar_name instead of old 1282 dwarf_foobar_string functions. 1283 (dwarf_tag_string): New function using known-dwarf.h macros. 1284 (dwarf_attr_string): Likewise. 1285 (dwarf_form_string): Likewise. 1286 (dwarf_lang_string): Likewise. 1287 (dwarf_inline_string): Likewise. 1288 (dwarf_encoding_string): Likewise. 1289 (dwarf_access_string): Likewise. 1290 (dwarf_visibility_string): Likewise. 1291 (dwarf_virtuality_string): Likewise. 1292 (dwarf_identifier_case_string): Likewise. 1293 (dwarf_calling_convention_string): Likewise. 1294 (dwarf_ordering_string): Likewise. 1295 (dwarf_discr_list_string): Likewise. 1296 (dwarf_locexpr_opcode_string): Likewise. 1297 12982012-06-27 Mark Wielaard <mjw@redhat.com> 1299 1300 * readelf.c (dwarf_form_string): Handle DW_FORM_GNU_ref_alt and 1301 DW_FORM_GNU_strp_alt. 1302 (attr_callback): Likewise. 1303 13042012-07-30 Petr Machata <pmachata@redhat.com> 1305 1306 * nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and 1307 corresponding printf) so that those that are referenced by only 1308 one of the formatting strings are at the end. 1309 13102012-07-29 Mark Wielaard <mjw@redhat.com> 1311 1312 * readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc. 1313 (print_ops): Use known[op], not op_name, for DW_OP_GNU_parameter_ref. 1314 13152012-07-19 Mark Wielaard <mjw@redhat.com> 1316 1317 * readelf.c (print_ops): Handle DW_OP_GNU_parameter_ref. 1318 13192012-07-11 Mark Wielaard <mjw@redhat.com> 1320 1321 * readelf.c (options): Add macro to help of debug-dump. 1322 (section_e): Add section_macro. 1323 (section_all): Add section_macro. 1324 (parse_opt): Handle macro. 1325 (print_debug_macro_section): New function. 1326 (print_debug): Add NEW_SECTION (macro). 1327 13282012-07-10 Mark Wielaard <mjw@redhat.com> 1329 1330 * readelf.c (print_gdb_index_section): Add version 7 support. 1331 Keep track of cu_nr. Print kind and static/global flag for each 1332 symbol. When a symbol is in the TU list add 'T'. 1333 13342012-06-26 Mark Wielaard <mjw@redhat.com> 1335 1336 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_macros. 1337 13382012-06-22 Mark Wielaard <mjw@redhat.com> 1339 1340 * readelf.c (print_ops): Cast printf PRIu/x64 arguments to uint64_t 1341 for gcc 4.7 -Wformat. 1342 13432012-05-09 Roland McGrath <roland@hack.frob.com> 1344 1345 * elflint (check_sections): Allow zero sized sections at (filesz) end 1346 of segment. And make check overflow-proofed. 1347 13482012-04-24 Mark Wielaard <mjw@redhat.com> 1349 1350 * readelf.c (print_ops): Add DW_OP_GNU_push_tls_address, 1351 DW_OP_GNU_uinit and DW_OP_GNU_encoded_addr. 1352 13532012-03-28 Roland McGrath <roland@hack.frob.com> 1354 1355 * elflint.c (special_sections): Accept SHF_INFO_LINK for reloc sections. 1356 13572012-03-28 Mark Wielaard <mjw@redhat.com> 1358 1359 * readelf.c (print_debug_abbrev_section): Check there is Dwarf 1360 section data. 1361 (print_debug_str_section): Likewise. 1362 13632012-03-21 Mark Wielaard <mjw@redhat.com> 1364 1365 * readelf.c (print_gdb_index_section): Accept version 6. 1366 13672012-01-31 Mark Wielaard <mjw@redhat.com> 1368 1369 * readelf.c (attr_callback): Don't special case DW_FORM_sec_offset. 1370 13712012-01-21 Ulrich Drepper <drepper@gmail.com> 1372 1373 * addr2line.c: Update copyright year. 1374 * ar.c: Likewise. 1375 * elfcmp.c: Likewise. 1376 * elflint.c: Likewise. 1377 * findtextrel.c: Likewise. 1378 * ld.c: Likewise. 1379 * nm.c: Likewise. 1380 * objdump.c: Likewise. 1381 * ranlib.c: Likewise. 1382 * readelf.c: Likewise. 1383 * size.c: Likewise. 1384 * strings.c: Likewise. 1385 * strip.c: Likewise. 1386 * unstrip.c: Likewise. 1387 1388 * nm.c (argp_children): Define. 1389 (argp): Hook up argp_children. 1390 (handle_ar): Optimize puts call. 1391 (show_symbols_bsd): Use positional parameters to also print color 1392 codes. Don't print STT_FILE symbols. 1393 * objdump.c (options): Improve help text. 1394 (argp_children): Define. 1395 (argp): Hook up argp_children. 1396 (disasm_info): Add elements for color codes. 1397 (disasm_output): Print color codes as well. 1398 (show_disasm): Set up disasm_info data for callback. 1399 14002012-01-20 Roland McGrath <roland@hack.frob.com> 1401 1402 * arlib-argp.c (arlib_deterministic_output): Initialize from 1403 configured value. 1404 (help_filter): New function. 1405 (argp): Use it. 1406 1407 * ar.c (main): Handle oper_none as usage error. 1408 1409 * arlib-argp.c (options, parse_opt): Grok -U as inverse of -D. 1410 1411 * ranlib.c (argp): Use arlib_argp_children. 1412 1413 * arlib.c (arlib_init): Obey arlib_deterministic_output. 1414 1415 * arlib-argp.c: New file. 1416 * Makefile.am (libar_a_SOURCES): Add it. 1417 * arlib.h (arlib_deterministic_output, arlib_argp_children): 1418 Declare new variables. 1419 * ar.c (deterministic_output): Variable removed. 1420 (do_oper_insert): Use arlib_deterministic_output instead. 1421 (options, parse_opt): Don't handle -D here. Add group numbers. 1422 (argp): Use arlib_argp_children. 1423 14242011-12-20 Roland McGrath <roland@hack.frob.com> 1425 1426 * readelf.c (print_debug): Initialize DUMMY_DBG.elf. 1427 Reported by Karel Klic <kklic@redhat.com>. 1428 14292011-11-05 Roland McGrath <roland@hack.frob.com> 1430 1431 * ar.c (deterministic_output): New flag variable. 1432 (options, parse_opt): Grok -D to set it. 1433 (do_oper_insert): When set, use zero from mtime, uid, and gid. 1434 1435 * ar.c (do_oper_insert): Fix check on elf_rawfile return value. 1436 14372011-10-04 Marek Polacek <mpolacek@redhat.com> 1438 1439 * readelf.c (register_info): Assume the right size of an array. 1440 14412011-10-03 Ulrich Drepper <drepper@gmail.com> 1442 1443 * nm.c: Recognize option --mark-special. Still recognize --mark-weak 1444 but don't show it in help anymore. 1445 (mark_special): Renamed from mark_weak. 1446 (parse_opt): Adjust. 1447 (class_type_char): Take additional parameters for ELF file and ELF 1448 header. Treat TLS symbols like objects. 1449 In case of D symbols, show u for unique symbols, R for symbols in 1450 read-only sections, B for symbols in BSS sections. 1451 (show_symbols_bsd): Take additional parameters for ELF file and ELF 1452 header. Adjust for class_type_char change. Show TLS symbols with 1453 @ after them in case --mark-special is selected. 1454 (show_symbols_posix): Likewise. 1455 (show_symbols): Adjust calls to show_symbols_bsd and 1456 show_symbols_posix. 1457 (show_symbols_sysv): Avoid printing adress and size for undefined 1458 symbols. Don't print initial special entry and section entries. 1459 14602011-10-02 Ulrich Drepper <drepper@gmail.com> 1461 1462 * Makefile.am (demanglelib): Define. 1463 (nm_LDADD): Add demanglelib. 1464 * nm.c (options): Add -C option. 1465 (demangle): Define as global variable. 1466 (parse_opt): Recognize -C. 1467 (show_symbols_sysv): Handle demangling. 1468 (show_symbols_bad): Likewise. 1469 (show_symbols_posix): Likewise. 1470 (show_symbols): Likewise. 1471 14722011-07-09 Roland McGrath <roland@hack.frob.com> 1473 1474 * readelf.c (options, parse_opt): Grok -W/--wide and ignore it. 1475 1476 * ar.c (parse_opt): Grok -u. 1477 14782011-05-30 Mark Wielaard <mjw@redhat.com> 1479 1480 * strip.c (relocate): Make offset check overflow-proof. 1481 14822011-05-23 Mark Wielaard <mjw@redhat.com> 1483 1484 * strip.c (relocate): Take new arguments is_rela to indicate 1485 whether the relocation is from a SHT_REL or SHT_RELA section. 1486 Relocate against any debug section symbol, not just STT_SECTION 1487 symbols. For SHT_REL relocations, fetch addend from offset and 1488 add it to symbol value if not zero. 1489 14902011-05-23 Mark Wielaard <mjw@redhat.com> 1491 1492 * strip.c (OPT_RELOC_DEBUG): New option. 1493 (argp_option): Add new --reloc-debug-sections option. 1494 (main): Check new option. 1495 (parse_opt): Likewise. 1496 (handle_elf): Remove any relocations between debug sections 1497 in ET_REL for the debug file when requested. 1498 14992011-05-18 Mark Wielaard <mjw@redhat.com> 1500 1501 * strip.c (handle_elf): Make sure all sections of a removed group 1502 section are removed too. Don't discard SHT_GROUP sections, copy 1503 section table before it gets modified. Section group signature 1504 symbols don't have to be retained. 1505 15062011-05-16 Jakub Jelinek <jakub@redhat.com> 1507 1508 * readelf.c (print_ops): Handle DW_OP_GNU_const_type, 1509 DW_OP_GNU_regval_type, DW_OP_GNU_deref_type, DW_OP_GNU_convert 1510 and DW_OP_GNU_reinterpret. 1511 15122011-05-17 Mark Wielaard <mjw@redhat.com> 1513 1514 * readelf.c (dwarf_tag_string): Fixup DW_TAG_GNU_call_site and 1515 DW_TAG_GNU_call_site_parameter return strings. 1516 15172011-05-11 Marek Polacek <mpolacek@redhat.com> 1518 1519 * nm.c (show_symbols_sysv): Remove unused if/else, remove 1520 unused `prefix' and `fname' parameters. 1521 15222011-05-07 Marek Polacek <mpolacek@redhat.com> 1523 1524 * unstrip.c (compare_sections_nonrel): Mark this function as static. 1525 15262011-04-26 Mark Wielaard <mjw@redhat.com> 1527 1528 * readelf.c (handle_notes_data): Call ebl_object_note_type_name 1529 with note name. 1530 15312011-04-14 Mark Wielaard <mjw@redhat.com> 1532 1533 * readelf.c (options): Add gdb_index. 1534 (section_e): Define section_gdb_index. 1535 (parse_opt): Recognize gdb_index debug-dump argument. 1536 (print_gdb_index_section): New function. 1537 (print_debug): Add gdb_index to debug_sections. 1538 15392011-03-24 Petr Machata <pmachata@redhat.com> 1540 1541 * readelf.c (print_debug_line_section): Emit initial space for all 1542 opcode lines. Print offset in front of each opcode. 1543 15442011-03-22 Marek Polacek <mpolacek@redhat.com> 1545 1546 * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case. 1547 15482011-03-22 Mark Wielaard <mjw@redhat.com> 1549 1550 * readelf.c (dwarf_tag_string): Support DW_TAG_GNU_call_site 1551 and DW_TAG_GNU_call_site_parameter. 1552 (dwarf_attr_string): Support DW_AT_GNU_call_site_value, 1553 DW_AT_GNU_call_site_data_value, 1554 DW_AT_GNU_call_site_target, 1555 DW_AT_GNU_call_site_target_clobbered, 1556 DW_AT_GNU_tail_call, 1557 DW_AT_GNU_all_tail_call_sites, 1558 DW_AT_GNU_all_call_sites, 1559 and DW_AT_GNU_all_source_call_sites. 1560 (print_ops): Handle DW_OP_GNU_entry_value. 1561 (attr_callback): Handle DW_AT_GNU_call_site_value, 1562 DW_AT_GNU_call_site_data_value, 1563 DW_AT_GNU_call_site_target, 1564 and DW_AT_GNU_call_site_target_clobbered. 1565 15662011-03-10 Mark Wielaard <mjw@redhat.com> 1567 1568 * elflint.c (check_symtab): Use ebl_check_st_other_bits. 1569 15702011-02-27 Jan Kratochvil <jan.kratochvil@redhat.com> 1571 1572 * readelf.c (reset_listptr): Clear TABLE->TABLE. 1573 15742011-02-25 Mark Wielaard <mjw@redhat.com> 1575 1576 * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling. 1577 (dwarf_form_string): Properly format and return unknown form. 1578 15792011-02-23 Roland McGrath <roland@redhat.com> 1580 1581 * readelf.c (section_name): New function. 1582 (print_debug_abbrev_section): Use it instead of constant. 1583 (print_debug_aranges_section): Likewise. 1584 (print_debug_ranges_section): Likewise. 1585 (print_debug_units): Likewise. 1586 (print_debug_line_section): Likewise. 1587 (print_debug_loc_section): Likewise. 1588 (print_debug_macinfo_section): Likewise. 1589 (print_debug_pubnames_section): Likewise. 1590 (print_debug_str_section): Likewise. 1591 (print_debug) [USE_ZLIB]: Match .zdebug_* sections too. 1592 (print_debug_abbrev_section): Use decoded d_size, not sh_size. 1593 (print_debug_str_section): Likewise. 1594 1595 * readelf.c (dwarf_attr_string): Grok DW_AT_GNU_odr_signature. 1596 15972011-02-11 Roland McGrath <roland@redhat.com> 1598 1599 * elfcmp.c (verbose): New variable. 1600 (options, parse_opt): Grok -l/--verbose to set it. 1601 (main): Under -l, keep going after first difference. 1602 1603 * elfcmp.c (ignore_build_id): New variable. 1604 (options, parse_opt): Grok --ignore-build-id to set it. 1605 (main): For SHT_NOTE sections, compare note details rather than raw 1606 bytes. Under --ignore-build-id, don't complain about differing build 1607 ID contents if lengths match. 1608 16092011-02-08 Roland McGrath <roland@redhat.com> 1610 1611 * ldscript.y (filename_id_star): Remove unused variable. 1612 1613 * unstrip.c (copy_elided_sections): Remove unused variable. 1614 1615 * elflint.c (check_dynamic): Remove unused variables. 1616 1617 * elflint.c (check_symtab): Warn about missing xndx section only once. 1618 1619 * ldgeneric.c (check_for_duplicate2): Remove unused variable. 1620 16212011-01-06 Roland McGrath <roland@redhat.com> 1622 1623 * strip.c (handle_elf): Under --strip-sections, remove all 1624 non-allocated sections and never generate .gnu_debuglink. 1625 16262011-01-04 Roland McGrath <roland@redhat.com> 1627 1628 * strip.c (remove_shdrs): New variable. 1629 (options, parse_opt): Grok --strip-sections to set it. 1630 (handle_elf): When that's set, truncate off .shstrtab and shdrs. 1631 16322010-11-10 Roland McGrath <roland@redhat.com> 1633 1634 * findtextrel.c (process_file): Don't assume order of sections. 1635 Reported by Mike Hommey <mh@glandium.org>. 1636 16372010-07-26 Roland McGrath <roland@redhat.com> 1638 1639 * readelf.c (print_ops): Handle DW_OP_GNU_implicit_pointer. 1640 16412010-08-30 Roland McGrath <roland@redhat.com> 1642 1643 Print .debug_loc/.debug_ranges with cognizance of actual DIE uses. 1644 * readelf.c (parse_opt): Add section_info to implicit_debug_sections 1645 for ranges, loc. 1646 (struct listptr, struct listptr_table): New types. 1647 (compare_listptr, reset_listptr, sort_listptr): New functions. 1648 (notice_listptr, skip_listptr_hole): New functions. 1649 (struct attrcb_args): Add silent member. 1650 (attr_callback): Call notice_listptr for loclistptr and rangelistptr. 1651 Suppress output if silent, but still call notice_listptr. 1652 (print_debug_units): Suppress output if section_info not requested. 1653 (print_debug_loc_section): Call sort_listptr, skip_listptr_hole. 1654 (print_debug_ranges_section): Likewise. 1655 (print_debug): Call reset_listptr on both tables. 1656 1657 * readelf.c (print_debug_ranges_section): Print empty list. 1658 (print_debug_loc_section): Likewise. 1659 1660 * readelf.c (print_debug_loc_section): Check for bogus length 1661 before calling print_ops. 1662 (print_ops): Check harder for bogus data that would read off end. 1663 16642010-08-11 Roland McGrath <roland@redhat.com> 1665 1666 * readelf.c (for_each_section_argument): Process all sections with 1667 matching name, not just the first. 1668 16692010-07-26 Roland McGrath <roland@redhat.com> 1670 1671 * readelf.c (print_ops): Take new argument for CU version. 1672 Fix DW_OP_call_ref decoding to depend on it. 1673 (print_debug_loc_section): Update caller. 1674 (print_cfa_program): Take new argument, pass it down. 1675 (print_debug_frame_section): Update caller. 1676 (struct attrcb_args): New member version. 1677 (print_debug_units): Initialize it. 1678 16792010-07-02 Roland McGrath <roland@redhat.com> 1680 1681 * readelf.c (print_debug_frame_section): Use format_dwarf_addr for 1682 initial_location. 1683 16842010-06-30 Roland McGrath <roland@redhat.com> 1685 1686 * strings.c (main): Use STDIN_FILENO, not STDOUT_FILENO. 1687 Ignore st_size for a non-S_ISREG file descriptor. 1688 (read_block): Move assert after no-mmap bail-out. 1689 (read_block_no_mmap): Fix size calculations for moving buffer remnant. 1690 16912010-06-22 Roland McGrath <roland@redhat.com> 1692 1693 * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa. 1694 16952010-06-21 Roland McGrath <roland@redhat.com> 1696 1697 * readelf.c (dwarf_tag_string): Handle new v4 tags. 1698 (dwarf_attr_string): Add new attributes. 1699 (dwarf_tag_string): Handle DW_TAG_GNU_*. 1700 1701 * readelf.c (print_ops): Use 64-bit types for LEB128 operands. 1702 (print_cfa_program): Likewise. 1703 17042010-06-20 Roland McGrath <roland@redhat.com> 1705 1706 * readelf.c (print_debug_units): New function, broken out of ... 1707 (print_debug_info_section): ... here. Call it. 1708 (print_debug_types_section): New function. 1709 (enum section_e): Add section_types alias for section_info. 1710 (print_debug): Add types to the sections table. 1711 1712 * readelf.c (print_debug_frame_section): Handle version 4 format. 1713 1714 * readelf.c (print_debug_line_section): Handle version 4 format. 1715 17162010-06-14 Roland McGrath <roland@redhat.com> 1717 1718 * unstrip.c (copy_elided_sections): Make sure all sections' data have 1719 been read in before we write anything out. 1720 17212010-06-04 Roland McGrath <roland@redhat.com> 1722 1723 * unstrip.c (update_shdr): New function. 1724 (update_sh_size): Call it instead of gelf_update_shdr. 1725 (adjust_relocs, add_new_section_symbols): Likewise. 1726 (new_shstrtab, copy_elided_sections): Likewise. 1727 1728 * unstrip.c (copy_elided_sections): Bail if stripped file has more 1729 sections than unstripped file, rather than getting confused later. 1730 17312010-06-01 Roland McGrath <roland@redhat.com> 1732 1733 * readelf.c (dwarf_form_string): Handle DWARF 4 forms. 1734 (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc, 1735 DW_FORM_sec_offset, DW_FORM_ref_sig8. 1736 1737 * readelf.c (print_debug): Don't bail if libdw setup fails. 1738 Suppress complaint if we only want .eh_frame anyway. 1739 17402010-05-28 Ulrich Drepper <drepper@redhat.com> 1741 1742 * readelf.c (attr_callback): Also print form information. 1743 17442010-05-19 Roland McGrath <roland@redhat.com> 1745 1746 * addr2line.c (find_symbol): Short-circuit on empty name. 1747 (handle_address): Handle SYMBOL with no +OFFSET. 1748 17492010-05-08 Roland McGrath <roland@redhat.com> 1750 1751 * readelf.c (print_ops): Take new arg OFFSET_SIZE. 1752 Use that for DW_OP_call_ref, not ADDRSIZE. 1753 (print_cfa_program): Update caller. 1754 (struct attrcb_args): Add offset_size field. 1755 (attr_callback): Use it for print_ops call. 1756 (print_debug_info_section): Initialize it. 1757 (print_ops): Likewise. 1758 17592010-04-14 Roland McGrath <roland@redhat.com> 1760 1761 * readelf.c (handle_core_item): Fix bitmask printing. 1762 17632010-04-06 Roland McGrath <roland@redhat.com> 1764 1765 * ld.c (options): Fix some typos in messages. 1766 * elflint.c (check_scn_group, check_group): Likewise. 1767 * ldscript.y (add_id_list): Likewise. 1768 * readelf.c (print_hash_info): Add xgettext:no-c-format magic comment 1769 before translated string containing a literal %. 1770 17712010-02-26 Roland McGrath <roland@redhat.com> 1772 1773 * readelf.c (process_file): Don't leak an fd in failure case. 1774 17752010-02-15 Roland McGrath <roland@redhat.com> 1776 1777 * Makefile.am: Use config/eu.am for common stuff. 1778 1779 * readelf.c (print_debug_frame_section): Add a cast to avoid sign 1780 mismatch in comparison. 1781 17822010-02-02 Roland McGrath <roland@redhat.com> 1783 1784 * readelf.c (print_encoding_base): Handle DW_EH_PE_absptr (zero). 1785 (read_encoded): Likewise. 1786 (print_debug_frame_section): Check for bogus augmentation length. 1787 For P augmentation, use read_encoded, print the encoding description, 1788 and use hex for unsigned values. 1789 17902010-01-15 Roland McGrath <roland@redhat.com> 1791 1792 * ar.c: Include <sys/stat.h>. 1793 * elflint.c: Likewise. 1794 * readelf.c: Likewise. 1795 * strip.c: Likewise. 1796 * unstrip.c: Likewise 1797 17982010-01-07 Roland McGrath <roland@redhat.com> 1799 1800 * readelf.c (print_ehdr): Handle PN_XNUM. 1801 (phnum): New static variable. 1802 (process_elf_file): Set it with elf_getphdrnum. 1803 (print_phdr): Use phnum instead of EHDR->e_phnum. 1804 (print_dynamic, handle_notes): Likewise. 1805 (handle_relocs_rel, handle_relocs_rela): Likewise. 1806 1807 * elfcmp.c (main): Use elf_getshdrnum and elf_getphdrnum. 1808 1809 * elflint.c (phnum): New static variable. 1810 (check_elf_header): Set it, handling PN_XNUM. 1811 Use that in place of EHDR->e_phnum throughout. 1812 (check_symtab, check_reloc_shdr, check_dynamic): Likewise. 1813 (unknown_dependency_p, check_sections, check_program_header): Likewise. 1814 18152010-01-05 Roland McGrath <roland@redhat.com> 1816 1817 * readelf.c (dwarf_attr_string): Match DW_AT_GNU_vector and 1818 DW_AT_GNU_template_name. 1819 18202010-01-04 Roland McGrath <roland@redhat.com> 1821 1822 * readelf.c (handle_notes_data): Grab NT_AUXV only for name "CORE". 1823 (handle_core_note): Pass NHDR and NAME to ebl_core_note. 1824 (handle_core_item): Handle .format of '\n' as \n-separated strings. 1825 1826 * readelf.c (implicit_debug_sections): New variable. 1827 (parse_opt): Set it instead of print_debug_sections for -a. 1828 OR them together for print_debug check. 1829 (print_debug): OR them together for section check. 1830 1831 * readelf.c (options): Repartition into set implied by -a and others. 1832 Correct -a text to match reality. 1833 1834 * readelf.c (struct section_argument): Add bool member 'implicit'. 1835 (parse_opt): Set it for -a cases, clear it for -x args. 1836 (for_each_section_argument): Don't complain about a missing section by 1837 name if it's implicit. 1838 18392009-11-16 Roland McGrath <roland@redhat.com> 1840 1841 * readelf.c (print_string_section): Punt SHT_NOBITS like empty 1842 sections, just as dump_data_section already does. 1843 18442009-09-21 Ulrich Drepper <drepper@redhat.com> 1845 1846 * elflint.c (special_sections): Allow MERGE and STRINGS flags to be 1847 set for .comment section. 1848 Patch by Mark Wielaard <mjw@redhat.com>. 1849 18502009-09-08 Roland McGrath <roland@redhat.com> 1851 1852 * ar.c (main): Fix typo in message format. 1853 18542009-08-21 Roland McGrath <roland@redhat.com> 1855 1856 * readelf.c (attr_callback): Use print_block only when we don't use 1857 print_ops. 1858 18592009-08-14 Roland McGrath <roland@redhat.com> 1860 1861 * ar.c (do_oper_extract): Use pathconf instead of statfs. 1862 18632009-08-01 Ulrich Drepper <drepper@redhat.com> 1864 1865 * debugpred.h: Add two most const. 1866 18672009-07-26 Mark Wielaard <mjw@redhat.com> 1868 1869 * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION. 1870 18712009-07-25 Mark Wielaard <mjw@redhat.com> 1872 1873 * Makefile.am (addr2line_LDADD): Add $(libelf). 1874 18752009-07-24 Roland McGrath <roland@redhat.com> 1876 1877 * readelf.c (print_block): New function. 1878 (print_ops): Use it. 1879 (attr_callback): Use it for DW_FORM_block* forms. 1880 18812009-07-20 Mark Wielaard <mjw@redhat.com> 1882 1883 * readelf.c (print_ops): Add handling of DW_OP_implicit_value 1884 and DW_OP_stack_value. 1885 18862009-07-14 Ulrich Drepper <drepper@redhat.com> 1887 1888 * elflint.c (check_elf_header): Allow Linux ABI. 1889 (check_symtab): Handle STB_GNU_UNIQUE. 1890 18912009-07-08 Mark Wielaard <mjw@redhat.com> 1892 1893 * readelf.c (attr_callback): Handle DW_Form constants for 1894 DW_AT_data_member_location. 1895 18962009-07-06 Roland McGrath <roland@redhat.com> 1897 1898 * readelf.c (register_info): New function. Handle unknown register #s. 1899 (print_cfa_program): Use it. 1900 (handle_core_register, handle_core_registers): Likewise. 1901 19022009-06-28 Roland McGrath <roland@redhat.com> 1903 1904 * readelf.c (print_address_names): New static variable. 1905 (options, parse_opt): Grok -N/--numeric-addresses to clear it. 1906 (format_dwarf_addr): Don't look up name if !print_address_names. 1907 19082009-06-13 Ulrich Drepper <drepper@redhat.com> 1909 1910 * ldgeneric.c: Don't use deprecated libelf functions. 1911 * nm.c: Likewise. 1912 * objdump.c: Likewise. 1913 * readelf.c: Likewise. 1914 * size.c: Likewise. 1915 * strip.c: Likewise. 1916 * unstrip.c: Likewise. 1917 * ld.h: Fix up comment. 1918 19192009-06-01 Ulrich Drepper <drepper@redhat.com> 1920 1921 * readelf.c (print_relocs): Expect ELF header argument and pass on 1922 to handle_relocs_rel* functions. Adjust caller. 1923 (handle_relocs_rel): Add ELF header argument. Add special case for 1924 the IRELATIVE relocations in statically linked executables. 1925 (handle_relocs_rela): Likewise. 1926 19272009-04-29 Ulrich Drepper <drepper@redhat.com> 1928 1929 * elflint.c (check_symtab): Add tests of st_other field. 1930 19312009-04-23 Ulrich Drepper <drepper@redhat.com> 1932 1933 * Makefile [BUILD_STATIC] (libdw): Add $(zip_LIBS). 1934 19352009-04-20 Roland McGrath <roland@redhat.com> 1936 1937 * addr2line.c (print_dwarf_function): Honor -s and -A for file names 1938 of inline call sites. 1939 1940 * addr2line.c (just_section): New variable. 1941 (adjust_to_section): New function, broken out of ... 1942 (handle_address): ... here. 1943 (options, parse_opt): Add -j/--section=NAME to set it. 1944 19452009-04-15 Roland McGrath <roland@redhat.com> 1946 1947 * readelf.c (print_debug_frame_section): Check for DW_CIE_ID_64 in 1948 64-bit format header, DW_CIE_ID_32 in 32-bit format header. 1949 19502009-04-14 Roland McGrath <roland@redhat.com> 1951 1952 * readelf.c (print_attributes): Treat SHT_ARM_ATTRIBUTES on EM_ARM 1953 like SHT_GNU_ATTRIBUTES. 1954 1955 * readelf.c (handle_core_registers): Fix error message. 1956 1957 * strip.c (handle_elf: check_preserved): Don't note any change when 1958 .debug_data is already filled from a previous pass. 1959 19602009-02-05 Ulrich Drepper <drepper@redhat.com> 1961 1962 * objdump.c (show_relocs_x): Minor cleanups. 1963 1964 * readelf.c (print_cfa_program): Correct a few labels. 1965 Print first DW_CFA_expression and DW_CFA_val_expression parameter 1966 as register. 1967 19682009-02-01 Ulrich Drepper <drepper@redhat.com> 1969 1970 * objdump.c (show_relocs_rel, show_relocs_rela): Split common parts 1971 into ... 1972 (show_relocs_x): ...here. New function. 1973 (show_relocs): Better spacing in output. 1974 1975 * objdump.c (show_relocs_rela): Show offsets as signed values. 1976 1977 * ar.c (main): Fix recognition of invalid modes for a, b, i modifiers. 1978 Improve some error messages. 1979 Use program_invocation_short_name instead of AR macro. 1980 * Makefile.am (CFLAGS_ar): Remove. 1981 * elflint.c (parse_opt): ARGP_HELP_EXIT_ERR does nothing for argp_help. 1982 * objdump.c (parse_opt): Likewise. 1983 * readelf.c (parse_opt): Likewise. 1984 19852009-01-27 Roland McGrath <roland@redhat.com> 1986 1987 * readelf.c (print_ops): Notice short length, don't overrun buffer 1988 (still need to fix LEB128). 1989 1990 * readelf.c (print_ops): Fix DW_OP_call[24] decoding. 1991 1992 * readelf.c (print_ops): Print (empty)\n when LEN == 0. 1993 19942009-01-24 Ulrich Drepper <drepper@redhat.com> 1995 1996 * readelf.c (print_debug_frame_section): Fix computation of vma_base 1997 for PC-relative mode. 1998 19992009-01-23 Ulrich Drepper <drepper@redhat.com> 2000 2001 * size.c (process_file): When handling archive, close file descriptor 2002 here. For unknown file format also close file descriptor. 2003 (handle_ar): Don't close file descriptor here. 2004 2005 * readelf.c (parse_opt): Move code to add to dump_data_sections and 2006 string_sections list in local function add_dump_section. Adjust 'x' 2007 key handling. For 'a' key add .strtab, .dynstr, and .comment section 2008 to string_sections list. 2009 20102009-01-22 Roland McGrath <roland@redhat.com> 2011 2012 * readelf.c (print_phdr): Don't print section mapping when no sections. 2013 2014 * Makefile.am (AM_CFLAGS): Pass -Wno-format for *_no_Wformat. 2015 2016 * readelf.c (print_debug_frame_section): Initialize IS_SIGNED to false 2017 and reset it only for the 'true' cases. 2018 2019 * Makefile.am (addr2line_no_Wformat): New variable. 2020 2021 * readelf.c (print_debug_frame_section): Use t instead of j formats 2022 for ptrdiff_t OFFSET. 2023 20242009-01-21 Ulrich Drepper <drepper@redhat.com> 2025 2026 * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section 2027 test. Handle debuginfo files. 2028 (check_exception_data): First sanity test. 2029 20302009-01-17 Ulrich Drepper <drepper@redhat.com> 2031 2032 * readelf.c (print_debug_exception_table): Show target of ar_disp 2033 field. 2034 2035 * elflint.c (check_program_header): Add most consistency checks for 2036 PT_GNU_EH_FRAME entry. 2037 2038 * addr2line.c: Use ARGP_PROGRAM_VERSION_HOOK_DEF and 2039 ARGP_PROGRAM_BUG_ADDRESS_DEF. 2040 * ar.c: Likewise. 2041 * elfcmp.c: Likewise. 2042 * elflint.c: Likewise. 2043 * findtextrel.c: Likewise. 2044 * ld.c: Likewise. 2045 * nm.c: Likewise. 2046 * objdump.c: Likewise. 2047 * ranlib.c: Likewise. 2048 * readelf.c: Likewise. 2049 2050 * size.c: Likewise. 2051 * strings.c: Likewise. 2052 * strip.c: Likewise. 2053 * unstrip.c: Likewise. 2054 20552009-01-16 Ulrich Drepper <drepper@redhat.com> 2056 2057 * elflint.c (check_program_header): Check that PT_GNU_EH_FRAME entry 2058 matches .eh_frame_hdr section, if it is available. Also check that 2059 the segment is allocated, not writable, not executable. 2060 2061 * readelf.c: Add -e option. Dump exception and unwind related 2062 sections. Add -e to -a. 2063 (print_encoding_base): Handle DW_EH_PE_omit. 2064 (print_debug_exception_table): Beginning of support. 2065 (print_debug): Hook up print_debug_exception_table for 2066 .gcc_except_table sections. 2067 2068 * readelf.c (print_debug_frame_section): Some fixes for last change. 2069 20702009-01-15 Ulrich Drepper <drepper@redhat.com> 2071 2072 * readelf.c (print_encoding): Now a toplevel function. 2073 (print_relinfo): Likewise. 2074 (print_encoding_base): Broken out of print_debug_frame_section. 2075 (print_debug_frame_section): Print different header for .eh_frame 2076 sections. Fix recognition of matching CIEs in .debug_frame sections. 2077 Print absolute offset for PC-relative FDE locations. Don't print 2078 table header for FDEs if the table is empty. 2079 (read_encoded): New function. 2080 (print_debug_frame_hdr_section): New function. 2081 (print_debug): Hook up print_debug_frame_hdr_section for .eh_frame_hdr 2082 sections. 2083 2084 * readelf.c (handle_relocs_rel): Print section number. 2085 (print_debug_abbrev_section): Likewise. 2086 (print_debug_aranges_section): Likewise. 2087 (print_debug_ranges_section): Likewise. 2088 (print_debug_info_section): Likewise. 2089 (print_debug_line_section): Likewise. 2090 (print_debug_loc_section): Likewise. 2091 (print_debug_macinfo_section): Likewise. 2092 (print_debug_pubnames_section): Likewise. 2093 (print_debug_str_section): Likewise. 2094 20952009-01-10 Ulrich Drepper <drepper@redhat.com> 2096 2097 * strings.c (read_block): Fix typo in error message string. 2098 20992009-01-07 Ulrich Drepper <drepper@redhat.com> 2100 2101 * ld.c (ld_new_searchdir): Fix adding to search path list. 2102 21032009-01-06 Ulrich Drepper <drepper@redhat.com> 2104 2105 * readelf.c: Implement call frame debug section dumping. 2106 21072009-01-05 Roland McGrath <roland@redhat.com> 2108 2109 * elfcmp.c: Exit with status 2 for errors (like cmp, diff, grep). 2110 Status 1 (aka EXIT_FAILURE) is only for completed OK but not equal. 2111 21122009-01-01 Ulrich Drepper <drepper@redhat.com> 2113 2114 * addr2line.c: Update copyright year. 2115 * ar.c: Likewise. 2116 * elfcmp.c: Likewise. 2117 * elflint.c: Likewise. 2118 * findtextrel.c: Likewise. 2119 * ld.c: Likewise. 2120 * nm.c: Likewise. 2121 * objdump.c: Likewise. 2122 * ranlib.c: Likewise. 2123 * readelf.c: Likewise. 2124 * size.c: Likewise. 2125 * strings.c: Likewise. 2126 * strip.c: Likewise. 2127 * unstrip.c: Likewise. 2128 21292008-12-11 Roland McGrath <roland@redhat.com> 2130 2131 * nm.c (sym_name): New function. 2132 (show_symbols_sysv): Use it in place of elf_strptr. 2133 (show_symbols_bsd, show_symbols_posix): Likewise. 2134 Fixes RHBZ#476136. 2135 2136 * nm.c (show_symbols_sysv): Use an alloca'd backup section name when 2137 elf_strptr fails. 2138 21392008-12-02 Roland McGrath <roland@redhat.com> 2140 2141 * readelf.c (count_dwflmod, process_file): Don't presume encoding of 2142 nonzero OFFSET argument to dwfl_getmodules. 2143 21442008-08-07 Roland McGrath <roland@redhat.com> 2145 2146 * addr2line.c (main): Pass string to handle_address. 2147 (see_one_module): New function, subroutine of handle_address. 2148 (find_symbol): Likewise. 2149 (handle_address): Take string argument rather than address. 2150 Convert plain number, or handle strings like "(section)+offset" 2151 or "symbol+offset". 2152 21532008-08-01 Roland McGrath <roland@redhat.com> 2154 2155 * readelf.c (handle_core_item): Handle 'B' type for 1-origin bitset. 2156 For 'b' and 'B', print <x-y,z> or ~<x,y-z> rather than 1/0 string. 2157 2158 * readelf.c (convert): Take new argument SIZE. 2159 (handle_core_register, handle_core_item): Update callers. 2160 (handle_core_item): Take new arg REPEATED_SIZE. 2161 (handle_core_items): Special case for a singleton item, 2162 let handle_core_item handle repeats if it wants to. 2163 2164 * readelf.c (handle_core_items): Give abridged output 2165 for identical groups repeated more than twice. 2166 21672008-07-04 Roland McGrath <roland@redhat.com> 2168 2169 * readelf.c (handle_core_items): Handle ELF_T_ADDR. 2170 21712008-04-10 Roland McGrath <roland@redhat.com> 2172 2173 * strip.c (handle_elf): Don't keep sections that kept symbol tables 2174 refer to. Instead, just be sure to preserve the original symbol 2175 table in the debug file so those symbols go with their sections and 2176 can be elided from the stripped version of the symbol table. 2177 2178 * strip.c (handle_elf): When a discarded section kept in the debug 2179 file refers to a nondiscard section via sh_link/sh_info, preserve 2180 that nondiscarded section unmodified in the debug file as well. 2181 Skip adjustment of discarded sections symbol table references when 2182 that symbol table is copied in this way. 2183 2184 * elflint.c (check_symtab): Don't crash from missing symbol names 2185 after diagnosing bogus strtab. 2186 2187 * strip.c (handle_elf): Cosmetic cleanup in special section contents 2188 adjustment for symtab changes. 2189 21902008-03-31 Roland McGrath <roland@redhat.com> 2191 2192 * elflint.c (check_sections): Add checks on SHF_EXECINSTR sections: 2193 must be SHT_PROGBITS, must not be SHF_WRITE. Let backend hook 2194 excuse a special section. 2195 21962008-03-27 Roland McGrath <roland@redhat.com> 2197 2198 * elflint.c (check_sections): Check that executability and writability 2199 of sections is reflected in segment p_flags. 2200 22012008-03-26 Roland McGrath <roland@redhat.com> 2202 2203 * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags 2204 that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really 2205 is valid in RELRO. 2206 22072008-02-29 Roland McGrath <roland@redhat.com> 2208 2209 * readelf.c (print_attributes): Add a cast. 2210 * elflint.c (check_attributes): Likewise. 2211 2212 * unaligned.h (add_8ubyte_unaligned): Cast PTR argument for parity 2213 with [UNALIGNED_ACCESS_CLASS == BYTE_ORDER] definition. 2214 (add_4ubyte_unaligned, add_2ubyte_unaligned): Likewise. 2215 22162008-02-03 Ulrich Drepper <drepper@redhat.com> 2217 2218 * i386_ld.c (elf_i386_count_relocations): Implement R_386_TLS_GD 2219 when linked into executable. 2220 (elf_i386_create_relocations): Likewise. 2221 22222008-02-20 Roland McGrath <roland@redhat.com> 2223 2224 * readelf.c (print_attributes): New function. 2225 (process_elf_file): Call it under -A. 2226 2227 * elflint.c (check_attributes): Implement it for real. 2228 22292008-02-19 Roland McGrath <roland@redhat.com> 2230 2231 * elflint.c (special_sections): Handle .gnu.attributes section. 2232 (check_sections): Likewise. 2233 (check_attributes): New function. 2234 22352008-02-10 Roland McGrath <roland@redhat.com> 2236 2237 * elfcmp.c (main): Ignore sh_offset differences in non-SHF_ALLOC 2238 sections and ET_REL files. 2239 22402008-02-02 Ulrich Drepper <drepper@redhat.com> 2241 2242 * elf32-i386.script: Add .eh_frame_hdr, .tdata, and .tbss sections. 2243 * i386_ld.c (elf_i386_count_relocations): Handle R_386_TLS_LDO_32 2244 and R_386_TLS_LE. 2245 (elf_i386_create_relocations): Likewise. 2246 * ld.h (struct ld_state): Add need_tls, tls_start, and tls_tcb 2247 elements. 2248 * ldgeneric.c (add_section): If TLS section is used, set need_tls flag. 2249 (ld_generic_create_outfile): Add PT_TLS entry to program header. 2250 Fix generation of PT_GNU_STACK entry. 2251 22522008-02-01 Ulrich Drepper <drepper@redhat.com> 2253 2254 * ld.c (replace_args): Prevent loop over replacements if the parameter 2255 is only two characters long. 2256 2257 * ld.c: Recognize sha1 argument for --build-id parameter. 2258 * ldgeneric.c (create_build_id_section): Handle sha1. 2259 (compute_hash_sum): New function. Broken out of compute_build_id. 2260 Take hash function and context as parameters. 2261 (compute_build_id): Use compute_hash_sum for md5 and the new sha1 2262 implementation. 2263 22642008-01-31 Ulrich Drepper <drepper@redhat.com> 2265 2266 * elf32-i386.script: Add .note.ABI-tag and .note.gnu.build-id sections. 2267 * ld.c: Recognize --build-id command line parameter. 2268 * ld.h: Define scn_dot_note_gnu_build_id. 2269 (struct ld_state): Add build_id and buildidscnidx elements. 2270 * ldgeneric.c: Implement --build-id command line parameter. 2271 * ldlex.l (ID): Recognize - as valid character after the first one. 2272 22732008-01-29 Ulrich Drepper <drepper@redhat.com> 2274 2275 * ld.c (replace_args): New function. 2276 (main): Use it to rewrite old-style parameters. 2277 2278 * elf32-i386.script: Add .gnu.hash section. 2279 * ldgeneric.c (optimal_bucket_size): A tiny bit more efficient. 2280 (fillin_special_symbol): Initialize st_size. 2281 (sortfct_hashval): New function. 2282 (create_gnu_hash): New function. 2283 (create_hash): New function. 2284 (ld_generic_create_outfile): Use the new functions to create the 2285 hash tables. 2286 2287 * elflint.c (check_gnu_hash): Fix index value printed in error message. 2288 22892008-01-24 Ulrich Drepper <drepper@redhat.com> 2290 2291 * elflint.c (check_group): Check that signature symbol for section 2292 group is not an empty string. 2293 * ldgeneric.c: Remove magic assignment of indeces in the dynsym 2294 section. Start implementation of --hash-style. 2295 * i386_ld.c: Likewise. 2296 * ld.c: Recognize --hash-style. 2297 * ld.h (struct scninfo): Add comdat_group. 2298 Add additional parameter to finalize_plt callback. 2299 23002008-01-22 Ulrich Drepper <drepper@redhat.com> 2301 2302 * ld.h (struct callbacks): Add initialize_gotplt. 2303 (struct scnhead): Add scn_dot_gotplt. 2304 (struct ld_state): Add gotpltscnidx. 2305 * i386_ld.c (elf_i386_initialize_plt): Minor optimization. 2306 (elf_i386_initialize_pltrel): Likewise. 2307 (elf_i386_initialize_got): There is now a separate .got.plt, so 2308 don't do the PLT-related work here. Initialize d_type. 2309 (elf_i386_initialize_gotplt): New function. 2310 (elf_i386_plt0): Use ud2a after indirect jump. 2311 (elf_i386_pic_plt0_entry): Likewise. 2312 (elf_i386_finalize_plt): Reference now .got.plt. 2313 (elf_i386_count_relocations): For GOT entries which need no relocation 2314 don't bump nrel_got. 2315 (elf_i386_create_relocations): Also get .got.plt. Rewrite R-386_GOT32 2316 handling for split .got/.got.plt. 2317 (elf_i386_ld_init): Initialize callbacks.initialize_gotplt. 2318 * elf32-i386.script: Sort sections for security. There are no .got 2319 input sections. Add .got.plt. 2320 * ldgeneric.c (ld_generic_generate_sections): Add .got.plt section. 2321 (ld_generic_create_outfile): Initialize .got.plt section. 2322 Use .got.plt address for _GLOBAL_OFFSET_TABLE_ symbol and DT_PLTGOT. 2323 23242008-01-19 Ulrich Drepper <drepper@redhat.com> 2325 2326 * i386_ld.c (elf_i386_count_relocations): PLT relocations for undefined 2327 symbols are not carried over into statically linked output files. 2328 Add dummy entries for more TLS relocations. 2329 2330 * ld.c (options): Add long names for -( and -). 2331 2332 * ldgeneric.c (check_definition): For newly found definitions don't 2333 mark section as used if symbol is absolute. 2334 (extract_from_archive): Only assign archive sequence number the first 2335 time the archive is handled. Update ld_state.last_archive_used 2336 if any symbol was used. Remove nround variable. 2337 (file_process2): When using symbol from an archive, update 2338 ld_state.group_start_archive, ld_state.archives, and 2339 ld_state.tailarchives. 2340 (ld_generic_file_process): If group is not handled anymore, after 2341 freeing ELF handles for the archives, clear ld_state.archives and 2342 *nextp. Fix wrong logic in recognizing first iteration of group 2343 loop. When clearing flags, also clear ld_state.group_start_archive. 2344 23452008-01-11 Ulrich Drepper <drepper@redhat.com> 2346 2347 * objdump.c (show_disasm): Adjust disassembler format string for 2348 removal of %e. 2349 23502008-01-04 Roland McGrath <roland@redhat.com> 2351 2352 * readelf.c (handle_core_items): Take new arg DESCSZ; if nonzero, 2353 a size greater than the items cover means multiple sets of items. 2354 (handle_core_note): Update caller. 2355 23562008-01-04 Roland McGrath <roland@redhat.com> 2357 2358 * strip.c (handle_elf): Move SHDRIDX defn to silence gcc warning. 2359 23602008-01-03 Roland McGrath <roland@redhat.com> 2361 2362 * ld.h (linked_from_dso_p): Use __attribute__ ((__gnu_inline__)). 2363 2364 * elflint.c (check_dynamic): Remove duplicate initializer. 2365 23662008-01-02 Ulrich Drepper <drepper@redhat.com> 2367 2368 * addr2line.c: Update copyright year. 2369 * ar.c: Likewise. 2370 * elfcmp.c: Likewise. 2371 * elflint.c: Likewise. 2372 * findtextrel.c: Likewise. 2373 * ld.c: Likewise. 2374 * nm.c: Likewise. 2375 * objdump.c: Likewise. 2376 * ranlib.c: Likewise. 2377 * readelf.c: Likewise. 2378 * size.c: Likewise. 2379 * strings.c: Likewise. 2380 * strip.c: Likewise. 2381 * unstrip.c: Likewise. 2382 23832007-12-30 Ulrich Drepper <drepper@redhat.com> 2384 2385 * objdump (show_disasm): Use %e after third parameter. 2386 23872007-12-21 Ulrich Drepper <drepper@redhat.com> 2388 2389 * strip.c: Fix wrong parenthesis in a few branch predictions. 2390 * strings.c: Likewise. 2391 23922007-12-20 Ulrich Drepper <drepper@redhat.com> 2393 2394 * Makefile.am (DEFS): Add DEBUGPRED. 2395 * addr2line.c: Include debugpred.h. 2396 * ar.c: Likewise. 2397 * elfcmp.c: Likewise. 2398 * elflint.c: Likewise. 2399 * findtextrel.c: Likewise. 2400 * nm.c: Likewise. 2401 * objdump.c: Likewise. 2402 * ranlib.c: Likewise. 2403 * readelf.c: Likewise. 2404 * size.c: Likewise. 2405 * strings.c: Likewise. 2406 * strip.c: Likewise. 2407 * unstrip.c: Likewise. 2408 * debugpred.h: New file. 2409 2410 * readelf.c (handle_relocs_rel): Use elf_scnshndx. 2411 (handle_relocs_rela): Likewise. 2412 2413 * readelf.c: Add lots of likely/unlikely. 2414 2415 * elflint.c: Minor cleanups. 2416 24172007-11-19 Roland McGrath <roland@redhat.com> 2418 2419 * readelf.c (print_ops): Handle all bad op codes gracefully. 2420 Print their numbers instead of just ???. 2421 24222007-11-09 Roland McGrath <roland@redhat.com> 2423 2424 * readelf.c (attr_callback): Handle DW_AT_data_location. 2425 Handle block forms to mean a DWARF expression for DW_AT_allocated, 2426 DW_AT_associated, DW_AT_bit_size, DW_AT_bit_offset, DW_AT_bit_stride, 2427 DW_AT_byte_size, DW_AT_byte_stride, DW_AT_count, DW_AT_lower_bound, 2428 DW_AT_upper_bound. 2429 24302007-10-20 Roland McGrath <roland@redhat.com> 2431 2432 * unstrip.c (options): Update -R description. 2433 (struct symbol): Put symbol details a union with a size_t pointer 2434 `duplicate'. 2435 (compare_symbols_output): Use null ->name as marker for discard 2436 symbols, not zero *->map. 2437 (copy_elided_sections): Record forwarding pointers for discarded 2438 duplicates and fill SYMNDX_MAP elements through them. 2439 2440 * readelf.c (process_file): Set offline_next_address to 0 at start. 2441 (struct process_dwflmod_args): New type. 2442 (process_dwflmod): Take args in it, pass fd to process_elf_file. 2443 (process_file): Update caller; dup FD for passing to libdwfl. 2444 (process_elf_file): Take new arg FD. For ET_REL file when 2445 displaying data affected by libdwfl relocation, open a new Elf handle. 2446 24472007-10-17 Roland McGrath <roland@redhat.com> 2448 2449 * readelf.c (print_debug_line_section): For invalid data inside a 2450 unit with plausible length, keep printing at the next unit boundary. 2451 2452 * readelf.c (attr_callback): Use dwarf_formref_die, not dwarf_formref. 2453 24542007-10-16 Roland McGrath <roland@redhat.com> 2455 2456 * readelf.c (hex_dump): Fix rounding error in whitespace calculation. 2457 24582007-10-15 Roland McGrath <roland@redhat.com> 2459 2460 * make-debug-archive.in: New file. 2461 * Makefile.am (EXTRA_DIST): Add it. 2462 (make-debug-archive): New target. 2463 (bin_SCRIPTS, CLEANFILES): Add it. 2464 24652007-10-10 Roland McGrath <roland@redhat.com> 2466 2467 * elflint.c (special_sections): Add new attrflag value exact_or_gnuld. 2468 Use it to check MERGE|STRINGS for .debug_str. 2469 (check_sections): Handle exact_or_gnuld. 2470 24712007-10-08 Roland McGrath <roland@redhat.com> 2472 2473 * readelf.c (handle_core_item): Handle 'T'|0x80 to indicate 2474 64-bit struct timeval with 32-bit tv_usec. 2475 24762007-10-07 Roland McGrath <roland@redhat.com> 2477 2478 * readelf.c (check_archive_index): New function. 2479 (process_file): Call it. Change signature to take only fd and name. 2480 Use libdwfl to open the file, then iterate on its modules (multiple 2481 for an archive) to print file name and call process_elf_file. 2482 (main): Update caller. Let process_file do elf_begin. 2483 (count_dwflmod, process_dwflmod, find_no_debuginfo): New functions. 2484 (process_elf_file): Take only Dwfl_Module * argument. 2485 Don't print the file name here. 2486 (print_debug_*_section): Take Dwfl_Module * argument. 2487 (print_debug): Likewise. Update caller. 2488 (format_dwarf_addr): New function. 2489 (print_debug_ranges_section): Use it. 2490 (attr_callback): Likewise. 2491 (print_debug_line_section, print_debug_loc_section): Likewise. 2492 2493 * readelf.c (print_debug_ranges_section): Translate all strings. 2494 (print_debug_loc_section): Likewise. 2495 2496 * unstrip.c (copy_elided_sections): Initialize SEC. 2497 2498 * ar.c (do_oper_insert): Put trailing / on short names. 2499 2500 * arlib.h (MAX_AR_NAME_LEN): Decrease by one. 2501 2502 * arlib2.c (arlib_add_long_name): Adjust for header size. 2503 2504 * arlib.c (arlib_finalize): Pad long name table to keep size even. 2505 2506 * ar.c (do_oper_insert): Use write_retry for padding write. 2507 2508 * ar.c (do_oper_insert): Initialize CUR_OFF in no_old case. 2509 Unconditionally set FOUND[CNT]->elf when setting ->mem. 2510 (remember_long_name): New function. 2511 (do_oper_insert): Call it. Correctly use length of basename, 2512 not original name. Don't store long name twice for new member. 2513 25142007-10-06 Roland McGrath <roland@redhat.com> 2515 2516 * elflint.c (check_note): Skip empty segment. 2517 (check_note_section): Skip empty section. 2518 2519 * unstrip.c (options, parse_opt, struct arg_info): Grok -R/--relocate. 2520 (handle_output_dir_module, handle_implicit_modules): Pass it down. 2521 (handle_dwfl_module): When set, use ET_REL already loaded by Dwfl. 2522 (compare_alloc_sections): Take new arg REL, ignore address if true. 2523 (compare_sections): Likewise, pass it down. 2524 (compare_sections_rel, compare_sections_nonrel): New functions. 2525 (find_alloc_sections_prelink, copy_elided_sections): Use them 2526 instead of compare_sections. 2527 (sections_match): New function, broken out of ... 2528 (find_alloc_section): ... here. 2529 (copy_elided_sections): Reorganize section match-up logic. 2530 Use sections_match for SHF_ALLOC in ET_REL. 2531 For ET_REL, let the nonzero sh_addr from the debug file dominate. 2532 2533 * unstrip.c (add_new_section_symbols): Take new arg REL. 2534 When true, do not update section symbol values. 2535 (collect_symbols): Likewise. Update section symbols with address 2536 of chosen output section, not original section. 2537 (check_symtab_section_symbols, copy_elided_sections): Update callers. 2538 2539 * unstrip.c (compare_alloc_sections): At the same address, preserve 2540 original section order. 2541 2542 * elflint.c (special_sections): Don't require MERGE|STRINGS for 2543 .debug_str, it didn't always have them with older tools. 2544 2545 * elflint.c (check_symtab, check_one_reloc): Ignore sh_addr in ET_REL. 2546 25472007-10-05 Roland McGrath <roland@redhat.com> 2548 2549 * elflint.c (check_symtab): Allow SHN_UNDEF _GLOBAL_OFFSET_TABLE_ in 2550 ET_REL file. 2551 2552 * elflint.c (check_symtab): For _GLOBAL_OFFSET_TABLE_, diagnose 2553 SHN_UNDEF as "bad section". Use shndx value in messages. 2554 2555 * elflint.c (special_sections): Add ".debug_str". Decrement namelen 2556 for ".debug" so it matches as a prefix. 2557 (IS_KNOWN_SPECIAL): New macro. 2558 (check_sections): Use it for ".plt" match. Cite wrong SHT_NOBITS 2559 type even under -d, for a .debug* or .shstrtab section. 2560 2561 * readelf.c (print_ops): Use hex for address operand. 2562 25632007-10-04 Roland McGrath <roland@redhat.com> 2564 2565 * unstrip.c (copy_elided_sections): Initialize NDX_SECTION element for 2566 .gnu_debuglink section to SHN_UNDEF. Drop STT_SECTION symbols for 2567 sections mapped to SHN_UNDEF. 2568 25692007-10-04 Ulrich Drepper <drepper@redhat.com> 2570 2571 * readelf.c (dump_archive_index): Avoid warning about uninitialized 2572 variable with older glibc versions. 2573 Add some branch prediction. 2574 25752007-10-04 Roland McGrath <roland@redhat.com> 2576 2577 * readelf.c (print_archive_index): New variable. 2578 (options, parse_opt): Accept -c/--archive-index to set it. 2579 (dump_archive_index): New function. 2580 (process_file): Take new arg WILL_PRINT_ARCHIVE_INDEX. 2581 Call dump_archive_index on archives if set. 2582 (main): Update caller. 2583 (any_control_option): Give it file scope, moved out of ... 2584 (parse_opt): ... here. 2585 25862007-10-03 Roland McGrath <roland@redhat.com> 2587 2588 * unstrip.c (struct arg_info): Add `list' flag. 2589 (options, parse_opt): Grok -n/--list to set it. 2590 (list_module): New function. 2591 (handle_implicit_modules): Call it under -n. 2592 2593 * elflint.c (check_note_section): New function. 2594 (check_sections): Call it for SHT_NOTE. 2595 2596 * readelf.c (handle_notes): Use sections when available. 2597 2598 * elflint.c (check_note_data): New function, broken out of ... 2599 (check_note): ... here. Call it and elf_getdata_rawchunk. 2600 2601 * readelf.c (handle_auxv_note): Take offset as argument, not buffer. 2602 Use elf_getdata_rawchunk and gelf_getauxv. 2603 (handle_notes_data): New function, broken out of ... 2604 (handle_notes): ... here. Call it and elf_getdata_rawchunk. 2605 26062007-10-01 Roland McGrath <roland@redhat.com> 2607 2608 * readelf.c (hex_dump): Fix transposed subtraction generating spaces. 2609 2610 * readelf.c (hex_dump): Fix line header to be hex instead of decimal. 2611 26122007-09-10 Roland McGrath <roland@redhat.com> 2613 2614 * readelf.c (options): Give -p optional argument, alias --string-dump. 2615 (string_sections, string_sections_tail): New static variables. 2616 (parse_opt): Set them when -p has an argument. 2617 (print_string_section): New function, broken out of ... 2618 (print_strings): ... here. Call it. 2619 (dump_data_section): New function, broken out of ... 2620 (dump_data): ... here. Call it. 2621 (for_each_section_argument): New function, broken out of ... 2622 (dump_data): ... here. Call it. 2623 (dump_strings): New function. 2624 26252007-08-31 Roland McGrath <roland@redhat.com> 2626 2627 * readelf.c (print_strings): Typo fix. 2628 26292007-08-23 Roland McGrath <roland@redhat.com> 2630 2631 * readelf.c (printf_with_wrap): Function removed. 2632 (REGISTER_WRAP_COLUMN): New macro. 2633 (handle_core_register): Use print_core_item instead. 2634 (struct register_info): New type. 2635 (compare_registers, compare_register_sets): New functions. 2636 (register_bitpos, compare_sets_by_info): New functions. 2637 (handle_core_registers): Use those to segregate and sort registers 2638 for display. 2639 2640 * readelf.c (ITEM_WRAP_COLUMN): New macro. 2641 (print_core_item): New function. 2642 (handle_core_item): Use it instead of printf_with_wrap. 2643 (compare_core_items, compare_core_item_groups): New functions. 2644 (handle_core_items): Use them. Sort by group and force line breaks 2645 between groups. 2646 2647 * readelf.c (handle_core_registers, handle_core_items): New functions, 2648 broken out of ... 2649 (handle_core_note): ... here. Call them. 2650 26512007-08-22 Roland McGrath <roland@redhat.com> 2652 2653 * unstrip.c (new_shstrtab): New function, broken out of ... 2654 (copy_elided_sections): ... here. 2655 26562007-08-20 Roland McGrath <roland@redhat.com> 2657 2658 Avoid local function trampolines in nm binary. 2659 * nm.c (sort_by_address): Move to a static function instead of local 2660 inside show_symbols. 2661 (sort_by_name_strtab): New static variable. 2662 (sort_by_name): Use it. Move to a static function instead of local 2663 inside show_symbols. 2664 (show_symbols): Set sort_by_name_strtab. 2665 26662007-08-19 Roland McGrath <roland@redhat.com> 2667 2668 * readelf.c (handle_auxv_note): New function. 2669 (handle_notes): Call it. 2670 2671 * readelf.c (printf_with_wrap, convert): New functions. 2672 (handle_core_item, (handle_core_register): New functions. 2673 (handle_notes): Call those with details from ebl_core_note. 2674 26752007-08-12 Roland McGrath <roland@redhat.com> 2676 2677 * elflint.c (check_note): Accept type 0 with name "Linux". 2678 2679 * elflint.c (special_sections): Accept SHF_ALLOC for ".note". 2680 2681 * elflint.c (section_flags_string): Return "none" for 0, not "". 2682 26832007-08-11 Roland McGrath <roland@redhat.com> 2684 2685 * elflint.c (check_note): Accept NT_GNU_HWCAP, NT_GNU_BUILD_ID. 2686 26872007-08-04 Ulrich Drepper <drepper@redhat.com> 2688 2689 * readelf.c (hex_dump): Use isprint to determine whether to print 2690 character itself or full stop character. 2691 (dump_data): No need to check endp for NULL after strtol call. 2692 26932007-08-03 Roland McGrath <roland@redhat.com> 2694 2695 * readelf.c (print_string_sections): New variable. 2696 (options, parse_opt): Handle --strings/-p to set it. 2697 (print_strings): New function. 2698 (process_elf_file): Call it under -p. 2699 2700 * readelf.c (options): Add hidden aliases --segments, --sections, 2701 as taken by binutils readelf. 2702 27032007-08-01 Roland McGrath <roland@redhat.com> 2704 2705 * readelf.c (dump_data_sections, dump_data_sections_tail): 2706 New variables. 2707 (options, parse_opt): Handle --hex-dump/-x, set them. 2708 (hex_dump): New function. 2709 (dump_data): New function, call it. 2710 (process_elf_file): Call it. 2711 27122007-07-25 Roland McGrath <roland@redhat.com> 2713 2714 * addr2line.c (show_symbols): New variable. 2715 (print_addrsym): New function. 2716 (handle_address): Call it. 2717 (options, parse_opt): Handle -S/--symbols. 2718 27192007-06-05 Ulrich Drepper <drepper@redhat.com> 2720 2721 * addr2line.c: Update for latest autoconf header. 2722 * ar.c: Likewise. 2723 * elfcmp.c: Likewise. 2724 * elflint.c: Likewise. 2725 * findtextrel.c: Likewise. 2726 * ld.c: Likewise. 2727 * ldgeneric.c: Likewise. 2728 * nm.c: Likewise. 2729 * objdump.c: Likewise. 2730 * ranlib.c: Likewise. 2731 * readelf.c: Likewise. 2732 * size.c: Likewise. 2733 * strings.c: Likewise. 2734 * strip.c: Likewise. 2735 * unstrip.c: Likewise. 2736 27372007-05-18 Roland McGrath <roland@redhat.com> 2738 2739 * unstrip.c (copy_elided_sections): Match up non-NOBITS sections with 2740 stripped file, so as not to duplicate a section copied in both. 2741 2742 * strip.c (handle_elf): Keep SHT_NOTE section copies in the debug file. 2743 27442007-05-17 Roland McGrath <roland@redhat.com> 2745 2746 * unstrip.c (copy_elided_sections): Don't call gelf_newphdr for 0. 2747 2748 * unstrip.c (handle_file): Tweak BIAS != 0 warning. 2749 2750 * unstrip.c (handle_file): Take new arg CREATE_DIRS. If set, 2751 call make_directories here. 2752 (handle_explicit_files): Take new arg CREATE_DIRS, pass it down. 2753 (handle_dwfl_module): Likewise. 2754 (handle_implicit_modules): Update callers. 2755 (handle_output_dir_module): Likewise. Don't do make_directories here. 2756 2757 * unstrip.c (get_section_name): New function, broken out of ... 2758 (copy_elided_sections): here. Update callers. 2759 (find_alloc_section): Broken out of ... 2760 (copy_elided_sections): ... here. Update caller. 2761 (symtab_count_leading_section_symbols): Take new arg NEWSYMDATA, 2762 update STT_SECTION symbols' st_value fields as a side effect. 2763 (check_symtab_section_symbols): Update caller. 2764 (add_new_section_symbols): Set st_value in symbols added. 2765 (collect_symbols): Reset S->value for STT_SECTION symbols recorded. 2766 Take new arg SPLIT_BSS. Adjust S->shndx recorded for symbols moved 2767 from .bss to .dynbss. 2768 (find_alloc_sections_prelink): New function. Associate debug file 2769 allocated SHT_NOBITS shdrs with stripped moved by prelink via 2770 .gnu.prelink_undo information. 2771 (copy_elided_sections): Call it when we couldn't find every allocated 2772 section. Don't use a debug file non-NOBITS section if SHF_ALLOC. 2773 Take STRIPPED_EHDR arg instead of E_TYPE and PHNUM. 2774 (handle_file): Update callers. 2775 2776 * unstrip.c (copy_elided_sections): Ignore unfound unallocated section 2777 named ".comment". 2778 2779 * elflint.c (check_sections): Fix association of segments with 2780 sections when p_memsz > p_filesz. 2781 27822007-04-29 Roland McGrath <roland@redhat.com> 2783 2784 * addr2line.c (options, main): Tweak argp group settings to fix 2785 usage output. 2786 27872007-04-28 Roland McGrath <roland@redhat.com> 2788 2789 * strip.c (handle_elf): Update debug file's SHT_NOBITS sections' 2790 sizes to match sections adjusted in the stripped file. 2791 27922007-04-24 Roland McGrath <roland@redhat.com> 2793 2794 * elfcmp.c (OPT_HASH_INEXACT): New macro. 2795 (hash_inexact): New variable. 2796 (options, parse_opt): Add --hash-inexact option to set it. 2797 (hash_content_equivalent): New function. 2798 (main): Call it for differing SHT_HASH sections under --hash-inexact. 2799 28002007-04-23 Roland McGrath <roland@redhat.com> 2801 2802 * unstrip.c: New file. 2803 * Makefile.am (bin_PROGRAMS): Add it. 2804 (unstrip_LDADD): New variable. 2805 2806 * strip.c (options): Allow --output for -o. 2807 28082007-02-15 Ulrich Drepper <drepper@redhat.com> 2809 2810 * readelf.c: Remove unused code. Add a few consts. 2811 28122007-02-15 Roland McGrath <roland@redhat.com> 2813 2814 * readelf.c (print_debug): Fix brainos in SHDR test. 2815 28162007-02-05 Roland McGrath <roland@redhat.com> 2817 2818 * ar.c: Include <limits.h>, since we use LONG_MAX. 2819 28202007-02-05 Ulrich Drepper <drepper@redhat.com> 2821 2822 * ar.c: Add ugly hack to work around gcc complaining that we 2823 ignore fchown's return value. 2824 (do_oper_insert): Handle error when writing padding. 2825 * ranlib.c: Add fchown complain work around. 2826 2827 * arlib.c: Make symtab a global variable. Change all users. 2828 * arlib2.c: Likewise. 2829 * ranlib.c: Likewise. 2830 * ar.c: Likewise. 2831 * arlib.h: Declare it. 2832 28332007-01-11 Roland McGrath <roland@redhat.com> 2834 2835 * elflint.c (check_sections): Use ebl_machine_section_flag_check on 2836 SHF_MASKPROC bits separately from generic sh_flags validation. 2837 28382007-02-04 Ulrich Drepper <drepper@redhat.com> 2839 2840 * ar.c: New file. 2841 * arlib.c: New file. 2842 * arlib2.c: New file. 2843 * arlib.h: New file. 2844 * Makefile (noinst_LIBRARIES): Add libar. 2845 (libar_a_SOURCES): Define. 2846 (ar_LDADD): Define. 2847 (CFLAGS_ar): Define. 2848 * ranlib.c: Change to use arlib. 2849 2850 * elflint.c (check_symtab): Work around GNU ld bug which omits 2851 sections but not symbols in those sections. 2852 28532007-01-10 Ulrich Drepper <drepper@redhat.com> 2854 2855 * addr2line.c: Update copyright year. 2856 * elfcmp.c: Likewise. 2857 * elflint.c: Likewise. 2858 * findtextrel.c: Likewise. 2859 * ld.c: Likewise. 2860 * nm.c: Likewise. 2861 * objdump.c: Likewise. 2862 * ranlib.c: Likewise. 2863 * readelf.c: Likewise. 2864 * size.c: Likewise. 2865 * strings.c: Likewise. 2866 * strip.c: Likewise. 2867 28682006-12-09 Ulrich Drepper <drepper@redhat.com> 2869 2870 * elflint.c (compare_hash_gnu_hash): New function. Report if the 2871 two hash tables have different content (module expected omission 2872 of undefined symbols). 2873 28742006-10-31 Roland McGrath <roland@redhat.com> 2875 2876 * elflint.c (check_program_header): Don't complain about 2877 p_filesz > p_memsz if p_memsz is zero and p_type is PT_NOTE. 2878 28792006-09-19 Jakub Jelinek <jakub@redhat.com> 2880 2881 * strip.c (process_file): Disallow -f on archives. 2882 28832006-10-09 Roland McGrath <roland@redhat.com> 2884 2885 * Makefile.am (libld_elf_i386.so): Use $(LINK), not $(CC). 2886 28872006-08-29 Roland McGrath <roland@redhat.com> 2888 2889 * Makefile.am (MAINTAINERCLEANFILES): New variable. 2890 2891 * readelf.c (handle_relocs_rel): Typo fix, test DESTSHDR properly. 2892 Reported by Christian Aichinger <Greek0@gmx.net>. 2893 2894 * elflint.c (valid_e_machine): Add EM_ALPHA. 2895 Reported by Christian Aichinger <Greek0@gmx.net>. 2896 28972006-08-08 Ulrich Drepper <drepper@redhat.com> 2898 2899 * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB. 2900 Keep track of which "high DT" entries are present. 2901 Check that either old or GNU-style hash table is present. 2902 If GNU-style hash table is used a symbol table is mandatory. 2903 Check that if any prelink entry is present all of them are. 2904 (check_gnu_hash): Only fail for undefined symbols in GNU-style hash 2905 table if they don't refer to functions. 2906 29072006-07-17 Roland McGrath <roland@redhat.com> 2908 2909 * elflint.c (struct version_namelist): Use GElf_Versym for `ndx' field. 2910 (add_version): Likewise for argument. 2911 (check_versym): Cast constant to GElf_Versym for comparison. 2912 29132006-07-12 Roland McGrath <roland@redhat.com> 2914 2915 * readelf.c (handle_gnu_hash): Add casts for machines where 2916 Elf32_Word != unsigned int. 2917 29182006-07-12 Ulrich Drepper <drepper@redhat.com> 2919 2920 * elflint.c (check_sysv_hash64): Fix printf format. 2921 29222006-07-11 Roland McGrath <roland@redhat.com> 2923 2924 * addr2line.c (options): English fix in -f doc string. 2925 2926 * addr2line.c (use_comp_dir): New variable. 2927 (options, parse_opt): Grok -A/--absolute to set it. 2928 (handle_address): If set, prepend dwfl_line_comp_dir results to 2929 relative file names. 2930 29312006-07-06 Ulrich Drepper <drepper@redhat.com> 2932 2933 * elflint.c: Adjust for latest new hash table format. 2934 * readelf.c: Likewise. 2935 2936 * elflint.c (check_versym): Ignore hidden bit when comparing version 2937 numbers. 2938 29392006-07-05 Ulrich Drepper <drepper@redhat.com> 2940 2941 * ldgeneric.c (ld_generic_create_outfile): Correctly recognize 2942 discarded COMDAT symbols. 2943 2944 * i386_ld.c (elf_i386_count_relocations): Lot of corrections. 2945 (elf_i386_create_relocations): Likewise. 2946 * ld.h (struct symbol): Add local and hidden bits. 2947 * ld.c (create_special_section_symbol): These synthsized symbols 2948 are local and hidden. 2949 * ldgeneric.c (file_process2): Check whether input file matches 2950 the emulation. 2951 (fillin_special_symbol): Create symbols as local and/or hidden 2952 if requested. 2953 (ld_generic_create_outfile): Make local copy of symbol. 2954 Don't hide global, defined symbols in dynamic symbol table unless 2955 requested. Synthetic symbols have no version information. 2956 2957 * elflint.c: Add support for checking 64-bit SysV-style hash tables. 2958 * readelf.c: Add support for printing 64-bit SysV-style hash tables. 2959 29602006-07-04 Ulrich Drepper <drepper@redhat.com> 2961 2962 * elflint.c (is_rel_dyn): Fix and extend DT_RELCOUNT/DT_RELACOUNT 2963 testing. 2964 29652006-07-03 Ulrich Drepper <drepper@redhat.com> 2966 2967 * elflint.c: Add testing of DT_GNU_HASH. 2968 * readelf.c: Implement showing histogram for DT_GNU_HASH section. 2969 2970 * Makefile.am: Add hacks to create dependency files for non-generic 2971 linker. 2972 29732006-06-12 Ulrich Drepper <drepper@redhat.com> 2974 2975 * ldgeneric.c (ld_generic_generate_sections): Don't create .interp 2976 section if creating a DSO and no interpreter is given. 2977 (ld_generic_create_outfile): Don't store reference to symbols in 2978 discarded COMDAT groups. Don't create PHDR and INTERP program header 2979 for DSO if no interpreter is specified. 2980 (create_verneed_data): Pretty printing. 2981 2982 * ldscript.y (content): If a DSO is created don't set default 2983 interpreter from linker script. 2984 2985 * i386_ld.c (elf_i386_count_relocations): Do not add relocations 2986 for symbols in discarded COMDAT groups. 2987 (elf_i386_create_relocations): Likewise. 2988 * ld.h (struct scninfo): Add unused_comdat. 2989 * ldgeneric.c (add_section): Also check group signature when 2990 matching COMDAT sections. 2991 (add_relocatable_file): Ignore symbols in COMDAT group which are 2992 discarded. 2993 2994 * elflint.c (check_one_reloc): For *_NONE relocs only check type 2995 and symbol reference. 2996 29972006-06-11 Ulrich Drepper <drepper@redhat.com> 2998 2999 * elflint.c (check_dynamic): Fix checking value of tags which are 3000 offsets in the string section. Make sure DT_STRTAB points to the 3001 section referenced in sh_link. 3002 3003 * ld.c (options): Add headers. Add short option 'R' for '--rpath'. 3004 3005 * ld.c: Recognize --eh-frame-hdr option. 3006 * ld.h (struct ld_state): Add eh_frame_hdr field. 3007 * ldgeneric.c (struct unw_eh_frame_hdr): Define. 3008 3009 * ldgeneric.c (add_section): Use ebl_sh_flags_combine instead of 3010 SH_FLAGS_COMBINE. 3011 (add_relocatable_file): Minor optimization of last change. 3012 (match_section): Don't preserve SHF_GROUP flag any longer. 3013 30142006-06-10 Ulrich Drepper <drepper@redhat.com> 3015 3016 * ld.c (parse_z_option): Recognize execstack and noexecstack. 3017 Handle record and ignore as position dependent options. 3018 (parse_z_option_2): Handle ignore and record here. 3019 * ld.h (struct ld_state): Add execstack field. 3020 * ldgeneric.c (add_relocatable_file): Recognize .note.GNU-stack 3021 sections. 3022 (ld_generic_create_outfile): Fix program header creation in native 3023 linker. Add PT_GNU_STACK program header. 3024 30252006-06-09 Ulrich Drepper <drepper@redhat.com> 3026 3027 * i386_ld.c (elf_i386_finalize_plt): Don't change symbol table entries 3028 for PLT entries if there is no local definition. 3029 3030 * ld.c (parse_option): Handle -z ignore like --as-needed and 3031 -z record like --no-as-needed. 3032 * ld.h (struct ld_state): Remove ignore_unused_dsos field. 3033 * ldgeneric.c (new_generated_scn): Always compute ndt_needed by 3034 looping over DSOs. When deciding about adding DT_NEEDED entries 3035 use ->as_needed instead of ignore_unused_dsos. 3036 30372006-05-31 Ulrich Drepper <drepper@redhat.com> 3038 3039 * ld.c: Recognize --as-needed and --no-as-needed options. 3040 * ld.h (struct usedfile): Add as_needed field. 3041 (struct ld_state): Likewise. 3042 * ldgeneric.c (ld_handle_filename_list): Copy as_needed flag from 3043 the list. 3044 * ldscript.y (filename_id_list): Split to correctly parse all 3045 combinations. 3046 (mark_as_needed): Fix loop. 3047 30482006-05-28 Ulrich Drepper <drepper@redhat.com> 3049 3050 * addr2line.c (print_dwarf_function): Use unsigned type for lineno 3051 and colno. 3052 30532006-05-27 Ulrich Drepper <drepper@redhat.com> 3054 3055 * readelf.c (handle_relocs_rela): Better notations for addon value. 3056 (print_ehdr): Distinguish e_ident[EI_VERSION] from e_version. 3057 30582006-04-04 Ulrich Drepper <drepper@redhat.com> 3059 3060 * addr2line.c: Update copyright year. 3061 * elfcmp.c: Likewise. 3062 * elflint.c: Likewise. 3063 * findtextrel.c: Likewise. 3064 * ld.c: Likewise. 3065 * nm.c: Likewise. 3066 * objdump.c: Likewise. 3067 * ranlib.c: Likewise. 3068 * readelf.c: Likewise. 3069 * size.c: Likewise. 3070 * strings.c: Likewise. 3071 * strip.c: Likewise. 3072 30732006-03-09 Roland McGrath <roland@redhat.com> 3074 3075 * Makefile.am (AM_LDFLAGS): New variable. 3076 30772006-03-01 Roland McGrath <roland@redhat.com> 3078 3079 * readelf.c (dwarf_tag_string, dwarf_attr_string): Update name tables 3080 for dwarf.h changes matching 3.0 spec. 3081 (dwarf_encoding_string, dwarf_lang_string, print_ops): Likewise. 3082 30832005-12-04 Ulrich Drepper <drepper@redhat.com> 3084 3085 * elflint.c (check_one_reloc): If relocation section is not loaded, 3086 don't check whether the relocations modify read-only sections or 3087 loaded and unloaded sections. 3088 30892005-11-28 Ulrich Drepper <drepper@redhat.com> 3090 3091 * elflint.c (check_one_reloc): Take additional parameters. Use 3092 them to determine whether relocation is valid in this type of 3093 file. DSOs and executables can contain relocation sections in 3094 unloaded sections which just show the relocations the linker 3095 applied. Adjust all callers. 3096 (check_program_header): Check that PT_PHDR is loaded and that offset 3097 matches the one in the ELF header. 3098 30992005-10-26 Roland McGrath <roland@redhat.com> 3100 3101 * nm.c (get_var_range): dwarf_getloclist -> dwarf_getlocation. 3102 31032005-09-03 Ulrich Drepper <drepper@redhat.com> 3104 3105 * strip.c (handle_elf): Unify some error messages. 3106 * ld.c (main): Likewise. 3107 * ldgeneric.c (open_elf): Likewise. 3108 * elfcmp.c (main): Likewise. 3109 * elflint.c (check_elf_header): Likewise. 3110 3111 * size.c (process_file): Fix typo in error message. 3112 3113 * readelf.c: Lots of little cleanups. Use _unlocked functions. 3114 31152005-09-02 Ulrich Drepper <drepper@redhat.com> 3116 3117 * strings.c (main): Reset elfmap variable after munmap call. 3118 [_MUDFLAP] (map_file): Simplify mudflap debugging by not using mmap. 3119 31202005-08-28 Ulrich Drepper <drepper@redhat.com> 3121 3122 * ranlib.c: Don't define pread_retry and write_retry here. 3123 3124 * Makefile.an [BUILD_STATIC] (libdw): Add -ldl. 3125 (CLEANFILES): Add *.gcno *.gcda *.gconv. 3126 3127 * strings.c (process_chunk): Reorder expressions in conditional 3128 (process_chunk_mb): Likewise. 3129 3130 * strings.c: New file. 3131 * Makefile.am (bin_PROGRAMS): Add strings. 3132 (strings_no_Wstring): Define. 3133 (strings_LDADD): Define. 3134 31352005-08-27 Roland McGrath <roland@redhat.com> 3136 3137 * addr2line.c (dwarf_diename_integrate): Function removed. 3138 (print_dwarf_function): Use plain dwarf_diename. 3139 31402005-08-24 Ulrich Drepper <drepper@redhat.com> 3141 3142 * elflint.c (check_versym): Versioned symbols should not have 3143 local binding. 3144 31452005-08-15 Ulrich Drepper <drepper@redhat.com> 3146 3147 * elflint.c (check_versym): Allow VER_NDX_LOCAL symbols to be 3148 undefined. 3149 3150 * Makefile.am: Add rules to build ranlib. 3151 * ranlib.c: New file. 3152 31532005-08-14 Roland McGrath <roland@redhat.com> 3154 3155 * elflint.c (check_sections): Use ebl_section_type_name and allow any 3156 sh_type it recognizes. 3157 3158 * elflint.c (check_sections): Print unknown flags in hex, don't 3159 truncate high bits. Print section number and name for unknown type. 3160 31612005-08-13 Roland McGrath <roland@redhat.com> 3162 3163 * elflint.c (check_program_header): Use ebl_segment_type_name and 3164 allow any p_type it recognizes. Include p_type value in error 3165 message for unknown type. 3166 31672005-08-13 Ulrich Drepper <drepper@redhat.com> 3168 3169 * elflint.c (check_symtab): Simplify last change a bit. Pass ehdr 3170 to ebl_check_special_symbol. 3171 (check_sections): Pass ehdr to ebl_bss_plt_p. 3172 31732005-08-12 Roland McGrath <roland@redhat.com> 3174 3175 * elflint.c (check_symtab): Check that _GLOBAL_OFFSET_TABLE_ st_shndx 3176 refers to the right section if it's not SHN_ABS. 3177 Let ebl_check_special_symbol override _G_O_T_ value and size checks. 3178 3179 * elflint.c (check_sections): Don't complain about a non-NOBITS 3180 section taking no segment space, if it's sh_size is 0. 3181 3182 * elflint.c (check_sections): Use ebl_bss_plt_p to see if .plt should 3183 be PROGBITS or NOBITS. 3184 3185 * elflint.c (check_symtab): Use ebl_check_special_symbol to override 3186 standard st_value and st_size checks. 3187 31882005-07-28 Roland McGrath <roland@redhat.com> 3189 3190 * addr2line.c (options, parse_opt): Don't handle -e here. 3191 (executable): Variable removed. 3192 (argp_children): New static variable. 3193 (argp): Use it. Make const. 3194 (main): Fill in argp_children from dwfl_standard_argp (). 3195 Let libdwfl handle file selection, pass Dwfl handle to handle_address. 3196 (print_dwarf_function): New function. Try to figure out inline chain. 3197 (elf_getname): Function removed, libdwfl does it for us. 3198 (handle_address): Take Dwfl handle instead of Elf, Dwarf handles. 3199 Use dwfl_module_addrname instead of elf_getname. 3200 Use dwfl_module_getsrc and dwfl_lineinfo instead of libdw calls. 3201 * Makefile.am (INCLUDES): Add libdwfl directory to path. 3202 32032005-08-10 Ulrich Drepper <drepper@redhat.com> 3204 3205 * strip.c (parse_opt): STATE parameter is now used. 3206 Various little cleanups. 3207 3208 * readelf.c (print_debug_line_section): Correct fallout of renaming 3209 of DW_LNS_set_epilog_begin. 3210 32112005-08-08 Roland McGrath <roland@redhat.com> 3212 3213 * strip.c (options, parse_opt): Grok -R .comment for compatibility 3214 with binutils strip. Likewise -d, -S, as aliases for -g. 3215 Likewise ignore -s/--strip-all. 3216 32172005-08-07 Roland McGrath <roland@redhat.com> 3218 3219 * strip.c (process_file): Open read-only when using a different output 3220 file. 3221 32222005-08-06 Ulrich Drepper <drepper@redhat.com> 3223 3224 * elflint.c (in_nobits_scn): New function. 3225 (check_versym): Allow references for defined symbols against versions 3226 of other DSOs also for symbols in nobits sections. 3227 Move a few variables around. 3228 3229 * Makefile.am (AM_CFLAGS): Avoid duplication. 3230 Link with statis libs if BUILD_STATIC. 3231 32322005-08-05 Ulrich Drepper <drepper@redhat.com> 3233 3234 * elflint.c: Many, many more tests. Mostly related to symbol 3235 versioning. Those sections should now be completely checked. 3236 3237 * readelf.c (print_dynamic): Use gelf_offscn. 3238 32392005-08-04 Ulrich Drepper <drepper@redhat.com> 3240 3241 * elflint.c: Add lots more tests: more extension symbol table sanity, 3242 versioning section tests, hash table tests. General cleanup. 3243 32442005-08-02 Ulrich Drepper <drepper@redhat.com> 3245 3246 * objdump.c: New file. 3247 * Makefile.am (bin_PROGRAMS): Add objdump. 3248 (objdump_LDADD): Define. 3249 3250 * elflint.c (check_reloc_shdr): New function split out from check_rela 3251 and check_rel. 3252 (check_one_reloc): New function. Likewise. 3253 (check_rela): Use check_reloc_shdr and check_one_reloc. 3254 (check_rel): Likewise. 3255 (check_program_header): Check that PT_DYNAMIC entry matches .dynamic 3256 section. 3257 Add checks that relocations against read-only segments are flagged, 3258 that the text relocation flag is not set unnecessarily, and that 3259 relocations in one section are either against loaded or not-loaded 3260 segments. 3261 32622005-08-01 Ulrich Drepper <drepper@redhat.com> 3263 3264 * elfcmp.c (main): Ignore section count and section name string table 3265 section index. 3266 32672005-07-27 Roland McGrath <roland@redhat.com> 3268 3269 * elfcmp.c: Include <locale.h>. 3270 32712005-07-27 Ulrich Drepper <drepper@redhat.com> 3272 3273 * elfcmp.c: Print name and index of differing section. 3274 32752005-07-24 Ulrich Drepper <drepper@redhat.com> 3276 3277 * elfcmp.c: Implement comparing gaps between sections. 3278 32792005-07-23 Ulrich Drepper <drepper@redhat.com> 3280 3281 * elflint.c: Include libeblP.h instead of libebl.h. 3282 * nm.c: Likewise. 3283 * readelf.c: Likewise. 3284 * elfcmp.c: Likewise. 3285 3286 * elfcmp.c (main): Compare individual ELF header fields, excluding 3287 e_shoff instead of the whole struct at once. 3288 Use ebl_section_strip_p instead of SECTION_STRIP_P. 3289 * strip.c: Use ebl_section_strip_p instead of SECTION_STRIP_P. 3290 32912005-07-22 Ulrich Drepper <drepper@redhat.com> 3292 3293 * elfcmp.c (main): Take empty section into account when comparing 3294 section content. 3295 3296 * elflint.c (check_dynamic): Check that d_tag value is >= 0 before 3297 using it. 3298 32992005-07-21 Ulrich Drepper <drepper@redhat.com> 3300 3301 * elfcmp.c: New file. 3302 * Makefile.am (bin_PROGRAMS): Add elfcmp. 3303 (elfcmp_LDADD): Define. 3304 3305 * elflint.c (check_rela): Check that copy relocations only reference 3306 object symbols or symbols with unknown type. 3307 (check_rel): Likewise. 3308 33092005-06-08 Roland McGrath <roland@redhat.com> 3310 3311 * readelf.c (print_ops): Add consts. 3312 33132005-05-31 Roland McGrath <roland@redhat.com> 3314 3315 * readelf.c (print_debug_abbrev_section): Don't bail after first CU's 3316 abbreviations. Print a header line before each CU section. 3317 3318 * readelf.c (print_debug_loc_section): Fix indentation for larger 3319 address size. 3320 33212005-05-30 Roland McGrath <roland@redhat.com> 3322 3323 * readelf.c (print_debug_line_section): Print section offset of each 3324 CU's table, so they are easy to find from seeing the stmt_list value. 3325 3326 * readelf.c (dwarf_attr_string): Add all attributes in <dwarf.h>. 3327 (attr_callback): Grok DW_AT_ranges and print offset in hex. 3328 3329 * readelf.c (attr_callback): Add 2 to addrsize * 2 for %#0* format. 3330 (print_debug_ranges_section, print_debug_loc_section): Likewise. 3331 3332 * readelf.c (print_ops): Take different args for indentation control. 3333 (attr_callback): Caller updated. 3334 Grok several more block-form attributes as being location expressions. 3335 For those same attributes with udata forms, format output differently 3336 for location list offset. 3337 (print_debug_loc_section): Implement it for real. 3338 3339 * readelf.c (options): Mention ranges for --debug-dump. 3340 (enum section_e): Add section_ranges. 3341 (parse_opt): Grok "ranges" for -w/--debug-dump. 3342 (print_debug_ranges_section): New function. 3343 (print_debug): Handle .debug_ranges section. 3344 33452005-05-30 Ulrich Drepper <drepper@redhat.com> 3346 3347 * readelf.c (handle_notes): At least x86-64 need not have the note 3348 section values aligned to 8 bytes. 3349 33502005-05-18 Ulrich Drepper <drepper@redhat.com> 3351 3352 * readelf.c (dwarf_tag_string): Add new tags. 3353 33542005-05-08 Roland McGrath <roland@redhat.com> 3355 3356 * strip.c (handle_elf): Don't translate hash and versym data formats, 3357 elf_getdata already did it for us. 3358 33592005-05-07 Ulrich Drepper <drepper@redhat.com> 3360 3361 * Makefile.am (findtextrel_LDADD): Add $(libmudflap). 3362 (addr2line_LDADD): Likewise. 3363 33642005-05-03 Roland McGrath <roland@redhat.com> 3365 3366 * strip.c (handle_elf): Apply symbol table fixups to discarded 3367 relocation sections when they are being saved in the debug file. 3368 3369 * strip.c (handle_elf): Pass EHDR->e_ident[EI_DATA] to gelf_xlatetom 3370 and gelf_xlatetof, not the native byte order. 3371 3372 * strip.c (parse_opt): Give error if -f or -o is repeated. 3373 (main): Exit if argp_parse returns nonzero. 3374 3375 * strip.c (debug_fname_embed): New variable. 3376 (options, parse_opt): New option -F to set it. 3377 33782005-05-07 Ulrich Drepper <drepper@redhat.com> 3379 3380 * readelf.c (parse_opt): Make any_control_option variable 3381 local. Simplify some tests. 3382 33832005-05-03 Roland McGrath <roland@redhat.com> 3384 3385 * strip.c (crc32_file): Function removed (now in ../lib). 3386 33872005-05-03 Roland McGrath <roland@redhat.com> 3388 3389 * elflint.c (is_debuginfo): New variable. 3390 (options, parse_opt): New option --debuginfo/-d to set it. 3391 (check_sections): If is_debuginfo, don't complain about SHT_NOBITS. 3392 (check_note): If is_debuginfo, don't try to get note contents. 3393 33942005-04-24 Ulrich Drepper <drepper@redhat.com> 3395 3396 * readelf.c (print_debug_abbrev_section): Don't print error when end of 3397 section reached. 3398 33992005-04-14 Ulrich Drepper <drepper@redhat.com> 3400 3401 * readelf.c (dwarf_encoding_string): New function. 3402 (dwarf_inline_string): New function. 3403 (dwarf_access_string): New function. 3404 (dwarf_visibility_string): New function. 3405 (dwarf_virtuality_string): New function. 3406 (dwarf_identifier_case_string): New function. 3407 (dwarf_calling_convention_string): New function. 3408 (dwarf_ordering_string): New function. 3409 (dwarf_discr_list_string): New function. 3410 (attr_callback): Decode man more attribute values. 3411 34122005-04-01 Ulrich Drepper <drepper@redhat.com> 3413 3414 * addr2line.c: Finish implementation of -f option. 3415 34162005-03-29 Ulrich Drepper <drepper@redhat.com> 3417 3418 * addr2line.c: New file. 3419 * Makefile.am (bin_PROGRAMS): Add addr2line. 3420 Define addr2line_LDADD. 3421 3422 * findtextrel.c: Use new dwarf_addrdie function. 3423 3424 * findtextrel.c: Fix usage message and re-add accidentally removed 3425 line. 3426 34272005-03-28 Ulrich Drepper <drepper@redhat.com> 3428 3429 * findtextrel.c: New file. 3430 * Makefile: Add rules to build findtextrel. 3431 34322005-02-15 Ulrich Drepper <drepper@redhat.com> 3433 3434 * ldlex.l: Provide ECHO definition to avoid warning. 3435 3436 * elflint.c (check_program_header): Fix typo in RELRO test. 3437 3438 * Makefile.am (AM_CFLAGS): Add more warning options. 3439 * elflint.c: Fix warnings introduced by the new warning options. 3440 * i386_ld.c: Likewise. 3441 * ld.c: Likewise. 3442 * ld.h: Likewise. 3443 * ldgeneric.c: Likewise. 3444 * nm.c: Likewise. 3445 * readelf.c: Likewise. 3446 * sectionhash.c: Likewise. 3447 * size.c: Likewise. 3448 * string.c: Likewise. 3449 34502005-02-05 Ulrich Drepper <drepper@redhat.com> 3451 3452 * Makefile.am: Check for text relocations in constructed DSOs. 3453 3454 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. Link all apps 3455 with -lmudflap. 3456 3457 * ldscript.y: Add as_needed handling. 3458 * ldlex.l: Recognize AS_NEEDED token. 3459 * ld.h (struct filename_list): Add as_needed flag. 3460 34612005-02-04 Ulrich Drepper <drepper@redhat.com> 3462 3463 * elflint.c (check_symtab): Correctly determine size of GOT section. 3464 34652005-01-19 Ulrich Drepper <drepper@redhat.com> 3466 3467 * ld.c: Remove unnecessary more_help function. Print bug report 3468 address using argp. 3469 * strip.c: Likewise. 3470 * size.c: Likewise. 3471 * nm.c: Likewise. 3472 * readelf.c: Likewise. 3473 * elflint.c: Likewise. 3474 3475 * elflint.c (main): Don't check for parameter problems here. 3476 (parse_opt): Do it here, where we get informed about some of them 3477 anyway. 3478 3479 * readelf.c (main): Don't check for parameter problems here. 3480 (parse_opt): Do it here, where we get informed about some of them 3481 anyway. 3482 34832005-01-11 Ulrich Drepper <drepper@redhat.com> 3484 3485 * strip.c: Update copyright year. 3486 * readelf.c: Likewise. 3487 * size.c: Likewise. 3488 * nm.c: Likewise. 3489 * ld.c: Likewise. 3490 * elflint.c: Likewise. 3491 3492 * elflint.c (check_symtab): Don't warn about wrong size for 3493 _DYNAMIC and __GLOBAL_OFFSET_TABLE__ for --gnu-ld. 3494 34952004-10-05 Ulrich Drepper <drepper@redhat.com> 3496 3497 * readelf.c (print_phdr): In section mapping, also indicate 3498 sections in read-only segments. 3499 35002004-09-25 Ulrich Drepper <drepper@redhat.com> 3501 3502 * readelf.c: Make compile with gcc 4.0. 3503 * strip.c: Likewise. 3504 35052004-08-16 Ulrich Drepper <drepper@redhat.com> 3506 3507 * strip.c (handle_elf): Rewrite dynamic memory handling to use of 3508 allocate to work around gcc 3.4 bug. 3509 35102004-01-25 Ulrich Drepper <drepper@redhat.com> 3511 3512 * ldlex.l (invalid_char): Better error message. 3513 35142004-01-23 Ulrich Drepper <drepper@redhat.com> 3515 3516 * readelf.c: Print SHT_GNU_LIBLIST sections. 3517 3518 * none_ld.c: New file. 3519 35202004-01-21 Ulrich Drepper <drepper@redhat.com> 3521 3522 * Makefile.am: Enable building of machine specific linker. 3523 35242004-01-20 Ulrich Drepper <drepper@redhat.com> 3525 3526 * Makefile.am: Support building with mudflap. 3527 3528 * i386_ld.c: Fix warnings gcc 3.4 spits out. 3529 * ldgeneric.c: Likewise. 3530 * ldscript.y: Likewise. 3531 * readelf.c: Likewise. 3532 * strip.c: Likewise. 3533 3534 * readelf.c (print_debug_line_section): Determine address size 3535 correctly. 3536 35372004-01-19 Ulrich Drepper <drepper@redhat.com> 3538 3539 * readelf.c (print_phdr): Show which sections are covered by the 3540 PT_GNU_RELRO entry. 3541 3542 * elflint.c (check_program_header): Check PT_GNU_RELRO entry. 3543 3544 * readelf.c (print_debug_macinfo_section): Implement. 3545 35462004-01-18 Ulrich Drepper <drepper@redhat.com> 3547 3548 * readelf.c (print_debug_line_section): Implement. 3549 35502004-01-17 Ulrich Drepper <drepper@redhat.com> 3551 3552 * src/elflint.c: Use PACKAGE_NAME instead of PACKAGE. 3553 * src/ld.c: Likewise. 3554 * src/nm.c: Likewise. 3555 * src/readelf.c: Likewise. 3556 * src/size.c: Likewise. 3557 * src/strip.c: Likewise. 3558 3559 * strip.c: Add a few more unlikely. Reduce scope of some variables. 3560 3561 * Makefile.am: Support building with mudflap. 3562 35632004-01-16 Ulrich Drepper <drepper@redhat.com> 3564 3565 * readelf.c (print_debug_info_section): Free dies memory. 3566 3567 * readelf.c: Print .debug_info section content. 3568 35692004-01-13 Ulrich Drepper <drepper@redhat.com> 3570 3571 * readelf.c (print_shdr): Add support for SHF_ORDERED and SHF_EXCLUDE. 3572 35732004-01-12 Ulrich Drepper <drepper@redhat.com> 3574 3575 * readelf.c (print_debug_aranges): Implement using libdw. 3576 35772004-01-11 Ulrich Drepper <drepper@redhat.com> 3578 3579 * nm.c: Adjust for Dwarf_Files type and dwarf_lineno interface change. 3580 3581 * readelf.c: Use libdw instead of libdwarf. Not all of the old 3582 behavior is available yet. 3583 * Makefile.am: Link readelf with libdw. Remove libdwarf include path. 3584 35852004-01-09 Ulrich Drepper <drepper@redhat.com> 3586 3587 * nm.c (get_local_names): Adjust call to dwarf_nextcu. 3588 3589 * nm.c: Implement getting information about local variables. 3590 35912004-01-07 Ulrich Drepper <drepper@redhat.com> 3592 3593 * nm.c: Read also debug information for local symbols. 3594 35952004-01-05 Ulrich Drepper <drepper@redhat.com> 3596 3597 * nm.c: Shuffle dwarf handling code around so the maximum column 3598 width can be computed ahead of printing. Avoid collection symbols 3599 which are not printed anyway. 3600 3601 * nm.c: Rewrite dwarf handling to use libdw. 3602 * Makefile.am (AM_CFLAGS): Add -std parameter. 3603 (INCLUDES): Find header in libdw subdir. 3604 (nm_LDADD): Replace libdwarf with libdw. 3605 3606 * elflint.c: Update copyright year. 3607 * readelf.c: Likewise. 3608 * size.c: Likewise. 3609 * strip.c: Likewise. 3610 * nm.c: Likewise. 3611 36122003-12-31 Ulrich Drepper <drepper@redhat.com> 3613 3614 * strip.c (process_file): Close file before returning. 3615 36162003-11-19 Ulrich Drepper <drepper@redhat.com> 3617 3618 * readelf.c (handle_dynamic): Make column for tag name wider. 3619 36202003-09-29 Ulrich Drepper <drepper@redhat.com> 3621 3622 * readelf.c (handle_dynamic): Always terminate tag name with a space. 3623 36242003-09-25 Ulrich Drepper <drepper@redhat.com> 3625 3626 * strip.c (process_file): Don't mmap the input file, we modify the 3627 data structures and don't want the change end up on disk. 3628 36292003-09-23 Jakub Jelinek <jakub@redhat.com> 3630 3631 * unaligned.h (union u_2ubyte_unaligned, 3632 union u_4ubyte_unaligned, union u_8ubyte_unaligned): Add 3633 packed attribute. 3634 (add_2ubyte_unaligned, add_4ubyte_unaligned, 3635 add_8ubyte_unaligned): Avoid nesting bswap_NN macros. 3636 Read/store value through _ptr->u instead of *_ptr. 3637 36382003-09-22 Ulrich Drepper <drepper@redhat.com> 3639 3640 * size.c (show_sysv): Change type of maxlen to int. 3641 3642 * strip.c (handle_elf): Handle the 64-bit archs which is 64-bit 3643 buckets. 3644 3645 * i386_ld.c: Many many fixes and extensions. 3646 * ld.c: Likewise. 3647 * ldgeneric.c: Likewise. 3648 36492003-08-16 Ulrich Drepper <drepper@redhat.com> 3650 3651 * ldgeneric.c (check_definition): Don't add symbol on dso_list if 3652 the reference is from another DSO. 3653 36542003-08-15 Ulrich Drepper <drepper@redhat.com> 3655 3656 * ldgeneric.c (find_entry_point): It is no fatal error if no entry 3657 point is found when creating a DSO. 3658 36592003-08-14 Ulrich Drepper <drepper@redhat.com> 3660 3661 * ld.c (main): Always call FLAG_UNRESOLVED. 3662 * ldgeneric.c (ld_generic_flag_unresolved): Only complain about 3663 undefined symbols if not creating DSO or ld_state.nodefs is not set. 3664 36652003-08-13 Ulrich Drepper <drepper@redhat.com> 3666 3667 * Makefile.in: Depend on libebl.a, not libebl.so. 3668 3669 * ld.c (main): Mark stream for linker script as locked by caller. 3670 (read_version_script): Likewise. 3671 * ldlex.c: Define fread and fwrite to _unlocked variant. 3672 3673 * i386_ld.c (elf_i386_finalize_plt): Replace #ifdefs with uses of 3674 target_bswap_32. 3675 * unaligned.h: Define target_bswap_16, target_bswap_32, and 3676 target_bswap_64. 3677 (store_2ubyte_unaligned, store_4ubyte_unaligned, 3678 store_8ubyte_unaligned): Define using new macros. 3679 36802003-08-12 Ulrich Drepper <drepper@redhat.com> 3681 3682 * i386_ld.c (elf_i386_finalize_plt): Use packed structs to access 3683 possibly unaligned memory. Support use of big endian machines. 3684 36852003-08-11 Ulrich Drepper <drepper@redhat.com> 3686 3687 * Moved to CVS archive. 3688