aboutsummaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)AuthorFilesLines
2015-01-13Automatic date update in version.inGDB Administrator1-1/+1
2015-01-12Fix GDB crash caused by discarding grouped debug sectionsTerry Guo2-6/+57
Keep a group containing just debug sections or the other special sections we currently mark against garbage collection. * elflink.c (_bfd_elf_gc_mark_debug_special_section_group): New function. (_bfd_elf_gc_mark_extra_sections): Use it.
2015-01-12Fix build without makeinfo from release binutils tarAlan Modra3-4/+62
PR 17817 * Makefile.am (aoutx.stamp): cp -p $srcdir/aoutx.texi to keep timestamps so that makeinfo need not be installed. (archive.stamp, archures.stamp, bfdt.stamp, cache.stamp, coffcode.stamp, core.stamp, elf.stamp, elfcode.stamp, mmo.stamp, format.stamp, libbfd.stamp, bfdio.stamp, bfdwin.stamp, opncls.stamp, reloc.stamp, section.stamp, syms.stamp, targets.stamp, init.stamp, hash.stamp, linker.stamp): Similarly. (bfdver.texi): Use test rather than [ ] in commands. * Makefile.in: Regenerate.
2015-01-12Automatic date update in version.inGDB Administrator1-1/+1
2015-01-11Only discard space for pc-relative relocs symbolsH.J. Lu2-3/+20
When building PIE, we should only discard space for pc-relative relocs symbols which turn out to need copy relocs. bfd/ PR ld/17827 * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): For PIE, only discard space for pc-relative relocs symbols which turn out to need copy relocs. ld/testsuite/ PR ld/17827 * ld-x86-64/pr17689.out: Updated. * ld-x86-64/pr17689b.S: Likewise. * ld-x86-64/pr17827.rd: New file. * ld-x86-64/x86-64.exp: Run PR ld/17827 test.
2015-01-11Automatic date update in version.inGDB Administrator1-1/+1
2015-01-10Automatic date update in version.inGDB Administrator1-1/+1
2015-01-09Fixes a bug in the previous delat to tekhex.c which meant that valid tekhex ↵Nick Clifton2-2/+9
files were being rejected. * tekhex.c (getvalue): Fix thinko in test for correct extraction of value. (getsym): Return false if there was not enough data to extract the symbol.
2015-01-09Use official ELF machine number for moxieAnthony Green2-0/+5
2015-01-09Automatic date update in version.inGDB Administrator1-1/+1
2015-01-08Adds code to the MSP430 linker to transform a 4-byte BR instruction intoNick Clifton2-6/+64
a 2-byte JMP instruction, when this can be done safely. * elf32-msp430.c (msp430_elf_relax_section): Add relaxation of 16-bit absolute BR instructions to 10-bit pc-relative JMP instructions.
2015-01-08Fix memory access violations exposed by running strip on fuzzed binaries.Nick Clifton4-3/+29
PR binutils/17512 * coffcode.h (coff_slurp_symbol_table): Return false if we failed to load the line table. * elf.c (_bfd_elf_map_sections_to_segments): Enforce a minimum maxpagesize of 1. * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Fail if the Data Directory Size is too large. * objcopy.c (copy_object): Free the symbol table if no symbols could be loaded. (copy_file): Use bfd_close_all_done to close files that could not be copied.
2015-01-08Automatic date update in version.inGDB Administrator1-1/+1
2015-01-06Skip unknown relocationH.J. Lu3-3/+10
PR binutils/17512 * elf32-i386.c (elf_i386_get_plt_sym_val): Skip unknown relocation. * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
2015-01-07Automatic date update in version.inGDB Administrator1-1/+1
2015-01-06Another fix for an objdump crash when parsing a corrupt binary.Nick Clifton2-1/+6
PR binutils/17512 * mach-o.c (bfd_mach_o_read_symtab_strtab): Zero terminate the string table.
2015-01-06Fix memory access violations for objdump triggered by fuzzed binaries.Nick Clifton2-5/+12
PR binutils/17512 * reloc.c (bfd_get_reloc_size): Handle a reloc size of -1. (bfd_perform_relocation): Include the size of the reloc in the test for an out of range relocation. (bfd_generic_get_relocated_section_contents): Remove reloc range test.
2015-01-06Fixes for memory access violations in the coffdump program.Nick Clifton3-18/+30
PR binutils/17512 * coffdump.c (dump_coff_section): Check for a symbol being available before printing its name. (main): Check the return value from coff_grok. * coffgrok.c: Reformat and tidy. Add range checks to most functions. (coff_grok): Return NULL if the input bfd is not in a COFF format. * coffgrok.h: Reformat and tidy. (struct coff_section): Change the nrelocs field to unsigned. * srconv.c (main): Check the return value from coff_grok. * coff-i860.c (CALC_ADDEND): Always set an addend value. * tekhex.c (getvalue): Add an end pointer parameter. Use it to avoid reading off the end of the buffer. (getsym): Likewise. (first_phase): Likewise. (pass_over): Pass an end pointer to the invoked function.
2015-01-05Return NULL on corrupt inputH.J. Lu3-3/+16
PR binutils/17512 * elf32-i386.c (elf_i386_get_plt_sym_val): Return NULL on corrupt input. * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
2015-01-06Automatic date update in version.inGDB Administrator1-1/+1
2015-01-05More fixes for invalid memory accesses triggered by fuzzed binaries.Nick Clifton6-17/+79
PR binutils/17512 * nm.c (print_symbol): Add 'is_synthetic' parameter. Use it to help initialize the info.elfinfo field. (print_size_symbols): Add 'synth_count' parameter. Use it to set the is_synthetic parameter when calling print_symbol. (print_symbols): Likewise. (display_rel_file): Pass synth_count to printing function. (display_archive): Break loop if the last archive displayed matches the current archive. * size.c (display_archive): Likewise. * archive.c (do_slurp_bsd_armap): Make sure that the parsed sized is at least big enough for the header to be read. * elf32-i386.c (elf_i386_get_plt_sym_val): Skip unknown relocs. * mach-o.c (bfd_mach_o_get_synthetic_symtab): Add range checks. (bfd_mach_o_read_command): Prevetn duplicate error messages about unrecognized commands. * syms.c (_bfd_stab_section_find_nearest_line): Add range checks when indexing into the string table.
2015-01-05Automatic date update in version.inGDB Administrator1-1/+1
2015-01-04Automatic date update in version.inGDB Administrator1-1/+1
2015-01-03Automatic date update in version.inGDB Administrator1-1/+1
2015-01-02Regenerate Makeile.in file for copyright updateAlan Modra2-2/+2
2015-01-02Automatic date update in version.inGDB Administrator1-1/+1
2015-01-02ChangeLog rotatation and copyright year updateAlan Modra477-3895/+3913
2015-01-01Automatic date update in version.inGDB Administrator1-1/+1
2014-12-30Assign file position for .strtab only if neededH.J. Lu2-18/+26
bfd/ PR ld/17773 * elflink.c (bfd_elf_final_link): Assign the file position for the symbol string table only there are symbols to be emitted. ld/testsuite/ PR ld/17773 * ld-elf/binutils.exp (binutils_test): Add an optional readelf_options. Replace -l with $readelf_options. Add a gap test. * ld/testsuite/ld-elf/gap.s: New file.
2014-12-31Automatic date update in version.inGDB Administrator1-1/+1
2014-12-30Automatic date update in version.inGDB Administrator1-1/+1
2014-12-29Automatic date update in version.inGDB Administrator1-1/+1
2014-12-28Misplaced parenthesis calculates two too few bytes for stringAlan Modra2-3/+10
Factor out strlen to give better code and less likelihood of a repeat of this problem. PR 17766 * pei-x86_64.c (pex64_bfd_print_pdata_section): Correct string length. Use memcpy rather than strcpy.
2014-12-28Automatic date update in version.inGDB Administrator1-1/+1
2014-12-27Automatic date update in version.inGDB Administrator1-1/+1
2014-12-26Delete unnecessary code copying SHF_SH5_ISA32 flagAlan Modra2-21/+6
Since 2006, commit d270463e9, _bfd_elf_copy_private_section_data has copied over SHF_MASKOS and SHF_MASKPROC flags. That makes the buggy code in sh_elf64_copy_private_data_internal redundant. bfd/ PR 17755 * elf64-sh64.c (sh_elf64_copy_private_data_internal): Delete code copying SHF_SH5_ISA32. binutils/testsuite/ * binutils-all/strip-11.d: New test. * binutils-all/objcopy.exp: Run it.
2014-12-26Automatic date update in version.inGDB Administrator1-1/+1
2014-12-25ARM: Add support for value 3 of Tag_ABI_VFP_args attributeTerry Guo2-4/+16
*** bfd/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new Tag_ABI_VFP_args value and replace hardcoded values by enum values. (elf32_arm_post_process_headers): Set e_flags in ELF header as hard float only when Tag_ABI_VFP_args is 1, using new enum value AEABI_VFP_args_vfp to check that. *** binutils/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * readelf.c (arm_attr_tag_ABI_VFP_args): Add "compatible". *** gdb/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * arm-tdep.c (arm_gdbarch_init): Explicitely handle value 3 of Tag_ABI_VFP_args. Also replace hardcoded values by enum values in the switch handling the different values of Tag_ABI_VFP_args. *** gold/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * arm.cc (Target_arm::do_adjust_elf_header): Set e_flags in ELF header as hard float only when Tag_ABI_VFP_args is 1, using new enum value AEABI_VFP_args_vfp to check that. (Target_arm::merge_object_attributes): Handle new Tag_ABI_VFP_args value and replace hardcoded values by enum values. *** include/elf/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * arm.h: New AEABI_FP_number_model_* and AEABI_VFP_args_* enum values. *** ld/testsuite/ChangeLog *** 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> * ld-arm/attr-merge-2a.s: Add Tag_ABI_VFP_args. * ld-arm/attr-merge-2b.s: Likewise. * ld-arm/attr-merge-2.attr: Likewise. * ld-arm/attr-merge-4a.s: Add Tag_ABI_FP_number_model and Tag_ABI_VFP_args. * ld-arm/attr-merge-4b.s: Likewise. * ld-arm/attr-merge-4.attr: Likewise. * ld-arm/attr-merge-6a.s: Likewise. * ld-arm/attr-merge-6b.s: Likewise. * ld-arm/attr-merge-6.attr: Add Tag_ABI_FP_number_model.
2014-12-25Automatic date update in version.inGDB Administrator1-1/+1
2014-12-24Add cast to unsigned longH.J. Lu2-1/+7
* pei-x86_64.c (pex64_bfd_print_pdata_section): Add cast to unsigned long.
2014-12-24This patch adds support for printing out the pdata section of PE objects.Pierre Muller3-25/+126
* pe-x86_64.c (pex64_bfd_print_pdata): Add external declaration. (bfd_pe_print_data): Set macro to pex64_bfd_print_data. * pei-x86_64.c (pex64_bfd_print_pdata): Changed to global function. Now handles multiple .pdata sections. (pex_bfd_print_pdata_section): New static helper function, using most of old pex_bfd_print_pdata function code, but adding support for coff pe objects, which might have some fields starting at zero offset. (pex64_print_all_pdata_sections) : New static helper function, used in call to bfd_map_over_sections inside new pex66_bfd_print_pdata function. (bfd_boolean pdata_count): New static variable, used to return bfd_boolean value for pex64_bfd_print_pdata function.
2014-12-24Fix generic linker symbol output when weak is overridden by strongAlan Modra2-1/+6
Yes, I know this also affects bfd_link_hash_indirect, but output of indirect and warning symbols looks quite broken anyway. * linker.c (_bfd_generic_link_output_symbols): Remove BSF_WEAK flag from bfd_link_hash_defined symbols.
2014-12-24Automatic date update in version.inGDB Administrator1-1/+1
2014-12-23AVR: Only set link-relax elf flag when appropriate.Andrew Burgess2-1/+5
The AVR target uses a bit in the elf header flags to indicate if the object was assembled ready for linker relaxation. Previously this flag was always set, even when the object was not assembled ready for linker relaxation. This patch moves setting of the flag into the assembler, and sets it only when the assembler is preparing the file for linker relaxation. bfd/ChangeLog: * elf32-avr.c (bfd_elf_avr_final_write_processing): Don't set EF_AVR_LINKRELAX_PREPARED unconditionally. gas/ChangeLog: * config/tc-avr.c: Add include for elf/avr.h. (avr_elf_final_processing): New function. * config/tc-avr.h (elf_tc_final_processing): Define. (avr_elf_final_processing): Declare gas/testsuite/ChangeLog: * gas/avr/link-relax-elf-flag-clear.d: New file. * gas/avr/link-relax-elf-flag-set.d: New file. * gas/avr/link-relax-elf-flag.s: New file.
2014-12-23Use a symbol flag bit to mark linker defined symbolsAlan Modra3-0/+9
Trying to use the SEC_LINKER_CREATED section flag to determine whether a symbol is linker defined fails to work on targets like alpha that define special SEC_COMMON sections. These might contain symbols that originated in an object file. include/ * bfdlink.h (struct bfd_link_hash_entry): Comment non_ir_ref. Add linker_def. bfd/ * elflink.c (_bfd_elf_define_linkage_sym): Set linker_def. * linker.c (_bfd_generic_link_add_one_symbol): Clear linker_def for CDEF, DEF, DEFW, COM. ld/ * ldexp.c (exp_fold_tree_1 <etree_provide>): Test linker_def. ld/testsuite/ * ld-powerpc/sdabase.s, * ld-powerpc/sdabase.t, * ld-powerpc/sdabase.d: New test. * ld-powerpc/sdabase2.t, * ld-powerpc/sdabase2.d: New test. * ld-powerpc/powerpc.exp: Run them.
2014-12-23Automatic date update in version.inGDB Administrator1-1/+1
2014-12-22More fixes for memory access violations exposed by fuzzed binaries.Nick Clifton41-40/+279
PR binutils/17512 * archive.c (do_slurp_bsd_armap): Return if the parsed_size is zero. (bfd_slurp_armap): Zero terminate the name. (bfd_generic_stat_arch_elt): If there is no header, fail. * elf32-arc.c (arc_info_to_howto_rel): Replace BFD_ASSERT with error message. * elf32-avr.c (avr_info_to_howto_rela): Likewise. * elf32-cr16c.c (elf_cr16c_info_to_howto_rel): Likewise. * elf32-cris.c (cris_info_to_howto_rela): Likewise. * elf32-d10v.c (d10v_info_to_howto_rel): Likewise. * elf32-d30v.c (d30v_info_to_howto_rel): Likewise. * elf32-dlx.c (dlx_rtype_to_howto): Likewise. * elf32-epiphany.c (epiphany_info_to_howto_rela): Likewise. * elf32-fr30.c (fr30_info_to_howto_rela): Likewise. * elf32-frv.c (frv_info_to_howto_rela): Likewise. * elf32-i960.c (elf32_i960_info_to_howto_rel): Likewise. * elf32-ip2k.c (ip2k_info_to_howto_rela): Likewise. * elf32-iq2000.c (iq2000_info_to_howto_rela): Likewise. * elf32-lm32.c (lm32_info_to_howto_rela): Likewise. * elf32-m32c.c (m32c_info_to_howto_rela): Likewise. * elf32-m32r.c (m32r_info_to_howto_rel): Likewise. * elf32-m68hc11.c (m68hc11_info_to_howto_rel): Likewise. * elf32-m68hc12.c (m68hc11_info_to_howto_rel): Likewise. * elf32-mep.c (mep_info_to_howto_rela): Likewise. * elf32-metag.c (metag_info_to_howto_rela): Likewise. * elf32-moxie.c (moxie_info_to_howto_rela): Likewise. * elf32-msp430.c (msp430_info_to_howto_rela): Likewise. * elf32-mt.c (mt_info_to_howto_rela): Likewise. * elf32-nds32.c (nds32_info_to_howto_rel): Likewise. * elf32-or1k.c (or1k_info_to_howto_rela): Likewise. * elf32-rl78.c (rl78_info_to_howto_rela): Likewise. * elf32-rx.c (rx_info_to_howto_rela): Likewise. * elf32-v850.c (v850_elf_info_to_howto_rel): Likewise. * elf32-visium.c (visium_info_to_howto_rela): Likewise. * elf32-xgate.c (xgate_info_to_howto_rel): Likewise. * elf32-xtensa.c (elf_xtensa_info_to_howto_rela): Likewise. * elf64-mmix.c (mmix_info_to_howto_rela): Likewise. * elf64-x86-64.c (elf_x86_64_reloc_type_lookup): Likewise. * elfnn-aarch64.c (elfNN_aarch64_bfd_reloc_from_type): Likewise. * elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Add range checking of reloc symbol index. * mach-o.c (bfd_mach_o_canonicalize_one_reloc): If no symbols have been provided then set the reloc's symbol to undefined. * reloc.c (bfd_generic_get_relocated_section_contents): Add range checking of the reloc to be applied. * versados.c (process_otr): Add more range checks. (versados_canonicalize_reloc): If the section is unknown, set the symbol to undefined. * vms-alpha.c (_bfd_vms_slurp_eisd): Add range checks. (alpha_vms_object_p): Likewise.
2014-12-22Automatic date update in version.inGDB Administrator1-1/+1
2014-12-21Automatic date update in version.inGDB Administrator1-1/+1
2014-12-20Automatic date update in version.inGDB Administrator1-1/+1