1 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
4 * elf32-i386.c (elf_i386_convert_load): Convert to R_386_32 for
5 load with locally bound symbols if PIC is false or there is no
6 base register. Optimize branch to 0 if PIC is false.
7 (elf_i386_relocate_section): Don't generate dynamic relocations
8 against undefined weak symbols if PIC is false.
9 * elf64-x86-64.c (elf_x86_64_convert_load): Disable optimization
10 if we can't estimate relocation overflow with --no-relax.
11 Convert to R_X86_64_32S/R_X86_64_32 for load with locally bound
12 symbols if PIC is false. Optimize branch to 0 if PIC is false.
13 (elf_x86_64_relocate_section): Don't generate dynamic relocations
14 against undefined weak symbols if PIC is false.
16 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
19 * bfd.c (bfd): Change flags to 20 bits.
20 (BFD_CONVERT_ELF_COMMON): New.
21 (BFD_USE_ELF_STT_COMMON): Likewise.
22 (BFD_FLAGS_SAVED): Add BFD_CONVERT_ELF_COMMON and
23 BFD_USE_ELF_STT_COMMON.
24 (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
25 * configure.ac: Remove --enable-elf-stt-common.
26 * elf.c (swap_out_syms): Choose STT_COMMON or STT_OBJECT for
27 common symbol depending on BFD_CONVERT_ELF_COMMON and
28 BFD_USE_ELF_STT_COMMON.
29 * elfcode.h (elf_slurp_symbol_table): Set BSF_ELF_COMMON for
31 * elflink.c (bfd_elf_link_mark_dynamic_symbol): Also check
33 (elf_link_convert_common_type): New function.
34 (elf_link_output_extsym): Choose STT_COMMON or STT_OBJECT for
35 common symbol depending on BFD_CONVERT_ELF_COMMON and
36 BFD_USE_ELF_STT_COMMON. Set sym.st_info after sym.st_shndx.
37 * elfxx-target.h (TARGET_BIG_SYM): Add BFD_CONVERT_ELF_COMMON
38 and BFD_USE_ELF_STT_COMMON to object_flags.
39 (TARGET_LITTLE_SYM): Likewise.
40 * syms.c (BSF_KEEP_G): Renamed to ...
41 (BSF_ELF_COMMON): This.
42 * bfd-in2.h: Regenerated.
43 * config.in: Likewise.
44 * configure: Likewise.
46 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
51 * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
52 (elf_i386_link_hash_entry): Add has_got_reloc and
54 (elf_i386_link_hash_table): Add interp.
55 (elf_i386_link_hash_newfunc): Initialize has_got_reloc and
57 (elf_i386_copy_indirect_symbol): Copy has_got_reloc and
59 (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc.
60 (elf_i386_fixup_symbol): New function.
61 (elf_i386_pie_finish_undefweak_symbol): Likewise.
62 (elf_i386_allocate_dynrelocs): Don't allocate space for dynamic
63 relocations and discard relocations against resolved undefined
64 weak symbols in executable. Don't make resolved undefined weak
65 symbols in executable dynamic. Keep dynamic non-GOT/non-PLT
66 relocation against undefined weak symbols in PIE.
67 (elf_i386_size_dynamic_sections): Set interp to .interp section.
68 (elf_i386_relocate_section): Don't generate dynamic relocations
69 against resolved undefined weak symbols in PIE, except for
71 (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without
72 dynamic PLT/GOT relocations for resolved undefined weak symbols.
73 Don't generate dynamic relocation against resolved undefined weak
75 (elf_i386_finish_dynamic_sections): Call
76 elf_i386_pie_finish_undefweak_symbol on all symbols in PIE.
77 (elf_backend_fixup_symbol): New.
78 * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
79 (elf_x86_64_link_hash_entry): Add has_got_reloc and
81 (elf_x86_64_link_hash_table): Add interp.
82 (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and
84 (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and
86 (elf_x86_64_check_relocs): Set has_got_reloc and
88 (elf_x86_64_fixup_symbol): New function.
89 (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
90 (elf_x86_64_allocate_dynrelocs): Don't allocate space for dynamic
91 relocations and discard relocations against resolved undefined
92 weak symbols in executable. Don't make resolved undefined weak
93 symbols in executable dynamic.
94 (elf_x86_64_size_dynamic_sections): Set interp to .interp section.
95 (elf_x86_64_relocate_section): Check relocation overflow for
96 dynamic relocations against unresolved weak undefined symbols.
97 Don't generate dynamic relocations against resolved weak
98 undefined symbols in PIE.
99 (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without
100 dynamic PLT/GOT relocations for resolved undefined weak symbols.
101 Don't generate dynamic relocation against resolved undefined weak
102 symbol in executable.
103 (elf_x86_64_finish_dynamic_sections): Call
104 elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE.
105 (elf_backend_fixup_symbol): New.
107 2016-02-26 Alan Modra <amodra@gmail.com>
109 * elf64-ppc.c (create_linkage_sections): Create sfpr when
110 save_restore_funcs, rest of sections when not relocatable.
111 (ppc64_elf_init_stub_bfd): Always call create_linkage_sections.
112 (sfpr_define): Define all symbols on emitted code.
113 (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created
114 when relocatable. Move sfpr_define loop earlier.
116 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
118 * elf64-x86-64.c (elf_x86_64_need_pic): New function.
119 (elf_x86_64_relocate_section): Use it. Replace
120 x86_64_elf_howto_table[r_type] with howto.
122 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
125 * elflink.c (bfd_elf_record_link_assignment): Set versioned if
126 symbol version is unknown.
128 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
130 * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
131 to (bfd_vma) -1 when setting needs_plt to 0.
132 * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
134 2016-02-23 H.J. Lu <hongjiu.lu@intel.com>
136 * elflink.c (bfd_elf_record_link_assignment): Check for shared
137 library, instead of PIC, and don't check PDE when making linker
138 assigned symbol dynamic.
140 2016-02-23 Faraz Shahbazker <faraz.shahbazker@imgtec.com>
142 * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment
143 ABIVERSION for non-executable stack.
145 2016-02-23 Rich Felker <bugdal@aerifal.cx>
148 * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
149 Always produce a RELATIVE reloc for a local symbol.
151 2016-02-23 Hans-Peter Nilsson <hp@axis.com>
153 Fix test-case ld-elf/pr19617b
154 * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
155 discard unused non-function symbols when --dynamic-list-data.
157 2016-02-22 H.J. Lu <hongjiu.lu@intel.com>
159 * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the
160 dynsym section, even if it is empty, with dynamic sections.
162 2016-02-22 H.J. Lu <hongjiu.lu@intel.com>
164 * syms.c: Remove BSF_COMMON from comments.
165 * bfd-in2.h: Regenerated.
167 2016-02-22 Jiong Wang <jiong.wang@arm.com>
169 * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation
170 for destination. Remove useless function parameters.
171 (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub.
173 2016-02-19 Nick Clifton <nickc@redhat.com>
176 * aoutx.h (aout_link_add_symbols): Check for out of range string
180 * reloc.c (bfd_generic_get_relocated_section_contents): Stop
181 processing if we encounter a reloc without an associated symbol.
183 2016-02-18 H.J. Lu <hongjiu.lu@intel.com>
186 * elflink.c (elf_link_add_object_symbols): Always create dynamic
187 sections for -E/--dynamic-list.
189 2016-02-17 H.J. Lu <hongjiu.lu@intel.com>
191 * elf64-x86-64.c (elf_backend_omit_section_dynsym): New. Defined
194 2016-02-16 Joseph Myers <joseph@codesourcery.com>
196 * plugin.c (plugin_vec): Set match priority to 255.
197 * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When
198 matching against the plugin vector, take priority from there not
201 2016-02-15 Nick Clifton <nickc@redhat.com>
203 * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values
204 for length and type fields. Use a signed value for the
207 2016-02-10 H.J. Lu <hongjiu.lu@intel.com>
210 * elf32-i386.c (elf_i386_relocate_section): Mask off the least
211 significant bit in GOT offset for R_386_GOT32X.
213 2016-02-10 Nick Clifton <nickc@redhat.com>
216 * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed
218 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the
219 number of messages about FDE encoding preventing .eh_frame_hdr
222 2016-02-09 Nick Clifton <nickc@redhat.com>
224 * oasys.c (oasys_archive_p): Fix indentation.
225 * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned
226 constant for left shifting.
228 * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more
229 helpful warning message to explain why certain AArch64 relocs
232 2016-02-05 Simon Marchi <simon.marchi@ericsson.com>
234 * pe-mips.c (coff_mips_reloc): Fix formatting.
236 2016-02-05 Cupertino Miranda <Cupertino.Miranda@synopsys.com>
238 * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2
239 to bfd_mach_arc_arc600.
241 2016-02-04 Alan Modra <amodra@gmail.com>
243 * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch
246 2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
249 * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
250 distances in the compressed_size field of the output section.
252 2016-02-02 Alan Modra <amodra@gmail.com>
254 * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
255 ELFv2 entry optimization.
257 2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
260 * elf.c (assign_section_numbers): Clear HAS_RELOC if there are
261 no relocations in relocatable files.
263 2016-02-01 H.J. Lu <hongjiu.lu@intel.com>
266 * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
267 if a symbol from a library loaded via DT_NEEDED doesn't match
268 the symbol referenced by regular object.
270 2016-02-01 Nathaniel Smith <njs@pobox.com>
272 * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both
275 2016-02-01 Alan Modra <amodra@gmail.com>
277 * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on
278 an out of range reloc_index.
279 * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise.
281 2016-02-01 Kamil Rytarowski <n54@gmx.com>
283 * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo.
284 (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c.
285 * Makefile.in: Regenerated.
287 2016-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
289 * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation.
291 2016-01-31 John David Anglin <danglin@gcc.gnu.org>
294 * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output
296 * elf64-hppa.c (elf32_hppa_final_link): Likewise. Remove retval.
298 2016-01-30 H.J. Lu <hongjiu.lu@intel.com>
301 * elf32-i386.c (elf_i386_reloc_type_class): Check relocation
302 against STT_GNU_IFUNC symbol only with dynamic symbols.
303 * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
305 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
308 * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to
309 decompress debug sections.
311 2016-01-25 Maciej W. Rozycki <macro@imgtec.com>
313 * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to
316 2016-01-25 Nick Clifton <nickc@redhat.com>
319 * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free
320 dsym filename buffer.
322 2016-01-24 Maciej W. Rozycki <macro@imgtec.com>
324 * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation.
326 2016-01-24 Maciej W. Rozycki <macro@imgtec.com>
328 * elfxx-mips.c (BZ16_REG): Correct calculation.
330 2016-01-21 Nick Clifton <nickc@redhat.com>
332 * elf32-arc.c (ADD_RELA): Fix compile time warning errors by
333 changing the type of _loc to be bfd_byte *.
334 (elf_arc_finish_dynamic_symbol): Likewise.
336 2016-01-21 Nick Clifton <nickc@redhat.com>
339 * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF
340 class of the linker stub bfd.
341 (elf32_arm_check_relocs): Skip check for pic format after
342 processing a vxWorks R_ARM_ABS12 reloc.
343 * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when
344 reporting a class mismatch.
346 2016-01-21 Jiong Wang <jiong.wang@arm.com>
348 * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
349 veneer for sym_sec != input_sec.
350 (elfNN_aarch64_size_stub): Support STT_SECTION symbol.
351 (elfNN_aarch64_final_link_relocate): Take rela addend into account when
352 calculation destination.
354 2016-01-21 Alan Modra <amodra@gmail.com>
356 * elf-linux-core.h (swap_linux_prpsinfo32_out): New function.
357 (swap_linux_prpsinfo64_out): New function.
358 (LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
359 (LINUX_PRPSINFO64_SWAP_FIELDS): Delete.
360 * elf.c (elfcore_write_linux_prpsinfo32): Adjust. Don't memset.
361 (elfcore_write_linux_prpsinfo64): Likewise.
362 * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function.
363 (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
364 (elfcore_write_ppc_linux_prpsinfo32): Adjust. Don't memset.
366 2016-01-21 Alan Modra <amodra@gmail.com>
368 * elf-linux-core.h: Rename from elf-linux-psinfo.h.
369 * elf.c: Adjust #include.
370 * elf32-ppc.c: Don't #include elf-linux-psinfo.h
371 * Makefile.am (SOURCE_HFILES): Update.
372 * Makefile.in: Regenerate.
373 * po/SRC-PORFILES.in: Regenerate.
375 2016-01-21 Alan Modra <amodra@gmail.com>
377 * configure.ac: Move corefile selection later in file. Move
378 tdefaults code immediately after other target vector code.
379 * configure: Regenerate.
381 2016-01-20 Mickael Guene <mickael.guene@st.com>
383 * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread
384 section using '.text.noread' pattern.
386 2016-01-19 John Baldwin <jhb@FreeBSD.org>
388 * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
390 2016-01-18 Miranda Cupertino <Cupertino.Miranda@synopsys.com>
391 Zissulescu Claudiu <Claudiu.Zissulescu@synopsys.com>
393 * arc-plt.def: New file.
394 * arc-plt.h: Likewise.
395 * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
396 elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
397 elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
398 elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
399 (name_for_global_symbol): Added.
400 (ADD_RELA): Helper to create dynamic relocs.
401 (new_got_entry_to_list): Create a new got entry in linked list.
402 (symbol_has_entry_of_type): Search for specific type of entry in
404 (is_reloc_for_GOT): return FALSE for any TLS related relocs.
405 (is_reloc_for_TLS, arc_elf_set_private_flags)
406 (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
407 (arc_elf_merge_private_bfd_data): New functions.
408 (debug_arc_reloc): Cleaned debug info printing.
409 (PDATA reloc): Changed not to perform address alignment.
410 (reverse_me): Added. Fix for ARC_32 relocs.
411 (arc_do_relocation): Return bfd_reloc_of when no relocation should
413 (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
414 Changed function to access an array of list of GOT entries instead
415 of just an array of offsets.
416 (elf_arc_relocate_section): Added support for PIC and TLS related relocations.
417 (elf_arc_check_relocs): Likewise.
418 (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
419 (elf_arc_finish_dynamic_sections): Likewise
420 (arc_create_dynamic_sections): Modified conditions to create
422 (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
423 (plt_do_relocs_for_symbol, relocate_plt_for_symbol)
424 (relocate_plt_for_entry): Changed to support new way to define PLT
426 (add_symbol_to_plt): Likewise.
427 (arc_elf_link_hash_table_create): New function.
429 2016-01-18 Nick Clifton <nickc@redhat.com>
432 * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external
433 section number into internal section number.
434 * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise.
435 * coffswap.h (coff_swap_sym_in): Likewise.
436 * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise.
437 * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal
438 section number field is big enough to hold the external value.
440 2016-01-17 Alan Modra <amodra@gmail.com>
442 * configure: Regenerate.
444 2016-01-12 Yury Usishchev <y.usishchev@samsung.com>
446 * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
447 when address in first unwind entry does not match start of
450 2016-01-08 Richard Sandiford <richard.sandiford@arm.com>
451 Jiong Wang <jiong.wang@arm.com>
454 * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to
457 2016-01-06 Andrew Burgess <andrew.burgess@embecosm.com>
459 * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to
460 place 'R_' before the reloc name returned.
461 (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before
462 the relocation string.
464 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
466 * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function,
468 (_bfd_mips_elf_merge_private_bfd_data): ... here.
470 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
472 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move
473 attribute check after ELF file header flag check.
475 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
477 * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the
478 return status from `_bfd_elf_merge_object_attributes'.
480 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
482 * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function,
484 (_bfd_mips_elf_merge_private_bfd_data): ... here.
486 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
488 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the
489 handling of input MIPS ABI flags together.
491 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
493 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress
494 attribute checks for null input.
496 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
498 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local
499 pointers to target data.
501 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
503 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
506 2016-01-01 Alan Modra <amodra@gmail.com>
508 Update year range in copyright notice of all files.
510 For older changes see ChangeLog-2015 and doc/ChangeLog-0415
512 Copyright (C) 2016 Free Software Foundation, Inc.
514 Copying and distribution of this file, with or without modification,
515 are permitted in any medium without royalty provided the copyright
516 notice and this notice are preserved.
522 version-control: never