mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
0af4fcc25d
This patch supports linking powerpc64 glibc with gold, specifically the __tls_get_addr call in elf/dl-sym.c. That call lacks marker relocations tying it to the arg setup instructions, but the arg setup insns are also contructed lacking the usual relocations on a Global Dynamic TLS code sequence. So there is no chance that anything in that sequence might be wrongly edited by the linker. In fact, the aim of linking glibc could have been supported by simply omitting the error whenever TLS optimisation is disabled, as it is when linking a shared library. The patch goes further than that, disabling TLS GD and LD sequence optimisation on a per-object basis for object files lacking marker relocs. PR gold/27625 * powerpc.cc (Powerpc_relobj): Add no_tls_marker_, tls_marker_, and tls_opt_error_ variables and accessors. (Target_powerpc::Scan::local, global): Call set_tls_marker and set_no_tls_marker for GD and LD code sequence relocations. (Target_powerpc::Relocate::relocate): Downgrade the "lacks marker reloc" error to a warning when safe to do so, and omit the error entirely if not optimising TLS sequences. Do not optimise GD and LD sequences for objects lacking marker relocs. (Target_powerpc::relocate_relocs): Heed no_tls_marker here too.
160 lines
5.7 KiB
Plaintext
160 lines
5.7 KiB
Plaintext
2021-03-30 Alan Modra <amodra@gmail.com>
|
||
|
||
PR gold/27625
|
||
* powerpc.cc (Powerpc_relobj): Add no_tls_marker_, tls_marker_,
|
||
and tls_opt_error_ variables and accessors.
|
||
(Target_powerpc::Scan::local, global): Call set_tls_marker and
|
||
set_no_tls_marker for GD and LD code sequence relocations.
|
||
(Target_powerpc::Relocate::relocate): Downgrade the "lacks marker
|
||
reloc" error to a warning when safe to do so, and omit the error
|
||
entirely if not optimising TLS sequences. Do not optimise GD and
|
||
LD sequences for objects lacking marker relocs.
|
||
(Target_powerpc::relocate_relocs): Heed no_tls_marker here too.
|
||
|
||
2021-03-19 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
PR gold/27615
|
||
* errors.cc (Errors::trace): New method.
|
||
(gold_trace): New function.
|
||
* errors.h (Errors::trace): New method.
|
||
* gold.h (gold_trace): New function.
|
||
* object.cc (Input_objects::add_object): Use gold_trace to print
|
||
object file names.
|
||
|
||
2021-03-19 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
PR gold/pr23870
|
||
* testsuite/aarch64_pr23870_bar.c: Return a magic value.
|
||
* testsuite/aarch64_pr23870_foo.c: Check the magic value and return
|
||
success or failure.
|
||
|
||
2021-03-19 Holger Berger <holger.berger@googlemail.com>
|
||
|
||
PR gold/26541
|
||
* output.cc (gold_fallocate): Use errno when calling system fallocate.
|
||
|
||
2021-03-19 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
PR gold/26585
|
||
* main.cc (main): Fix typo in previous patch.
|
||
|
||
2021-03-19 Duncan Simpson <dr.duncan.p.simpson@gmail.com>
|
||
|
||
PR gold/26585
|
||
* configure.ac: Add check for mallinfo2.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate from previous commit.
|
||
* main.cc (main): Use mallinfo2 if available.
|
||
|
||
2021-03-19 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
PR gold/27246
|
||
* dwarf_reader.cc (Dwarf_abbrev_table::do_get_abbrev): Handle
|
||
DW_FORM_implicit_const.
|
||
(Dwarf_ranges_table::read_ranges_table): Add version parameter;
|
||
Adjust all callers. Look for .debug_rnglists section if DWARF 5.
|
||
(Dwarf_ranges_table::read_range_list_v5): New method.
|
||
(Dwarf_die::read_attributes): Handle new DWARF 5 DW_FORM codes.
|
||
(Dwarf_die::skip_attributes): Likewise.
|
||
(Dwarf_info_reader::do_parse): Support DWARF 5 unit header format.
|
||
(Dwarf_info_reader::read_3bytes_from_pointer): New method.
|
||
(Sized_dwarf_line_info::Sized_dwarf_line_info): Initialize
|
||
str_buffer_, str_buffer_start, reloc_map_, line_number_map_.
|
||
Look for .debug_line_str section.
|
||
(Sized_dwarf_line_info::read_header_prolog): Support DWARF 5 prolog.
|
||
(Sized_dwarf_line_info::read_header_tables): Rename to...
|
||
(Sized_dwarf_line_info::read_header_tables_v2): ... this.
|
||
(Sized_dwarf_line_info::read_header_tables_v5): New method.
|
||
(Sized_dwarf_line_info::process_one_opcode): Insert missing "this->".
|
||
Change advance_line to signed int64_t.
|
||
(Sized_dwarf_line_info::read_lines): Add endptr parameter; adjust
|
||
callers. Insert missing "this->".
|
||
(Sized_dwarf_line_info::read_line_mappings): Support DWARF 5.
|
||
(Sized_dwarf_line_info::do_addr2line): Add debug code.
|
||
* dwarf_reader.h (Dwarf_abbrev_table::Attribute): Add implicit_const
|
||
field. Adjust constructor.
|
||
(Dwarf_abbrev_table::add_sttribute): Add implicit_const parameter.
|
||
(Dwarf_ranges_table::read_ranges_table): Add version parameter.
|
||
(Dwarf_ranges_table::read_range_list_v5): New method.
|
||
(Dwarf_die): Remove unused attr_off field.
|
||
(Dwarf_info_reader::Dwarf_info_reader): Initialize unit_type_ field.
|
||
(Dwarf_info_reader::is_type_unit): New method.
|
||
(Dwarf_info_reader::read_3bytes_from_pointer): New method.
|
||
(Dwarf_info_reader::read_range_list): Call read_range_list_v5 for
|
||
DWARF 5 range lists.
|
||
(Dwarf_info_reader::is_type_unit_): Remove.
|
||
(Dwarf_info_reader::unit_type_): New field.
|
||
(Sized_dwarf_line_info::~Sized_dwarf_line_info): Delete
|
||
str_buffer_start_.
|
||
(Sized_dwarf_line_info::read_header_tables): Rename to...
|
||
(Sized_dwarf_line_info::read_header_tables_v2): ... this.
|
||
(Sized_dwarf_line_info::read_header_tables_v5): New method.
|
||
(Sized_dwarf_line_info::read_lines): Add endptr parameter.
|
||
(Sized_dwarf_line_info::Dwarf_line_infoHeader): Add address_size field.
|
||
(Sized_dwarf_line_info::str_buffer_): New field.
|
||
(Sized_dwarf_line_info::str_buffer_end_): New field.
|
||
(Sized_dwarf_line_info::str_buffer_start_): New field.
|
||
(Sized_dwarf_line_info::end_of_header_length_): New field.
|
||
(Sized_dwarf_line_info::end_of_unit_): New field.
|
||
|
||
2021-01-28 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR gold/27246
|
||
* dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog):
|
||
Skip address size and segment selector for DWARF5.
|
||
|
||
2021-01-19 Alan Modra <amodra@gmail.com>
|
||
|
||
PR 27203
|
||
* powerpc.cc (do_plt_fde_location): Remove doing_static_link
|
||
assertion.
|
||
|
||
2021-01-17 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* testsuite/ifuncmain6pie.c: Remove non-JUMP_SLOT relocations
|
||
against foo in ifuncmod6.so.
|
||
* testsuite/ifuncmod6.c: Likewise.
|
||
|
||
2021-01-14 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/fr.po: Updated French translation.
|
||
|
||
2021-01-11 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/sr.po: Updated Serbian translation.
|
||
* po/uk.po: Updated Ukranian translation.
|
||
|
||
2021-01-09 Nick Clifton <nickc@redhat.com>
|
||
|
||
* 2.36 release branch crated.
|
||
|
||
2021-01-03 Alan Modra <amodra@gmail.com>
|
||
|
||
PR 27140
|
||
* powerpc.cc (Target_powerpc::Branch_info::make_stub): Only access
|
||
object->st_other() when 64-bit.
|
||
(Stub_table::add_long_branch_entry): Ignore "other" when 32-bit.
|
||
|
||
2021-01-01 Nicolas Boulenguez <nicolas@debian.org>
|
||
|
||
* tilegx.cc: Correct comment spelling.
|
||
|
||
2021-01-01 Alan Modra <amodra@gmail.com>
|
||
|
||
Update year range in copyright notice of all files.
|
||
|
||
For older changes see ChangeLog-2020
|
||
|
||
Copyright (C) 2021 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:
|