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