2020-07-24  Nick Clifton  <nickc@redhat.com>

	2.35 Release:
	* po/gold.pot: Regenerate.

2020-07-06  Nick Clifton  <nickc@redhat.com>

	* target-reloc.h (Default_comdat_behaviour:get): Ignore discarded
	relocs that refer to the .gnu.build.attributes section.
	* testsuite/script_test_7.sh: Adjust expected address of the .bss
	section.
	* testsuite/script_test_9.sh: Do not expect the .init section to
	immediately follow the .text section in the mapping of sections to
	segments.

2020-07-06  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Updated French translation.
	* po/uk.po: Updated Ukranian translation.

2020-07-04  Nick Clifton  <nickc@redhat.com>

	* po/gold.pot: Regenerate.

2020-07-04  Nick Clifton  <nickc@redhat.com>

	Binutils 2.35 branch created.

2020-07-03  Alan Modra  <amodra@gmail.com>

	PR 26028
	* testsuite/Makefile.am (file_in_many_sections.stdout): Add -W
	to readelf options.
	* testsuite/Makefile.in: Regenerate.

2020-06-26  Nick Alcock  <nick.alcock@oracle.com>

	* configure.ac: Check for bswap_16, bswap_32, and bswap_64 decls.
	* configure: Regenerated.
	* config.h.in: Likewise.

2020-06-24  Nick Clifton  <nickc@redhat.com>

	* target-reloc.h (issue_discarded_error): Initialise the
	key_symndx variable.

2020-06-23  Roland McGrath  <mcgrathr@google.com>

	PR 22843
	* options.h (class General_options): Add --dependency-file option.
	* fileread.cc (File_read::files_read): New static variable.
	(File_read::open): Add the file to the files_read list.
	(File_read::record_file_read): New static member function.
	(File_read::write_dependency_file): New static member function.
	* fileread.h (class File_read): Declare them.
	* layout.cc (Layout::read_layout_from_file): Call record_file_read.
	(Close_task_runner::run): Call write_dependency_file if
	--dependency-file was passed.

2020-06-18  Fangrui Song  <i@maskray.me>

	PR gold/26039
	* layout.cc (Layout::finish_dynamic_section): Set DF_1_PIE.

2020-06-16  Alan Modra  <amodra@gmail.com>

	* testsuite/discard_locals_test.c: Replace uses of asm with __asm__.
	* testsuite/discard_locals_relocatable_test.c: Likewise.

2020-06-16  Alan Modra  <amodra@gmail.com>

	* testsuite/Makefile.am (export_dynamic_plugin.o): Use CXXCOMPILE.
	(plugin_test_wrap_symbols_1.o): Likewise.
	(plugin_test_wrap_symbols_2.o): Likewise.
	* testsuite/Makefile.in: Regenerate.

2020-06-15  Roland McGrath  <mcgrathr@google.com>

	Implement -z start-stop-visibility=... option.
	* options.h (class General_options): Handle -z start-stop-visibility=.
	(General_options::start_stop_visibility_enum): New public method.
	(General_options::set_start_stop_visibility_enum): New private method.
	(General_options::start_stop_visibility_enum_): New private member.
	* options.cc (General_options::General_options): Add initializer.
	(General_options::finalize): Set this->start_stop_visibility_enum_
	from string value.
	* layout.cc (Layout::define_section_symbols): Use option setting.

2020-06-06  Alan Modra  <amodra@gmail.com>

	* powerpc.cc: Update throughout for reloc renaming.

2020-05-22  Alan Modra  <amodra@gmail.com>

	PR 25882
	* powerpc.cc (merge_object_attributes): Replace name param with
	obj param.  Update callers.  Don't init FP attributes from shared
	libraries, and do not emit an error if they don't match.

2020-05-15  Nikita Ermakov  <coffe92@gmail.com>

	* powerpc.cc (do_gc_mark_symbol): Don't segfault on plugin symbols.

2020-05-14  Nick Clifton  <nickc@redhat.com>

	* po/sr.po: New Serbian translation.

