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