Fix symbol resolution with linker plugins for defsym symbols.
[external/binutils.git] / gold / ChangeLog
1 2018-02-07  Sriraman Tallam  <tmsriram@google.com>
2
3         * expression.cc (Symbol_expression::set_expr_sym_in_real_elf):
4         New method.
5         (Unary_expression::set_expr_sym_in_real_elf): New method.
6         (Binary_expression::set_expr_sym_in_real_elf): New method.
7         (Trinary_expression::set_expr_sym_in_real_elf): New method.
8         * plugin.cc (get_symbol_resolution_info): Fix symbol resolution if
9         defined or used in defsyms.
10         * plugin.h (Plugin_manager::is_defsym_def): New method.
11         (Plugin_manager::Plugin_manager): Initialize defsym_defines_set_.
12         (Plugin_manager::defsym_defines_set_): New member.
13         (Plugin_manager::Defsym_defines_set): New typedef.
14         * script.cc (Script_options::set_defsym_uses_in_real_elf): New method.
15         (Script_options::find_defsym_defs): New method.
16         * script.h (Expression::set_expr_sym_in_real_elf): New method.
17         (Symbol_assignment::is_defsym): New method.
18         (Symbol_assignment::value): New method.
19         (Script_options::find_defsym_defs): New method.
20         (Script_options::set_defsym_uses_in_real_elf): New method.
21         * testsuite/Makefile.am (plugin_test_defsym): New test.
22         * testsuite/Makefile.in: Regenerate.
23         * testsuite/plugin_test.c: Check for new symbol resolution.
24         * testsuite/plugin_test_defsym.sh: New script.
25         * testsuite/plugin_test_defsym.c: New test source.
26
27 2018-02-07  Alan Modra  <amodra@gmail.com>
28
29         Revert 2018-01-17  Alan Modra  <amodra@gmail.com>
30         * options.h: Remove --speculate-indirect-jumps support.
31         * powerpc.cc: Likewise.
32
33 2018-02-02  Cary Coutant  <ccoutant@gmail.com>
34
35         * PR gold/22776
36         * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog): Add
37         support for DWARF-4 line number tables.
38         * dwarf_reader.h (Sized_dwarf_line_info::max_ops_per_insn): New field.
39
40 2018-01-18  Alan Modra  <amodra@gmail.com>
41
42         * powerpc.cc (param_plt_align): New function supplying default
43         --plt-align values.  Use it..
44         (Stub_table::plt_call_align): ..here, and..
45         (Output_data_glink::global_entry_align): ..here.
46         (Stub_table::stub_align): Correct 32-bit minimum alignment.
47
48 2018-01-17  Alan Modra  <amodra@gmail.com>
49
50         * options.h (speculate_indirect_jumps): New option.
51         * powerpc.cc (beqctrm, beqctrlm, crseteq): New insn constants.
52         (output_bctr): New function.
53         (Stub_table::plt_call_size): Add space for speculation barrier.
54         (Stub_table::branch_stub_size): Likewise.
55         (Output_data_glink::pltresolve_size): Likewise.
56         (Stub_table::do_write): Output speculation barriers.
57
58 2018-01-17  Alan Modra  <amodra@gmail.com>
59
60         * options.h (plt_align): Support for PowerPC32 too.
61         * powerpc.cc (Stub_table::stub_align): Heed --plt-align for 32-bit.
62         (Stub_table::plt_call_size, branch_stub_size): Tidy.
63         (Stub_table::plt_call_align): Implement using stub_align.
64         (Output_data_glink::global_entry_align): New function.
65         (Output_data_glink::global_entry_off): New function.
66         (Output_data_glink::global_entry_address): Use global_entry_off.
67         (Output_data_glink::pltresolve_size): New function, replacing
68         pltresolve_size_ constant.  Update all uses.
69         (Output_data_glink::add_global_entry): Align offset.
70         (Output_data_glink::set_final_data_size): Use global_entry_align.
71         (Stub_table::do_write): Don't pad __glink_PLTrelsolve with nops.
72         Tidy stub output.  Use global_entry_off.
73
74 2018-01-15  Cary Coutant  <ccoutant@gmail.com>
75
76         PR gold/22694
77         * options.h (-fuse-ld): Add correct helparg.
78
79 2018-01-15  Nick Clifton  <nickc@redhat.com>
80
81         * po/uk.po: Updated Ukranian translation.
82
83 2018-01-13  Nick Clifton  <nickc@redhat.com>
84
85         * po/gold.pot: Regenerated.
86
87 2018-01-13  Nick Clifton  <nickc@redhat.com>
88
89         2.30 branch created.
90
91 2018-01-12  Cary Coutant  <ccoutant@gmail.com>
92
93         * NEWS: Add new features in 1.15.
94         * version.cc (version_string): Bump to 1.15.
95
96 2018-01-12  Sterling Augustine  <saugustine@google.com>
97
98         * cref.cc (Cref_inputs::Cref_table_compare::operator): Add
99         conditionals and calls to is_forwarder.
100
101 2018-01-03  Alan Modra  <amodra@gmail.com>
102
103         Update year range in copyright notice of all files.
104
105 For older changes see ChangeLog-2017
106 \f
107 Copyright (C) 2018 Free Software Foundation, Inc.
108
109 Copying and distribution of this file, with or without modification,
110 are permitted in any medium without royalty provided the copyright
111 notice and this notice are preserved.
112
113 Local Variables:
114 mode: change-log
115 left-margin: 8
116 fill-column: 74
117 version-control: never
118 End: