1 2016-03-07 Jiong Wang <jiong.wang@arm.com>
3 * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Always create .got
4 section if the symbol "_GLOBAL_OFFSET_TABLE_" is referenced.
6 2016-03-04 H.J. Lu <hongjiu.lu@intel.com>
9 * elflink.c (_bfd_elf_merge_symbol): Treat common symbol in
10 executable as definition if the new definition comes from a
13 2016-03-02 Alan Modra <amodra@gmail.com>
15 * Makefile.in: Regenerate.
16 * po/SRC-POTFILES.in: Regenerate.
18 2016-02-29 Cupertino Miranda <cmiranda@synopsys.com>
20 * elf32-arc.c (elf_arc_relocate_section): Added rules to fix the
21 relocation addend when sections get merged.
23 2016-02-29 Cupertino Miranda <Cupertino.Miranda@synopsys.com>
25 * elf32-arc.c (arc_elf_final_write_processing): Add condition to
27 (elf_arc_relocate_section): Fixes and conditions to support PIE.
28 Assert for code sections dynamic relocs.
30 2016-02-26 Renlin Li <renlin.li@arm.com>
32 * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix signed overflow
33 check for MOVW_SABS_G0, MOVW_SABS_G1, MOVW_SABS_G2.
35 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
38 * elf32-i386.c (elf_i386_convert_load): Convert to R_386_32 for
39 load with locally bound symbols if PIC is false or there is no
40 base register. Optimize branch to 0 if PIC is false.
41 (elf_i386_relocate_section): Don't generate dynamic relocations
42 against undefined weak symbols if PIC is false.
43 * elf64-x86-64.c (elf_x86_64_convert_load): Disable optimization
44 if we can't estimate relocation overflow with --no-relax.
45 Convert to R_X86_64_32S/R_X86_64_32 for load with locally bound
46 symbols if PIC is false. Optimize branch to 0 if PIC is false.
47 (elf_x86_64_relocate_section): Don't generate dynamic relocations
48 against undefined weak symbols if PIC is false.
50 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
53 * bfd.c (bfd): Change flags to 20 bits.
54 (BFD_CONVERT_ELF_COMMON): New.
55 (BFD_USE_ELF_STT_COMMON): Likewise.
56 (BFD_FLAGS_SAVED): Add BFD_CONVERT_ELF_COMMON and
57 BFD_USE_ELF_STT_COMMON.
58 (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
59 * configure.ac: Remove --enable-elf-stt-common.
60 * elf.c (swap_out_syms): Choose STT_COMMON or STT_OBJECT for
61 common symbol depending on BFD_CONVERT_ELF_COMMON and
62 BFD_USE_ELF_STT_COMMON.
63 * elfcode.h (elf_slurp_symbol_table): Set BSF_ELF_COMMON for
65 * elflink.c (bfd_elf_link_mark_dynamic_symbol): Also check
67 (elf_link_convert_common_type): New function.
68 (elf_link_output_extsym): Choose STT_COMMON or STT_OBJECT for
69 common symbol depending on BFD_CONVERT_ELF_COMMON and
70 BFD_USE_ELF_STT_COMMON. Set sym.st_info after sym.st_shndx.
71 * elfxx-target.h (TARGET_BIG_SYM): Add BFD_CONVERT_ELF_COMMON
72 and BFD_USE_ELF_STT_COMMON to object_flags.
73 (TARGET_LITTLE_SYM): Likewise.
74 * syms.c (BSF_KEEP_G): Renamed to ...
75 (BSF_ELF_COMMON): This.
76 * bfd-in2.h: Regenerated.
77 * config.in: Likewise.
78 * configure: Likewise.
80 2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
85 * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
86 (elf_i386_link_hash_entry): Add has_got_reloc and
88 (elf_i386_link_hash_table): Add interp.
89 (elf_i386_link_hash_newfunc): Initialize has_got_reloc and
91 (elf_i386_copy_indirect_symbol): Copy has_got_reloc and
93 (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc.
94 (elf_i386_fixup_symbol): New function.
95 (elf_i386_pie_finish_undefweak_symbol): Likewise.
96 (elf_i386_allocate_dynrelocs): Don't allocate space for dynamic
97 relocations and discard relocations against resolved undefined
98 weak symbols in executable. Don't make resolved undefined weak
99 symbols in executable dynamic. Keep dynamic non-GOT/non-PLT
100 relocation against undefined weak symbols in PIE.
101 (elf_i386_size_dynamic_sections): Set interp to .interp section.
102 (elf_i386_relocate_section): Don't generate dynamic relocations
103 against resolved undefined weak symbols in PIE, except for
105 (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without
106 dynamic PLT/GOT relocations for resolved undefined weak symbols.
107 Don't generate dynamic relocation against resolved undefined weak
108 symbol in executable.
109 (elf_i386_finish_dynamic_sections): Call
110 elf_i386_pie_finish_undefweak_symbol on all symbols in PIE.
111 (elf_backend_fixup_symbol): New.
112 * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
113 (elf_x86_64_link_hash_entry): Add has_got_reloc and
115 (elf_x86_64_link_hash_table): Add interp.
116 (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and
118 (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and
120 (elf_x86_64_check_relocs): Set has_got_reloc and
122 (elf_x86_64_fixup_symbol): New function.
123 (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
124 (elf_x86_64_allocate_dynrelocs): Don't allocate space for dynamic
125 relocations and discard relocations against resolved undefined
126 weak symbols in executable. Don't make resolved undefined weak
127 symbols in executable dynamic.
128 (elf_x86_64_size_dynamic_sections): Set interp to .interp section.
129 (elf_x86_64_relocate_section): Check relocation overflow for
130 dynamic relocations against unresolved weak undefined symbols.
131 Don't generate dynamic relocations against resolved weak
132 undefined symbols in PIE.
133 (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without
134 dynamic PLT/GOT relocations for resolved undefined weak symbols.
135 Don't generate dynamic relocation against resolved undefined weak
136 symbol in executable.
137 (elf_x86_64_finish_dynamic_sections): Call
138 elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE.
139 (elf_backend_fixup_symbol): New.
141 2016-02-26 Alan Modra <amodra@gmail.com>
143 * elf64-ppc.c (create_linkage_sections): Create sfpr when
144 save_restore_funcs, rest of sections when not relocatable.
145 (ppc64_elf_init_stub_bfd): Always call create_linkage_sections.
146 (sfpr_define): Define all symbols on emitted code.
147 (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created
148 when relocatable. Move sfpr_define loop earlier.
150 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
152 * elf64-x86-64.c (elf_x86_64_need_pic): New function.
153 (elf_x86_64_relocate_section): Use it. Replace
154 x86_64_elf_howto_table[r_type] with howto.
156 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
159 * elflink.c (bfd_elf_record_link_assignment): Set versioned if
160 symbol version is unknown.
162 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
164 * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
165 to (bfd_vma) -1 when setting needs_plt to 0.
166 * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
168 2016-02-23 H.J. Lu <hongjiu.lu@intel.com>
170 * elflink.c (bfd_elf_record_link_assignment): Check for shared
171 library, instead of PIC, and don't check PDE when making linker
172 assigned symbol dynamic.
174 2016-02-23 Faraz Shahbazker <faraz.shahbazker@imgtec.com>
176 * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment
177 ABIVERSION for non-executable stack.
179 2016-02-23 Rich Felker <bugdal@aerifal.cx>
182 * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
183 Always produce a RELATIVE reloc for a local symbol.
185 2016-02-23 Hans-Peter Nilsson <hp@axis.com>
187 Fix test-case ld-elf/pr19617b
188 * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
189 discard unused non-function symbols when --dynamic-list-data.
191 2016-02-22 H.J. Lu <hongjiu.lu@intel.com>
193 * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the
194 dynsym section, even if it is empty, with dynamic sections.
196 2016-02-22 H.J. Lu <hongjiu.lu@intel.com>
198 * syms.c: Remove BSF_COMMON from comments.
199 * bfd-in2.h: Regenerated.
201 2016-02-22 Jiong Wang <jiong.wang@arm.com>
203 * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation
204 for destination. Remove useless function parameters.
205 (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub.
207 2016-02-19 Nick Clifton <nickc@redhat.com>
210 * aoutx.h (aout_link_add_symbols): Check for out of range string
214 * reloc.c (bfd_generic_get_relocated_section_contents): Stop
215 processing if we encounter a reloc without an associated symbol.
217 2016-02-18 H.J. Lu <hongjiu.lu@intel.com>
220 * elflink.c (elf_link_add_object_symbols): Always create dynamic
221 sections for -E/--dynamic-list.
223 2016-02-17 H.J. Lu <hongjiu.lu@intel.com>
225 * elf64-x86-64.c (elf_backend_omit_section_dynsym): New. Defined
228 2016-02-16 Joseph Myers <joseph@codesourcery.com>
230 * plugin.c (plugin_vec): Set match priority to 255.
231 * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When
232 matching against the plugin vector, take priority from there not
235 2016-02-15 Nick Clifton <nickc@redhat.com>
237 * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values
238 for length and type fields. Use a signed value for the
241 2016-02-10 H.J. Lu <hongjiu.lu@intel.com>
244 * elf32-i386.c (elf_i386_relocate_section): Mask off the least
245 significant bit in GOT offset for R_386_GOT32X.
247 2016-02-10 Nick Clifton <nickc@redhat.com>
250 * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed
252 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the
253 number of messages about FDE encoding preventing .eh_frame_hdr
256 2016-02-09 Nick Clifton <nickc@redhat.com>
258 * oasys.c (oasys_archive_p): Fix indentation.
259 * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned
260 constant for left shifting.
262 * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more
263 helpful warning message to explain why certain AArch64 relocs
266 2016-02-05 Simon Marchi <simon.marchi@ericsson.com>
268 * pe-mips.c (coff_mips_reloc): Fix formatting.
270 2016-02-05 Cupertino Miranda <Cupertino.Miranda@synopsys.com>
272 * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2
273 to bfd_mach_arc_arc600.
275 2016-02-04 Alan Modra <amodra@gmail.com>
277 * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch
280 2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
283 * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
284 distances in the compressed_size field of the output section.
286 2016-02-02 Alan Modra <amodra@gmail.com>
288 * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
289 ELFv2 entry optimization.
291 2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
294 * elf.c (assign_section_numbers): Clear HAS_RELOC if there are
295 no relocations in relocatable files.
297 2016-02-01 H.J. Lu <hongjiu.lu@intel.com>
300 * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
301 if a symbol from a library loaded via DT_NEEDED doesn't match
302 the symbol referenced by regular object.
304 2016-02-01 Nathaniel Smith <njs@pobox.com>
306 * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both
309 2016-02-01 Alan Modra <amodra@gmail.com>
311 * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on
312 an out of range reloc_index.
313 * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise.
315 2016-02-01 Kamil Rytarowski <n54@gmx.com>
317 * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo.
318 (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c.
319 * Makefile.in: Regenerated.
321 2016-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>
323 * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation.
325 2016-01-31 John David Anglin <danglin@gcc.gnu.org>
328 * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output
330 * elf64-hppa.c (elf32_hppa_final_link): Likewise. Remove retval.
332 2016-01-30 H.J. Lu <hongjiu.lu@intel.com>
335 * elf32-i386.c (elf_i386_reloc_type_class): Check relocation
336 against STT_GNU_IFUNC symbol only with dynamic symbols.
337 * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
339 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
342 * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to
343 decompress debug sections.
345 2016-01-25 Maciej W. Rozycki <macro@imgtec.com>
347 * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to
350 2016-01-25 Nick Clifton <nickc@redhat.com>
353 * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free
354 dsym filename buffer.
356 2016-01-24 Maciej W. Rozycki <macro@imgtec.com>
358 * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation.
360 2016-01-24 Maciej W. Rozycki <macro@imgtec.com>
362 * elfxx-mips.c (BZ16_REG): Correct calculation.
364 2016-01-21 Nick Clifton <nickc@redhat.com>
366 * elf32-arc.c (ADD_RELA): Fix compile time warning errors by
367 changing the type of _loc to be bfd_byte *.
368 (elf_arc_finish_dynamic_symbol): Likewise.
370 2016-01-21 Nick Clifton <nickc@redhat.com>
373 * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF
374 class of the linker stub bfd.
375 (elf32_arm_check_relocs): Skip check for pic format after
376 processing a vxWorks R_ARM_ABS12 reloc.
377 * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when
378 reporting a class mismatch.
380 2016-01-21 Jiong Wang <jiong.wang@arm.com>
382 * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
383 veneer for sym_sec != input_sec.
384 (elfNN_aarch64_size_stub): Support STT_SECTION symbol.
385 (elfNN_aarch64_final_link_relocate): Take rela addend into account when
386 calculation destination.
388 2016-01-21 Alan Modra <amodra@gmail.com>
390 * elf-linux-core.h (swap_linux_prpsinfo32_out): New function.
391 (swap_linux_prpsinfo64_out): New function.
392 (LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
393 (LINUX_PRPSINFO64_SWAP_FIELDS): Delete.
394 * elf.c (elfcore_write_linux_prpsinfo32): Adjust. Don't memset.
395 (elfcore_write_linux_prpsinfo64): Likewise.
396 * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function.
397 (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
398 (elfcore_write_ppc_linux_prpsinfo32): Adjust. Don't memset.
400 2016-01-21 Alan Modra <amodra@gmail.com>
402 * elf-linux-core.h: Rename from elf-linux-psinfo.h.
403 * elf.c: Adjust #include.
404 * elf32-ppc.c: Don't #include elf-linux-psinfo.h
405 * Makefile.am (SOURCE_HFILES): Update.
406 * Makefile.in: Regenerate.
407 * po/SRC-PORFILES.in: Regenerate.
409 2016-01-21 Alan Modra <amodra@gmail.com>
411 * configure.ac: Move corefile selection later in file. Move
412 tdefaults code immediately after other target vector code.
413 * configure: Regenerate.
415 2016-01-20 Mickael Guene <mickael.guene@st.com>
417 * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread
418 section using '.text.noread' pattern.
420 2016-01-19 John Baldwin <jhb@FreeBSD.org>
422 * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
424 2016-01-18 Miranda Cupertino <Cupertino.Miranda@synopsys.com>
425 Zissulescu Claudiu <Claudiu.Zissulescu@synopsys.com>
427 * arc-plt.def: New file.
428 * arc-plt.h: Likewise.
429 * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
430 elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
431 elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
432 elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
433 (name_for_global_symbol): Added.
434 (ADD_RELA): Helper to create dynamic relocs.
435 (new_got_entry_to_list): Create a new got entry in linked list.
436 (symbol_has_entry_of_type): Search for specific type of entry in
438 (is_reloc_for_GOT): return FALSE for any TLS related relocs.
439 (is_reloc_for_TLS, arc_elf_set_private_flags)
440 (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
441 (arc_elf_merge_private_bfd_data): New functions.
442 (debug_arc_reloc): Cleaned debug info printing.
443 (PDATA reloc): Changed not to perform address alignment.
444 (reverse_me): Added. Fix for ARC_32 relocs.
445 (arc_do_relocation): Return bfd_reloc_of when no relocation should
447 (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
448 Changed function to access an array of list of GOT entries instead
449 of just an array of offsets.
450 (elf_arc_relocate_section): Added support for PIC and TLS related relocations.
451 (elf_arc_check_relocs): Likewise.
452 (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
453 (elf_arc_finish_dynamic_sections): Likewise
454 (arc_create_dynamic_sections): Modified conditions to create
456 (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
457 (plt_do_relocs_for_symbol, relocate_plt_for_symbol)
458 (relocate_plt_for_entry): Changed to support new way to define PLT
460 (add_symbol_to_plt): Likewise.
461 (arc_elf_link_hash_table_create): New function.
463 2016-01-18 Nick Clifton <nickc@redhat.com>
466 * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external
467 section number into internal section number.
468 * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise.
469 * coffswap.h (coff_swap_sym_in): Likewise.
470 * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise.
471 * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal
472 section number field is big enough to hold the external value.
474 2016-01-17 Alan Modra <amodra@gmail.com>
476 * configure: Regenerate.
478 2016-01-12 Yury Usishchev <y.usishchev@samsung.com>
480 * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
481 when address in first unwind entry does not match start of
484 2016-01-08 Richard Sandiford <richard.sandiford@arm.com>
485 Jiong Wang <jiong.wang@arm.com>
488 * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to
491 2016-01-06 Andrew Burgess <andrew.burgess@embecosm.com>
493 * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to
494 place 'R_' before the reloc name returned.
495 (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before
496 the relocation string.
498 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
500 * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function,
502 (_bfd_mips_elf_merge_private_bfd_data): ... here.
504 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
506 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move
507 attribute check after ELF file header flag check.
509 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
511 * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the
512 return status from `_bfd_elf_merge_object_attributes'.
514 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
516 * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function,
518 (_bfd_mips_elf_merge_private_bfd_data): ... here.
520 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
522 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the
523 handling of input MIPS ABI flags together.
525 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
527 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress
528 attribute checks for null input.
530 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
532 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local
533 pointers to target data.
535 2016-01-04 Maciej W. Rozycki <macro@imgtec.com>
537 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
540 2016-01-01 Alan Modra <amodra@gmail.com>
542 Update year range in copyright notice of all files.
544 For older changes see ChangeLog-2015 and doc/ChangeLog-0415
546 Copyright (C) 2016 Free Software Foundation, Inc.
548 Copying and distribution of this file, with or without modification,
549 are permitted in any medium without royalty provided the copyright
550 notice and this notice are preserved.
556 version-control: never