2017-06-20 Eric Christopher <echristo@gmail.com>
[external/binutils.git] / gold / ChangeLog
1 2017-06-20  Eric Christopher  <echristo@gmail.com>
2
3         * aarch64.cc (scan_reloc_for_stub): Use plt_address_for_global to
4         calculate the symbol value.
5         (scan_reloc_section_for_stubs): Allow stubs to be created for
6         section symbols.
7         (maybe_apply_stub): Handle creating stubs for weak symbols to
8         match the code in scan_reloc_for_stub.
9
10 2017-06-20  James Clarke  <jrtc27@jrtc27.com>
11
12         * powerpc.cc (Stub_table::define_stub_syms): Always include object's
13         uniq_ value.
14
15 2017-06-15  Eric Christopher  <echristo@gmail.com>
16
17         * aarch64.cc: Fix a few typos and grammar-os.
18
19 2017-06-15  Jiong Wang  <jiong.wang@arm.com>
20
21         * aarch64.cc (Insn_utilities::is_mrs_tpidr_el0): New method.
22         (AArch64_relobj<size, big_endian>::try_fix_erratum_843419_optimized):
23         Return ture for some TLS relaxed sequences.
24
25 2017-06-07  Eric Christopher  <echristo@gmail.com>
26
27         * aarch64.cc (maybe_apply_stub): Add debug logging for looking
28         up stubs to undefined symbols and early return rather than
29         fail to look them up.
30         (scan_reloc_for_stub): Add debug logging for no stub creation
31         for undefined symbols.
32
33 2017-05-23  Alan Modra  <amodra@gmail.com>
34
35         PR 21503
36         * options.h: Add --emit-stub-syms option.
37         * powerpc.cc (object_id): New.
38         (Powerpc_relobj): Add uniq_ and accessor.  Sort variables for
39         better packing.
40         (Powerpc_dynobj): Sort variables for better packing.
41         (Target_powerpc::define_local): New function.
42         (Target_powerpc::group_sections): Pass stub table size to
43         Stub_table constructor.
44         (Target_powerpc::do_relax): Define stub and glink symbols.
45         (Stub_table): Add uniq_ variable, and id param to constructor.
46         (Stub_table::Plt_stub_ent): Add indx_ variable.
47         (Stub_table::Branch_stub_entries): Move typedef earlier.
48         (Stub_table::branch_stub_size): Replace "to" parameter with a
49         Branch_stub_entries iterator.
50         (Stub_table::add_long_branch_entry): Adjust to suit.
51         (Stub_table::add_plt_call_entry): Set indx_.
52         (Stub_table::define_stub_syms): New function.
53
54 2017-05-15  Eric Christopher <echristo@gmail.com>
55
56         * layout.cc (Layout::segment_precedes): Add a case for testing
57         pointer equality when determining which segment precedes
58         another.
59
60 2017-05-13  James Clarke  <jrtc27@jrtc27.com>
61
62         PR gold/21444
63         * gold.cc (Target_sparc::Relocate::relocate_tls): Local
64         variables are final for position-independent executables. This
65         has to be consistent with Target_sparc::Scan::local otherwise
66         they will disagree as to whether local-exec is used.
67
68 2017-05-12  Igor Kudrin  <ikudrin@accesssoftek.com>
69
70         PR gold/21430
71         * aarch64.cc
72         (AArch64_relobj::convert_input_section_to_relaxed_section):
73         Set the section offset to -1ULL.
74         (Target_aarch64::relocate_section): Adjust the view in case
75         of a relaxed input section.
76         * testsuite/Makefile.am (pr21430): New test.
77         * testsuite/Makefile.in: Regenerate
78         * testsuite/pr21430.s: New test source file.
79         * testsuite/pr21430.sh: New test script.
80
81 2017-04-27  Alan Modra  <amodra@gmail.com>
82
83         * testsuite/plugin_section_order.c (onload): Add missing break.
84
85 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
86
87         * mips.cc (Mips_got_entry::hash()): Shift addend to reduce
88         possibility of collisions.
89         (Mips_got_entry::equals): Fix case for GOT_TLS_LDM
90         entries.
91
92 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
93
94         * mips.cc (Mips_relobj::merge_processor_specific_data_): New data
95         member.
96         (Mips_relobj::merge_processor_specific_data): New method.
97         (Mips_relobj::do_read_symbols): Set merge_processor_specific_data_
98         to false, only if the input file is a binary or if object has no
99         contents except the section name string table and an empty symbol
100         table with the undefined symbol.
101         (Target_mips::do_finalize_sections): Refactor.  Skip empty object files
102         for merging processor-specific data.
103
104 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
105
106         * mips.cc (Target_mips::Relocate::calculated_value_): New data
107         member.
108         (Target_mips::Relocate::calculate_only_): Likewise.
109         (Target_mips::Relocate::relocate): Handle multiple consecutive
110         relocations with the same offset.
111
112 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
113
114         * mips.cc (Target_mips::Relocate::relocate): Remove redundant
115         checks for relocatable link.
116         (Mips_relocate_functions::reljalr): Likewise.
117
118 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
119
120         * mips.cc (class Mips_output_section_options): New class.
121         (Target_mips::do_make_output_section): New method.
122
123 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
124
125         * mips.cc (Mips_relocate_functions::rel26): Don't print relocation
126         overflow error message.
127         (Target_mips::relocate_special_relocatable): Improve relocation
128         overflow error message.
129         (Target_mips::Relocate::relocate): Likewise.
130
131 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
132
133         * mips.cc (symbol_refs_local): Return false if a symbol
134         is from a dynamic object.
135         (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN.
136         (Target_mips::set_gp): Refactor.  Make _gp STT_NOTYPE and
137         STB_LOCAL.
138         (Target_mips::do_finalize_sections): Set _gp after all the checks
139         for creating .got are done.
140         (Target_mips::Scan::global): Remove unused code.
141
142 2017-02-22  Alan Modra  <amodra@gmail.com>
143
144         * powerpc.cc (Target_powerpc::make_iplt_section): Check that
145         output_section exists before attempting add_output_section_data.
146         (Target_powerpc::make_brlt_section): Likewise.
147
148 2017-02-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
149
150         * mips.cc (Target_mips::Scan::get_reference_flags): Remove
151         gold_unreachable from default case.
152
153 2017-02-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
154
155         PR gold/21111
156         * mips.cc (Mips_relocate_functions::relhigher): New method.
157         (Mips_relocate_functions::relhighest): Likewise.
158         (mips_get_size_for_reloc): Add support for relocs: R_MIPS_HIGHER and
159         R_MIPS_HIGHEST.
160         (Target_mips::Scan::local): Add support for relocs: R_MIPS_HIGHER,
161         R_MIPS_HIGHEST, R_MICROMIPS_HIGHER and R_MICROMIPS_HIGHEST.
162         (Target_mips::Scan::global): Likewise.
163         (Target_mips::Scan::get_reference_flags): Likewise.
164         (Target_mips::Relocate::relocate): Call static methods for resolving
165         HIGHER and HIGHEST relocations.
166
167 2017-02-03  Rahul Chaudhry  <rahulchaudhry@google.com>
168
169         * x86_64.cc (Target_x86_64::do_can_check_for_function_pointers):
170         Return true even when building pie binaries.
171         (Target_x86_64::possible_function_pointer_reloc): Check opcode
172         for R_X86_64_PC32 relocations.
173         (Target_x86_64::local_reloc_may_be_function_pointer): Pass
174         extra arguments to local_reloc_may_be_function_pointer.
175         (Target_x86_64::global_reloc_may_be_function_pointer): Likewise.
176         * gc.h (gc_process_relocs): Add check for STT_FUNC.
177         * testsuite/Makefile.am (icf_safe_pie_test): New test case.
178         * testsuite/Makefile.in: Regenerate.
179         * testsuite/icf_safe_pie_test.sh: New shell script.
180
181 2017-02-03  Alan Modra  <amodra@gmail.com>
182
183         * powerpc.cc (Powerpc_relobj::make_toc_relative): Don't crash
184         when no .toc section exists.
185
186 2017-01-31  Cary Coutant  <ccoutant@gmail.com>
187
188         PR gold/21090
189         * x86_64.cc (Target_x86_64::can_convert_mov_to_lea): Add check
190         for predefined symbol.
191         (Target_x86_64::Relocate::relocate): Fix formatting.
192
193 2017-01-23  Rahul Chaudhry  <rahulchaudhry@google.com>
194
195         * testsuite/icf_safe_so_test.sh: Use "set -e".
196         * testsuite/icf_safe_test.sh: Likewise.
197         * testsuite/icf_test.sh: Likewise.
198
199 2017-01-23  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
200
201         * mips.cc (Mips_output_data_plt::rel_plt): Remove const from return
202         type.
203         (Target_mips::make_plt_entry): Make the sh_info field of .rel.plt
204         point to .plt.
205
206 2017-01-23  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
207
208         PR gold/21054
209         * mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol
210         to the dynamic symbol table if it is forced to local visibility.
211         (Target_mips::do_finalize_sections): Don't add __RLD_MAP symbol to the
212         dynamic symbol table if it is forced to local visibility.
213
214 2017-01-20  Nick Clifton  <nickc@redhat.com>
215
216         * aarch64.cc (Stub_template_repertoire): Change ST_E_835769_INSNS
217         from a pointer to an array.
218
219 2017-01-13  H.J. Lu  <hongjiu.lu@intel.com>
220
221         PR gold/21040
222         * powerpc.cc (Powerpc_relobj<size, big_endian>::make_toc_relative):
223         Cast 0x80008000 to uint64_t.
224
225 2017-01-12  Cary Coutant  <ccoutant@gmail.com>
226
227         * object.cc (Sized_relobj_file): Fix byte counts for calls to memmem.
228
229 2017-01-11  Cary Coutant  <ccoutant@gmail.com>
230
231         PR gold/21040
232         * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry):
233         Remove unnecessary 'typename' keyword.
234         (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise.
235         (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise.
236         (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise.
237         (Output_data_plt_x86_64_bnd::do_write): Likewise.
238
239 2017-01-11  Cary Coutant  <ccoutant@gmail.com>
240
241         PR gold/21040
242         * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry):
243         Remove unnecessary 'typename' keyword.
244         (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise.
245         (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise.
246         (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise.
247         * testsuite/copy_test_relro_1.cc (p, b, c, q): Add separate extern
248         declarations.
249
250 2017-01-11  Cary Coutant  <ccoutant@gmail.com>
251
252         PR gold/21039
253         * testsuite/script_test_13.sh: Adjust patterns to work for i386.
254         * testsuite/script_test_15a.sh: Likewise.
255         * testsuite/script_test_15b.sh: Likewise.
256         * testsuite/script_test_15c.sh: Likewise.
257
258 2017-01-11  Alan Modra  <amodra@gmail.com>
259
260         * powerpc.cc (class Powerpc_copy_relocs): New.
261         (Powerpc_copy_relocs::emit): New function.
262         (Powerpc_relobj::relatoc_, toc_, no_toc_opt_): New variables.
263         (Powerpc_relobj::toc_shndx, set_no_toc_opt, no_toc_opt): New inlines.
264         (Powerpc_relobj::do_relocate_sections): New function.
265         (Powerpc_relobj::make_toc_relative): Likewise.
266         (Powerpc_relobj::do_find_special_sections): Stash away .rela.toc
267         and .toc too.
268         (ok_lo_toc_insn): Move earlier, and handle more insns.
269         (Target_powerpc::Scan::local): If optimizing toc accesses, set
270         no_toc_opt for entries we can't edit.  Check insn validity.
271         Emit "toc optimization is not supported" warning, downgraded
272         from error.
273         (Target_powerpc::Scan::global): Likewise.
274         (Target_powerpc::Relocate::relocate): Edit TOC indirect code
275         to TOC relative.  Don't emit "toc optimization is not supported"
276         error here.
277
278 2017-01-10  Cary Coutant  <ccoutant@gmail.com>
279
280         * aarch64.cc (AArch64_relobj::do_relocate_sections): Call
281         Sized_relobj_file::relocate_section_range().
282         * arm.cc (Arm_relobj::do_relocate_sections): Likewise.
283         * object.h (Sized_relobj_file::relocate_section_range): New method.
284         * reloc.cc (Sized_relobj_file::do_relocate_sections): Move
285         implementation...
286         (Sized_relobj_file::relocate_section_range): ...to new method.
287
288 2017-01-10  Alan Modra  <amodra@gmail.com>
289
290         * testsuite/ver_test_8.sh: Accept .TOC. in lieu of
291         _GLOBAL_OFFSET_TABLE_.  Allow zero count.
292         * testsuite/copy_test_relro_1.cc (c, q): New vars.
293         * testsuite/copy_test_relro.cc: Rewrite to test read-only
294         status of variables directly.  Reference new vars in
295         read-only data.
296
297 2017-01-10  Alan Modra  <amodra@gmail.com>
298
299         * options.h: Add --secure-plt option.
300         * powerpc.cc (Target_powerpc::Scan::local): Detect and error
301         on -fPIC -mbss-plt code.
302         (Target_powerpc::Scan::global): Likewise.
303
304 2017-01-09  Alan Modra  <amodra@gmail.com>
305
306         * powerpc.cc (Target_powerpc::make_plt_section): Point sh_info of
307         ".rela.plt" at ".plt".
308
309 2017-01-07  Alan Modra  <amodra@gmail.com>
310
311         * powerpc.cc: Use shorter equivalent elfcpp typedef for
312         Reltype and reloc_size throughout.
313         (Target_powerpc::symval_for_branch): Exclude dynamic symbols.
314         (Target_powerpc::Scan::local): Use local var r_sym.
315         (Target_powerpc::Scan::global: Likewise.
316         (Target_powerpc::Relocate::relocate): Delete shadowing r_sym.
317
318 2017-01-02  Alan Modra  <amodra@gmail.com>
319
320         Update year range in copyright notice of all files.
321
322 For older changes see ChangeLog-2016
323 \f
324 Copyright (C) 2017 Free Software Foundation, Inc.
325
326 Copying and distribution of this file, with or without modification,
327 are permitted in any medium without royalty provided the copyright
328 notice and this notice are preserved.
329
330 Local Variables:
331 mode: change-log
332 left-margin: 8
333 fill-column: 74
334 version-control: never
335 End: