i386: Allow "lea foo@GOT, %reg" in PIC
[external/binutils.git] / bfd / ChangeLog
1 2017-02-15  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR ld/21168
4         * elf32-i386.c (elf_i386_relocate_section): Allow
5         "lea foo@GOT, %reg" in PIC.
6
7 2017-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8
9         PR ld/20244
10         * elf32-i386.c (elf_i386_relocate_section): Properly get IFUNC
11         symbol name when reporting R_386_GOT32/R_386_GOT32X relocation
12         error against local IFUNC symbol without a base register for
13         PIC.
14
15 2017-02-15  Maciej W. Rozycki  <macro@imgtec.com>
16
17         * elf32-ppc.c (ppc_elf_check_relocs): Use `%H:' rather than
18         `%P: %H:' with `info->callbacks->einfo'.
19         (ppc_elf_relocate_section): Likewise.
20         * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
21         (ppc64_elf_edit_toc): Likewise.
22         (ppc64_elf_relocate_section): Likewise.
23
24 2017-02-14  Alan Modra  <amodra@gmail.com>
25
26         * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Support
27         --gc-keep-exported, and test versioned field of sym rather than
28         looking for @ in name.
29
30 2017-02-13  Palmer Dabbelt  <palmer@dabbelt.com>
31
32         * elfnn-riscv.c (riscv_global_pointer_value): Change _gp to
33         __global_pointer$.
34
35 2017-02-13  Nick Clifton  <nickc@redhat.com>
36
37         PR binutils/21151
38         * dwarf2.c (_bfd_dwarf2_find_nearest_line): Check for an invalid
39         unit length field.
40
41 2017-02-07  Andrew Waterman  <andrew@sifive.com>
42
43         * elfnn-riscv.c (riscv_elf_finish_dynamic_sections): Only write PLT
44         entry size if PLT header is written.
45
46 2017-02-06  Sheldon Lobo  <sheldon.lobo@oracle.com>
47
48         Fix sparc64 dynamic relocation processing to use the dynamic
49         symbol count.
50         * elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Use 'dynamic'
51         to determine if bfd_get_symcount() or bfd_get_dynamic_symcount()
52         should be used.
53
54 2017-02-03  Nick Clifton  <nickc@redhat.com>
55
56         PR 21096
57         * coffcode.h (coff_write_object_contents): Enlarge size of
58         s_name_buf in order to avoid compile time warning about possible
59         integer truncation.
60         * elf32-nds32.c (nds32_elf_ex9_import_table): Mask off lower
61         32-bits of insn value before printing into buffer.
62
63 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
64
65         * elfxx-mips.c (mips_elf_hash_sort_data): Add
66         `max_local_dynindx'.
67         (mips_elf_sort_hash_table): Handle it.
68         (mips_elf_sort_hash_table_f) <GGA_NONE>: For forced local
69         symbols bump up `max_local_dynindx' rather than
70         `max_non_got_dynindx'.
71
72 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
73
74         * elfxx-mips.c (mips_elf_hash_sort_data): Convert the
75         `min_got_dynindx', `max_unref_got_dynindx' and
76         `max_non_got_dynindx' members to the `bfd_size_type' data type.
77         (mips_elf_sort_hash_table): Adjust accordingly.
78
79 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
80
81         * elfxx-mips.c (mips_elf_sort_hash_table): Use `htab' throughout
82         to access the hash table.
83
84 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
85
86         * elfxx-mips.c (mips_elf_sort_hash_table): Move assertion on
87         non-NULL `htab' to the beginning.
88
89 2017-02-02  Maciej W. Rozycki  <macro@imgtec.com>
90
91         * elflink.c (elf_gc_sweep): Wrap overlong line.
92
93 2017-01-30  Maciej W. Rozycki  <macro@imgtec.com>
94
95         * elfxx-mips.h (_bfd_mips_elf_insn32): Rename prototype to...
96         (_bfd_mips_elf_linker_flags): ... this.  Add another parameter.
97         * elfxx-mips.c (mips_elf_link_hash_table): Add
98         `ignore_branch_isa' member.
99         (mips_elf_perform_relocation): Do not treat an ISA mode mismatch
100         in branch relocation calculation as an error if
101         `ignore_branch_isa' has been set.
102         (_bfd_mips_elf_insn32): Rename to...
103         (_bfd_mips_elf_linker_flags): ... this.  Rename the `on'
104         parameter to `insn32' and add an `ignore_branch_isa' parameter.
105         Handle the new parameter.
106
107 2017-01-27  Hans-Peter Nilsson  <hp@axis.com>
108
109         * elf32-cris.c (elf_cris_finish_dynamic_symbol): Remove now unused
110         local variable dynobj.
111
112         PR ld/20995
113         * elf32-cris.c (elf_cris_size_dynamic_sections): Handle sdynrelro.
114         (elf_cris_adjust_dynamic_symbol): Place variables copied into the
115         executable from read-only sections into sdynrelro.
116         (elf_cris_finish_dynamic_symbol): Select sreldynrelro for
117         dynamic relocs in sdynrelro.
118         (elf_backend_want_dynrelro): Define.
119
120 2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
121
122         * config.bfd (*-*-rtemsaout*): Mark as removed.
123
124 2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
125
126         * config.bfd (powerpcle-*-rtems*): Do not mark as removed.
127         (arm-*-rtems*): Move to (arm*-*-eabi*).
128         (i[3-7]86-*-rtems*): Move to (i[3-7]86-*-elf*).
129         (m68-*-rtems*): Move to (m68*-*-elf*).
130
131 2017-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
132
133         * config.bfd (*-*-rtemscoff*): Mark as removed.
134
135 2017-01-24  Maciej W. Rozycki  <macro@imgtec.com>
136
137         PR ld/20828
138         * elflink.c (bfd_elf_record_link_assignment): Revert last
139         change and don't ever clear `forced_local'.  Set `mark'
140         unconditionally.
141         (elf_gc_sweep_symbol_info, elf_gc_sweep_symbol): Reorder within
142         file.
143         (elf_gc_sweep): Move the call to `elf_gc_sweep_symbol'...
144         (bfd_elf_size_dynamic_sections): ... here.
145         * elf32-ppc.c (ppc_elf_tls_setup): Don't clear `forced_local'
146         and set `mark' instead in `__tls_get_addr_opt' processing.
147         * elf64-ppc.c (ppc64_elf_tls_setup): Likewise.
148
149 2017-01-24  Alan Modra  <amodra@gmail.com>
150
151         * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Merge two cases
152         where dynamic relocs are preferable.  Allow ifunc too.
153         (ensure_undefweak_dynamic): New function.
154         (allocate_dynrelocs): Use it here.  Move plt handling last and
155         don't make symbols dynamic, simplifying loop.  Only make undef
156         weak symbols with GOT entries dynamic.  Correct condition
157         for GOT relocs.  Handle dynamic relocs on ifuncs.  Correct
158         comments.  Remove goto.
159         (ppc_elf_relocate_section): Correct test for using dynamic
160         symbol on GOT relocs.  Rearrange test for emitting GOT relocs
161         to suit.  Set up explicit tls_index entries and implicit GOT
162         tls_index entries resolvable at link time for
163         __tls_get_addr_opt.  Simplify test to clear mem for prelink.
164         * elf64-ppc.c (allocate_got): Correct condition for GOT relocs.
165         (ensure_undefweak_dynamic): New function.
166         (allocate_dynrelocs): Use it here.  Only make undef weak symbols
167         with GOT entries dynamic.  Remove unnecessary test of
168         WILL_CALL_FINISH_DYNAMIC_SYMBOL in PLT handling.
169         (ppc64_elf_relocate_section): Correct test for using dynamic
170         symbol on GOT relocs.  Rearrange test for emitting GOT relocs
171         to suit.  Set up explicit tls_index entries and implicit GOT
172         tls_index entries resolvable at link time for __tls_get_addr_opt.
173         Simplify expression to clear mem for prelink.
174
175 2017-01-23  Yury Norov  <ynorov@caviumnetworks.com>
176
177         * elfnn-aarch64.c: Fix relaxations for ILP32 mode.
178
179 2017-01-20  Jiong Wang <jiong.wang@arm.com>
180
181         * elfnn-aarch64.c (elf_aarch64_hash_symbol): New function.
182         (elf_backend_hash_symbol): Define.
183
184 2017-01-18  Maciej W. Rozycki  <macro@imgtec.com>
185
186         PR ld/20828
187         * elflink.c (bfd_elf_record_link_assignment): Clear any
188         `forced_local' marking for DSO symbols that are not being
189         provided.
190
191 2017-01-17  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
192
193         * elfnn-riscv.c (riscv_elf_object_p): New function.
194
195 2017-01-12  H.J. Lu  <hongjiu.lu@intel.com>
196
197         PR ld/21038
198         * elf64-x86-64.c (elf_x86_64_link_hash_table): Add
199         plt_bnd_eh_frame.
200         (elf_x86_64_check_relocs): Create .eh_frame section for the
201         .plt.bnd section.
202         (elf_x86_64_size_dynamic_sections): Allocate and initialize
203         .eh_frame section for the .plt.bnd section.
204         (elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
205         for the .plt.bnd section.
206
207 2017-01-12  Nick Clifton  <nickc@redhat.com>
208
209         PR binutils/20876
210         * opncls.c (find_separate_debug_file): Add include_dirs
211         parameter.  Only include the directory part of the bfd's filename
212         in search paths if include_dirs is true.  Add a couple of extra
213         locations for looking for debug files.
214         ( bfd_follow_gnu_debuglink): Update invocation of
215         find_separate_debug_file.
216         (bfd_follow_gnu_debugaltlink): Likewise.
217         (get_build_id): New function: Finds the build-id of the given bfd.
218         (get_build_id_name): New function: Computes the name of the
219         separate debug info file for a bfd, based upon its build-id.
220         (check_build_id_file): New function: Checks to see if a separate
221         debug info file exists at the given location, and that its
222         build-id matches that of the original bfd.
223         (bfd_follow_build_id_debuglink): New function: Finds a separate
224         debug info file for a given bfd by using the build-id method.
225         * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Try using the build-id
226         method of locating a separate debug info file before using the
227         debuglink method.
228         * bfd-in2.h: Regenerate.
229
230 2017-01-11  H.J. Lu  <hongjiu.lu@intel.com>
231
232         PR ld/21038
233         * elf64-x86-64.c (elf_x86_64_eh_frame_bnd_plt): New.
234         (elf_x86_64_bnd_arch_bed): Use elf_x86_64_eh_frame_bnd_plt and
235         elf_x86_64_eh_frame_plt_got.
236         (elf_x86_64_size_dynamic_sections): Get unwind info from
237         elf_x86_64_bnd_arch_bed for the BND PLT.
238
239 2017-01-11  Jeremy Soller  <jackpot51@gmail.com>
240
241         * config.bfd: Add entries for i686-redox and x86_64-redox.
242
243 2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
244
245         * elf32-i386.c (elf_i386_check_relocs): Align .eh_frame section
246         to 4 bytes.
247         * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align
248         .eh_frame section to 4 bytes for x32.
249         (elf_x86_64_check_relocs): Likewise.
250
251 2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
252
253         PR ld/20830
254         * elf32-i386.c (elf_i386_eh_frame_plt_got): New.
255         (PLT_GOT_FDE_LENGTH): Likewise.
256         (elf_i386_plt_layout): Add eh_frame_plt_got and
257         eh_frame_plt_got_size.
258         (elf_i386_plt): Updated.
259         (elf_i386_link_hash_table): Add plt_got_eh_frame.
260         (elf_i386_check_relocs): Create .eh_frame section for .plt.got.
261         (elf_i386_size_dynamic_sections): Allocate and initialize
262         .eh_frame section for .plt.got.
263         (elf_i386_finish_dynamic_sections): Adjust .eh_frame section for
264         .plt.got.
265         (elf_i386_nacl_plt): Add FIXME for eh_frame_plt_got and
266         eh_frame_plt_got_size.
267         * elf64-x86-64.c (elf_x86_64_eh_frame_plt_got): New.
268         (PLT_GOT_FDE_LENGTH): Likewise.
269         (elf_x86_64_backend_data): Add eh_frame_plt_got and
270         eh_frame_plt_got_size.
271         (elf_x86_64_arch_bed): Updated.
272         (elf_x86_64_bnd_arch_bed): Add FIXME for eh_frame_plt_got and
273         eh_frame_plt_got_size.
274         (elf_x86_64_nacl_arch_bed): Likewise.
275         (elf_x86_64_link_hash_table): Add plt_got_eh_frame.
276         (elf_x86_64_check_relocs): Create .eh_frame section for .plt.got.
277         (elf_x86_64_size_dynamic_sections): Allocate and initialize
278         .eh_frame section for .plt.got.
279         (elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
280         for .plt.got.
281
282 2017-01-10  H.J. Lu  <hongjiu.lu@intel.com>
283
284         * elf32-i386.c (elf_i386_size_dynamic_sections): Set
285         plt_eh_frame->size to eh_frame_plt_size and use eh_frame_plt.
286
287 2017-01-09  Nick Clifton  <nickc@redhat.com>
288
289         * dwarf2.c (lookup_address_in_function_table): Return early if
290         there are no functions in the given comp unit, or if the high
291         address of the last function in the comp unit is less than the
292         desired address.
293
294 2017-01-09  Nick Clifton  <nickc@redhat.com>
295
296         PR binutils/21013
297         * coffgen.c (_bfd_coff_get_external_symbols): Generate an error
298         message if there are too many symbols to load.
299
300 2017-01-04  James Clarke  <jrtc27@jrtc27.com>
301
302         * elf64-alpha.c (elf64_alpha_relax_opt_call): Don't set tsec_free
303         if relocs are cached.
304
305 2017-01-03  Rich Felker  <bugdal@aerifal.cx>
306
307         PR ld/21017
308         * elf32-microblaze.c (microblaze_elf_check_relocs): Add an entry
309         for R_MICROBLAZE_GOTOFF_64.
310
311 2017-01-03  Nick Clifton  <nickc@redhat.com>
312
313         * mach-o.c (bfd_mach_o_lookup_uuid_command): Fix compile time
314         warning about using a possibly uninitialised variable.
315
316 2017-01-02  Alan Modra  <amodra@gmail.com>
317
318         * elf32-hppa.c (ensure_undef_weak_dynamic): New function.
319         (allocate_plt_static, allocate_dynrelocs): Use it.
320
321 2017-01-02  Alan Modra  <amodra@gmail.com>
322
323         * elf-hppa.h (elf_hppa_fake_sections): Set SHF_INFO_LINK for
324         .PARISC.unwind section.
325
326 2017-01-02  Alan Modra  <amodra@gmail.com>
327
328         PR ld/20989
329         * elfxx-sparc.c (gdop_relative_offset_ok): New function.
330         (_bfd_sparc_elf_relocate_section): Use it to validate GOT
331         indirect to GOT pointer relative code edit.
332
333 2017-01-02  Alan Modra  <amodra@gmail.com>
334
335         Update year range in copyright notice of all files.
336
337 For older changes see ChangeLog-2016
338 \f
339 Copyright (C) 2017 Free Software Foundation, Inc.
340
341 Copying and distribution of this file, with or without modification,
342 are permitted in any medium without royalty provided the copyright
343 notice and this notice are preserved.
344
345 Local Variables:
346 mode: change-log
347 left-margin: 8
348 fill-column: 74
349 version-control: never
350 End: