Remove info message for every erratum 843419 found and fixed.
[external/binutils.git] / gold / ChangeLog
1 2016-02-11 Rahul Chaudhry  <rahulchaudhry@google.com>
2
3         * aarch64.cc (Target_aarch64::scan_erratum_843419_span): Remove
4         info message for every erratum 843419 found and fixed.
5
6 2016-02-07  Cary Coutant  <ccoutant@gmail.com>
7
8         PR gold/18695
9         * x86_64.cc (Target_x86_64::Relocate::relocate): Add additional
10         information to relocation overflow errors.
11
12 2016-02-06  Cary Coutant  <ccoutant@gmail.com>
13
14         PR gold/18695
15         * x86_64.cc (X86_64_relocate_functions::pcrela32_check): Fix x32
16         overflow checking when symbol value + addend < 0.
17
18 2016-02-06  Cary Coutant  <ccoutant@gmail.com>
19
20         PR gold/19577
21         * reloc.h (Limits): New class.
22         (Bits::has_overflow32): Use min/max values from Limits.
23         (Bits::has_unsigned_overflow32): Likewise.
24         (Bits::has_signed_unsigned_overflow32): Likewise.
25         (Bits::has_overflow): Likewise.
26         (Bits::has_unsigned_overflow): Likewise.
27         (Bits::has_signed_unsigned_overflow64): Likewise.
28
29 2016-02-06  Cary Coutant  <ccoutant@gmail.com>
30
31         PR gold/19567
32         * reloc.h (Relocate_functions::Overflow_check): Add comments.
33         * x86_64.cc (X86_64_relocate_functions): New class.
34         (Target_x86_64::Relocate::relocate): Use the new class.
35         * testsuite/Makefile.am (x86_64_overflow_pc32): Add -Tdata option.
36         (x32_overflow_pc32): New test case.
37         * testsuite/Makefile.in: Regenerate.
38         * testsuite/x32_overflow_pc32.sh: New script.
39         * testsuite/x86_64_overflow_pc32.s: Remove .space directive.
40
41 2016-02-06  Cary Coutant  <ccoutant@gmail.com>
42
43         PR gold/19577
44         * reloc.h (Bits::has_unsigned_overflow32): Fix static_cast.
45         (Bits::has_unsigned_overflow): Remove unnecessary static_cast.
46
47 2016-02-06  Cary Coutant  <ccoutant@gmail.com>
48
49         PR gold/19577
50         * reloc.h (Bits::has_unsigned_overflow32): Fix unsigned/signed
51         comparison.
52         (Bits::has_unsigned_overflow): Likewise.
53
54 2016-02-06  Marcin Koƛcielnicki  <koriakin@0x04.net>
55
56         * i386.cc (Target_i386::is_call_to_non_split): Add view and view_size
57         parameters.
58         * reloc.cc (Sized_relobj_file::split_stack_adjust_reltype): Pass view
59         and view_size to is_call_to_non_split.
60         * target.cc (Target::is_call_to_non_split): Add view and view_size
61         parameters.
62         * target.h (class Target): Likewise.
63
64 2016-02-05  Sriraman Tallam  <tmsriram@google.com>
65
66         * icf.cc (get_rel_addend): New function.
67         (get_section_contents):  Move merge section addend computation to a
68         new function.  Ignore negative values for SHT_REL and SHT_RELA addends.
69         Fix bug to not read past the length of the section.
70
71 2016-02-05  Cary Coutant  <ccoutant@gmail.com>
72             Andrew Senkevich  <andrew.senkevich@intel.com>
73
74         PR gold/18695
75         * x86_64.cc (Target_x86_64::Relocate::relocate): Add overflow
76         checking for R_X86_64_32, R_X86_64_32S, R_X86_64_PC32, and
77         R_X86_64_PLT32.
78         * testsuite/Makefile.am (x86_64_overflow_pc32): New test.
79         * testsuite/x86_64_overflow_pc32.sh: New test script.
80         * testsuite/x86_64_overflow_pc32.s: New source file.
81
82 2016-02-05  Cary Coutant  <ccoutant@gmail.com>
83
84         PR gold/18695
85         * reloc.h (Relocate_functions::Address): New typedef.
86         (Relocate_functions::Addendtype): New typedef.
87         (Relocate_functions::Overflow_check): New enum type.
88         (Relocate_functions::Reloc_status): New enum type.
89         (Relocate_functions::check_overflow): New function template.
90         (Relocate_functions::rel): Add check parameter; check for overflow.
91         (Relocate_functions::rel_unaligned): Likewise.
92         (Relocate_functions::rela): Likewise.
93         (Relocate_functions::pcrel): Likewise.
94         (Relocate_functions::pcrel_unaligned): Likewise.
95         (Relocate_functions::pcrela): Likewise.
96         (Relocate_functions::rel8): Adjust parameter types.
97         (Relocate_functions::rela8): Likewise.
98         (Relocate_functions::pcrel8): Likewise.
99         (Relocate_functions::pcrela8): Likewise.
100         (Relocate_functions::rel16): Likewise.
101         (Relocate_functions::rela168): Likewise.
102         (Relocate_functions::pcrel16): Likewise.
103         (Relocate_functions::pcrela16): Likewise.
104         (Relocate_functions::rel32): Likewise.
105         (Relocate_functions::rel32_unaligned): Likewise.
106         (Relocate_functions::rela32): Likewise.
107         (Relocate_functions::pcrel32): Likewise.
108         (Relocate_functions::pcrel32_unaligned): Likewise.
109         (Relocate_functions::pcrela32): Likewise.
110         (Relocate_functions::rel8_check): New function.
111         (Relocate_functions::rela8_check): New function.
112         (Relocate_functions::pcrel8_check): New function.
113         (Relocate_functions::pcrela8_check): New function.
114         (Relocate_functions::rel16_check): New function.
115         (Relocate_functions::rela168_check): New function.
116         (Relocate_functions::pcrel16_check): New function.
117         (Relocate_functions::pcrela16_check): New function.
118         (Relocate_functions::rel32_check): New function.
119         (Relocate_functions::rel32_unaligned_check): New function.
120         (Relocate_functions::rela32_check): New function.
121         (Relocate_functions::pcrel32_check): New function.
122         (Relocate_functions::pcrel32_unaligned_check): New function.
123         (Relocate_functions::pcrela32_check): New function.
124         (Bits::has_unsigned_overflow32): New function.
125         (Bits::has_unsigned_overflow): New function.
126         * testsuite/Makefile.am (overflow_unittest): New test.
127         * testsuite/Makefile.in: Regenerate.
128         * testsuite/overflow_unittest.cc: New source file.
129
130 2016-02-04  Alan Modra  <amodra@gmail.com>
131
132         * powerpc.cc (relocate): Adjust last patch for big-endian.
133
134 2016-02-02  Alan Modra  <amodra@gmail.com>
135
136         * powerpc.cc (relocate): Further restrict ELFv2 entry optimization.
137
138 2016-01-15 Han Shen  <shenhan@google.com>
139
140         PR gold/19472 - need pc-relative stubs.
141
142         * aarch64.cc (Reloc_stub::stub_type_for_reloc): Return PC-relative
143         stub type for DSOs and pie executables.
144
145 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
146
147         * i386.cc (Target_i386::Classify_reloc::get_r_addend): Remove
148         'typename'.
149
150 2016-01-12  Cary Coutant  <ccoutant@gmail.com>
151
152         * arm.cc (Target_arm::Classify_reloc::get_r_addend): New method.
153         * i386.cc (Target_i386::Classify_reloc::get_r_addend): New method.
154         * mips.cc (Target_arm::Mips_classify_reloc::get_r_addend): (Both
155         specializations) New method.
156
157 2016-01-11  Cary Coutant  <ccoutant@gmail.com>
158
159         PR gold/19353
160         * aarch64.cc (Target_aarch64::relocate_tls): Don't insist that
161         we have a TLS segment for GD-to-IE optimization.
162         * i386.cc (Target_i386::tls_gd_to_ie): Remove tls_segment parameter.
163         Adjust all calls.
164         (Target_i386::tls_desc_gd_to_ie): Likewise.
165         (Target_i386::relocate_tls): Don't insist that we have a TLS segment
166         for TLSDESC GD-to-IE optimizations.
167         * x86_64.cc (Target_x86_64::tls_gd_to_ie): Remove tls_segment parameter.
168         Adjust all calls.
169         (Target_x86_64::tls_desc_gd_to_ie): Likewise.
170         (Target_x86_64::relocate_tls): Don't insist that we have a TLS segment
171         for TLSDESC GD-to-IE optimizations.
172
173 2016-01-11  Cary Coutant  <ccoutant@gmail.com>
174
175         Refactor gold to enable support for MIPS-64 relocation format.
176
177         * gc.h (get_embedded_addend_size): Remove sh_type parameter.
178         (gc_process_relocs): Remove sh_type template parameter.
179         Use Classify_reloc to access r_sym, r_type, and r_addend fields.
180         * object.h (Sized_relobj_file::split_stack_adjust): Add target
181         parameter.
182         (Sized_relobj_file::split_stack_adjust_reltype): Likewise.
183         * reloc-types.h (Reloc_types::copy_reloc_addend): (SHT_REL and SHT_RELA
184         specializations) Remove.
185         * reloc.cc (Emit_relocs_strategy): Rename and move to target-reloc.h.
186         (Sized_relobj_file::emit_relocs_scan): Call Target::emit_relocs_scan().
187         (Sized_relobj_file::emit_relocs_scan_reltype): Remove.
188         (Sized_relobj_file::split_stack_adjust): Add target parameter.
189         Adjust all callers.
190         (Sized_relobj_file::split_stack_adjust_reltype): Likewise. Call
191         Target::get_r_sym() to get r_sym field from relocations.
192         (Track_relocs::next_symndx): Call Target::get_r_sym().
193         * target-reloc.h (scan_relocs): Remove sh_type template parameter;
194         add Classify_reloc template parameter.  Use for accessing r_sym and
195         r_type.
196         (relocate_section): Likewise.
197         (Default_classify_reloc): New class (renamed and moved from reloc.cc).
198         (Default_scan_relocatable_relocs): Remove sh_type template parameter.
199         (Default_scan_relocatable_relocs::Reltype): New typedef.
200         (Default_scan_relocatable_relocs::reloc_size): New const.
201         (Default_scan_relocatable_relocs::sh_type): New const.
202         (Default_scan_relocatable_relocs::get_r_sym): New method.
203         (Default_scan_relocatable_relocs::get_r_type): New method.
204         (Default_emit_relocs_strategy): New class.
205         (scan_relocatable_relocs): Replace sh_type template parameter with
206         Scan_relocatable_relocs class.  Use it to access r_sym and r_type
207         fields.
208         (relocate_relocs): Replace sh_type template parameter with
209         Classify_reloc class.  Use it to access r_sym and r_type fields.
210         * target.h (Target::is_call_to_non_split): Replace r_type parameter
211         with pointer to relocation. Adjust all callers.
212         (Target::do_is_call_to_non_split): Likewise.
213         (Target::emit_relocs_scan): New virtual method.
214         (Sized_target::get_r_sym): New virtual method.
215         * target.cc (Target::do_is_call_to_non_split): Replace r_type parameter
216         with pointer to relocation.
217
218         * aarch64.cc (Target_aarch64::emit_relocs_scan): New method.
219         (Target_aarch64::Relocatable_size_for_reloc): Remove.
220         (Target_aarch64::gc_process_relocs): Use Default_classify_reloc.
221         (Target_aarch64::scan_relocs): Likewise.
222         (Target_aarch64::relocate_section): Likewise.
223         (Target_aarch64::Relocatable_size_for_reloc::get_size_for_reloc):
224         Remove.
225         (Target_aarch64::scan_relocatable_relocs): Use Default_classify_reloc.
226         (Target_aarch64::relocate_relocs): Use Default_classify_reloc.
227         * arm.cc (Target_arm::Arm_scan_relocatable_relocs): Remove sh_type
228         template parameter.
229         (Target_arm::emit_relocs_scan): New method.
230         (Target_arm::Relocatable_size_for_reloc): Replace with...
231         (Target_arm::Classify_reloc): ...this.
232         (Target_arm::gc_process_relocs): Use Classify_reloc.
233         (Target_arm::scan_relocs): Likewise.
234         (Target_arm::relocate_section): Likewise.
235         (Target_arm::scan_relocatable_relocs): Likewise.
236         (Target_arm::relocate_relocs): Likewise.
237         * i386.cc (Target_i386::emit_relocs_scan): New method.
238         (Target_i386::Relocatable_size_for_reloc): Replace with...
239         (Target_i386::Classify_reloc): ...this.
240         (Target_i386::gc_process_relocs): Use Classify_reloc.
241         (Target_i386::scan_relocs): Likewise.
242         (Target_i386::relocate_section): Likewise.
243         (Target_i386::scan_relocatable_relocs): Likewise.
244         (Target_i386::relocate_relocs): Likewise.
245         * mips.cc (Mips_scan_relocatable_relocs): Remove sh_type template
246         parameter.
247         (Mips_reloc_types): New class template.
248         (Mips_classify_reloc): New class template.
249         (Target_mips::Reltype): New typedef.
250         (Target_mips::Relatype): New typedef.
251         (Target_mips::emit_relocs_scan): New method.
252         (Target_mips::get_r_sym): New method.
253         (Target_mips::Relocatable_size_for_reloc): Replace with
254         Mips_classify_reloc.
255         (Target_mips::copy_reloc): Use Mips_classify_reloc.
256         (Target_mips::gc_process_relocs): Likewise.
257         (Target_mips::scan_relocs): Likewise.
258         (Target_mips::relocate_section): Likewise.
259         (Target_mips::scan_relocatable_relocs): Likewise.
260         (Target_mips::relocate_relocs): Likewise.
261         (mips_get_size_for_reloc): New function, factored out from
262         Relocatable_size_for_reloc::get_size_for_reloc.
263         (Target_mips::Scan::local): Use Mips_classify_reloc.
264         (Target_mips::Scan::global): Likewise.
265         (Target_mips::Relocate::relocate): Likewise.
266         * powerpc.cc (Target_powerpc::emit_relocs_scan): New method.
267         (Target_powerpc::Relocatable_size_for_reloc): Remove.
268         (Target_powerpc::gc_process_relocs): Use Default_classify_reloc.
269         (Target_powerpc::scan_relocs): Likewise.
270         (Target_powerpc::relocate_section): Likewise.
271         (Powerpc_scan_relocatable_reloc): Convert to class template.
272         (Powerpc_scan_relocatable_reloc::Reltype): New typedef.
273         (Powerpc_scan_relocatable_reloc::reloc_size): New const.
274         (Powerpc_scan_relocatable_reloc::sh_type): New const.
275         (Powerpc_scan_relocatable_reloc::get_r_sym): New method.
276         (Powerpc_scan_relocatable_reloc::get_r_type): New method.
277         (Target_powerpc::scan_relocatable_relocs): Use
278         Powerpc_scan_relocatable_reloc.
279         (Target_powerpc::relocate_relocs): Use Default_classify_reloc.
280         * s390.cc (Target_s390::emit_relocs_scan): New method.
281         (Target_s390::Relocatable_size_for_reloc): Remove.
282         (Target_s390::gc_process_relocs): Use Default_classify_reloc.
283         (Target_s390::scan_relocs): Likewise.
284         (Target_s390::relocate_section): Likewise.
285         (Target_s390::Relocatable_size_for_reloc::get_size_for_reloc):
286         Remove.
287         (Target_s390::scan_relocatable_relocs): Use Default_classify_reloc.
288         (Target_s390::relocate_relocs): Use Default_classify_reloc.
289         * sparc.cc (Target_sparc::emit_relocs_scan): New method.
290         (Target_sparc::Relocatable_size_for_reloc): Remove.
291         (Target_sparc::gc_process_relocs): Use Default_classify_reloc.
292         (Target_sparc::scan_relocs): Likewise.
293         (Target_sparc::relocate_section): Likewise.
294         (Target_sparc::Relocatable_size_for_reloc::get_size_for_reloc):
295         Remove.
296         (Target_sparc::scan_relocatable_relocs): Use Default_classify_reloc.
297         (Target_sparc::relocate_relocs): Use Default_classify_reloc.
298         * tilegx.cc (Target_tilegx::emit_relocs_scan): New method.
299         (Target_tilegx::Relocatable_size_for_reloc): Remove.
300         (Target_tilegx::gc_process_relocs): Use Default_classify_reloc.
301         (Target_tilegx::scan_relocs): Likewise.
302         (Target_tilegx::relocate_section): Likewise.
303         (Target_tilegx::Relocatable_size_for_reloc::get_size_for_reloc):
304         Remove.
305         (Target_tilegx::scan_relocatable_relocs): Use Default_classify_reloc.
306         (Target_tilegx::relocate_relocs): Use Default_classify_reloc.
307         * x86_64.cc (Target_x86_64::emit_relocs_scan): New method.
308         (Target_x86_64::Relocatable_size_for_reloc): Remove.
309         (Target_x86_64::gc_process_relocs): Use Default_classify_reloc.
310         (Target_x86_64::scan_relocs): Likewise.
311         (Target_x86_64::relocate_section): Likewise.
312         (Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc):
313         Remove.
314         (Target_x86_64::scan_relocatable_relocs): Use Default_classify_reloc.
315         (Target_x86_64::relocate_relocs): Use Default_classify_reloc.
316
317         * testsuite/testfile.cc (Target_test::emit_relocs_scan): New method.
318
319 2016-01-01  Alan Modra  <amodra@gmail.com>
320
321         Update year range in copyright notice of all files.
322
323 For older changes see ChangeLog-0815
324 \f
325 Copyright (C) 2016 Free Software Foundation, Inc.
326
327 Copying and distribution of this file, with or without modification,
328 are permitted in any medium without royalty provided the copyright
329 notice and this notice are preserved.
330
331 Local Variables:
332 mode: change-log
333 left-margin: 8
334 fill-column: 74
335 version-control: never
336 End: