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