2016-10-20  Adhemerval Zanella  <adhemerval.zanella@linaro.org>

	Backport from 2.25.
	
	2015-01-13  Thomas Preud'homme <thomas.preudhomme@arm.com>

	* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND
	to check if a symbol should be bound symbolically.

	2015-07-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* elf32-arm.c (elf32_arm_final_link_relocate): Use SYMBOLIC_BIND to
	check if a symbol should be bound symbolically.
	* elf32-hppa.c (elf32_hppa_check_relocs,
	elf32_hppa_adjust_dynamic_symbol, elf32_hppa_relocate_section,
	elf32_hppa_finish_dynamic_symbol): Likewise.
	* elf32-m68k.c (elf_m68k_check_relocs,
	elf_m68k_relocate_section): Likewise.
	* elf32-nios2.c (nios2_elf32_relocate_section,
	nios2_elf32_check_relocs, allocate_dynrelocs): Likewise.
	* elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol,
	elf32_tic6x_relocate_section): Likewise.

	2015-04-01  Tejas Belagod  <tejas.belagod@arm.com>
		    Marcus Shawcroft  <marcus.shawcroft@arm.com>
		    Jiong Wang  <jiong.wang@arm.com>

	* 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-04  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-04  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.
	* elfnn-aarch64.c (elfNN_aarch64_size_stubs): Remove bfd_indx.

	* elfnn-aarch64.c (aarch64_erratum_835769_fixes)
	(num_aarch64_erratum_835769_fixes): Remove.
	(elfNN_aarch64_size_stubs): Remove assignments to above.

	* 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.

2015-10-06  Adhemerval Zanella  <adhemerval.zanella@linaro.org>

	Linaro binutils 2.25-2015.10 released.

	* version.h: Bump VERSION.

2015-01-05  Will Newton  <will.newton@linaro.org>

	* version.h: Bump VERSION.

2015-01-05  Will Newton  <will.newton@linaro.org>

	Linaro binutils 2.25-2015.01-2 released.

	* version.h: Update VERSION.

2015-01-05  Will Newton  <will.newton@linaro.org>

	* version.h: Bump VERSION.

2015-01-05  Will Newton  <will.newton@linaro.org>

	Linaro binutils 2.25-2015.01-1 released.

	* version.h: Update VERSION.

2015-01-05  Will Newton  <will.newton@linaro.org>

	* version.h: Bump VERSION.

2015-01-05  Will Newton  <will.newton@linaro.org>

	Linaro binutils 2.25-2015.01 released.

	* version.h: Update VERSION.

