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