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