Extend test for local labels to include fake symbols and local labels with a numeric...
[external/binutils.git] / bfd / ChangeLog
1 2015-04-24  Nick Clifton  <nickc@redhat.com>
2
3         * elf.c (_bfd_elf_is_local_label_name): Extend test for assembler
4         local labels to include local labels with a numeric suffix and
5         fake symbols.
6
7 2015-04-24  H.J. Lu  <hongjiu.lu@intel.com>
8
9         PR binutils/18316
10         * section.c (SEC_MEP_VLIW): New.
11         * bfd-in2.h: Regenerated.
12
13 2015-04-23  H.J. Lu  <hongjiu.lu@intel.com>
14
15         PR ld/18277
16         * compress.c (bfd_compress_section_contents): Remove the
17         write_compress argument.
18         (bfd_init_section_compress_status): Updated.
19         (bfd_compress_section): Likewise.
20         * elf.c (_bfd_elf_set_reloc_sh_name): New.
21         (_bfd_elf_init_reloc_shdr): Add delay_st_name_p.  Set sh_name
22         to (unsigned int) -1 if delay_st_name_p is TRUE.  Use
23         _bfd_elf_set_reloc_sh_name.
24         (elf_fake_sections): Don't rename DWARF debug section for
25         linker output if it will be compressed.  Instead, set
26         delay_st_name_p to TRUE and pass it to _bfd_elf_init_reloc_shdr.
27         (assign_section_numbers): Call _bfd_elf_strtab_addref only if
28         sh_name != (unsigned int) -1.  Don't finalize nor assign
29         shstrtab section here.  Delay setting output section names to
30         _bfd_elf_write_object_contents.
31         (_bfd_elf_compute_section_file_positions): Update comments on
32         sh_offset for shstrtab section.
33         (assign_file_positions_for_non_load_sections): Set sh_offset to
34         -1 for shstrtab section.
35         (assign_file_positions_except_relocs): Likewise.
36         (_bfd_elf_assign_file_positions_for_non_load): Set up sh_name
37         when compressing DWARF debug sections.  Place shstrtab section
38         after DWARF debug sections have been compressed.
39         (_bfd_elf_write_object_contents): Setting sh_name for output
40         sections.
41
42 2015-04-23  H.J. Lu  <hongjiu.lu@intel.com>
43
44         PR binutils/18209
45         * bfd.c (bfd): Add is_linker_input.
46         * elf.c (convert_debug_to_zdebug): New.
47         (convert_zdebug_to_debug): Likewise.
48         (_bfd_elf_make_section_from_shdr): Don't convert .debug_* to
49         .zdebug_* here.  Use convert_zdebug_to_debug.  Set SEC_ELF_RENAME.
50         (_bfd_elf_init_reloc_shdr): Pass a pointer to section name
51         instead of a pointer to section.
52         (elf_fake_sections): Rename the section name if SEC_ELF_RENAME
53         is set.
54         * section.c (SEC_ELF_RENAME): New.
55         * bfd-in2.h: Regenerated.
56
57 2015-04-23  Alan Modra  <amodra@gmail.com>
58
59         * elf64-ppc.c (TOC_BASE_ALIGN): Define.
60         (ppc64_elf_next_toc_section): Align multi-got toc base.
61         (ppc64_elf_set_toc): Likewise initial toc base and .TOC. symbol.
62
63 2015-04-22  H.J. Lu  <hongjiu.lu@intel.com>
64
65         PR ld/18289
66         * elf32-i386.c (elf_i386_link_hash_entry): Add gotoff_ref.
67         (elf_i386_link_hash_newfunc): Initialize gotoff_ref to 0.
68         (elf_i386_create_dynamic_sections): Always allow copy relocs for
69         building executables.
70         (elf_i386_copy_indirect_symbol): Also copy gotoff_ref.
71         (elf_i386_check_relocs): Set gotoff_ref for R_386_GOTOFF.
72         (elf_i386_adjust_dynamic_symbol): Also allocate copy relocs for
73         PIE and R_386_GOTOFF.
74         (elf_i386_relocate_section): Allow R_386_GOTOFF in executable.
75
76 2015-04-20  H.J. Lu  <hongjiu.lu@intel.com>
77
78         * elf.c (assign_section_numbers): Always set up sh_name.
79
80 2015-04-20  H.J. Lu  <hongjiu.lu@intel.com>
81
82         * elf.c (assign_file_positions_for_non_load_sections): Iterate
83         sections by pointer.
84         (_bfd_elf_assign_file_positions_for_non_load): Likewise.
85
86 2015-04-14  H.J. Lu  <hongjiu.lu@intel.com>
87
88         * bfd-in.h (compressed_debug_section_type): New.
89         * compress.c (bfd_compress_section_contents): Add an argument
90         for linker write compression and always generate .zdebug_*
91         section when linking.
92         (bfd_init_section_compress_status): Pass FALSE to
93         bfd_compress_section_contents.
94         (bfd_compress_section): New function.
95         * elf.c (elf_fake_sections): For linking, set SEC_ELF_COMPRESS
96         on DWARF debug sections if COMPRESS_DEBUG is set and rename
97         section if COMPRESS_DEBUG_GABI_ZLIB isn't set.
98         (assign_file_positions_for_non_load_sections): Set sh_offset
99         to -1 if SEC_ELF_COMPRESS is set.
100         (assign_file_positions_except_relocs): Likwise.
101         (_bfd_elf_assign_file_positions_for_relocs): Renamed to ...
102         (_bfd_elf_assign_file_positions_for_non_load): This.  Change
103         return time to bfd_boolean.  Compress the section if
104         SEC_ELF_COMPRESS is set.
105         (_bfd_elf_write_object_contents): Updated.
106         (_bfd_elf_set_section_contents): Write section contents to
107         the buffer if SEC_ELF_COMPRESS is set.
108         * merge.c: Include "elf-bfd.h".
109         (sec_merge_emit): Add arguments for contents and offset.  Write
110         to contents with offset if contents isn't NULL.
111         (_bfd_write_merged_section): Write section contents to the
112         buffer if SEC_ELF_COMPRESS is set.  Pass contents and
113         output_offset to sec_merge_emit.
114         * elflink.c (bfd_elf_final_link): Allocate the buffer for
115         output section contents if SEC_ELF_COMPRESS is set.
116         * section.c (SEC_ELF_COMPRESS): New.
117         * bfd-in2.h: Regenerated.
118
119 2015-04-15  Alan Modra  <amodra@gmail.com>
120
121         * elf32-rl78.c (rl78_elf_relocate_section): Typo fix.
122
123 2015-04-14  Nick Clifton  <nickc@redhat.com>
124
125         * elf32-rl78.c (RL78_OP_REL): New macro.
126         (rl78_elf_howto_table): Use it for complex relocs.
127         (get_symbol_value): Handle the cases when the info or status
128         arguments are NULL.
129         (get_romstart): Cache the status returned by get_symbol_value.
130         (get_ramstart): Likewise.
131         (RL78_STACK_PUSH): Generate an error message if the stack
132         overflows.
133         (RL78_STACK_POP): Likewise for underflows.
134         (rl78_compute_complex_reloc): New function.  Contains the basic
135         processing code for all RL78 complex relocs.
136         (rl78_special_reloc): New function.  Provides special reloc
137         handling for complex relocs.
138         (rl78_elf_relocate_section): Use rl78_compute_complex_reloc.
139         (rl78_offset_for_reloc): Likewise.
140
141 2015-04-14  H.J. Lu  <hongjiu.lu@intel.com>
142
143         PR ld/pr17709
144         * elflink.c (_bfd_elf_adjust_dynamic_copy): Check
145         info->extern_protected_data when warning copy relocs against
146         protected symbols.
147         (_bfd_elf_symbol_refs_local_p): Check info->extern_protected_data
148         when checking protected non-function symbols.
149
150 2015-04-13  John Baldwin  <jhb@FreeBSD.org>
151
152         * elf.c (elfcore_grok_note): Recognize NT_X86_XSTATE on
153         FreeBSD.
154         (elfcore_write_xstatereg): Use correct note name on FreeBSD.
155
156 2015-04-13  H.J. Lu  <hongjiu.lu@intel.com>
157
158         PR ld/18250
159         * elflink.c (elf_link_is_defined_archive_symbol): Return FALSE
160         if the object has been claimed by plugin.
161
162 2015-04-11  H.J. Lu  <hongjiu.lu@intel.com>
163
164         * elf32-i386.c (elf_i386_relocate_section): Replace SYMBOLIC_BIND
165         with SYMBOL_REFERENCES_LOCAL when checking R_386_GOTOFF against
166         protected data symbol when building shared library.
167         * elf64-x86-64.c (elf_x86_64_relocate_section): Check
168         R_X86_64_GOTOFF64 against undefined symbol and replace
169         SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL when checking
170         R_X86_64_GOTOFF64 against protected data symbol when building
171         shared library.
172
173 2015-04-10  H.J. Lu  <hongjiu.lu@intel.com>
174
175         PR ld/pr17709
176         * elf32-i386.c (elf_i386_relocate_section): Also check R_386_GOTOFF
177         against protected data symbol when building shared library.
178         * elf64-x86-64.c (elf_x86_64_relocate_section): Also check
179         R_X86_64_GOTOFF64 against protected data symbol when building
180         shared library.
181
182 2015-04-10  H.J. Lu  <hongjiu.lu@intel.com>
183
184         PR ld/pr15228
185         PR ld/pr17709
186         * elf-bfd.h (elf_backend_data): Add extern_protected_data.
187         * elf32-i386.c (elf_backend_extern_protected_data): New.
188         Defined to 1.
189         * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
190         * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't error on
191         copy relocs against protected symbols if extern_protected_data
192         is true.
193         (_bfd_elf_symbol_refs_local_p): Don't return true on protected
194         non-function symbols if extern_protected_data is true.
195         * elfxx-target.h (elf_backend_extern_protected_data): New.
196         Default to 0.
197         (elfNN_bed): Initialize extern_protected_data with
198         elf_backend_extern_protected_data.
199
200 2015-04-10  H.J. Lu  <hongjiu.lu@intel.com>
201
202         * compress.c (bfd_compress_section_contents): Replace bfd_malloc
203         and free with bfd_alloc and bfd_release on compressed buffer.
204         Release buffer if compressed section isn't smaller.
205
206 2015-04-10  Alan Modra  <amodra@gmail.com>
207
208         PR ld/18222
209         * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't report an error
210         on adding a protected visibility variable to .dynbss.
211
212 2015-04-10  Alan Modra  <amodra@gmail.com>
213
214         Revert 2015-03-05  H.J. Lu  <hongjiu.lu@intel.com>
215         PR ld/pr15228
216         PR ld/pr17709
217         * elf-bfd.h (elf_backend_data): Delete extern_protected_data.
218         * elf32-i386.c (elf_backend_extern_protected_data): Delete.
219         * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
220         * elflink.c (_bfd_elf_adjust_dynamic_copy): Remove
221         extern_protected_data test.
222         (_bfd_elf_symbol_refs_local_p): Likewise.
223         * elfxx-target.h (elf_backend_extern_protected_data): Delete.
224         (elfNN_bed): Delete elf_backend_extern_protected_data init.
225
226 2015-04-09  H.J. Lu  <hongjiu.lu@intel.com>
227
228         * compress.c (bfd_compress_section_contents): Update comments.
229         (bfd_init_section_decompress_status): Likewise.
230         (bfd_init_section_compress_status): Likewise.
231
232 2015-04-09  H.J. Lu  <hongjiu.lu@intel.com>
233
234         * elfxx-target.h (TARGET_BIG_SYM): Add BFD_COMPRESS_GABI to
235         object_flags.
236         (TARGET_LITTLE_SYM): Likewise.
237
238 2015-04-09  Max Filippov  <jcmvbkbc@gmail.com>
239
240         * elf32-xtensa.c (splay-tree.h): include header.
241         (text_action_struct): drop next pointer.
242         (text_action_list_struct): drop head pointer, add count and
243         tree fields.
244         (find_fill_action): instead of linear search in text_action_list
245         search in the tree.
246         (text_action_compare, action_first, action_next): new functions.
247         (text_action_add, text_action_add_literal): instead of linear
248         search and insertion insert new node into the tree.
249         (removed_by_actions): pass additional parameter: action_list,
250         use it to traverse the tree.
251         (offset_with_removed_text): pass additional action_list parameter
252         to removed_by_actions.
253         (map_action_fn_context): new typedef.
254         (map_action_fn_context_struct): new structure.
255         (map_action_fn): new function.
256         (map_removal_by_action): use splay_tree_foreach to build map.
257         (find_insn_action): replace linear search in text_action_list
258         with series of splay_tree_lookups.
259         (print_action, print_action_list_fn): new functions.
260         (print_action_list): use splay_tree_foreach.
261         (init_xtensa_relax_info): drop action_list.head initialization.
262         Initialize the tree.
263         (compute_text_actions): use non-zero action_list_count instead of
264         non-NULL action list.
265         (xlate_map_context): new typedef.
266         (xlate_map_context_struct): new structure.
267         (xlate_map_fn): new function.
268         (build_xlate_map): use splay_tree_foreach to build map.
269         (action_remove_bytes_fn): new function.
270         (relax_section): use zero action_list_count instead of NULL
271         action list. Use splay_tree_foreach to count final section size.
272         Drop unused variable 'removed'.
273
274 2015-04-09  Max Filippov  <jcmvbkbc@gmail.com>
275
276         * elf32-xtensa.c (removed_literal_map_entry): new typedef.
277         (removed_literal_map_entry_struct): new structure.
278         (removed_literal_list_struct): add new fields: n_map and map.
279         (map_removed_literal, removed_literal_compare): new functions.
280         (find_removed_literal): build index array for literals ordered
281         by VMA, use binary search to find removed literal.
282
283 2015-04-09  Max Filippov  <jcmvbkbc@gmail.com>
284
285         * elf32-xtensa.c (removal_by_action_entry_struct,
286         removal_by_action_map_struct): new structures.
287         (removal_by_action_entry, removal_by_action_map): new typedefs.
288         (text_action_list_struct): add new field: map.
289         (map_removal_by_action, removed_by_actions_map,
290         offset_with_removed_text_map): new functions.
291         (relax_section): replace offset_with_removed_text with
292         offset_with_removed_text_map.
293         (translate_reloc, relax_property_section, relax_section_symbols):
294         replace removed_by_actions with removed_by_actions_map.
295
296 2015-04-09  Max Filippov  <jcmvbkbc@gmail.com>
297
298         * elf32-xtensa.c (reloc_range_list, reloc_range_list_entry,
299         reloc_range): new typedef.
300         (reloc_range_list_struct, reloc_range_list_entry_struct,
301         reloc_range_struct): new structures.
302         (reloc_range_compare, build_reloc_ranges,
303         reloc_range_list_append, reloc_range_list_remove,
304         reloc_range_list_update_range, free_reloc_range_list): new
305         functions.
306         (compute_text_actions): precompute relocation opcodes before the
307         loop. Add relevant_relocs variable, initialize it before the
308         loop, pass it to the check_section_ebb_pcrels_fit.
309         (check_section_ebb_pcrels_fit): add new parameter:
310         relevant_relocs. Update address range in the relevant_relocs if
311         it's non-NULL and iterate only over relevant relocations.
312
313 2015-04-09  Nick Clifton  <nickc@redhat.com>
314
315         * elf32-rx.c (describe_flags): Report the settings of the string
316         insn using bits.
317         (rx_elf_merge_private_bfd_data): Handle merging of the string insn
318         using bits.
319
320 2015-04-08  H.J. Lu  <hongjiu.lu@intel.com>
321
322         * compress.c (bfd_compress_section_contents): Work around a GCC
323         uninitialized warning bug fixed in GCC 4.7.
324
325 2015-04-08  H.J. Lu  <hongjiu.lu@intel.com>
326
327         * archive.c (_bfd_get_elt_at_filepos): Also copy BFD_COMPRESS_GABI
328         bit.
329         * bfd.c (bfd::flags): Increase size to 18 bits.
330         (BFD_COMPRESS_GABI): New.
331         (BFD_FLAGS_SAVED): Add BFD_COMPRESS_GABI.
332         (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
333         (bfd_update_compression_header): New fuction.
334         (bfd_check_compression_header): Likewise.
335         (bfd_get_compression_header_size): Likewise.
336         (bfd_is_section_compressed_with_header): Likewise.
337         * compress.c (MAX_COMPRESSION_HEADER_SIZE): New.
338         (bfd_compress_section_contents): Return the uncompressed size if
339         the full section contents is compressed successfully.  Support
340         converting from/to .zdebug* sections.
341         (bfd_get_full_section_contents): Call
342         bfd_get_compression_header_size to get compression header size.
343         (bfd_is_section_compressed): Renamed to ...
344         (bfd_is_section_compressed_with_header): This.  Add a pointer
345         argument to return compression header size.
346         (bfd_is_section_compressed): Use it.
347         (bfd_init_section_decompress_status): Call
348         bfd_get_compression_header_size to get compression header size.
349         Return FALSE if uncompressed section size is 0.
350         * elf.c (_bfd_elf_make_section_from_shdr): Support converting
351         from/to .zdebug* sections.
352         * bfd-in2.h: Regenerated.
353
354 2015-04-07  Alan Modra  <amodra@gmail.com>
355
356         * elf.c (_bfd_elf_get_reloc_section): Allow for .got.plt being
357         mapped to output .got section.
358
359 2015-04-07  Alan Modra  <amodra@gmail.com>
360
361         * elf32-ppc.c (struct ppc_elf_link_hash_entry): Add has_addr16_ha
362         and has_addr16_lo.  Make has_sda_refs a bitfield.
363         (ppc_elf_check_relocs): Set new flags.
364         (ppc_elf_link_hash_table_create): Update default_params.
365         (ppc_elf_adjust_dynamic_symbol): Clear protected_def in cases
366         where we won't be making .dynbss entries or editing code.  Set
367         params->pic_fixup when we'll edit code for protected var access.
368         (allocate_dynrelocs): Allocate got entry for edited code and
369         discard dyn_relocs.
370         (struct ppc_elf_relax_info): Add picfixup_size.
371         (ppc_elf_relax_section): Rename struct one_fixup to struct
372         one_branch_fixup.  Rename fixups to branch_fixups.  Size space for
373         pic fixups.
374         (ppc_elf_relocate_section): Edit non-PIC accessing protected
375         visibility variables to PIC.  Don't emit dyn_relocs for code
376         we've edited.
377         * elf32-ppc.h (struct ppc_elf_params): Add pic_fixup.
378
379 2015-04-07  Nick Clifton  <nickc@redhat.com>
380
381         * elf.c (_bfd_elf_is_local_label_name): Treat assembler generated
382         local labels as local.
383
384 2015-04-06  H.J. Lu  <hongjiu.lu@intel.com>
385
386         * compress.c (get_uncompressed_size): Removed.
387         (bfd_compress_section_contents): Use bfd_putb64 to write
388         uncompressed section size.
389         (bfd_init_section_decompress_status): Replace
390         get_uncompressed_size with bfd_getb64.
391
392 2015-04-04  H.J. Lu  <hongjiu.lu@intel.com>
393
394         * elf.c (_bfd_elf_init_private_section_data): Also preserve the
395         SHF_COMPRESSED bit if not decompress.
396
397 2015-04-04  H.J. Lu  <hongjiu.lu@intel.com>
398
399         * compress.c (get_uncompressed_size): New.  Extracted from ...
400         (bfd_init_section_decompress_status): This.  Use it.
401
402 2015-04-02  Andrew Turner  <andrew@freebsd.org>
403
404         * config.bfd: Add aarch64-*-freebsd* target triple.
405
406 2015-04-02  H.J. Lu  <hongjiu.lu@intel.com>
407
408         * configure: Regenerated.
409
410 2015-04-01  Tejas Belagod  <tejas.belagod@arm.com>
411             Marcus Shawcroft  <marcus.shawcroft@arm.com>
412             Jiong Wang  <jiong.wang@arm.com>
413
414         * bfd-in.h (bfd_elf64_aarch64_set_options)
415         (bfd_elf32_aarch64_set_options): Add parameter.
416         * bfd-in2.h: Regenerated.
417         * elfnn-aarch64.c (aarch64_erratum_843419_stub)
418         (_bfd_aarch64_adrp_p, _bfd_aarch64_erratum_843419_sequence_p)
419         (_bfd_aarch64_erratum_843419_stub_name)
420         (_bfd_aarch64_erratum_843419_fixup)
421         (_bfd_aarch64_erratum_843419_scan)
422         (_bfd_aarch64_erratum_843419_branch_to_stub)
423         (_bfd_aarch64_erratum_843419_p): Define.
424         (enum elf_aarch64_stub_type): Define
425         aarch64_stub_erratum_843419_veneer.
426         (struct elf_aarch64_stub_hash_entry): Define adrp_offset.
427         (struct elf_aarch64_link_hash_table): Define fix_erratum_843419
428         and fix_erratum_843419_adr.
429         (stub_hash_newfunc): Initialize adrp_offset;
430         (_bfd_aarch64_add_stub_entry_after): Define.
431         (aarch64_map_one_stub, aarch64_build_one_stub)
432         (aarch64_size_one_stub): Handle
433         aarch64_stub_erratum_843419_veneer.
434         (_bfd_aarch64_resize_stubs): Round stub section size.
435         (elfNN_aarch64_size_stubs): Add scan for 843419.
436         (bfd_elfNN_aarch64_set_options): Add parameter. Initialize
437         fix_erratum_843419 and fix_erratum_843419_adr.
438         (struct erratum_835769_branch_to_stub_data): Add info.
439         (elfNN_aarch64_write_section): Initialise info.  Handle 843419.
440         (elfNN_aarch64_size_dynamic_sections): Handle 843419.
441         * elfxx-aarch64.c (_bfd_aarch64_decode_adrp_imm)
442         (_bfd_aarch64_sign_extend): Define.
443         (reencode_adr_imm): Remove static. Rename to:
444         (_bfd_aarch64_reencode_adr_imm): Define.
445         (_bfd_aarch64_elf_put_addend): Call _bfd_aarch64_reencode_adr_imm.
446         * elfxx-aarch64.h (AARCH64_ADR_OP, AARCH64_ADRP_OP)
447         (AARCH64_ADRP_OP_MASK, _bfd_aarch64_sign_extend)
448         (_bfd_aarch64_decode_adrp_imm, _bfd_aarch64_reencode_adr_imm):
449         Define.
450
451 2015-04-01  H.J. Lu  <hongjiu.lu@intel.com>
452
453         * configure: Regenerated.
454
455 2015-03-31  Ed Schouten  <ed@nuxi.nl>
456
457         * config.bfd (targ_defvec): Set to x86_64_elf64_cloudabi_vec
458         for x86_64-*-cloudabi*.
459         * configure.ac: Handle x86_64_elf64_cloudabi_vec.
460         * configure: Regenerated.
461         * elf64-x86-64.c (TARGET_LITTLE_SYM): Support x86_64-*-cloudabi*.
462         (TARGET_LITTLE_NAME): Likewise.
463         (ELF_OSABI): Likewise.
464         (elf64_bed): Likewise.
465         * targets.c (x86_64_elf64_cloudabi_vec): New.
466         (_bfd_target_vector): Add x86_64_elf64_cloudabi_vec.
467
468 2015-03-31  H.J. Lu  <hongjiu.lu@intel.com>
469
470         * configure.ac: Revert the AM_ZLIB change.
471         * Makefile.in: Regenerated.
472         * aclocal.m4: Likewise.
473         * configure: Likewise.
474         * doc/Makefile.in: Likewise.
475
476 2015-03-30  H.J. Lu  <hongjiu.lu@intel.com>
477
478         PR ld/18169
479         * elf-bfd.h (elf_backend_data): Add get_reloc_section.
480         (_bfd_elf_get_reloc_section): New.
481         * elf.c (_bfd_elf_get_reloc_section): Likewise.
482         (assign_section_numbers): Call get_reloc_section to look up the
483         section the relocs apply.
484         * elfxx-target.h (elf_backend_get_reloc_section): Likewise.
485         (elfNN_bed): Initialize get_reloc_section with
486         elf_backend_get_reloc_section.
487
488 2015-03-29  H.J. Lu  <hongjiu.lu@intel.com>
489
490         * Makefile.am (ZLIB): New.
491         (ZLIBINC): Likewise.
492         (AM_CFLAGS): Add $(ZLIBINC).
493         (libbfd_la_LIBADD): Add $(ZLIB).
494         * compress.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
495         (decompress_contents): Don't check HAVE_ZLIB_H.
496         (bfd_compress_section_contents): Likewise.
497         (bfd_get_full_section_contents): Likewise.
498         (bfd_init_section_decompress_status): Likewise.
499         (bfd_init_section_compress_status): Likewise.
500         * configure.ac (AM_ZLIB): Removed.
501         (zlibdir): New.  AC_SUBST.
502         (zlibinc): Likewise.
503         Add --with-system-zlib.
504         * Makefile.in: Regenerated.
505         * acinclude.m4: Likewise.
506         * config.in: Likewise.
507         * configure: Likewise.
508         * doc/Makefile.in: Likewise.
509
510 2015-03-27  Alan Modra  <amodra@gmail.com>
511
512         PR ld/15228
513         PR ld/18167
514         * elflink.c (elf_merge_st_other): Add "sec" parameter.  Don't set
515         protected_def when symbol section is read-only.  Adjust all calls.
516         * elf-bfd.h (struct elf_link_hash_entry): Update protected_def comment.
517
518 2015-03-26  Tejas Belagod  <tejas.belagod@arm.com>
519
520         * elfnn-aarch64.c (aarch64_build_one_stub): Replace the call to generic
521         _bfd_final_link_relocate with aarch64_relocate.
522
523 2015-03-26  H.J. Lu  <hongjiu.lu@intel.com>
524
525         PR ld/18160
526         * elflink.c (elf_gc_sweep): Skip if relocation is incompatible.
527         (bfd_elf_gc_sections): Likewise.
528
529 2015-03-25  Marcus Shawcroft  <marcus.shawcroft@arm.com>
530
531         * elfnn-aarch64.c (_bfd_aarch64_resize_stubs): Adjust stub section
532         size for initial branch.
533         (elfNN_aarch64_build_stubs): Write initial branch.
534         _bfd_aarch64_decode_(elfNN_aarch64_output_arch_local_syms): Write
535         mapping symbol on initial branch.
536
537 2015-03-25  Marcus Shawcroft  <marcus.shawcroft@arm.com>
538
539         * elfnn-aarch64.c (_bfd_aarch64_erratum_835769_scan):
540         Update erratum count.
541
542 2015-03-25  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
543
544         * elflink.c (_bfd_elf_gc_mark_extra_sections): Don't break on
545         first matching debug section.
546
547 2015-03-24  H.J. Lu  <hongjiu.lu@intel.com>
548
549         PR gas/18087
550         * compress.c (bfd_compress_section_contents): Don't write the
551         zlib header and set contents as well as compress_status if
552         compression didn't make the section smaller.
553         (bfd_init_section_compress_status): Don't check compression
554         size here.
555
556 2015-03-24  Nick Clifton  <nickc@redhat.com>
557
558         PR binutils/17512
559         * coffgen.c (coff_get_normalized_symtab): Fix test for out of
560         range auxillary sections.
561
562 2015-03-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
563
564         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor
565         code into:
566         (_bfd_aarch64_get_stub_for_link_section): Define.
567
568 2015-03-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
569
570         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Adjust
571         update of section_group[].stub_sec.
572
573 2015-03-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
574
575         * elfnn-aarch64.c (struct aarch64_erratum_835769_fix) Remove.
576         (erratum_835769_scan) Drop fix_table_size_p and fixes_p arguments.
577         Delete fixes, fix_table_size and associated code.  Call
578         _bfd_aarch64_add_stub_entry_in_group. Rename to...
579         (bfd_aarch64_erratum_835769_scan): Define.
580         (elfNN_aarch64_size_stubs): Delete erratum_835769_fixes,
581         erratum_835769_fix_table_size, i and associated code.  Relocate
582         call to _bfd_aarch64_erratum_835769_scan.  Delete adhoc stub size
583         correction.  Delete construction of stub entry from
584         erratum_835769_fixes array.
585
586 2015-03-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
587
588         * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Use
589         _bfd_aarch64_add_stub_entry_in_group.
590
591 2015-03-24  Alan Modra  <amodra@gmail.com>
592
593         * elf64-ppc.c (ppc64_elf_relocate_section): Report overflow to
594         stubs, even those for undefined weak symbols.  Otherwise, don't
595         report relocation overflow on branches to undefined strong
596         symbols.  Fix memory leak.
597         * elf32-ppc.c (ppc_elf_relocate_section): Don't report relocation
598         overflow on branches to undefined strong symbols.
599
600 2015-03-23  Keith Seitz  <keiths@redhat.com>
601
602         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Add
603         missing ';'.
604
605 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
606
607         * elfnn-aarch64.c (erratum_835769_scan): Factor stub name
608         construction into...
609         (_bfd_aarch64_erratum_835769_stub_name): Define.
610
611 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
612
613         * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Factor out
614         stub resize code into...
615         (bfd_aarch64_resize_stubs): Define.
616
617 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
618
619         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor stub
620         creation code into...
621         (bfd_aarch64_create_stub_section): Define.
622
623 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
624
625         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Rename
626         from elf_aarch64_create_or_find_stub_sec.
627         (_bfd_aarch64_add_stub_entry_in_group): Rename from
628         elfNN_aarch64_add_stub.  Call
629         _bfd_aarch64_create_or_find_stub_sec.
630         (elfNN_aarch64_size_stubs, elfNN_aarch64_size_stubs): Call
631         _bfd_aarch64_add_stub_entry_in_group.
632
633 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
634
635         * elfnn-aarch64.c (erratum_835769_scan) Add comment.  Reverse
636         sense of boolean return.
637         (elfNN_aarch64_size_stubs): Adjust for above.
638
639 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
640
641         * elfnn-aarch64.c (elf_aarch64_create_or_find_stub_sec):
642         Remove unused parameter.
643         (elfNN_aarch64_size_stubs): Adjust for above.
644
645 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
646
647         * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Remove bfd_indx.
648
649 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
650
651         * elfnn-aarch64.c (aarch64_erratum_835769_fixes)
652         (num_aarch64_erratum_835769_fixes): Remove.
653         (elfNN_aarch64_size_stubs): Remove assignments to above.
654
655 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
656
657         * elfnn-aarch64.c (aarch64_mem_op_p): Update comment. Rename rtn
658         to rt2.
659         (aarch64_erratum_seqeunce): Rename rtn to rt2.
660
661 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
662
663         * elfnn-aarch64.c (elfNN_aarch64_write_section): Adjust layout.
664
665 2015-03-19  Nick Clifton  <nickc@redhat.com>
666
667         * elf32-rl78.c (rl78_cpu_name): New function.  Prints the name of
668         the RL78 core based upon the flags.
669         (rl78_elf_merge_private_bfd_data): Handle merging of G13 and G14
670         flags.
671         (rl78_elf_print_private_bfd_data): Use rl78_cpu_name.
672         (elf32_rl78_machine): Always return bfd_mach_rl78.
673
674 2015-03-19  Nick Clifton  <nickc@redhat.com>
675
676         PR 18078
677         * compress.c (bfd_compress_section_contents): Do not define this
678         function if it is not used.
679
680 2015-03-18  H.J. Lu  <hongjiu.lu@intel.com>
681
682         * compress.c (bfd_compress_section_contents): Make it static.
683         * bfd/bfd-in2.h: Regenerated.
684
685 2015-03-18  Eric Youngdale  <eyoungdale@ptc.com>
686
687         PR ld/16598
688         * peicode.h (pe_ILF_build_a_bfd): Add support for creating relocs
689         suitable for the AMD64.
690
691 2015-03-18  Jon Turney  <jon.turney@dronecode.org.uk>
692             Nick Clifton  <nickc@redhat.com>
693
694         PR binutils/18087
695         * coffgen.c (make_a_section_from_file): Only prepend a z to a
696         debug section's name if the section was actually compressed.
697         * elf.c (_bfd_elf_make_section_from_shdr): Likewise.
698         * compress.c (bfd_init_section_compress_status): Do not compress
699         the section if doing so would make it bigger.  In such cases leave
700         the section alone and return COMPRESS_SECTION_NONE.
701
702 2015-03-17  Alan Modra  <amodra@gmail.com>
703
704         * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Return count of 0
705         on nothing to do, before malloc of returned symbol array.
706
707 2015-03-16  Nick Clifton  <nickc@redhat.com>
708
709         * elf32-rx.c (elf32_rx_relax_delete_bytes): If the relocs are not
710         stored in the elf_section_data structure then load them as
711         necessary.
712
713 2015-03-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
714
715         * elf-s390-common.c (elf_s390_elf_sort_relocs_p): Don't sort
716         relocs against code sections.
717         * elf32-s390.c: Define elf_backend_sort_relocs_p.
718         * elf64-s390.c: Likewise.
719
720 2015-03-11  Alan Modra  <amodra@gmail.com>
721
722         * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Examine stubs in
723         reverse order.  Account for larger size of __tls_get_addr_opt stub.
724
725 2015-03-10  Yuri Gribov  <y.gribov@samsung.arm>
726
727         PR ld/16572
728         * elf32-arm.c (elf32_arm_final_link_relocate): Remove support for
729         ELF_ARM_HASENTRY.
730         (elf32_arm_print_private_bfd_data): Likewise.
731
732 2015-03-06  Nick Clifton  <nickc@redhat.com>
733
734         PR binutils/17765
735         * elflink.c (put_value): Like previous delta, but for the 32-bit
736         case.
737
738 2015-03-05  Nick Clifton  <nickc@redhat.com>
739
740         PR binutils/17765
741         * elflink.c (put_value): Avoid using an undefined shift
742         operation.
743
744 2015-03-05  H.J. Lu  <hongjiu.lu@intel.com>
745
746         PR ld/pr15228
747         PR ld/pr17709
748         * elf-bfd.h (elf_backend_data): Add extern_protected_data.
749         * elf32-i386.c (elf_backend_extern_protected_data): New.
750         Defined to 1.
751         * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
752         * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't error on
753         copy relocs against protected symbols if extern_protected_data
754         is true.
755         (_bfd_elf_symbol_refs_local_p): Don't return true on protected
756         non-function symbols if extern_protected_data is true.
757         * elfxx-target.h (elf_backend_extern_protected_data): New.
758         Default to 0.
759         (elfNN_bed): Initialize extern_protected_data with
760         elf_backend_extern_protected_data.
761
762 2015-03-05  Nick Clifton  <nickc@redhat.com>
763
764         PR binutils/18025
765         * coffgen.c (coff_find_nearest_line_with_names): If the dwarf2
766         lookup fails, check for an address bias in the dwarf info, and if
767         one exists, retry the lookup with the biased value.
768         * dwarf2.c (_bfd_dwarf2_find_symbol_bias): New function.
769         Determines if a bias exists bewteen the addresses of functions
770         based on DWARF information vs symbol table information.
771         * libbfd-in.h (_bfd_dwarf2_find_symbol_bias): Prototype.
772         * libbfd.h: Regenerate.
773
774 2015-03-04  Marcus Shawcroft  <marcus.shawcroft@arm.com>
775
776         * elfxx-aarch64.c (decode_add_imm, decode_movw_imm)
777         (decode_tst_branch_ofs_14, decode_ld_lit_ofs_19)
778         (decode_cond_branch_ofs_19, decode_branch_ofs_26): Remove.
779
780 2015-03-04  Marcus Shawcroft  <marcus.shawcroft@arm.com>
781
782         * elfnn-aarch64.c (aarch64_build_one_stub): Call abort.
783         (aarch64_size_one_stub): Likewise.
784         (aarch64_map_one_stub): Likewise.
785
786 2015-03-04  Andreas Arnez  <arnez@linux.vnet.ibm.com>
787
788         * cpu-s390.c (N): New macro.
789         (bfd_s390_31_arch): New.  Define only if default target word size
790         is 64 bits.  Otherwise define...
791         (bfd_390_64_arch): ...this.  Make static.
792         (bfd_s390_arch): Define according to the default target word size.
793         Let the 'next' field point to the alternate arch.
794
795 2015-03-04  Richard Sandiford  <richard.sandiford@arm.com>
796
797         PR gas/17843
798         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Expect
799         R_AARCH64_TLSLE_MOVW_TPREL_G0_NC and R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
800         to be used with MOVK rather than MOVZ.
801
802 2015-03-03  DJ Delorie  <dj@redhat.com>
803
804         * elf32-rl78.c (rl78_elf_relax_section): Only relax ADDR16's if
805         there's a symbol.
806
807 2015-02-28  Alan Modra  <amodra@gmail.com>
808
809         * elf32-ppc.c (ppc_elf_tls_setup): Set no_tls_get_addr_opt if
810         not PLT_NEW.
811
812 2015-02-27  H.J. Lu  <hongjiu.lu@intel.com>
813
814         * elf32-i386.c (need_convert_mov_to_lea): New.
815         (elf_i386_check_relocs): Set need_convert_mov_to_lea if needed.
816         (elf_i386_convert_mov_to_lea): Return TRUE if
817         need_convert_mov_to_lea is unset.
818         * elf64-x86-64.c (need_convert_mov_to_lea): New.
819         (elf_x86_64_check_relocs): Set need_convert_mov_to_lea if needed.
820         (elf_x86_64_convert_mov_to_lea): Return TRUE if
821         need_convert_mov_to_lea is unset.
822
823 2015-02-27  Nick Clifton  <nickc@redhat.com>
824
825         PR binutils/17910
826         * coffgen.c (_bfd_coff_internal_syment_name): Only check for
827         string length overflow when the string table length is actually
828         set.
829
830 2015-02-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
831
832         * bfd/bfd-in2.h: Regenerate.
833         * bfd/libbfd.h: Regenerate.
834
835 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
836
837         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix
838         TLSDESC_LD_PREL19 field width and masks.
839         (aarch64_tls_transition_without_check)
840         (aarch64_reloc_got_type, elfNN_aarch64_final_link_relocate)
841         (elfNN_aarch64_tls_relax, elfNN_aarch64_relocate_section)
842         (elfNN_aarch64_gc_sweep_hook, elfNN_aarch64_check_relocs): Handle
843         BFD_RELOC_AARCH64_TLSDESC_LD_PREL19.
844         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend)
845         (_bfd_aarch64_elf_resolve_relocation): Likewise.
846
847 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
848
849         * elfnn-aarch64.c (IS_AARCH64_TLSDESC_RELOC): Reorder R_TYPE
850         tests.
851         (aarch64_tls_transition_without_check)
852         (aarch64_reloc_got_type, elfNN_aarch64_final_link_relocate)
853         (elfNN_aarch64_tls_relax, elfNN_aarch64_relocate_section)
854         (elfNN_aarch64_gc_sweep_hook, elfNN_aarch64_check_relocs): Handle
855         BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21.
856         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend)
857         (_bfd_aarch64_elf_resolve_relocation): Likewise.
858         * reloc.c (BFD_RELOC_AARCH64_TLSGD_ADR_PREL21): Define.
859
860 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
861
862         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC)
863         (elfNN_aarch64_howto_table, aarch64_tls_transition_without_check)
864         (aarch64_reloc_got_type, elfNN_aarch64_final_link_relocate)
865         (elfNN_aarch64_tls_relax, elfNN_aarch64_relocate_section)
866         (elfNN_aarch64_gc_sweep_hook, elfNN_aarch64_check_relocs): Handle
867         BFD_RELOC_AARCH64_TLSGD_ADR_PREL21.
868         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend)
869         (_bfd_aarch64_elf_resolve_relocation): Likewise.
870         * reloc.c (BFD_RELOC_AARCH64_TLSGD_ADR_PREL21): Define.
871
872 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
873
874         * elfnn-aarch64.c: (TLSIE_LD_GOTTREL_PREL19): Fix HOWTO bit field width.
875         (aarch64_tls_transition_without_check, aarch64_reloc_got_type)
876         (elfNN_aarch64_final_link_relocate, elfNN_aarch64_tls_relax)
877         (elfNN_aarch64_relocate_section, elfNN_aarch64_gc_sweep_hook)
878         (elfNN_aarch64_check_relocs): Handle
879         BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19.
880
881         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend)
882         (_bfd_aarch64_elf_resolve_relocation): Likewise.
883
884 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
885
886         * elfnn-aarch64.c: (TLSDESC_CALL): Fix HOWTO bit field width.
887
888 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
889
890         * elfnn-aarch64.c (TLSLE_MOVW_TPREL_G2)
891         (TLSLE_MOVW_TPREL_G1, TLSLE_MOVW_TPREL_G1_NC)
892         (TLSLE_MOVW_TPREL_G0, TLSLE_MOVW_TPREL_G0_NC): Fix bit field
893         width.
894
895 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
896
897         * elfnn-aarch64.c: (TLSIE_MOVW_GOTTPREL_G0_NC): Fix HOWTO bit
898         field width.
899
900 2015-02-26  Nick Clifton  <nickc@redhat.com>
901
902         PR binutils/17512
903         * coffcode.h (coff_compute_section_file_positions): Report
904         negative page sizes.
905         * elf.c (elf_fake_sections): Handle excessive alignmment powers.
906         (assign_file_positions_for_non_load_sections): Replace assertion
907         with an error message.
908         (rewrite_elf_program_header): Handle excessive segment
909         alignments.
910         * mach-o.c (bfd_mach_o_read_section_32): Likewise.
911         (bfd_mach_o_read_section_64): Likewise.
912         * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Use %B to
913         print a bfd name, not %A.
914
915 2015-02-26  Alan Modra  <amodra@gmail.com>
916
917         * elf64-ppc.c (plt_stub_size, build_plt_stub): Don't build
918         thread-safe stubs for iplt.
919         (build_tls_get_addr_stub): Restore r2 immediately after call.
920
921 2015-02-26  Terry Guo  <terry.guo@arm.com>
922
923         * elf32-arm.c (elf32_arm_merge_eabi_attributes): Update how we
924         merge Tag_ABI_HardFP_use.
925
926 2015-02-26  Alan Modra  <amodra@gmail.com>
927
928         * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Heed -z nocopyreloc.
929         Use text relocs rather than giving an error on trying to use
930         .dynbss for protected shared lib vars.
931         * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
932
933 2015-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
934
935         * elf32-avr.c (struct elf_avr_section_data): New structure.
936         (struct avr_relax_info): New structure.
937         (elf_avr_new_section_hook): New function.
938         (struct elf_avr_section_data): Add relax_info.
939         (get_avr_relax_info): New function.
940         (init_avr_relax_info): New function.
941         (elf32_avr_relax_delete_bytes): Find next property record before
942         deleting bytes.  When deleting don't move bytes beyond the next
943         property record.
944         (avr_elf32_assign_records_to_section): New function.
945         (avr_property_record_compare): New function.
946         (avr_load_all_property_sections): New function.
947         (elf32_avr_relax_section): Load property data.  After relaxing the
948         section, move any .align directives that have enough deleted bytes
949         before them.
950         (bfd_elf32_new_section_hook): Define.
951
952 2015-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
953
954         * elf32-avr.h (struct avr_property_header): New strucure.
955         (avr_elf32_load_property_records): Declare.
956         (avr_elf32_property_record_name): Declare.
957         * elf32-avr.c: Add bfd_stdint.h include.
958         (retrieve_local_syms): New function.
959         (get_elf_r_symndx_section): New function.
960         (get_elf_r_symndx_offset): New function.
961         (internal_reloc_compare): New function.
962         (struct avr_find_section_data): New structure.
963         (avr_is_section_for_address): New function.
964         (avr_find_section_for_address): New function.
965         (avr_elf32_load_records_from_section): New function.
966         (avr_elf32_load_property_records): New function.
967         (avr_elf32_property_record_name): New function.
968
969 2015-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
970
971         * elf32-avr.h (AVR_PROPERTY_RECORD_SECTION_NAME): Define.
972         (AVR_PROPERTY_RECORDS_VERSION): Define.
973         (AVR_PROPERTY_SECTION_HEADER_SIZE): Define.
974         (struct avr_property_record): New structure.
975
976 2015-02-24  Nick Clifton  <nickc@redhat.com>
977
978         * elf32-v850.c (v850_set_note): New function.  Creates a Renesas
979         style note entry.
980         (v850_elf_make_note_section): New function.  Creates a note
981         section.
982         (v850_elf_create_sections): New function.  Create a note section
983         if one is not already present.
984         (v850_elf_set_note): New function.  Adds a note to a bfd.
985         (v850_elf_copy_private_bfd_data): New function.  Copies V850
986         notes.
987         (v850_elf_merge_notes): New function.  Merges V850 notes.
988         (print_v850_note): New function.  Displays a V850 note.
989         (v850_elf_print_notes): New function. Displays all notes attached
990         to a bfd.
991         (v850_elf_merge_private_bfd_data): Call v850_elf_merge_notes.
992         (v850_elf_print_private_bfd_data): Call v850_elf_print_notes.
993         (v850_elf_fake_sections): Set the type of the V850 note section.
994         * bfd-in.h (v850_elf_create_sections): Add prototype.
995         (v850_elf_set_note): Add prototype.
996         * bfd-in2.h: Regenerate.
997
998 2015-02-24  Nick Clifton  <nickc@redhat.com>
999
1000         * configure.ac (AC_CHECK_HEADERS): Add wctype.h.
1001         * configure: Regenerate.
1002         * config.in: Regenerate.
1003         * peXXigen.c: Include wctype.h if HAVE_WCTYPE_H is defined.
1004         (u16_mbtowc): Use wint_t types if HAVE_WCTYPE_H is defined.
1005         (rsrc_cmp): Use towlower instead of wcsncasecmp if HAVE_WCTYPE_H
1006         is defined.
1007
1008 2015-02-24  Nick Clifton  <nickc@redhat.com>
1009
1010         * pdp11.c (set_section_contents): Pad the .text and .data sections
1011         to their aligned sizes.
1012
1013 2015-02-23  Yoshinori Sato <ysato@users.sourceforge.jp>
1014
1015         * config.bfd: Add h8300-*-linux.
1016         * configure.ac: Add h8300_elf32_linux_vec.
1017         * configure: Regenerate.
1018         * elf32-h8300.c: Likewise.
1019         * targets.c(_bfd_target_vector): Likewise.
1020
1021 2015-02-23  Nick Clifton  <nickc@redhat.com>
1022
1023         PR 17914
1024         * cpu-w65.c: Correct typos in license notice.
1025
1026         PR 17940
1027         * elf32-msp430.c (msp430_elf_relax_delete_bytes): Adjust debug
1028         symbols at end of sections.  Adjust function sizes.
1029
1030 2015-02-20  Andreas Arnez  <arnez@linux.vnet.ibm.com>
1031
1032         * elf-bfd.h (elfcore_write_s390_vxrs_low): Add prototype.
1033         (elfcore_write_s390_vxrs_high): Likewise.
1034         * elf.c (elfcore_grok_s390_vxrs_low): New function.
1035         (elfcore_grok_s390_vxrs_high): New function.
1036         (elfcore_grok_note): Call them.
1037         (elfcore_write_s390_vxrs_low): New function.
1038         (elfcore_write_s390_vxrs_high): New function.
1039         (elfcore_write_register_note): Call them.
1040
1041 2015-02-19  Branko Drevensek  <branko.drevensek@gmail.com>
1042
1043         PR 17995
1044         * verilog.c (verilog_write_record): Correct buffer size.
1045
1046 2015-02-19  Alan Modra  <amodra@gmail.com>
1047
1048         * elflink.c (_bfd_elf_define_linkage_sym): Set 'bed' earlier.
1049
1050 2015-02-19  Alan Modra  <amodra@gmail.com>
1051
1052         PR ld/4317
1053         * elflink.c (elf_link_input_bfd): Drop undefined local syms.
1054         (elf_link_output_extsym): Drop local and global undefined syms.
1055         Tidy.  Expand comment.
1056
1057 2015-02-17  Alan Modra  <amodra@gmail.com>
1058
1059         PR ld/17975
1060         * elflink.c (struct elf_outext_info): Remove need_second_pass
1061         and second_pass.
1062         (elf_link_output_extsym): Delete code handling second forced
1063         local pass.  Move code emitting NULL STT_FILE symbol later, so
1064         that it can be omitted if forced local is stripped.  Don't
1065         emit the NULL STT_FILE if no file symbols have been output.
1066         (bfd_elf_final_link): Remove second forced local pass.
1067         * elf32-ppc.c (add_stub_sym): Set linker_def on linker syms.
1068         (ppc_elf_size_dynamic_sections): Likewise.
1069         * elf64-ppc.c (ppc_build_one_stub): Likewise.
1070         (build_global_entry_stubs): Likewise.
1071         (ppc64_elf_build_stubs): Likewise.
1072
1073 2015-02-16  H.J. Lu  <hongjiu.lu@intel.com>
1074
1075         PR ld/17975
1076         * elflink.c (elf_link_output_extsym): Only check filesym_count
1077         when outputting a NULL FILE symbol.  Set second_pass_sym to
1078         h->forced_local && !h->root.linker_def.
1079
1080 2015-02-15  H.J. Lu  <hongjiu.lu@intel.com>
1081
1082         * elf32-i386.c (elf_i386_always_size_sections): Set root.linker_def
1083         on _TLS_MODULE_BASE_.
1084         * elf64-x86-64.c (elf_x86_64_always_size_sections): Likewise.
1085
1086 2015-02-15  Alan Modra  <amodra@gmail.com>
1087
1088         * dwarf2.c (read_rangelist): Correct buffer overflow check
1089         Whitespace throughout file.
1090
1091 2015-02-14  Alan Modra  <amodra@gmail.com>
1092
1093         PR ld/17973
1094         * bfd.c (struct bfd): Add lto_output.
1095         * linker.c (_bfd_handle_already_linked): Explicitly test for
1096         objects added by the lto plugin.
1097         * opncls.c (_bfd_new_bfd_contained_in): Copy lto_output and
1098         no_export flags from archive.
1099         * archive.c (open_nested_file): New function, setting lto_output
1100         and no_export, extracted from..
1101         (find_nested_archive): ..here.  Flip params.  Rename from
1102         _bfd_find_nested_archive.
1103         (_bfd_get_elt_at_filepos): Correct var typo.  Use open_nested_file.
1104         (_bfd_look_for_bfd_in_cache): Copy no_export.
1105         * elflink.c (elf_link_add_object_symbols): Remove now unnecessary
1106         my_archive->no_export test.
1107         (elf_link_input_bfd): Drop existing lto_output STT_FILE syms.
1108         Don't use the file name when adding lto_output STT_FILE sym.
1109         * bfd-in2.h: Regenerate.
1110
1111 2015-02-13  Alan Modra  <amodra@gmail.com>
1112
1113         PR binutils/17512
1114         * elf64-ppc.c (opd_entry_value): Tighten offset check.  Remove
1115         now redundant assert.
1116
1117 2015-02-12  Nick Clifton  <nickc@redhat.com>
1118
1119         PR binutils/17512
1120         * dwarf.c (read_1_byte, read_1_signed_byte, read_2_bytes)
1121         (read_4_bytes, read_8_bytes, read_n_bytes, read_string)
1122         (read_indirect_string, read_alt_indirect_string)
1123         (read_alt_indirect_ref, read_address, read_abbrevs)
1124         (read_attribute_value, read_attribute, decode_line_info)
1125         (find_abstract_instance_name, read_rangelist)
1126         (scan_unit_for_symbols, parse_comp_unit)
1127         (_bfd_dwarf2_find_nearest_line): Harden DWARF reading code.  Pass
1128         end pointers to reading functions and check for offsets taking
1129         pointers out of range.  Replace calls to read_*_leb128 with calls
1130         to safe_read_leb128.
1131
1132         (* elf64-ppc.c (opd_entry_value): Add a check for an overlarge
1133         offset.
1134         * syms.c (_bfd_stab_section_find_nearest_line): Add checks for
1135         computed file_name address being before the start of the string
1136         table.
1137
1138 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
1139
1140         PR ld/17878
1141         * bfd.c (bfd_plugin_format): New.
1142         (bfd): Add plugin_format and plugin_dummy_bfd.
1143         * plugin.c (try_load_plugin): Take a pointer to bfd_boolean
1144         argument to return TRUE if any plugin is found.  Set plugin_format.
1145         (has_plugin): New.
1146         (bfd_plugin_target_p): New.
1147         (bfd_plugin_specified_p): Likewise.
1148         (bfd_plugin_target_p): Likewise.
1149         (register_ld_plugin_object_p): Likewise.
1150         (bfd_plugin_set_plugin): Set has_plugin.
1151         (load_plugin): Cache try_load_plugin result.
1152         (bfd_plugin_object_p): Try ld_plugin_object_p first.  Check
1153         plugin_format.
1154         * plugin.h (bfd_plugin_target_p): New.
1155         (bfd_plugin_specified_p): Likewise.
1156         (register_ld_plugin_object_p): Likewise.
1157         * bfd-in2.h: Regenerated.
1158
1159 2015-02-11  Pedro Alves  <palves@redhat.com>
1160
1161         * libbfd-in.h [__cplusplus]: Open extern "C" scope.
1162         * libcoff-in.h [__cplusplus]: Open extern "C" scope.
1163         * libbfd.h: Regenerate.
1164         * libcoff.h: Regenerate.
1165
1166         * elf-bfd.h [__cplusplus]: Wrap in extern "C".
1167         * mach-o.h [__cplusplus]: Wrap in extern "C".
1168         * som.h [__cplusplus]: Wrap in extern "C".
1169
1170 2015-02-10  Nick Clifton  <nickc@redhat.com>
1171
1172         PR binutils/17512
1173         * coffcode.h (styp_to_sec_flags): Use an unsigned long type to
1174         hold the flag bits.
1175         * peXXigen.c (pe_print_reloc): Use unsigned types to hold the
1176         size and number of relocs.
1177         (pe_print_debugdata): Use a 32-bit aligned buffer to store the
1178         codeview record.
1179         * versados.c (process_otr): Check the esdid value before using it
1180         to access the EDATA.
1181
1182 2015-02-09  Ed Maste  <emaste@freebsd.org>
1183
1184         * elf32-i386.c (elf_i386_get_plt_sym_val): Avoid incrementing
1185         uninitialized and unused variable.
1186         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
1187
1188 2015-02-09  Alan Modra  <amodra@gmail.com>
1189
1190         * elf32-ppc.c (ppc_elf_relocate_section): Don't segfault on NULL
1191         tls_sec.
1192         * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
1193         * elflink.c (elf_link_output_extsym): Don't assert on NULL tls_sec.
1194
1195 2015-02-09  Alan Modra  <amodra@gmail.com>
1196
1197         * elflink.c: Whitespace, formatting fixes.
1198         (elf_link_input_bfd): Clarify comment.
1199         (elf_link_output_extsym): Exclude symbols in linker created
1200         sections when testing for plugin symbols.
1201
1202 2015-02-07  H.J. Lu  <hongjiu.lu@intel.com>
1203
1204         PR ld/17935
1205         * elf32-i386.c (elf_i386_readonly_dynrelocs): Also issue a
1206         warning for relocation in readonly section for -z text.
1207         (elf_i386_size_dynamic_sections): Likewise.
1208         * elf64-x86-64.c (elf_x86_64_readonly_dynrelocs): Likewise.
1209         (elf_x86_64_size_dynamic_sections): Likewise.
1210
1211 2015-02-06  H.J. Lu  <hongjiu.lu@intel.com>
1212
1213         PR ld/12365
1214         PR ld/14272
1215         * elflink.c (_bfd_elf_fix_symbol_flags): Revert the last change.
1216         (elf_link_input_bfd): Mark the plugin symbol undefined if it is
1217         referenced from a non-IR file.
1218
1219 2015-02-06  Nick Clifton  <nickc@redhat.com>
1220
1221         PR binutils/17512
1222         * peXXigen.c (rsrc_print_resource_entries): Add range check for
1223         addresses that wrap around the address space.
1224         (rsrc_parse_entry): Likewise.
1225
1226 2015-02-03  H.J. Lu  <hongjiu.lu@intel.com>
1227
1228         PR ld/12365
1229         PR ld/14272
1230         * elflink.c (_bfd_elf_fix_symbol_flags): Mark the plugin symbol
1231         undefined if it is referenced from a non-IR file.
1232
1233 2015-02-03  Nick Clifton  <nickc@redhat.com>
1234
1235         PR binutils/17512
1236         * ecoff.c: Use bfd_alloc2 to allocate space for structure arrays.
1237         (_bfd_ecoff_slurp_symbol_table): Check for a negative symbol
1238         index or an out of range fdr index.
1239         * elf-m10300.c (mn10300_info_to_howto): Fix typo in error message.
1240         * elf32-arc.c (arc_info_to_howto_rel): Likewise.
1241         * elf32-avr.c (avr_info_to_howto_rela): Likewise.
1242         * elf32-cr16.c (elf_cr16_info_to_howto): Likewise.
1243         * elf32-cr16c.c (elf_cr16c_info_to_howto_rel): Likewise.
1244         * elf32-cris.c (cris_info_to_howto_rela): Likewise.
1245         * elf32-crx.c (elf_crx_info_to_howto): Likewise.
1246         * elf32-d10v.c (d10v_info_to_howto_rel): Likewise.
1247         * elf32-d30v.c (d30v_info_to_howto_rel): Likewise.
1248         * elf32-epiphany.c (epiphany_info_to_howto_rela): Likewise.
1249         * elf32-fr30.c (fr30_info_to_howto_rela): Likewise.
1250         * elf32-frv.c (frv_info_to_howto_rela): Likewise.
1251         * elf32-i370.c (i370_elf_info_to_howto): Likewise.
1252         * elf32-i960.c (elf32_i960_info_to_howto_rel): Likewise.
1253         * elf32-ip2k.c (ip2k_info_to_howto_rela): Likewise.
1254         * elf32-iq2000.c (iq2000_info_to_howto_rela): Likewise.
1255         * elf32-lm32.c (lm32_info_to_howto_rela): Likewise.
1256         * elf32-m32c.c (m32c_info_to_howto_rela): Likewise.
1257         * elf32-m32r.c (m32r_info_to_howto_rel): Likewise.
1258         * elf32-m68hc11.c (m68hc11_info_to_howto_rel): Likewise.
1259         * elf32-m68hc12.c (m68hc11_info_to_howto_rel): Likewise.
1260         * elf32-mcore.c (mcore_elf_info_to_howto): Likewise.
1261         * elf32-mep.c (mep_info_to_howto_rela): Likewise.
1262         * elf32-metag.c (metag_info_to_howto_rela): Likewise.
1263         * elf32-microblaze.c (microblaze_elf_info_to_howto): Likewise.
1264         * elf32-moxie.c (moxie_info_to_howto_rela): Likewise.
1265         * elf32-msp430.c (msp430_info_to_howto_rela): Likewise.
1266         * elf32-mt.c (mt_info_to_howto_rela): Likewise.
1267         * elf32-nds32.c (nds32_info_to_howto_rel): Likewise.
1268         * elf32-or1k.c (or1k_info_to_howto_rela): Likewise.
1269         * elf32-pj.c (pj_elf_info_to_howto): Likewise.
1270         * elf32-ppc.c (ppc_elf_info_to_howto): Likewise.
1271         * elf32-rl78.c (rl78_info_to_howto_rela): Likewise.
1272         * elf32-rx.c (rx_info_to_howto_rela): Likewise.
1273         * elf32-sh.c (sh_elf_info_to_howto): Likewise.
1274         * elf32-spu.c (spu_elf_info_to_howto): Likewise.
1275         * elf32-v850.c (v850_elf_perform_relocation): Likewise.
1276         * elf32-vax.c (rtype_to_howto): Likewise.
1277         * elf32-visium.c (visium_info_to_howto_rela): Likewise.
1278         * elf32-xgate.c (xgate_info_to_howto_rel): Likewise.
1279         * elf32-xtensa.c (elf_xtensa_info_to_howto_rela): Likewise.
1280         * elf64-alpha.c (elf64_alpha_info_to_howto): Likewise.
1281         * elf64-mmix.c (mmix_info_to_howto_rela): Likewise.
1282         * mach-o.c: Use bfd_alloc2 to allocate space for structure arrays.
1283         (bfd_mach_o_canonicalize_one_reloc): Fix check on out
1284         of range symbol indicies.
1285         (bfd_mach_o_canonicalize_relocs): Check for out of range alloc.
1286         (bfd_mach_o_canonicalize_dynamic_reloc): Likewise.
1287         (bfd_mach_o_build_dysymtab): Likewise.
1288         (bfd_mach_o_write_symtab_content): Set the string table size to
1289         zero upon error.
1290         (bfd_mach_o_read_symtab_symbols): Reset the nsyms value if the
1291         read fails.
1292         * peXXigen.c (pe_print_edata):  Check for numeric overflow in edt
1293         fields.
1294         * tekhex.c (first_phase): Check for src pointer reaching end of
1295         buffer.
1296
1297 2015-02-03  Will Newton  <will.newton@linaro.org>
1298
1299         * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol):
1300         Set st_value to zero for undefined symbols if the reference
1301         is weak or pointer_equality_needed is FALSE.
1302
1303         * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Improve
1304           comment discussing why we clear st_value for some symbols.
1305
1306 2015-02-02  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
1307
1308         * elf32-nds32.c (nds32_get_section_contents): Add one more argument.
1309         (nds32_elf_relocate_section): Do not relocate R_NDS32_LONGJUMP7.
1310
1311 2015-01-29  Alan Modra  <amodra@gmail.com>
1312
1313         * elf64-ppc.c (ppc64_elf_relocate_section): Correct GOT_TLSLD
1314         optimization.  Tidy mask for GOT_TLSGD optimization.
1315         * elf32-ppc.c (ppc_elf_relocate_section): Likewise.  Correct
1316         location of nop zapping high insn too.
1317
1318 2015-01-28  Alan Modra  <amodra@gmail.com>
1319
1320         * elf64-ppc.h (struct ppc64_elf_params): Add "object_in_toc".
1321         * elf64-ppc.c (ppc64_elf_add_symbol_hook): Assume that global symbols
1322         in .toc indicate xlc compiled code that might require a rw .toc.
1323
1324 2015-01-28  James Bowman  <james.bowman@ftdichip.com>
1325
1326         * Makefile.am: Add FT32 files.
1327         * archures.c (enum bfd_architecture): Add bfd_arch_ft32.
1328         (bfd_mach_ft32): Define.
1329         (bfd_ft32_arch): Declare.
1330         (bfd_archures_list): Add bfd_ft32_arch.
1331         * config.bfd: Handle FT32.
1332         * configure.ac: Likewise.
1333         * cpu-ft32.c: New file.
1334         * elf32-ft32.c: New file.
1335         * reloc.c (BFD_RELOC_FT32_10, BFD_RELOC_FT32_20, BFD_RELOC_FT32_17,
1336         BFD_RELOC_FT32_18): Define.
1337         * targets.c (_bfd_target_vector): Add ft32_elf32_vec.
1338         * bfd-in2.h: Regenerate.
1339         * libbfd.h: Regenerate.
1340         * Makefile.in: Regenerate.
1341         * configure: Regenerate.
1342         * po/SRC-POTFILES.in: Regenerate.
1343
1344 2015-01-27  Nick Clifton  <nickc@redhat.com>
1345
1346         PR binutils/17512
1347         * pdp11.c (aout_get_external_symbols): Return false if there are
1348         no symbols.
1349
1350         * dwarf2.c (concat_filename): Check for an empty directory table.
1351         (scan_unit_for_symbols): Check for reading off the end of the
1352         unit.
1353         (parse_comp_unit): Check for a DW_AT_comp_dir attribute with a
1354         non-string form.
1355         * elf64-ppc.c (opd_entry_value): Fail if there are no relocs
1356         available.
1357
1358 2015-01-26  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
1359
1360         * elf32-nds32.c (nds32_elf_pick_relax): Fix again setting.
1361
1362 2015-01-22  DJ Delorie  <dj@redhat.com>
1363
1364         * elf32-m32c.c (m32c_apply_reloc_24): New.
1365         (m32c_elf_howto_table): Use it for R_M32C_24.
1366         (m32c_elf_relocate_section): Handle R_M32C_24 specially.
1367
1368 2015-01-22  Nick Clifton  <nickc@redhat.com>
1369
1370         PR binutils/17512
1371         * coffcode.h (handle_COMDAT): When searching for the section
1372         symbol, make sure that there is space left in the symbol table.
1373         * vms-alpha.c (_bfd_vms_slurp_ehdr): Add range checks.
1374
1375 2015-01-21  Nick Clifton  <nickc@redhat.com>
1376
1377         PR binutils/17512
1378         * coffcode.h (coff_set_arch_mach_hook): Check return value from
1379         bfd_malloc.
1380         (coff_slurp_line_table): Return FALSE if the line number
1381         information was corrupt.
1382         (coff_slurp_symbol_table): Return FALSE if the symbol information
1383         was corrupt.
1384         * mach-o.c (bfd_mach_o_bfd_copy_private_header_data): Always
1385         initialise the fields of the dyld_info structure.
1386         (bfd_mach_o_build_exec_seg_command): Replace assertion with an
1387         error message and a return value.
1388         (bfd_mach_o_layout_commands): Change the function to boolean.
1389         Return FALSE if the function fails.
1390         (bfd_mach_o_build_commands): Fail if bfd_mach_o_layout_commands
1391         fails.
1392         (bfd_mach_o_read_command): Fail if an unrecognised command is
1393         encountered.
1394         * peXXigen.c (_bfd_XXi_swap_aouthdr_in): Set bfd_error if the
1395         read fails.
1396         (slurp_symtab): Check the return from bfd_malloc.
1397         (_bfd_XX_bfd_copy_private_bfd_data_common): Fail if the copy
1398         encountered an error.
1399         (_bfd_XXi_final_link_postscript): Fail if a section could not be
1400         copied.
1401         * peicode.h (pe_bfd_object_p): Fail if the header could not be
1402         swapped in.
1403         * tekhex.c (first_phase): Fail if the section is too big.
1404         * versados.c (struct esdid): Add content_size field.
1405         (process_otr): Use and check the new field.
1406         (versados_get_section_contents): Check that the section exists and
1407         that the requested data is available.
1408
1409 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
1410
1411         * elf32-nios2.c (elf_backend_default_execstack): Define as 0.
1412
1413 2015-01-20  Alan Modra  <amodra@gmail.com>
1414
1415         PR ld/17615
1416         * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Don't drop
1417         ELF_COMMON_DEF syms.
1418
1419 2015-01-19  Alan Modra  <amodra@gmail.com>
1420
1421         PR ld/17615
1422         * elf-bfd.h (ELF_COMMON_DEF_P): Note that this might be true for
1423         linker script assignments too.
1424         * elflink.c (elf_gc_sweep_symbol): Don't drop ELF_COMMON_DEF syms.
1425         (bfd_elf_gc_mark_dynamic_ref_symbol): Similarly.
1426
1427 2015-01-19  Alan Modra  <amodra@gmail.com>
1428
1429         * elf32-bfin.c (bfin_bfd_reloc_type_lookup): Correct loop iteration
1430         to allow return of first howto.
1431         * elf32-fr30.c (fr30_reloc_type_lookup): Likewise.
1432         * elf32-m32c.c (m32c_reloc_type_lookup): Likewise.
1433         * elf32-moxie.c (moxie_reloc_type_lookup): Likewise.
1434         * elf32-or1k.c (or1k_reloc_type_lookup): Likewise.
1435         * elf32-rl78.c (rl78_reloc_type_lookup): Likewise.
1436         * elf32-rx.c (rx_reloc_type_lookup): Likewise.
1437         * elf32-tilepro.c (tilepro_reloc_type_lookup): Likewise.
1438         * elf32-xstormy16.c (xstormy16_reloc_type_lookup): Likewise.
1439         * elfxx-tilegx.c (tilegx_reloc_type_lookup): Likewise.
1440         * elf32-nios2.c (nios2_reloc_map): Add mapping for R_NIOS2_NONE.
1441         * elf32-spu.c (spu_elf_bfd_to_reloc_type): Allow return of R_SPU_NONE.
1442         (spu_elf_reloc_type_lookup): Adjust to suit.
1443
1444 2015-01-19  Alan Modra  <amodra@gmail.com>
1445
1446         * bfd-in.h (bfd_get_section_limit_octets): New define, extracted from..
1447         (bfd_get_section_limit): ..here.
1448         * reloc.c (bfd_perform_relocation): Correct bfd_reloc_outofrange check.
1449         (bfd_install_relocation, _bfd_final_link_relocate): Add same check here.
1450         * elf32-sh.c (sh_elf_reloc): Correct bfd_reloc_outofrange check.
1451         * elf32-ppc.c (ppc_elf_addr16_ha_reloc): Remove duplicated
1452         bfd_reloc_outofrange check.
1453         * bfd-in2.h: Regenerate.
1454
1455         * cpu-ns32k.c (_bfd_do_ns32k_reloc_contents): Return bfd_reloc_ok
1456         on zero size relocs.
1457         * ecoff.c (ecoff_reloc_link_order): Likewise.
1458         * elf32-nds32.c (nds32_relocate_contents): Likewise.
1459         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
1460
1461         * reloc.c (_bfd_relocate_contents): Don't bomb on zero size relocs.
1462         (_bfd_clear_contents): Likewise.
1463         * elfxx-mips.c (mips_elf_obtain_contents): Likewise.
1464         (mips_elf_perform_relocation): Likewise.
1465
1466         * aoutx.h (aout_link_reloc_link_order): Allow for NULL return
1467         from malloc on zero size alloc.
1468         * cofflink.c (_bfd_coff_reloc_link_order): Likewise.
1469         * elflink.c (elf_reloc_link_order): Likewise.
1470         * linker.c (_bfd_generic_reloc_link_order): Likewise.
1471         * pdp11.c (aout_link_reloc_link_order): Likewise.
1472         * xcofflink.c (xcoff_reloc_link_order): Likewise.
1473
1474         * aoutx.h (howto_table_ext): Ensure NONE relocs have size 3,
1475         bitsize 0, and complain_overflow_dont.
1476         * coff-sparc.c (coff_sparc_howto_table): Likewise.
1477         * elf-hppa.h (elf_hppa_howto_table): Likewise.
1478         * elf-m10200.c (elf_mn10200_howto_table): Likewise.
1479         * elf-m10300.c (elf_mn10300_howto_table): Likewise.
1480         * elf32-arc.c (elf_arc_howto_table): Likewise.
1481         * elf32-arm.c (elf32_arm_howto_table_1): Likewise.
1482         * elf32-avr.c (elf_avr_howto_table): Likewise.
1483         * elf32-bfin.c (bfin_howto_table): Likewise.
1484         * elf32-cr16.c (cr16_elf_howto_table): Likewise.
1485         * elf32-cris.c (cris_elf_howto_table): Likewise.
1486         * elf32-crx.c (crx_elf_howto_table): Likewise.
1487         * elf32-d10v.c (elf_d10v_howto_table): Likewise.
1488         * elf32-d30v.c (elf_d30v_howto_table): Likewise.
1489         * elf32-dlx.c (dlx_elf_howto_table): Likewise.
1490         * elf32-epiphany.c (epiphany_elf_howto_table): Likewise.
1491         * elf32-fr30.c (fr30_elf_howto_table): Likewise.
1492         * elf32-frv.c (elf32_frv_howto_table): Likewise.
1493         * elf32-h8300.c (h8_elf_howto_table): Likewise.
1494         * elf32-i370.c (i370_elf_howto_raw): Likewise.
1495         * elf32-i386.c (elf_howto_table): Likewise.
1496         * elf32-i860.c (elf32_i860_howto_table): Likewise.
1497         * elf32-i960.c (elf32_i960_relocate): Likewise.
1498         * elf32-ip2k.c (ip2k_elf_howto_table): Likewise.
1499         * elf32-iq2000.c (iq2000_elf_howto_table): Likewise.
1500         * elf32-lm32.c (lm32_elf_howto_table): Likewise.
1501         * elf32-m32c.c (m32c_elf_howto_table): Likewise.
1502         * elf32-m32r.c (m32r_elf_howto_table): Likewise.
1503         * elf32-m68hc11.c (elf_m68hc11_howto_table): Likewise.
1504         * elf32-m68hc12.c (elf_m68hc11_howto_table): Likewise.
1505         * elf32-m68k.c (howto_table): Likewise.
1506         * elf32-mcore.c (mcore_elf_howto_raw): Likewise.
1507         * elf32-mep.c (mep_elf_howto_table): Likewise.
1508         * elf32-metag.c (elf_metag_howto_table): Likewise.
1509         * elf32-microblaze.c (microblaze_elf_howto_raw): Likewise.
1510         * elf32-mips.c (elf_mips_howto_table_rel): Likewise.
1511         * elf32-moxie.c (moxie_elf_howto_table): Likewise.
1512         * elf32-msp430.c (elf_msp430_howto_table): Likewise.
1513         * elf32-mt.c (mt_elf_howto_table): Likewise.
1514         * elf32-nds32.c (nds32_elf_howto_table): Likewise.
1515         * elf32-nios2.c (elf_nios2_howto_table_rel): Likewise.
1516         * elf32-or1k.c (or1k_elf_howto_table): Likewise.
1517         * elf32-pj.c (pj_elf_howto_table): Likewise.
1518         * elf32-ppc.c (ppc_elf_howto_raw): Likewise.
1519         * elf32-rl78.c (rl78_elf_howto_table): Likewise.
1520         * elf32-rx.c (rx_elf_howto_table): Likewise.
1521         * elf32-s390.c (elf_howto_table): Likewise.
1522         * elf32-score.c (elf32_score_howto_table): Likewise.
1523         * elf32-score7.c (elf32_score_howto_table): Likewise.
1524         * elf32-sh-relocs.h (R_SH_NONE): Likewise.
1525         * elf32-spu.c (elf_howto_table): Likewise.
1526         * elf32-tic6x.c (elf32_tic6x_howto_table): Likewise.
1527         * elf32-tilepro.c (tilepro_elf_howto_table): Likewise.
1528         * elf32-v850.c (v850_elf_howto_table): Likewise.
1529         * elf32-vax.c (howto_table): Likewise.
1530         * elf32-visium.c (visium_elf_howto_table): Likewise.
1531         * elf32-xc16x.c (xc16x_elf_howto_table): Likewise.
1532         * elf32-xgate.c (elf_xgate_howto_table): Likewise.
1533         * elf32-xstormy16.c (xstormy16_elf_howto_table): Likewise.
1534         * elf32-xtensa.c (elf_howto_table): Likewise.
1535         * elf64-alpha.c (elf64_alpha_howto_table): Likewise.
1536         * elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
1537         * elf64-mmix.c (elf_mmix_howto_table): Likewise.
1538         * elf64-ppc.c (ppc64_elf_howto_raw): Likewise.
1539         * elf64-s390.c (elf_howto_table): Likewise.
1540         * elf64-sh64.c (sh_elf64_howto_table): Likewise.
1541         * elf64-x86-64.c (x86_64_elf_howto_table): Likewise.
1542         * elfn32-mips.c (elf_mips_howto_table_rel): Likewise.
1543         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Likewise.
1544         (elfNN_aarch64_howto_none): Likewise.
1545         * elfxx-ia64.c (ia64_howto_table): Likewise.
1546         * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Likewise.
1547         * elfxx-tilegx.c (tilegx_elf_howto_table): Likewise.
1548         * nlm32-sparc.c (nlm32_sparc_howto_table): Likewise.
1549
1550 2015-01-15  H.J. Lu  <hongjiu.lu@intel.com>
1551
1552         PR ld/17847
1553         * elf64-x86-64.c (elf_x86_64_relocate_section): Don't complain
1554         about -fPIC if the symbol is undefined when building executable.
1555
1556 2015-01-15  Nick Clifton  <nickc@redhat.com>
1557
1558         PR binutils/17512
1559         * elf-m10300.c (mn10300_info_to_howto): Replace assertion with an
1560         error message.  Never return an invalid howto pointer.
1561         * elf32-cr16.c (cr16_info_to_howto): Likewise.
1562         * elf32-crx.c (elf_crx_info_to_howto): Likewise.
1563         * elf32-i370.c (i370_elf_info_to_howto): Likewise.
1564         * elf32-mcore.c (mcore_elf_info_to_howto): Likewise.
1565         * elf32-microblaze.c (microblaze_elf_info_to_howto): Likewise.
1566         * elf32-mips.c (mips_elf32_rtype_to_howto): Likewise.
1567         * elf32-pj.c (pj_elf_info_to_howto): Likewise.
1568         * elf32-ppc.c (ppc_elf_info_to_howto): Likewise.
1569         * elf32-spu.c (spu_elf_info_to_howto): Likewise.
1570         * elf32-v850.c (v850_elf_info_to_howto_rela): Likewise.
1571         * elf32-vax.c (rtype_to_howto): Likewise.
1572         * elf64-alpha.c (elf64_alpha_info_to_howto): Likewise.
1573         * elf64-mips.c (mips_elf64_rtype_to_howto): Likewise.
1574         * elfn32-mips.c (sh_elf_info_to_howto): Likewise.
1575         * elf32-sh.c (sh_elf_info_to_howto): Likewise.
1576         (sh_elf_reloc): Check that the reloc is in range.
1577         * reloc.c (bfd_perform_relocation): Check that the section is big
1578         enough for the entire reloc.
1579         (bfd_generic_get_relocated_section_contents): Report unexpected
1580         return values from perform_reloc.
1581
1582 2015-01-15  Nick Clifton  <nickc@redhat.com>
1583
1584         * elf32-msp430.c (msp430_elf_relax_section): Skip unhandled
1585         relocs.  Include PC-relative adjustment for R_MSP430X_ABS16
1586         relaxation.
1587
1588 2015-01-15  Alan Modra  <amodra@gmail.com>
1589
1590         * elflink.c (_bfd_elf_link_omit_section_dynsym): Return true for
1591         any output section matching a linker created dynobj section.
1592
1593 2015-01-15  Alan Modra  <amodra@gmail.com>
1594
1595         PR 17842
1596         * elflink.c (elf_link_output_sym): Assert elf_onesymtab set.
1597         (bfd_elf_final_link): Always create a symbol table when emit_relocs.
1598         Don't assign symtab file position unless symbols will be output.
1599         Merge blocks with condition in common.  Don't call
1600         elf_backend_output_arch_local_syms or elf_backend_output_arch_syms
1601         unless other symbols are output.  Move assignment of symtab_shndx
1602         file position.  Localize variable.
1603
1604 2015-01-14  Jiong Wang  <jiong.wang@arm.com>
1605
1606         * elf32-arm.c (elf32_arm_final_link_relocate): Reject R_ARM_32/_NOI when
1607         trying to defer them to runtime.
1608
1609 2015-01-13  Thomas Preud'homme <thomas.preudhomme@arm.com>
1610
1611         * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND
1612         to check if a symbol should be bound symbolically.
1613
1614 2015-01-13  Jiong Wang  <jiong.wang@arm.com>
1615
1616         * elfnn-aarch64.c: (elfNN_aarch64_howto_table): Enable overflow check
1617         for TLSLE_MOVW_TPREL_G2.
1618
1619 2015-01-13  Jiong Wang  <jiong.wang@arm.com>
1620
1621         PR ld/17415
1622         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Mark
1623         R_AARCH64_TLSLE_ADD_TPREL_HI12 as complain_overflow_unsigned.
1624         * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Correct the
1625         bit mask.
1626
1627 2015-01-12  Terry Guo  <terry.guo@arm.com>
1628
1629         * elflink.c (_bfd_elf_gc_mark_debug_special_section_group): New
1630         function.
1631         (_bfd_elf_gc_mark_extra_sections): Use it.
1632
1633 2015-01-11  H.J. Lu  <hongjiu.lu@intel.com>
1634
1635         PR ld/17827
1636         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): For PIE,
1637         only discard space for pc-relative relocs symbols which turn
1638         out to need copy relocs.
1639
1640 2015-01-09  Nick Clifton  <nickc@redhat.com>
1641
1642         * tekhex.c (getvalue): Fix thinko in test for correct extraction
1643         of value.
1644         (getsym): Return false if there was not enough data to extract the
1645         symbol.
1646
1647 2015-01-09  Anthony Green  <green@moxielogic.com>
1648
1649         * elf32-moxie.c (ELF_MACHINE_ALT1): Define.
1650
1651 2015-01-08  Nick Clifton  <nickc@redhat.com>
1652
1653         * elf32-msp430.c (msp430_elf_relax_section): Add relaxation of
1654         16-bit absolute BR instructions to 10-bit pc-relative JMP
1655         instructions.
1656
1657 2015-01-08  Nick Clifton  <nickc@redhat.com>
1658
1659         PR binutils/17512
1660         * coffcode.h (coff_slurp_symbol_table): Return false if we failed
1661         to load the line table.
1662         * elf.c (_bfd_elf_map_sections_to_segments): Enforce a minimum
1663         maxpagesize of 1.
1664         * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Fail if
1665         the Data Directory Size is too large.
1666
1667 2015-01-06  H.J. Lu  <hongjiu.lu@intel.com>
1668
1669         PR binutils/17512
1670         * elf32-i386.c (elf_i386_get_plt_sym_val): Skip unknown relocation.
1671         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
1672
1673 2015-01-06  Nick Clifton  <nickc@redhat.com>
1674
1675         PR binutils/17512
1676         * mach-o.c (bfd_mach_o_read_symtab_strtab): Zero terminate the
1677         string table.
1678
1679         * reloc.c (bfd_get_reloc_size): Handle a reloc size of -1.
1680         (bfd_perform_relocation): Include the size of the reloc in the
1681         test for an out of range relocation.
1682         (bfd_generic_get_relocated_section_contents): Remove reloc range
1683         test.
1684
1685         * coff-i860.c (CALC_ADDEND): Always set an addend value.
1686         * tekhex.c (getvalue): Add an end pointer parameter.  Use it to
1687         avoid reading off the end of the buffer.
1688         (getsym): Likewise.
1689         (first_phase): Likewise.
1690         (pass_over): Pass an end pointer to the invoked function.
1691
1692 2015-01-05  H.J. Lu  <hongjiu.lu@intel.com>
1693
1694         PR binutils/17512
1695         * elf32-i386.c (elf_i386_get_plt_sym_val): Return NULL on corrupt
1696         input.
1697         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
1698
1699 2015-01-05  Nick Clifton  <nickc@redhat.com>
1700
1701         PR binutils/17512
1702         * archive.c (do_slurp_bsd_armap): Make sure that the parsed sized
1703         is at least big enough for the header to be read.
1704         * elf32-i386.c (elf_i386_get_plt_sym_val): Skip unknown relocs.
1705         * mach-o.c (bfd_mach_o_get_synthetic_symtab): Add range checks.
1706         (bfd_mach_o_read_command): Prevetn duplicate error messages about
1707         unrecognized commands.
1708         * syms.c (_bfd_stab_section_find_nearest_line): Add range checks
1709         when indexing into the string table.
1710
1711 2015-01-01  Alan Modra  <amodra@gmail.com>
1712
1713         Update year range in copyright notice of all files.
1714
1715 For older changes see ChangeLog-2014
1716 \f
1717 Copyright (C) 2015 Free Software Foundation, Inc.
1718
1719 Copying and distribution of this file, with or without modification,
1720 are permitted in any medium without royalty provided the copyright
1721 notice and this notice are preserved.
1722
1723 Local Variables:
1724 mode: change-log
1725 left-margin: 8
1726 fill-column: 74
1727 version-control: never
1728 End: