1 2016-02-29 Cupertino Miranda <Cupertino.Miranda@synopsys.com>
3 * elf32-arc.c (arc_elf_final_write_processing): Add condition to
5 (elf_arc_relocate_section): Fixes and conditions to support PIE.
6 Assert for code sections dynamic relocs.
8 2016-02-26 Renlin Li <renlin.li@arm.com>
10 * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix signed overflow
11 check for MOVW_SABS_G0, MOVW_SABS_G1, MOVW_SABS_G2.
13 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
16 * elf32-i386.c (elf_i386_convert_load): Convert to R_386_32 for
17 load with locally bound symbols if PIC is false or there is no
18 base register. Optimize branch to 0 if PIC is false.
19 (elf_i386_relocate_section): Don't generate dynamic relocations
20 against undefined weak symbols if PIC is false.
21 * elf64-x86-64.c (elf_x86_64_convert_load): Disable optimization
22 if we can't estimate relocation overflow with --no-relax.
23 Convert to R_X86_64_32S/R_X86_64_32 for load with locally bound
24 symbols if PIC is false. Optimize branch to 0 if PIC is false.
25 (elf_x86_64_relocate_section): Don't generate dynamic relocations
26 against undefined weak symbols if PIC is false.
28 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
31 * bfd.c (bfd): Change flags to 20 bits.
32 (BFD_CONVERT_ELF_COMMON): New.
33 (BFD_USE_ELF_STT_COMMON): Likewise.
34 (BFD_FLAGS_SAVED): Add BFD_CONVERT_ELF_COMMON and
35 BFD_USE_ELF_STT_COMMON.
36 (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
37 * configure.ac: Remove --enable-elf-stt-common.
38 * elf.c (swap_out_syms): Choose STT_COMMON or STT_OBJECT for
39 common symbol depending on BFD_CONVERT_ELF_COMMON and
40 BFD_USE_ELF_STT_COMMON.
41 * elfcode.h (elf_slurp_symbol_table): Set BSF_ELF_COMMON for
43 * elflink.c (bfd_elf_link_mark_dynamic_symbol): Also check
45 (elf_link_convert_common_type): New function.
46 (elf_link_output_extsym): Choose STT_COMMON or STT_OBJECT for
47 common symbol depending on BFD_CONVERT_ELF_COMMON and
48 BFD_USE_ELF_STT_COMMON. Set sym.st_info after sym.st_shndx.
49 * elfxx-target.h (TARGET_BIG_SYM): Add BFD_CONVERT_ELF_COMMON
50 and BFD_USE_ELF_STT_COMMON to object_flags.
51 (TARGET_LITTLE_SYM): Likewise.
52 * syms.c (BSF_KEEP_G): Renamed to ...
53 (BSF_ELF_COMMON): This.
54 * bfd-in2.h: Regenerated.
55 * config.in: Likewise.
56 * configure: Likewise.
58 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
63 * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
64 (elf_i386_link_hash_entry): Add has_got_reloc and
66 (elf_i386_link_hash_table): Add interp.
67 (elf_i386_link_hash_newfunc): Initialize has_got_reloc and
69 (elf_i386_copy_indirect_symbol): Copy has_got_reloc and
71 (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc.
72 (elf_i386_fixup_symbol): New function.
73 (elf_i386_pie_finish_undefweak_symbol): Likewise.
74 (elf_i386_allocate_dynrelocs): Don't allocate space for dynamic
75 relocations and discard relocations against resolved undefined
76 weak symbols in executable. Don't make resolved undefined weak
77 symbols in executable dynamic. Keep dynamic non-GOT/non-PLT
78 relocation against undefined weak symbols in PIE.
79 (elf_i386_size_dynamic_sections): Set interp to .interp section.
80 (elf_i386_relocate_section): Don't generate dynamic relocations
81 against resolved undefined weak symbols in PIE, except for
83 (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without
84 dynamic PLT/GOT relocations for resolved undefined weak symbols.
85 Don't generate dynamic relocation against resolved undefined weak
87 (elf_i386_finish_dynamic_sections): Call
88 elf_i386_pie_finish_undefweak_symbol on all symbols in PIE.
89 (elf_backend_fixup_symbol): New.
90 * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
91 (elf_x86_64_link_hash_entry): Add has_got_reloc and
93 (elf_x86_64_link_hash_table): Add interp.
94 (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and
96 (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and
98 (elf_x86_64_check_relocs): Set has_got_reloc and
100 (elf_x86_64_fixup_symbol): New function.
101 (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
102 (elf_x86_64_allocate_dynrelocs): Don't allocate space for dynamic
103 relocations and discard relocations against resolved undefined
104 weak symbols in executable. Don't make resolved undefined weak
105 symbols in executable dynamic.
106 (elf_x86_64_size_dynamic_sections): Set interp to .interp section.
107 (elf_x86_64_relocate_section): Check relocation overflow for
108 dynamic relocations against unresolved weak undefined symbols.
109 Don't generate dynamic relocations against resolved weak
110 undefined symbols in PIE.
111 (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without
112 dynamic PLT/GOT relocations for resolved undefined weak symbols.
113 Don't generate dynamic relocation against resolved undefined weak
114 symbol in executable.
115 (elf_x86_64_finish_dynamic_sections): Call
116 elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE.
117 (elf_backend_fixup_symbol): New.
119 2016-02-26 Alan Modra <amodra@gmail.com>
121 * elf64-ppc.c (create_linkage_sections): Create sfpr when
122 save_restore_funcs, rest of sections when not relocatable.
123 (ppc64_elf_init_stub_bfd): Always call create_linkage_sections.
124 (sfpr_define): Define all symbols on emitted code.
125 (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created
126 when relocatable. Move sfpr_define loop earlier.
128 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
130 * elf64-x86-64.c (elf_x86_64_need_pic): New function.
131 (elf_x86_64_relocate_section): Use it. Replace
132 x86_64_elf_howto_table[r_type] with howto.
134 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
137 * elflink.c (bfd_elf_record_link_assignment): Set versioned if
138 symbol version is unknown.
140 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
142 * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
143 to (bfd_vma) -1 when setting needs_plt to 0.
144 * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
146 2016-02-23 H.J. Lu <hongjiu.lu@intel.com>
148 * elflink.c (bfd_elf_record_link_assignment): Check for shared
149 library, instead of PIC, and don't check PDE when making linker
150 assigned symbol dynamic.
152 2016-02-23 Faraz Shahbazker <faraz.shahbazker@imgtec.com>
154 * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment
155 ABIVERSION for non-executable stack.
157 2016-02-23 Rich Felker <bugdal@aerifal.cx>
160 * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
161 Always produce a RELATIVE reloc for a local symbol.
163 2016-02-23 Hans-Peter Nilsson <hp@axis.com>
165 Fix test-case ld-elf/pr19617b
166 * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
167 discard unused non-function symbols when --dynamic-list-data.
169 2016-02-22 H.J. Lu <hongjiu.lu@intel.com>
171 * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the
172 dynsym section, even if it is empty, with dynamic sections.
174 2016-02-22 H.J. Lu <hongjiu.lu@intel.com>
176 * syms.c: Remove BSF_COMMON from comments.
177 * bfd-in2.h: Regenerated.
179 2016-02-22 Jiong Wang <jiong.wang@arm.com>
181 * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation
182 for destination. Remove useless function parameters.
183 (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub.
185 2016-02-19 Nick Clifton <nickc@redhat.com>
188 * aoutx.h (aout_link_add_symbols): Check for out of range string
192 * reloc.c (bfd_generic_get_relocated_section_contents): Stop
193 processing if we encounter a reloc without an associated symbol.
195 2016-02-18 H.J. Lu <hongjiu.lu@intel.com>
198 * elflink.c (elf_link_add_object_symbols): Always create dynamic
199 sections for -E/--dynamic-list.
201 2016-02-17 H.J. Lu <hongjiu.lu@intel.com>
203 * elf64-x86-64.c (elf_backend_omit_section_dynsym): New. Defined
206 2016-02-16 Joseph Myers <joseph@codesourcery.com>
208 * plugin.c (plugin_vec): Set match priority to 255.
209 * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When
210 matching against the plugin vector, take priority from there not
213 2016-02-15 Nick Clifton <nickc@redhat.com>
215 * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values
216 for length and type fields. Use a signed value for the
219 2016-02-10 H.J. Lu <hongjiu.lu@intel.com>
222 * elf32-i386.c (elf_i386_relocate_section): Mask off the least
223 significant bit in GOT offset for R_386_GOT32X.
225 2016-02-10 Nick Clifton <nickc@redhat.com>
228 * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed
230 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the
231 number of messages about FDE encoding preventing .eh_frame_hdr
234 2016-02-09 Nick Clifton <nickc@redhat.com>
236 * oasys.c (oasys_archive_p): Fix indentation.
237 * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned
238 constant for left shifting.
240 * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more
241 helpful warning message to explain why certain AArch64 relocs
244 2016-02-05 Simon Marchi <simon.marchi@ericsson.com>
246 * pe-mips.c (coff_mips_reloc): Fix formatting.
248 2016-02-05 Cupertino Miranda <Cupertino.Miranda@synopsys.com>
250 * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2
251 to bfd_mach_arc_arc600.
253 2016-02-04 Alan Modra <amodra@gmail.com>
255 * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch
258 2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
261 * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
262 distances in the compressed_size field of the output section.
264 2016-02-02 Alan Modra <amodra@gmail.com>
266 * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
267 ELFv2 entry optimization.
269 2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
272 * elf.c (assign_section_numbers): Clear HAS_RELOC if there are
273 no relocations in relocatable files.
275 2016-02-01 H.J. Lu <hongjiu.lu@intel.com>
278 * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
279 if a symbol from a library loaded via DT_NEEDED doesn't match
280 the symbol referenced by regular object.
282 2016-02-01 Nathaniel Smith <njs@pobox.com>
284 * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both
287 2016-02-01 Alan Modra <amodra@gmail.com>
289 * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on
290 an out of range reloc_index.
291 * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise.
293 2016-02-01 Kamil Rytarowski <n54@gmx.com>
295 * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo.
296 (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c.
297 * Makefile.in: Regenerated.
299 2016-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
301 * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation.
303 2016-01-31 John David Anglin <danglin@gcc.gnu.org>
306 * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output
308 * elf64-hppa.c (elf32_hppa_final_link): Likewise. Remove retval.
310 2016-01-30 H.J. Lu <hongjiu.lu@intel.com>
313 * elf32-i386.c (elf_i386_reloc_type_class): Check relocation
314 against STT_GNU_IFUNC symbol only with dynamic symbols.
315 * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
317 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
320 * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to
321 decompress debug sections.
323 2016-01-25 Maciej W. Rozycki <macro@imgtec.com>
325 * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to
328 2016-01-25 Nick Clifton <nickc@redhat.com>
331 * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free
332 dsym filename buffer.
334 2016-01-24 Maciej W. Rozycki <macro@imgtec.com>
336 * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation.
338 2016-01-24 Maciej W. Rozycki <macro@imgtec.com>
340 * elfxx-mips.c (BZ16_REG): Correct calculation.
342 2016-01-21 Nick Clifton <nickc@redhat.com>
344 * elf32-arc.c (ADD_RELA): Fix compile time warning errors by
345 changing the type of _loc to be bfd_byte *.
346 (elf_arc_finish_dynamic_symbol): Likewise.
348 2016-01-21 Nick Clifton <nickc@redhat.com>
351 * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF
352 class of the linker stub bfd.
353 (elf32_arm_check_relocs): Skip check for pic format after
354 processing a vxWorks R_ARM_ABS12 reloc.
355 * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when
356 reporting a class mismatch.
358 2016-01-21 Jiong Wang <jiong.wang@arm.com>
360 * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
361 veneer for sym_sec != input_sec.
362 (elfNN_aarch64_size_stub): Support STT_SECTION symbol.
363 (elfNN_aarch64_final_link_relocate): Take rela addend into account when
364 calculation destination.
366 2016-01-21 Alan Modra <amodra@gmail.com>
368 * elf-linux-core.h (swap_linux_prpsinfo32_out): New function.
369 (swap_linux_prpsinfo64_out): New function.
370 (LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
371 (LINUX_PRPSINFO64_SWAP_FIELDS): Delete.
372 * elf.c (elfcore_write_linux_prpsinfo32): Adjust. Don't memset.
373 (elfcore_write_linux_prpsinfo64): Likewise.
374 * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function.
375 (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
376 (elfcore_write_ppc_linux_prpsinfo32): Adjust. Don't memset.
378 2016-01-21 Alan Modra <amodra@gmail.com>
380 * elf-linux-core.h: Rename from elf-linux-psinfo.h.
381 * elf.c: Adjust #include.
382 * elf32-ppc.c: Don't #include elf-linux-psinfo.h
383 * Makefile.am (SOURCE_HFILES): Update.
384 * Makefile.in: Regenerate.
385 * po/SRC-PORFILES.in: Regenerate.
387 2016-01-21 Alan Modra <amodra@gmail.com>
389 * configure.ac: Move corefile selection later in file. Move
390 tdefaults code immediately after other target vector code.
391 * configure: Regenerate.
393 2016-01-20 Mickael Guene <mickael.guene@st.com>
395 * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread
396 section using '.text.noread' pattern.
398 2016-01-19 John Baldwin <jhb@FreeBSD.org>
400 * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
402 2016-01-18 Miranda Cupertino <Cupertino.Miranda@synopsys.com>
403 Zissulescu Claudiu <Claudiu.Zissulescu@synopsys.com>
405 * arc-plt.def: New file.
406 * arc-plt.h: Likewise.
407 * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
408 elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
409 elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
410 elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
411 (name_for_global_symbol): Added.
412 (ADD_RELA): Helper to create dynamic relocs.
413 (new_got_entry_to_list): Create a new got entry in linked list.
414 (symbol_has_entry_of_type): Search for specific type of entry in
416 (is_reloc_for_GOT): return FALSE for any TLS related relocs.
417 (is_reloc_for_TLS, arc_elf_set_private_flags)
418 (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
419 (arc_elf_merge_private_bfd_data): New functions.
420 (debug_arc_reloc): Cleaned debug info printing.
421 (PDATA reloc): Changed not to perform address alignment.
422 (reverse_me): Added. Fix for ARC_32 relocs.
423 (arc_do_relocation): Return bfd_reloc_of when no relocation should
425 (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
426 Changed function to access an array of list of GOT entries instead
427 of just an array of offsets.
428 (elf_arc_relocate_section): Added support for PIC and TLS related relocations.
429 (elf_arc_check_relocs): Likewise.
430 (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
431 (elf_arc_finish_dynamic_sections): Likewise
432 (arc_create_dynamic_sections): Modified conditions to create
434 (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
435 (plt_do_relocs_for_symbol, relocate_plt_for_symbol)
436 (relocate_plt_for_entry): Changed to support new way to define PLT
438 (add_symbol_to_plt): Likewise.
439 (arc_elf_link_hash_table_create): New function.
441 2016-01-18 Nick Clifton <nickc@redhat.com>
444 * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external
445 section number into internal section number.
446 * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise.
447 * coffswap.h (coff_swap_sym_in): Likewise.
448 * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise.
449 * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal
450 section number field is big enough to hold the external value.
452 2016-01-17 Alan Modra <amodra@gmail.com>
454 * configure: Regenerate.
456 2016-01-12 Yury Usishchev <y.usishchev@samsung.com>
458 * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
459 when address in first unwind entry does not match start of
462 2016-01-08 Richard Sandiford <richard.sandiford@arm.com>
463 Jiong Wang <jiong.wang@arm.com>
466 * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to
469 2016-01-06 Andrew Burgess <andrew.burgess@embecosm.com>
471 * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to
472 place 'R_' before the reloc name returned.
473 (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before
474 the relocation string.
476 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
478 * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function,
480 (_bfd_mips_elf_merge_private_bfd_data): ... here.
482 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
484 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move
485 attribute check after ELF file header flag check.
487 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
489 * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the
490 return status from `_bfd_elf_merge_object_attributes'.
492 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
494 * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function,
496 (_bfd_mips_elf_merge_private_bfd_data): ... here.
498 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
500 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the
501 handling of input MIPS ABI flags together.
503 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
505 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress
506 attribute checks for null input.
508 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
510 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local
511 pointers to target data.
513 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
515 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
518 2016-01-01 Alan Modra <amodra@gmail.com>
520 Update year range in copyright notice of all files.
522 For older changes see ChangeLog-2015 and doc/ChangeLog-0415
524 Copyright (C) 2016 Free Software Foundation, Inc.
526 Copying and distribution of this file, with or without modification,
527 are permitted in any medium without royalty provided the copyright
528 notice and this notice are preserved.
534 version-control: never