summaryrefslogtreecommitdiffstats
path: root/binutils-2.25/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.25/bfd')
-rw-r--r--binutils-2.25/bfd/.gitignore40
-rw-r--r--binutils-2.25/bfd/ChangeLog429
-rw-r--r--binutils-2.25/bfd/Makefile.in2
-rw-r--r--binutils-2.25/bfd/archures.c1
-rw-r--r--binutils-2.25/bfd/bfd-in2.h1
-rwxr-xr-xbinutils-2.25/bfd/configure20
-rw-r--r--binutils-2.25/bfd/cpu-mips.c2
-rw-r--r--binutils-2.25/bfd/development.sh2
-rw-r--r--binutils-2.25/bfd/doc/Makefile.in2
-rw-r--r--binutils-2.25/bfd/elf-attrs.c4
-rw-r--r--binutils-2.25/bfd/elf32-arm.c41
-rw-r--r--binutils-2.25/bfd/elf32-avr.c39
-rw-r--r--binutils-2.25/bfd/elf32-i386.c2
-rw-r--r--binutils-2.25/bfd/elf32-spu.c14
-rw-r--r--binutils-2.25/bfd/elf64-ppc.c4
-rw-r--r--binutils-2.25/bfd/elf64-x86-64.c32
-rw-r--r--binutils-2.25/bfd/elfxx-mips.c34
-rw-r--r--binutils-2.25/bfd/version.h2
-rw-r--r--binutils-2.25/bfd/version.m42
19 files changed, 480 insertions, 193 deletions
diff --git a/binutils-2.25/bfd/.gitignore b/binutils-2.25/bfd/.gitignore
new file mode 100644
index 00000000..33161338
--- /dev/null
+++ b/binutils-2.25/bfd/.gitignore
@@ -0,0 +1,40 @@
+/bfd-in3.h
+/bfd.h
+/bfd_stdint.h
+/bfdver.h
+/elf32-ia64.c
+/elf32-target.h
+/elf64-ia64.c
+/elf64-target.h
+/libtool-soversion
+/ofiles
+/peigen.c
+/pepigen.c
+/pex64igen.c
+/stmp-bfd-h
+/targmatch.h
+
+/doc/aoutx.texi
+/doc/archive.texi
+/doc/archures.texi
+/doc/bfdio.texi
+/doc/bfdt.texi
+/doc/bfdver.texi
+/doc/bfdwin.texi
+/doc/cache.texi
+/doc/chew
+/doc/coffcode.texi
+/doc/core.texi
+/doc/elf.texi
+/doc/elfcode.texi
+/doc/format.texi
+/doc/hash.texi
+/doc/init.texi
+/doc/libbfd.texi
+/doc/linker.texi
+/doc/mmo.texi
+/doc/opncls.texi
+/doc/reloc.texi
+/doc/section.texi
+/doc/syms.texi
+/doc/targets.texi
diff --git a/binutils-2.25/bfd/ChangeLog b/binutils-2.25/bfd/ChangeLog
index c66bb1ac..f124354c 100644
--- a/binutils-2.25/bfd/ChangeLog
+++ b/binutils-2.25/bfd/ChangeLog
@@ -1,51 +1,185 @@
+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.
+
2015-07-23 Joseph Myers <joseph@codesourcery.com>
* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections)
<DT_MIPS_RLD_MAP_REL>: Add target address to host address
difference, not to host pointer.
- 2015-02-24 Nick Clifton <nickc@redhat.com>
+2015-04-01 Tejas Belagod <tejas.belagod@arm.com>
+ Marcus Shawcroft <marcus.shawcroft@arm.com>
+ Jiong Wang <jiong.wang@arm.com>
- * configure.ac (AC_CHECK_HEADERS): Add wctype.h.
- * configure: Regenerate.
- * config.in: Regenerate.
- * peXXigen.c: Include wctype.h if HAVE_WCTYPE_H is defined.
- (u16_mbtowc): Use wint_t types if HAVE_WCTYPE_H is defined.
- (rsrc_cmp): Use towlower instead of wcsncasecmp if HAVE_WCTYPE_H
- is defined.
+ * bfd-in.h (bfd_elf64_aarch64_set_options)
+ (bfd_elf32_aarch64_set_options): Add parameter.
+ * bfd-in2.h: Regenerated.
+ * elfnn-aarch64.c (aarch64_erratum_843419_stub)
+ (_bfd_aarch64_adrp_p, _bfd_aarch64_erratum_843419_sequence_p)
+ (_bfd_aarch64_erratum_843419_stub_name)
+ (_bfd_aarch64_erratum_843419_fixup)
+ (_bfd_aarch64_erratum_843419_scan)
+ (_bfd_aarch64_erratum_843419_branch_to_stub)
+ (_bfd_aarch64_erratum_843419_p): Define.
+ (enum elf_aarch64_stub_type): Define
+ aarch64_stub_erratum_843419_veneer.
+ (struct elf_aarch64_stub_hash_entry): Define adrp_offset.
+ (struct elf_aarch64_link_hash_table): Define fix_erratum_843419
+ and fix_erratum_843419_adr.
+ (stub_hash_newfunc): Initialize adrp_offset;
+ (_bfd_aarch64_add_stub_entry_after): Define.
+ (aarch64_map_one_stub, aarch64_build_one_stub)
+ (aarch64_size_one_stub): Handle
+ aarch64_stub_erratum_843419_veneer.
+ (_bfd_aarch64_resize_stubs): Round stub section size.
+ (elfNN_aarch64_size_stubs): Add scan for 843419.
+ (bfd_elfNN_aarch64_set_options): Add parameter. Initialize
+ fix_erratum_843419 and fix_erratum_843419_adr.
+ (struct erratum_835769_branch_to_stub_data): Add info.
+ (elfNN_aarch64_write_section): Initialise info. Handle 843419.
+ (elfNN_aarch64_size_dynamic_sections): Handle 843419.
+ * elfxx-aarch64.c (_bfd_aarch64_decode_adrp_imm)
+ (_bfd_aarch64_sign_extend): Define.
+ (reencode_adr_imm): Remove static. Rename to:
+ (_bfd_aarch64_reencode_adr_imm): Define.
+ (_bfd_aarch64_elf_put_addend): Call _bfd_aarch64_reencode_adr_imm.
+ * elfxx-aarch64.h (AARCH64_ADR_OP, AARCH64_ADRP_OP)
+ (AARCH64_ADRP_OP_MASK, _bfd_aarch64_sign_extend)
+ (_bfd_aarch64_decode_adrp_imm, _bfd_aarch64_reencode_adr_imm):
+ Define.
+
+2015-03-25 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (_bfd_aarch64_resize_stubs): Adjust stub section
+ size for initial branch.
+ (elfNN_aarch64_build_stubs): Write initial branch.
+ _bfd_aarch64_decode_(elfNN_aarch64_output_arch_local_syms): Write
+ mapping symbol on initial branch.
+
+2015-03-25 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (_bfd_aarch64_erratum_835769_scan):
+ Update erratum count.
+
+2015-03-24 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor
+ code into:
+ (_bfd_aarch64_get_stub_for_link_section): Define.
+
+2015-03-24 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Adjust
+ update of section_group[].stub_sec.
+
+2015-03-24 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (struct aarch64_erratum_835769_fix) Remove.
+ (erratum_835769_scan) Drop fix_table_size_p and fixes_p arguments.
+ Delete fixes, fix_table_size and associated code. Call
+ _bfd_aarch64_add_stub_entry_in_group. Rename to...
+ (bfd_aarch64_erratum_835769_scan): Define.
+ (elfNN_aarch64_size_stubs): Delete erratum_835769_fixes,
+ erratum_835769_fix_table_size, i and associated code. Relocate
+ call to _bfd_aarch64_erratum_835769_scan. Delete adhoc stub size
+ correction. Delete construction of stub entry from
+ erratum_835769_fixes array.
+
+2015-03-24 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Use
+ _bfd_aarch64_add_stub_entry_in_group.
+
+2015-03-23 Keith Seitz <keiths@redhat.com>
+
+ * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Add
+ missing ';'.
+
+2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Factor out
+ stub resize code into...
+ (bfd_aarch64_resize_stubs): Define.
+
+2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor stub
+ creation code into...
+ (bfd_aarch64_create_stub_section): Define.
+
+2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Rename
+ from elf_aarch64_create_or_find_stub_sec.
+ (_bfd_aarch64_add_stub_entry_in_group): Rename from
+ elfNN_aarch64_add_stub. Call
+ _bfd_aarch64_create_or_find_stub_sec.
+ (elfNN_aarch64_size_stubs, elfNN_aarch64_size_stubs): Call
+ _bfd_aarch64_add_stub_entry_in_group.
+
+2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (erratum_835769_scan) Add comment. Reverse
+ sense of boolean return.
+ (elfNN_aarch64_size_stubs): Adjust for above.
+
+2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * elfnn-aarch64.c (elf_aarch64_create_or_find_stub_sec):
+ Remove unused parameter.
+ (elfNN_aarch64_size_stubs): Adjust for above.
+
+2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
-2014-11-18 Igor Zamyatin <igor.zamyatin@intel.com>
+ * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Remove bfd_indx.
- * elf64-x86-64.c (elf_x86_64_check_relocs): Enable MPX PLT only
- for -z bndplt.
+2015-03-23 Marcus Shawcroft <marcus.shawcroft@arm.com>
-2014-11-17 Nick Clifton <nickc@redhat.com>
+ * elfnn-aarch64.c (aarch64_erratum_835769_fixes)
+ (num_aarch64_erratum_835769_fixes): Remove.
+ (elfNN_aarch64_size_stubs): Remove assignments to above.
- Apply trunk patches:
+2015-03-04 Marcus Shawcroft <marcus.shawcroft@arm.com>
- 2014-11-14 Nick Clifton <nickc@redhat.com>
+ * elfxx-aarch64.c (decode_add_imm, decode_movw_imm)
+ (decode_tst_branch_ofs_14, decode_ld_lit_ofs_19)
+ (decode_cond_branch_ofs_19, decode_branch_ofs_26): Remove.
+
+2014-11-14 Nick Clifton <nickc@redhat.com>
PR binutils/17597
* opncls.c (bfd_get_debug_link_info): Avoid reading off the end of
the section.
(bfd_get_alt_debug_link_info): Likewise.
- 2014-11-14 Nick Clifton <nickc@redhat.com>
+2014-11-14 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* ieee.c (ieee_archive_p) Skip processing if no bytes are read at
all.
(ieee_object_p): Likewise.
- 2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
+2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
* coffcode.h (coff_slurp_line_table): Add cast to unsigned int.
- 2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
+2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
* coffcode.h (coff_pointerize_aux_hook): Fix a typo.
- 2014-11-13 Nick Clifton <nickc@redhat.com>
+2014-11-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gas/17598
+ * elf64-x86-64.c (elf_x86_64_check_relocs): Treat
+ R_X86_64_GOTPLT64 the same as R_X86_64_GOT64.
+ (elf_x86_64_relocate_section): Likewise.
+
+2014-11-13 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* coffcode.h (coff_ptr_struct): Add is_sym field.
@@ -79,7 +213,7 @@
* libcoff.h: Regenerate.
* libcoff-in.h: Regenerate.
- 2014-11-12 Nick Clifton <nickc@redhat.com>
+2014-11-12 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* coffcode.h (coff_slurp_line_table): Set the line number of
@@ -92,13 +226,13 @@
* peXXigen.c (pe_print_idata): Add range checking displaying
member names.
- 2014-11-12 Alan Modra <amodra@gmail.com>
+2014-11-12 Alan Modra <amodra@gmail.com>
PR binutils/17512
* coffcode.h (coff_slurp_line_table): Drop line number info
not preceded by a valid function entry. Revert last change.
- 2014-11-11 Nick Clifton <nickc@redhat.com>
+2014-11-11 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* coffcode.h (coff_slurp_line_table): Initialise the parts of the
@@ -117,13 +251,13 @@
structure are initialised.
(pe_print_edata): Avoid reading off the end of the data buffer.
- 2014-11-11 Alan Modra <amodra@gmail.com>
+2014-11-11 Alan Modra <amodra@gmail.com>
PR binutils/17512
* coffcode.h (coff_slurp_line_table): Use updated lineno_count
when building func_table.
- 2014-11-11 Alan Modra <amodra@gmail.com>
+2014-11-11 Alan Modra <amodra@gmail.com>
PR binutils/17512
* coffcode.h (coff_slurp_line_table): Don't bfd_zalloc, just
@@ -135,7 +269,17 @@
copied, and free n_lineno_cache.
* pe-mips.c (NUM_HOWTOS): Typo fix.
- 2014-11-10 Nick Clifton <nickc@redhat.com>
+2014-11-11 Alan Modra <amodra@gmail.com>
+
+ * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Adjust section
+ size check to account for possible zero terminator.
+
+2014-11-10 James Cowgill <James.Cowgill@imgtec.com>
+
+ * elfxx-mips.c (_bfd_mips_elf_section_processing): don't force small
+ data sections to be PROGBITS
+
+2014-11-10 Nick Clifton <nickc@redhat.com>
PR binutils/17521
* coff-i386.c (NUM_HOWTOS): New define.
@@ -172,20 +316,26 @@
(pe_bfd_object_p): Allocate and initialize enough space to hold a
PEAOUTHDR, even if the opt_hdr field specified less.
- 2014-11-08 Alan Modra <amodra@gmail.com>
+2014-11-08 Alan Modra <amodra@gmail.com>
* peXXigen.c (pe_print_idata): Revert last patch, cast lhs instead.
- 2014-11-07 H.J. Lu <hongjiu.lu@intel.com>
+2014-11-07 H.J. Lu <hongjiu.lu@intel.com>
* peXXigen.c (pe_print_idata): Cast to unsigned long in range
checks.
- 2014-11-07 Alan Modra <amodra@gmail.com>
+2014-11-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/17482
+ * elf64-x86-64.c (elf_x86_64_relocate_section): Update comments
+ for IE->LE transition.
+
+2014-11-07 Alan Modra <amodra@gmail.com>
* tekhex.c (tekhex_set_arch_mach): Ignore unknown arch errors.
- 2014-11-07 Alan Modra <amodra@gmail.com>
+2014-11-07 Alan Modra <amodra@gmail.com>
* tekhex.c (CHUNK_SPAN): Define.
(struct data_struct <chunk_init>): Use one byte per span, update
@@ -201,11 +351,11 @@
(tekhex_set_section_contents): Don't create initial chunks.
(tekhex_write_object_contents): Use CHUNK_SPAN.
- 2014-11-07 Alan Modra <amodra@gmail.com>
+2014-11-07 Alan Modra <amodra@gmail.com>
* aoutx.h (aout_get_external_symbols): Tidy allocation of symbol buffer.
- 2014-11-07 Alan Modra <amodra@gmail.com>
+2014-11-07 Alan Modra <amodra@gmail.com>
* archive.c (_bfd_slurp_extended_name_table): Revert bfd_get_size check.
* coffcode.h (coff_set_alignment_hook): Likewise.
@@ -215,7 +365,7 @@
* elf.c (bfd_elf_get_str_section): Likewise.
* tekhex.c (first_phase): Likewise.
- 2014-11-06 Nick Clifton <nickc@redhat.com>
+2014-11-06 Nick Clifton <nickc@redhat.com>
* aoutx.h (slurp_symbol_table): Revert previous delta.
(slurp_reloc_table): Likewise.
@@ -224,7 +374,12 @@
* coffgen.c (coff_get_normalized_symtab): Allow zero-sized symtabs
and do not complain about linker generated files.
- 2014-11-04 Nick Clifton <nickc@redhat.com>
+2014-11-06 Will Newton <will.newton@linaro.org>
+
+ * elf-attrs.c (_bfd_elf_parse_attributes): Handle zero
+ length sections and sub-sections.
+
+2014-11-04 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* coffcode.h (handle_COMDAT): Replace abort with BFD_ASSERT.
@@ -232,7 +387,17 @@
(coff_slurp_line_table): Add more range checking.
* peXXigen.c (pe_print_debugdata): Add range checking.
- 2014-11-05 Nick Clifton <nickc@redhat.com>
+2014-11-05 James Cowgill <james.cowgill@imgtec.com>
+
+ * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Fix segfault
+ when creating a dso with discarded dynsym section.
+
+2014-11-05 Matthew Fortune <matthew.fortune@imgtec.com>
+
+ * elfxx-mips.c (update_mips_abiflags_isa): Add E_MIPS_ARCH_32R6
+ and E_MIPS_ARCH_64R6 support.
+
+2014-11-05 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* coffcode.h (coff_set_alignment_hook): Warn if the file lies
@@ -250,7 +415,7 @@
(rsrc_count_entries): Add range checking.
(rsrc_parse_entry): Likewise.
- 2014-11-04 Nick Clifton <nickc@redhat.com>
+2014-11-04 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* compress.c (bfd_get_full_section_contents): Improve test for
@@ -260,7 +425,23 @@
* archive.c (_bfd_slurp_extended_name_table): Handle archives with
corrupt extended name tables.
- 2014-11-03 Nick Clifton <nickc@redhat.com>
+2014-11-04 Alan Modra <amodra@gmail.com>
+
+ * elf32-spu.c (ovl_mgr_stat): New function.
+ (spu_elf_open_builtin_lib): Pass to bfd_openr_iovec.
+
+2014-11-03 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * elf32-avr.c (elf32_avr_relax_delete_bytes): During linker
+ relaxation, reduce the size of symbols that span the deleted
+ bytes.
+
+2014-11-03 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * elf32-avr.c (elf32_avr_relax_delete_bytes): Modify symbols
+ located at the very end of the section.
+
+2014-11-03 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* aoutx.h (slurp_symbol_table): Check that computed table size is
@@ -292,7 +473,26 @@
* xcofflink.c (xcoff_link_input_bfd): Check offset against
length of string table.
- 2014-10-31 Nick Clifton <nickc@redhat.com>
+2014-11-03 Nick Clifton <nickc@redhat.com>
+
+ * po/fi.po: Updated Finnish translation.
+
+2014-10-31 Andrew Pinski <apinski@cavium.com>
+ Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
+
+ * archures.c: Add octeon3 for mips target.
+ * bfd-in2.h: Regenerate.
+ * bfd/cpu-mips.c: Define I_mipsocteon3.
+ nfo_struct): Add octeon3 support.
+ * bfd/elfxx-mips.c: (_bfd_elf_mips_mach): Add support for
+ octeon3.
+ (mips_set_isa_flags): Add support for octeon3.
+ (bfd_mips_isa_ext): Add bfd_mach_mips_octeon3.
+ (mips_mach_extensions): Make bfd_mach_mips_octeon3 an
+ extension of bfd_mach_mips_octeon2.
+ (print_mips_isa_ext): Print the value of Octeon3.
+
+2014-10-31 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* coffgen.c (_bfd_coff_get_external_symbols): Do not try to load a
@@ -301,78 +501,39 @@
table bigger than the file.
* tekhex.c (first_phase): Check that the section range is sane.
-2014-11-11 Alan Modra <amodra@gmail.com>
-
- * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Adjust section
- size check to account for possible zero terminator.
-
-2014-11-10 Matthew Fortune <matthew.fortune@imgtec.com>
-
- Apply trunk patch:
- * elfxx-mips.c (update_mips_abiflags_isa): Add E_MIPS_ARCH_32R6
- and E_MIPS_ARCH_64R6 support.
-
-2014-11-07 H.J. Lu <hongjiu.lu@intel.com>
-
- Apply trunk patch:
- 2014-11-07 H.J. Lu <hongjiu.lu@intel.com>
-
- PR ld/17482
- * elf64-x86-64.c (elf_x86_64_relocate_section): Update comments
- for IE->LE transition.
-
-2014-11-04 Tristan Gingold <gingold@adacore.com>
-
- * development.sh: Set development to false.
-
-2014-11-03 Nick Clifton <nickc@redhat.com>
-
- * po/fi.po: Updated Finnish translation.
-
-2014-10-31 Nick Clifton <nickc@redhat.com>
-
- Apply trunk patch:
+2014-10-30 Nick Clifton <nickc@redhat.com>
- 2014-10-30 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* ihex.c (ihex_scan): Fix typo in invocation of ihex_bad_byte.
* coffgen.c (coff_get_normalized_symtab): Prevent buffer overrun.
-2014-10-30 Nick Clifton <nickc@redhat.com>
-
- Appy trunk patch:
+2014-10-29 Nick Clifton <nickc@redhat.com>
- 2014-10-29 Nick Clifton <nickc@redhat.com>
* elf.c (bfd_section_from_shdr): Fix heap use after free memory
leak.
-2014-10-28 Matthew Fortune <matthew.fortune@imgtec.com>
-
- Apply trunk patches:
+2014-10-29 Dennis Brueni <dbrueni@slickedit.com>
- 2014-10-22 Matthew Fortune <matthew.fortune@imgtec.com>
- * elfxx-mips.c (print_mips_ases): Print unknown ASEs.
- (print_mips_isa_ext): Print the value of an unknown extension.
+ * elf.c (elfcore_write_lwpstatus): Fix typo in call to memcpy.
2014-10-28 Nick Clifton <nickc@redhat.com>
- Apply trunk patches:
-
- 2014-10-28 Nick Clifton <nickc@redhat.com>
PR binutils/17512
* elf.c (bfd_section_from_shdr): Allocate and free the recursion
detection table on a per-bfd basis.
* peXXigen.c (pe_print_edata): Handle binaries with a truncated
export table.
- 2014-10-28 Andreas Schwab <schwab@suse.de>
- Nick Clifton <nickc@redhat.com>
+2014-10-28 Andreas Schwab <schwab@suse.de>
+ Nick Clifton <nickc@redhat.com>
+
PR binutils/17510
* srec.c (srec_bad_byte): Increase size of buf to allow for
negative values.
(srec_scan): Use an unsigned char buffer to hold header bytes.
- 2014-10-27 Nick Clifton <nickc@redhat.com>
+2014-10-27 Nick Clifton <nickc@redhat.com>
+
PR binutils/17512
* elf.c (bfd_section_from_shdr): Detect and warn about ELF
binaries with a group of sections linked by the string table
@@ -386,26 +547,68 @@
* elf.c (setup_group): Improve handling of corrupt group
sections.
-2014-10-28 Alan Modra <amodra@gmail.com>
+2014-10-24 Tejas Belagod <tejas.belagod@arm.com>
+
+ * bfd-in.h (bfd_elf64_aarch64_set_options): Add a parameter.
+ * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise.
+ * elfnn-aarch64.c (aarch64_erratum_835769_stub): New.
+ (elf_aarch64_stub_type): Add new type
+ aarch64_stub_erratum_835769_veneer.
+ (elf_aarch64_stub_hash_entry): New fields for erratum 835769.
+ (aarch64_erratum_835769_fix): New data struct to record erratum
+ 835769.
+ (elf_aarch64_link_hash_table: Global flags for 835769.
+ (aarch64_build_one_stub): Add case for 835769.
+ (aarch64_size_one_stub): Likewise.
+ (aarch64_mem_op_p, aarch64_mlxl_p,
+ aarch64_erratum_sequence,erratum_835769_scan):
+ New. Decode and scan functions for erratum 835769.
+ (elf_aarch64_create_or_find_stub_sec): New.
+ (elfNN_aarch64_size_stubs): Look for erratum 835769 and record
+ them.
+ (bfd_elfNN_aarch64_set_options: Set global flag for 835769.
+ (erratum_835769_branch_to_stub_data,
+ make_branch_to_erratum_835769_stub):New. Connect up all the
+ erratum stubs to occurances by branches.
+ (elfNN_aarch64_write_section): New hook.
+ (aarch64_map_one_stub): Output erratum stub symbol.
+ (elfNN_aarch64_size_dynamic_sections): Init mapping symbol
+ information for erratum 835769.
+ (elf_backend_write_section): Define.
+
+2014-10-23 Victor Kamensky <victor.kamensky@linaro.org>
+
+ * elf32-arm.c (read_code32): New function to read 32 bit
+ arm instruction.
+ (read_code16): New function to read 16 bit thumb instrution.
+ (elf32_arm_plt0_size, elf32_arm_plt_size): Use read_code32
+ and read_code16 to read instructions.
+
+2014-10-22 Matthew Fortune <matthew.fortune@imgtec.com>
- Apply trunk patches:
+ * elfxx-mips.c (print_mips_ases): Print unknown ASEs.
+ (print_mips_isa_ext): Print the value of an unknown extension.
+
+2014-10-21 Alan Modra <amodra@gmail.com>
- 2014-10-21 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_tls_optimize): Ignore relocs against toc
entries that aren't a multiple of 8 rather than failing assertion.
- 2014-10-21 Alan Modra <amodra@gmail.com>
+2014-10-21 Alan Modra <amodra@gmail.com>
+
* elf64-ppc.c (ppc64_elf_size_stubs): Add gcc-4.9 libgomp functions
to thread_starter.
- 2014-10-18 Alan Modra <amodra@gmail.com>
+2014-10-18 Alan Modra <amodra@gmail.com>
+
* elf64-ppc.c (ppc64_elf_add_symbol_hook): If function code
section for function symbols defined in .opd is discarded, let
the symbol appear to be undefined.
(opd_entry_value): Ensure the result section is that for the
function code section in the same object as the OPD entry.
- 2014-10-16 Alan Modra <amodra@gmail.com>
+2014-10-16 Alan Modra <amodra@gmail.com>
+
PR 17492
* elf32-arm.c (elf32_arm_add_symbol_hook): Only set has_gnu_symbols
on ELF output bfd.
@@ -420,12 +623,14 @@
* elf-s390-common.c (elf_s390_add_symbol_hook): Likewise. Handle
STB_GNU_UNIQUE too.
- 2014-10-16 Alan Modra <amodra@gmail.com>
+2014-10-16 Alan Modra <amodra@gmail.com>
+
* elf64-ppc.c (ppc64_elf_before_check_relocs): Do .opd processing
even when output is not ppc64 ELF. Remove redundant tests on
type of input bfd.
- 2014-10-15 Alan Modra <amodra@gmail.com>
+2014-10-15 Alan Modra <amodra@gmail.com>
+
PR 17481
* aoutx.h (NAME (aout, find_nearest_line)): Add "discriminator_ptr"
param, group "section" and "offset" params. Zero discriminator.
@@ -502,7 +707,8 @@
* libbfd.h: Regenerate.
* libcoff.h: Regenerate.
- 2014-10-15 Alan Modra <amodra@gmail.com>
+2014-10-15 Alan Modra <amodra@gmail.com>
+
* targets.c (BFD_JUMP_TABLE_SYMBOLS): Use NAME##_find_line.
* aout-adobe.c (aout_32_find_line): Define.
(aout_32_bfd_make_debug_symbol, aout_32_bfd_reloc_type_lookup,
@@ -546,39 +752,16 @@
* libbfd.h: Regenerate.
* libcoff.h: Regenerate.
-2014-10-24 Tejas Belagod <tejas.belagod@arm.com>
+2014-10-15 Tristan Gingold <gingold@adacore.com>
- * bfd-in.h (bfd_elf64_aarch64_set_options): Add a parameter.
- * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise.
- * elfnn-aarch64.c (aarch64_erratum_835769_stub): New.
- (elf_aarch64_stub_type): Add new type
- aarch64_stub_erratum_835769_veneer.
- (elf_aarch64_stub_hash_entry): New fields for erratum 835769.
- (aarch64_erratum_835769_fix): New data struct to record erratum
- 835769.
- (elf_aarch64_link_hash_table: Global flags for 835769.
- (aarch64_build_one_stub): Add case for 835769.
- (aarch64_size_one_stub): Likewise.
- (aarch64_mem_op_p, aarch64_mlxl_p,
- aarch64_erratum_sequence,erratum_835769_scan):
- New. Decode and scan functions for erratum 835769.
- (elf_aarch64_create_or_find_stub_sec): New.
- (elfNN_aarch64_size_stubs): Look for erratum 835769 and record
- them.
- (bfd_elfNN_aarch64_set_options: Set global flag for 835769.
- (erratum_835769_branch_to_stub_data,
- make_branch_to_erratum_835769_stub):New. Connect up all the
- erratum stubs to occurances by branches.
- (elfNN_aarch64_write_section): New hook.
- (aarch64_map_one_stub): Output erratum stub symbol.
- (elfNN_aarch64_size_dynamic_sections): Init mapping symbol
- information for erratum 835769.
- (elf_backend_write_section): Define.
+ * version.m4: Bump version to 2.25.51
+ * configure: Regenerate.
-2014-10-14 Tristan Gingold <gingold@adacore.com>
+2014-10-14 H.J. Lu <hongjiu.lu@intel.com>
- * version.m4: Bump version to 2.24.90
- * configure: Regenerate.
+ * elf32-i386.c (elf_i386_convert_mov_to_lea): Skip if relocation
+ offset is less than 2.
+ * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise.
2014-10-14 Alan Modra <amodra@gmail.com>
diff --git a/binutils-2.25/bfd/Makefile.in b/binutils-2.25/bfd/Makefile.in
index 2c385d57..5ee1650e 100644
--- a/binutils-2.25/bfd/Makefile.in
+++ b/binutils-2.25/bfd/Makefile.in
@@ -16,7 +16,7 @@
@SET_MAKE@
#
-# Copyright (C) 2012-2014 Free Software Foundation, Inc.
+# Copyright (C) 2012-2015 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/binutils-2.25/bfd/archures.c b/binutils-2.25/bfd/archures.c
index c9fd6c81..5e069b22 100644
--- a/binutils-2.25/bfd/archures.c
+++ b/binutils-2.25/bfd/archures.c
@@ -179,6 +179,7 @@ DESCRIPTION
.#define bfd_mach_mips_octeon 6501
.#define bfd_mach_mips_octeonp 6601
.#define bfd_mach_mips_octeon2 6502
+.#define bfd_mach_mips_octeon3 6503
.#define bfd_mach_mips_xlr 887682 {* decimal 'XLR' *}
.#define bfd_mach_mipsisa32 32
.#define bfd_mach_mipsisa32r2 33
diff --git a/binutils-2.25/bfd/bfd-in2.h b/binutils-2.25/bfd/bfd-in2.h
index 5f7879f4..97f01429 100644
--- a/binutils-2.25/bfd/bfd-in2.h
+++ b/binutils-2.25/bfd/bfd-in2.h
@@ -1966,6 +1966,7 @@ enum bfd_architecture
#define bfd_mach_mips_octeon 6501
#define bfd_mach_mips_octeonp 6601
#define bfd_mach_mips_octeon2 6502
+#define bfd_mach_mips_octeon3 6503
#define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */
#define bfd_mach_mipsisa32 32
#define bfd_mach_mipsisa32r2 33
diff --git a/binutils-2.25/bfd/configure b/binutils-2.25/bfd/configure
index ea5d50d5..b70a6d0e 100755
--- a/binutils-2.25/bfd/configure
+++ b/binutils-2.25/bfd/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for bfd 2.24.90.
+# Generated by GNU Autoconf 2.64 for bfd 2.25.51.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='bfd'
PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.24.90'
-PACKAGE_STRING='bfd 2.24.90'
+PACKAGE_VERSION='2.25.51'
+PACKAGE_STRING='bfd 2.25.51'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1349,7 +1349,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures bfd 2.24.90 to adapt to many kinds of systems.
+\`configure' configures bfd 2.25.51 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1420,7 +1420,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of bfd 2.24.90:";;
+ short | recursive ) echo "Configuration of bfd 2.25.51:";;
esac
cat <<\_ACEOF
@@ -1541,7 +1541,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-bfd configure 2.24.90
+bfd configure 2.25.51
generated by GNU Autoconf 2.64
Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2183,7 +2183,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by bfd $as_me 2.24.90, which was
+It was created by bfd $as_me 2.25.51, which was
generated by GNU Autoconf 2.64. Invocation command line was
$ $0 $@
@@ -3991,7 +3991,7 @@ fi
# Define the identity of the package.
PACKAGE='bfd'
- VERSION='2.24.90'
+ VERSION='2.25.51'
cat >>confdefs.h <<_ACEOF
@@ -16567,7 +16567,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by bfd $as_me 2.24.90, which was
+This file was extended by bfd $as_me 2.25.51, which was
generated by GNU Autoconf 2.64. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16631,7 +16631,7 @@ Report bugs to the package provider."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-bfd config.status 2.24.90
+bfd config.status 2.25.51
configured by $0, generated by GNU Autoconf 2.64,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/binutils-2.25/bfd/cpu-mips.c b/binutils-2.25/bfd/cpu-mips.c
index b617aaa7..a3769445 100644
--- a/binutils-2.25/bfd/cpu-mips.c
+++ b/binutils-2.25/bfd/cpu-mips.c
@@ -102,6 +102,7 @@ enum
I_mipsocteon,
I_mipsocteonp,
I_mipsocteon2,
+ I_mipsocteon3,
I_xlr,
I_micromips
};
@@ -152,6 +153,7 @@ static const bfd_arch_info_type arch_info_struct[] =
N (64, 64, bfd_mach_mips_octeon,"mips:octeon", FALSE, NN(I_mipsocteon)),
N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+", FALSE, NN(I_mipsocteonp)),
N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2", FALSE, NN(I_mipsocteon2)),
+ N (64, 64, bfd_mach_mips_octeon3, "mips:octeon3", FALSE, NN(I_mipsocteon3)),
N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)),
N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,0)
};
diff --git a/binutils-2.25/bfd/development.sh b/binutils-2.25/bfd/development.sh
index 416ec8c8..4c0f5b90 100644
--- a/binutils-2.25/bfd/development.sh
+++ b/binutils-2.25/bfd/development.sh
@@ -16,4 +16,4 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Controls whether to enable development-mode features by default.
-development=false
+development=true
diff --git a/binutils-2.25/bfd/doc/Makefile.in b/binutils-2.25/bfd/doc/Makefile.in
index 65ad42db..3be6a5e9 100644
--- a/binutils-2.25/bfd/doc/Makefile.in
+++ b/binutils-2.25/bfd/doc/Makefile.in
@@ -16,7 +16,7 @@
@SET_MAKE@
#
-# Copyright (C) 2012-2014 Free Software Foundation, Inc.
+# Copyright (C) 2012-2015 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/binutils-2.25/bfd/elf-attrs.c b/binutils-2.25/bfd/elf-attrs.c
index e74176f1..14420f23 100644
--- a/binutils-2.25/bfd/elf-attrs.c
+++ b/binutils-2.25/bfd/elf-attrs.c
@@ -455,6 +455,8 @@ _bfd_elf_parse_attributes (bfd *abfd, Elf_Internal_Shdr * hdr)
section_len = bfd_get_32 (abfd, p);
p += 4;
+ if (section_len == 0)
+ break;
if (section_len > len)
section_len = len;
len -= section_len;
@@ -487,6 +489,8 @@ _bfd_elf_parse_attributes (bfd *abfd, Elf_Internal_Shdr * hdr)
p += n;
subsection_len = bfd_get_32 (abfd, p);
p += 4;
+ if (subsection_len == 0)
+ break;
if (subsection_len > section_len)
subsection_len = section_len;
section_len -= subsection_len;
diff --git a/binutils-2.25/bfd/elf32-arm.c b/binutils-2.25/bfd/elf32-arm.c
index c507e4fe..bbda298a 100644
--- a/binutils-2.25/bfd/elf32-arm.c
+++ b/binutils-2.25/bfd/elf32-arm.c
@@ -11746,10 +11746,14 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
/* This needs to happen before Tag_ABI_FP_number_model is merged. */
if (in_attr[Tag_ABI_VFP_args].i != out_attr[Tag_ABI_VFP_args].i)
{
- /* Ignore mismatches if the object doesn't use floating point. */
- if (out_attr[Tag_ABI_FP_number_model].i == 0)
+ /* Ignore mismatches if the object doesn't use floating point or is
+ floating point ABI independent. */
+ if (out_attr[Tag_ABI_FP_number_model].i == AEABI_FP_number_model_none
+ || (in_attr[Tag_ABI_FP_number_model].i != AEABI_FP_number_model_none
+ && out_attr[Tag_ABI_VFP_args].i == AEABI_VFP_args_compatible))
out_attr[Tag_ABI_VFP_args].i = in_attr[Tag_ABI_VFP_args].i;
- else if (in_attr[Tag_ABI_FP_number_model].i != 0)
+ else if (in_attr[Tag_ABI_FP_number_model].i != AEABI_FP_number_model_none
+ && in_attr[Tag_ABI_VFP_args].i != AEABI_VFP_args_compatible)
{
_bfd_error_handler
(_("error: %B uses VFP register arguments, %B does not"),
@@ -14713,7 +14717,7 @@ elf32_arm_post_process_headers (bfd * abfd, struct bfd_link_info * link_info ATT
&& ((i_ehdrp->e_type == ET_DYN) || (i_ehdrp->e_type == ET_EXEC)))
{
int abi = bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_PROC, Tag_ABI_VFP_args);
- if (abi)
+ if (abi == AEABI_VFP_args_vfp)
i_ehdrp->e_flags |= EF_ARM_ABI_FLOAT_HARD;
else
i_ehdrp->e_flags |= EF_ARM_ABI_FLOAT_SOFT;
@@ -15958,6 +15962,26 @@ const struct elf_size_info elf32_arm_size_info =
bfd_elf32_swap_reloca_out
};
+static bfd_vma
+read_code32 (const bfd *abfd, const bfd_byte *addr)
+{
+ /* V7 BE8 code is always little endian. */
+ if ((elf_elfheader (abfd)->e_flags & EF_ARM_BE8) != 0)
+ return bfd_getl32 (addr);
+
+ return bfd_get_32 (abfd, addr);
+}
+
+static bfd_vma
+read_code16 (const bfd *abfd, const bfd_byte *addr)
+{
+ /* V7 BE8 code is always little endian. */
+ if ((elf_elfheader (abfd)->e_flags & EF_ARM_BE8) != 0)
+ return bfd_getl16 (addr);
+
+ return bfd_get_16 (abfd, addr);
+}
+
/* Return size of plt0 entry starting at ADDR
or (bfd_vma) -1 if size can not be determined. */
@@ -15967,7 +15991,7 @@ elf32_arm_plt0_size (const bfd *abfd, const bfd_byte *addr)
bfd_vma first_word;
bfd_vma plt0_size;
- first_word = H_GET_32 (abfd, addr);
+ first_word = read_code32 (abfd, addr);
if (first_word == elf32_arm_plt0_entry[0])
plt0_size = 4 * ARRAY_SIZE (elf32_arm_plt0_entry);
@@ -15992,17 +16016,17 @@ elf32_arm_plt_size (const bfd *abfd, const bfd_byte *start, bfd_vma offset)
const bfd_byte *addr = start + offset;
/* PLT entry size if fixed on Thumb-only platforms. */
- if (H_GET_32(abfd, start) == elf32_thumb2_plt0_entry[0])
+ if (read_code32 (abfd, start) == elf32_thumb2_plt0_entry[0])
return 4 * ARRAY_SIZE (elf32_thumb2_plt_entry);
/* Respect Thumb stub if necessary. */
- if (H_GET_16(abfd, addr) == elf32_arm_plt_thumb_stub[0])
+ if (read_code16 (abfd, addr) == elf32_arm_plt_thumb_stub[0])
{
plt_size += 2 * ARRAY_SIZE(elf32_arm_plt_thumb_stub);
}
/* Strip immediate from first add. */
- first_insn = H_GET_32(abfd, addr + plt_size) & 0xffffff00;
+ first_insn = read_code32 (abfd, addr + plt_size) & 0xffffff00;
#ifdef FOUR_WORD_PLT
if (first_insn == elf32_arm_plt_entry[0])
@@ -16219,6 +16243,7 @@ elf32_arm_get_synthetic_symtab (bfd *abfd,
becaus elf32_arm_plt_entry isn't defined when FOUR_WORD_PLT isn't defined where elf32_arm_plt_entry_short
and elf32_arm_plt_entry_long are defined instead.
*/
+
#undef elf_backend_plt_sym_val
#define elf_backend_plt_sym_val elf32_arm_plt_sym_val
diff --git a/binutils-2.25/bfd/elf32-avr.c b/binutils-2.25/bfd/elf32-avr.c
index 54d67bf0..5aa3cf6e 100644
--- a/binutils-2.25/bfd/elf32-avr.c
+++ b/binutils-2.25/bfd/elf32-avr.c
@@ -1881,10 +1881,22 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
isymend = isym + symtab_hdr->sh_info;
for (; isym < isymend; isym++)
{
- if (isym->st_shndx == sec_shndx
- && isym->st_value > addr
- && isym->st_value < toaddr)
- isym->st_value -= count;
+ if (isym->st_shndx == sec_shndx)
+ {
+ if (isym->st_value > addr
+ && isym->st_value <= toaddr)
+ isym->st_value -= count;
+
+ if (isym->st_value <= addr
+ && isym->st_value + isym->st_size > addr)
+ {
+ /* If this assert fires then we have a symbol that ends
+ part way through an instruction. Does that make
+ sense? */
+ BFD_ASSERT (isym->st_value + isym->st_size >= addr + count);
+ isym->st_size -= count;
+ }
+ }
}
}
@@ -1898,11 +1910,22 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
struct elf_link_hash_entry *sym_hash = *sym_hashes;
if ((sym_hash->root.type == bfd_link_hash_defined
|| sym_hash->root.type == bfd_link_hash_defweak)
- && sym_hash->root.u.def.section == sec
- && sym_hash->root.u.def.value > addr
- && sym_hash->root.u.def.value < toaddr)
+ && sym_hash->root.u.def.section == sec)
{
- sym_hash->root.u.def.value -= count;
+ if (sym_hash->root.u.def.value > addr
+ && sym_hash->root.u.def.value <= toaddr)
+ sym_hash->root.u.def.value -= count;
+
+ if (sym_hash->root.u.def.value <= addr
+ && (sym_hash->root.u.def.value + sym_hash->size > addr))
+ {
+ /* If this assert fires then we have a symbol that ends
+ part way through an instruction. Does that make
+ sense? */
+ BFD_ASSERT (sym_hash->root.u.def.value + sym_hash->size
+ >= addr + count);
+ sym_hash->size -= count;
+ }
}
}
diff --git a/binutils-2.25/bfd/elf32-i386.c b/binutils-2.25/bfd/elf32-i386.c
index ad8b5575..64cdeceb 100644
--- a/binutils-2.25/bfd/elf32-i386.c
+++ b/binutils-2.25/bfd/elf32-i386.c
@@ -2580,6 +2580,7 @@ elf_i386_convert_mov_to_lea (bfd *abfd, asection *sec,
/* STT_GNU_IFUNC must keep R_386_GOT32 relocation. */
if (ELF_ST_TYPE (isym->st_info) != STT_GNU_IFUNC
+ && irel->r_offset >= 2
&& bfd_get_8 (input_bfd,
contents + irel->r_offset - 2) == 0x8b)
{
@@ -2609,6 +2610,7 @@ elf_i386_convert_mov_to_lea (bfd *abfd, asection *sec,
&& h->type != STT_GNU_IFUNC
&& h != htab->elf.hdynamic
&& SYMBOL_REFERENCES_LOCAL (link_info, h)
+ && irel->r_offset >= 2
&& bfd_get_8 (input_bfd,
contents + irel->r_offset - 2) == 0x8b)
{
diff --git a/binutils-2.25/bfd/elf32-spu.c b/binutils-2.25/bfd/elf32-spu.c
index 13806ad1..ebc9e6a0 100644
--- a/binutils-2.25/bfd/elf32-spu.c
+++ b/binutils-2.25/bfd/elf32-spu.c
@@ -1828,6 +1828,18 @@ ovl_mgr_pread (struct bfd *abfd ATTRIBUTE_UNUSED,
return count;
}
+static int
+ovl_mgr_stat (struct bfd *abfd ATTRIBUTE_UNUSED,
+ void *stream,
+ struct stat *sb)
+{
+ struct _ovl_stream *os = (struct _ovl_stream *) stream;
+
+ memset (sb, 0, sizeof (*sb));
+ sb->st_size = (const char *) os->end - (const char *) os->start;
+ return 0;
+}
+
bfd_boolean
spu_elf_open_builtin_lib (bfd **ovl_bfd, const struct _ovl_stream *stream)
{
@@ -1837,7 +1849,7 @@ spu_elf_open_builtin_lib (bfd **ovl_bfd, const struct _ovl_stream *stream)
(void *) stream,
ovl_mgr_pread,
NULL,
- NULL);
+ ovl_mgr_stat);
return *ovl_bfd != NULL;
}
diff --git a/binutils-2.25/bfd/elf64-ppc.c b/binutils-2.25/bfd/elf64-ppc.c
index 0b65ab19..0245a2c7 100644
--- a/binutils-2.25/bfd/elf64-ppc.c
+++ b/binutils-2.25/bfd/elf64-ppc.c
@@ -11805,7 +11805,7 @@ group_sections (struct ppc_link_hash_table *htab,
bfd_boolean suppress_size_errors;
suppress_size_errors = FALSE;
- stub14_group_size = stub_group_size;
+ stub14_group_size = stub_group_size >> 10;
if (stub_group_size == 1)
{
/* Default values. */
@@ -11979,6 +11979,8 @@ ppc64_elf_size_stubs (struct bfd_link_info *info)
"GOMP_parallel_loop_runtime_start",
"GOMP_parallel_sections",
"GOMP_parallel_sections_start",
+ /* libgo */
+ "__go_go",
};
unsigned i;
diff --git a/binutils-2.25/bfd/elf64-x86-64.c b/binutils-2.25/bfd/elf64-x86-64.c
index 3881f60f..f2b13e7b 100644
--- a/binutils-2.25/bfd/elf64-x86-64.c
+++ b/binutils-2.25/bfd/elf64-x86-64.c
@@ -1629,16 +1629,11 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_X86_64_PC32_BND:
case R_X86_64_PLT32_BND:
- case R_X86_64_PC32:
- case R_X86_64_PLT32:
- case R_X86_64_32:
- case R_X86_64_64:
/* MPX PLT is supported only if elf_x86_64_arch_bed
is used in 64-bit mode. */
if (ABI_64_P (abfd)
- && info->bndplt
- && (get_elf_x86_64_backend_data (abfd)
- == &elf_x86_64_arch_bed))
+ && (get_elf_x86_64_backend_data (abfd)
+ == &elf_x86_64_arch_bed))
{
elf_x86_64_hash_entry (h)->has_bnd_reloc = TRUE;
@@ -1680,7 +1675,11 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
}
case R_X86_64_32S:
+ case R_X86_64_32:
+ case R_X86_64_64:
+ case R_X86_64_PC32:
case R_X86_64_PC64:
+ case R_X86_64_PLT32:
case R_X86_64_GOTPCREL:
case R_X86_64_GOTPCREL64:
if (htab->elf.dynobj == NULL)
@@ -1753,14 +1752,6 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (h != NULL)
{
- if (r_type == R_X86_64_GOTPLT64)
- {
- /* This relocation indicates that we also need
- a PLT entry, as this is a function. We don't need
- a PLT entry for local symbols. */
- h->needs_plt = 1;
- h->plt.refcount += 1;
- }
h->got.refcount += 1;
old_tls_type = elf_x86_64_hash_entry (h)->tls_type;
}
@@ -2182,8 +2173,6 @@ elf_x86_64_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
case R_X86_64_GOTPLT64:
if (h != NULL)
{
- if (r_type == R_X86_64_GOTPLT64 && h->plt.refcount > 0)
- h->plt.refcount -= 1;
if (h->got.refcount > 0)
h->got.refcount -= 1;
if (h->type == STT_GNU_IFUNC)
@@ -2825,6 +2814,7 @@ elf_x86_64_convert_mov_to_lea (bfd *abfd, asection *sec,
/* STT_GNU_IFUNC must keep R_X86_64_GOTPCREL relocation. */
if (ELF_ST_TYPE (isym->st_info) != STT_GNU_IFUNC
+ && irel->r_offset >= 2
&& bfd_get_8 (input_bfd,
contents + irel->r_offset - 2) == 0x8b)
{
@@ -2855,6 +2845,7 @@ elf_x86_64_convert_mov_to_lea (bfd *abfd, asection *sec,
&& h->type != STT_GNU_IFUNC
&& h != htab->elf.hdynamic
&& SYMBOL_REFERENCES_LOCAL (link_info, h)
+ && irel->r_offset >= 2
&& bfd_get_8 (input_bfd,
contents + irel->r_offset - 2) == 0x8b)
{
@@ -3719,12 +3710,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
case R_X86_64_GOTPCREL64:
/* Use global offset table entry as symbol value. */
case R_X86_64_GOTPLT64:
- /* This is the same as GOT64 for relocation purposes, but
- indicates the existence of a PLT entry. The difficulty is,
- that we must calculate the GOT slot offset from the PLT
- offset, if this symbol got a PLT entry (it was global).
- Additionally if it's computed from the PLT entry, then that
- GOT offset is relative to .got.plt, not to .got. */
+ /* This is obsolete and treated the the same as GOT64. */
base_got = htab->elf.sgot;
if (htab->elf.sgot == NULL)
diff --git a/binutils-2.25/bfd/elfxx-mips.c b/binutils-2.25/bfd/elfxx-mips.c
index cb6fd21b..998549da 100644
--- a/binutils-2.25/bfd/elfxx-mips.c
+++ b/binutils-2.25/bfd/elfxx-mips.c
@@ -6607,6 +6607,9 @@ _bfd_elf_mips_mach (flagword flags)
case E_MIPS_MACH_LS3A:
return bfd_mach_mips_loongson_3a;
+ case E_MIPS_MACH_OCTEON3:
+ return bfd_mach_mips_octeon3;
+
case E_MIPS_MACH_OCTEON2:
return bfd_mach_mips_octeon2;
@@ -7002,20 +7005,11 @@ _bfd_mips_elf_section_processing (bfd *abfd, Elf_Internal_Shdr *hdr)
if (strcmp (name, ".sdata") == 0
|| strcmp (name, ".lit8") == 0
|| strcmp (name, ".lit4") == 0)
- {
- hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL;
- hdr->sh_type = SHT_PROGBITS;
- }
+ hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL;
else if (strcmp (name, ".srdata") == 0)
- {
- hdr->sh_flags |= SHF_ALLOC | SHF_MIPS_GPREL;
- hdr->sh_type = SHT_PROGBITS;
- }
+ hdr->sh_flags |= SHF_ALLOC | SHF_MIPS_GPREL;
else if (strcmp (name, ".compact_rel") == 0)
- {
- hdr->sh_flags = 0;
- hdr->sh_type = SHT_PROGBITS;
- }
+ hdr->sh_flags = 0;
else if (strcmp (name, ".rtproc") == 0)
{
if (hdr->sh_addralign != 0 && hdr->sh_entsize == 0)
@@ -11480,9 +11474,11 @@ _bfd_mips_elf_finish_dynamic_sections (bfd *output_bfd,
name = ".dynsym";
elemsize = MIPS_ELF_SYM_SIZE (output_bfd);
s = bfd_get_section_by_name (output_bfd, name);
- BFD_ASSERT (s != NULL);
- dyn.d_un.d_val = s->size / elemsize;
+ if (s != NULL)
+ dyn.d_un.d_val = s->size / elemsize;
+ else
+ dyn.d_un.d_val = 0;
break;
case DT_MIPS_HIPAGENO:
@@ -11906,6 +11902,10 @@ mips_set_isa_flags (bfd *abfd)
val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON;
break;
+ case bfd_mach_mips_octeon3:
+ val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON3;
+ break;
+
case bfd_mach_mips_xlr:
val = E_MIPS_ARCH_64 | E_MIPS_MACH_XLR;
break;
@@ -13959,6 +13959,8 @@ bfd_mips_isa_ext (bfd *abfd)
return AFL_EXT_OCTEON;
case bfd_mach_mips_octeonp:
return AFL_EXT_OCTEONP;
+ case bfd_mach_mips_octeon3:
+ return AFL_EXT_OCTEON3;
case bfd_mach_mips_octeon2:
return AFL_EXT_OCTEON2;
case bfd_mach_mips_xlr:
@@ -14792,6 +14794,7 @@ struct mips_mach_extension
static const struct mips_mach_extension mips_mach_extensions[] =
{
/* MIPS64r2 extensions. */
+ { bfd_mach_mips_octeon3, bfd_mach_mips_octeon2 },
{ bfd_mach_mips_octeon2, bfd_mach_mips_octeonp },
{ bfd_mach_mips_octeonp, bfd_mach_mips_octeon },
{ bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 },
@@ -15588,6 +15591,9 @@ print_mips_isa_ext (FILE *file, unsigned int isa_ext)
case AFL_EXT_XLR:
fputs ("RMI XLR", file);
break;
+ case AFL_EXT_OCTEON3:
+ fputs ("Cavium Networks Octeon3", file);
+ break;
case AFL_EXT_OCTEON2:
fputs ("Cavium Networks Octeon2", file);
break;
diff --git a/binutils-2.25/bfd/version.h b/binutils-2.25/bfd/version.h
index ec0bedc5..7c349d6f 100644
--- a/binutils-2.25/bfd/version.h
+++ b/binutils-2.25/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20141119
+#define BFD_VERSION_DATE 20141117
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
diff --git a/binutils-2.25/bfd/version.m4 b/binutils-2.25/bfd/version.m4
index c92d143b..0f2f2359 100644
--- a/binutils-2.25/bfd/version.m4
+++ b/binutils-2.25/bfd/version.m4
@@ -1 +1 @@
-m4_define([BFD_VERSION], [2.24.90])
+m4_define([BFD_VERSION], [2.25.51])