2020-05-11  Alan Modra  <amodra@gmail.com>

	* powerpc.cc: Rename powerxx to power10 throughout.

2020-05-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR gold/25904
	* testsuite/Makefile.am (COMMON_TEST_C_CFLAGS): New.
	(common_test_1.o): New rule.
	(common_test_2.o): Likewise.
	(common_test_3.o): Likewise.
	(plugin_common_test_1.o): Likewise.
	(plugin_common_test_2.o): Likewise.
	(common_test_1_v1.o): Likewise.
	(common_test_1_v2.o): Likewise.
	(common_test_2_pic.o): Compile with $(COMMON_TEST_C_CFLAGS).
	(common_test_3_pic.o): Likewise.
	* testsuite/Makefile.in: Regenerated.

2020-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR gold/25426
	* x86_64.cc (Target_x86_64<size>::Relocate::tls_desc_gd_to_ie):
	For x32, relax "rex leal foo@tlsdesc(%rip), %reg" to
	"rex movl foo@gottpoff(%rip), %eax" and relax ""call *(%eax)"
	to "nopl (%rax)".
	(Target_x86_64<size>::Relocate::tls_desc_gd_to_le): For x32,
	relax "rex leal foo@tlsdesc(%rip), %reg" to
	"rex movl foo@tpoff, %eax" and relax "call *foo@tlscall(%eax)"
	to "nopl (%rax)".
	* testsuite/Makefile.am (tls_test_gnu2.o): Depend on
	gcctestdir/as.
	(tls_test_file2_gnu2.o): Likewise.
	(tls_test_c_gnu2.o): Likewise.
	* testsuite/Makefile.in: Regenerated.

2020-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR gold/25473
	* x86_64.cc (Target_x86_64<size>::Relocate::tls_desc_gd_to_ie):
	Properly check r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
	(Target_x86_64<size>::Relocate::tls_desc_gd_to_le): Properly
	relax r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
	* testsuite/Makefile.am (check_SCRIPTS): Add x86_64_gd_to_le.sh.
	(check_DATA): Add x86_64_gd_to_le.stdout.
	(MOSTLYCLEANFILES): Add x86_64_gd_to_le.
	(x86_64_gd_to_le.o): New target.
	(x86_64_gd_to_le): Likewise.
	(x86_64_gd_to_le.stdout): Likewise.
	* testsuite/Makefile.in: Regenerated.
	* testsuite/x86_64_gd_to_le.s: New file.
	* testsuite/x86_64_gd_to_le.sh: Likewise.

2020-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	* testsuite/odr_violation2.cc (Ordering::operator()): Make
	expression even more complex.

2020-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	* testsuite/ver_test_pr16504.sh: Updated.

2020-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR gold/25872
	* x86_64.cc (Output_data_plt_x86_64_bnd::do_write): Increment
	plt_offset after setting the reserved TLSDESC PLT entry.
	(Output_data_plt_x86_64_ibt<size>::do_write): Likewise.

2020-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	PR gold/25872
	* x86_64.cc (Output_data_plt_x86_64_bnd::do_address_for_local):
	Handle local IFUNC symbol.
	(Output_data_plt_x86_64_ibt::do_address_for_local): Likewise.

2020-03-19  Fangrui Song  <maskray@google.com>

    * options.h (General_options): Add --no-rosegment option.

2020-02-24  Nick Clifton  <nickc@redhat.com>

	* po/fr.po: Update French translation.

2020-01-20  Nick Clifton  <nickc@redhat.com>

	* po/uk.po: Updated Ukranian translation.

2020-01-18  Nick Clifton  <nickc@redhat.com>

	* configure: Regenerate.
	* po/gold.pot: Regenerate.

2020-01-18  Nick Clifton  <nickc@redhat.com>

	Binutils 2.34 branch created.

2020-01-01  Alan Modra  <amodra@gmail.com>

	Update year range in copyright notice of all files.

For older changes see ChangeLog-2019

Copyright (C) 2020 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Local Variables:
mode: change-log
left-margin: 8
fill-column: 74
version-control: never
End:
