Fix case where IR file provides symbol visibility but replacement file does not.
[external/binutils.git] / gold / ChangeLog
1 2018-03-26  Cary Coutant  <ccoutant@gmail.com>
2
3 gold/
4         PR gold/22868
5         * plugin.cc (Sized_pluginobj::do_add_symbols): Use a real section
6         index instead of SHN_ABS for defined symbols.
7         * testsuite/Makefile.am (plugin_pr22868): New test case.
8         * testsuite/Makefile.in: Regenerate
9         * testsuite/plugin_pr22868.sh: New test script.
10         * testsuite/plugin_pr22868_a.c: New source file.
11         * testsuite/plugin_pr22868_b.c: New source file.
12
13 2018-03-23  Cary Coutant  <ccoutant@gmail.com>
14
15         * plugin.cc (link_or_copy_file): Remove newlines from warning messages.
16         Add pedantic check for return value from ::write.
17
18 2018-03-23  Cary Coutant  <ccoutant@gmail.com>
19
20         * debug.h (DEBUG_PLUGIN): New constant.
21         (DEBUG_ALL): Add DEBUG_PLUGIN.
22         (debug_string_to_enum): Likewise.
23         * plugin.cc (make_sized_plugin_object): Add filename parameter.
24         (Plugin_recorder): New class.
25         (Plugin_manager::~Plugin_manager): Delete recorder_.
26         (Plugin_manager::load_plugins): Create and initialize recorder_.
27         (Plugin_manager::claim_file): Record claimed and unclaimed files.
28         (Plugin_manager::make_plugin_object): Use object name as name for
29         plugin object, if available.
30         (Plugin_manager::add_input_file): Record replacement files.
31         (Sized_pluginobj::do_add_symbols): Record plugin symbols.
32         (Plugin_finish::run): Call Plugin_recorder::finish().
33         (make_sized_plugin_object): Add filename parameter and pass to
34         Sized_pluginobj constructor.
35         * plugin.h (Plugin::filename): New method.
36         (Plugin::recorder): New method.
37         (Plugin::recorder_): New data member.
38
39 2018-03-07  Sriraman Tallam  <tmsriram@google.com>
40
41         * layout.cc (Layout::default_section_order): Check for text section
42         prefixes.
43         (Layout::text_section_name_mapping): New static member.
44         (Layout::text_section_name_mapping_count): New static member.
45         (Layout::match_section_name): New static function.
46         (Layout::output_section_name): Check for text section prefixes.
47         * layout.h (Output_section_order::ORDER_TEXT_HOT): New enum value.
48         (Output_section_order::ORDER_TEXT_STARTUP): New enum value.
49         (Output_section_order::ORDER_TEXT_EXIT): New enum value.
50         (Output_section_order::ORDER_TEXT_UNLIKELY): New enum value.
51         (Layout::text_section_name_mapping): New static member.
52         (Layout::text_section_name_mapping_count): New static member.
53         (Layout::match_section_name): New static function.
54         * options.h (keep_text_section_prefix): New -z option.
55         * testsuite/Makefile.am (keep_text_section_prefix): New test.
56         * testsuite/Makefile.in: Regenerate.
57         * testsuite/keep_text_section_prefix.cc: New test source.
58         * testsuite/keep_text_section_prefix.sh: New test script.
59
60 2018-02-22  Sriraman Tallam  <tmsriram@google.com>
61
62         * plugin.cc (get_wrap_symbols): New plugin interface.
63         (load): Add get_wrap_symbols to transfer vector.
64         * plugin-api.h (ld_plugin_get_wrap_symbols): New plugin interface.
65         * testsuite/plugin_test.c (onload): Call and check get_wrap_symbols
66         interface.
67         * testsuite/plugin_test_wrap_symbols.sh: New test script.
68         * testsuite/plugin_test_wrap_symbols_1.cc: New file.
69         * testsuite/plugin_test_wrap_symbols_2.cc: New file.
70         * testsuite/Makefile.am (plugin_test_wrap_symbols): New test.
71         * testsuite/Makefile.in: Regenerate.
72
73 2018-02-07  Sriraman Tallam  <tmsriram@google.com>
74
75         * expression.cc (Symbol_expression::set_expr_sym_in_real_elf):
76         New method.
77         (Unary_expression::set_expr_sym_in_real_elf): New method.
78         (Binary_expression::set_expr_sym_in_real_elf): New method.
79         (Trinary_expression::set_expr_sym_in_real_elf): New method.
80         * plugin.cc (get_symbol_resolution_info): Fix symbol resolution if
81         defined or used in defsyms.
82         * plugin.h (Plugin_manager::is_defsym_def): New method.
83         (Plugin_manager::Plugin_manager): Initialize defsym_defines_set_.
84         (Plugin_manager::defsym_defines_set_): New member.
85         (Plugin_manager::Defsym_defines_set): New typedef.
86         * script.cc (Script_options::set_defsym_uses_in_real_elf): New method.
87         (Script_options::find_defsym_defs): New method.
88         * script.h (Expression::set_expr_sym_in_real_elf): New method.
89         (Symbol_assignment::is_defsym): New method.
90         (Symbol_assignment::value): New method.
91         (Script_options::find_defsym_defs): New method.
92         (Script_options::set_defsym_uses_in_real_elf): New method.
93         * testsuite/Makefile.am (plugin_test_defsym): New test.
94         * testsuite/Makefile.in: Regenerate.
95         * testsuite/plugin_test.c: Check for new symbol resolution.
96         * testsuite/plugin_test_defsym.sh: New script.
97         * testsuite/plugin_test_defsym.c: New test source.
98
99 2018-02-07  Alan Modra  <amodra@gmail.com>
100
101         Revert 2018-01-17  Alan Modra  <amodra@gmail.com>
102         * options.h: Remove --speculate-indirect-jumps support.
103         * powerpc.cc: Likewise.
104
105 2018-02-02  Cary Coutant  <ccoutant@gmail.com>
106
107         * PR gold/22776
108         * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog): Add
109         support for DWARF-4 line number tables.
110         * dwarf_reader.h (Sized_dwarf_line_info::max_ops_per_insn): New field.
111
112 2018-01-18  Alan Modra  <amodra@gmail.com>
113
114         * powerpc.cc (param_plt_align): New function supplying default
115         --plt-align values.  Use it..
116         (Stub_table::plt_call_align): ..here, and..
117         (Output_data_glink::global_entry_align): ..here.
118         (Stub_table::stub_align): Correct 32-bit minimum alignment.
119
120 2018-01-17  Alan Modra  <amodra@gmail.com>
121
122         * options.h (speculate_indirect_jumps): New option.
123         * powerpc.cc (beqctrm, beqctrlm, crseteq): New insn constants.
124         (output_bctr): New function.
125         (Stub_table::plt_call_size): Add space for speculation barrier.
126         (Stub_table::branch_stub_size): Likewise.
127         (Output_data_glink::pltresolve_size): Likewise.
128         (Stub_table::do_write): Output speculation barriers.
129
130 2018-01-17  Alan Modra  <amodra@gmail.com>
131
132         * options.h (plt_align): Support for PowerPC32 too.
133         * powerpc.cc (Stub_table::stub_align): Heed --plt-align for 32-bit.
134         (Stub_table::plt_call_size, branch_stub_size): Tidy.
135         (Stub_table::plt_call_align): Implement using stub_align.
136         (Output_data_glink::global_entry_align): New function.
137         (Output_data_glink::global_entry_off): New function.
138         (Output_data_glink::global_entry_address): Use global_entry_off.
139         (Output_data_glink::pltresolve_size): New function, replacing
140         pltresolve_size_ constant.  Update all uses.
141         (Output_data_glink::add_global_entry): Align offset.
142         (Output_data_glink::set_final_data_size): Use global_entry_align.
143         (Stub_table::do_write): Don't pad __glink_PLTrelsolve with nops.
144         Tidy stub output.  Use global_entry_off.
145
146 2018-01-15  Cary Coutant  <ccoutant@gmail.com>
147
148         PR gold/22694
149         * options.h (-fuse-ld): Add correct helparg.
150
151 2018-01-15  Nick Clifton  <nickc@redhat.com>
152
153         * po/uk.po: Updated Ukranian translation.
154
155 2018-01-13  Nick Clifton  <nickc@redhat.com>
156
157         * po/gold.pot: Regenerated.
158
159 2018-01-13  Nick Clifton  <nickc@redhat.com>
160
161         2.30 branch created.
162
163 2018-01-12  Cary Coutant  <ccoutant@gmail.com>
164
165         * NEWS: Add new features in 1.15.
166         * version.cc (version_string): Bump to 1.15.
167
168 2018-01-12  Sterling Augustine  <saugustine@google.com>
169
170         * cref.cc (Cref_inputs::Cref_table_compare::operator): Add
171         conditionals and calls to is_forwarder.
172
173 2018-01-03  Alan Modra  <amodra@gmail.com>
174
175         Update year range in copyright notice of all files.
176
177 For older changes see ChangeLog-2017
178 \f
179 Copyright (C) 2018 Free Software Foundation, Inc.
180
181 Copying and distribution of this file, with or without modification,
182 are permitted in any medium without royalty provided the copyright
183 notice and this notice are preserved.
184
185 Local Variables:
186 mode: change-log
187 left-margin: 8
188 fill-column: 74
189 version-control: never
190 End: