Support for dedicated ARM stub section with padding
[external/binutils.git] / bfd / ChangeLog
1 2016-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2
3         * elf32-arm.c (arm_dedicated_stub_section_padding): New function.
4         (elf32_arm_size_stubs): Declare stub_type in a more outer scope and
5         account for padding for stub section requiring one.
6         (elf32_arm_build_stubs): Add comment to stress the importance of
7         zeroing veneer section content.
8
9 2016-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10
11         * bfd-in.h (bfd_elf32_arm_keep_private_stub_output_sections): Declare
12         bfd hook.
13         * bfd-in2.h: Regenerate.
14         * elf32-arm.c (arm_dedicated_stub_output_section_required): New
15         function.
16         (arm_dedicated_stub_output_section_required_alignment): Likewise.
17         (arm_dedicated_stub_output_section_name): Likewise.
18         (arm_dedicated_stub_input_section_ptr): Likewise.
19         (elf32_arm_create_or_find_stub_sec): Add stub type parameter and
20         function description comment. Add support for dedicated output stub
21         section to given stub types.
22         (elf32_arm_add_stub): Add a stub type parameter and pass it down to
23         elf32_arm_create_or_find_stub_sec.
24         (elf32_arm_create_stub): Pass stub type down to elf32_arm_add_stub.
25         (elf32_arm_size_stubs): Pass stub type when calling
26         elf32_arm_create_or_find_stub_sec for Cortex-A8 erratum veneers.
27         (bfd_elf32_arm_keep_private_stub_output_sections): New function.
28
29 2016-05-20  H.J. Lu  <hongjiu.lu@intel.com>
30
31         * elf32-i386.c (elf_i386_check_relocs): Don't check R_386_GOT32
32         when setting need_convert_load.
33
34 2016-05-20  Maciej W. Rozycki  <macro@imgtec.com>
35
36         * elfxx-mips.c (mips_elf_read_rel_addend): Adjust the addend for
37         microMIPS JALX.
38
39 2016-05-19  H.J. Lu  <hongjiu.lu@intel.com>
40
41         PR ld/20117
42         * elf32-i386.c (elf_i386_convert_load_reloc): Don't check
43         R_386_GOT32X.
44         (elf_i386_convert_load): Don't convert R_386_GOT32.
45
46 2016-05-20  Alan Modra  <amodra@gmail.com>
47
48         PR gas/20118
49         * elf.c (elf_fake_sections): Set sh_entsize for SHT_INIT_ARRAY,
50         SHT_FINI_ARRAY, and SHT_PREINIT_ARRAY.
51
52 2016-05-19  Cupertino Miranda  <cmiranda@synopsys.com>
53
54         * elf32-arc.c (arc_elf_final_write_processing): Changed.
55         (debug_arc_reloc): Likewise.
56         (elf_arc_relocate_section): Likewise.
57         (elf_arc_check_relocs): Likewise.
58         (elf_arc_adjust_dynamic_symbol): Likewise.
59         (elf_arc_add_symbol_hook): Likewise.
60
61 2016-05-19  Maciej W. Rozycki  <macro@imgtec.com>
62
63         * config.bfd: Remove `am34-*-linux*' support.
64
65 2016-05-19  Alan Modra  <amodra@gmail.com>
66
67         * elf64-ppc.c (allocate_dynrelocs): Allocate got and other dynamic
68         relocs before plt relocs.
69
70 2016-05-19  Alan Modra  <amodra@gmail.com>
71
72         * elf64-ppc.c (ppc64_elf_branch_reloc): Check for NULL owner
73         before dereferencing.
74
75 2016-05-18  Nick Clifton  <nickc@redhat.com>
76
77         * po/sv.po: Updated Swedish translation.
78
79 2016-05-18  Alan Modra  <amodra@gmail.com>
80
81         * elf32-arm.c (elf32_arm_size_stubs): Free or cache local syms
82         for each BFD.  Don't goto error_ret_free_local from outside loop.
83
84 2016-05-17  Maciej W. Rozycki  <macro@imgtec.com>
85
86         * elf-s390-common.c (elf_s390_add_symbol_hook): Remove
87         STB_GNU_UNIQUE handling.
88         * elf32-arc.c (elf_arc_add_symbol_hook): Likewise.
89         * elf32-arm.c (elf32_arm_add_symbol_hook): Likewise.
90         * elf32-m68k.c (elf_m68k_add_symbol_hook): Likewise.
91         * elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise.
92         * elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise.
93         * elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise.
94         * elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise.
95         * elf64-x86-64.c (elf_x86_64_add_symbol_hook): Likewise.
96         * elfxx-aarch64.c (_bfd_aarch64_elf_add_symbol_hook): Likewise.
97         * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Likewise.
98         * elf32-i386.c (elf_i386_add_symbol_hook): Remove function.
99         (elf_backend_add_symbol_hook): Remove macro.
100         * elflink.c (elf_link_add_object_symbols): Set `has_gnu_symbols'
101         for STB_GNU_UNIQUE symbols.
102
103 2016-05-16  Maciej W. Rozycki  <macro@imgtec.com>
104
105         * elf32-v850.c (v850_elf_copy_notes): New function, factored out
106         from...
107         (v850_elf_copy_private_bfd_data): ... here.  Call the new
108         function and `_bfd_elf_copy_private_bfd_data'.
109
110 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
111
112         PR ld/20093
113         * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Don't convert
114         GOTPCREL relocation against large section.
115
116 2016-05-13  Alan Modra  <amodra@gmail.com>
117
118         * elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_sections): Use
119         linker dynamic sections in calculating size and address of
120         dynamic tags rather than using output sections.  Remove asserts.
121         * elf32-arm.c (elf32_arm_finish_dynamic_sections): Likewise.
122         * elf32-cr16.c (_bfd_cr16_elf_finish_dynamic_sections): Likewise.
123         * elf32-cris.c (elf_cris_finish_dynamic_sections): Likewise.
124         * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise.
125         * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Likewise.
126         * elf32-m32r.c (m32r_elf_finish_dynamic_sections): Likewise.
127         * elf32-m68k.c (elf_m68k_finish_dynamic_sections): Likewise.
128         * elf32-metag.c (elf_metag_finish_dynamic_sections): Likewise.
129         * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Likewise.
130         * elf32-nds32.c (nds32_elf_finish_dynamic_sections): Likewise.
131         * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Likewise.
132         * elf32-or1k.c (or1k_elf_finish_dynamic_sections): Likewise.
133         * elf32-s390.c (elf_s390_finish_dynamic_sections): Likewise.
134         * elf32-score.c (s3_bfd_score_elf_finish_dynamic_sections): Likewise.
135         * elf32-score7.c (s7_bfd_score_elf_finish_dynamic_sections): Likewise.
136         * elf32-vax.c (elf_vax_finish_dynamic_sections): Likewise.
137         * elf32-xtensa.c (elf_xtensa_finish_dynamic_sections): Likewise.
138         * elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Likewise.
139         * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
140         * elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise.
141         * elflink.c (bfd_elf_final_link): Likewise.
142         * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Likewise.
143         * elfxx-sparc.c (sparc_finish_dyn): Likewise.  Adjust error message.
144         * elf32-arc.c (GET_SYMBOL_OR_SECTION): Remove ASSERT arg and
145         don't set doit.  Look up dynobj section.
146         (elf_arc_finish_dynamic_sections): Adjust GET_SYMBOL_OR_SECTION
147         invocation and dynamic tag vma calculation.  Don't test
148         boolean var == TRUE.
149         * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_sections): Fix
150         DT_JMPREL calc.
151
152 2016-05-13  Alan Modra  <amodra@gmail.com>
153
154         * elflink.c (elf_link_sort_relocs): Wrap overlong lines.  Fix
155         octets_per_byte.  Put dynamic .rela.plt last in link orders.
156         Assign output_offset for reloc sections rather than writing
157         sorted relocs from block corresponding to output_offset.
158
159 2016-05-12  Alan Modra  <amodra@gmail.com>
160
161         * elf-bfd.h (elf_reloc_type_class): Put reloc_class_plt last.
162
163 2016-05-11  Andrew Bennett  <andrew.bennett@imgtec.com>
164
165         * elfxx-mips.c (print_mips_ases): Add DSPR3.
166
167 2016-05-11  Alan Modra  <amodra@gmail.com>
168
169         * elf32-hppa.c (elf32_hppa_init_stub_bfd): New function.
170         (elf32_hppa_check_relocs): Don't set dynobj.
171         (elf32_hppa_size_stubs): Test !SEC_LINKER_CREATED for stub sections.
172         (elf32_hppa_build_stubs): Likewise.
173         * elf32-hppa.h (elf32_hppa_init_stub_bfd): Declare.
174
175 2016-05-11  Alan Modra  <amodra@gmail.com>
176
177         PR 20060
178         * elf64-ppc.c (ppc64_elf_tls_setup): Clear forced_local.
179         * elf32-ppc.c (ppc_elf_tls_setup): Likewise.
180
181 2016-05-10  Jiong Wang  <jiong.wang@arm.com>
182
183         * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Remove redundant
184         aarch64_tls_transition check.
185
186 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
187
188         * elf32-arm.c (enum elf32_arm_stub_type): New max_stub_type
189         enumerator.
190         (arm_stub_sym_claimed): New function.
191         (elf32_arm_create_stub): Use veneered symbol name and section if
192         veneer needs to claim its symbol, and keep logic unchanged otherwise.
193         (arm_stub_claim_sym): New function.
194         (arm_map_one_stub): Call arm_stub_claim_sym if veneer needs to claim
195         veneered symbol, otherwise create local symbol as before.
196
197 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
198
199         * elf32-arm.c (elf32_arm_size_stubs): Use new macros
200         ARM_GET_SYM_BRANCH_TYPE and ARM_SET_SYM_BRANCH_TYPE to respectively get
201         and set branch type of a symbol.
202         (bfd_elf32_arm_process_before_allocation): Likewise.
203         (elf32_arm_relocate_section): Likewise and fix identation along the
204         way.
205         (allocate_dynrelocs_for_symbol): Likewise.
206         (elf32_arm_finish_dynamic_symbol): Likewise.
207         (elf32_arm_swap_symbol_in): Likewise.
208         (elf32_arm_swap_symbol_out): Likewise.
209
210 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
211
212         * bfd-in.h (elf32_arm_size_stubs): Add an output section parameter.
213         * bfd-in2.h: Regenerated.
214         * elf32-arm.c (struct elf32_arm_link_hash_table): Add an output section
215         parameter to add_stub_section callback.
216         (elf32_arm_create_or_find_stub_sec): Get output section from link_sec
217         and pass it down to add_stub_section.
218         (elf32_arm_add_stub): Set section to stub_sec if NULL before using it
219         for error message.
220         (elf32_arm_size_stubs): Add output section parameter to
221         add_stub_section function pointer parameter.
222
223 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
224
225         * elf32-arm.c (elf32_arm_create_stub): New function.
226         (elf32_arm_size_stubs): Use elf32_arm_create_stub for stub creation.
227
228 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
229
230         * elf32-arm.c (enum elf32_arm_stub_type): Delete
231         arm_stub_a8_veneer_lwm enumerator.
232         (arm_stub_a8_veneer_lwm): New unsigned constant to replace
233         aforementioned enumerator.
234         (struct elf32_arm_stub_hash_entry): Delete target_addend
235         field and add source_value.
236         (struct a8_erratum_fix): Delete addend field and add target_offset.
237         (stub_hash_newfunc): Initialize source_value field amd remove
238         initialization for target_addend.
239         (arm_build_one_stub): Stop special casing Thumb relocations: promote
240         the else to being always executed, moving the
241         arm_stub_a8_veneer_b_cond specific code in it.  Remove
242         stub_entry->target_addend from points_to computation.
243         (cortex_a8_erratum_scan): Store in a8_erratum_fix structure the offset
244         to target symbol from start of section rather than the offset from the
245         stub address.
246         (elf32_arm_size_stubs): Set stub_entry's source_value and target_value
247         fields from struct a8_erratum_fix's offset and target_offset
248         respectively.
249         (make_branch_to_a8_stub): Rename target variable to loc.  Compute
250         veneered_insn_loc and loc using stub_entry's source_value.
251
252 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
253
254         (elf32_arm_merge_eabi_attributes): Add merging logic for
255         Tag_DSP_extension.
256
257 2016-05-10  Pip Cet  <pipcet@gmail.com>
258
259         PR ld/20059
260         * elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type):
261         Define as _bfd_generic_copy_link_hash_symbol_type when using
262         generic hash table.
263
264 2016-05-09  Nick Clifton  <nickc@redhat.com>
265
266         PR binutils/20063
267         * elf.c (bfd_elf_get_elf_syms): Check for out of range sh_link
268         field before accessing sections array.
269
270 2016-05-09  Christophe Monat  <christophe.monat@st.com>
271
272         PR ld/20030
273         * elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding.
274         (stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs
275         to nb_words.
276         (create_instruction_vldmia): Add is_dp to disambiguate SP/DP
277         encoding.
278         (create_instruction_vldmdb): Likewise.
279         (stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding,
280         uses it to re-encode.
281
282 2016-05-09  Nick Clifton  <nickc@redhat.com>
283
284         PR 19938
285         * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Revert accidental
286         commit.
287
288 2016-05-09  Alan Modra  <amodra@gmail.com>
289
290         * elf64-ppc.c (ppc64_elf_init_stub_bfd): Remove redundant NULL check.
291
292 2016-05-06  H.J. Lu  <hongjiu.lu@intel.com>
293
294         PR ld/17550
295         * elf-bfd.h (elf_link_hash_entry): Update comments for indx,
296         documenting that indx == -3 if symbol is defined in a discarded
297         section.
298         * elflink.c (elf_link_add_object_symbols): Set indx to -3 if
299         symbol is defined in a discarded section.
300         (elf_link_output_extsym): Strip a global symbol defined in a
301         discarded section.
302
303 2016-05-06  H.J. Lu  <hongjiu.lu@intel.com>
304
305         * elf32-i386.c (elf_backend_add_symbol_hook): Defined for Intel
306         MCU.
307
308 2016-05-05  H.J. Lu  <hongjiu.lu@intel.com>
309
310         * elf32-i386.c (elf_i386_convert_load): Extract the GOT load
311         conversion to ...
312         (elf_i386_convert_load_reloc): This.  New function.
313         * elf64-x86-64.c (elf_x86_64_convert_load): Extract the GOT load
314         conversion to ...
315         (elf_x86_64_convert_load_reloc): This.  New function.
316
317 2016-05-05  H.J. Lu  <hongjiu.lu@intel.com>
318
319         * elf32-i386.c (elf_i386_check_tls_transition): Remove abfd.
320         Don't check if contents == NULL.
321         (elf_i386_tls_transition): Add from_relocate_section.  Check
322         from_relocate_section instead of contents != NULL.  Update
323         elf_i386_check_tls_transition call.
324         (elf_i386_check_relocs): Cache the section contents if
325         keep_memory is FALSE.  Pass FALSE as from_relocate_section to
326         elf_i386_tls_transition.
327         (elf_i386_relocate_section): Pass TRUE as from_relocate_section
328         to elf_i386_tls_transition.
329         (elf_backend_caches_rawsize): New.
330         * elf64-x86-64.c (elf_x86_64_check_tls_transition): Don't check
331         if contents == NULL.
332         (elf_x86_64_tls_transition): Add from_relocate_section.  Check
333         from_relocate_section instead of contents != NULL.
334         (elf_x86_64_check_relocs): Cache the section contents if
335         keep_memory is FALSE.  Pass FALSE as from_relocate_section to
336         elf_x86_64_tls_transition.
337         (elf_x86_64_relocate_section): Pass TRUE as from_relocate_section
338         to elf_x86_64_tls_transition.
339         (elf_backend_caches_rawsize): New.
340
341 2016-05-03  Maciej W. Rozycki  <macro@imgtec.com>
342
343         PR 10549
344         * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle
345         STB_GNU_UNIQUE.
346
347 2016-05-03  Jiong Wang  <jiong.wang@arm.com>
348
349         * bfd-in.h (bfd_elf64_aarch64_set_options): Update prototype.
350         * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise.
351         * elfnn-aarch64.c (bfd_elfNN_aarch64_set_options): Initialize
352         no_apply_dynamic_relocs.
353         (elfNN_aarch64_final_link_relocate): Apply absolute relocations even though
354         dynamic relocations generated.
355
356 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
357
358         * elf32-i386.c (elf_i386_size_dynamic_sections): Move interp
359         setting to ...
360         (elf_i386_create_dynamic_sections): Here.
361         * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Move
362         interp setting to ...
363         (elf_x86_64_create_dynamic_sections): Here.
364
365 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
366
367         * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take GOT_RELOC
368         and replace (EH)->has_got_reloc with GOT_RELOC.
369         (elf_i386_fixup_symbol): Pass has_got_reloc to
370         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
371         (elf_i386_allocate_dynrelocs): Likewise.
372         (elf_i386_relocate_section): Likewise.
373         (elf_i386_finish_dynamic_symbol): Likewise.
374         (elf_i386_convert_load): Pass TRUE to
375         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
376         * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take
377         GOT_RELOC and replace (EH)->has_got_reloc with GOT_RELOC.
378         (elf_x86_64_fixup_symbol): Pass has_got_reloc to
379         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
380         (elf_x86_64_allocate_dynrelocs): Likewise.
381         (elf_x86_64_relocate_section): Likewise.
382         (elf_x86_64_finish_dynamic_symbol): Likewise.
383         (elf_x86_64_convert_load): Pass TRUE to
384         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
385
386 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
387
388         * elf32-i386.c (check_relocs_failed): New.
389         (elf_i386_check_relocs): Set check_relocs_failed on error.
390         (elf_i386_relocate_section): Skip if check_relocs failed.
391
392 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
393
394         * elf64-x86-64.c (elf_x86_64_check_relocs): Set
395         check_relocs_failed on error.
396
397 2016-04-29  Nick Clifton  <nickc@redhat.com>
398
399         PR 19938
400         * elf-bfd.h (struct elf_backend_data): Rename
401         elf_backend_set_special_section_info_and_link to
402         elf_backend_copy_special_section_fields.
403         * elfxx-target.h: Likewise.
404         * elf.c (section_match): Ignore the SHF_INFO_LINK flag when
405         comparing section flags.
406         (copy_special_section_fields): New function.
407         (_bfd_elf_copy_private_bfd_data): Copy the EI_ABIVERSION field.
408         Perform two scans over special sections.  The first one looks for
409         a direct mapping between the output section and an input section.
410         The second scan looks for a possible match based upon section
411         characteristics.
412         * elf32-arm.c (elf32_arm_copy_special_section_fields): New
413         function.  Handle setting the sh_link field of SHT_ARM_EXIDX
414         sections.
415         * elf32-i386.c (elf32_i386_set_special_info_link): Rename to
416         elf32_i386_copy_solaris_special_section_fields.
417         * elf32-sparc.c (elf32_sparc_set_special_section_info_link):
418         Rename to elf32_sparc_copy_solaris_special_section_fields.
419         * elf64-x86-64.c (elf64_x86_64_set_special_info_link): Rename to
420         elf64_x86_64_copy_solaris_special_section_fields.
421
422 2016-04-28  Nick Clifton  <nickc@redhat.com>
423
424         * po/zh_CN.po: Updated Chinese (simplified) translation.
425
426 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
427
428         PR ld/20006
429         * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections
430         when estimating distances between output sections.
431
432 2016-04-27  Alan Modra  <amodra@gmail.com>
433
434         * elflink.c (_bfd_elf_is_start_stop): New function.
435         (_bfd_elf_gc_mark_rsec): Use it.
436         * elf-bfd.h (_bfd_elf_is_start_stop): Declare.
437
438 2016-04-26  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
439
440         * elf32-rx.c (rx_set_section_contents): Avoid arithmetic on void *.
441         * mmo.c (mmo_get_section_contents): Likewise.
442         (mmo_set_section_contents): Likewise.
443
444 2016-04-26  H.J. Lu  <hongjiu.lu@intel.com>
445
446         * elf-bfd.h (elf_link_hash_table): Update comments for
447         dynsymcount.
448         * elflink.c (_bfd_elf_link_renumber_dynsyms): Always count for
449         the unused NULL entry at the head of dynamic symbol table.
450         (bfd_elf_size_dynsym_hash_dynstr): Remove dynsymcount != 0
451         checks.
452
453 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
454
455         * elflink.c (_bfd_elf_link_create_dynstrtab): Exclude linker
456         created file from dynobj.
457
458 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
459
460         * elflink.c (_bfd_elf_link_create_dynstrtab): Set dynobj to a
461         normal input file if possible.
462
463 2016-04-21  Nick Clifton  <nickc@redhat.com>
464
465         * aout-adobe.c: Use _bfd_generic_link_check_relocs.
466         * aout-target.h: Likewise.
467         * aout-tic30.c: Likewise.
468         * binary.c: Likewise.
469         * bout.c: Likewise.
470         * coff-alpha.c: Likewise.
471         * coff-rs6000.c: Likewise.
472         * coff64-rs6000.c: Likewise.
473         * coffcode.h: Likewise.
474         * i386msdos.c: Likewise.
475         * i386os9k.c: Likewise.
476         * ieee.c: Likewise.
477         * ihex.c: Likewise.
478         * libbfd-in.h: Likewise.
479         * libecoff.h: Likewise.
480         * mach-o-target.c: Likewise.
481         * mmo.c: Likewise.
482         * nlm-target.h: Likewise.
483         * oasys.c: Likewise.
484         * pef.c: Likewise.
485         * plugin.c: Likewise.
486         * ppcboot.c: Likewise.
487         * som.c: Likewise.
488         * srec.c: Likewise.
489         * tekhex.c: Likewise.
490         * versados.c: Likewise.
491         * vms-alpha.c: Likewise.
492         * xsym.c: Likewise.
493         * elfxx-target.h: Use _bfd_elf_link_check_relocs.
494         * linker.c (bfd_link_check_relocs): New function.
495         (_bfd_generic_link_check_relocs): New function.
496         * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of
497         _bfd_link_check_relocs field.
498         (struct bfd_target)L Add _bfd_link_check_relocs field.
499         * bfd-in2.h: Regenerate.
500         * libbfd.h: Regenerate.
501
502 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
503
504         * elf32-i386.c (elf_i386_gc_sweep_hook): Removed.
505         (elf_backend_gc_sweep_hook): Likewise.
506         * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise.
507         (elf_backend_gc_sweep_hook): Likewise.
508
509 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
510
511         * elflink.c (_bfd_elf_link_check_relocs): Don't check relocations
512         in excluded sections
513
514 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
515
516         PR ld/19969
517         * elf64-x86-64.c (check_relocs_failed): New.
518         (elf_x86_64_need_pic): Moved before elf_x86_64_check_relocs.
519         Support relocation agaist local symbol.  Set check_relocs_failed.
520         (elf_x86_64_check_relocs): Use elf_x86_64_need_pic.  Check
521         R_X86_64_32 relocation overflow.
522         (elf_x86_64_relocate_section): Skip if check_relocs failed.
523         Update one elf_x86_64_need_pic and remove one elf_x86_64_need_pic.
524
525 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
526
527         * elf32-i386.c (elf_i386_check_relocs): Call
528         _bfd_elf_create_ifunc_sections only for STT_GNU_IFUNC symbol.
529         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
530
531 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
532
533         * elf-bfd.h (_bfd_elf_link_check_relocs): New.
534         * elflink.c (_bfd_elf_link_check_relocs): New function.
535         (elf_link_add_object_symbols): Call _bfd_elf_link_check_relocs
536         if check_relocs_after_open_input is FALSE.
537
538 2016-04-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
539
540         * cache.c: Update old style function definitions.
541         * elf32-m68k.c: Likewise.
542         * elf64-mmix.c: Likewise.
543         * stab-syms.c: Likewise.
544
545 2016-04-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
546
547         * elf32-arm.c (put_thumb2_insn): Change argument type to bfd_byte *.
548
549 2016-04-15  H.J. Lu  <hongjiu.lu@intel.com>
550
551         * Makefile.in: Regenerated with automake 1.11.6.
552         * aclocal.m4: Likewise.
553         * doc/Makefile.in: Likewise.
554
555 2016-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
556
557         * reloc.c: Add BFD_RELOC_ARC_NPS_CMEM16 entry.
558         * bfd-in2.h: Regenerate.
559         * libbfd.h: Regenerate.
560         * elf32-arc.c: Add 'opcode/arc.h' include.
561         (struct arc_relocation_data): Add symbol_name.
562         (arc_special_overflow_checks): New function.
563         (arc_do_relocation): Use arc_special_overflow_checks, reindent as
564         required, add an extra comment.
565         (elf_arc_relocate_section): Setup symbol_name in reloc_data.
566
567 2016-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
568
569         * elf32-arc.c (tls_got_entries): Add 'TLS_GOT_' prefix to all
570         entries.
571         (elf_arc_relocate_section): Update enum uses.
572         (elf_arc_check_relocs): Likewise.
573         (elf_arc_finish_dynamic_symbol): Likewise.
574
575 2016-04-14  H.J. Lu  <hongjiu.lu@intel.com>
576
577         * elf.c (_bfd_elf_copy_private_bfd_data): Replace "link" with
578         "sh_link".
579
580 2016-04-14  Nick Clifton  <nickc@redhat.com>
581
582         PR target/19938
583         * elf-bbfd.h (struct elf_backend_data): New field:
584         elf_strtab_flags.
585         New field: elf_backend_set_special_section_info_and_link
586         * elfxx-target.h (elf_backend_strtab_flags): Define if not already
587         defined.
588         (elf_backend_set_special_section_info_and_link): Define if not
589         already defined.
590         (elfNN_bed): Use elf_backend_set_special_section_info_and_link and
591         elf_backend_strtab_flags macros to initialise fields in structure.
592         * elf.c (_bfd_elf_make_section_from_shdr): Check for SHF_STRINGS
593         being set even if SHF_MERGE is not set.
594         (elf_fake_sections): Likewise.
595         (section_match): New function.  Matches two ELF sections based
596         upon fixed characteristics.
597         (find_link): New function.  Locates a section in a BFD that
598         matches a section in a different BFD.
599         (_bfd_elf_copy_private_bfd_data): Copy the sh_info and sh_link
600         fields of reserved sections.
601         (bfd_elf_compute_section_file_positions): Set the flags for the
602         .shstrtab section based upon the elf_strtab_flags field in the
603         elf_backend_data structure.
604         (swap_out_syms): Likewise for the .strtab section.
605         * elflink.c (bfd_elf_final_link): Set the flags for the
606         .strtab section based upon the elf_strtab_flags field in the
607         elf_backend_data structure.
608         * elf32-i386.c (elf32_i386_set_special_info_link): New function.
609         (elf_backend_strtab_flags): Set to SHF_STRINGS for Solaris
610         targets.
611         (elf_backend_set_special_section_info_and_link): Define for
612         Solaris targets.
613         * elf32-sparc.c: Likewise.
614         * elf64-x86-64.c: Likewise.
615
616 2016-04-11  H.J. Lu  <hongjiu.lu@intel.com>
617
618         PR ld/19939
619         * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add a pointer
620         to bfd_boolean.
621         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Updated.
622         Set *readonly_dynrelocs_against_ifunc_p to TRUE if dynamic reloc
623         applies to read-only section.
624         * elf32-i386.c (elf_i386_link_hash_table): Add
625         readonly_dynrelocs_against_ifunc.
626         (elf_i386_allocate_dynrelocs): Updated.
627         (elf_i386_size_dynamic_sections): Issue an error for read-only
628         segment with dynamic IFUNC relocations only if
629         readonly_dynrelocs_against_ifunc is TRUE.
630         * elf64-x86-64.c (elf_x86_64_link_hash_table): Add
631         readonly_dynrelocs_against_ifunc.
632         (elf_x86_64_allocate_dynrelocs): Updated.
633         (elf_x86_64_size_dynamic_sections): Issue an error for read-only
634         segment with dynamic IFUNC relocations only if
635         readonly_dynrelocs_against_ifunc is TRUE.
636         * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs):
637         Updated.
638
639 2016-04-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
640
641         * elf32-arm.c (elf32_arm_size_stubs): Move error_ret_free_local to be
642         a fall through from error_ret_free_internal.  Free local_syms in
643         error_ret_free_local if allocated from bfd_elf_get_elf_syms ().
644
645 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
646
647         * elf32-arc.c (plt_do_relocs_for_symbol): Changed.
648         (relocate_plt_for_entry): Likewise.
649
650 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
651
652         * elf32-arc.c (elf_arc_check_relocs): Changed
653
654 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
655
656         * elf32-arc.c (name_for_global_symbol): Changed assert.
657         (get_replace_function): Created.:
658         (struct arc_relocation_data): Changed to signed types.
659         (defines S, L, P, PDATA): Casted to signed type.
660         (defines SECTSTART, _SDA_BASE_, TLS_REL): Likewise.
661         (PRINT_DEBUG_RELOC_INFO_BEFORE): Changed.
662         (arc_do_relocation): Changed.
663
664 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
665
666         * elf32-arc.c (name_for_global_symbol): Added assert to check for
667         symbol index.
668         (elf_arc_relocate_section): Added and changed asserts, validating
669         the synamic symbol index.
670         (elf_arc_finish_dynamic_symbol): Do not fill the dynamic
671         relocation if symbol has dynindx set to -1.
672
673 2016-04-05  Maciej W. Rozycki  <macro@imgtec.com>
674
675         * elflink.c (elf_link_add_object_symbols): Always turn hidden
676         and internal symbols which have a dynamic index into local
677         ones.
678
679 2016-04-04  Nick Clifton  <nickc@redhat.com>
680
681         PR 19872
682         * dwarf2.c (parse_comp_unit): Skip warning about unrecognised
683         version number if the version is zero.
684
685 2016-04-01  Alan Modra  <amodra@gmail.com>
686
687         PR 19886
688         * elflink.c (on_needed_list): Recursively check needed status.
689         (elf_link_add_object_symbols): Adjust.
690
691 2016-03-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
692
693         * elf32-avr.c (avr_elf32_load_records_from_section): Free
694         internal_relocs only if they aren't cached.
695
696 2016-03-29  Nick Clifton  <nickc@redhat.com>
697
698         PR 17334
699         * elf32-bfin.c (elf32_bfinfdpic_finish_dynamic_sections): Relax
700         assertion on the size of the got section to allow it to be bigger
701         than the number of relocs.
702
703 2016-03-29  Toni Spets  <toni.spets@iki.fi>
704
705         PR 19878
706         * coffcode.h (coff_write_object_contents): Revert accidental
707         2014-11-10 change.
708
709 2016-03-22  Alan Modra  <amodra@gmail.com>
710
711         PR 19850
712         * dwarf2.c (read_attribute_value): Skip info_ptr check for
713         DW_FORM_flag_present.
714
715 2016-03-22  Nick Clifton  <nickc@redhat.com>
716
717         * cpu-v850_rh850.c (arch_info_struct): Restore v850-rh850 as an
718         architecture name for backwards compatibility.
719
720         * peXXigen.c (_bfd_XXi_write_codeview_record): Fix possible
721         unbounded stack use.
722
723         * warning.m4 (GCC_WARN_CFLAGS): Only add -Wstack-usage if using a
724         sufficiently recent version of GCC.
725         * configure: Regenerate.
726
727 2016-03-22  Alan Modra  <amodra@gmail.com>
728
729         PR 19851
730         * plugin.c (try_load_plugin): Avoid -Wstack-usage warning.
731
732 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
733
734         * archures.c (bfd_mach_arc_nps400): Define.
735         * bfd-in2.h: Regenerate.
736         * cpu-arc.c (arch_info_struct): New entry for nps400, renumber
737         some existing entries to make space.
738         * elf32-arc.c (arc_elf_object_p): Add nps400 case.
739         (arc_elf_final_write_processing): Likewise.
740
741 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
742
743         * elf32-arc.c (arc_elf_print_private_bfd_data): Remove use of
744         EF_ARC_CPU_GENERIC.
745         (arc_elf_final_write_processing): Don't bother setting cpu field
746         in e_flags, this will have been set elsewhere.
747
748 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
749
750         * elf32-arc.c (arc_elf_final_write_processing): Switch to using
751         EF_ARC_MACH_MSK.
752
753 2016-03-21  Nick Clifton  <nickc@redhat.com>
754
755         * warning.m4 (GCC_WARN_CFLAGS): Add -Wstack-usage=262144
756         * configure: Regenerate.
757         * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Replace use of
758         alloca with call to xmalloc.
759         * elf32-nds32.c: Likewise.
760         * elf64-hppa.c: Likewise.
761         * elfxx-mips.c: Likewise.
762         * pef.c: Likewise.
763         * pei-x86_64.c: Likewise.
764         * som.c: Likewise.
765         * xsym.c: Likewise.
766
767 2016-03-15  H.J. Lu  <hongjiu.lu@intel.com>
768
769         PR ld/19827
770         * elf32-i386.c (elf_i386_check_relocs): Bind defined symbol
771         locally in PIE.
772         (elf_i386_relocate_section): Likewise.
773         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
774         (elf_x86_64_relocate_section): Likewise.
775
776 2016-03-15  H.J. Lu  <hongjiu.lu@intel.com>
777
778         PR ld/19807
779         * elf64-x86-64.c (elf_x86_64_relocate_section): Check
780         no_reloc_overflow_check to diable R_X86_64_32/R_X86_64_32S
781         relocation overflow check.
782
783 2016-03-14  H.J. Lu  <hongjiu.lu@intel.com>
784
785         * bfd-in2.h: Regenerated.
786
787 2016-03-11  Dan Gissel  <dgisselq@ieee.org>
788
789         PR 19713
790         * elf.c (_bfd_elf_section_offset): Ensure that the returned offset
791         uses bytes not octets.
792         * elflink.c (resolve_section): Likewise.
793         Add a bfd parameter.
794         (eval_section): Pass the input_bfd to resolve_section.
795         (bfd_elf_perform_complex_relocation): Convert byte offset to
796         octets before read and writing values.
797         (elf_link_input_bfd): Add byte to octet conversions.
798         (elf_reloc_link_order): Likewise.
799         (elf_fixup_link_order): Likewise.
800         (bfd_elf_final_link): Likewise.
801         * reloc.c (_bfd_final_link_relocate): Likewise.
802         * syms.c (_bfd_stab_section_find_nearest_line): Likewise.
803
804 2016-03-10  Nick Clifton  <nickc@redhat.com>
805
806         * config.bfd: Mark the i370 target as obsolete.
807
808 2016-03-09  Pedro Alves  <palves@redhat.com>
809
810         * cpu-v850.c (N): Append ":old-gcc-abi" instead of " (using old
811         gcc ABI)" to printable name.
812         * cpu-v850_rh850.c (bfd_v850_rh850_arch): Use "v850:rh850" instead
813         of "v850-rh850" as printable name.
814
815 2016-03-09  Leon Winter  <winter-gcc@bfw-online.de>
816
817         PR ld/19623
818         * cofflink.c (_bfd_coff_generic_relocate_section): Do not apply
819         relocations against absolute symbols.
820
821 2016-03-09  Alan Modra  <amodra@gmail.com>
822
823         PR binutils/19775
824         * coff-alpha.c (alpha_ecoff_openr_next_archived_file): Allow zero
825         length elements in the archive.
826
827 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
828
829         PR ld/19789
830         * elflink.c (elf_link_add_object_symbols): Create dynamic sections
831         for -E/--dynamic-list only when not relocatable.
832
833 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
834
835         PR ld/19784
836         * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference
837         count for locally defined local IFUNC symbols in shared object.
838         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
839
840 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
841
842         PR ld/19579
843         * elflink.c (_bfd_elf_merge_symbol): Group common symbol checking
844         together.
845
846 2016-03-08  Cupertino Miranda  <Cupertino.Miranda@synopsys.com>
847             Andrew Burgess  <andrew.burgess@embecosm.com>
848
849         * elf32-arc.c (arc_bfd_get_32): Becomes an alias for bfd_get_32.
850         (arc_bfd_put_32): Becomes an alias for bfd_put_32.
851         (arc_elf_howto_init): Added assert to validate relocations.
852         (get_middle_endian_relocation): Delete.
853         (middle_endian_convert): New function.
854         (ME): Redefine, now does nothing.
855         (IS_ME): New define.
856         (arc_do_relocation): Extend the attached 'ARC_RELOC_HOWTO'
857         definition to call middle_endian_convert.  Add a new local
858         variable and make use of this throughout. Added call to
859         arc_bfd_get_8 and arc_bfd_put_8 for 8 bit relocations.
860
861 2016-03-07  Nick Clifton  <nickc@redhat.com>
862
863         PR binutils/19775
864         * archive.c (bfd_generic_openr_next_archived_file): Allow zero
865         length elements in the archive.
866
867 2016-03-07  Jiong Wang  <jiong.wang@arm.com>
868
869         * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Always create .got
870         section if the symbol "_GLOBAL_OFFSET_TABLE_" is referenced.
871
872 2016-03-04  H.J. Lu  <hongjiu.lu@intel.com>
873
874         PR ld/19579
875         * elflink.c (_bfd_elf_merge_symbol): Treat common symbol in
876         executable as definition if the new definition comes from a
877         shared library.
878
879 2016-03-02  Alan Modra  <amodra@gmail.com>
880
881         * Makefile.in: Regenerate.
882         * po/SRC-POTFILES.in: Regenerate.
883
884 2016-02-29  Cupertino Miranda  <cmiranda@synopsys.com>
885
886         * elf32-arc.c (elf_arc_relocate_section): Added rules to fix the
887         relocation addend when sections get merged.
888
889 2016-02-29  Cupertino Miranda <Cupertino.Miranda@synopsys.com>
890
891         * elf32-arc.c (arc_elf_final_write_processing): Add condition to
892         the flag change.
893         (elf_arc_relocate_section): Fixes and conditions to support PIE.
894         Assert for code sections dynamic relocs.
895
896 2016-02-26  Renlin Li  <renlin.li@arm.com>
897
898         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix signed overflow
899         check for MOVW_SABS_G0, MOVW_SABS_G1, MOVW_SABS_G2.
900
901 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
902
903         PR ld/19609
904         * elf32-i386.c (elf_i386_convert_load): Convert to R_386_32 for
905         load with locally bound symbols if PIC is false or there is no
906         base register.  Optimize branch to 0 if PIC is false.
907         (elf_i386_relocate_section): Don't generate dynamic relocations
908         against undefined weak symbols if PIC is false.
909         * elf64-x86-64.c (elf_x86_64_convert_load): Disable optimization
910         if we can't estimate relocation overflow with --no-relax.
911         Convert to R_X86_64_32S/R_X86_64_32 for load with locally bound
912         symbols if PIC is false.  Optimize branch to 0 if PIC is false.
913         (elf_x86_64_relocate_section): Don't generate dynamic relocations
914         against undefined weak symbols if PIC is false.
915
916 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
917
918         PR ld/19645
919         * bfd.c (bfd): Change flags to 20 bits.
920         (BFD_CONVERT_ELF_COMMON): New.
921         (BFD_USE_ELF_STT_COMMON): Likewise.
922         (BFD_FLAGS_SAVED): Add BFD_CONVERT_ELF_COMMON and
923         BFD_USE_ELF_STT_COMMON.
924         (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
925         * configure.ac: Remove --enable-elf-stt-common.
926         * elf.c (swap_out_syms): Choose STT_COMMON or STT_OBJECT for
927         common symbol depending on BFD_CONVERT_ELF_COMMON and
928         BFD_USE_ELF_STT_COMMON.
929         * elfcode.h (elf_slurp_symbol_table): Set BSF_ELF_COMMON for
930         STT_COMMON.
931         * elflink.c (bfd_elf_link_mark_dynamic_symbol): Also check
932         STT_COMMON.
933         (elf_link_convert_common_type): New function.
934         (elf_link_output_extsym): Choose STT_COMMON or STT_OBJECT for
935         common symbol depending on BFD_CONVERT_ELF_COMMON and
936         BFD_USE_ELF_STT_COMMON.  Set sym.st_info after sym.st_shndx.
937         * elfxx-target.h (TARGET_BIG_SYM): Add BFD_CONVERT_ELF_COMMON
938         and BFD_USE_ELF_STT_COMMON to object_flags.
939         (TARGET_LITTLE_SYM): Likewise.
940         * syms.c (BSF_KEEP_G): Renamed to ...
941         (BSF_ELF_COMMON): This.
942         * bfd-in2.h: Regenerated.
943         * config.in: Likewise.
944         * configure: Likewise.
945
946 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
947
948         PR ld/19636
949         PR ld/19704
950         PR ld/19719
951         * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
952         (elf_i386_link_hash_entry): Add has_got_reloc and
953         has_non_got_reloc.
954         (elf_i386_link_hash_table): Add interp.
955         (elf_i386_link_hash_newfunc): Initialize has_got_reloc and
956         has_non_got_reloc.
957         (elf_i386_copy_indirect_symbol): Copy has_got_reloc and
958         has_non_got_reloc.
959         (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc.
960         (elf_i386_fixup_symbol): New function.
961         (elf_i386_pie_finish_undefweak_symbol): Likewise.
962         (elf_i386_allocate_dynrelocs): Don't allocate space for dynamic
963         relocations and discard relocations against resolved undefined
964         weak symbols in executable.  Don't make resolved undefined weak
965         symbols in executable dynamic.  Keep dynamic non-GOT/non-PLT
966         relocation against undefined weak symbols in PIE.
967         (elf_i386_size_dynamic_sections): Set interp to .interp section.
968         (elf_i386_relocate_section): Don't generate dynamic relocations
969         against resolved undefined weak symbols in PIE, except for
970         R_386_PC32.
971         (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without
972         dynamic PLT/GOT relocations for resolved undefined weak symbols.
973         Don't generate dynamic relocation against resolved undefined weak
974         symbol in executable.
975         (elf_i386_finish_dynamic_sections): Call
976         elf_i386_pie_finish_undefweak_symbol on all symbols in PIE.
977         (elf_backend_fixup_symbol): New.
978         * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
979         (elf_x86_64_link_hash_entry): Add has_got_reloc and
980         has_non_got_reloc.
981         (elf_x86_64_link_hash_table): Add interp.
982         (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and
983         has_non_got_reloc.
984         (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and
985         has_non_got_reloc.
986         (elf_x86_64_check_relocs): Set has_got_reloc and
987         has_non_got_reloc.
988         (elf_x86_64_fixup_symbol): New function.
989         (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
990         (elf_x86_64_allocate_dynrelocs): Don't allocate space for dynamic
991         relocations and discard relocations against resolved undefined
992         weak symbols in executable.  Don't make resolved undefined weak
993         symbols in executable dynamic.
994         (elf_x86_64_size_dynamic_sections): Set interp to .interp section.
995         (elf_x86_64_relocate_section): Check relocation overflow for
996         dynamic relocations against unresolved weak undefined symbols.
997         Don't generate dynamic relocations against resolved weak
998         undefined symbols in PIE.
999         (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without
1000         dynamic PLT/GOT relocations for resolved undefined weak symbols.
1001         Don't generate dynamic relocation against resolved undefined weak
1002         symbol in executable.
1003         (elf_x86_64_finish_dynamic_sections): Call
1004         elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE.
1005         (elf_backend_fixup_symbol): New.
1006
1007 2016-02-26  Alan Modra  <amodra@gmail.com>
1008
1009         * elf64-ppc.c (create_linkage_sections): Create sfpr when
1010         save_restore_funcs, rest of sections when not relocatable.
1011         (ppc64_elf_init_stub_bfd): Always call create_linkage_sections.
1012         (sfpr_define): Define all symbols on emitted code.
1013         (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created
1014         when relocatable.  Move sfpr_define loop earlier.
1015
1016 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
1017
1018         * elf64-x86-64.c (elf_x86_64_need_pic): New function.
1019         (elf_x86_64_relocate_section): Use it.  Replace
1020         x86_64_elf_howto_table[r_type] with howto.
1021
1022 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
1023
1024         PR ld/19698
1025         * elflink.c (bfd_elf_record_link_assignment): Set versioned if
1026         symbol version is unknown.
1027
1028 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
1029
1030         * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
1031         to (bfd_vma) -1 when setting needs_plt to 0.
1032         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
1033
1034 2016-02-23  H.J. Lu  <hongjiu.lu@intel.com>
1035
1036         * elflink.c (bfd_elf_record_link_assignment): Check for shared
1037         library, instead of PIC, and don't check PDE when making linker
1038         assigned symbol dynamic.
1039
1040 2016-02-23  Faraz Shahbazker  <faraz.shahbazker@imgtec.com>
1041
1042         * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment
1043         ABIVERSION for non-executable stack.
1044
1045 2016-02-23  Rich Felker  <bugdal@aerifal.cx>
1046
1047         PR target/19516
1048         * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
1049         Always produce a RELATIVE reloc for a local symbol.
1050
1051 2016-02-23  Hans-Peter Nilsson  <hp@axis.com>
1052
1053         Fix test-case ld-elf/pr19617b
1054         * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
1055         discard unused non-function symbols when --dynamic-list-data.
1056
1057 2016-02-22  H.J. Lu  <hongjiu.lu@intel.com>
1058
1059         * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the
1060         dynsym section, even if it is empty, with dynamic sections.
1061
1062 2016-02-22  H.J. Lu  <hongjiu.lu@intel.com>
1063
1064         * syms.c: Remove BSF_COMMON from comments.
1065         * bfd-in2.h: Regenerated.
1066
1067 2016-02-22  Jiong Wang  <jiong.wang@arm.com>
1068
1069         * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation
1070         for destination.  Remove useless function parameters.
1071         (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub.
1072
1073 2016-02-19  Nick Clifton  <nickc@redhat.com>
1074
1075         PR ld/19629
1076         * aoutx.h (aout_link_add_symbols): Check for out of range string
1077         table offsets.
1078
1079         PR ld/19628
1080         * reloc.c (bfd_generic_get_relocated_section_contents): Stop
1081         processing if we encounter a reloc without an associated symbol.
1082
1083 2016-02-18  H.J. Lu  <hongjiu.lu@intel.com>
1084
1085         PR ld/19617
1086         * elflink.c (elf_link_add_object_symbols): Always create dynamic
1087         sections for -E/--dynamic-list.
1088
1089 2016-02-17  H.J. Lu  <hongjiu.lu@intel.com>
1090
1091         * elf64-x86-64.c (elf_backend_omit_section_dynsym): New.  Defined
1092         to bfd_true.
1093
1094 2016-02-16  Joseph Myers  <joseph@codesourcery.com>
1095
1096         * plugin.c (plugin_vec): Set match priority to 255.
1097         * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When
1098         matching against the plugin vector, take priority from there not
1099         from TEMP.
1100
1101 2016-02-15  Nick Clifton  <nickc@redhat.com>
1102
1103         * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values
1104         for length and type fields.  Use a signed value for the
1105         suffix_length field.
1106
1107 2016-02-10  H.J. Lu  <hongjiu.lu@intel.com>
1108
1109         PR ld/19601
1110         * elf32-i386.c (elf_i386_relocate_section): Mask off the least
1111         significant bit in GOT offset for R_386_GOT32X.
1112
1113 2016-02-10  Nick Clifton  <nickc@redhat.com>
1114
1115         PR 19405
1116         * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed
1117         immediate values.
1118         * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the
1119         number of messages about FDE encoding preventing .eh_frame_hdr
1120         generation.
1121
1122 2016-02-09  Nick Clifton  <nickc@redhat.com>
1123
1124         * oasys.c (oasys_archive_p): Fix indentation.
1125         * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned
1126         constant for left shifting.
1127
1128         * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more
1129         helpful warning message to explain why certain AArch64 relocs
1130         might overflow.
1131
1132 2016-02-05  Simon Marchi  <simon.marchi@ericsson.com>
1133
1134         * pe-mips.c (coff_mips_reloc): Fix formatting.
1135
1136 2016-02-05  Cupertino Miranda  <Cupertino.Miranda@synopsys.com>
1137
1138         * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2
1139         to bfd_mach_arc_arc600.
1140
1141 2016-02-04  Alan Modra  <amodra@gmail.com>
1142
1143         * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch
1144         for big-endian.
1145
1146 2016-02-02  H.J. Lu  <hongjiu.lu@intel.com>
1147
1148         PR ld/19542
1149         * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
1150         distances in the compressed_size field of the output section.
1151
1152 2016-02-02  Alan Modra  <amodra@gmail.com>
1153
1154         * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
1155         ELFv2 entry optimization.
1156
1157 2016-02-02  H.J. Lu  <hongjiu.lu@intel.com>
1158
1159         PR binutils/19547
1160         * elf.c (assign_section_numbers): Clear HAS_RELOC if there are
1161         no relocations in relocatable files.
1162
1163 2016-02-01  H.J. Lu  <hongjiu.lu@intel.com>
1164
1165         PR ld/19553
1166         * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
1167         if a symbol from a library loaded via DT_NEEDED doesn't match
1168         the symbol referenced by regular object.
1169
1170 2016-02-01  Nathaniel Smith  <njs@pobox.com>
1171
1172         * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both
1173         CODE and DATA.
1174
1175 2016-02-01  Alan Modra  <amodra@gmail.com>
1176
1177         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on
1178         an out of range reloc_index.
1179         * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise.
1180
1181 2016-02-01  Kamil Rytarowski  <n54@gmx.com>
1182
1183         * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo.
1184         (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c.
1185         * Makefile.in: Regenerated.
1186
1187 2016-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
1188
1189         * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation.
1190
1191 2016-01-31  John David Anglin  <danglin@gcc.gnu.org>
1192
1193         PR ld/19526
1194         * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output
1195         files.
1196         * elf64-hppa.c (elf32_hppa_final_link): Likewise.  Remove retval.
1197
1198 2016-01-30  H.J. Lu  <hongjiu.lu@intel.com>
1199
1200         PR ld/19539
1201         * elf32-i386.c (elf_i386_reloc_type_class): Check relocation
1202         against STT_GNU_IFUNC symbol only with dynamic symbols.
1203         * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
1204
1205 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
1206
1207         PR binutils/19523
1208         * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to
1209         decompress debug sections.
1210
1211 2016-01-25  Maciej W. Rozycki  <macro@imgtec.com>
1212
1213         * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to
1214         `dynindx'.
1215
1216 2016-01-25  Nick Clifton  <nickc@redhat.com>
1217
1218         PR target/19435
1219         * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free
1220         dsym filename buffer.
1221
1222 2016-01-24  Maciej W. Rozycki  <macro@imgtec.com>
1223
1224         * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation.
1225
1226 2016-01-24  Maciej W. Rozycki  <macro@imgtec.com>
1227
1228         * elfxx-mips.c (BZ16_REG): Correct calculation.
1229
1230 2016-01-21  Nick Clifton  <nickc@redhat.com>
1231
1232         * elf32-arc.c (ADD_RELA): Fix compile time warning errors by
1233         changing the type of _loc to be bfd_byte *.
1234         (elf_arc_finish_dynamic_symbol): Likewise.
1235
1236 2016-01-21  Nick Clifton  <nickc@redhat.com>
1237
1238         PR ld/19455
1239         * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF
1240         class of the linker stub bfd.
1241         (elf32_arm_check_relocs): Skip check for pic format after
1242         processing a vxWorks R_ARM_ABS12 reloc.
1243         * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when
1244         reporting a class mismatch.
1245
1246 2016-01-21  Jiong Wang  <jiong.wang@arm.com>
1247
1248         * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
1249         veneer for sym_sec != input_sec.
1250         (elfNN_aarch64_size_stub): Support STT_SECTION symbol.
1251         (elfNN_aarch64_final_link_relocate): Take rela addend into account when
1252         calculation destination.
1253
1254 2016-01-21  Alan Modra  <amodra@gmail.com>
1255
1256         * elf-linux-core.h (swap_linux_prpsinfo32_out): New function.
1257         (swap_linux_prpsinfo64_out): New function.
1258         (LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
1259         (LINUX_PRPSINFO64_SWAP_FIELDS): Delete.
1260         * elf.c (elfcore_write_linux_prpsinfo32): Adjust.  Don't memset.
1261         (elfcore_write_linux_prpsinfo64): Likewise.
1262         * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function.
1263         (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
1264         (elfcore_write_ppc_linux_prpsinfo32): Adjust.  Don't memset.
1265
1266 2016-01-21  Alan Modra  <amodra@gmail.com>
1267
1268         * elf-linux-core.h: Rename from elf-linux-psinfo.h.
1269         * elf.c: Adjust #include.
1270         * elf32-ppc.c: Don't #include elf-linux-psinfo.h
1271         * Makefile.am (SOURCE_HFILES): Update.
1272         * Makefile.in: Regenerate.
1273         * po/SRC-PORFILES.in: Regenerate.
1274
1275 2016-01-21  Alan Modra  <amodra@gmail.com>
1276
1277         * configure.ac: Move corefile selection later in file.  Move
1278         tdefaults code immediately after other target vector code.
1279         * configure: Regenerate.
1280
1281 2016-01-20  Mickael Guene  <mickael.guene@st.com>
1282
1283         * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread
1284         section using '.text.noread' pattern.
1285
1286 2016-01-19  John Baldwin  <jhb@FreeBSD.org>
1287
1288         * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
1289
1290 2016-01-18  Miranda Cupertino  <Cupertino.Miranda@synopsys.com>
1291             Zissulescu Claudiu  <Claudiu.Zissulescu@synopsys.com>
1292
1293         * arc-plt.def: New file.
1294         * arc-plt.h: Likewise.
1295         * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
1296                        elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
1297                        elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
1298                        elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
1299         (name_for_global_symbol): Added.
1300         (ADD_RELA): Helper to create dynamic relocs.
1301         (new_got_entry_to_list): Create a new got entry in linked list.
1302         (symbol_has_entry_of_type): Search for specific type of entry in
1303         list.
1304         (is_reloc_for_GOT): return FALSE for any TLS related relocs.
1305         (is_reloc_for_TLS, arc_elf_set_private_flags)
1306         (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
1307         (arc_elf_merge_private_bfd_data): New functions.
1308         (debug_arc_reloc): Cleaned debug info printing.
1309         (PDATA reloc): Changed not to perform address alignment.
1310         (reverse_me): Added. Fix for ARC_32 relocs.
1311         (arc_do_relocation): Return bfd_reloc_of when no relocation should
1312         occur.
1313         (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
1314         Changed function to access an array of list of GOT entries instead
1315         of just an array of offsets.
1316         (elf_arc_relocate_section): Added support for PIC and TLS related relocations.
1317         (elf_arc_check_relocs): Likewise.
1318         (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
1319         (elf_arc_finish_dynamic_sections): Likewise
1320         (arc_create_dynamic_sections): Modified conditions to create
1321         dynamic sections.
1322         (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
1323         (plt_do_relocs_for_symbol, relocate_plt_for_symbol)
1324         (relocate_plt_for_entry): Changed to support new way to define PLT
1325         related code.
1326         (add_symbol_to_plt): Likewise.
1327         (arc_elf_link_hash_table_create): New function.
1328
1329 2016-01-18  Nick Clifton  <nickc@redhat.com>
1330
1331         PR ld/19440
1332         * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external
1333         section number into internal section number.
1334         * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise.
1335         * coffswap.h (coff_swap_sym_in): Likewise.
1336         * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise.
1337         * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal
1338         section number field is big enough to hold the external value.
1339
1340 2016-01-17  Alan Modra  <amodra@gmail.com>
1341
1342         * configure: Regenerate.
1343
1344 2016-01-12  Yury Usishchev  <y.usishchev@samsung.com>
1345
1346         * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
1347         when address in first unwind entry does not match start of
1348         section.
1349
1350 2016-01-08  Richard Sandiford  <richard.sandiford@arm.com>
1351             Jiong Wang  <jiong.wang@arm.com>
1352
1353         PR ld/19368
1354         * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to
1355         reloc_class_ifunc.
1356
1357 2016-01-06  Andrew Burgess  <andrew.burgess@embecosm.com>
1358
1359         * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to
1360         place 'R_' before the reloc name returned.
1361         (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before
1362         the relocation string.
1363
1364 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1365
1366         * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function,
1367         factored out from...
1368         (_bfd_mips_elf_merge_private_bfd_data): ... here.
1369
1370 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1371
1372         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move
1373         attribute check after ELF file header flag check.
1374
1375 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1376
1377         * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the
1378         return status from `_bfd_elf_merge_object_attributes'.
1379
1380 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1381
1382         * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function,
1383         factored out from...
1384         (_bfd_mips_elf_merge_private_bfd_data): ... here.
1385
1386 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1387
1388         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the
1389         handling of input MIPS ABI flags together.
1390
1391 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1392
1393         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress
1394         attribute checks for null input.
1395
1396 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1397
1398         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local
1399         pointers to target data.
1400
1401 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
1402
1403         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
1404         an FP ABI warning.
1405
1406 2016-01-01  Alan Modra  <amodra@gmail.com>
1407
1408         Update year range in copyright notice of all files.
1409
1410 For older changes see ChangeLog-2015 and doc/ChangeLog-0415
1411 \f
1412 Copyright (C) 2016 Free Software Foundation, Inc.
1413
1414 Copying and distribution of this file, with or without modification,
1415 are permitted in any medium without royalty provided the copyright
1416 notice and this notice are preserved.
1417
1418 Local Variables:
1419 mode: change-log
1420 left-margin: 8
1421 fill-column: 74
1422 version-control: never
1423 End: