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